nbodykit.source.catalogmesh.species.
MultipleSpeciesCatalogMesh
(source, BoxSize, Nmesh, dtype, weight, value, selection, position='Position')[source]¶Bases: nbodykit.base.catalogmesh.CatalogMesh
A subclass of CatalogMesh
designed to paint the density field from a sum of multiple types
of particles.
The paint()
function paints the density field summed over
all particle species.
Parameters: |
|
---|
Attributes
actions |
The actions to apply to the interpolated density field, optionally included the compensation correction. |
attrs |
A dictionary storing relevant meta-data about the MeshSource. |
columns |
All columns in the CatalogSource, including those hard-coded into the class’s defintion and override columns provided by the user. |
compensated |
Boolean flag to indicate whether to correct for the windowing kernel introduced when interpolating the discrete particles to a continuous field. |
csize |
The total, collective size of the CatalogSource, i.e., summed across all ranks. |
hardcolumns |
The names of the hard-coded columns in the source. |
interlaced |
Whether to use interlacing when interpolating the density field. |
size |
The number of local particles. |
use_cache |
If set to True , use the built-in caching features of dask to cache data in memory. |
window |
String specifying the name of the interpolation kernel when gridding the density field. |
Methods
CompensateCIC (w, v) |
Return the Fourier-space kernel that accounts for the convolution of |
CompensateCICAliasing (w, v) |
Return the Fourier-space kernel that accounts for the convolution of |
CompensateTSC (w, v) |
Return the Fourier-space kernel that accounts for the convolution of the gridded field with the TSC window function in configuration space. |
CompensateTSCAliasing (w, v) |
Return the Fourier-space kernel that accounts for the convolution of |
Selection () |
A boolean column that selects a subset slice of the CatalogSource. |
Value () |
When interpolating a CatalogSource on to a mesh, the value of this array is used as the Value that each particle contributes to a given mesh cell. |
Weight () |
The column giving the weight to use for each particle on the mesh. |
apply (func[, kind, mode]) |
Return a view of the mesh, with actions updated to |
compute (*args, **kwargs) |
Our version of dask.compute() that computes multiple delayed dask collections at once. |
copy () |
Return a copy of the CatalogSource object |
get_hardcolumn (col) |
Return a hard-coded column |
make_column (array) |
Utility function to convert a numpy array to a dask.array.Array . |
paint ([mode, Nmesh]) |
Paint the density on the mesh and apply any transformation functions specified in actions . |
preview ([axes, Nmesh, root]) |
Gather the mesh into as a numpy array, with (reduced) resolution. |
read (columns) |
Return the requested columns as dask arrays. |
save (output[, dataset, mode]) |
Save the mesh as a BigFileMesh on disk, either in real or complex space. |
to_complex_field ([out]) |
Convert the mesh source to the Fourier-space field, returning a pmesh.pm.ComplexField object. |
to_field ([mode, out]) |
Return the mesh as a pmesh Field object, either in Fourier space or configuration space, based on mode . |
to_mesh ([Nmesh, BoxSize, dtype, interlaced, …]) |
Convert the CatalogSource to a MeshSource, using the specified parameters. |
to_real_field ([normalize]) |
Paint the density field holding the sum of all particle species, returning a RealField object. |
update_csize () |
Set the collective size, csize . |
view () |
Return a “view” of the MeshSource, in the spirit of numpy’s ndarray view. |
CompensateCIC
(w, v)¶Return the Fourier-space kernel that accounts for the convolution of the gridded field with the CIC window function in configuration space
Note
see equation 18 (with p=2) of Jing et al 2005
Parameters: |
|
---|
CompensateCICAliasing
(w, v)¶Return the Fourier-space kernel that accounts for the convolution of the gridded field with the CIC window function in configuration space, as well as the approximate aliasing correction
Note
see equation 20 of Jing et al 2005
Parameters: |
|
---|
CompensateTSC
(w, v)¶Return the Fourier-space kernel that accounts for the convolution of the gridded field with the TSC window function in configuration space.
Note
see equation 18 (with p=3) of Jing et al 2005
Parameters: |
|
---|
CompensateTSCAliasing
(w, v)¶Return the Fourier-space kernel that accounts for the convolution of the gridded field with the TSC window function in configuration space, as well as the approximate aliasing correction
Note
see equation 20 of Jing et al 2005
Parameters: |
|
---|
Selection
()¶A boolean column that selects a subset slice of the CatalogSource.
By default, this column is set to True
for all particles.
Value
()¶When interpolating a CatalogSource on to a mesh, the value of this array is used as the Value that each particle contributes to a given mesh cell.
The mesh field is a weighted average of Value
, with the weights
given by Weight
.
By default, this array is set to unity for all particles.
Weight
()¶The column giving the weight to use for each particle on the mesh.
The mesh field is a weighted average of Value
, with the weights
given by Weight
.
By default, this array is set to unity for all particles.
__delitem__
(col)¶Delete a column; cannot delete a “hard-coded” column
__getitem__
(key)[source]¶If indexed by a species name, return a CatalogMesh object holding only the data columns for that species with the same parameters as the current object.
If not a species name, this has the same behavior as
CatalogSource.__getitem__()
.
__len__
()¶Length of a mesh source is zero
__setitem__
(col, value)¶Add columns to the CatalogSource, overriding any existing columns
with the name col
.
actions
¶The actions to apply to the interpolated density field, optionally included the compensation correction.
apply
(func, kind='wavenumber', mode='complex')¶Return a view of the mesh, with actions
updated to
apply the specified function, either in Fourier space or
configuration space, based on mode
Parameters: |
|
---|---|
Returns: | a view of the mesh object with the |
Return type: |
attrs
¶A dictionary storing relevant meta-data about the MeshSource.
columns
¶All columns in the CatalogSource, including those hard-coded into the class’s defintion and override columns provided by the user.
compensated
¶Boolean flag to indicate whether to correct for the windowing kernel introduced when interpolating the discrete particles to a continuous field.
See the documentation for further details.
compute
(*args, **kwargs)¶Our version of dask.compute()
that computes
multiple delayed dask collections at once.
This should be called on the return value of read()
to converts any dask arrays to numpy arrays.
If use_cache
is True
, this internally caches data, using
dask’s built-in cache features.
Parameters: | args (object) – Any number of objects. If the object is a dask collection, it’s computed and the result is returned. Otherwise it’s passed through unchanged. |
---|
Notes
The dask default optimizer induces too many (unnecesarry) IO calls – we turn this off feature off by default. Eventually we want our own optimizer probably.
copy
()¶Return a copy of the CatalogSource object
Returns: | the new CatalogSource object holding the copied data columns |
---|---|
Return type: | CatalogCopy |
csize
¶The total, collective size of the CatalogSource, i.e., summed across all ranks.
It is the sum of size
across all available ranks.
get_hardcolumn
(col)¶Return a hard-coded column
hardcolumns
¶The names of the hard-coded columns in the source.
interlaced
¶Whether to use interlacing when interpolating the density field.
See the documentation for further details.
See also: Section 3.1 of Sefusatti et al. 2015
logger
= <logging.Logger object>¶make_column
(array)¶Utility function to convert a numpy array to a dask.array.Array
.
paint
(mode='real', Nmesh=None)¶Paint the density on the mesh and apply
any transformation functions specified in actions
.
The return type of the pmesh
Field object is specified by
mode
. This calls to_field()
to convert the mesh to a Field.
See the documentation on painting for more details on painting catalogs to a mesh.
Parameters: | |
---|---|
Returns: | either a RealField of ComplexField, with the functions in
|
Return type: |
preview
(axes=None, Nmesh=None, root=0)¶Gather the mesh into as a numpy array, with (reduced) resolution. The result is broadcast to all ranks, so this uses \(\mathrm{Nmesh}^3\) per rank.
Parameters: | |
---|---|
Returns: | out – An numpy array holding the real density field. |
Return type: | array_like |
read
(columns)¶Return the requested columns as dask arrays.
Parameters: | columns (list of str) – the names of the requested columns |
---|---|
Returns: | the list of column data, in the form of dask arrays |
Return type: | list of dask.array.Array |
save
(output, dataset='Field', mode='real')¶Save the mesh as a BigFileMesh
on disk, either in real or complex space.
Parameters: |
---|
size
¶The number of local particles.
to_complex_field
(out=None)¶Convert the mesh source to the Fourier-space field,
returning a pmesh.pm.ComplexField
object.
Not implemented in the base class, unless object is a view.
to_field
(mode='real', out=None)¶Return the mesh as a pmesh
Field object, either in Fourier
space or configuration space, based on mode
.
This will call to_real_field()
or to_complex_field()
based on mode
.
Parameters: | mode ('real' or 'complex') – the return type of the field |
---|---|
Returns: | either a RealField of ComplexField, storing the value of the field on the mesh |
Return type: | RealField , ComplexField |
to_mesh
(Nmesh=None, BoxSize=None, dtype='f4', interlaced=False, compensated=False, window='cic', weight='Weight', value='Value', selection='Selection', position='Position')¶Convert the CatalogSource to a MeshSource, using the specified parameters.
Parameters: |
|
---|---|
Returns: | mesh – a mesh object that provides an interface for gridding particle data onto a specified mesh |
Return type: |
to_real_field
(normalize=True)[source]¶Paint the density field holding the sum of all particle species,
returning a RealField
object.
Meta-data computed for each particle is stored in the attrs
attribute of the returned RealField, with keys that are prefixed by
the species name. In particular, the total shot noise for the
mesh is defined as:
where the sum is over all species in the catalog, W_i
is the
sum of the Weight
column for the \(i^\mathrm{th}\) species,
and \(W_\mathrm{tot}\) is the sum of \(W_i\) across all species.
Parameters: | normalize (bool, optional) – if True , normalize the density field as \(1+\delta\),
dividing by the total mean number of objects per cell, as given
by the num_per_cell meta-data value in attrs |
---|---|
Returns: | the RealField holding the painted density field, with a
attrs dictionary attribute holding the meta-data |
Return type: | RealField |
update_csize
()¶Set the collective size, csize
.
This function should be called in __init__()
of a subclass,
after size
has been set to a valid value (not NotImplemented
)
use_cache
¶If set to True
, use the built-in caching features of dask
to cache data in memory.
view
()¶Return a “view” of the MeshSource, in the spirit of numpy’s ndarray view.
This returns a new MeshSource whose memory is owned by self
.
window
¶String specifying the name of the interpolation kernel when gridding the density field.
See the documentation for further details.
Note
Valid values must be in pmesh.window.methods