# data

 DataError GradientTable(gradients[, big_delta, …]) Diffusion gradient information HemiSphere([x, y, z, theta, phi, xyz, …]) Points on the unit sphere. Sphere([x, y, z, theta, phi, xyz, faces, edges]) Points on the unit sphere. Return arr as native byteordered array Returns the directory component of a pathname Download atlas tractogram from the hcp842 dataset with 80 bundles Download map of FA within two bundles in oneof the hcp dataset subjects Download 2 subjects from the SNAIL dataset with their bundles fetch_cenir_multib([with_raw]) Fetch ‘HCP-like’ data, collected at multiple b-values. Download CFIN multi b-value diffusion data Downloads the gold standard for streamlines io testing. Download a 2-shell software phantom dataset Download IVIM dataset fetch the MNI 2009a T1 and T2, and 2009c T1 and T1 mask files Notes —– The templates were downloaded from the MNI (McGill University) website in July 2015. Download b=0 datasets from multiple MR systems (GE, Philips, Siemens) and different magnetic fields (1.5T and 3T) Download a 3shell HARDI dataset with 192 gradient direction Download a HARDI dataset with 160 gradient directions Download reduced freesurfer aparc image from stanford web site Download t1 and b0 volumes from the same session Download a DSI dataset with 203 gradient directions Download tractogram of one of the hcp dataset subjects Download images to be used for tissue classification Returns get_cmap(name) Make a callable, similar to maptlotlib.pyplot.get_cmap. get_fnames([name]) Provide full paths to example or test datasets. get_sim_voxels([name]) provide some simulated voxel data get_skeleton([name]) provide skeletons generated from Local Skeleton Clustering (LSC) get_sphere([name]) provide triangulated spheres Returns gradient_table(bvals[, bvecs, big_delta, …]) A general function for creating diffusion MR gradients. load(filename, \*\*kwargs) Load file given filename, guessing at file type load_nifti(fname[, return_img, …]) Load data and other information from a nifti file. loads_compat(bytes) Spherical functions represented by spherical harmonic coefficients and evaluated on a discrete sphere. pjoin(a, \*p) Join two or more pathname components, inserting ‘/’ as needed. read_bundles_2_subjects([subj_id, metrics, …]) Read images and streamlines from 2 subjects of the SNAIL dataset read_cenir_multib([bvals]) Read CENIR multi b-value data. Load CFIN multi b-value DWI data. Load CFIN T1-weighted data. Load ISBI 2013 2-shell synthetic dataset. Load IVIM dataset. read_mni_template([version, contrast]) Read the MNI template from disk Load GE 3T b0 image form the scil b0 dataset. Load Sherbrooke 3-shell HARDI dataset. Load Stanford HARDI dataset. Read stanford hardi data and label map. Load t1 and b0 volumes from the same session. Load Taiwan NTU dataset. read_tissue_data([contrast]) Load images to be used for tissue classification relist_streamlines(points, offsets) Given a representation of a set of streamlines as a large array and an offsets array return the streamlines as a list of shorter arrays.

## Module: data.fetcher

 FetcherError check_md5(filename[, stored_md5]) Computes the md5 of filename and check if it matches with the supplied string md5 copyfileobj(fsrc, fdst[, length]) copy data from file-like object fsrc to file-like object fdst copyfileobj_withprogress(fsrc, fdst, …[, …]) Download atlas tractogram from the hcp842 dataset with 80 bundles Download map of FA within two bundles in oneof the hcp dataset subjects Download 2 subjects from the SNAIL dataset with their bundles fetch_cenir_multib([with_raw]) Fetch ‘HCP-like’ data, collected at multiple b-values. Download CFIN multi b-value diffusion data fetch_data(files, folder[, data_size]) Downloads files to folder and checks their md5 checksums Download 5 bundles in various file formats and their reference Downloads the gold standard for streamlines io testing. Download a 2-shell software phantom dataset Download IVIM dataset fetch the MNI 2009a T1 and T2, and 2009c T1 and T1 mask files Notes —– The templates were downloaded from the MNI (McGill University) website in July 2015. Downloads test-retest qt-dMRI acquisitions of two C57Bl6 mice. Download b=0 datasets from multiple MR systems (GE, Philips, Siemens) and different magnetic fields (1.5T and 3T) Download a 3shell HARDI dataset with 192 gradient direction Download a HARDI dataset with 160 gradient directions Download reduced freesurfer aparc image from stanford web site Download t1 and b0 volumes from the same session Download a DSI dataset with 203 gradient directions Download tractogram of one of the hcp dataset subjects Download images to be used for tissue classification Returns Returns get_fnames([name]) Provide full paths to example or test datasets. Returns Returns gradient_table(bvals[, bvecs, big_delta, …]) A general function for creating diffusion MR gradients. A general function for creating diffusion MR gradients. load_nifti(fname[, return_img, …]) Load data and other information from a nifti file. load_nifti_data(fname[, as_ndarray]) Load only the data array from a nifti file. Returns a md5 hash object; optionally initialized with a string pjoin(a, \*p) Join two or more pathname components, inserting ‘/’ as needed. read_bundles_2_subjects([subj_id, metrics, …]) Read images and streamlines from 2 subjects of the SNAIL dataset read_bvals_bvecs(fbvals, fbvecs) Read b-values and b-vectors from disk read_cenir_multib([bvals]) Read CENIR multi b-value data. Load CFIN multi b-value DWI data. Load CFIN T1-weighted data. Load ISBI 2013 2-shell synthetic dataset. Load IVIM dataset. read_mni_template([version, contrast]) Read the MNI template from disk Load test-retest qt-dMRI acquisitions of two C57Bl6 mice. Load GE 3T b0 image form the scil b0 dataset. Load Sherbrooke 3-shell HARDI dataset. Load Siemens 1.5T b0 image from the scil b0 dataset. Load Stanford HARDI dataset. Read stanford hardi data and label map. Load t1 and b0 volumes from the same session. Load Taiwan NTU dataset. read_tissue_data([contrast]) Load images to be used for tissue classification update_progressbar(progress, total_length) Show progressbar urlopen(url[, data, timeout, cafile, …]) Open the URL url, which can be either a string or a Request object.

### DataError

class dipy.data.DataError

Bases: Exception

Attributes
args

Methods

 with_traceback() Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.
__init__(self, /, *args, **kwargs)

Initialize self. See help(type(self)) for accurate signature.

### GradientTable

class dipy.data.GradientTable(gradients, big_delta=None, small_delta=None, b0_threshold=50)

Bases: object

Parameters

