class SelectionTest(unittest.TestCase): def setUp(self): self.selection = Selection() def test_basic_information_after_creation(self): self.assertEqual(self.selection.limit_type, "RA") self.assertEqual(self.selection.minimum_limit, 0.0) self.assertEqual(self.selection.maximum_limit, 360.0) self.assertTrue(math.isnan(self.selection.bounds_limit)) def test_bad_limit_type(self): self.selection.limit_type = "None" with self.assertRaises(ValueError): self.selection.validate()
def setDefaults(self): """Setup all the proposal information. """ self.name = "SouthCelestialPole" # ------------------------- # Sky Region specifications # ------------------------- # Dec Band dec_limit = Selection() dec_limit.limit_type = SELECTION_LIMIT_TYPES[1] dec_limit.minimum_limit = -90.0 dec_limit.maximum_limit = -62.5 self.sky_region.selections = {0: dec_limit} # ----------------------------- # Sky Exclusion specifications # ----------------------------- self.sky_exclusion.dec_window = 90.0 # Galactic Plane gal_plane = Selection() gal_plane.limit_type = SELECTION_LIMIT_TYPES[6] gal_plane.minimum_limit = 0.0 gal_plane.maximum_limit = 10.0 gal_plane.bounds_limit = 90.0 self.sky_exclusion.selections = {0: gal_plane} # --------------------------------- # 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 self.sky_constraints.max_cloud = 0.7 # ---------------------- # Scheduling information # ---------------------- self.scheduling.max_num_targets = 100 self.scheduling.accept_serendipity = False self.scheduling.accept_consecutive_visits = False self.scheduling.airmass_bonus = 0.5 # -------------------------- # Band Filter specifications # -------------------------- u_filter = BandFilter() u_filter.name = 'u' u_filter.num_visits = 30 u_filter.bright_limit = 21.0 u_filter.dark_limit = 30.0 u_filter.max_seeing = 3.0 u_filter.exposures = [15.0, 15.0] g_filter = BandFilter() g_filter.name = 'g' g_filter.num_visits = 30 g_filter.bright_limit = 21.0 g_filter.dark_limit = 30.0 g_filter.max_seeing = 3.0 g_filter.exposures = [15.0, 15.0] r_filter = BandFilter() r_filter.name = 'r' r_filter.num_visits = 30 r_filter.bright_limit = 20.0 r_filter.dark_limit = 30.0 r_filter.max_seeing = 2.0 r_filter.exposures = [15.0, 15.0] i_filter = BandFilter() i_filter.name = 'i' i_filter.num_visits = 30 i_filter.bright_limit = 19.5 i_filter.dark_limit = 30.0 i_filter.max_seeing = 2.0 i_filter.exposures = [15.0, 15.0] z_filter = BandFilter() z_filter.name = 'z' z_filter.num_visits = 30 z_filter.bright_limit = 17.0 z_filter.dark_limit = 21.4 z_filter.max_seeing = 2.0 z_filter.exposures = [15.0, 15.0] y_filter = BandFilter() y_filter.name = 'y' y_filter.num_visits = 30 y_filter.bright_limit = 16.0 y_filter.dark_limit = 21.4 y_filter.max_seeing = 2.0 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}
def setDefaults(self): """Setup all the proposal information. """ self.name = "BasicProposal4" # ------------------------- # Sky Region specifications # ------------------------- # Dec Band 1 dec_limit1 = Selection() dec_limit1.limit_type = SELECTION_LIMIT_TYPES[1] dec_limit1.minimum_limit = -60 dec_limit1.maximum_limit = -30 # Dec Band 2 dec_limit2 = Selection() dec_limit2.limit_type = SELECTION_LIMIT_TYPES[1] dec_limit2.minimum_limit = -30 dec_limit2.maximum_limit = 0 self.sky_region.selections = {0: dec_limit1, 1: dec_limit2} # Set time ordering information # Dec Band 1 time_range1 = TimeRange() time_range1.start = 1 time_range1.end = 1825 # Dec Band 2 time_range2 = TimeRange() time_range2.start = 1826 time_range2.end = 3650 self.sky_region.time_ranges = {0: time_range1, 1: time_range2} # Set selection mapping information # Dec Band 1 selection_list1 = SelectionList() selection_list1.indexes = [0] # Dec Band 2 selection_list2 = SelectionList() selection_list2.indexes = [1] self.sky_region.selection_mapping = { 0: selection_list1, 1: selection_list2 } # ----------------------------- # 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 # ---------------------- # Scheduling information # ---------------------- self.scheduling.max_num_targets = 100 self.scheduling.accept_serendipity = False self.scheduling.accept_consecutive_visits = False self.scheduling.restrict_grouped_visits = False self.scheduling.time_interval = 30 * 60 self.scheduling.time_window_start = -0.5 self.scheduling.time_window_max = 0.5 self.scheduling.time_window_end = 1.0 self.scheduling.time_weight = 1.0 # -------------------------- # Band Filter specifications # -------------------------- u_filter = GeneralBandFilter() u_filter.name = 'u' u_filter.num_visits = 75 u_filter.num_grouped_visits = 1 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 = GeneralBandFilter() g_filter.name = 'g' g_filter.num_visits = 105 g_filter.num_grouped_visits = 2 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 = GeneralBandFilter() r_filter.name = 'r' r_filter.num_visits = 240 r_filter.num_grouped_visits = 2 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 = GeneralBandFilter() i_filter.name = 'i' i_filter.num_visits = 240 i_filter.num_grouped_visits = 2 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 setDefaults(self): """Setup all the proposal information. """ self.name = "BasicProposal1" # ------------------------- # Sky Region specifications # ------------------------- # Dec Band dec_limit = Selection() dec_limit.limit_type = SELECTION_LIMIT_TYPES[1] dec_limit.minimum_limit = -50 dec_limit.maximum_limit = -20 # RA Band ra_limit = Selection() ra_limit.limit_type = SELECTION_LIMIT_TYPES[0] ra_limit.minimum_limit = 45.0 ra_limit.maximum_limit = 90.0 self.sky_region.selections = {0: dec_limit, 1: ra_limit} # Combine the Dec and RA bands self.sky_region.combiners = ["and"] # ----------------------------- # Sky Exclusion specifications # ----------------------------- self.sky_exclusion.dec_window = 90.0 # Galactic Plane gal_plane = Selection() gal_plane.limit_type = SELECTION_LIMIT_TYPES[6] gal_plane.minimum_limit = 0.0 gal_plane.maximum_limit = 10.0 gal_plane.bounds_limit = 90.0 self.sky_exclusion.selections = {0: gal_plane} # --------------------------------- # 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 # ---------------------- # Scheduling information # ---------------------- self.scheduling.max_num_targets = 100 self.scheduling.accept_serendipity = False self.scheduling.accept_consecutive_visits = False # -------------------------- # Band Filter specifications # -------------------------- u_filter = GeneralBandFilter() u_filter.name = 'u' u_filter.num_visits = 75 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 = GeneralBandFilter() g_filter.name = 'g' g_filter.num_visits = 105 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 = GeneralBandFilter() r_filter.name = 'r' r_filter.num_visits = 240 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 = GeneralBandFilter() i_filter.name = 'i' i_filter.num_visits = 240 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 = GeneralBandFilter() z_filter.name = 'z' z_filter.num_visits = 210 z_filter.bright_limit = 17.0 z_filter.dark_limit = 21.0 z_filter.max_seeing = 1.5 z_filter.exposures = [15.0, 15.0] y_filter = GeneralBandFilter() y_filter.name = 'y' y_filter.num_visits = 210 y_filter.bright_limit = 16.5 y_filter.dark_limit = 21.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 }
def setUp(self): self.selection = Selection()
def setDefaults(self): """Setup all the proposal information. """ self.name = "NorthEclipticSpur" # ------------------------- # Sky Region specifications # ------------------------- # Ecliptic Longitude Band eb_limit = Selection() eb_limit.limit_type = SELECTION_LIMIT_TYPES[5] eb_limit.minimum_limit = -30.0 eb_limit.maximum_limit = 10.0 # Dec Band dec_limit = Selection() dec_limit.limit_type = SELECTION_LIMIT_TYPES[1] dec_limit.minimum_limit = 2.8 dec_limit.maximum_limit = 90.0 self.sky_region.selections = {0: eb_limit, 1: dec_limit} self.sky_region.combiners = ('and', ) # ----------------------------- # 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 self.sky_constraints.max_cloud = 0.7 # ---------------------- # Scheduling information # ---------------------- self.scheduling.max_num_targets = 100 self.scheduling.accept_serendipity = False self.scheduling.accept_consecutive_visits = False self.scheduling.airmass_bonus = 0.5 self.scheduling.time_interval = 30 * 60 self.scheduling.time_window_start = 0.5 self.scheduling.time_window_max = 1.0 self.scheduling.time_window_end = 2.0 self.scheduling.time_weight = 1.0 # -------------------------- # Band Filter specifications # -------------------------- g_filter = GeneralBandFilter() g_filter.name = 'g' g_filter.num_visits = 40 g_filter.num_grouped_visits = 2 g_filter.bright_limit = 21.0 g_filter.dark_limit = 30.0 g_filter.max_seeing = 2.0 g_filter.exposures = [15.0, 15.0] r_filter = GeneralBandFilter() r_filter.name = 'r' r_filter.num_visits = 92 r_filter.num_grouped_visits = 2 r_filter.bright_limit = 20.25 r_filter.dark_limit = 30.0 r_filter.max_seeing = 2.0 r_filter.exposures = [15.0, 15.0] i_filter = GeneralBandFilter() i_filter.name = 'i' i_filter.num_visits = 92 i_filter.num_grouped_visits = 2 i_filter.bright_limit = 19.5 i_filter.dark_limit = 30.0 i_filter.max_seeing = 2.0 i_filter.exposures = [15.0, 15.0] z_filter = GeneralBandFilter() z_filter.name = 'z' z_filter.num_visits = 80 z_filter.num_grouped_visits = 2 z_filter.bright_limit = 17.0 z_filter.dark_limit = 21.0 z_filter.max_seeing = 2.0 z_filter.exposures = [15.0, 15.0] self.filters = { g_filter.name: g_filter, r_filter.name: r_filter, i_filter.name: i_filter, z_filter.name: z_filter }
def setDefaults(self): """Setup all the proposal information. """ self.name = "BasicProposal3" # ------------------------- # Sky Region specifications # ------------------------- # Dec Band dec_limit = Selection() dec_limit.limit_type = SELECTION_LIMIT_TYPES[1] dec_limit.minimum_limit = -50 dec_limit.maximum_limit = -20 # RA Band ra_limit = Selection() ra_limit.limit_type = SELECTION_LIMIT_TYPES[0] ra_limit.minimum_limit = 45.0 ra_limit.maximum_limit = 90.0 self.sky_region.selections = {0: dec_limit, 1: ra_limit} # Combine the Dec and RA bands self.sky_region.combiners = ["and"] # ----------------------------- # 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 # ---------------------- # Scheduling information # ---------------------- self.scheduling.max_num_targets = 100 self.scheduling.accept_serendipity = False self.scheduling.accept_consecutive_visits = False self.scheduling.hour_angle_bonus = 0.5 self.scheduling.hour_angle_max = 9.0 self.scheduling.restrict_grouped_visits = False self.scheduling.time_interval = 30 * 60 self.scheduling.time_window_start = -0.5 self.scheduling.time_window_max = 0.5 self.scheduling.time_window_end = 1.0 self.scheduling.time_weight = 1.0 # -------------------------- # Band Filter specifications # -------------------------- u_filter = GeneralBandFilter() u_filter.name = 'u' u_filter.num_visits = 75 u_filter.num_grouped_visits = 1 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 = GeneralBandFilter() g_filter.name = 'g' g_filter.num_visits = 105 g_filter.num_grouped_visits = 2 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 = GeneralBandFilter() r_filter.name = 'r' r_filter.num_visits = 240 r_filter.num_grouped_visits = 2 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 = GeneralBandFilter() i_filter.name = 'i' i_filter.num_visits = 240 i_filter.num_grouped_visits = 2 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 setDefaults(self): """Setup all the proposal information. """ self.name = "GalacticPlane" # ------------------------- # Sky Region specifications # ------------------------- # Galactic Plane gal_plane = Selection() gal_plane.limit_type = SELECTION_LIMIT_TYPES[6] gal_plane.minimum_limit = 0.0 gal_plane.maximum_limit = 10.0 gal_plane.bounds_limit = 90.0 self.sky_region.selections = {0: gal_plane} # ----------------------------- # 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 self.sky_constraints.max_cloud = 0.7 # ---------------------- # Scheduling information # ---------------------- self.scheduling.max_num_targets = 100 self.scheduling.accept_serendipity = False self.scheduling.accept_consecutive_visits = False self.scheduling.airmass_bonus = 0.5 # -------------------------- # Band Filter specifications # -------------------------- u_filter = GeneralBandFilter() u_filter.name = 'u' u_filter.num_visits = 30 u_filter.bright_limit = 20.8 u_filter.dark_limit = 30.0 u_filter.max_seeing = 3.0 u_filter.exposures = [15.0, 15.0] g_filter = GeneralBandFilter() g_filter.name = 'g' g_filter.num_visits = 30 g_filter.bright_limit = 20.8 g_filter.dark_limit = 30.0 g_filter.max_seeing = 3.0 g_filter.exposures = [15.0, 15.0] r_filter = GeneralBandFilter() r_filter.name = 'r' r_filter.num_visits = 30 r_filter.bright_limit = 20.0 r_filter.dark_limit = 30.0 r_filter.max_seeing = 2.0 r_filter.exposures = [15.0, 15.0] i_filter = GeneralBandFilter() i_filter.name = 'i' i_filter.num_visits = 30 i_filter.bright_limit = 19.5 i_filter.dark_limit = 30.0 i_filter.max_seeing = 2.0 i_filter.exposures = [15.0, 15.0] z_filter = GeneralBandFilter() z_filter.name = 'z' z_filter.num_visits = 30 z_filter.bright_limit = 17.0 z_filter.dark_limit = 21.4 z_filter.max_seeing = 2.0 z_filter.exposures = [15.0, 15.0] y_filter = GeneralBandFilter() y_filter.name = 'y' y_filter.num_visits = 30 y_filter.bright_limit = 16.0 y_filter.dark_limit = 21.4 y_filter.max_seeing = 2.0 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 }
def test_selections_assignment(self): self.sky_exclusion.selections = {0: Selection()} self.assertIsNotNone(self.sky_exclusion.selections) self.assertEqual(len(self.sky_exclusion.selections), 1)
def setDefaults(self): """Setup all the proposal information. """ self.name = "BasicProposal1" # ------------------------- # Sky Region specifications # ------------------------- # Dec Band dec_limit = Selection() dec_limit.limit_type = SELECTION_LIMIT_TYPES[1] dec_limit.minimum_limit = -50 dec_limit.maximum_limit = -20 # RA Band ra_limit = Selection() ra_limit.limit_type = SELECTION_LIMIT_TYPES[0] ra_limit.minimum_limit = 45.0 ra_limit.maximum_limit = 90.0 self.sky_region.selections = {0: dec_limit, 1: ra_limit} # Combine the Dec and RA bands self.sky_region.combiners = ["and"] # ----------------------------- # Sky Exclusion specifications # ----------------------------- self.sky_exclusion.dec_window = 90.0 # Galactic Plane gal_plane = Selection() gal_plane.limit_type = SELECTION_LIMIT_TYPES[6] gal_plane.minimum_limit = 0.0 gal_plane.maximum_limit = 10.0 gal_plane.bounds_limit = 90.0 self.sky_exclusion.selections = {0: gal_plane} # --------------------------------- # 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 # ---------------------- # Scheduling information # ---------------------- self.scheduling.max_num_targets = 100 self.scheduling.accept_serendipity = False self.scheduling.accept_consecutive_visits = False # -------------------------- # Band Filter specifications # -------------------------- u_filter = BandFilter() u_filter.name = "u" u_filter.num_visits = 75 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.num_visits = 105 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.num_visits = 240 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.num_visits = 240 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.num_visits = 210 z_filter.bright_limit = 17.0 z_filter.dark_limit = 21.0 z_filter.max_seeing = 1.5 z_filter.exposures = [15.0, 15.0] y_filter = BandFilter() y_filter.name = "y" y_filter.num_visits = 210 y_filter.bright_limit = 16.5 y_filter.dark_limit = 21.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, }
def setDefaults(self): """Setup all the proposal information. """ self.name = "BasicProposal7" # ------------------------- # Sky Region specifications # ------------------------- sel0 = Selection() sel0.limit_type = SELECTION_LIMIT_TYPES[1] sel0.minimum_limit = -60.0 sel0.maximum_limit = -30.0 sel1 = Selection() sel1.limit_type = SELECTION_LIMIT_TYPES[0] sel1.minimum_limit = 45.0 sel1.maximum_limit = 90.0 sel2 = Selection() sel2.limit_type = SELECTION_LIMIT_TYPES[1] sel2.minimum_limit = -60.0 sel2.maximum_limit = -30.0 sel3 = Selection() sel3.limit_type = SELECTION_LIMIT_TYPES[0] sel3.minimum_limit = 90.0 sel3.maximum_limit = 135.0 self.sky_region.selections = {0: sel0, 1: sel1, 2: sel2, 3: sel3} time_range0 = TimeRange() time_range0.start = 1 time_range0.end = 1825 time_range1 = TimeRange() time_range1.start = 1 time_range1.end = 1825 time_range2 = TimeRange() time_range2.start = 1826 time_range2.end = 3650 time_range3 = TimeRange() time_range3.start = 1826 time_range3.end = 3650 self.sky_region.time_ranges = { 0: time_range0, 1: time_range1, 2: time_range2, 3: time_range3 } sel_map0 = SelectionList() sel_map0.indexes = [0, 1] sel_map1 = SelectionList() sel_map1.indexes = [2, 3] self.sky_region.selection_mapping = {0: sel_map0, 1: sel_map1} self.sky_region.combiners = ['and', 'and'] # ----------------------------- # 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 # ---------------------- # Scheduling information # ---------------------- self.scheduling.max_num_targets = 100 self.scheduling.accept_serendipity = False self.scheduling.accept_consecutive_visits = False self.scheduling.restrict_grouped_visits = False self.scheduling.time_interval = 30 * 60 self.scheduling.time_window_start = -0.5 self.scheduling.time_window_max = 0.5 self.scheduling.time_window_end = 1.0 self.scheduling.time_weight = 1.0 # -------------------------- # Band Filter specifications # -------------------------- u_filter = GeneralBandFilter() u_filter.name = 'u' u_filter.num_visits = 75 u_filter.num_grouped_visits = 1 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 = GeneralBandFilter() g_filter.name = 'g' g_filter.num_visits = 105 g_filter.num_grouped_visits = 2 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 = GeneralBandFilter() r_filter.name = 'r' r_filter.num_visits = 240 r_filter.num_grouped_visits = 2 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 = GeneralBandFilter() i_filter.name = 'i' i_filter.num_visits = 240 i_filter.num_grouped_visits = 2 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 setDefaults(self): """Setup all the proposal information. """ self.name = "BasicProposal3" # ------------------------- # Sky Region specifications # ------------------------- # Dec Band dec_limit = Selection() dec_limit.limit_type = SELECTION_LIMIT_TYPES[1] dec_limit.minimum_limit = -50 dec_limit.maximum_limit = -20 # RA Band ra_limit = Selection() ra_limit.limit_type = SELECTION_LIMIT_TYPES[0] ra_limit.minimum_limit = 45.0 ra_limit.maximum_limit = 90.0 self.sky_region.selections = {0: dec_limit, 1: ra_limit} # Combine the Dec and RA bands self.sky_region.combiners = ["and"] # ----------------------------- # 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 # ---------------------- # Scheduling information # ---------------------- self.scheduling.max_num_targets = 100 self.scheduling.accept_serendipity = False self.scheduling.accept_consecutive_visits = False self.scheduling.restrict_grouped_visits = False self.scheduling.time_interval = 30 * 60 self.scheduling.time_window_start = -0.5 self.scheduling.time_window_max = 0.5 self.scheduling.time_window_end = 1.0 # -------------------------- # Band Filter specifications # -------------------------- u_filter = BandFilter() u_filter.name = 'u' u_filter.num_visits = 75 u_filter.num_grouped_visits = 1 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.num_visits = 105 g_filter.num_grouped_visits = 2 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.num_visits = 240 r_filter.num_grouped_visits = 2 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.num_visits = 240 i_filter.num_grouped_visits = 2 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 setDefaults(self): """Setup all the proposal information. """ self.name = "WideFastDeep" # ------------------------- # Sky Region specifications # ------------------------- # Dec Band dec_limit = Selection() dec_limit.limit_type = SELECTION_LIMIT_TYPES[1] dec_limit.minimum_limit = -62.5 dec_limit.maximum_limit = 2.8 self.sky_region.selections = {0: dec_limit} # ----------------------------- # Sky Exclusion specifications # ----------------------------- self.sky_exclusion.dec_window = 90.0 # Galactic Plane gal_plane = Selection() gal_plane.limit_type = SELECTION_LIMIT_TYPES[6] gal_plane.minimum_limit = 0.0 gal_plane.maximum_limit = 10.0 gal_plane.bounds_limit = 90.0 self.sky_exclusion.selections = {0: gal_plane} # --------------------------------- # 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 # ---------------------- # Scheduling information # ---------------------- self.scheduling.max_num_targets = 500 self.scheduling.accept_serendipity = False self.scheduling.accept_consecutive_visits = False self.scheduling.airmass_bonus = 0.5 self.scheduling.time_interval = 30 * 60 self.scheduling.time_window_start = 0.5 self.scheduling.time_window_max = 1.0 self.scheduling.time_window_end = 2.0 self.scheduling.time_weight = 1.0 # -------------------------- # Band Filter specifications # -------------------------- u_filter = GeneralBandFilter() u_filter.name = 'u' u_filter.num_visits = 75 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 = GeneralBandFilter() g_filter.name = 'g' g_filter.num_visits = 105 g_filter.num_grouped_visits = 2 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 = GeneralBandFilter() r_filter.name = 'r' r_filter.num_visits = 240 r_filter.num_grouped_visits = 2 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 = GeneralBandFilter() i_filter.name = 'i' i_filter.num_visits = 240 i_filter.num_grouped_visits = 2 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 = GeneralBandFilter() z_filter.name = 'z' z_filter.num_visits = 210 z_filter.num_grouped_visits = 2 z_filter.bright_limit = 17.0 z_filter.dark_limit = 21.0 z_filter.max_seeing = 1.5 z_filter.exposures = [15.0, 15.0] y_filter = GeneralBandFilter() y_filter.name = 'y' y_filter.num_visits = 210 y_filter.bright_limit = 16.5 y_filter.dark_limit = 21.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}
def test_selections_addition(self): with self.assertRaises(TypeError): self.sky_region.selections[0] = Selection()