コード例 #1
0
    def configure_survey(self, survey_conf_file):

        prop_conf_path = os.path.dirname(survey_conf_file)
        confdict = read_conf_file(survey_conf_file)
        self.survey_duration_DAYS = confdict["survey"]["survey_duration"]
        self.survey_duration_SECS = self.survey_duration_DAYS * 24 * 60 * 60.0

        self.propid_counter = 0
        self.science_proposal_list = []

        if 'scripted_propconf' in confdict["proposals"]:
            scripted_propconflist = confdict["proposals"]["scripted_propconf"]
        else:
            scripted_propconflist = []
        if not isinstance(scripted_propconflist, list):
            # turn it into a list with one entry
            propconf = scripted_propconflist
            scripted_propconflist = []
            scripted_propconflist.append(propconf)
        self.log.info("configure_survey: scripted proposals %s" %
                      (scripted_propconflist))
        for k in range(len(scripted_propconflist)):
            self.propid_counter += 1
            scripted_prop = ScriptedProposal(
                self.propid_counter,
                os.path.join(prop_conf_path,
                             "{}".format(scripted_propconflist[k])), self.sky)
            self.science_proposal_list.append(scripted_prop)

        if 'areadistribution_propconf' in confdict["proposals"]:
            areadistribution_propconflist = confdict["proposals"][
                "areadistribution_propconf"]
        else:
            areadistribution_propconflist = []
            self.log.info("areadistributionPropConf:%s default" %
                          (areadistribution_propconflist))
        if not isinstance(areadistribution_propconflist, list):
            # turn it into a list with one entry
            propconf = areadistribution_propconflist
            areadistribution_propconflist = []
            areadistribution_propconflist.append(propconf)
        self.log.info("init: areadistribution proposals %s" %
                      (areadistribution_propconflist))
        for k in range(len(areadistribution_propconflist)):
            self.propid_counter += 1
            configfilepath = os.path.join(
                prop_conf_path, "{}".format(areadistribution_propconflist[k]))
            (path, name_ext) = os.path.split(configfilepath)
            (name, ext) = os.path.splitext(name_ext)
            proposal_confdict = read_conf_file(configfilepath)
            self.create_area_proposal(self.propid_counter, name,
                                      proposal_confdict)

        for prop in self.science_proposal_list:
            prop.configure_constraints(self.params)
コード例 #2
0
 def test_read_conf_file(self):
     file_path = conf_file_path(__name__, "../conf", "survey", "areaProp1.conf")
     conf_dict = read_conf_file(file_path)
     self.assertEquals(len(conf_dict), 11)
     sky_region_cuts = conf_dict["sky_region"]["cuts"]
     self.assertEqual(len(sky_region_cuts), 2)
     self.assertEqual(sky_region_cuts[0][0], 'RA')
コード例 #3
0
 def test_read_conf_file(self):
     file_path = conf_file_path(__name__, "../conf", "survey",
                                "areaProp1.conf")
     conf_dict = read_conf_file(file_path)
     self.assertEquals(len(conf_dict), 11)
     sky_region_cuts = conf_dict["sky_region"]["cuts"]
     self.assertEqual(len(sky_region_cuts), 2)
     self.assertEqual(sky_region_cuts[0][0], 'RA')
コード例 #4
0
 def test_new_fields(self):
     file_path = conf_file_path(__name__, "../conf", "survey", "rolling_cadence.conf")
     conf_dict = read_conf_file(file_path)
     selection_mappings = conf_dict["sky_region"]["selection_mappings"]
     self.assertEqual(len(selection_mappings), 5)
     self.assertEqual(len(selection_mappings[0]), 1)
     self.assertTupleEqual(selection_mappings[0], (0,))
     self.assertTupleEqual(selection_mappings[1], (1,))
コード例 #5
0
 def test_new_fields(self):
     file_path = conf_file_path(__name__, "../conf", "survey",
                                "rolling_cadence.conf")
     conf_dict = read_conf_file(file_path)
     selection_mappings = conf_dict["sky_region"]["selection_mappings"]
     self.assertEqual(len(selection_mappings), 5)
     self.assertEqual(len(selection_mappings[0]), 1)
     self.assertTupleEqual(selection_mappings[0], (0, ))
     self.assertTupleEqual(selection_mappings[1], (1, ))
