- property craftutils.wrap.psfex.Fittable2DModel.bounding_box
A tuple of length n_inputs defining the bounding box limits, or raise NotImplementedError for no bounding_box.
The default limits are given by a
bounding_boxproperty or method defined in the class body of a specific model. If not defined then this property just raises NotImplementedError by default (but may be assigned a custom value by a user).bounding_boxcan be set manually to an array-like object of shape(model.n_inputs, 2). For further usage, see Efficient Model Rendering with Bounding BoxesThe limits are ordered according to the numpy
'C'indexing convention, and are the reverse of the model input order, e.g. for inputs('x', 'y', 'z'),bounding_boxis defined:for 1D:
(x_low, x_high)for 2D:
((y_low, y_high), (x_low, x_high))for 3D:
((z_low, z_high), (y_low, y_high), (x_low, x_high))
Examples¶
Setting the
bounding_boxlimits for a 1D and 2D model:>>> from astropy.modeling.models import Gaussian1D, Gaussian2D >>> model_1d = Gaussian1D() >>> model_2d = Gaussian2D(x_stddev=1, y_stddev=1) >>> model_1d.bounding_box = (-5, 5) >>> model_2d.bounding_box = ((-6, 6), (-5, 5))Setting the bounding_box limits for a user-defined 3D custom_model:
>>> from astropy.modeling.models import custom_model >>> def const3d(x, y, z, amp=1): ... return amp ... >>> Const3D = custom_model(const3d) >>> model_3d = Const3D() >>> model_3d.bounding_box = ((-6, 6), (-5, 5), (-4, 4))To reset
bounding_boxto its default limits just delete the user-defined value–this will reset it back to the default defined on the class:>>> del model_1d.bounding_boxTo disable the bounding box entirely (including the default), set
bounding_boxto None:>>> model_1d.bounding_box = None >>> model_1d.bounding_box Traceback (most recent call last): NotImplementedError: No bounding box is defined for this model (note: the bounding box was explicitly disabled for this model; use `del model.bounding_box` to restore the default bounding box, if one is defined for this model).