Diffusion gradients. The direction of each of these vectors corresponds to the b-vector, and the length corresponds to the b-value.

b0_thresholdfloat

Gradients with b-value less than or equal to b0_threshold are considered as b0s i.e. without diffusion weighting.

Notes

The GradientTable object is immutable. Do NOT assign attributes. If you have your gradient table in a bval & bvec format, we recommend using the factory function gradient_table

Attributes

bvals(N,) ndarray

The b-value, or magnitude, of each gradient direction.

qvals: (N,) ndarray

The q-value for each gradient direction. Needs big and small delta.

bvecs(N,3) ndarray

The direction, represented as a unit vector, of each gradient.

Boolean array indicating which gradients have no diffusion weighting, ie b-value is close to 0.

b0_thresholdfloat

Gradients with b-value less than or equal to b0_threshold are considered to not have diffusion weighting.

Methods

__init__(self, gradients, big_delta=None, small_delta=None, b0_threshold=50)

b0s_mask(self)
bvals(self)
bvecs(self)
gradient_strength(self)
property info
qvals(self)
tau(self)

### HemiSphere

class dipy.data.HemiSphere(x=None, y=None, z=None, theta=None, phi=None, xyz=None, faces=None, edges=None, tol=1e-05)

Points on the unit sphere.

A HemiSphere is similar to a Sphere but it takes antipodal symmetry into account. Antipodal symmetry means that point v on a HemiSphere is the same as the point -v. Duplicate points are discarded when constructing a HemiSphere (including antipodal duplicates). edges and faces are remapped to the remaining points as closely as possible.

The HemiSphere can be constructed using one of three conventions:

HemiSphere(x, y, z)
HemiSphere(xyz=xyz)
HemiSphere(theta=theta, phi=phi)

Parameters
x, y, z1-D array_like

Vertices as x-y-z coordinates.

theta, phi1-D array_like

Vertices as spherical coordinates. Theta and phi are the inclination and azimuth angles respectively.

xyz(N, 3) ndarray

Vertices as x-y-z coordinates.

faces(N, 3) ndarray

Indices into vertices that form triangular faces. If unspecified, the faces are computed using a Delaunay triangulation.

edges(N, 2) ndarray

Edges between vertices. If unspecified, the edges are derived from the faces.

tolfloat

Angle in degrees. Vertices that are less than tol degrees apart are treated as duplicates.

Attributes
x
y
z

Methods

 find_closest(self, xyz) Find the index of the vertex in the Sphere closest to the input vector, taking into account antipodal symmetry from_sphere(sphere[, tol]) Create instance from a Sphere mirror(self) Create a full Sphere from a HemiSphere subdivide(self[, n]) Create a more subdivided HemiSphere
 edges faces vertices
__init__(self, x=None, y=None, z=None, theta=None, phi=None, xyz=None, faces=None, edges=None, tol=1e-05)

Create a HemiSphere from points

faces(self)
find_closest(self, xyz)

Find the index of the vertex in the Sphere closest to the input vector, taking into account antipodal symmetry

Parameters
xyzarray-like, 3 elements

A unit vector

Returns
idxint

The index into the Sphere.vertices array that gives the closest vertex (in angle).

classmethod from_sphere(sphere, tol=1e-05)

Create instance from a Sphere

mirror(self)

Create a full Sphere from a HemiSphere

subdivide(self, n=1)

Create a more subdivided HemiSphere

See Sphere.subdivide for full documentation.

### Sphere

class dipy.data.Sphere(x=None, y=None, z=None, theta=None, phi=None, xyz=None, faces=None, edges=None)

Bases: object

Points on the unit sphere.

The sphere can be constructed using one of three conventions:

Sphere(x, y, z)
Sphere(xyz=xyz)
Sphere(theta=theta, phi=phi)

Parameters
x, y, z1-D array_like

Vertices as x-y-z coordinates.

theta, phi1-D array_like

Vertices as spherical coordinates. Theta and phi are the inclination and azimuth angles respectively.

xyz(N, 3) ndarray

Vertices as x-y-z coordinates.

faces(N, 3) ndarray

Indices into vertices that form triangular faces. If unspecified, the faces are computed using a Delaunay triangulation.

edges(N, 2) ndarray

Edges between vertices. If unspecified, the edges are derived from the faces.

Attributes
x
y
z

Methods

 find_closest(self, xyz) Find the index of the vertex in the Sphere closest to the input vector subdivide(self[, n]) Subdivides each face of the sphere into four new faces.
 edges faces vertices
__init__(self, x=None, y=None, z=None, theta=None, phi=None, xyz=None, faces=None, edges=None)

Initialize self. See help(type(self)) for accurate signature.

edges(self)
faces(self)
find_closest(self, xyz)

Find the index of the vertex in the Sphere closest to the input vector

Parameters
xyzarray-like, 3 elements

A unit vector

Returns
idxint

The index into the Sphere.vertices array that gives the closest vertex (in angle).

subdivide(self, n=1)

Subdivides each face of the sphere into four new faces.

New vertices are created at a, b, and c. Then each face [x, y, z] is divided into faces [x, a, c], [y, a, b], [z, b, c], and [a, b, c].

   y
/               /               a/____
/\    /            /  \  /             /____\/____          x      c     z

Parameters
nint, optional

The number of subdivisions to preform.

Returns
new_sphereSphere

The subdivided sphere.

vertices(self)
property x
property y
property z

### as_native_array

dipy.data.as_native_array(arr)

Return arr as native byteordered array

If arr is already native byte ordered, return unchanged. If it is opposite endian, then make a native byte ordered copy and return that

Parameters
arrndarray
Returns
native_arrndarray

If arr was native order, this is just arr. Otherwise it’s a new array such that np.all(native_arr == arr), with native byte ordering.

### dirname

dipy.data.dirname(p)

Returns the directory component of a pathname

### dsi_deconv_voxels

dipy.data.dsi_deconv_voxels()

### dsi_voxels

dipy.data.dsi_voxels()

### fetch_bundle_atlas_hcp842

dipy.data.fetch_bundle_atlas_hcp842()

### fetch_bundle_fa_hcp

dipy.data.fetch_bundle_fa_hcp()

Download map of FA within two bundles in oneof the hcp dataset subjects

### fetch_bundles_2_subjects

dipy.data.fetch_bundles_2_subjects()

### fetch_cenir_multib

dipy.data.fetch_cenir_multib(with_raw=False)

Fetch ‘HCP-like’ data, collected at multiple b-values.

Parameters
with_rawbool

Whether to fetch the raw data. Per default, this is False, which means that only eddy-current/motion corrected data is fetched

