pynbody.filt.Disc#
- class pynbody.filt.Disc(radius: float | str | UnitBase, height: float | str | UnitBase, cen: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] = (0, 0, 0))[source]#
Bases:
Filter
A filter that selects particles within a disc of specified extent and thickness.
Methods
__call__
(sim)Return a boolean mask indicating which particles are in the filter.
cubic_cell_intersection
(centroids)Compute the intersection with cubic cells with the specified centroids.
where
(sim)Return the indices of particles that are in the filter.
- __init__(radius: float | str | UnitBase, height: float | str | UnitBase, cen: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] = (0, 0, 0))[source]#
Create a disc filter.
In keeping with other parts of pynbody, the disc is defined in the x-y plane, with the z-axis being the symmetry axis. This is useful in conjunction with automated disc alignment e.g.
pynbody.analysis.angmom.sideon()
.- Parameters:
radius – The radius of the disc (in the xy-plane). If a string, it is interpreted as a unit string.
height – The thickness of the disc (in the z-direction). If a string, it is interpreted as a unit string.
cen – The centre of the disc. If a
pynbody.snapshot.simsnap.SimArray
, units can be provided and will be correctly accounted for.
- cubic_cell_intersection(centroids)#
Compute the intersection with cubic cells with the specified centroids.
This is currently used by the swift loader to figure out which cells to load
- where(sim: snapshot.SimSnap)#
Return the indices of particles that are in the filter.
This is a convenience method that is equivalent to np.where(f(sim)) but may be more efficient for some filters.