Ejemplo n.º 1
0
 def test_creation_from_topic(self):
     topic = collections.namedtuple(
         "topic",
         [
             "targetId",
             "fieldId",
             "filter",
             "ra",
             "decl",
             "skyAngle",
             "numExposures",
             "exposureTimes",
         ],
     )
     topic.targetId = 1
     topic.fieldId = -1
     topic.filter = "z"
     topic.ra = 274.279376
     topic.decl = -14.441534
     topic.skyAngle = 45.0
     topic.numExposures = 3
     topic.exposureTimes = [5.0, 10.0, 5.0]
     target = Target.from_topic(topic)
     self.assertEqual(target.targetid, topic.targetId)
     self.assertEqual(target.fieldid, topic.fieldId)
     self.assertEqual(target.filter, topic.filter)
     self.assertEqual(target.ra, topic.ra)
     self.assertAlmostEqual(target.dec, topic.decl, delta=1e-7)
     self.assertEqual(target.num_exp, topic.numExposures)
     self.assertListEqual(target.exp_times, topic.exposureTimes)
Ejemplo n.º 2
0
    def slew(self, target):
        """Perform the slewing operation for the observatory to the given target.

        Parameters
        ----------
        target : SALPY_scheduler.targetC
            The Scheduler topic instance holding the target information.

        Returns
        -------
        float
            The time to slew the telescope from its current position to the target position.
        """
        self.slew_count += 1
        self.log.log(LoggingLevel.TRACE.value,
                     "Slew count: {}".format(self.slew_count))
        initial_slew_state = copy.deepcopy(self.model.current_state)
        self.log.log(LoggingLevel.TRACE.value,
                     "Initial slew state: {}".format(initial_slew_state))
        self.slew_initial_state = self.get_slew_state(initial_slew_state)

        sched_target = Target.from_topic(target)
        self.model.slew(sched_target)

        final_slew_state = copy.deepcopy(self.model.current_state)
        self.log.log(LoggingLevel.TRACE.value,
                     "Final slew state: {}".format(final_slew_state))
        self.slew_final_state = self.get_slew_state(final_slew_state)

        slew_time = (final_slew_state.time - initial_slew_state.time,
                     "seconds")

        slew_distance = palpy.dsep(final_slew_state.ra_rad,
                                   final_slew_state.dec_rad,
                                   initial_slew_state.ra_rad,
                                   initial_slew_state.dec_rad)

        self.slew_history = SlewHistory(self.slew_count,
                                        initial_slew_state.time,
                                        final_slew_state.time, slew_time[0],
                                        math.degrees(slew_distance),
                                        self.observations_made)

        self.get_slew_activities()

        self.slew_maxspeeds = SlewMaxSpeeds(self.slew_count,
                                            final_slew_state.domalt_peakspeed,
                                            final_slew_state.domaz_peakspeed,
                                            final_slew_state.telalt_peakspeed,
                                            final_slew_state.telaz_peakspeed,
                                            final_slew_state.telrot_peakspeed,
                                            self.slew_count)

        return slew_time
Ejemplo n.º 3
0
 def test_creation_from_topic(self):
     topic = collections.namedtuple('topic', ['targetId', 'fieldId',
                                              'filter', 'ra', 'decl',
                                              'skyAngle',
                                              'numExposures',
                                              'exposureTimes'])
     topic.targetId = 1
     topic.fieldId = -1
     topic.filter = 'z'
     topic.ra = 274.279376
     topic.decl = -14.441534
     topic.skyAngle = 45.0
     topic.numExposures = 3
     topic.exposureTimes = [5.0, 10.0, 5.0]
     target = Target.from_topic(topic)
     self.assertEqual(target.targetid, topic.targetId)
     self.assertEqual(target.fieldid, topic.fieldId)
     self.assertEqual(target.filter, topic.filter)
     self.assertEqual(target.ra, topic.ra)
     self.assertAlmostEqual(target.dec, topic.decl, delta=1e-7)
     self.assertEqual(target.num_exp, topic.numExposures)
     self.assertListEqual(target.exp_times, topic.exposureTimes)