Notes

Details of the acquisition and processing, and additional meta-data are available through UW researchworks:

https://digital.lib.washington.edu/researchworks/handle/1773/33311

### fetch_cfin_multib

dipy.data.fetch_cfin_multib()

### fetch_gold_standard_io

dipy.data.fetch_gold_standard_io()

### fetch_isbi2013_2shell

dipy.data.fetch_isbi2013_2shell()

### fetch_ivim

dipy.data.fetch_ivim()

### fetch_mni_template

dipy.data.fetch_mni_template()

fetch the MNI 2009a T1 and T2, and 2009c T1 and T1 mask files Notes —– The templates were downloaded from the MNI (McGill University) website in July 2015.

The following publications should be referenced when using these templates:

1

VS Fonov, AC Evans, K Botteron, CR Almli, RC McKinstry, DL Collins and BDCG, Unbiased average age-appropriate atlases for pediatric studies, NeuroImage, 54:1053-8119, DOI: 10.1016/j.neuroimage.2010.07.033

2

VS Fonov, AC Evans, RC McKinstry, CR Almli and DL Collins, Unbiased nonlinear average age-appropriate brain templates from birth to adulthood, NeuroImage, 47:S102 Organization for Human Brain Mapping 2009 Annual Meeting, DOI: https://doi.org/10.1016/S1053-8119(09)70884-5

Copyright (C) 1993-2004, Louis Collins McConnell Brain Imaging Centre, Montreal Neurological Institute, McGill University. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies. The authors and McGill University make no representations about the suitability of this software for any purpose. It is provided “as is” without express or implied warranty. The authors are not responsible for any data loss, equipment damage, property loss, or injury to subjects or patients resulting from the use or misuse of this software package.

### fetch_scil_b0

dipy.data.fetch_scil_b0()

Download b=0 datasets from multiple MR systems (GE, Philips, Siemens) and different magnetic fields (1.5T and 3T)

### fetch_sherbrooke_3shell

dipy.data.fetch_sherbrooke_3shell()

### fetch_stanford_hardi

dipy.data.fetch_stanford_hardi()

### fetch_stanford_labels

dipy.data.fetch_stanford_labels()

### fetch_stanford_pve_maps

dipy.data.fetch_stanford_pve_maps()

### fetch_stanford_t1

dipy.data.fetch_stanford_t1()

### fetch_syn_data

dipy.data.fetch_syn_data()

### fetch_taiwan_ntu_dsi

dipy.data.fetch_taiwan_ntu_dsi()

### fetch_target_tractogram_hcp

dipy.data.fetch_target_tractogram_hcp()

### fetch_tissue_data

dipy.data.fetch_tissue_data()

### get_3shell_gtab

dipy.data.get_3shell_gtab()

### get_bundle_atlas_hcp842

dipy.data.get_bundle_atlas_hcp842()
Returns
file1string
file2string

### get_cmap

dipy.data.get_cmap(name)

Make a callable, similar to maptlotlib.pyplot.get_cmap.

### get_fnames

dipy.data.get_fnames(name='small_64D')

Provide full paths to example or test datasets.

Parameters
namestr

the filename/s of which dataset to return, one of: ‘small_64D’ small region of interest nifti,bvecs,bvals 64 directions ‘small_101D’ small region of interest nifti,bvecs,bvals 101 directions ‘aniso_vox’ volume with anisotropic voxel size as Nifti ‘fornix’ 300 tracks in Trackvis format (from Pittsburgh

Brain Competition)

‘gqi_vectors’ the scanner wave vectors needed for a GQI acquisitions

of 101 directions tested on Siemens 3T Trio

‘small_25’ small ROI (10x8x2) DTI data (b value 2000, 25 directions) ‘test_piesno’ slice of N=8, K=14 diffusion data ‘reg_c’ small 2D image used for validating registration ‘reg_o’ small 2D image used for validation registration ‘cb_2’ two vectorized cingulum bundles

Returns
fnamestuple

filenames for dataset

Examples

>>> import numpy as np
>>> from dipy.data import get_fnames
>>> fimg, fbvals, fbvecs = get_fnames('small_101D')
>>> data.shape == (6, 10, 10, 102)
True
>>> bvals.shape == (102,)
True
>>> bvecs.shape == (102, 3)
True


### get_gtab_taiwan_dsi

dipy.data.get_gtab_taiwan_dsi()

### get_isbi2013_2shell_gtab

dipy.data.get_isbi2013_2shell_gtab()

### get_sim_voxels

dipy.data.get_sim_voxels(name='fib1')

provide some simulated voxel data

Parameters
namestr, which file?

‘fib0’, ‘fib1’ or ‘fib2’

Returns
dixdictionary, where dix[‘data’] returns a 2d array

where every row is a simulated voxel with different orientation

Notes

These sim voxels were provided by M.M. Correia using Rician noise.

Examples

>>> from dipy.data import get_sim_voxels
>>> sv=get_sim_voxels('fib1')
>>> sv['data'].shape == (100, 102)
True
>>> sv['fibres']
'1'
True
>>> sv['bvals'].shape == (102,)
True
>>> sv['snr']
'60'
>>> sv2=get_sim_voxels('fib2')
>>> sv2['fibres']
'2'
>>> sv2['snr']
'80'


### get_skeleton

dipy.data.get_skeleton(name='C1')

provide skeletons generated from Local Skeleton Clustering (LSC)

Parameters
namestr, ‘C1’ or ‘C3’
Returns
dixdictionary

Examples

>>> from dipy.data import get_skeleton
>>> C=get_skeleton('C1')
>>> len(C.keys())
117
>>> for c in C: break
>>> sorted(C[c].keys())
['N', 'hidden', 'indices', 'most']


### get_sphere

dipy.data.get_sphere(name='symmetric362')

provide triangulated spheres

Parameters
namestr

which sphere - one of: * ‘symmetric362’ * ‘symmetric642’ * ‘symmetric724’ * ‘repulsion724’ * ‘repulsion100’ * ‘repulsion200’

Returns
spherea dipy.core.sphere.Sphere class instance

Examples

>>> import numpy as np
>>> from dipy.data import get_sphere
>>> sphere = get_sphere('symmetric362')
>>> verts, faces = sphere.vertices, sphere.faces
>>> verts.shape == (362, 3)
True
>>> faces.shape == (720, 3)
True
>>> verts, faces = get_sphere('not a sphere name')
Traceback (most recent call last):
...
DataError: No sphere called "not a sphere name"


### get_target_tractogram_hcp

dipy.data.get_target_tractogram_hcp()
Returns
file1string

