PyDL:docs

- Index
- Modules

### Navigation

- next »
- « previous |
- pydl v1.0.0-rc2 »
- SDSS Utilities (`pydl.pydlutils`) »
- ManglePolygon

# ManglePolygon

class pydl.pydlutils.mangle.ManglePolygon(*args, **kwargs)

  Bases: `object`

  Simple object to represent a polygon.

  A polygon may be instantiated with a row (`FITS_record`) from a `FITS_polygon` object, another `ManglePolygon` object (copy constructor), keyword arguments, or with no arguments at all, in which case it represents the whole sky.

  Attributes
    cm `ndarray`

      The size of each cap in the polygon.

    id `int`

      An arbitrary ID number.

    pixel `int`

      Pixel this polygon is in.

    use_caps `int`

      Bitmask indicating which caps to use.

    weight `float`

      Weight factor assigned to the polygon.

  Attributes Summary

  `ncaps` | Number of caps in the polygon.
  `str` | Solid angle of this polygon (steradians).
  `x` | The orientation of each cap in the polygon.

  Methods Summary

  `add_caps`(x, cm) | Create a new polygon that contains additional caps.
  `cmminf`() | The index of the smallest cap in the polygon, accounting for negative caps and `use_caps`.
  `copy`() | Return an exact copy of the polygon.
  `garea`() | Compute the area of a polygon.
  `gzeroar`() | If at least one cap has zero area, then the whole polygon has zero area.
  `polyn`(other, n[, complement]) | Intersection of a polygon with the `n` th cap of another polygon.

  Attributes Documentation

  ncaps

    Number of caps in the polygon.

  str

    Solid angle of this polygon (steradians).

  x

    The orientation of each cap in the polygon. The direction is specified by a unit 3-vector.

  Methods Documentation

  add_caps(x, cm)

    Create a new polygon that contains additional caps. The caps are appended to the existing polygon’s caps.

    Parameters
      x `ndarray` or `recarray`

        `X` values of the new caps.

      cm `ndarray` or `recarray`

        `CM` values of the new caps.

    Returns
      `ManglePolygon`

        A new polygon object.

  cmminf()

    The index of the smallest cap in the polygon, accounting for negative caps and `use_caps`.

    Returns
      `int`

        Integer index of the smallest cap.

  copy()

    Return an exact copy of the polygon.

    Returns
      `ManglePolygon`

        A new polygon object.

  garea()

    Compute the area of a polygon.

    See [1] for the detailed area formula, which is summarized here:

    - An empty polygon with no caps is defined to be the whole sky.

    - A polygon with one cap has area `2*pi*self.cm`.

    - A polygon with at least one cap with an area less than \(2\pi\) has an area less than \(2\pi\).

    - If every cap has an area greater than \(2\pi\), split the polygon into two smaller polygons and sum the two areas.

    Returns
      `float`

        The area of the polygon.

    References

    1

      Hamilton, A. J. S.; Tegmark, Max, 2004 MNRAS 349, 115.

  gzeroar()

    If at least one cap has zero area, then the whole polygon has zero area.

    Returns
      `bool`

        `True` if the area is zero.

  polyn(other, n, complement=False)

    Intersection of a polygon with the `n` th cap of another polygon.

    Parameters
      other `ManglePolygon`

        Polygon containing a cap to intersect the first polygon with.

      n `int`

        Index of the cap in `other`.

      complement `bool`, optional

        If `True`, set the sign of the cm value of `other` to be the complement of the original value.

    Returns
      `ManglePolygon`

        A polygon containing the intersected caps.