def testConvert(self): year = 2012 month = 7 day = 19 hour = 18 minute = 29 second = 33 ts = DateTime(year, month, day, hour, minute, second, DateTime.UTC) dt = ts.toPython(DateTime.UTC) self.assertEqual(dt.year, year) self.assertEqual(dt.month, month) self.assertEqual(dt.day, day) self.assertEqual(dt.hour, hour) self.assertEqual(dt.minute, minute) self.assertEqual(dt.second, second)
def _isDayTime(dt: DateTime) -> bool: """ Returns true if time is not good for observing. """ return 6 <= dt.toPython(DateTime.TAI).hour < 20
def _forcedPhotometry( self, objects: pandas.DataFrame, latest_objects: pandas.DataFrame, dt: DateTime, visit_id: int) -> Tuple[pandas.DataFrame, pandas.DataFrame]: """Do forced photometry on latest_objects which are not in objects. Extends objects catalog with new DiaObjects. Parameters ---------- objects : `pandas.DataFrame` Catalog containing DiaObject records latest_objects : `pandas.DataFrame` Catalog containing DiaObject records dt : `DateTime` Visit time. visit_id : `int` Visit ID. """ midPointTai = dt.get(system=DateTime.MJD) if objects.empty: return pandas.DataFrame( columns=["diaObjectId", "ccdVisitId", "midPointTai", "flags" ]), objects # Ids of the detected objects ids = set(objects['diaObjectId']) # do forced photometry for all detected DiaObjects df1 = pandas.DataFrame({ "diaObjectId": objects["diaObjectId"], "ccdVisitId": visit_id, "midPointTai": midPointTai, "flags": 0, }) # do forced photometry for non-detected DiaObjects (newer than cutoff) o1 = cast(pandas.DataFrame, latest_objects[~latest_objects["diaObjectId"].isin(ids)]) # only do it for 30 days after last detection cutoff = dt.toPython() - timedelta(days=self.config.forced_cutoff_days) o1 = cast(pandas.DataFrame, o1[o1["lastNonForcedSource"] > cutoff]) if o1.empty: catalog = df1 else: df2 = pandas.DataFrame({ "diaObjectId": o1["diaObjectId"], "ccdVisitId": visit_id, "midPointTai": midPointTai, "flags": 0, }) # extend forced sources catalog = pandas.concat([df1, df2]) # also extend objects o2 = pandas.DataFrame({ "diaObjectId": o1["diaObjectId"], "ra": o1["ra"], "decl": o1["decl"], }) objects = objects.append(o2) return catalog, objects