dipy.data.gradient_table(bvals, bvecs=None, big_delta=None, small_delta=None, b0_threshold=50, atol=0.01)

A general function for creating diffusion MR gradients.

It reads, loads and prepares scanner parameters like the b-values and b-vectors so that they can be useful during the reconstruction process.

Parameters
bvalscan be any of the four options
1. an array of shape (N,) or (1, N) or (N, 1) with the b-values.

2. a path for the file which contains an array like the above (1).

3. an array of shape (N, 4) or (4, N). Then this parameter is considered to be a b-table which contains both bvals and bvecs. In this case the next parameter is skipped.

4. a path for the file which contains an array like the one at (3).

bvecscan be any of two options
1. an array of shape (N, 3) or (3, N) with the b-vectors.

2. a path for the file which contains an array like the previous.

big_deltafloat

acquisition pulse separation time in seconds (default None)

small_deltafloat

acquisition pulse duration time in seconds (default None)

b0_thresholdfloat

All b-values with values less than or equal to bo_threshold are considered as b0s i.e. without diffusion weighting.

atolfloat

All b-vectors need to be unit vectors up to a tolerance.

Returns

Notes

1. Often b0s (b-values which correspond to images without diffusion weighting) have 0 values however in some cases the scanner cannot provide b0s of an exact 0 value and it gives a bit higher values e.g. 6 or 12. This is the purpose of the b0_threshold in the __init__.

2. We assume that the minimum number of b-values is 7.

3. B-vectors should be unit vectors.

Examples

>>> from dipy.core.gradients import gradient_table
>>> bvals = 1500 * np.ones(7)
>>> bvals[0] = 0
>>> sq2 = np.sqrt(2) / 2
>>> bvecs = np.array([[0, 0, 0],
...                   [1, 0, 0],
...                   [0, 1, 0],
...                   [0, 0, 1],
...                   [sq2, sq2, 0],
...                   [sq2, 0, sq2],
...                   [0, sq2, sq2]])
>>> gt.bvecs.shape == bvecs.shape
True
>>> gt.bvecs.shape == bvecs.T.shape
False


dipy.data.load(filename, **kwargs)

Load file given filename, guessing at file type

Parameters
filenamestr or os.PathLike

**kwargskeyword arguments

Returns
imgSpatialImage

Image of guessed type

dipy.data.load_nifti(fname, return_img=False, return_voxsize=False, return_coords=False, as_ndarray=True)

Load data and other information from a nifti file.

Parameters
fnamestr

Full path to a nifti file.

return_imgbool, optional

Whether to return the nibabel nifti img object. Default: False

return_voxsize: bool, optional

Whether to return the nifti header zooms. Default: False

return_coordsbool, optional

Whether to return the nifti header aff2axcodes. Default: False

as_ndarray: bool, optional

convert nibabel ArrayProxy to a numpy.ndarray. If you want to save memory and delay this casting, just turn this option to False (default: True)

Returns
A tuple, with (at the most, if all keyword args are set to True):
(data, img.affine, img, vox_size, nib.aff2axcodes(img.affine))

load_nifti_data

dipy.data.loads_compat(bytes)

### matlab_life_results

dipy.data.matlab_life_results()

### mrtrix_spherical_functions

dipy.data.mrtrix_spherical_functions()

Spherical functions represented by spherical harmonic coefficients and evaluated on a discrete sphere.

Returns
func_coefarray (2, 3, 4, 45)

Functions represented by the coefficients associated with the mxtrix spherical harmonic basis of order 8.

func_discretearray (2, 3, 4, 81)

Functions evaluated on sphere.

sphereSphere

The discrete sphere, points on the surface of a unit sphere, used to evaluate the functions.

Notes

These coefficients were obtained by using the dwi2SH command of mrtrix.

### pjoin

dipy.data.pjoin(a, *p)

Join two or more pathname components, inserting ‘/’ as needed. If any component is an absolute path, all previous path components will be discarded. An empty last part will result in a path that ends with a separator.

dipy.data.read_bundles_2_subjects(subj_id='subj_1', metrics=['fa'], bundles=['af.left', 'cst.right', 'cc_1'])

Read images and streamlines from 2 subjects of the SNAIL dataset

Parameters
subj_idstring

Either subj_1 or subj_2.

metricslist

Either [‘fa’] or [‘t1’] or [‘fa’, ‘t1’]

bundleslist

