コード例 #1
0
 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
コード例 #2
0
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)
コード例 #3
0
 def validate(self):
     """Validate configuration parameters.
     """
     BandFilter.validate(self)
コード例 #4
0
    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
        }
コード例 #5
0
 def setUp(self):
     self.band_filter = BandFilter()
コード例 #6
0
    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
        }