nbodykit.source.mesh.bigfile

Classes

BigFileMesh(path, dataset[, comm])

A MeshSource object that reads a mesh from disk using bigfile.

class nbodykit.source.mesh.bigfile.BigFileMesh(path, dataset, comm=None, **kwargs)[source]

A MeshSource object that reads a mesh from disk using bigfile.

This can read meshes that have been stored with the save() function of MeshSource objects.

Parameters
  • path (str) – the name of the file to load

  • dataset (str) – the name of the dataset in the Bigfile holding the grid

  • comm (MPI.Communicator) – the MPI communicator

  • **kwargs – extra meta-data to be stored in the attrs dict

Attributes
actions

A list of actions to apply to the density field when interpolating to the mesh.

attrs

A dictionary storing relevant meta-data about the CatalogSource.

Methods

apply(func[, kind, mode])

Return a view of the mesh, with actions updated to apply the specified function, either in Fourier space or configuration space, based on mode

compute([mode, Nmesh])

Compute / Fetch the mesh object into memory as a RealField or ComplexField object.

preview([axes, Nmesh, root])

Gather the mesh into as a numpy array, with (reduced) resolution.

save(output[, dataset, mode])

Save the mesh as a BigFileMesh on disk, either in real or complex space.

to_complex_field()

Return the ComplexField stored on disk.

to_field([mode, out])

Return the mesh as a pmesh Field object, either in Fourier space or configuration space, based on mode.

to_real_field()

Return the RealField stored on disk.

view()

Return a “view” of the MeshSource, in the spirit of numpy’s ndarray view.

paint

__finalize__(other)

Finalize the creation of a MeshSource object by copying over attributes from a second MeshSource.

Parameters

other (MeshSource) – the second MeshSource to copy over attributes from

__len__()

Length of a mesh source is zero

property actions

A list of actions to apply to the density field when interpolating to the mesh.

This stores tuples of (mode, func, kind); see apply() for more details.

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
  • func (callable or a MeshFilter object) – func(x, y) where x is a list of r (k) values that broadcasts into a full array, when mode is ‘real’ (‘complex’); the value of x depends on kind. y is the value of the mesh field on the corresponding locations.

  • kind (string, optional) –

    if a MeshFilter object is given as func, this is ignored. The kind of value in x.

    • When mode is ‘complex’:

      • ’wavenumber’ means wavenumber from [- 2 pi / L * N / 2, 2 pi / L * N / 2).

      • ’circular’ means circular frequency from [- pi, pi).

      • ’index’ means [0, Nmesh )

    • When mode is ‘real’:

      • ’relative’ means distance from [-0.5 Boxsize, 0.5 BoxSize).

      • ’index’ means [0, Nmesh )

  • mode ('complex' or 'real', optional) – if a MeshFilter object is given as func, this is ignored. whether to apply the function to the mesh in configuration space or Fourier space

Returns

a view of the mesh object with the actions attribute updated to include the new action

Return type

MeshSource

property attrs

A dictionary storing relevant meta-data about the CatalogSource.

compute(mode='real', Nmesh=None)

Compute / Fetch the mesh object into memory as a RealField or ComplexField object.

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
  • Nmesh (int, array_like) – The desired Nmesh of the result. Be aware this function allocates memory to hold a full Nmesh on each rank.

  • axes (int, array_like) – The axes to project the preview onto., e.g. (0, 1)

  • root (int, optional) – the rank number to treat as root when gathering to a single rank

Returns

out – An numpy array holding the real density field.

Return type

array_like

save(output, dataset='Field', mode='real')

Save the mesh as a BigFileMesh on disk, either in real or complex space.

Parameters
  • output (str) – name of the bigfile file

  • dataset (str, optional) – name of the bigfile data set where the field is stored

  • mode (str, optional) – real or complex; the form of the field to store

to_complex_field()[source]

Return the ComplexField stored on disk.

Note

The mesh stored on disk must be stored with mode=complex

Returns

real – an array-like object holding the mesh loaded from disk in Fourier space

Return type

pmesh.pm.ComplexField

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_real_field()[source]

Return the RealField stored on disk.

Note

The mesh stored on disk must be stored with mode=real

Returns

real – an array-like object holding the mesh loaded from disk in configuration space

Return type

pmesh.pm.RealField

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.

Note that for CatalogMesh objects, this is overidden by the CatalogSource.view function.