def test_phantom(tmp_path, monkeypatch): """Test phantom data downloading.""" # The Otaniemi file is only ~6MB, so in principle maybe we could test # an actual download here. But it doesn't seem worth it given that # CircleCI will at least test the VectorView one, and this file should # not change often. monkeypatch.setattr( phantom_base, '_manifest_check_download', partial(_fake_mcd, name='phantom_otaniemi', fake_files=True)) fetch_phantom('otaniemi', subjects_dir=tmp_path) assert op.isfile(tmp_path / 'phantom_otaniemi' / 'mri' / 'T1.mgz')
# %% # .. _plt_brainstorm_phantom_elekta_eeg_sphere_geometry: # # Let's use a :ref:`sphere head geometry model <eeg_sphere_model>` # and let's see the coordinate alignment and the sphere location. The phantom # is properly modeled by a single-shell sphere with origin (0., 0., 0.). # # Even though this is a VectorView/TRIUX phantom, we can use the Otaniemi # phantom subject as a surrogate because the "head" surface (hemisphere outer # shell) has the same geometry for both phantoms, even though the internal # dipole locations differ. The phantom_otaniemi scan was aligned to the # phantom's head coordinate frame, so an identity ``trans`` is appropriate # here. subjects_dir = data_path fetch_phantom('otaniemi', subjects_dir=subjects_dir) sphere = mne.make_sphere_model(r0=(0., 0., 0.), head_radius=0.08) subject = 'phantom_otaniemi' trans = mne.transforms.Transform('head', 'mri', np.eye(4)) mne.viz.plot_alignment(epochs.info, subject=subject, show_axes=True, bem=sphere, dig=True, surfaces=('head-dense', 'inner_skull'), trans=trans, mri_fiducials=True, subjects_dir=subjects_dir) # %% # Let's do some dipole fits. We first compute the noise covariance,