Closed
Description
Description of the problem
Hello,
Not sure if both problems are related, but I am getting errors about measurement dates when trying to anonymize or write epochs data that was created with the mne-bids-pipeline in the last months. I would rather avoid having to run the pipeline again, as I just wanted to quickly take an example dataset, anonymize it, and use it for teaching.
1) When trying to anonymize the data, I get the following error:
epochs = epochs.anonymize()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[59], [line 1](vscode-notebook-cell:?execution_count=59&line=1)
----> [1](vscode-notebook-cell:?execution_count=59&line=1) epochs = epochs.anonymize()
File <decorator-gen-26>:12, in anonymize(self, daysback, keep_his, verbose)
File ~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/_fiff/meas_info.py:795, in SetChannelsMixin.anonymize(self, daysback, keep_his, verbose)
[793](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/_fiff/meas_info.py:793) info = self if isinstance(self, Info) else self.info
[794](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/_fiff/meas_info.py:794) anonymize_info(info, daysback=daysback, keep_his=keep_his, verbose=verbose)
--> [795](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/_fiff/meas_info.py:795) self.set_meas_date(info["meas_date"]) # unify annot update
[796](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/_fiff/meas_info.py:796) return self
File ~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/_fiff/meas_info.py:851, in SetChannelsMixin.set_meas_date(self, meas_date)
[848](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/_fiff/meas_info.py:848) value["machid"] = _tmp
[850](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/_fiff/meas_info.py:850) if hasattr(self, "annotations"):
--> [851](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/_fiff/meas_info.py:851) self.annotations._orig_time = meas_date
[852](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/_fiff/meas_info.py:852) return self
AttributeError: 'NoneType' object has no attribute '_orig_time'
2) When trying to save the data without anonymization, I get this one:
epochs.save('example_data_epochs.fif', overwrite=True)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[61], [line 1](vscode-notebook-cell:?execution_count=61&line=1)
----> [1](vscode-notebook-cell:?execution_count=61&line=1) epochs.save('example_data_epochs.fif', overwrite=True)
File <decorator-gen-222>:12, in save(self, fname, split_size, fmt, overwrite, split_naming, verbose)
File ~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:2325, in BaseEpochs.save(self, fname, split_size, fmt, overwrite, split_naming, verbose)
[2322](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:2322) # avoid missing event_ids in splits
[2323](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:2323) this_epochs.event_id = self.event_id
-> [2325](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:2325) _save_split(this_epochs, split_fnames, part_idx, n_parts, fmt, overwrite)
[2326](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:2326) return split_fnames
File ~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:136, in _save_split(epochs, split_fnames, part_idx, n_parts, fmt, overwrite)
[133](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:133) next_fname = split_fnames[next_idx]
[135](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:135) with start_and_end_file(this_fname) as fid:
--> [136](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:136) _save_part(fid, epochs, fmt, n_parts, next_fname, next_idx)
File ~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:149, in _save_part(fid, epochs, fmt, n_parts, next_fname, next_idx)
[146](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:146) write_id(fid, FIFF.FIFF_PARENT_BLOCK_ID, info["meas_id"])
[148](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:148) # Write measurement info
--> [149](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:149) write_meas_info(fid, info)
[151](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:151) # One or more evoked data sets
[152](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/epochs.py:152) start_block(fid, FIFF.FIFFB_PROCESSED_DATA)
...
[999](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/utils/numerics.py:999) or dt.tzinfo is not timezone.utc
[1000](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/utils/numerics.py:1000) ):
-> [1001](https://file+.vscode-resource.vscode-cdn.net/Users/sh254795/Documents/WORK_/TEACHING/2025_TEMPOMEGA_CAEN/~/.pyenv/versions/3.11.10/envs/mne/lib/python3.11/site-packages/mne/utils/numerics.py:1001) raise ValueError(f"Date must be datetime object in UTC: {repr(dt)}")
ValueError: Date must be datetime object in UTC: None
Steps to reproduce
sb = '13'
subject = 'sub-' + sb
print('*******************************************************************************')
print('SUBJECT: ' + subject)
# file name in BIDS format
fname_epochs = BIDSPath(
subject=sb,
session='01',
task='audio',
acquisition=None,
run=None,
recording=None,
space=None,
suffix="epo",
extension=".fif",
datatype='meg',
root=deriv_path,
processing="clean", # always use clean epochs
check=False,
)
fname_epochs = op.join(deriv_path, subject, 'ses-01', 'meg', subject + '_ses-01_task-audio_proc-clean_epo.fif')
epochs = mne.read_epochs(fname_epochs, preload=True)
epochs = epochs.anonymize()
epochs.save('example_data_epochs.fif', overwrite=True)
Link to data
I can share the date privately, as I cannot anonymize them.
Expected results
No errors.
Actual results
Errors, see above.
The data is saved, but not complete.
Additional information
Version: '1.9.0'