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

Class _ForwardModeler

mne/forward/_make_forward.py:981–1066  ·  view source on GitHub ↗

Optimized incremental fitting using the same sensors and BEM.

Source from the content-addressed store, hash-verified

979
980
981class _ForwardModeler:
982 """Optimized incremental fitting using the same sensors and BEM."""
983
984 @verbose
985 def __init__(
986 self,
987 info,
988 trans,
989 bem,
990 *,
991 mindist=0.0,
992 n_jobs=1,
993 verbose=None,
994 ):
995 self.mri_head_t, _ = _get_trans(trans)
996 self.mindist = mindist
997 self.n_jobs = n_jobs
998 src = SourceSpaces([])
999 self.sensors, _, _, self.update_kwargs, self.bem = _prepare_for_forward(
1000 src,
1001 self.mri_head_t,
1002 info,
1003 bem,
1004 mindist,
1005 n_jobs,
1006 bem_extra="",
1007 trans="",
1008 info_extra="",
1009 meg=True,
1010 eeg=True,
1011 ignore_ref=False,
1012 )
1013 self.fwd_data = _prep_field_computation(
1014 sensors=self.sensors,
1015 bem=self.bem,
1016 n_jobs=self.n_jobs,
1017 )
1018 if self.bem["is_sphere"]:
1019 self.check_inside = _CheckInsideSphere(self.bem)
1020 else:
1021 self.check_inside = _CheckInside(_bem_find_surface(self.bem, "inner_skull"))
1022
1023 def compute(self, src):
1024 src = _ensure_src(src).copy()
1025 src._transform_to("head", self.mri_head_t)
1026 _filter_source_spaces(
1027 self.check_inside,
1028 n_jobs=self.n_jobs,
1029 limit=self.mindist,
1030 mri_head_t=self.mri_head_t,
1031 src=src,
1032 )
1033 rr = np.concatenate([s["rr"][s["vertno"]] for s in src])
1034 if len(rr) < 1:
1035 raise RuntimeError(
1036 "No points left in source space after excluding "
1037 "points close to inner skull."
1038 )

Callers 1

Calls

no outgoing calls

Tested by 1