Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
def _isDayTime(dt: DateTime) -> bool:
    """
    Returns true if time is not good for observing.
    """
    return 6 <= dt.toPython(DateTime.TAI).hour < 20
Exemplo n.º 4
0
    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