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
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 })
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})
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)