mne_bids.update_sidecar_json#
- mne_bids.update_sidecar_json(bids_path, entries, verbose=None)[source]#
Update sidecar files using a dictionary or JSON file.
Will update metadata fields inside the path defined by
bids_path.fpath
according to theentries
. If a field does not exist in the corresponding sidecar file, then that field will be created according to theentries
. If a field does exist in the corresponding sidecar file, then that field will be updated according to theentries
.For example, if
InstitutionName
is not defined in the sidecar json file, then trying to updateInstitutionName
toMartinos Center
will update the sidecar json file to haveInstitutionName
asMartinos Center
.- Parameters:
- bids_path
BIDSPath
The set of paths to update. The
mne_bids.BIDSPath
instance passed here must have the.root
attribute set. The.datatype
attribute may be set. If.datatype
is not set and only one data type (e.g., only EEG or MEG data) is present in the dataset, it will be selected automatically. This must uniquely identify an existing file path, else an error will be raised.- entries
dict
|str
|pathlib.Path
A dictionary, or JSON file that defines the sidecar fields and corresponding values to be updated to.
- verbose
bool
|str
|int
|None
Control verbosity of the logging output. If
None
, use the default verbosity level. See the logging documentation andmne.verbose()
for details. Should only be passed as a keyword argument.
- bids_path
- Raises:
RuntimeError
If the specified
bids_path.fpath
cannot be found in the dataset.RuntimeError
If the
bids_path.fpath
does not have.json
extension.
Notes
This function can only update JSON files.
Sidecar JSON files include files such as
*_ieeg.json
,*_coordsystem.json
,*_scans.json
, etc.You should double check that your update dictionary is correct for the corresponding sidecar JSON file because it will perform a dictionary update of the sidecar fields according to the passed in dictionary overwriting any information that was previously there.
Examples
Update a sidecar JSON file
>>> from pathlib import Path >>> root = Path('./mne_bids/tests/data/tiny_bids').absolute() >>> bids_path = BIDSPath(subject='01', task='rest', session='eeg', ... suffix='eeg', extension='.json', datatype='eeg', ... root=root) >>> entries = {'PowerLineFrequency': 60} >>> update_sidecar_json(bids_path, entries, verbose=False)