Q: When generating frame output from the datacondAPI I either get the eror message saying "Inserting non-unique key:" or the channel names are different than what I specified in the output statements.
A: With ldas-0.7.0, only output targetted for the WRAPPER uses the name value of the output() action. In 0.8.0, all targets will use the value specified in the name value of the output() action. A work around is to send the data to the libio dso in the wrapperAPI. An example of how to do this is:
dataPipeline
    -subject {obtaining calibration and FFT data}
    -returnprotocol file:H2H1-CAL+FS+DEBUG_1-733543750-1024.gwf
    -dynlib /ldas/lib/wrapperAPI/libio.so
    -filterparams (0)
    -outputformat frame
    -datacondtarget wrapper
    -multidimdatatarget frame
    -setsingleem 1
    -framequery {
        { RDS_R_L1 H {} 733543750-733544774 adc(H2:LSC-AS_Q,H1:LSC-AS_Q) }
        { SenseMonitor_H2_M H {} 733543750-733544774 adc(H2:CAL-CAV_FAC.mean,H2:CAL-OLOOP_FAC.mean) }
        { SenseMonitor_H1_M H {} 733543750-733544774 adc(H1:CAL-CAV_FAC.mean,H1:CAL-OLOOP_FAC.mean) }
        { CAL_REF H {} 729320845-729320908 proc(H2:CAL-CAV_GAIN!0!7000.0000!,H2:CAL-RESPONSE!0!7000.0000!) }
        { CAL_REF H {} 729326128-729326191 proc(H1:CAL-CAV_GAIN!0!7000.0000!,H1:CAL-RESPONSE!0!7000.0000!) }
    }
    -aliases {
        ifo1_asq_chan = H2\:LSC-AS_Q;
        ifo1_alpha_ts = H2\:CAL-CAV_FAC.mean;
        ifo1_gamma_ts = H2\:CAL-OLOOP_FAC.mean;
        ifo1_sensing = H2\:CAL-CAV_GAIN;
        ifo1_reference = H2\:CAL-RESPONSE;
        ifo2_asq_chan = H1\:LSC-AS_Q;
        ifo2_alpha_ts = H1\:CAL-CAV_FAC.mean;
        ifo2_gamma_ts = H1\:CAL-OLOOP_FAC.mean;
        ifo2_sensing = H1\:CAL-CAV_GAIN;
        ifo2_reference = H1\:CAL-RESPONSE;
    }
    -algorithms {
        alphas = double(ifo1_alpha_ts);
        gammas = double(ifo1_gamma_ts);
        alphas = complex(alphas);
        gammas = complex(gammas);
        alpha_t = getElement(alphas,0);
        gamma_t = getElement(gammas,0);
        ifo1_open_gain = mul(ifo1_sensing, ifo1_reference);
        ifo1_open_gain = sub(ifo1_open_gain, 1);
        ifo1_response = mul(gamma_t, ifo1_open_gain);
        ifo1_response = add(1, ifo1_response);
        ifo1_response = div(ifo1_response, ifo1_sensing);
        ifo1_response = div(ifo1_response, alpha_t);
        ifo1_response = fseries(ifo1_response, 0.0, 0.015625, 733543750, 0, 733544774, 0);
        alphas = double(ifo2_alpha_ts);
        gammas = double(ifo2_gamma_ts);
        alphas = complex(alphas);
        gammas = complex(gammas);
        alpha_t = getElement(alphas,0);
        gamma_t = getElement(gammas,0);
        ifo2_open_gain = mul(ifo2_sensing, ifo2_reference);
        ifo2_open_gain = sub(ifo2_open_gain, 1);
        ifo2_response = mul(gamma_t, ifo2_open_gain);
        ifo2_response = add(1, ifo2_response);
        ifo2_response = div(ifo2_response, ifo2_sensing);
        ifo2_response = div(ifo2_response, alpha_t);
        ifo2_response = mul(ifo2_response, 0.783783783784);
	ifo2_response = fseries(ifo2_response, 0.0, 0.015625, 733543750, 0, 733544774, 0);
        output(ifo1_response, _, _, H2:CAL-RESPONSE, H2:CAL-RESPONSE_FSERIES_0-7000);
        output(ifo2_response, _, _, H1:CAL-RESPONSE, H1:CAL-RESPONSE_FSERIES_0-7000);
        ifo1_fseries = slice(ifo1_asq_chan,0,1048576,1);
        ifo1_fseries = fft(ifo1_fseries);
        ifo1_fseries = slice(ifo1_fseries,0,448000,1);
        ifo1_fseries = fseries(ifo1_fseries, 0., 0.015625, 733543750, 0, 733543814, 0);
        ifo2_fseries = slice(ifo2_asq_chan,0,1048576,1);
        ifo2_fseries = fft(ifo2_fseries);
        ifo2_fseries = slice(ifo2_fseries,0,448000,1);
        ifo2_fseries = fseries(ifo2_fseries, 0., 0.015625, 733543750, 0, 733543814, 0);
        output(ifo1_fseries, _, _, H2:LSC-AS_Q_FFT, H2:LSC-AS_Q_FSERIES_0-7000);
        output(ifo2_fseries, _, _, H1:LSC-AS_Q_FFT, H1:LSC-AS_Q_FSERIES_0-7000);
    }

   



Back to LDAS FAQ