E.g., [‘af.left’, ‘cst.right’, ‘cc_1’]. See all the available bundles in the exp_bundles_maps/bundles_2_subjects directory of your $HOME/.dipy folder. Returns dixdict Dictionary with data of the metrics and the bundles as keys. Notes If you are using these datasets please cite the following publications. References 1 Renauld, E., M. Descoteaux, M. Bernier, E. Garyfallidis, K. Whittingstall, “Morphology of thalamus, LGN and optic radiation do not influence EEG alpha waves”, Plos One (under submission), 2015. 2 Garyfallidis, E., O. Ocegueda, D. Wassermann, M. Descoteaux. Robust and efficient linear registration of fascicles in the space of streamlines , Neuroimage, 117:124-140, 2015. ### read_cenir_multib dipy.data.read_cenir_multib(bvals=None) Read CENIR multi b-value data. Parameters bvalslist or int The b-values to read from file (200, 400, 1000, 2000, 3000). Returns gtaba GradientTable class instance imgnibabel.Nifti1Image Notes Details of the acquisition and processing, and additional meta-data are available through UW researchworks: https://digital.lib.washington.edu/researchworks/handle/1773/33311 ### read_cfin_dwi dipy.data.read_cfin_dwi() Load CFIN multi b-value DWI data. Returns imgobj, Nifti1Image gtabobj, GradientTable ### read_cfin_t1 dipy.data.read_cfin_t1() Load CFIN T1-weighted data. Returns imgobj, Nifti1Image ### read_isbi2013_2shell dipy.data.read_isbi2013_2shell() Load ISBI 2013 2-shell synthetic dataset. Returns imgobj, Nifti1Image gtabobj, GradientTable ### read_ivim dipy.data.read_ivim() Load IVIM dataset. Returns imgobj, Nifti1Image gtabobj, GradientTable ### read_mni_template dipy.data.read_mni_template(version='a', contrast='T2') Read the MNI template from disk Parameters version: string There are two MNI templates 2009a and 2009c, so options available are: “a” and “c”. contrastlist or string, optional Which of the contrast templates to read. For version “a” two contrasts are available: “T1” and “T2”. Similarly for version “c” there are two options, “T1” and “mask”. You can input contrast as a string or a list Returns listcontains the nibabel.Nifti1Image objects requested, according to the order they were requested in the input. Notes The templates were downloaded from the MNI (McGill University) website in July 2015. The following publications should be referenced when using these templates: 1 VS Fonov, AC Evans, K Botteron, CR Almli, RC McKinstry, DL Collins and BDCG, Unbiased average age-appropriate atlases for pediatric studies, NeuroImage, 54:1053-8119, DOI: 10.1016/j.neuroimage.2010.07.033 2 VS Fonov, AC Evans, RC McKinstry, CR Almli and DL Collins, Unbiased nonlinear average age-appropriate brain templates from birth to adulthood, NeuroImage, 47:S102 Organization for Human Brain Mapping 2009 Annual Meeting, DOI: https://doi.org/10.1016/S1053-8119(09)70884-5 Copyright (C) 1993-2004, Louis Collins McConnell Brain Imaging Centre, Montreal Neurological Institute, McGill University. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies. The authors and McGill University make no representations about the suitability of this software for any purpose. It is provided “as is” without express or implied warranty. The authors are not responsible for any data loss, equipment damage, property loss, or injury to subjects or patients resulting from the use or misuse of this software package. Examples Get only the T1 file for version c: >>> T1 = read_mni_template(“c”, contrast = “T1”) # doctest: +SKIP Get both files in this order for version a: >>> T1, T2 = read_mni_template(contrast = [“T1”, “T2”]) # doctest: +SKIP ### read_scil_b0 dipy.data.read_scil_b0() Load GE 3T b0 image form the scil b0 dataset. Returns imgobj, Nifti1Image ### read_sherbrooke_3shell dipy.data.read_sherbrooke_3shell() Load Sherbrooke 3-shell HARDI dataset. Returns imgobj, Nifti1Image gtabobj, GradientTable ### read_stanford_hardi dipy.data.read_stanford_hardi() Load Stanford HARDI dataset. Returns imgobj, Nifti1Image gtabobj, GradientTable ### read_stanford_labels dipy.data.read_stanford_labels() Read stanford hardi data and label map. ### read_stanford_pve_maps dipy.data.read_stanford_pve_maps() ### read_stanford_t1 dipy.data.read_stanford_t1() ### read_syn_data dipy.data.read_syn_data() Load t1 and b0 volumes from the same session. Returns t1obj, Nifti1Image b0obj, Nifti1Image ### read_taiwan_ntu_dsi dipy.data.read_taiwan_ntu_dsi() Load Taiwan NTU dataset. Returns imgobj, Nifti1Image gtabobj, GradientTable ### read_tissue_data dipy.data.read_tissue_data(contrast='T1') Load images to be used for tissue classification Parameters constraststr ‘T1’, ‘T1 denoised’ or ‘Anisotropic Power’ Returns imageobj, Nifti1Image ### relist_streamlines dipy.data.relist_streamlines(points, offsets) Given a representation of a set of streamlines as a large array and an offsets array return the streamlines as a list of shorter arrays. Parameters pointsarray offsetsarray Returns streamlines: sequence ### two_cingulum_bundles dipy.data.two_cingulum_bundles() ### FetcherError class dipy.data.fetcher.FetcherError Bases: Exception Attributes args Methods  with_traceback() Exception.with_traceback(tb) – set self.__traceback__ to tb and return self. __init__(self, /, *args, **kwargs) Initialize self. See help(type(self)) for accurate signature. ### check_md5 dipy.data.fetcher.check_md5(filename, stored_md5=None) Computes the md5 of filename and check if it matches with the supplied string md5 Parameters filenamestring Path to a file. md5string Known md5 of filename to check against. If None (default), checking is skipped ### copyfileobj dipy.data.fetcher.copyfileobj(fsrc, fdst, length=16384) copy data from file-like object fsrc to file-like object fdst ### copyfileobj_withprogress dipy.data.fetcher.copyfileobj_withprogress(fsrc, fdst, total_length, length=16384) ### fetch_bundle_atlas_hcp842 dipy.data.fetcher.fetch_bundle_atlas_hcp842() Download atlas tractogram from the hcp842 dataset with 80 bundles ### fetch_bundle_fa_hcp dipy.data.fetcher.fetch_bundle_fa_hcp() Download map of FA within two bundles in oneof the hcp dataset subjects ### fetch_bundles_2_subjects dipy.data.fetcher.fetch_bundles_2_subjects() Download 2 subjects from the SNAIL dataset with their bundles ### fetch_cenir_multib dipy.data.fetcher.fetch_cenir_multib(with_raw=False) Fetch ‘HCP-like’ data, collected at multiple b-values. Parameters with_rawbool Whether to fetch the raw data. Per default, this is False, which means that only eddy-current/motion corrected data is fetched Notes Details of the acquisition and processing, and additional meta-data are available through UW researchworks: https://digital.lib.washington.edu/researchworks/handle/1773/33311 ### fetch_cfin_multib dipy.data.fetcher.fetch_cfin_multib() Download CFIN multi b-value diffusion data ### fetch_data dipy.data.fetcher.fetch_data(files, folder, data_size=None) Downloads files to folder and checks their md5 checksums Parameters filesdictionary For each file in files the value should be (url, md5). The file will be downloaded from url if the file does not already exist or if the file exists but the md5 checksum does not match. folderstr The directory where to save the file, the directory will be created if it does not already exist. data_sizestr, optional A string describing the size of the data (e.g. “91 MB”) to be logged to the screen. Default does not produce any information about data size. Raises —— FetcherError Raises if the md5 checksum of the file does not match the expected value. The downloaded file is not deleted when this error is raised. ### fetch_file_formats dipy.data.fetcher.fetch_file_formats() Download 5 bundles in various file formats and their reference ### fetch_gold_standard_io dipy.data.fetcher.fetch_gold_standard_io() Downloads the gold standard for streamlines io testing. ### fetch_isbi2013_2shell dipy.data.fetcher.fetch_isbi2013_2shell() Download a 2-shell software phantom dataset ### fetch_ivim dipy.data.fetcher.fetch_ivim() Download IVIM dataset ### fetch_mni_template dipy.data.fetcher.fetch_mni_template() fetch the MNI 2009a T1 and T2, and 2009c T1 and T1 mask files Notes —– The templates were downloaded from the MNI (McGill University) website in July 2015. The following publications should be referenced when using these templates: 1 VS Fonov, AC Evans, K Botteron, CR Almli, RC McKinstry, DL Collins and BDCG, Unbiased average age-appropriate atlases for pediatric studies, NeuroImage, 54:1053-8119, DOI: 10.1016/j.neuroimage.2010.07.033 2 VS Fonov, AC Evans, RC McKinstry, CR Almli and DL Collins, Unbiased nonlinear average age-appropriate brain templates from birth to adulthood, NeuroImage, 47:S102 Organization for Human Brain Mapping 2009 Annual Meeting, DOI: https://doi.org/10.1016/S1053-8119(09)70884-5 Copyright (C) 1993-2004, Louis Collins McConnell Brain Imaging Centre, Montreal Neurological Institute, McGill University. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies. The authors and McGill University make no representations about the suitability of this software for any purpose. It is provided “as is” without express or implied warranty. The authors are not responsible for any data loss, equipment damage, property loss, or injury to subjects or patients resulting from the use or misuse of this software package. ### fetch_qtdMRI_test_retest_2subjects dipy.data.fetcher.fetch_qtdMRI_test_retest_2subjects() Downloads test-retest qt-dMRI acquisitions of two C57Bl6 mice. ### fetch_scil_b0 dipy.data.fetcher.fetch_scil_b0() Download b=0 datasets from multiple MR systems (GE, Philips, Siemens) and different magnetic fields (1.5T and 3T) ### fetch_sherbrooke_3shell dipy.data.fetcher.fetch_sherbrooke_3shell() Download a 3shell HARDI dataset with 192 gradient direction ### fetch_stanford_hardi dipy.data.fetcher.fetch_stanford_hardi() Download a HARDI dataset with 160 gradient directions ### fetch_stanford_labels dipy.data.fetcher.fetch_stanford_labels() Download reduced freesurfer aparc image from stanford web site ### fetch_stanford_pve_maps dipy.data.fetcher.fetch_stanford_pve_maps() ### fetch_stanford_t1 dipy.data.fetcher.fetch_stanford_t1() ### fetch_syn_data dipy.data.fetcher.fetch_syn_data() Download t1 and b0 volumes from the same session ### fetch_taiwan_ntu_dsi dipy.data.fetcher.fetch_taiwan_ntu_dsi() Download a DSI dataset with 203 gradient directions ### fetch_target_tractogram_hcp dipy.data.fetcher.fetch_target_tractogram_hcp() Download tractogram of one of the hcp dataset subjects ### fetch_tissue_data dipy.data.fetcher.fetch_tissue_data() Download images to be used for tissue classification ### get_bundle_atlas_hcp842 dipy.data.fetcher.get_bundle_atlas_hcp842() Returns file1string file2string ### get_file_formats dipy.data.fetcher.get_file_formats() Returns bundles_listall bundles (list) ref_anatreference ### get_fnames dipy.data.fetcher.get_fnames(name='small_64D') Provide full paths to example or test datasets. Parameters namestr the filename/s of which dataset to return, one of: ‘small_64D’ small region of interest nifti,bvecs,bvals 64 directions ‘small_101D’ small region of interest nifti,bvecs,bvals 101 directions ‘aniso_vox’ volume with anisotropic voxel size as Nifti ‘fornix’ 300 tracks in Trackvis format (from Pittsburgh Brain Competition) ‘gqi_vectors’ the scanner wave vectors needed for a GQI acquisitions of 101 directions tested on Siemens 3T Trio ‘small_25’ small ROI (10x8x2) DTI data (b value 2000, 25 directions) ‘test_piesno’ slice of N=8, K=14 diffusion data ‘reg_c’ small 2D image used for validating registration ‘reg_o’ small 2D image used for validation registration ‘cb_2’ two vectorized cingulum bundles Returns fnamestuple filenames for dataset Examples >>> import numpy as np >>> from dipy.io.image import load_nifti >>> from dipy.data import get_fnames >>> fimg, fbvals, fbvecs = get_fnames('small_101D') >>> bvals=np.loadtxt(fbvals) >>> bvecs=np.loadtxt(fbvecs).T >>> data, affine = load_nifti(fimg) >>> data.shape == (6, 10, 10, 102) True >>> bvals.shape == (102,) True >>> bvecs.shape == (102, 3) True  ### get_target_tractogram_hcp dipy.data.fetcher.get_target_tractogram_hcp() Returns file1string ### get_two_hcp842_bundles dipy.data.fetcher.get_two_hcp842_bundles() Returns file1string file2string ### gradient_table dipy.data.fetcher.gradient_table(bvals, bvecs=None, big_delta=None, small_delta=None, b0_threshold=50, atol=0.01) A general function for creating diffusion MR gradients. It reads, loads and prepares scanner parameters like the b-values and b-vectors so that they can be useful during the reconstruction process. Parameters bvalscan be any of the four options 1. an array of shape (N,) or (1, N) or (N, 1) with the b-values. 2. a path for the file which contains an array like the above (1). 3. an array of shape (N, 4) or (4, N). Then this parameter is considered to be a b-table which contains both bvals and bvecs. In this case the next parameter is skipped. 4. a path for the file which contains an array like the one at (3). bvecscan be any of two options 1. an array of shape (N, 3) or (3, N) with the b-vectors. 2. a path for the file which contains an array like the previous. big_deltafloat acquisition pulse separation time in seconds (default None) small_deltafloat acquisition pulse duration time in seconds (default None) b0_thresholdfloat All b-values with values less than or equal to bo_threshold are considered as b0s i.e. without diffusion weighting. atolfloat All b-vectors need to be unit vectors up to a tolerance. Returns gradientsGradientTable A GradientTable with all the gradient information. Notes 1. Often b0s (b-values which correspond to images without diffusion weighting) have 0 values however in some cases the scanner cannot provide b0s of an exact 0 value and it gives a bit higher values e.g. 6 or 12. This is the purpose of the b0_threshold in the __init__. 2. We assume that the minimum number of b-values is 7. 3. B-vectors should be unit vectors. Examples >>> from dipy.core.gradients import gradient_table >>> bvals = 1500 * np.ones(7) >>> bvals[0] = 0 >>> sq2 = np.sqrt(2) / 2 >>> bvecs = np.array([[0, 0, 0], ... [1, 0, 0], ... [0, 1, 0], ... [0, 0, 1], ... [sq2, sq2, 0], ... [sq2, 0, sq2], ... [0, sq2, sq2]]) >>> gt = gradient_table(bvals, bvecs) >>> gt.bvecs.shape == bvecs.shape True >>> gt = gradient_table(bvals, bvecs.T) >>> gt.bvecs.shape == bvecs.T.shape False  ### gradient_table_from_gradient_strength_bvecs dipy.data.fetcher.gradient_table_from_gradient_strength_bvecs(gradient_strength, bvecs, big_delta, small_delta, b0_threshold=50, atol=0.01) A general function for creating diffusion MR gradients. It reads, loads and prepares scanner parameters like the b-values and b-vectors so that they can be useful during the reconstruction process. Parameters gradient_strengthan array of shape (N,), gradient strength given in T/mm bvecscan be any of two options 1. an array of shape (N, 3) or (3, N) with the b-vectors. 2. a path for the file which contains an array like the previous. big_deltafloat or array of shape (N,) acquisition pulse separation time in seconds small_deltafloat acquisition pulse duration time in seconds b0_thresholdfloat All b-values with values less than or equal to bo_threshold are considered as b0s i.e. without diffusion weighting. atolfloat All b-vectors need to be unit vectors up to a tolerance. Returns gradientsGradientTable A GradientTable with all the gradient information. Notes 1. Often b0s (b-values which correspond to images without diffusion weighting) have 0 values however in some cases the scanner cannot provide b0s of an exact 0 value and it gives a bit higher values e.g. 6 or 12. This is the purpose of the b0_threshold in the __init__. 2. We assume that the minimum number of b-values is 7. 3. B-vectors should be unit vectors. Examples >>> from dipy.core.gradients import ( ... gradient_table_from_gradient_strength_bvecs) >>> gradient_strength = .03e-3 * np.ones(7) # clinical strength at 30 mT/m >>> big_delta = .03 # pulse separation of 30ms >>> small_delta = 0.01 # pulse duration of 10ms >>> gradient_strength[0] = 0 >>> sq2 = np.sqrt(2) / 2 >>> bvecs = np.array([[0, 0, 0], ... [1, 0, 0], ... [0, 1, 0], ... [0, 0, 1], ... [sq2, sq2, 0], ... [sq2, 0, sq2], ... [0, sq2, sq2]]) >>> gt = gradient_table_from_gradient_strength_bvecs( ... gradient_strength, bvecs, big_delta, small_delta)  ### load_nifti dipy.data.fetcher.load_nifti(fname, return_img=False, return_voxsize=False, return_coords=False, as_ndarray=True) Load data and other information from a nifti file. Parameters fnamestr Full path to a nifti file. return_imgbool, optional Whether to return the nibabel nifti img object. Default: False return_voxsize: bool, optional Whether to return the nifti header zooms. Default: False return_coordsbool, optional Whether to return the nifti header aff2axcodes. Default: False as_ndarray: bool, optional convert nibabel ArrayProxy to a numpy.ndarray. If you want to save memory and delay this casting, just turn this option to False (default: True) Returns A tuple, with (at the most, if all keyword args are set to True): (data, img.affine, img, vox_size, nib.aff2axcodes(img.affine)) ### load_nifti_data dipy.data.fetcher.load_nifti_data(fname, as_ndarray=True) Load only the data array from a nifti file. Parameters fnamestr Full path to the file. as_ndarray: bool, optional convert nibabel ArrayProxy to a numpy.ndarray. If you want to save memory and delay this casting, just turn this option to False (default: True) Returns data: np.ndarray or nib.ArrayProxy ### md5 dipy.data.fetcher.md5() Returns a md5 hash object; optionally initialized with a string ### pjoin dipy.data.fetcher.pjoin(a, *p) Join two or more pathname components, inserting ‘/’ as needed. If any component is an absolute path, all previous path components will be discarded. An empty last part will result in a path that ends with a separator. ### read_bundles_2_subjects dipy.data.fetcher.read_bundles_2_subjects(subj_id='subj_1', metrics=['fa'], bundles=['af.left', 'cst.right', 'cc_1']) Read images and streamlines from 2 subjects of the SNAIL dataset Parameters subj_idstring Either subj_1 or subj_2. metricslist Either [‘fa’] or [‘t1’] or [‘fa’, ‘t1’] bundleslist E.g., [‘af.left’, ‘cst.right’, ‘cc_1’]. See all the available bundles in the exp_bundles_maps/bundles_2_subjects directory of your $HOME/.dipy folder.

