def append_response(self, epoch, device_name, csc_data, start, end):
        logging.info("Appending response...")
        sources = []
        iterator = epoch.getInputSources().values().iterator()
        while iterator.hasNext():
            sources.append(iterator.next().getLabel())
        devices = { device_name : 'Neuralynx' }

        samples = pq.Quantity(csc_data.samples_by_date(start, end), units='uV')
        samples.labels = [u'Membrane voltage']
        samples.sampling_rates = [csc_data.sampling_rate_hz * pq.Hz]

        devices = { device_name : 'Neuralynx' }
        name = device_name
        data_frame = { name : samples }

        if len(samples) > 0:
           logging.info("  Inserting response %s for Epoch %s", device_name, epoch.getStart().toString())
           insert_numeric_measurement(epoch,
                                      sources,
                                      devices,
                                      name,
                                      data_frame)

        return epoch
Esempio n. 2
0
def import_analog_signal_array(epoch, signal_array, equipment_setup_root):
    signal_array.labels = [u'time', u'channel']
    signal_array.sampling_rates = [signal_array.sampling_rate] * signal_array.shape[1]

    #TODO should use channel, etc. for equipment setup
    insert_numeric_measurement(epoch,
                               set(),
                               {equipment_setup_root},
                               signal_array.name,
                               { signal_array.name : signal_array })
Esempio n. 3
0
def import_analog_signal(epoch, analog_signal, equipment_setup_root):

    analog_signal.labels = [u'time']
    analog_signal.sampling_rates = [analog_signal.sampling_rate]
    if 'channel_index' in analog_signal.annotations:
        channel_index = analog_signal.annotations['channel_index']
    else:
        channel_index = 'unknown'
        log_warning("Analog signal does not have a channel index. Using '{}.channels.{}' as measurement device.".format(equipment_setup_root, channel_index))


    if analog_signal.name is not None:
        name = analog_signal.name
    else:
        name = 'analog signal'
        log_warning("Analog signal does not have a name. Using '{}' as measurement and data name.".format(name))

    device = '{}.channels.{}'.format(equipment_setup_root, channel_index)
    insert_numeric_measurement(epoch,
                               set(iterable(epoch.getInputSources().keySet())),
                               {device},
                               name,
                               {name : analog_signal})
Esempio n. 4
0
def _round_trip_array(arr, experiment, protocol):
    epoch = experiment.insertEpoch(DateTime(), DateTime(), protocol, None, None)
    trace_name = 'trace1'
    expected = { trace_name: arr }

    sourceName = 'source'
    s = epoch.getDataContext().insertSource('source-name', 'source-id')
    epoch.addInputSource(sourceName, s)

    m = insert_numeric_measurement(epoch, set([sourceName]), set(['amp']), trace_name, expected)

    sleep(0.5)

    actual = as_data_frame(m)
    return (expected, actual)