Skip to content

Commit

Permalink
Dev docs nilearn/nilearn@6275389 : [FIX] coerce loaded data from NKI …
Browse files Browse the repository at this point in the history
…to float in examples (#4475)

* [full doc] print list of dependencies

* fix

* add comments
  • Loading branch information
actions-user committed Jun 28, 2024
1 parent f8531dd commit 953ff7b
Show file tree
Hide file tree
Showing 669 changed files with 4,951 additions and 4,894 deletions.
2 changes: 1 addition & 1 deletion dev/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 35b812e4d8cf3c1702417d577b6af5ba
config: b23d7c84dde12d66b77cc72aa762a240
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@

timeseries = surface.load_surf_data(nki_dataset["func_left"][0])

# Coercing to float is required to avoid errors withj scipy >= 0.14.0
timeseries = timeseries.astype(float)

# Extract seed region via label
pcc_region = b"G_cingul-Post-dorsal"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
},
"outputs": [],
"source": [
"# By default 2nd subject will be fetched\nimport numpy as np\nimport pandas as pd\n\nfrom nilearn import datasets\n\nhaxby_dataset = datasets.fetch_haxby()\n\n# repetition has to be known\nTR = 2.5"
"# By default 2nd subject will be fetched\nimport numpy as np\nimport pandas as pd\n\nfrom nilearn import datasets\n\nhaxby_dataset = datasets.fetch_haxby()\n\n# repetition has to be known\nt_r = 2.5"
]
},
{
Expand Down Expand Up @@ -58,7 +58,7 @@
},
"outputs": [],
"source": [
"events = {}\n# events will take the form of a dictionary of Dataframes, one per run\nfor run in unique_runs:\n # get the condition label per run\n conditions_run = conditions[runs == run]\n # get the number of scans per run, then the corresponding\n # vector of frame times\n n_scans = len(conditions_run)\n frame_times = TR * np.arange(n_scans)\n # each event last the full TR\n duration = TR * np.ones(n_scans)\n # Define the events object\n events_ = pd.DataFrame(\n {\n \"onset\": frame_times,\n \"trial_type\": conditions_run,\n \"duration\": duration,\n }\n )\n # remove the rest condition and insert into the dictionary\n events[run] = events_[events_.trial_type != \"rest\"]"
"events = {}\n# events will take the form of a dictionary of Dataframes, one per run\nfor run in unique_runs:\n # get the condition label per run\n conditions_run = conditions[runs == run]\n # get the number of scans per run, then the corresponding\n # vector of frame times\n n_scans = len(conditions_run)\n frame_times = t_r * np.arange(n_scans)\n # each event last the full TR\n duration = t_r * np.ones(n_scans)\n # Define the events object\n events_ = pd.DataFrame(\n {\n \"onset\": frame_times,\n \"trial_type\": conditions_run,\n \"duration\": duration,\n }\n )\n # remove the rest condition and insert into the dictionary\n events[run] = events_[events_.trial_type != \"rest\"]"
]
},
{
Expand All @@ -76,7 +76,7 @@
},
"outputs": [],
"source": [
"z_maps = []\nconditions_label = []\nrun_label = []\n\n# Instantiate the glm\nfrom nilearn.glm.first_level import FirstLevelModel\n\nglm = FirstLevelModel(\n t_r=TR,\n mask_img=haxby_dataset.mask,\n high_pass=0.008,\n smoothing_fwhm=4,\n memory=\"nilearn_cache\",\n)"
"z_maps = []\nconditions_label = []\nrun_label = []\n\n# Instantiate the glm\nfrom nilearn.glm.first_level import FirstLevelModel\n\nglm = FirstLevelModel(\n t_r=t_r,\n mask_img=haxby_dataset.mask,\n high_pass=0.008,\n smoothing_fwhm=4,\n memory=\"nilearn_cache\",\n)"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@

from nilearn.plotting import plot_design_matrix

tr = 1.0 # repetition time is 1 second
t_r = 1.0 # repetition time is 1 second
n_scans = 128 # the acquisition comprises 128 scans
frame_times = np.arange(n_scans) * tr # here are the corresponding frame times
frame_times = (
np.arange(n_scans) * t_r
) # here are the corresponding frame times

# %%
# Then we define parameters related to the experimental design.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
},
"outputs": [],
"source": [
"import numpy as np\n\nfrom nilearn.plotting import plot_design_matrix\n\ntr = 1.0 # repetition time is 1 second\nn_scans = 128 # the acquisition comprises 128 scans\nframe_times = np.arange(n_scans) * tr # here are the corresponding frame times"
"import numpy as np\n\nfrom nilearn.plotting import plot_design_matrix\n\nt_r = 1.0 # repetition time is 1 second\nn_scans = 128 # the acquisition comprises 128 scans\nframe_times = (\n np.arange(n_scans) * t_r\n) # here are the corresponding frame times"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
},
"outputs": [],
"source": [
"# Load resting state time series from nilearn\nfrom nilearn import surface\n\ntimeseries = surface.load_surf_data(nki_dataset[\"func_left\"][0])\n\n# Extract seed region via label\npcc_region = b\"G_cingul-Post-dorsal\"\n\nimport numpy as np\n\npcc_labels = np.where(parcellation == labels.index(pcc_region))[0]\n\n# Extract time series from seed region\nseed_timeseries = np.mean(timeseries[pcc_labels], axis=0)"
"# Load resting state time series from nilearn\nfrom nilearn import surface\n\ntimeseries = surface.load_surf_data(nki_dataset[\"func_left\"][0])\n\n# Coercing to float is required to avoid errors withj scipy >= 0.14.0\ntimeseries = timeseries.astype(float)\n\n# Extract seed region via label\npcc_region = b\"G_cingul-Post-dorsal\"\n\nimport numpy as np\n\npcc_labels = np.where(parcellation == labels.index(pcc_region))[0]\n\n# Extract time series from seed region\nseed_timeseries = np.mean(timeseries[pcc_labels], axis=0)"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
# Specify timing and design matrix parameters.

# repetition time, in seconds
tr = 2.0
t_r = 2.0
# Sample at the beginning of each acquisition.
slice_time_ref = 0.0
# We use a discrete cosine transform to model signal drifts.
Expand Down Expand Up @@ -77,7 +77,7 @@
n_scans = img.shape[-1]
events = pd.read_table(subject_data[f"events{idx}"])
# Define the sampling times for the design matrix
frame_times = np.arange(n_scans) * tr
frame_times = np.arange(n_scans) * t_r
# Build design matrix with the reviously defined parameters
design_matrix = make_first_level_design_matrix(
frame_times,
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
haxby_dataset = datasets.fetch_haxby()

# repetition has to be known
TR = 2.5
t_r = 2.5

# %%
# Load the behavioral data
Expand Down Expand Up @@ -59,9 +59,9 @@
# get the number of scans per run, then the corresponding
# vector of frame times
n_scans = len(conditions_run)
frame_times = TR * np.arange(n_scans)
frame_times = t_r * np.arange(n_scans)
# each event last the full TR
duration = TR * np.ones(n_scans)
duration = t_r * np.ones(n_scans)
# Define the events object
events_ = pd.DataFrame(
{
Expand All @@ -87,7 +87,7 @@
from nilearn.glm.first_level import FirstLevelModel

glm = FirstLevelModel(
t_r=TR,
t_r=t_r,
mask_img=haxby_dataset.mask,
high_pass=0.008,
smoothing_fwhm=4,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
},
"outputs": [],
"source": [
"# repetition time, in seconds\ntr = 2.0\n# Sample at the beginning of each acquisition.\nslice_time_ref = 0.0\n# We use a discrete cosine transform to model signal drifts.\ndrift_model = \"Cosine\"\n# The cutoff for the drift model is 0.01 Hz.\nhigh_pass = 0.01\n# The hemodynamic response function\nhrf_model = \"spm + derivative\""
"# repetition time, in seconds\nt_r = 2.0\n# Sample at the beginning of each acquisition.\nslice_time_ref = 0.0\n# We use a discrete cosine transform to model signal drifts.\ndrift_model = \"Cosine\"\n# The cutoff for the drift model is 0.01 Hz.\nhigh_pass = 0.01\n# The hemodynamic response function\nhrf_model = \"spm + derivative\""
]
},
{
Expand Down Expand Up @@ -112,7 +112,7 @@
},
"outputs": [],
"source": [
"for idx, img in enumerate(fmri_img, start=1):\n # Build experimental paradigm\n n_scans = img.shape[-1]\n events = pd.read_table(subject_data[f\"events{idx}\"])\n # Define the sampling times for the design matrix\n frame_times = np.arange(n_scans) * tr\n # Build design matrix with the reviously defined parameters\n design_matrix = make_first_level_design_matrix(\n frame_times,\n events,\n hrf_model=hrf_model,\n drift_model=drift_model,\n high_pass=high_pass,\n )\n\n # put the design matrices in a list\n design_matrices.append(design_matrix)"
"for idx, img in enumerate(fmri_img, start=1):\n # Build experimental paradigm\n n_scans = img.shape[-1]\n events = pd.read_table(subject_data[f\"events{idx}\"])\n # Define the sampling times for the design matrix\n frame_times = np.arange(n_scans) * t_r\n # Build design matrix with the reviously defined parameters\n design_matrix = make_first_level_design_matrix(\n frame_times,\n events,\n hrf_model=hrf_model,\n drift_model=drift_model,\n high_pass=high_pass,\n )\n\n # put the design matrices in a list\n design_matrices.append(design_matrix)"
]
},
{
Expand Down
18 changes: 9 additions & 9 deletions dev/_downloads/a5651a769eacc82cae220652665c23ea/plot_hrf.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,12 @@
from scipy.stats import gamma


def mion_response_function(tr, oversampling=16, onset=0.0):
def mion_response_function(t_r, oversampling=16, onset=0.0):
"""Implement the MION response function model.
Parameters
----------
tr: float
t_r: float
scan repeat time, in seconds
oversampling: int, optional
temporal oversampling factor
Expand All @@ -71,10 +71,10 @@ def mion_response_function(tr, oversampling=16, onset=0.0):
Returns
-------
response_function: array of shape(length / tr * oversampling, dtype=float)
response_function: array of shape(length / t_r * oversampling, dtype=float)
response_function sampling on the oversampled time grid
"""
dt = tr / oversampling
dt = t_r / oversampling
time_stamps = np.linspace(
0, time_length, np.rint(time_length / dt).astype(int)
)
Expand All @@ -91,25 +91,25 @@ def mion_response_function(tr, oversampling=16, onset=0.0):
return response_function


def mion_time_derivative(tr, oversampling=16.0):
def mion_time_derivative(t_r, oversampling=16.0):
"""Implement the MION time derivative response function model.
Parameters
----------
tr: float
t_r: float
scan repeat time, in seconds
oversampling: int, optional
temporal oversampling factor, optional
Returns
-------
drf: array of shape(time_length / tr * oversampling, dtype=float)
drf: array of shape(time_length / t_r * oversampling, dtype=float)
derived_response_function sampling on the provided grid
"""
do = 0.1
drf = (
mion_response_function(tr, oversampling)
- mion_response_function(tr, oversampling, do)
mion_response_function(t_r, oversampling)
- mion_response_function(t_r, oversampling, do)
) / do

return drf
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,9 @@
# Load resting state time series from nilearn
timeseries = nki_dataset[0].data.parts[hemi].T

# Coercing to float is required to avoid errors withj scipy >= 0.14.0
timeseries = timeseries.astype(float)

# Extract seed region via label
pcc_region = "G_cingul-Post-dorsal"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
},
"outputs": [],
"source": [
"from scipy.stats import gamma\n\n\ndef mion_response_function(tr, oversampling=16, onset=0.0):\n \"\"\"Implement the MION response function model.\n\n Parameters\n ----------\n tr: float\n scan repeat time, in seconds\n oversampling: int, optional\n temporal oversampling factor\n onset: float, optional\n hrf onset time, in seconds\n\n Returns\n -------\n response_function: array of shape(length / tr * oversampling, dtype=float)\n response_function sampling on the oversampled time grid\n \"\"\"\n dt = tr / oversampling\n time_stamps = np.linspace(\n 0, time_length, np.rint(time_length / dt).astype(int)\n )\n time_stamps -= onset\n\n # parameters of the gamma function\n delay = 1.55\n dispersion = 5.5\n\n response_function = gamma.pdf(time_stamps, delay, loc=0, scale=dispersion)\n response_function /= response_function.sum()\n response_function *= -1\n\n return response_function\n\n\ndef mion_time_derivative(tr, oversampling=16.0):\n \"\"\"Implement the MION time derivative response function model.\n\n Parameters\n ----------\n tr: float\n scan repeat time, in seconds\n oversampling: int, optional\n temporal oversampling factor, optional\n\n Returns\n -------\n drf: array of shape(time_length / tr * oversampling, dtype=float)\n derived_response_function sampling on the provided grid\n \"\"\"\n do = 0.1\n drf = (\n mion_response_function(tr, oversampling)\n - mion_response_function(tr, oversampling, do)\n ) / do\n\n return drf"
"from scipy.stats import gamma\n\n\ndef mion_response_function(t_r, oversampling=16, onset=0.0):\n \"\"\"Implement the MION response function model.\n\n Parameters\n ----------\n t_r: float\n scan repeat time, in seconds\n oversampling: int, optional\n temporal oversampling factor\n onset: float, optional\n hrf onset time, in seconds\n\n Returns\n -------\n response_function: array of shape(length / t_r * oversampling, dtype=float)\n response_function sampling on the oversampled time grid\n \"\"\"\n dt = t_r / oversampling\n time_stamps = np.linspace(\n 0, time_length, np.rint(time_length / dt).astype(int)\n )\n time_stamps -= onset\n\n # parameters of the gamma function\n delay = 1.55\n dispersion = 5.5\n\n response_function = gamma.pdf(time_stamps, delay, loc=0, scale=dispersion)\n response_function /= response_function.sum()\n response_function *= -1\n\n return response_function\n\n\ndef mion_time_derivative(t_r, oversampling=16.0):\n \"\"\"Implement the MION time derivative response function model.\n\n Parameters\n ----------\n t_r: float\n scan repeat time, in seconds\n oversampling: int, optional\n temporal oversampling factor, optional\n\n Returns\n -------\n drf: array of shape(time_length / t_r * oversampling, dtype=float)\n derived_response_function sampling on the provided grid\n \"\"\"\n do = 0.1\n drf = (\n mion_response_function(t_r, oversampling)\n - mion_response_function(t_r, oversampling, do)\n ) / do\n\n return drf"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
},
"outputs": [],
"source": [
"# Load resting state time series from nilearn\ntimeseries = nki_dataset[0].data.parts[hemi].T\n\n# Extract seed region via label\npcc_region = \"G_cingul-Post-dorsal\"\n\nimport numpy as np\n\npcc_labels = np.where(parcellation == labels.index(pcc_region))[0]\n\n# Extract time series from seed region\nseed_timeseries = np.mean(timeseries[pcc_labels], axis=0)"
"# Load resting state time series from nilearn\ntimeseries = nki_dataset[0].data.parts[hemi].T\n\n# Coercing to float is required to avoid errors withj scipy >= 0.14.0\ntimeseries = timeseries.astype(float)\n\n# Extract seed region via label\npcc_region = \"G_cingul-Post-dorsal\"\n\nimport numpy as np\n\npcc_labels = np.where(parcellation == labels.index(pcc_region))[0]\n\n# Extract time series from seed region\nseed_timeseries = np.mean(timeseries[pcc_labels], axis=0)"
]
},
{
Expand Down
Binary file modified dev/_images/sphx_glr_plot_advanced_decoding_scikit_001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_advanced_decoding_scikit_thumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_beta_series_001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_beta_series_002.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_beta_series_003.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_beta_series_004.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_beta_series_005.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_beta_series_thumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_bids_analysis_001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_bids_analysis_002.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_bids_analysis_thumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_design_matrix_001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_design_matrix_thumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_first_level_details_024.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_haxby_anova_svm_001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_haxby_anova_svm_thumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_haxby_different_estimators_002.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_haxby_different_estimators_005.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_haxby_frem_002.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_haxby_grid_search_001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_haxby_grid_search_thumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_haxby_mass_univariate_002.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_haxby_searchlight_001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_haxby_searchlight_thumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_localizer_mass_univariate_methods_001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified dev/_images/sphx_glr_plot_oasis_vbm_004.png
Binary file modified dev/_images/sphx_glr_plot_second_level_association_test_003.png
Binary file modified dev/_images/sphx_glr_plot_second_level_one_sample_test_003.png
Binary file modified dev/_images/sphx_glr_plot_simulated_data_004.png
Binary file modified dev/_images/sphx_glr_plot_sphere_based_connectome_006.png
Binary file modified dev/_images/sphx_glr_plot_sphere_based_connectome_007.png
Binary file modified dev/_images/sphx_glr_plot_sphere_based_connectome_008.png
Binary file modified dev/_images/sphx_glr_plot_sphere_based_connectome_010.png
Binary file modified dev/_images/sphx_glr_plot_sphere_based_connectome_011.png
Binary file modified dev/_images/sphx_glr_plot_sphere_based_connectome_012.png
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ statistical map:
.. code-block:: none
<nilearn.plotting.displays._slicers.OrthoSlicer object at 0x7f5a637e73e0>
<nilearn.plotting.displays._slicers.OrthoSlicer object at 0x7f5faed782f0>
Expand Down Expand Up @@ -155,7 +155,7 @@ Visualizing works better with a threshold
.. code-block:: none
<nilearn.plotting.displays._slicers.OrthoSlicer object at 0x7f5a563dda90>
<nilearn.plotting.displays._slicers.OrthoSlicer object at 0x7f5fa75a2c90>
Expand Down Expand Up @@ -183,7 +183,7 @@ correspondence between rest and task
.. code-block:: none
Downloading data from https://www.fmrib.ox.ac.uk/datasets/brainmap+rsns/PNAS_Smith09_rsn10.nii.gz ...
Downloaded 1482752 of 7565016 bytes (19.6%, 4.3s remaining) ...done. (2 seconds, 0 min)
...done. (1 seconds, 0 min)
'/home/runner/work/nilearn/nilearn/nilearn_data/smith_2009/PNAS_Smith09_rsn10.nii.gz'
Expand Down Expand Up @@ -266,7 +266,7 @@ We can then plot it
.. code-block:: none
<nilearn.plotting.displays._slicers.OrthoSlicer object at 0x7f5a648f2b70>
<nilearn.plotting.displays._slicers.OrthoSlicer object at 0x7f5fa6be9fa0>
Expand Down Expand Up @@ -477,7 +477,7 @@ image.

.. rst-class:: sphx-glr-timing

**Total running time of the script:** (0 minutes 18.751 seconds)
**Total running time of the script:** (0 minutes 18.741 seconds)

**Estimated memory usage:** 212 MB

Expand Down
Loading

0 comments on commit 953ff7b

Please sign in to comment.