MCPcopy
hub / github.com/mne-tools/mne-python / scale_bem

Function scale_bem

mne/coreg.py:894–946  ·  view source on GitHub ↗

Scale a bem file. Parameters ---------- subject_to : str Name of the scaled MRI subject (the destination mri subject). bem_name : str Name of the bem file. For example, to scale ``fsaverage-inner_skull-bem.fif``, the bem_name would be "inner_skull-bem

(
    subject_to,
    bem_name,
    subject_from=None,
    scale=None,
    subjects_dir=None,
    *,
    on_defects="raise",
    verbose=None,
)

Source from the content-addressed store, hash-verified

892
893@verbose
894def scale_bem(
895 subject_to,
896 bem_name,
897 subject_from=None,
898 scale=None,
899 subjects_dir=None,
900 *,
901 on_defects="raise",
902 verbose=None,
903):
904 """Scale a bem file.
905
906 Parameters
907 ----------
908 subject_to : str
909 Name of the scaled MRI subject (the destination mri subject).
910 bem_name : str
911 Name of the bem file. For example, to scale
912 ``fsaverage-inner_skull-bem.fif``, the bem_name would be
913 "inner_skull-bem".
914 subject_from : None | str
915 The subject from which to read the source space. If None, subject_from
916 is read from subject_to's config file.
917 scale : None | float | array, shape = (3,)
918 Scaling factor. Has to be specified if subjects_from is specified,
919 otherwise it is read from subject_to's config file.
920 subjects_dir : None | str
921 Override the SUBJECTS_DIR environment variable.
922 %(on_defects)s
923
924 .. versionadded:: 1.0
925 %(verbose)s
926 """
927 subjects_dir, subject_from, scale, uniform = _scale_params(
928 subject_to, subject_from, scale, subjects_dir
929 )
930
931 src = bem_fname.format(
932 subjects_dir=subjects_dir, subject=subject_from, name=bem_name
933 )
934 dst = bem_fname.format(subjects_dir=subjects_dir, subject=subject_to, name=bem_name)
935
936 if os.path.exists(dst):
937 raise OSError(f"File already exists: {dst}")
938
939 surfs = read_bem_surfaces(src, on_defects=on_defects)
940 for surf in surfs:
941 surf["rr"] *= scale
942 if not uniform:
943 assert len(surf["nn"]) > 0
944 surf["nn"] /= scale
945 _normalize_vectors(surf["nn"])
946 write_bem_surfaces(dst, surfs)
947
948
949@verbose

Callers 1

scale_mriFunction · 0.85

Calls 4

_scale_paramsFunction · 0.85
read_bem_surfacesFunction · 0.85
_normalize_vectorsFunction · 0.85
write_bem_surfacesFunction · 0.85

Tested by

no test coverage detected