yt.utilities.sdf module

class yt.utilities.sdf.DataStruct(dtypes, num, filename)[source]

Bases: object

docstring for DataStruct

build_memmap()[source]
set_offset(offset)[source]
class yt.utilities.sdf.HTTPDataStruct(*args, **kwargs)[source]

Bases: yt.utilities.sdf.DataStruct

docstring for HTTPDataStruct

build_memmap()[source]
set_offset(offset)[source]
class yt.utilities.sdf.HTTPSDFRead(*args, **kwargs)[source]

Bases: yt.utilities.sdf.SDFRead

Read an SDF file hosted on the internet.

Given an SDF file (see https://bitbucket.org/JohnSalmon/sdf), parse the ASCII header and construct numpy memmap array access.

Parameters
  • filename (string) – The filename associated with the data to be loaded.

  • header (string, optional) – If separate from the data file, a file containing the header can be specified. Default: None.

Returns

self – Dict-like container of parameters and data.

Return type

SDFRead object

References

SDF is described here:

J. K. Salmon and M. S. Warren. Self-Describing File (SDF) Library. Zenodo, Jun 2014. URL https://bitbucket.org/JohnSalmon/sdf.

Examples

>>> sdf = SDFRead("data.sdf", header="data.hdr")
>>> print(sdf.parameters)
>>> print(sdf["x"])
clear() → None. Remove all items from D.
copy() → a shallow copy of D
fromkeys(value=None, /)

Create a new dictionary with keys from iterable and values set to value.

get(key, default=None, /)

Return the value for key if key is in the dictionary, else default.

items() → a set-like object providing a view on D’s items
keys() → a set-like object providing a view on D’s keys
load_memmaps()
parse_header()[source]

docstring for parse_header

parse_line(line, ascfile)

Parse a line of sdf

parse_struct(line, ascfile)
pop(k[, d]) → v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised

popitem()

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

set_offsets()
setdefault(key, default=None, /)

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update([E, ]**F) → None. Update D from dict/iterable E and F.

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() → an object providing a view on D’s values
write(filename)
class yt.utilities.sdf.RedirectArray(http_array, key)[source]

Bases: object

docstring for RedirectArray

class yt.utilities.sdf.SDFIndex(sdfdata, indexdata, level=None)[source]

Bases: object

docstring for SDFIndex

This provides an index mechanism into the full SDF Dataset.

Most useful class methods:

get_cell_data(level, cell_iarr, fields) iter_bbox_data(left, right, fields) iter_bbox_data(left, right, fields)

filter_bbox(left, right, myiter)[source]

Filter data by masking out data outside of a bbox defined by left/right. Account for periodicity of data, allowing left/right to be outside of the domain.

filter_particles(myiter, myfilter)[source]
filter_sphere(center, radius, myiter)[source]

Filter data by masking out data outside of a sphere defined by a center and radius. Account for periodicity of data, allowing left/right to be outside of the domain.

find_max_cell()[source]
find_max_cell_center()[source]
get_bbox(left, right)[source]

Given left and right indicies, return a mask and set of offsets+lengths into the sdf data.

get_cell_bbox(level, cell_iarr)[source]

Get floating point bounding box for a given midx cell

Returns

array-like of shape (3,2)

Return type

bbox

get_cell_data(level, cell_iarr, fields)[source]

Get data from requested cell

This uses the raw cell index, and doesn’t account for periodicity or an expanded domain (non-power of 2).

level: int

Requested level

cell_iarr: array-like, length 3

Requested cell from given level. fields: list Requested fields

Returns

dict

Dictionary of field_name, field_data

Return type

cell_data

get_cell_width(level)[source]
get_contiguous_chunk(left_key, right_key, fields)[source]
get_data(chunk, fields)[source]
get_ibbox(ileft, iright)[source]

Given left and right indicies, return a mask and set of offsets+lengths into the sdf data.

get_ibbox_slow(ileft, iright)[source]

Given left and right indicies, return a mask and set of offsets+lengths into the sdf data.

get_ind_from_key(key, dim='r')[source]
get_key(iarr, level=None)[source]
get_key_bounds(level, cell_iarr)[source]

Get index keys for index file supplied.

level: int

Requested level

cell_iarr: array-like, length 3

Requested cell from given level.

Returns

lmax_lk, lmax_rk

get_key_data(key, fields)[source]
get_key_ijk(i1, i2, i3, level=None)[source]
get_key_slow(iarr, level=None)[source]
get_keyv(iarr, level=None)[source]
get_next_nonzero_chunk(key, stop=None)[source]
get_nparticles_bbox(left, right)[source]

Given left and right edges, return total number of particles present.

get_padded_bbox_data(level, cell_iarr, pad, fields)[source]

Return list of data chunks for a cell on the given level plus a padding around the cell, for a list of fields.

Returns

data – A list of dictionaries of data.

Return type

list

Examples

>>> chunks = midx.get_padded_bbox_data(
...     6, np.array([128] * 3), 8.0, ["x", "y", "z", "ident"]
... )
get_previous_nonzero_chunk(key, stop=None)[source]
get_slice_chunks(slice_dim, slice_index)[source]
get_slice_key(ind, dim='r')[source]
iter_bbox_data(left, right, fields)[source]

Iterate over all data within a bounding box defined by a left and a right.

iter_data(inds, fields)[source]
iter_filtered_bbox_fields(left, right, data, pos_fields, fields)[source]

This function should be destroyed, as it will only work with units.

iter_ibbox_data(left, right, fields)[source]
iter_padded_bbox_data(level, cell_iarr, pad, fields)[source]

Yields data chunks for a cell on the given level plus a padding around the cell, for a list of fields.

Yields

dd – A dictionaries of data.

Example:

for chunk in midx.iter_padded_bbox_data(

6, np.array([128]*3), 8.0, [‘x’,’y’,’z’,’ident’]):

print(chunk[‘x’].max())

iter_padded_bbox_keys(level, cell_iarr, pad)[source]
Returns

array-like of shape (3,2)

Return type

bbox

iter_slice_data(slice_dim, slice_index, fields)[source]
iter_sphere_data(center, radius, fields)[source]

Iterate over all data within some sphere defined by a center and a radius.

set_bounds()[source]
spread_bits(ival, level=None)[source]
spread_bitsv(ival, level=None)[source]
class yt.utilities.sdf.SDFRead(filename=None, header=None)[source]

Bases: dict

clear() → None. Remove all items from D.
copy() → a shallow copy of D
fromkeys(value=None, /)

Create a new dictionary with keys from iterable and values set to value.

get(key, default=None, /)

Return the value for key if key is in the dictionary, else default.

items() → a set-like object providing a view on D’s items
keys() → a set-like object providing a view on D’s keys
load_memmaps()[source]
parse_header()[source]

docstring for parse_header

parse_line(line, ascfile)[source]

Parse a line of sdf

parse_struct(line, ascfile)[source]
pop(k[, d]) → v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised

popitem()

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

set_offsets()[source]
setdefault(key, default=None, /)

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update([E, ]**F) → None. Update D from dict/iterable E and F.

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() → an object providing a view on D’s values
write(filename)[source]
yt.utilities.sdf.bbox_filter(left, right, domain_width)[source]
yt.utilities.sdf.get_keyv(iarr, level)[source]
yt.utilities.sdf.get_thingking_deps()[source]
yt.utilities.sdf.load_sdf(filename, header=None)[source]

Load an SDF file.

Given an SDF file (see https://bitbucket.org/JohnSalmon/sdf), parse the ASCII header and construct numpy memmap array access. The file can be either local (on a hard drive, for example), or remote (on the World Wide Web).

Parameters
  • filename (string) – The filename or WWW address associated with the data to be loaded.

  • header (string, optional) – If separate from the data file, a file containing the header can be specified. Default: None.

Returns

sdf – Dict-like container of parameters and data.

Return type

SDFRead object

References

SDF is described here:

J. K. Salmon and M. S. Warren. Self-Describing File (SDF) Library. Zenodo, Jun 2014. URL https://bitbucket.org/JohnSalmon/sdf.

Examples

>>> sdf = SDFRead("data.sdf", header="data.hdr")
>>> print(sdf.parameters)
>>> print(sdf["x"])
yt.utilities.sdf.sphere_filter(center, radius, domain_width)[source]
yt.utilities.sdf.spread_bitsv(ival, level)[source]