Returns
dixdict

Dictionary with data of the metrics and the bundles as keys.

Notes

If you are using these datasets please cite the following publications.

References

1

Renauld, E., M. Descoteaux, M. Bernier, E. Garyfallidis,

K. Whittingstall, “Morphology of thalamus, LGN and optic radiation do not influence EEG alpha waves”, Plos One (under submission), 2015.

2

Garyfallidis, E., O. Ocegueda, D. Wassermann,

M. Descoteaux. Robust and efficient linear registration of fascicles in the space of streamlines , Neuroimage, 117:124-140, 2015.

dipy.data.fetcher.read_bvals_bvecs(fbvals, fbvecs)

Read b-values and b-vectors from disk

Parameters
fbvalsstr

Full path to file with b-values. None to not read bvals.

fbvecsstr

Full path of file with b-vectors. None to not read bvecs.

Returns
bvalsarray, (N,) or None
bvecsarray, (N, 3) or None

Notes

Files can be either ‘.bvals’/’.bvecs’ or ‘.txt’ or ‘.npy’ (containing arrays stored with the appropriate values).

dipy.data.fetcher.read_cenir_multib(bvals=None)

Parameters
bvalslist or int

The b-values to read from file (200, 400, 1000, 2000, 3000).

Returns
imgnibabel.Nifti1Image

