EllipseAnnulusPixelRegion

class regions.EllipseAnnulusPixelRegion(center, inner_width, outer_width, inner_height, outer_height, angle=<Quantity 0. deg>, meta=None, visual=None)[source]

Bases: AsymmetricAnnulusPixelRegion

A elliptical annulus in pixel coordinates.

Parameters:
centerPixCoord

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.

angleQuantity, 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.

metaRegionMeta or dict, optional

A dictionary that stores the meta attributes of the region.

visualRegionVisual or dict, optional

A dictionary that stores the visual meta attributes of the region.

Examples

from astropy.coordinates import Angle
from regions import PixCoord, EllipseAnnulusPixelRegion
import matplotlib.pyplot as plt

fig, ax = plt.subplots(1, 1)

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)

../_images/regions-EllipseAnnulusPixelRegion-1.png

Attributes Summary

angle

The rotation angle measured anti-clockwise as a astropy.units.Quantity angle.

center

The center pixel position as a PixCoord.

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 Summary

to_polygon([n_points])

Return a CompoundPixelRegion of two PolygonPixelRegion objects that approximates this annulus.

to_sky(wcs)

Return a region defined in sky coordinates.

to_spherical_sky([wcs, ...])

Convert to an equivalent spherical SphericalSkyRegion instance.

Attributes Documentation

angle

The rotation angle measured anti-clockwise as a astropy.units.Quantity angle.

center

The center pixel position as a PixCoord.

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_points=100)[source]

Return a CompoundPixelRegion of two PolygonPixelRegion objects that approximates this annulus.

Parameters:
n_pointsint, optional

The number of polygon vertices for each ellipse. Default is 100.

Returns:
polygonCompoundPixelRegion

A compound region of two polygon regions approximating the annulus.

to_sky(wcs)[source]

Return a region defined in sky coordinates.

Parameters:
wcsWCS

The world coordinate system transformation to use to convert from pixels to sky coordinates.

Returns:
sky_regionSkyRegion

The 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 CirclePixelRegion converts to a CircleSkyRegion).

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=None, include_boundary_distortions=False, n_points=None)[source]

Convert to an equivalent spherical SphericalSkyRegion instance.

Parameters:
wcsWCS instance, optional

The world coordinate system transformation to use to convert between sky and pixel coordinates. Required if transforming with boundary distortions (if include_boundary_distortions is True). Ignored if boundary distortions not included.

include_boundary_distortionsbool, optional

If True, accounts for boundary distortions in spherical to planar conversions, by discretizing the boundary and converting the boundary polygon. Default is False, which converts to an equivalent idealized shape.

n_pointsint, optional

The number of polygon vertices for boundary discretization. This keyword will have effect unless include_boundary_distortions=True. Default is 100.

Returns:
spherical_sky_regionSphericalSkyRegion

A spherical sky region, with an equivalent shape (if include_boundary_distortions is False), or a discretized polygon of the boundary (if include_boundary_distortions is True).