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

Method compute

mne/forward/_make_forward.py:1023–1066  ·  view source on GitHub ↗
(self, src)

Source from the content-addressed store, hash-verified

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 )
1039
1040 sensors = deepcopy(self.sensors)
1041 fwd_data = deepcopy(self.fwd_data)
1042 fwds = _compute_forwards_meeg(
1043 rr,
1044 sensors=sensors,
1045 fwd_data=fwd_data,
1046 n_jobs=self.n_jobs,
1047 )
1048 fwds = {
1049 key: _to_forward_dict(fwds[key], sensors[key]["ch_names"])
1050 for key in _FWD_ORDER
1051 if key in fwds
1052 }
1053 fwd = _merge_fwds(fwds, verbose=False)
1054 del fwds
1055
1056 fwd.update(**self.update_kwargs)
1057 # Delete some keys to clean up the source space:
1058 for key in ["working_dir", "command_line"]:
1059 if key in src.info:
1060 del src.info[key]
1061 # our `update_kwargs` set these, but they need to be updated for this src
1062 fwd["src"] = src
1063 fwd["nsource"] = sum(s["nuse"] for s in src)
1064 fwd["source_rr"] = np.vstack([s["rr"][s["inuse"] == 1] for s in src])
1065 fwd["source_nn"] = np.tile(np.eye(3), (fwd["nsource"], 1))
1066 return fwd

Callers 1

Calls 8

_ensure_srcFunction · 0.85
_filter_source_spacesFunction · 0.85
_compute_forwards_meegFunction · 0.85
_to_forward_dictFunction · 0.85
_merge_fwdsFunction · 0.85
_transform_toMethod · 0.80
copyMethod · 0.45
updateMethod · 0.45

Tested by 1