Source code for lsst.sims.ocs.configuration.science.wide_fast_deep

import lsst.pex.config as pexConfig

from lsst.sims.ocs.configuration.proposal import General, GeneralBandFilter, Selection
from lsst.sims.ocs.configuration.proposal import general_prop_reg, SELECTION_LIMIT_TYPES

__all__ = ["WideFastDeep"]

[docs]@pexConfig.registerConfig("WideFastDeep", general_prop_reg, General) class WideFastDeep(General): """This class sets the parameters for specifying the Wide, Fast, Deep proposal. """
[docs] 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}