Notes

Details of the acquisition and processing, and additional meta-data are available through UW researchworks:

https://digital.lib.washington.edu/researchworks/handle/1773/33311

dipy.data.fetcher.read_cfin_dwi()

Load CFIN multi b-value DWI data.

Returns
imgobj,

Nifti1Image

gtabobj,

dipy.data.fetcher.read_cfin_t1()

Returns
imgobj,

Nifti1Image

dipy.data.fetcher.read_isbi2013_2shell()

Load ISBI 2013 2-shell synthetic dataset.

Returns
imgobj,

Nifti1Image

gtabobj,

dipy.data.fetcher.read_ivim()

Returns
imgobj,

Nifti1Image

gtabobj,

dipy.data.fetcher.read_mni_template(version='a', contrast='T2')

Read the MNI template from disk

Parameters
version: string

There are two MNI templates 2009a and 2009c, so options available are: “a” and “c”.

contrastlist or string, optional

Which of the contrast templates to read. For version “a” two contrasts are available: “T1” and “T2”. Similarly for version “c” there are two options, “T1” and “mask”. You can input contrast as a string or a list

Returns
listcontains the nibabel.Nifti1Image objects requested, according to the

order they were requested in the input.

Notes

The templates were downloaded from the MNI (McGill University) website in July 2015.

