npix_ellip_ann_exact
npix_ellip_ann_exact(
x,
y,
a_in,
b_in,
a_out,
b_out,
theta_in=0.0,
theta_out=None,
*,
shape,
mask=None,
validate=True,
)Return exact elliptical-annulus effective in-frame pixel counts.
Parameters
x, y : scalar or array_like-
Aperture center coordinates in pixel units. Shapes must match after
numpy.atleast_1d. The return shape matches that broadcast-free input shape, so scalar inputs return one-element arrays. a_in, b_in, a_out, b_out : float-
Inner and outer ellipse semiaxes in pixels. Inner axes must be no larger than the corresponding outer axes, and at least one outer axis must be larger.
theta_in : float, optional = 0.0-
Inner ellipse rotation angle in radians.
theta_out : float or None, optional = None-
Outer ellipse rotation angle in radians. If
None, usestheta_in. shape : tuple[int, int]-
Image shape as
(ny, nx)used to clip the aperture footprint. mask : array_like of bool, optional = None-
Boolean image mask with shape
shape.Truepixels are excluded from the returned effective pixel count.
Returns
npix : ndarray-
Effective pixel count inside the image frame.
Notes
For matched inner and outer angles, this uses outer-minus-inner direct aperture summation. For split-angle annuli, it uses Rust-generated bbox-tight annulus weights and the same BoundingBox.apsum reduction.