I was trying to load CTF data. I only put the .ds dir as the first parameter, all other parameters are default value. Then meet a runtime error that "RuntimeError: Reference magnetometer channel with non-zero compensation grade 1".
%matplotlib tk
import mne
import matplotlib.pyplot as plt
import os.path as op
import os
import glob
import numpy as np
sub = "A1922"
data_path = op.join('/Users/yaocongd/local/Data/MEEG_2018/',sub);
dir_list = os.listdir(data_path)
mne.io.read_raw_ctf(op.join(data_path,dir_list[2]), system_clock='truncate', preload=True, clean_names=False, verbose=None)
ds directory : /Users/yaocongd/local/Data/MEEG_2018/A1922/A1922_GlasgowFace_20190619_05.ds
res4 data read.
hc data read.
Separate EEG position data file not present.
Quaternion matching (desired vs. transformed):
4.47 82.95 0.00 mm <-> 4.47 82.95 0.00 mm (orig : -67.80 49.75 -257.65 mm) diff = 0.000 mm
-4.47 -82.95 0.00 mm <-> -4.47 -82.95 0.00 mm (orig : 44.38 -72.48 -266.51 mm) diff = 0.000 mm
104.26 0.00 0.00 mm <-> 104.26 0.00 0.00 mm (orig : 60.64 61.29 -243.12 mm) diff = 0.000 mm
Coordinate transformations established.
Polhemus data for 3 HPI coils added
Device coordinate locations for 3 HPI coils added
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-11-015f3654086c> in <module>
2 data_path = op.join('/Users/yaocongd/local/Data/MEEG_2018/',sub);
3 dir_list = os.listdir(data_path)
----> 4 mne.io.read_raw_ctf(op.join(data_path,dir_list[2]), system_clock='truncate', preload=True, clean_names=False, verbose=None)
~/anaconda3/envs/mne/lib/python3.6/site-packages/mne/io/ctf/ctf.py in read_raw_ctf(directory, system_clock, preload, clean_names, verbose)
62 """
63 return RawCTF(directory, system_clock, preload=preload,
---> 64 clean_names=clean_names, verbose=verbose)
65
66
</Users/yaocongd/anaconda3/envs/mne/lib/python3.6/site-packages/mne/externals/decorator.py:decorator-gen-150> in __init__(self, directory, system_clock, preload, verbose, clean_names)
~/anaconda3/envs/mne/lib/python3.6/site-packages/mne/utils/_logging.py in wrapper(*args, **kwargs)
87 with use_log_level(verbose_level):
88 return function(*args, **kwargs)
---> 89 return function(*args, **kwargs)
90 return FunctionMaker.create(
91 function, 'return decfunc(%(signature)s)',
~/anaconda3/envs/mne/lib/python3.6/site-packages/mne/io/ctf/ctf.py in __init__(self, directory, system_clock, preload, verbose, clean_names)
115
116 # Compose a structure which makes fiff writing a piece of cake
--> 117 info = _compose_meas_info(res4, coils, coord_trans, eeg)
118 info['dig'] += digs
119 info['bads'] += _read_bad_chans(directory, info)
~/anaconda3/envs/mne/lib/python3.6/site-packages/mne/io/ctf/info.py in _compose_meas_info(res4, coils, trans, eeg)
442 if trans['t_ctf_head_head'] is not None:
443 info['ctf_head_t'] = trans['t_ctf_head_head']
--> 444 info['chs'] = _convert_channel_info(res4, trans, eeg is None)
445 info['comps'] = _convert_comp_data(res4)
446 if eeg is None:
~/anaconda3/envs/mne/lib/python3.6/site-packages/mne/io/ctf/info.py in _convert_channel_info(res4, t, use_eeg_pos)
219 if cch['sensor_type_index'] == CTF.CTFV_REF_MAG_CH:
220 ch['kind'] = FIFF.FIFFV_REF_MEG_CH
--> 221 _check_comp_ch(cch, 'Reference magnetometer')
222 ch['coil_type'] = FIFF.FIFFV_COIL_CTF_REF_MAG
223 nref += 1
~/anaconda3/envs/mne/lib/python3.6/site-packages/mne/io/ctf/info.py in _check_comp_ch(cch, kind, desired)
138 if cch['grad_order_no'] != 0:
139 raise RuntimeError('%s channel with non-zero compensation grade %s'
--> 140 % (kind, cch['grad_order_no']))
141 else:
142 if desired is None:
RuntimeError: Reference magnetometer channel with non-zero compensation grade 1
I was trying to load CTF data. I only put the .ds dir as the first parameter, all other parameters are default value. Then meet a runtime error that "RuntimeError: Reference magnetometer channel with non-zero compensation grade 1".
the code and the results are in the below
Example:
Actual results