Ejemplo n.º 1
0
from Orbit import Orbit
from Catalog import Catalog, DateTime, TimeDelta, Point
from DECamField import DECamField
from DECamExposure import DECamExposure
from ccdBounds import *
from MPCRecord import MPCRecord
import easyaccess as ea

sidereal_year = 365.256363
sidereal_rate = ephem.degrees(2*np.pi/sidereal_year)


fields = Catalog('fields.csv', name=str, centerra=float, centerdec=float, opposition=float, visitspath=str, orderedby='name')
fields.add_property('center', lambda pt: Equatorial(hours(pt.centerra), degrees(pt.centerdec)))
#fields.add_property('visits', lambda pt: Catalog(pt.visitspath, nite=int, date=float, dlon=float, dlat=float, vlon=float, vlat=float))
fields.refactor('opposition', DateTime)
#for field in fields: field.visits.refactor('date', DateTime)

def _exp_contains(self, ra1, dec1): return DECamField(self.ra, self.dec).contains(ra1, dec1)
def _exp_ellipse(self): return DECamField(self.ra, self.dec).ellipse()

exposures = Catalog('exposures.csv', expnum=int, date=float, ra=float, dec=float, exptime=float, nite=int, band=str, tag=str, object=str,
    fwhm_asec=float, t_eff=float, ellipticity=float, skybrightness=float, accepted=str, analyst=str, analyst_comment=str, lastchanged_time=str)
exposures.refactor('date', lambda date: ephem.date(date))
exposures.refactor('ra', lambda ra: hours(ra))
exposures.refactor('dec', lambda dec: degrees(dec))
exposures.add_function('contains', _exp_contains)
exposures.add_function('ellipse', _exp_contains)
exposures_by_nite = exposures.groupby(lambda pt: pt.nite)