MCPcopy Index your code
hub / github.com/mne-tools/mne-python / _get_src_data

Function _get_src_data

mne/morph.py:967–1024  ·  view source on GitHub ↗
(src, mri_resolution=True)

Source from the content-addressed store, hash-verified

965
966
967def _get_src_data(src, mri_resolution=True):
968 # copy data to avoid conflicts
969 _validate_type(
970 src,
971 (_BaseSurfaceSourceEstimate, "path-like", SourceSpaces),
972 "src",
973 "source space or surface source estimate",
974 )
975 if isinstance(src, _BaseSurfaceSourceEstimate):
976 src_t = [dict(vertno=src.vertices[0]), dict(vertno=src.vertices[1])]
977 src_kind = "surface"
978 src_subject = src.subject
979 else:
980 src_t = _ensure_src(src).copy()
981 src_kind = src_t.kind
982 src_subject = src_t._subject
983 del src
984 _check_option("src kind", src_kind, ("surface", "volume", "mixed"))
985
986 # extract all relevant data for volume operations
987 src_data = dict()
988 if src_kind in ("volume", "mixed"):
989 use_src = src_t[-1]
990 shape = use_src["shape"]
991 start = 0 if src_kind == "volume" else 2
992 for si, s in enumerate(src_t[start:], start):
993 if s.get("interpolator", None) is None:
994 if mri_resolution:
995 raise RuntimeError(
996 f"MRI interpolator not present in src[{si}], "
997 "cannot use mri_resolution=True"
998 )
999 interpolator = None
1000 break
1001 else:
1002 interpolator = sum((s["interpolator"] for s in src_t[start:]), 0.0)
1003 inuses = [s["inuse"] for s in src_t[start:]]
1004 src_data.update(
1005 {
1006 "src_shape": (shape[2], shape[1], shape[0]), # SAR
1007 "src_affine_vox": use_src["vox_mri_t"]["trans"],
1008 "src_affine_src": use_src["src_mri_t"]["trans"],
1009 "src_affine_ras": use_src["mri_ras_t"]["trans"],
1010 "src_shape_full": ( # SAR
1011 use_src["mri_height"],
1012 use_src["mri_depth"],
1013 use_src["mri_width"],
1014 ),
1015 "interpolator": interpolator,
1016 "inuse": inuses,
1017 "to_vox_map": None,
1018 }
1019 )
1020 if src_kind in ("surface", "mixed"):
1021 src_data.update(vertices_from=[s["vertno"].copy() for s in src_t[:2]])
1022
1023 # delete copy
1024 return src_data, src_kind, src_subject

Callers 2

compute_source_morphFunction · 0.85
_interpolate_dataFunction · 0.85

Calls 5

_validate_typeFunction · 0.85
_ensure_srcFunction · 0.85
_check_optionFunction · 0.85
copyMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected