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)
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
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)