def setDefaults(self): """Default specification for a general proposal filter. """ BandFilter.setDefaults(self) self.num_visits = 10 self.num_grouped_visits = 1 self.max_grouped_visits = 2
class BandFilterTest(unittest.TestCase): def setUp(self): self.band_filter = BandFilter() def test_basic_information_after_creation(self): self.assertEqual(self.band_filter.name, 'u') self.assertEqual(self.band_filter.bright_limit, 21.0) self.assertEqual(self.band_filter.dark_limit, 30.0) self.assertEqual(self.band_filter.max_seeing, 2.0) self.assertListEqual(list(self.band_filter.exposures), [15.0, 15.0]) def test_reversed_bright_dark(self): self.band_filter.bright_limit = 29.0 self.band_filter.dark_limit = 24.0 self.band_filter.validate() self.assertEqual(self.band_filter.bright_limit, 24.0) self.assertEqual(self.band_filter.dark_limit, 29.0)
def validate(self): """Validate configuration parameters. """ BandFilter.validate(self)
def setDefaults(self): """Setup all the proposal information. """ self.name = "BasicProposal6" # ------------------------- # Sky Region specifications # ------------------------- self.sky_user_regions = [597, 1486, 2206] # ----------------------------- # Sky Exclusion specifications # ----------------------------- self.sky_exclusion.dec_window = 90.0 # --------------------------------- # Sky Nightly Bounds specifications # --------------------------------- self.sky_nightly_bounds.twilight_boundary = -12.0 self.sky_nightly_bounds.delta_lst = 60.0 # ------------------------------ # Sky Constraints specifications # ------------------------------ self.sky_constraints.max_airmass = 2.5 #---------------------------- # Sub-Sequence specifications #---------------------------- # No stand alone sub-sequences #---------------------------------------------- # Master and Nested Sub-Sequence specifications #---------------------------------------------- msseq0 = MasterSubSequence() msseq0.name = "master0" msseq0.num_events = 20 msseq0.num_max_missed = 5 msseq0.time_interval = 3 * 24 * 60 * 60 msseq0.time_window_start = 0.0 msseq0.time_window_max = 1.0 msseq0.time_window_end = 2.0 msseq0.time_weight = 1.0 sseq0 = SubSequence() sseq0.name = "Only_GR" sseq0.filters = ['g', 'r'] sseq0.visits_per_filter = [2, 2] sseq0.num_events = 5 sseq0.num_max_missed = 0 sseq0.time_interval = 2 * 60 * 60 sseq0.time_window_start = 0.0 sseq0.time_window_max = 1.0 sseq0.time_window_end = 2.0 sseq0.time_weight = 1.0 msseq0.sub_sequences = {0: sseq0} msseq1 = MasterSubSequence() msseq1.name = "master1" msseq1.num_events = 25 msseq1.num_max_missed = 5 msseq1.time_interval = 5 * 24 * 60 * 60 msseq1.time_window_start = 0.0 msseq1.time_window_max = 1.0 msseq1.time_window_end = 2.0 msseq1.time_weight = 1.0 sseq1 = SubSequence() sseq1.name = "Only_IZ" sseq1.filters = ['i', 'z'] sseq1.visits_per_filter = [1, 1] sseq1.num_events = 10 sseq1.num_max_missed = 1 sseq1.time_interval = 6 * 60 * 60 sseq1.time_window_start = 0.0 sseq1.time_window_max = 1.0 sseq1.time_window_end = 2.0 sseq1.time_weight = 1.0 msseq1.sub_sequences = {0: sseq1} self.master_sub_sequences = {0: msseq0, 1: msseq1} # ---------------------- # Scheduling information # ---------------------- self.scheduling.max_num_targets = 100 self.scheduling.accept_serendipity = False self.scheduling.accept_consecutive_visits = True self.scheduling.restart_complete_sequences = False # -------------------------- # Band Filter specifications # -------------------------- u_filter = BandFilter() u_filter.name = 'u' u_filter.bright_limit = 21.0 u_filter.dark_limit = 30.0 u_filter.max_seeing = 1.5 u_filter.exposures = [15.0, 15.0] g_filter = BandFilter() g_filter.name = 'g' g_filter.bright_limit = 21.0 g_filter.dark_limit = 30.0 g_filter.max_seeing = 1.5 g_filter.exposures = [15.0, 15.0] r_filter = BandFilter() r_filter.name = 'r' r_filter.bright_limit = 20.25 r_filter.dark_limit = 30.0 r_filter.max_seeing = 1.5 r_filter.exposures = [15.0, 15.0] i_filter = BandFilter() i_filter.name = 'i' i_filter.bright_limit = 19.5 i_filter.dark_limit = 30.0 i_filter.max_seeing = 1.5 i_filter.exposures = [15.0, 15.0] self.filters = { u_filter.name: u_filter, g_filter.name: g_filter, r_filter.name: r_filter, i_filter.name: i_filter }
def setUp(self): self.band_filter = BandFilter()
def setDefaults(self): """Setup all the proposal information. """ Sequence.setDefaults(self) self.name = "DeepDrillingCosmology1" # ------------------------- # Sky Region specifications # ------------------------- self.sky_user_regions = [290, 744, 1427, 2412, 2786] # ----------------------------- # Sky Exclusion specifications # ----------------------------- self.sky_exclusion.dec_window = 90.0 # --------------------------------- # Sky Nightly Bounds specifications # --------------------------------- self.sky_nightly_bounds.twilight_boundary = -12.0 self.sky_nightly_bounds.delta_lst = 60.0 # ------------------------------ # Sky Constraints specifications # ------------------------------ self.sky_constraints.max_airmass = 1.5 self.sky_constraints.max_cloud = 0.7 #--------------------------- # Sub-sequence specification #--------------------------- sseq0 = SubSequence() sseq0.name = "main" sseq0.filters = ['r', 'g', 'i', 'z', 'y'] sseq0.visits_per_filter = [20, 10, 20, 26, 20] sseq0.num_events = 27 sseq0.num_max_missed = 0 sseq0.time_interval = 3 * 24 * 60 * 60 sseq0.time_window_start = 0.8 sseq0.time_window_max = 1.0 sseq0.time_window_end = 1.4 sseq0.time_weight = 1.0 sseq1 = SubSequence() sseq1.name = "u-band" sseq1.filters = ['u'] sseq1.visits_per_filter = [20] sseq1.num_events = 7 sseq1.num_max_missed = 0 sseq1.time_interval = 1 * 24 * 60 * 60 sseq1.time_window_start = 0.8 sseq1.time_window_max = 1.0 sseq1.time_window_end = 1.4 sseq1.time_weight = 1.0 self.sub_sequences = {0: sseq0, 1: sseq1} # ---------------------- # Scheduling information # ---------------------- self.scheduling.max_num_targets = 100 self.scheduling.accept_serendipity = False self.scheduling.accept_consecutive_visits = True self.scheduling.airmass_bonus = 0.5 # -------------------------- # Band Filter specifications # -------------------------- u_filter = BandFilter() u_filter.name = 'u' u_filter.bright_limit = 21.3 u_filter.dark_limit = 30.0 u_filter.max_seeing = 1.5 u_filter.exposures = [15.0, 15.0] g_filter = BandFilter() g_filter.name = 'g' g_filter.bright_limit = 19.5 g_filter.dark_limit = 30.0 g_filter.max_seeing = 1.5 g_filter.exposures = [15.0, 15.0] r_filter = BandFilter() r_filter.name = 'r' r_filter.bright_limit = 19.5 r_filter.dark_limit = 30.0 r_filter.max_seeing = 1.5 r_filter.exposures = [15.0, 15.0] i_filter = BandFilter() i_filter.name = 'i' i_filter.bright_limit = 19.5 i_filter.dark_limit = 30.0 i_filter.max_seeing = 1.5 i_filter.exposures = [15.0, 15.0] z_filter = BandFilter() z_filter.name = 'z' z_filter.bright_limit = 17.5 z_filter.dark_limit = 30.0 z_filter.max_seeing = 1.5 z_filter.exposures = [15.0, 15.0] y_filter = BandFilter() y_filter.name = 'y' y_filter.bright_limit = 17.5 y_filter.dark_limit = 30.0 y_filter.max_seeing = 1.5 y_filter.exposures = [15.0, 15.0] self.filters = { u_filter.name: u_filter, g_filter.name: g_filter, r_filter.name: r_filter, i_filter.name: i_filter, z_filter.name: z_filter, y_filter.name: y_filter }