[med-svn] [python-mne] 16/376: first working version of writing covariance matrix + first test
Yaroslav Halchenko
debian at onerussian.com
Fri Nov 27 17:21:57 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 3143ae59dbc50d724c929f99f31924c95c3c7dfc
Author: Alexandre Gramfort <alexandre.gramfort at inria.fr>
Date: Thu Dec 30 10:51:57 2010 -0500
first working version of writing covariance matrix + first test
---
examples/read_cov.py | 10 +-
fiff/channels.py | 4 +-
fiff/constants.py | 526 +++++++++++++++++++++++++--------------------------
fiff/cov.py | 5 +-
fiff/open.py | 2 +-
fiff/tag.py | 9 +-
fiff/tree.py | 50 +++--
7 files changed, 299 insertions(+), 307 deletions(-)
diff --git a/examples/read_cov.py b/examples/read_cov.py
index 4b02e3d..0ffead2 100644
--- a/examples/read_cov.py
+++ b/examples/read_cov.py
@@ -1,4 +1,4 @@
-"""Reading a noise covariance matrix
+"""Reading/Writing a noise covariance matrix
"""
print __doc__
@@ -6,19 +6,15 @@ import fiff
fname = 'MNE-sample-data/MEG/sample/sample_audvis-cov.fif'
+# Reading
fid, tree, _ = fiff.fiff_open(fname)
cov_type = 1
cov = fiff.read_cov(fid, tree, cov_type)
fid.close()
+# Writing
fiff.write_cov_file('cov.fif', cov)
-fid, tree, _ = fiff.fiff_open('cov.fif')
-cov2 = fiff.read_cov(fid, tree, cov_type)
-fid.close()
-
-print np.linalg.norm(cov['data'] - cov2['data'])
-
print "covariance matrix size: %s x %s" % cov['data'].shape
###############################################################################
diff --git a/fiff/channels.py b/fiff/channels.py
index dcf2838..dae6504 100644
--- a/fiff/channels.py
+++ b/fiff/channels.py
@@ -11,7 +11,7 @@ def read_bad_channels(fid, node):
% Reas the bad channel list from a node if it exists
%
% fid - The file id
- % node - The node of interes
+ % node - The node of interest
%
"""
@@ -21,7 +21,7 @@ def read_bad_channels(fid, node):
if len(nodes) > 0:
for node in nodes:
tag = find_tag(fid, node, FIFF.FIFF_MNE_CH_NAME_LIST)
- if tag is not None:
+ if tag.data is not None:
bads = tag.data.split(':')
return bads
diff --git a/fiff/constants.py b/fiff/constants.py
index 93f508b..21c916f 100644
--- a/fiff/constants.py
+++ b/fiff/constants.py
@@ -5,361 +5,361 @@ FIFF = Bunch()
#
# Blocks
#
-FIFF.FIFFB_MEAS = 100;
-FIFF.FIFFB_MEAS_INFO = 101;
-FIFF.FIFFB_RAW_DATA = 102;
-FIFF.FIFFB_PROCESSED_DATA = 103;
-FIFF.FIFFB_CONTINUOUS_DATA = 112;
-FIFF.FIFFB_EVOKED = 104;
-FIFF.FIFFB_ASPECT = 105;
-FIFF.FIFFB_SUBJECT = 106;
-FIFF.FIFFB_ISOTRAK = 107;
-FIFF.FIFFB_HPI_MEAS = 108;
-FIFF.FIFFB_HPI_RESULT = 109;
-FIFF.FIFFB_DACQ_PARS = 117;
-FIFF.FIFFB_REF = 118;
-FIFF.FIFFB_SMSH_RAW_DATA = 119;
-FIFF.FIFFB_SMSH_ASPECT = 120;
-FIFF.FIFFB_PROJ = 313;
-FIFF.FIFFB_PROJ_ITEM = 314;
-FIFF.FIFFB_MRI = 200;
-FIFF.FIFFB_MRI_SET = 201;
-FIFF.FIFFB_MRI_SLICE = 202;
-FIFF.FIFFB_PROCESSING_HISTORY = 900;
-FIFF.FIFFB_SSS_INFO = 502;
-FIFF.FIFFB_SSS_CAL_ADJUST = 503;
-FIFF.FIFFB_SSS_ST_INFO = 504;
-FIFF.FIFFB_SSS_BASES = 505;
+FIFF.FIFFB_MEAS = 100
+FIFF.FIFFB_MEAS_INFO = 101
+FIFF.FIFFB_RAW_DATA = 102
+FIFF.FIFFB_PROCESSED_DATA = 103
+FIFF.FIFFB_CONTINUOUS_DATA = 112
+FIFF.FIFFB_EVOKED = 104
+FIFF.FIFFB_ASPECT = 105
+FIFF.FIFFB_SUBJECT = 106
+FIFF.FIFFB_ISOTRAK = 107
+FIFF.FIFFB_HPI_MEAS = 108
+FIFF.FIFFB_HPI_RESULT = 109
+FIFF.FIFFB_DACQ_PARS = 117
+FIFF.FIFFB_REF = 118
+FIFF.FIFFB_SMSH_RAW_DATA = 119
+FIFF.FIFFB_SMSH_ASPECT = 120
+FIFF.FIFFB_PROJ = 313
+FIFF.FIFFB_PROJ_ITEM = 314
+FIFF.FIFFB_MRI = 200
+FIFF.FIFFB_MRI_SET = 201
+FIFF.FIFFB_MRI_SLICE = 202
+FIFF.FIFFB_PROCESSING_HISTORY = 900
+FIFF.FIFFB_SSS_INFO = 502
+FIFF.FIFFB_SSS_CAL_ADJUST = 503
+FIFF.FIFFB_SSS_ST_INFO = 504
+FIFF.FIFFB_SSS_BASES = 505
#
# Of general interest
#
-FIFF.FIFF_FILE_ID = 100;
-FIFF.FIFF_DIR_POINTER = 101;
-FIFF.FIFF_BLOCK_ID = 103;
-FIFF.FIFF_BLOCK_START = 104;
-FIFF.FIFF_BLOCK_END = 105;
-FIFF.FIFF_FREE_LIST = 106;
-FIFF.FIFF_FREE_BLOCK = 107;
-FIFF.FIFF_NOP = 108;
-FIFF.FIFF_PARENT_FILE_ID = 109;
-FIFF.FIFF_PARENT_BLOCK_ID = 110;
+FIFF.FIFF_FILE_ID = 100
+FIFF.FIFF_DIR_POINTER = 101
+FIFF.FIFF_BLOCK_ID = 103
+FIFF.FIFF_BLOCK_START = 104
+FIFF.FIFF_BLOCK_END = 105
+FIFF.FIFF_FREE_LIST = 106
+FIFF.FIFF_FREE_BLOCK = 107
+FIFF.FIFF_NOP = 108
+FIFF.FIFF_PARENT_FILE_ID = 109
+FIFF.FIFF_PARENT_BLOCK_ID = 110
#
# Megacq saves the parameters in these tags
#
-FIFF.FIFF_DACQ_PARS = 150;
-FIFF.FIFF_DACQ_STIM = 151;
+FIFF.FIFF_DACQ_PARS = 150
+FIFF.FIFF_DACQ_STIM = 151
-FIFF.FIFF_SFREQ = 201;
-FIFF.FIFF_NCHAN = 200;
-FIFF.FIFF_DATA_PACK = 202;
-FIFF.FIFF_CH_INFO = 203;
-FIFF.FIFF_MEAS_DATE = 204;
-FIFF.FIFF_SUBJECT = 205;
-FIFF.FIFF_COMMENT = 206;
-FIFF.FIFF_NAVE = 207;
-FIFF.FIFF_DIG_POINT = 213;
-FIFF.FIFF_LOWPASS = 219;
-FIFF.FIFF_COORD_TRANS = 222;
-FIFF.FIFF_HIGHPASS = 223;
-FIFF.FIFF_NAME = 233;
-FIFF.FIFF_DESCRIPTION = FIFF.FIFF_COMMENT;
+FIFF.FIFF_SFREQ = 201
+FIFF.FIFF_NCHAN = 200
+FIFF.FIFF_DATA_PACK = 202
+FIFF.FIFF_CH_INFO = 203
+FIFF.FIFF_MEAS_DATE = 204
+FIFF.FIFF_SUBJECT = 205
+FIFF.FIFF_COMMENT = 206
+FIFF.FIFF_NAVE = 207
+FIFF.FIFF_DIG_POINT = 213
+FIFF.FIFF_LOWPASS = 219
+FIFF.FIFF_COORD_TRANS = 222
+FIFF.FIFF_HIGHPASS = 223
+FIFF.FIFF_NAME = 233
+FIFF.FIFF_DESCRIPTION = FIFF.FIFF_COMMENT
#
# Pointers
#
-FIFF.FIFFV_NEXT_SEQ = 0;
-FIFF.FIFFV_NEXT_NONE = -1;
+FIFF.FIFFV_NEXT_SEQ = 0
+FIFF.FIFFV_NEXT_NONE = -1
#
# Channel types
#
-FIFF.FIFFV_MEG_CH = 1;
-FIFF.FIFFV_REF_MEG_CH = 301;
-FIFF.FIFFV_EEG_CH = 2;
-FIFF.FIFFV_MCG_CH = 201;
-FIFF.FIFFV_STIM_CH = 3;
-FIFF.FIFFV_EOG_CH = 202;
-FIFF.FIFFV_EMG_CH = 302;
-FIFF.FIFFV_ECG_CH = 402;
-FIFF.FIFFV_MISC_CH = 502;
-FIFF.FIFFV_RESP_CH = 602; # Respiration monitoring
+FIFF.FIFFV_MEG_CH = 1
+FIFF.FIFFV_REF_MEG_CH = 301
+FIFF.FIFFV_EEG_CH = 2
+FIFF.FIFFV_MCG_CH = 201
+FIFF.FIFFV_STIM_CH = 3
+FIFF.FIFFV_EOG_CH = 202
+FIFF.FIFFV_EMG_CH = 302
+FIFF.FIFFV_ECG_CH = 402
+FIFF.FIFFV_MISC_CH = 502
+FIFF.FIFFV_RESP_CH = 602 # Respiration monitoring
#
# Quaternion channels for head position monitoring
#
-FIFF.FIFFV_QUAT_0 = 700; # Quaternion parameter q0; obsolete for unit quaternion
-FIFF.FIFFV_QUAT_1 = 701; # Quaternion parameter q1; rotation
-FIFF.FIFFV_QUAT_2 = 702; # Quaternion parameter q2; rotation
-FIFF.FIFFV_QUAT_3 = 703; # Quaternion parameter q3; rotation
-FIFF.FIFFV_QUAT_4 = 704; # Quaternion parameter q4; translation
-FIFF.FIFFV_QUAT_5 = 705; # Quaternion parameter q5; translation
-FIFF.FIFFV_QUAT_6 = 706; # Quaternion parameter q6; translation
-FIFF.FIFFV_HPI_G = 707; # Goodness-of-fit in continuous hpi
-FIFF.FIFFV_HPI_ERR = 708; # Estimation error in continuous hpi
-FIFF.FIFFV_HPI_MOV = 709; # Estimated head movement speed in continuous hpi
+FIFF.FIFFV_QUAT_0 = 700 # Quaternion parameter q0 obsolete for unit quaternion
+FIFF.FIFFV_QUAT_1 = 701 # Quaternion parameter q1 rotation
+FIFF.FIFFV_QUAT_2 = 702 # Quaternion parameter q2 rotation
+FIFF.FIFFV_QUAT_3 = 703 # Quaternion parameter q3 rotation
+FIFF.FIFFV_QUAT_4 = 704 # Quaternion parameter q4 translation
+FIFF.FIFFV_QUAT_5 = 705 # Quaternion parameter q5 translation
+FIFF.FIFFV_QUAT_6 = 706 # Quaternion parameter q6 translation
+FIFF.FIFFV_HPI_G = 707 # Goodness-of-fit in continuous hpi
+FIFF.FIFFV_HPI_ERR = 708 # Estimation error in continuous hpi
+FIFF.FIFFV_HPI_MOV = 709 # Estimated head movement speed in continuous hpi
#
# Coordinate frames
#
-FIFF.FIFFV_COORD_UNKNOWN = 0;
-FIFF.FIFFV_COORD_DEVICE = 1;
-FIFF.FIFFV_COORD_ISOTRAK = 2;
-FIFF.FIFFV_COORD_HPI = 3;
-FIFF.FIFFV_COORD_HEAD = 4;
-FIFF.FIFFV_COORD_MRI = 5;
-FIFF.FIFFV_COORD_MRI_SLICE = 6;
-FIFF.FIFFV_COORD_MRI_DISPLAY = 7;
-FIFF.FIFFV_COORD_DICOM_DEVICE = 8;
-FIFF.FIFFV_COORD_IMAGING_DEVICE = 9;
+FIFF.FIFFV_COORD_UNKNOWN = 0
+FIFF.FIFFV_COORD_DEVICE = 1
+FIFF.FIFFV_COORD_ISOTRAK = 2
+FIFF.FIFFV_COORD_HPI = 3
+FIFF.FIFFV_COORD_HEAD = 4
+FIFF.FIFFV_COORD_MRI = 5
+FIFF.FIFFV_COORD_MRI_SLICE = 6
+FIFF.FIFFV_COORD_MRI_DISPLAY = 7
+FIFF.FIFFV_COORD_DICOM_DEVICE = 8
+FIFF.FIFFV_COORD_IMAGING_DEVICE = 9
#
# Needed for raw and evoked-response data
#
-FIFF.FIFF_FIRST_SAMPLE = 208;
-FIFF.FIFF_LAST_SAMPLE = 209;
-FIFF.FIFF_ASPECT_KIND = 210;
-FIFF.FIFF_DATA_BUFFER = 300; # Buffer containing measurement data
-FIFF.FIFF_DATA_SKIP = 301; # Data skip in buffers
-FIFF.FIFF_EPOCH = 302; # Buffer containing one epoch and channel
-FIFF.FIFF_DATA_SKIP_SAMP = 303; # Data skip in samples
+FIFF.FIFF_FIRST_SAMPLE = 208
+FIFF.FIFF_LAST_SAMPLE = 209
+FIFF.FIFF_ASPECT_KIND = 210
+FIFF.FIFF_DATA_BUFFER = 300 # Buffer containing measurement data
+FIFF.FIFF_DATA_SKIP = 301 # Data skip in buffers
+FIFF.FIFF_EPOCH = 302 # Buffer containing one epoch and channel
+FIFF.FIFF_DATA_SKIP_SAMP = 303 # Data skip in samples
#
# Different aspects of data
#
-FIFF.FIFFV_ASPECT_AVERAGE = 100; # Normal average of epochs
-FIFF.FIFFV_ASPECT_STD_ERR = 101; # Std. error of mean
-FIFF.FIFFV_ASPECT_SINGLE = 102; # Single epoch cut out from the continuous data
-FIFF.FIFFV_ASPECT_SUBAVERAGE = 103;
-FIFF.FIFFV_ASPECT_ALTAVERAGE = 104; # Alternating subaverage
-FIFF.FIFFV_ASPECT_SAMPLE = 105; # A sample cut out by graph
-FIFF.FIFFV_ASPECT_POWER_DENSITY = 106; # Power density spectrum
-FIFF.FIFFV_ASPECT_DIPOLE_WAVE = 200; # Dipole amplitude curve
+FIFF.FIFFV_ASPECT_AVERAGE = 100 # Normal average of epochs
+FIFF.FIFFV_ASPECT_STD_ERR = 101 # Std. error of mean
+FIFF.FIFFV_ASPECT_SINGLE = 102 # Single epoch cut out from the continuous data
+FIFF.FIFFV_ASPECT_SUBAVERAGE = 103
+FIFF.FIFFV_ASPECT_ALTAVERAGE = 104 # Alternating subaverage
+FIFF.FIFFV_ASPECT_SAMPLE = 105 # A sample cut out by graph
+FIFF.FIFFV_ASPECT_POWER_DENSITY = 106 # Power density spectrum
+FIFF.FIFFV_ASPECT_DIPOLE_WAVE = 200 # Dipole amplitude curve
#
# BEM surface IDs
#
-FIFF.FIFFV_BEM_SURF_ID_UNKNOWN = -1;
-FIFF.FIFFV_BEM_SURF_ID_BRAIN = 1;
-FIFF.FIFFV_BEM_SURF_ID_SKULL = 3;
-FIFF.FIFFV_BEM_SURF_ID_HEAD = 4;
+FIFF.FIFFV_BEM_SURF_ID_UNKNOWN = -1
+FIFF.FIFFV_BEM_SURF_ID_BRAIN = 1
+FIFF.FIFFV_BEM_SURF_ID_SKULL = 3
+FIFF.FIFFV_BEM_SURF_ID_HEAD = 4
#
# More of those defined in MNE
#
-FIFF.FIFFV_MNE_SURF_UNKNOWN = -1;
-FIFF.FIFFV_MNE_SURF_LEFT_HEMI = 101;
-FIFF.FIFFV_MNE_SURF_RIGHT_HEMI = 102;
+FIFF.FIFFV_MNE_SURF_UNKNOWN = -1
+FIFF.FIFFV_MNE_SURF_LEFT_HEMI = 101
+FIFF.FIFFV_MNE_SURF_RIGHT_HEMI = 102
#
# These relate to the Isotrak data
#
-FIFF.FIFFV_POINT_CARDINAL = 1;
-FIFF.FIFFV_POINT_HPI = 2;
-FIFF.FIFFV_POINT_EEG = 3;
-FIFF.FIFFV_POINT_ECG = FIFF.FIFFV_POINT_EEG;
-FIFF.FIFFV_POINT_EXTRA = 4;
+FIFF.FIFFV_POINT_CARDINAL = 1
+FIFF.FIFFV_POINT_HPI = 2
+FIFF.FIFFV_POINT_EEG = 3
+FIFF.FIFFV_POINT_ECG = FIFF.FIFFV_POINT_EEG
+FIFF.FIFFV_POINT_EXTRA = 4
-FIFF.FIFFV_POINT_LPA=1;
-FIFF.FIFFV_POINT_NASION=2;
-FIFF.FIFFV_POINT_RPA=3;
+FIFF.FIFFV_POINT_LPA = 1
+FIFF.FIFFV_POINT_NASION = 2
+FIFF.FIFFV_POINT_RPA = 3
#
# SSP
#
-FIFF.FIFF_PROJ_ITEM_KIND = 3411;
-FIFF.FIFF_PROJ_ITEM_TIME = 3412;
-FIFF.FIFF_PROJ_ITEM_NVEC = 3414;
-FIFF.FIFF_PROJ_ITEM_VECTORS = 3415;
-FIFF.FIFF_PROJ_ITEM_CH_NAME_LIST = 3417;
+FIFF.FIFF_PROJ_ITEM_KIND = 3411
+FIFF.FIFF_PROJ_ITEM_TIME = 3412
+FIFF.FIFF_PROJ_ITEM_NVEC = 3414
+FIFF.FIFF_PROJ_ITEM_VECTORS = 3415
+FIFF.FIFF_PROJ_ITEM_CH_NAME_LIST = 3417
#
# MRIs
#
-FIFF.FIFF_MRI_SOURCE_PATH = 1101;
-FIFF.FIFF_MRI_SOURCE_FORMAT = 2002;
-FIFF.FIFF_MRI_PIXEL_ENCODING = 2003;
-FIFF.FIFF_MRI_PIXEL_DATA_OFFSET = 2004;
-FIFF.FIFF_MRI_PIXEL_SCALE = 2005;
-FIFF.FIFF_MRI_PIXEL_DATA = 2006;
-FIFF.FIFF_MRI_WIDTH = 2010;
-FIFF.FIFF_MRI_WIDTH_M = 2011;
-FIFF.FIFF_MRI_HEIGHT = 2012;
-FIFF.FIFF_MRI_HEIGHT_M = 2013;
-#
-FIFF.FIFFV_MRI_PIXEL_BYTE = 1;
-FIFF.FIFFV_MRI_PIXEL_WORD = 2;
-FIFF.FIFFV_MRI_PIXEL_SWAP_WORD = 3;
-FIFF.FIFFV_MRI_PIXEL_FLOAT = 4;
-#
-# These are the MNE fiff definitions
-#
-FIFF.FIFFB_MNE = 350;
-FIFF.FIFFB_MNE_SOURCE_SPACE = 351;
-FIFF.FIFFB_MNE_FORWARD_SOLUTION = 352;
-FIFF.FIFFB_MNE_PARENT_MRI_FILE = 353;
-FIFF.FIFFB_MNE_PARENT_MEAS_FILE = 354;
-FIFF.FIFFB_MNE_COV = 355;
-FIFF.FIFFB_MNE_INVERSE_SOLUTION = 356;
-FIFF.FIFFB_MNE_NAMED_MATRIX = 357;
-FIFF.FIFFB_MNE_ENV = 358;
-FIFF.FIFFB_MNE_BAD_CHANNELS = 359;
-FIFF.FIFFB_MNE_VERTEX_MAP = 360;
-FIFF.FIFFB_MNE_EVENTS = 361;
-FIFF.FIFFB_MNE_MORPH_MAP = 362;
+FIFF.FIFF_MRI_SOURCE_PATH = 1101
+FIFF.FIFF_MRI_SOURCE_FORMAT = 2002
+FIFF.FIFF_MRI_PIXEL_ENCODING = 2003
+FIFF.FIFF_MRI_PIXEL_DATA_OFFSET = 2004
+FIFF.FIFF_MRI_PIXEL_SCALE = 2005
+FIFF.FIFF_MRI_PIXEL_DATA = 2006
+FIFF.FIFF_MRI_WIDTH = 2010
+FIFF.FIFF_MRI_WIDTH_M = 2011
+FIFF.FIFF_MRI_HEIGHT = 2012
+FIFF.FIFF_MRI_HEIGHT_M = 2013
+#
+FIFF.FIFFV_MRI_PIXEL_BYTE = 1
+FIFF.FIFFV_MRI_PIXEL_WORD = 2
+FIFF.FIFFV_MRI_PIXEL_SWAP_WORD = 3
+FIFF.FIFFV_MRI_PIXEL_FLOAT = 4
+#
+# These are the MNE fiff definitions
+#
+FIFF.FIFFB_MNE = 350
+FIFF.FIFFB_MNE_SOURCE_SPACE = 351
+FIFF.FIFFB_MNE_FORWARD_SOLUTION = 352
+FIFF.FIFFB_MNE_PARENT_MRI_FILE = 353
+FIFF.FIFFB_MNE_PARENT_MEAS_FILE = 354
+FIFF.FIFFB_MNE_COV = 355
+FIFF.FIFFB_MNE_INVERSE_SOLUTION = 356
+FIFF.FIFFB_MNE_NAMED_MATRIX = 357
+FIFF.FIFFB_MNE_ENV = 358
+FIFF.FIFFB_MNE_BAD_CHANNELS = 359
+FIFF.FIFFB_MNE_VERTEX_MAP = 360
+FIFF.FIFFB_MNE_EVENTS = 361
+FIFF.FIFFB_MNE_MORPH_MAP = 362
#
# CTF compensation data
#
-FIFF.FIFFB_MNE_CTF_COMP = 370;
-FIFF.FIFFB_MNE_CTF_COMP_DATA = 371;
+FIFF.FIFFB_MNE_CTF_COMP = 370
+FIFF.FIFFB_MNE_CTF_COMP_DATA = 371
#
# Fiff tags associated with MNE computations (3500...)
#
#
# 3500... Bookkeeping
#
-FIFF.FIFF_MNE_ROW_NAMES = 3502;
-FIFF.FIFF_MNE_COL_NAMES = 3503;
-FIFF.FIFF_MNE_NROW = 3504;
-FIFF.FIFF_MNE_NCOL = 3505;
-FIFF.FIFF_MNE_COORD_FRAME = 3506; # Coordinate frame employed. Defaults:
- # FIFFB_MNE_SOURCE_SPACE FIFFV_COORD_MRI
- # FIFFB_MNE_FORWARD_SOLUTION FIFFV_COORD_HEAD
- # FIFFB_MNE_INVERSE_SOLUTION FIFFV_COORD_HEAD
-FIFF.FIFF_MNE_CH_NAME_LIST = 3507;
-FIFF.FIFF_MNE_FILE_NAME = 3508; # This removes the collision with fiff_file.h (used to be 3501)
+FIFF.FIFF_MNE_ROW_NAMES = 3502
+FIFF.FIFF_MNE_COL_NAMES = 3503
+FIFF.FIFF_MNE_NROW = 3504
+FIFF.FIFF_MNE_NCOL = 3505
+FIFF.FIFF_MNE_COORD_FRAME = 3506 # Coordinate frame employed. Defaults:
+ # FIFFB_MNE_SOURCE_SPACE FIFFV_COORD_MRI
+ # FIFFB_MNE_FORWARD_SOLUTION FIFFV_COORD_HEAD
+ # FIFFB_MNE_INVERSE_SOLUTION FIFFV_COORD_HEAD
+FIFF.FIFF_MNE_CH_NAME_LIST = 3507
+FIFF.FIFF_MNE_FILE_NAME = 3508 # This removes the collision with fiff_file.h (used to be 3501)
#
# 3510... 3590... Source space or surface
#
-FIFF.FIFF_MNE_SOURCE_SPACE_POINTS = 3510; # The vertices
-FIFF.FIFF_MNE_SOURCE_SPACE_NORMALS = 3511; # The vertex normals
-FIFF.FIFF_MNE_SOURCE_SPACE_NPOINTS = 3512; # How many vertices
-FIFF.FIFF_MNE_SOURCE_SPACE_SELECTION = 3513; # Which are selected to the source space
-FIFF.FIFF_MNE_SOURCE_SPACE_NUSE = 3514; # How many are in use
-FIFF.FIFF_MNE_SOURCE_SPACE_NEAREST = 3515; # Nearest source space vertex for all vertices
-FIFF.FIFF_MNE_SOURCE_SPACE_NEAREST_DIST = 3516; # Distance to the Nearest source space vertex for all vertices
-FIFF.FIFF_MNE_SOURCE_SPACE_ID = 3517; # Identifier
+FIFF.FIFF_MNE_SOURCE_SPACE_POINTS = 3510 # The vertices
+FIFF.FIFF_MNE_SOURCE_SPACE_NORMALS = 3511 # The vertex normals
+FIFF.FIFF_MNE_SOURCE_SPACE_NPOINTS = 3512 # How many vertices
+FIFF.FIFF_MNE_SOURCE_SPACE_SELECTION = 3513 # Which are selected to the source space
+FIFF.FIFF_MNE_SOURCE_SPACE_NUSE = 3514 # How many are in use
+FIFF.FIFF_MNE_SOURCE_SPACE_NEAREST = 3515 # Nearest source space vertex for all vertices
+FIFF.FIFF_MNE_SOURCE_SPACE_NEAREST_DIST = 3516 # Distance to the Nearest source space vertex for all vertices
+FIFF.FIFF_MNE_SOURCE_SPACE_ID = 3517 # Identifier
-FIFF.FIFF_MNE_SOURCE_SPACE_NTRI = 3590; # Number of triangles
-FIFF.FIFF_MNE_SOURCE_SPACE_TRIANGLES = 3591; # The triangulation
-FIFF.FIFF_MNE_SOURCE_SPACE_NUSE_TRI = 3592; # Number of triangles corresponding to the number of vertices in use
-FIFF.FIFF_MNE_SOURCE_SPACE_USE_TRIANGLES = 3593; # The triangulation of the used vertices in the source space
+FIFF.FIFF_MNE_SOURCE_SPACE_NTRI = 3590 # Number of triangles
+FIFF.FIFF_MNE_SOURCE_SPACE_TRIANGLES = 3591 # The triangulation
+FIFF.FIFF_MNE_SOURCE_SPACE_NUSE_TRI = 3592 # Number of triangles corresponding to the number of vertices in use
+FIFF.FIFF_MNE_SOURCE_SPACE_USE_TRIANGLES = 3593 # The triangulation of the used vertices in the source space
#
# 3520... Forward solution
#
-FIFF.FIFF_MNE_FORWARD_SOLUTION = 3520;
-FIFF.FIFF_MNE_SOURCE_ORIENTATION = 3521; # Fixed or free
-FIFF.FIFF_MNE_INCLUDED_METHODS = 3522;
-FIFF.FIFF_MNE_FORWARD_SOLUTION_GRAD = 3523;
+FIFF.FIFF_MNE_FORWARD_SOLUTION = 3520
+FIFF.FIFF_MNE_SOURCE_ORIENTATION = 3521 # Fixed or free
+FIFF.FIFF_MNE_INCLUDED_METHODS = 3522
+FIFF.FIFF_MNE_FORWARD_SOLUTION_GRAD = 3523
#
# 3530... Covariance matrix
#
-FIFF.FIFF_MNE_COV_KIND = 3530; # What kind of a covariance matrix
-FIFF.FIFF_MNE_COV_DIM = 3531; # Matrix dimension
-FIFF.FIFF_MNE_COV = 3532; # Full matrix in packed representation (lower triangle)
-FIFF.FIFF_MNE_COV_DIAG = 3533; # Diagonal matrix
-FIFF.FIFF_MNE_COV_EIGENVALUES = 3534; # Eigenvalues and eigenvectors of the above
-FIFF.FIFF_MNE_COV_EIGENVECTORS = 3535;
-FIFF.FIFF_MNE_COV_NFREE = 3536; # Number of degrees of freedom
+FIFF.FIFF_MNE_COV_KIND = 3530 # What kind of a covariance matrix
+FIFF.FIFF_MNE_COV_DIM = 3531 # Matrix dimension
+FIFF.FIFF_MNE_COV = 3532 # Full matrix in packed representation (lower triangle)
+FIFF.FIFF_MNE_COV_DIAG = 3533 # Diagonal matrix
+FIFF.FIFF_MNE_COV_EIGENVALUES = 3534 # Eigenvalues and eigenvectors of the above
+FIFF.FIFF_MNE_COV_EIGENVECTORS = 3535
+FIFF.FIFF_MNE_COV_NFREE = 3536 # Number of degrees of freedom
#
# 3540... Inverse operator
#
# We store the inverse operator as the eigenleads, eigenfields,
# and weights
#
-FIFF.FIFF_MNE_INVERSE_LEADS = 3540; # The eigenleads
-FIFF.FIFF_MNE_INVERSE_LEADS_WEIGHTED = 3546; # The eigenleads (already weighted with R^0.5)
-FIFF.FIFF_MNE_INVERSE_FIELDS = 3541; # The eigenfields
-FIFF.FIFF_MNE_INVERSE_SING = 3542; # The singular values
-FIFF.FIFF_MNE_PRIORS_USED = 3543; # Which kind of priors have been used for the source covariance matrix
-FIFF.FIFF_MNE_INVERSE_FULL = 3544; # Inverse operator as one matrix
- # This matrix includes the whitening operator as well
- # The regularization is applied
-FIFF.FIFF_MNE_INVERSE_SOURCE_ORIENTATIONS = 3545; # Contains the orientation of one source per row
- # The source orientations must be expressed in the coordinate system
- # given by FIFF_MNE_COORD_FRAME
+FIFF.FIFF_MNE_INVERSE_LEADS = 3540 # The eigenleads
+FIFF.FIFF_MNE_INVERSE_LEADS_WEIGHTED = 3546 # The eigenleads (already weighted with R^0.5)
+FIFF.FIFF_MNE_INVERSE_FIELDS = 3541 # The eigenfields
+FIFF.FIFF_MNE_INVERSE_SING = 3542 # The singular values
+FIFF.FIFF_MNE_PRIORS_USED = 3543 # Which kind of priors have been used for the source covariance matrix
+FIFF.FIFF_MNE_INVERSE_FULL = 3544 # Inverse operator as one matrix
+ # This matrix includes the whitening operator as well
+ # The regularization is applied
+FIFF.FIFF_MNE_INVERSE_SOURCE_ORIENTATIONS = 3545 # Contains the orientation of one source per row
+ # The source orientations must be expressed in the coordinate system
+ # given by FIFF_MNE_COORD_FRAME
#
# 3550... Saved environment info
#
-FIFF.FIFF_MNE_ENV_WORKING_DIR = 3550; # Working directory where the file was created
-FIFF.FIFF_MNE_ENV_COMMAND_LINE = 3551; # The command used to create the file
+FIFF.FIFF_MNE_ENV_WORKING_DIR = 3550 # Working directory where the file was created
+FIFF.FIFF_MNE_ENV_COMMAND_LINE = 3551 # The command used to create the file
#
# 3560... Miscellaneous
#
-FIFF.FIFF_MNE_PROJ_ITEM_ACTIVE = 3560; # Is this projection item active?
-FIFF.FIFF_MNE_EVENT_LIST = 3561; # An event list (for STI 014)
-FIFF.FIFF_MNE_HEMI = 3562; # Hemisphere association for general purposes
+FIFF.FIFF_MNE_PROJ_ITEM_ACTIVE = 3560 # Is this projection item active?
+FIFF.FIFF_MNE_EVENT_LIST = 3561 # An event list (for STI 014)
+FIFF.FIFF_MNE_HEMI = 3562 # Hemisphere association for general purposes
#
# 3570... Morphing maps
#
-FIFF.FIFF_MNE_MORPH_MAP = 3570; # Mapping of closest vertices on the sphere
-FIFF.FIFF_MNE_MORPH_MAP_FROM = 3571; # Which subject is this map from
-FIFF.FIFF_MNE_MORPH_MAP_TO = 3572; # Which subject is this map to
+FIFF.FIFF_MNE_MORPH_MAP = 3570 # Mapping of closest vertices on the sphere
+FIFF.FIFF_MNE_MORPH_MAP_FROM = 3571 # Which subject is this map from
+FIFF.FIFF_MNE_MORPH_MAP_TO = 3572 # Which subject is this map to
#
# 3580... CTF compensation data
#
-FIFF.FIFF_MNE_CTF_COMP_KIND = 3580; # What kind of compensation
-FIFF.FIFF_MNE_CTF_COMP_DATA = 3581; # The compensation data itself
-FIFF.FIFF_MNE_CTF_COMP_CALIBRATED = 3582; # Are the coefficients calibrated?
+FIFF.FIFF_MNE_CTF_COMP_KIND = 3580 # What kind of compensation
+FIFF.FIFF_MNE_CTF_COMP_DATA = 3581 # The compensation data itself
+FIFF.FIFF_MNE_CTF_COMP_CALIBRATED = 3582 # Are the coefficients calibrated?
#
# Fiff values associated with MNE computations
#
-FIFF.FIFFV_MNE_FIXED_ORI = 1;
-FIFF.FIFFV_MNE_FREE_ORI = 2;
+FIFF.FIFFV_MNE_FIXED_ORI = 1
+FIFF.FIFFV_MNE_FREE_ORI = 2
-FIFF.FIFFV_MNE_MEG = 1;
-FIFF.FIFFV_MNE_EEG = 2;
-FIFF.FIFFV_MNE_MEG_EEG = 3;
+FIFF.FIFFV_MNE_MEG = 1
+FIFF.FIFFV_MNE_EEG = 2
+FIFF.FIFFV_MNE_MEG_EEG = 3
-FIFF.FIFFV_MNE_UNKNOWN_COV = 0;
-FIFF.FIFFV_MNE_SENSOR_COV = 1;
-FIFF.FIFFV_MNE_NOISE_COV = 1; # This is what it should have been called
-FIFF.FIFFV_MNE_SOURCE_COV = 2;
-FIFF.FIFFV_MNE_FMRI_PRIOR_COV = 3;
-FIFF.FIFFV_MNE_SIGNAL_COV = 4; # This will be potentially employed in beamformers
-FIFF.FIFFV_MNE_DEPTH_PRIOR_COV = 5; # The depth weighting prior
-FIFF.FIFFV_MNE_ORIENT_PRIOR_COV = 6; # The orientation prior
+FIFF.FIFFV_MNE_UNKNOWN_COV = 0
+FIFF.FIFFV_MNE_SENSOR_COV = 1
+FIFF.FIFFV_MNE_NOISE_COV = 1 # This is what it should have been called
+FIFF.FIFFV_MNE_SOURCE_COV = 2
+FIFF.FIFFV_MNE_FMRI_PRIOR_COV = 3
+FIFF.FIFFV_MNE_SIGNAL_COV = 4 # This will be potentially employed in beamformers
+FIFF.FIFFV_MNE_DEPTH_PRIOR_COV = 5 # The depth weighting prior
+FIFF.FIFFV_MNE_ORIENT_PRIOR_COV = 6 # The orientation prior
#
# Projection item kinds
#
-FIFF.FIFFV_PROJ_ITEM_NONE = 0;
-FIFF.FIFFV_PROJ_ITEM_FIELD = 1;
-FIFF.FIFFV_PROJ_ITEM_DIP_FIX = 2;
-FIFF.FIFFV_PROJ_ITEM_DIP_ROT = 3;
-FIFF.FIFFV_PROJ_ITEM_HOMOG_GRAD = 4;
-FIFF.FIFFV_PROJ_ITEM_HOMOG_FIELD = 5;
-FIFF.FIFFV_MNE_PROJ_ITEM_EEG_AVREF = 10;
+FIFF.FIFFV_PROJ_ITEM_NONE = 0
+FIFF.FIFFV_PROJ_ITEM_FIELD = 1
+FIFF.FIFFV_PROJ_ITEM_DIP_FIX = 2
+FIFF.FIFFV_PROJ_ITEM_DIP_ROT = 3
+FIFF.FIFFV_PROJ_ITEM_HOMOG_GRAD = 4
+FIFF.FIFFV_PROJ_ITEM_HOMOG_FIELD = 5
+FIFF.FIFFV_MNE_PROJ_ITEM_EEG_AVREF = 10
#
# Additional coordinate frames
#
-FIFF.FIFFV_MNE_COORD_TUFTS_EEG = 300; # For Tufts EEG data
-FIFF.FIFFV_MNE_COORD_CTF_DEVICE = 1001; # CTF device coordinates
-FIFF.FIFFV_MNE_COORD_CTF_HEAD = 1004; # CTF head coordinates
-FIFF.FIFFV_MNE_COORD_MRI_VOXEL = 2001; # The MRI voxel coordinates
-FIFF.FIFFV_MNE_COORD_RAS = 2002; # Surface RAS coordinates with non-zero origin
-FIFF.FIFFV_MNE_COORD_MNI_TAL = 2003; # MNI Talairach coordinates
-FIFF.FIFFV_MNE_COORD_FS_TAL_GTZ = 2004; # FreeSurfer Talairach coordinates (MNI z > 0)
-FIFF.FIFFV_MNE_COORD_FS_TAL_LTZ = 2005; # FreeSurfer Talairach coordinates (MNI z < 0)
-FIFF.FIFFV_MNE_COORD_FS_TAL = 2006; # FreeSurfer Talairach coordinates
-#
+FIFF.FIFFV_MNE_COORD_TUFTS_EEG = 300 # For Tufts EEG data
+FIFF.FIFFV_MNE_COORD_CTF_DEVICE = 1001 # CTF device coordinates
+FIFF.FIFFV_MNE_COORD_CTF_HEAD = 1004 # CTF head coordinates
+FIFF.FIFFV_MNE_COORD_MRI_VOXEL = 2001 # The MRI voxel coordinates
+FIFF.FIFFV_MNE_COORD_RAS = 2002 # Surface RAS coordinates with non-zero origin
+FIFF.FIFFV_MNE_COORD_MNI_TAL = 2003 # MNI Talairach coordinates
+FIFF.FIFFV_MNE_COORD_FS_TAL_GTZ = 2004 # FreeSurfer Talairach coordinates (MNI z > 0)
+FIFF.FIFFV_MNE_COORD_FS_TAL_LTZ = 2005 # FreeSurfer Talairach coordinates (MNI z < 0)
+FIFF.FIFFV_MNE_COORD_FS_TAL = 2006 # FreeSurfer Talairach coordinates
+#
# CTF coil and channel types
#
-FIFF.FIFFV_REF_MEG_CH = 301;
+FIFF.FIFFV_REF_MEG_CH = 301
#
# Data types
#
-FIFF.FIFFT_VOID = 0;
-FIFF.FIFFT_BYTE = 1;
-FIFF.FIFFT_SHORT = 2;
-FIFF.FIFFT_INT = 3;
-FIFF.FIFFT_FLOAT = 4;
-FIFF.FIFFT_DOUBLE = 5;
-FIFF.FIFFT_JULIAN = 6;
-FIFF.FIFFT_USHORT = 7;
-FIFF.FIFFT_UINT = 8;
-FIFF.FIFFT_ULONG = 9;
-FIFF.FIFFT_STRING = 10;
-FIFF.FIFFT_LONG = 11;
-FIFF.FIFFT_DAU_PACK13 = 13;
-FIFF.FIFFT_DAU_PACK14 = 14;
-FIFF.FIFFT_DAU_PACK16 = 16;
-FIFF.FIFFT_COMPLEX_FLOAT = 20;
-FIFF.FIFFT_COMPLEX_DOUBLE = 21;
-FIFF.FIFFT_OLD_PACK = 23;
-FIFF.FIFFT_CH_INFO_STRUCT = 30;
-FIFF.FIFFT_ID_STRUCT = 31;
-FIFF.FIFFT_DIR_ENTRY_STRUCT = 32;
-FIFF.FIFFT_DIG_POINT_STRUCT = 33;
-FIFF.FIFFT_CH_POS_STRUCT = 34;
-FIFF.FIFFT_COORD_TRANS_STRUCT = 35;
-FIFF.FIFFT_DIG_STRING_STRUCT = 36;
-FIFF.FIFFT_STREAM_SEGMENT_STRUCT = 37;
+FIFF.FIFFT_VOID = 0
+FIFF.FIFFT_BYTE = 1
+FIFF.FIFFT_SHORT = 2
+FIFF.FIFFT_INT = 3
+FIFF.FIFFT_FLOAT = 4
+FIFF.FIFFT_DOUBLE = 5
+FIFF.FIFFT_JULIAN = 6
+FIFF.FIFFT_USHORT = 7
+FIFF.FIFFT_UINT = 8
+FIFF.FIFFT_ULONG = 9
+FIFF.FIFFT_STRING = 10
+FIFF.FIFFT_LONG = 11
+FIFF.FIFFT_DAU_PACK13 = 13
+FIFF.FIFFT_DAU_PACK14 = 14
+FIFF.FIFFT_DAU_PACK16 = 16
+FIFF.FIFFT_COMPLEX_FLOAT = 20
+FIFF.FIFFT_COMPLEX_DOUBLE = 21
+FIFF.FIFFT_OLD_PACK = 23
+FIFF.FIFFT_CH_INFO_STRUCT = 30
+FIFF.FIFFT_ID_STRUCT = 31
+FIFF.FIFFT_DIR_ENTRY_STRUCT = 32
+FIFF.FIFFT_DIG_POINT_STRUCT = 33
+FIFF.FIFFT_CH_POS_STRUCT = 34
+FIFF.FIFFT_COORD_TRANS_STRUCT = 35
+FIFF.FIFFT_DIG_STRING_STRUCT = 36
+FIFF.FIFFT_STREAM_SEGMENT_STRUCT = 37
diff --git a/fiff/cov.py b/fiff/cov.py
index 91534a9..237b9c3 100644
--- a/fiff/cov.py
+++ b/fiff/cov.py
@@ -118,6 +118,7 @@ from .write import start_block, end_block, write_int, write_name_list, \
write_double, write_float_matrix, start_file, end_file
from .proj import write_proj
+
def write_cov(fid, cov):
"""
%
@@ -191,9 +192,9 @@ def write_cov_file(fname, cov):
fid = start_file(fname)
try:
- write_cov(fid,cov);
+ write_cov(fid, cov)
except Exception as inst:
os.remove(fname)
- raise '%s', inst
+ raise '%s', inst
end_file(fid)
diff --git a/fiff/open.py b/fiff/open.py
index 0a5edc6..25ca967 100644
--- a/fiff/open.py
+++ b/fiff/open.py
@@ -45,7 +45,7 @@ def fiff_open(fname, verbose=False):
tag.pos = pos
directory.append(tag)
- tree, _ = make_dir_tree(fid, directory)
+ tree, _ = make_dir_tree(fid, directory, verbose=verbose)
if verbose:
print '[done]\n'
diff --git a/fiff/tag.py b/fiff/tag.py
index 991b41a..9655cf3 100644
--- a/fiff/tag.py
+++ b/fiff/tag.py
@@ -4,6 +4,7 @@ import numpy as np
from .bunch import Bunch
from .constants import FIFF
+
class Tag(object):
"""docstring for Tag"""
def __init__(self, kind, type_, size, next, pos=None):
@@ -13,14 +14,14 @@ class Tag(object):
self.next = int(next)
self.pos = pos if pos is not None else next
self.pos = int(self.pos)
+ self.data = None
def __repr__(self):
out = "kind: %s - type: %s - size: %s - next: %s - pos: %s" % (
self.kind, self.type, self.size, self.next, self.pos)
if hasattr(self, 'data'):
- out += " - data: %s\n" % self.data
- else:
- out += "\n"
+ out += " - data: %s" % self.data
+ out += "\n"
return out
@@ -252,7 +253,7 @@ def find_tag(fid, node, findkind):
for p in range(node.nent):
if node.directory[p].kind == findkind:
return read_tag(fid, node.directory[p].pos)
- tag = None;
+ tag = None
return tag
diff --git a/fiff/tree.py b/fiff/tree.py
index e3ef2a0..2ce7871 100644
--- a/fiff/tree.py
+++ b/fiff/tree.py
@@ -6,7 +6,7 @@ def dir_tree_find(tree, kind):
"""[nodes] = dir_tree_find(tree,kind)
Find nodes of the given kind from a directory tree structure
-
+
Returns a list of matching nodes
"""
nodes = []
@@ -41,9 +41,7 @@ def make_dir_tree(fid, directory, start=0, indent=0, verbose=False):
block = 0
if verbose:
- for k in range(indent):
- print '\t'
- print 'start { %d\n' % block
+ print '\t'*indent + 'start { %d' % block
this = start
@@ -59,7 +57,8 @@ def make_dir_tree(fid, directory, start=0, indent=0, verbose=False):
while this < len(directory):
if directory[this].kind == FIFF_BLOCK_START:
if this != start:
- child, this = make_dir_tree(fid, directory, this, indent+1)
+ child, this = make_dir_tree(fid, directory, this,
+ indent+1, verbose)
tree.nchild += 1
tree.children.append(child)
elif directory[this].kind == FIFF_BLOCK_END:
@@ -71,35 +70,30 @@ def make_dir_tree(fid, directory, start=0, indent=0, verbose=False):
if tree.nent == 1:
tree.directory = list()
tree.directory.append(directory[this])
- #
- # Add the id information if available
- #
- if block == 0:
- if directory[this].kind == FIFF_FILE_ID:
- tag = read_tag(fid, directory[this].pos)
- tree.id = tag.data
- else:
- if directory[this].kind == FIFF_BLOCK_ID:
- tag = read_tag(fid, directory[this].pos)
- tree.id = tag.data
- elif directory[this].kind == FIFF_PARENT_BLOCK_ID:
- tag = read_tag(fid, directory[this].pos)
- tree.parent_id = tag.data
+
+ # Add the id information if available
+ if block == 0:
+ if directory[this].kind == FIFF_FILE_ID:
+ tag = read_tag(fid, directory[this].pos)
+ tree.id = tag.data
+ else:
+ if directory[this].kind == FIFF_BLOCK_ID:
+ tag = read_tag(fid, directory[this].pos)
+ tree.id = tag.data
+ elif directory[this].kind == FIFF_PARENT_BLOCK_ID:
+ tag = read_tag(fid, directory[this].pos)
+ tree.parent_id = tag.data
+
this += 1
- #
+
# Eliminate the empty directory
- #
if tree.nent == 0:
tree.directory = None
if verbose:
- for k in range(indent+1):
- print '\t'
- print 'block = %d nent = %d nchild = %d\n' % (tree.block, tree.nent,
- tree.nchild)
- for k in range(indent):
- print '\t'
- print 'end } %d\n' % block
+ print '\t'*(indent+1) + 'block = %d nent = %d nchild = %d' % (
+ tree.block, tree.nent, tree.nchild)
+ print '\t'*indent, 'end } %d' % block
last = this
return tree, last
--
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