[med-svn] [python-mne] 339/376: FIX : fix writing of meas info for maxfilter
Yaroslav Halchenko
debian at onerussian.com
Fri Nov 27 17:23:18 UTC 2015
This is an automated email from the git hooks/post-receive script.
yoh pushed a commit to annotated tag v0.1
in repository python-mne.
commit 83c9b0806e0408879b873b900eaad51c8b74b53e
Author: Alexandre Gramfort <alexandre.gramfort at inria.fr>
Date: Mon Aug 15 22:06:03 2011 -0400
FIX : fix writing of meas info for maxfilter
---
mne/fiff/meas_info.py | 64 ++++++++++++++++++++++++++++++++++++---------------
mne/fiff/raw.py | 33 ++++----------------------
2 files changed, 50 insertions(+), 47 deletions(-)
diff --git a/mne/fiff/meas_info.py b/mne/fiff/meas_info.py
index 0d1c51b..a85de95 100644
--- a/mne/fiff/meas_info.py
+++ b/mne/fiff/meas_info.py
@@ -15,9 +15,9 @@ from .proj import read_proj, write_proj
from .ctf import read_ctf_comp, write_ctf_comp
from .channels import _read_bad_channels
-from .write import start_block, end_block, \
+from .write import start_block, end_block, write_string, write_dig_point, \
write_float, write_int, write_coord_trans, write_ch_info, \
- write_dig_point, write_name_list
+ write_name_list
def read_meas_info(fid, tree):
@@ -233,7 +233,21 @@ def read_meas_info(fid, tree):
def write_meas_info(fid, info, data_type=None):
- """Write measurement info in fif file."""
+ """Write measurement info in fif file.
+
+ Parameters
+ ----------
+ fid: file
+ Open file descriptor
+ info: dict
+ The measurement info structure
+ data_type: int
+ The data_type is case it is necessary. Should be 4 for raw data.
+
+ Note
+ ----
+ Tags are written in a particular order for compatibility with maxfilter
+ """
# Measurement info
start_block(fid, FIFF.FIFFB_MEAS_INFO)
@@ -258,15 +272,18 @@ def write_meas_info(fid, info, data_type=None):
have_isotrak = True
fid2.close()
- # General
- write_float(fid, FIFF.FIFF_SFREQ, info['sfreq'])
- write_float(fid, FIFF.FIFF_HIGHPASS, info['highpass'])
- write_float(fid, FIFF.FIFF_LOWPASS, info['lowpass'])
- write_int(fid, FIFF.FIFF_NCHAN, info['nchan'])
- if data_type is not None:
- write_int(fid, FIFF.FIFF_DATA_PACK, data_type)
- if info['meas_date'] is not None:
- write_int(fid, FIFF.FIFF_MEAS_DATE, info['meas_date'])
+ #
+ # megacq parameters
+ #
+ if info['acq_pars'] is not None or info['acq_stim'] is not None:
+ start_block(fid, FIFF.FIFFB_DACQ_PARS)
+ if info['acq_pars'] is not None:
+ write_string(fid, FIFF.FIFF_DACQ_PARS, info['acq_pars'])
+
+ if info['acq_stim'] is not None:
+ write_string(fid, FIFF.FIFF_DACQ_STIM, info['acq_stim'])
+
+ end_block(fid, FIFF.FIFFB_DACQ_PARS)
# Coordinate transformations if the HPI result block was not there
if not have_hpi_result:
@@ -276,12 +293,6 @@ def write_meas_info(fid, info, data_type=None):
if info['ctf_head_t'] is not None:
write_coord_trans(fid, info['ctf_head_t'])
- # Channel information
- for k in range(info['nchan']):
- # Scan numbers may have been messed up
- info['chs'][k]['scanno'] = k + 1
- write_ch_info(fid, info['chs'][k])
-
# Polhemus data
if info['dig'] is not None and not have_isotrak:
start_block(fid, FIFF.FIFFB_ISOTRAK)
@@ -302,4 +313,21 @@ def write_meas_info(fid, info, data_type=None):
write_name_list(fid, FIFF.FIFF_MNE_CH_NAME_LIST, info['bads'])
end_block(fid, FIFF.FIFFB_MNE_BAD_CHANNELS)
+ # General
+ write_float(fid, FIFF.FIFF_SFREQ, info['sfreq'])
+ write_float(fid, FIFF.FIFF_HIGHPASS, info['highpass'])
+ write_float(fid, FIFF.FIFF_LOWPASS, info['lowpass'])
+ write_int(fid, FIFF.FIFF_NCHAN, info['nchan'])
+ if data_type is not None:
+ write_int(fid, FIFF.FIFF_DATA_PACK, data_type)
+ if info['meas_date'] is not None:
+ write_int(fid, FIFF.FIFF_MEAS_DATE, info['meas_date'])
+
+ # Channel information
+ for k, c in enumerate(info['chs']):
+ # Scan numbers may have been messed up
+ c['scanno'] = k + 1
+ c['range'] = 1.0
+ write_ch_info(fid, c)
+
end_block(fid, FIFF.FIFFB_MEAS_INFO)
diff --git a/mne/fiff/raw.py b/mne/fiff/raw.py
index 410ab5a..0e0ac0b 100644
--- a/mne/fiff/raw.py
+++ b/mne/fiff/raw.py
@@ -464,18 +464,15 @@ def read_raw_segment_times(raw, start, stop, sel=None):
###############################################################################
# Writing
-from .write import start_file, start_block, write_id, write_string, \
- write_ch_info, end_block, write_coord_trans, \
- write_float, write_int, write_dig_point, \
- write_name_list, end_file
-from .ctf import write_ctf_comp
-from .proj import write_proj
-from .tree import copy_tree
+from .write import start_file, end_file, start_block, end_block, \
+ write_float, write_int, write_id
def start_writing_raw(name, info, sel=None):
"""Start write raw data in file
+ Data will be written in float
+
Parameters
----------
name : string
@@ -496,16 +493,6 @@ def start_writing_raw(name, info, sel=None):
calibration factors
"""
#
- # We will always write floats
- #
- # if sel is None:
- # chs = info['chs']
- # nchan = len(chs)
- # else:
- # chs = [info['chs'][k] for k in sel]
- # nchan = len(sel)
- # data_type = 4
- #
# Create the file and save the essentials
#
fid = start_file(name)
@@ -545,18 +532,6 @@ def start_writing_raw(name, info, sel=None):
write_meas_info(fid, info, data_type=4)
- # #
- # # megacq parameters
- # #
- # if info['acq_pars'] is not None or info['acq_stim'] is not None:
- # start_block(fid, FIFF.FIFFB_DACQ_PARS)
- # if info['acq_pars'] is not None:
- # write_string(fid, FIFF.FIFF_DACQ_PARS, info['acq_pars'])
- #
- # if info['acq_stim'] is not None:
- # write_string(fid, FIFF.FIFF_DACQ_STIM, info['acq_stim'])
- #
- # end_block(fid, FIFF.FIFFB_DACQ_PARS)
#
# Start the raw data
#
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/python-mne.git
More information about the debian-med-commit
mailing list