- CML Data Readers version: 0.9.4
- Python version: 3.6?
- Operating System: N/A
Description
You should be able to concatenate TimeSeries objects with nearly identical samplerates.
What I Did
>>>reader = CMLReader(subject='R1006P', experiment='FR1')
>>>events = reader.load_events(subjects=['R1006P'],experiments=['FR1'])
>>>eeg = reader.load_eeg(events,rel_start=0, rel_stop=50)
ValueError Traceback (most recent call last)
<ipython-input-28-267956422d60> in <module>()
1 events = reader.load_events(subjects=['R1006P'],experiments=['FR1'])
----> 2 eeg = reader.load_eeg(events,rel_start=0, rel_stop=50)
~/miniconda3/envs/cmlreaders/lib/python3.6/site-packages/cmlreaders/cmlreader.py in load_eeg(self, events, rel_start, rel_stop, scheme)
281 })
282
--> 283 return self.load('eeg', **kwargs)
284
285 @classmethod
~/miniconda3/envs/cmlreaders/lib/python3.6/site-packages/cmlreaders/cmlreader.py in load(self, data_type, **kwargs)
223 )
224
--> 225 return cls.load(**kwargs)
226
227 def load_eeg(self, events: Optional[pd.DataFrame] = None,
~/miniconda3/envs/cmlreaders/lib/python3.6/site-packages/cmlreaders/readers/eeg.py in load(self, **kwargs)
504
505 events = self._eegfile_absolute(events.copy())
--> 506 return self.as_timeseries(events, kwargs["rel_start"], kwargs["rel_stop"])
507
508 def as_dataframe(self):
~/miniconda3/envs/cmlreaders/lib/python3.6/site-packages/cmlreaders/readers/eeg.py in as_timeseries(self, events, rel_start, rel_stop)
611 )
612
--> 613 eegs = EEGContainer.concatenate(eegs)
614 eegs.attrs["rereferencing_possible"] = reader.rereferencing_possible
615 return eegs
~/miniconda3/envs/cmlreaders/lib/python3.6/site-packages/cmlreaders/eeg_container.py in concatenate(cls, containers, dim)
121 samplerate = containers[0].samplerate
122 if not all([s.samplerate == samplerate for s in containers]):
--> 123 raise ValueError("Sample rates must be the same for all series")
124
125 def check_samples():
ValueError: Sample rates must be the same for all series
The samplerates in question:
>>> eegs = [reader.load_eeg(events.loc[events.session==s],rel_start=0,rel_stop=50)
for s in events.session.unique()]
>>> [x.samplerate for x in eegs]
[500, 499.70710000000003]
Description
You should be able to concatenate TimeSeries objects with nearly identical samplerates.
What I Did
The samplerates in question: