def _check_infos_trans(infos):
"""XXX this goes to tests later, currently not used"""
chan_max_idx = np.argmax([c['nchan'] for c in infos])
chan_template = infos[chan_max_idx]['ch_names']
channels = [c['ch_names'] for c in infos]
common_channels = set(chan_template).intersection(*channels)
common_chs = [[c['chs'][c['ch_names'].index(ch)] for ch in common_channels]
for c in infos]
dev_ctf_trans = [i['dev_ctf_t']['trans'] for i in infos]
cns = [[c['ch_name'] for c in cc] for cc in common_chs]
for cn1, cn2 in itt.combinations(cns, 2):
assert cn1 == cn2
# BTI stores data in head coords, as a consequence the coordinates
# change across run, we apply the ctf->ctf_head transform here
# to check that all transforms are correct.
cts = [np.array([linalg.inv(_loc_to_coil_trans(c['loc'])).dot(t)
for c in cc])
for t, cc in zip(dev_ctf_trans, common_chs)]
for ct1, ct2 in itt.combinations(cts, 2):
np.testing.assert_array_almost_equal(ct1, ct2, 12)
评论列表
文章目录