[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