weixin_39605463
2020-12-02 08:19How to handle datasets with invalid info[meas_id][secs]?
I'm woking with the ds000246
OpenNeuro dataset:
$ aws s3 sync --no-sign-request s3://openneuro.org/ds000246 ds000246
$ cd ds000246/sub-emptyroom/meg
Reading the data works as expected:
python
import mne
raw = mne.io.read_raw_ctf('sub-emptyroom_task-noise_run-01_meg.ds')
Writing thows an exception:
python
raw.save('/tmp/foo.fif')
Traceback:
python
RuntimeError Traceback (most recent call last)
<ipython-input-4-eb369e79ee42> in <module>
----> 1 raw.save('/tmp/foo.fif')
<decorator-gen-155> in save(self, fname, picks, tmin, tmax, buffer_size_sec, drop_small_buffer, proj, fmt, overwrite, split_size, split_naming, verbose)
~/Development/mne-python/mne/io/base.py in save(self, fname, picks, tmin, tmax, buffer_size_sec, drop_small_buffer, proj, fmt, overwrite, split_size, split_naming, verbose)
1379 "split_naming must be either 'neuromag' or 'bids' instead "
1380 "of '{}'.".format(split_naming))
-> 1381 _write_raw(fname, self, info, picks, fmt, data_type, reset_range,
1382 start, stop, buffer_size, projector, drop_small_buffer,
1383 split_size, split_naming, part_idx, None, overwrite)
~/Development/mne-python/mne/io/base.py in _write_raw(fname, raw, info, picks, fmt, data_type, reset_range, start, stop, buffer_size, projector, drop_small_buffer, split_size, split_naming, part_idx, prev_fname, overwrite)
1844
1845 picks = _picks_to_idx(info, picks, 'all', ())
-> 1846 fid, cals = _start_writing_raw(use_fname, info, picks, data_type,
1847 reset_range, raw.annotations)
1848
~/Development/mne-python/mne/io/base.py in _start_writing_raw(name, info, sel, data_type, reset_range, annotations)
2018 cals.append(info['chs'][k]['cal'] * info['chs'][k]['range'])
2019
-> 2020 write_meas_info(fid, info, data_type=data_type, reset_range=reset_range)
2021
2022 #
~/Development/mne-python/mne/io/meas_info.py in write_meas_info(fid, info, data_type, reset_range)
1453 """
1454 info._check_consistency()
-> 1455 _check_dates(info)
1456
1457 # Measurement info
~/Development/mne-python/mne/io/meas_info.py in _check_dates(info, prepend_error)
1411 if (value[key_2] < np.iinfo('>i4').min or
1412 value[key_2] > np.iinfo('>i4').max):
-> 1413 raise RuntimeError('%sinfo[%s][%s] must be between '
1414 '"%r" and "%r", got "%r"'
1415 % (prepend_error, key, key_2,
RuntimeError: info[meas_id][secs] must be between "-2147483648" and "2147483647", got "-5364633480"
</decorator-gen-155></module></ipython-input-4-eb369e79ee42>
How to best deal with data like this? Can I simply set info[meas_id][secs]
to an arbitrary (valid) value? Also it seems a little odd that I can create (and work with) some data by reading it, but then cannot write it back to disk…
该提问来源于开源项目:mne-tools/mne-python
- 点赞
- 回答
- 收藏
- 复制链接分享
10条回答
为你推荐
- Ajax脚本仅在收到的XML足够大/需要足够长的时间才能加载时工作?
- javascript
- ajax
- xml
- jquery
- php
- 2个回答
- 如何在Chartjs中将Y轴值从浮点数更改为整数?
- chart.js
- javascript
- laravel
- php
- 2个回答
- 这个js是不是有语法错误?循环里面的东西在运行的时候没有执行,求大佬指点。
- ajax
- javascript
- bootstrap
- jquery
- 2个回答
- 图表codeigniter
- codeigniter
- canvas
- php
- 1个回答
- 求解报错TypeError: slice indices must be integers or None or have an __index__ method
- python
- 机器学习
- 人工智能
- tensorflow
- 深度学习
- 2个回答
换一换