def _preprocess(self, ch, method, properties, body): eeg = json.loads(body) self.eeg_data = np.vstack([self.eeg_data, get_raw(eeg, self.num_channels)]) self.count += self.step_size timestamp = eeg[-1]["timestamp"] if self.enable_ica: eeg = from_raw(self.eyeblinks_remover.transform( get_raw(eeg, self.num_channels)), self.num_channels) if ((self.count >= 5000 and not self.started_fit) or self.count % 10000 == 0): _LOGGER.info('refitting...') self.started_fit = True self.refit_ica() processed_data = preprocess_stft(eeg, self.electrodes_placement) data = {"timestamp": timestamp} for key, value in processed_data.items(): data[key] = processed_data[key][-1] _LOGGER.debug("--> output: %s" % data) self.mu_publisher.publish(self.routing_keys[self.output_metric], data)
_ELECTRODES_PLACEMENT = {"channel_0": {"main": "channel_0", "artifact": []}} _BUFFER_SIZE = 128 with open("neurosky.csv", "rb") as inputFile: with open("mu_neurosky_converted.csv", "wb") as outputFile: writer = csv.writer(outputFile) writer.writerow(["x", "y", "label"]) writer.writerow(["float", "float", "int"]) writer.writerow(["","","C"]) reader = csv.reader(inputFile) headers = reader.next() eeg_buffer = [] for row in reader: x = row[0] raw_eeg = row[4] label = row[5] eeg = {"timestamp": x, "channel_0": raw_eeg} if len(eeg_buffer) > _BUFFER_SIZE: processed_data = preprocess_stft(eeg_buffer, _ELECTRODES_PLACEMENT) eeg_buffer = [] y = processed_data["channel_0"][-1] writer.writerow([x,y,label]) else: eeg_buffer.append(eeg)