[med-svn] [python-mne] 154/376: fix preload in Epochs

Yaroslav Halchenko debian at onerussian.com
Fri Nov 27 17:22:25 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 85126dba4644ced26a490a5b0ce1feee12b310e1
Author: Alexandre Gramfort <alexandre.gramfort at inria.fr>
Date:   Tue Mar 22 21:13:51 2011 -0400

    fix preload in Epochs
---
 examples/plot_read_epochs.py |  2 +-
 mne/epochs.py                | 25 +++++++++++++++++++------
 2 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/examples/plot_read_epochs.py b/examples/plot_read_epochs.py
index 884eadf..c2a94d0 100644
--- a/examples/plot_read_epochs.py
+++ b/examples/plot_read_epochs.py
@@ -38,7 +38,7 @@ picks = fiff.pick_types(raw.info, meg=True, eeg=True, stim=False,
 
 # Read epochs
 epochs = mne.Epochs(raw, events, event_id, tmin, tmax,
-                    picks=picks, baseline=(None, 0), preload=False)
+                    picks=picks, baseline=(None, 0), preload=True)
 evoked = epochs.average() # average epochs to get the evoked response
 
 ###############################################################################
diff --git a/mne/epochs.py b/mne/epochs.py
index e4b0c9c..cd6d97a 100644
--- a/mne/epochs.py
+++ b/mne/epochs.py
@@ -66,7 +66,7 @@ class Epochs(object):
     def __init__(self, raw, events, event_id, tmin, tmax,
                 picks=None, keep_comp=False,
                 dest_comp=0, baseline=(None, 0),
-                preload=True):
+                preload=False):
         self.raw = raw
         self.event_id = event_id
         self.tmin = tmin
@@ -144,12 +144,25 @@ class Epochs(object):
                           dtype=np.float) / sfreq
 
         if self.preload:
-            self._data = self._get_data()
+            self._data = self._get_data_from_disk()
 
     def __len__(self):
         return len(self.events)
 
     def get_epoch(self, idx):
+        """Load one epoch
+
+        Returns
+        -------
+        data : array of shape [n_channels, n_times]
+            One epoch data
+        """
+        if self.preload:
+            return self._data[idx]
+        else:
+            return self._get_epoch_from_disk(idx)
+
+    def _get_epoch_from_disk(self, idx):
         """Load one epoch from disk"""
         sfreq = self.raw.info['sfreq']
         event_samp = self.events[idx, 0]
@@ -180,15 +193,15 @@ class Epochs(object):
 
         return epoch
 
-    def _get_data(self):
+    def _get_data_from_disk(self):
         """Load all data from disk
         """
         n_channels = len(self.ch_names)
         n_times = len(self.times)
         n_events = len(self.events)
         data = np.empty((n_events, n_channels, n_times))
-        for k, e in enumerate(self):
-            data[k] = e
+        for k in range(n_events):
+            data[k] = self._get_epoch_from_disk(k)
         return data
 
     def get_data(self):
@@ -202,7 +215,7 @@ class Epochs(object):
         if self.preload:
             return self._data
         else:
-            return self._get_data()
+            return self._get_data_from_disk()
 
     def __iter__(self):
         """To iteration over epochs easy.

-- 
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