The following publications should be referenced when using these templates:

1

VS Fonov, AC Evans, K Botteron, CR Almli, RC McKinstry, DL Collins and BDCG, Unbiased average age-appropriate atlases for pediatric studies, NeuroImage, 54:1053-8119, DOI: 10.1016/j.neuroimage.2010.07.033

2

VS Fonov, AC Evans, RC McKinstry, CR Almli and DL Collins, Unbiased nonlinear average age-appropriate brain templates from birth to adulthood, NeuroImage, 47:S102 Organization for Human Brain Mapping 2009 Annual Meeting, DOI: https://doi.org/10.1016/S1053-8119(09)70884-5

Copyright (C) 1993-2004, Louis Collins McConnell Brain Imaging Centre, Montreal Neurological Institute, McGill University. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies. The authors and McGill University make no representations about the suitability of this software for any purpose. It is provided “as is” without express or implied warranty. The authors are not responsible for any data loss, equipment damage, property loss, or injury to subjects or patients resulting from the use or misuse of this software package.

Examples

Get only the T1 file for version c: >>> T1 = read_mni_template(“c”, contrast = “T1”) # doctest: +SKIP Get both files in this order for version a: >>> T1, T2 = read_mni_template(contrast = [“T1”, “T2”]) # doctest: +SKIP

dipy.data.fetcher.read_qtdMRI_test_retest_2subjects()

Load test-retest qt-dMRI acquisitions of two C57Bl6 mice. These datasets were used to study test-retest reproducibility of time-dependent q-space indices (q:math: au-indices) in the corpus callosum of two mice [1]. The data itself and its details are publicly available and can be cited at [2].

The test-retest diffusion MRI spin echo sequences were acquired from two C57Bl6 wild-type mice on an 11.7 Tesla Bruker scanner. The test and retest acquisition were taken 48 hours from each other. The (processed) data consists of 80x160x5 voxels of size 110x110x500μm. Each data set consists of 515 Diffusion-Weighted Images (DWIs) spread over 35 acquisition shells. The shells are spread over 7 gradient strength shells with a maximum gradient strength of 491 mT/m, 5 pulse separation shells between [10.8 - 20.0]ms, and a pulse length of 5ms. We manually created a brain mask and corrected the data from eddy currents and motion artifacts using FSL’s eddy. A region of interest was then drawn in the middle slice in the corpus callosum, where the tissue is reasonably coherent.

Returns
datalist of length 4

contains the dwi datasets ordered as (subject1_test, subject1_retest, subject2_test, subject2_retest)

contains the corpus callosum masks ordered in the same order as data.

gtabslist of length 4

contains the qt-dMRI gradient tables of the data sets.

References

1

Fick, Rutger HJ, et al. “Non-Parametric GraphNet-Regularized Representation of dMRI in Space and Time”, Medical Image Analysis, 2017.

2

Wassermann, Demian, et al., “Test-Retest qt-dMRI datasets for Non-Parametric GraphNet-Regularized Representation of dMRI in Space and Time’”. doi:10.5281/zenodo.996889, 2017.

dipy.data.fetcher.read_scil_b0()

Load GE 3T b0 image form the scil b0 dataset.

Returns
imgobj,

Nifti1Image

dipy.data.fetcher.read_sherbrooke_3shell()

Returns
imgobj,

Nifti1Image

gtabobj,

dipy.data.fetcher.read_siemens_scil_b0()

Load Siemens 1.5T b0 image from the scil b0 dataset.

Returns
imgobj,

Nifti1Image

dipy.data.fetcher.read_stanford_hardi()

Returns
imgobj,

Nifti1Image

gtabobj,

dipy.data.fetcher.read_stanford_labels()

Read stanford hardi data and label map.

dipy.data.fetcher.read_stanford_pve_maps()

dipy.data.fetcher.read_stanford_t1()

dipy.data.fetcher.read_syn_data()

Load t1 and b0 volumes from the same session.

Returns
t1obj,

Nifti1Image

b0obj,

Nifti1Image

dipy.data.fetcher.read_taiwan_ntu_dsi()

Returns
imgobj,

Nifti1Image

gtabobj,

dipy.data.fetcher.read_tissue_data(contrast='T1')

Load images to be used for tissue classification

Parameters
constraststr

‘T1’, ‘T1 denoised’ or ‘Anisotropic Power’

Returns
imageobj,

Nifti1Image

### update_progressbar

dipy.data.fetcher.update_progressbar(progress, total_length)

Show progressbar

Takes a number between 0 and 1 to indicate progress from 0 to 100%.

### urlopen

dipy.data.fetcher.urlopen`(url, data=None, timeout=<object object at 0x1004dfef0>, *, cafile=None, capath=None, cadefault=False, context=None)

Open the URL url, which can be either a string or a Request object.

data must be an object specifying additional data to be sent to the server, or None if no such data is needed. See Request for details.

urllib.request module uses HTTP/1.1 and includes a “Connection:close” header in its HTTP requests.

The optional timeout parameter specifies a timeout in seconds for blocking operations like the connection attempt (if not specified, the global default timeout setting will be used). This only works for HTTP, HTTPS and FTP connections.

If context is specified, it must be a ssl.SSLContext instance describing the various SSL options. See HTTPSConnection for more details.

The optional cafile and capath parameters specify a set of trusted CA certificates for HTTPS requests. cafile should point to a single file containing a bundle of CA certificates, whereas capath should point to a directory of hashed certificate files. More information can be found in ssl.SSLContext.load_verify_locations().

This function always returns an object which can work as a context manager and has methods such as

• geturl() - return the URL of the resource retrieved, commonly used to determine if a redirect was followed

• info() - return the meta-information of the page, such as headers, in the form of an email.message_from_string() instance (see Quick Reference to HTTP Headers)

• getcode() - return the HTTP status code of the response. Raises URLError on errors.

For HTTP and HTTPS URLs, this function returns a http.client.HTTPResponse object slightly modified. In addition to the three new methods above, the msg attribute contains the same information as the reason attribute — the reason phrase returned by the server — instead of the response headers as it is specified in the documentation for HTTPResponse.

For FTP, file, and data URLs and requests explicitly handled by legacy URLopener and FancyURLopener classes, this function returns a urllib.response.addinfourl object.

Note that None may be returned if no handler handles the request (though the default installed global OpenerDirector uses UnknownHandler to ensure this never happens).

In addition, if proxy settings are detected (for example, when a *_proxy environment variable like http_proxy is set), ProxyHandler is default installed and makes sure the requests are handled through the proxy.