Clipping

orbithunter.clipping.clip(orbit_instance, window_dimensions, **kwargs)[source]

Create Orbit instance whose state array is a subdomain of the provided Orbit.

Parameters
orbit_instanceOrbit

The orbit whose state the subdomain is extracted from.

window_dimensionstuple of tuples.

Contains one tuple for each continuous dimension, each defining the interval of the dimension to slice out.

kwargsdict

Keyword arguments for Orbit instantiate.

Returns
Orbit :

Orbit whose state and parameters reflect the subdomain defined by the provided dimensions.

Notes

The intervals provided refer to the Orbit._plotting_dimensions() method. The motivation here is to allow for clipping using visualization techniques as a direct guide. If a dimension has zero extent; i.e. equilibrium in that dimension, then the corresponding window_dimension tuple must be passed as (None, None).

Examples

Extract subdomain from an Orbit

>>> orb = Orbit(state=np.ones([128, 128, 128, 128]), basis='physical',
...                              parameters=(100, 100, 100, 100))
>>> one_sixteeth_subdomain_orbit = clip(orb, ((0, 50), (0, 50), (0, 50), (0, 50)))

It is 1/16th the size because it takes half of the points in 4 different dimensions.

orbithunter.clipping.clipping_mask(orbit_instance, *windows, invert=True)[source]

Produce an array mask which shows the clipped regions corresponding to windows upon plotting.

Parameters
orbit_instanceOrbit

An instance whose state is to be masked.

windowslist or tuple

An iterable of window tuples; see Notes below.

invertbool

Whether to logically invert the boolean mask; equivalent to showing the “interior” or “exterior” of the clipping if True or False, respectively.

Returns
Orbit :

Orbit instance whose state is a numpy masked array.