Source code for lsst.sims.ocs.configuration.field

from builtins import object
import math

__all__ = ["Field"]

[docs]class Field(object): """Class for handling field information. This is the class for handling the field information on the sky. The values contained within the class are all kept in degrees. Properties are exposed that present those values in radians. Attributes ---------- fid : int The field's ID. fov : float The field's field-of-view. ra : float The field's right ascension. dec : float The field's declination. gl : float The field's galactic latitude. gb : float The field's galactic longitude. el : float The field's ecliptic latitude. eb : float The field's ecliptic longitude. """ def __init__(self, fid, fov, ra, dec, gl, gb, el, eb): """Initialize the class. Note ---- All angular values are expected to be in degrees! Parameters ---------- fid : int The field's ID. fov : float The field's field-of-view. ra : float The field's right ascension. dec : float The field's declination. gl : float The field's galactic latitude. gb : float The field's galactic longitude. el : float The field's ecliptic latitude. eb : float The field's ecliptic longitude. """ self.fid = fid self.fov = fov self.ra = ra self.dec = dec self.gl = gl self.gb = gb self.el = el self.eb = eb
[docs] def __str__(self): """str """ return "Field ID: {0}, FOV: {1:.3f} deg, RA: {2:.3f} deg, DEC: {3:.3f} deg, GalL: {4:.3f} deg, "\ "GalB: {5:.3f} deg, EclL: {6:.3f} deg, EclB: {7:.3f} deg".format(self.fid, self.fov, self.ra, self.dec, self.gl, self.gb, self.el, self.eb)
[docs] def __repr__(self): """str """ return "Field({!r}, {!r}, {!r}, {!r}, {!r}, {!r}, {!r}, {!r})".format(self.fid, self.fov, self.ra, self.dec, self.gl, self.gb, self.el, self.eb)
[docs] @classmethod def from_topic(cls, topic): """Alternate initializer. Parameters ---------- topic : SALPY_scheduler.fieldC The field topic instance. Returns ------- field.Field """ return cls(topic.ID, topic.fov, topic.ra, topic.dec, topic.gl, topic.gb, topic.el, topic.eb)
@property def fov_rad(self): """float: Field-of-view in radians. """ return math.radians(self.fov) @property def ra_rad(self): """float: Right ascension in radians. """ return math.radians(self.ra) @property def dec_rad(self): """float: Declination in radians. """ return math.radians(self.dec) @property def gl_rad(self): """float: Galactic latitude in radians. """ return math.radians(self.gl) @property def gb_rad(self): """float: Galactic longitude in radians. """ return math.radians(self.gb) @property def el_rad(self): """float: Ecliptic latitude in radians. """ return math.radians(self.el) @property def eb_rad(self): """float: Ecliptic longitude in radians. """ return math.radians(self.eb)