EllipseAnnulusPixelRegion#
- class regions.EllipseAnnulusPixelRegion(center, inner_width, outer_width, inner_height, outer_height, angle=<Quantity 0. deg>, meta=None, visual=None)[source]#
Bases:
AsymmetricAnnulusPixelRegionA elliptical annulus in pixel coordinates.
- Parameters:
- center
PixCoord The position of the center of the elliptical annulus.
- inner_widthfloat
The inner width of the elliptical annulus (before rotation) in pixels.
- outer_widthfloat
The outer width of the elliptical annulus (before rotation) in pixels.
- inner_heightfloat
The inner height of the elliptical annulus (before rotation) in pixels.
- outer_heightfloat
The outer height of the elliptical annulus (before rotation) in pixels.
- angle
Quantity, optional The rotation angle of the elliptical annulus, measured anti-clockwise. If set to zero (the default), the width axis is lined up with the x axis.
- meta
RegionMetaordict, optional A dictionary that stores the meta attributes of the region.
- visual
RegionVisualordict, optional A dictionary that stores the visual meta attributes of the region.
- center
Examples
import matplotlib.pyplot as plt from astropy.coordinates import Angle from regions import EllipseAnnulusPixelRegion, PixCoord fig, ax = plt.subplots() reg = EllipseAnnulusPixelRegion(PixCoord(6, 6), inner_width=5.5, outer_width=8.5, inner_height=3.5, outer_height=6.5, angle=Angle('45deg')) patch = reg.plot(ax=ax, facecolor='none', edgecolor='red', lw=2, label='Ellipse Annulus') ax.legend(handles=(patch,), loc='upper center') ax.set_xlim(-5, 20) ax.set_ylim(-5, 20) ax.set_aspect('equal')
(
Source code,png,hires.png,pdf,svg)
Attributes Summary
The rotation angle measured anti-clockwise as a
astropy.units.Quantityangle.The center pixel position as a
PixCoord.The inner height (before rotation) in pixels as a float.
The inner width (before rotation) in pixels as a float.
The outer height (before rotation) in pixels as a float.
The outer width (before rotation) in pixels as a float.
Methods Summary
to_polygon(*[, n_vertices])Return a
CompoundPixelRegionof twoPolygonPixelRegionobjects that approximates this annulus.to_sky(wcs)Return a region defined in sky coordinates.
to_spherical_sky(wcs, *[, ...])Convert to an equivalent spherical
SphericalSkyRegioninstance.Attributes Documentation
- angle#
The rotation angle measured anti-clockwise as a
astropy.units.Quantityangle.
- inner_height#
The inner height (before rotation) in pixels as a float.
- inner_width#
The inner width (before rotation) in pixels as a float.
- outer_height#
The outer height (before rotation) in pixels as a float.
- outer_width#
The outer width (before rotation) in pixels as a float.
Methods Documentation
- to_polygon(*, n_vertices=100)[source]#
Return a
CompoundPixelRegionof twoPolygonPixelRegionobjects that approximates this annulus.- Parameters:
- n_verticesint, optional
The number of polygon vertices for each ellipse. Default is 100.
- Returns:
- polygon
CompoundPixelRegion A compound region of two polygon regions approximating the annulus.
- polygon
- to_sky(wcs)[source]#
Return a region defined in sky coordinates.
- Parameters:
- wcs
WCS The world coordinate system transformation to use to convert from pixels to sky coordinates.
- wcs
- Returns:
- sky_region
SkyRegion The sky region.
- sky_region
Notes
The conversion between pixel and sky coordinates is an approximation. The pixel region shape is mapped to a sky region shape using the local pixel scale and angle at the region center. Projection effects over the extent of the region are not accounted for. The region shape type is always preserved (e.g., a
CirclePixelRegionconverts to aCircleSkyRegion).For WCS with distortions (e.g., SIP), the local Jacobian matrix of the WCS transformation is used to compute directional scale factors and angle. For WCS without distortions, a local pixel scale and angle are computed using offset-based methods.
- to_spherical_sky(wcs, *, boundary_distortions=False, n_vertices=None)[source]#
Convert to an equivalent spherical
SphericalSkyRegioninstance.- Parameters:
- wcs
WCSinstance The world coordinate system transformation to use to convert between pixel and sky coordinates.
- boundary_distortionsbool, optional
If
True, the projection-induced distortions of the region’s boundary are preserved by discretizing the boundary into a polygon and transforming that polygon. IfFalse(default), the region is converted to an equivalent idealized shape that ignores these boundary distortions.- n_verticesint, optional
The number of polygon vertices for boundary discretization. This keyword will have no effect unless
boundary_distortions=True. Default is 100.
- wcs
- Returns:
- spherical_sky_region
SphericalSkyRegion A spherical sky region, with an equivalent shape (if
boundary_distortionsis False), or a discretized polygon of the boundary (ifboundary_distortionsis True).
- spherical_sky_region