コード例 #6
0
 def setUp(self):
     logging.getLogger().setLevel(logging.WARN)
     configfilepath = conf_file_path(__name__, "../conf", "survey",
                                     "scriptedProp1.conf")
     resource_path = os.path.dirname(configfilepath)
     proposal_confdict = read_conf_file(configfilepath)
     script_file = os.path.join(resource_path,
                                proposal_confdict["script"]["scriptfile"])
     self.scriptedprop = ScriptedProposal(1, "scriptedProp1",
                                          proposal_confdict, script_file,
                                          self.skyModel)
コード例 #7
0
ファイル: main.py プロジェクト: lsst-ts/ts_scheduler
    def __init__(self, options, driver=Driver()):
        self.log = logging.getLogger("schedulerMain")

        main_confdict = read_conf_file(conf_file_path(__name__, "conf", "scheduler", "main.conf"))
        self.measinterval = main_confdict['log']['rate_meas_interval']

        if options.path is None:
            self.configuration_path = str(CONFIG_DIRECTORY)
        else:
            self.configuration_path = options.path

        if _gitpython:
            self.config_repo = Repo(str(CONFIG_DIRECTORY_PATH))
        else:
            self.config_repo = None

        self.current_setting = ''
        self.valid_settings = self.read_valid_settings()
        self.log.debug('List of valid configurations:')
        for setting in self.valid_settings:
            if self.current_setting == setting[setting.find('/')+1:]:
                self.log.debug('{} [current]'.format(setting))
            else:
                self.log.debug('{}'.format(setting))

        self.sal = SALUtils(options.timeout)
        self.schedulerDriver = driver
        self.config = SchedulerConfig()

        self.meascount = 0
        self.visitcount = 0
        self.synccount = 0

        self.summary_state_enum = {'DISABLE': 0,
                                   'ENABLE': 1,
                                   'FAULT': 2,
                                   'OFFLINE': 3,
                                   'STANDBY': 4}

        self.cmd_state_transition = {'enterControl': 'STANDBY',
                                     'start': 'DISABLE',
                                     'enable': 'ENABLE'
                                     }

        self.state = 'OFFLINE'

        self.meastime = time.time()
コード例 #8
0
ファイル: test_driver.py プロジェクト: lsst-ts/ts_scheduler
    def setUp(self):
        logging.getLogger().setLevel(logging.WARN)
        conf_path = conf_file_path(__name__, "conf")
        self.driver = Driver()

        driver_conf_file = os.path.join(conf_path, "scheduler", "driver.conf")
        survey_conf_file = os.path.join(conf_path, "survey", "test_survey.conf")

        driver_confdict = read_conf_file(driver_conf_file)
        obs_site_confdict = ObservatoryLocation.get_configure_dict()
        obs_model_confdict = ObservatoryModel.get_configure_dict()

        self.driver.configure(driver_confdict)
        self.driver.configure_location(obs_site_confdict)
        self.driver.configure_observatory(obs_model_confdict)

        self.driver.configure_survey(survey_conf_file)
コード例 #9
0
    def setUp(self):
        logging.getLogger().setLevel(logging.WARN)
        conf_path = conf_file_path(__name__, "conf")
        self.driver = Driver()

        driver_conf_file = os.path.join(conf_path, "scheduler", "driver.conf")
        survey_conf_file = os.path.join(conf_path, "survey",
                                        "test_survey.conf")

        driver_confdict = read_conf_file(driver_conf_file)
        obs_site_confdict = ObservatoryLocation.get_configure_dict()
        obs_model_confdict = ObservatoryModel.get_configure_dict()

        self.driver.configure(driver_confdict)
        self.driver.configure_location(obs_site_confdict)
        self.driver.configure_observatory(obs_model_confdict)

        self.driver.configure_survey(survey_conf_file)