def __init__(self): """Initialize the class. """ survey = Survey() ModelHelper.__init__(self, survey) self.proposals = {"GEN": survey.general_proposals}
def apply_overrides(self, config_files): """Apply configuration overrides. Parameters ---------- config_files : list The list of configuration file paths. """ park = Park() ModelHelper.load_config(park, config_files) model = ModelHelper(park) return model
def apply_overrides(self, config_files): """Apply configuration overrides. Parameters ---------- config_files : list The list of configuration file paths. """ downtime = Downtime() ModelHelper.load_config(downtime, config_files) model = ModelHelper(downtime) return model.params
def __init__(self, config_obj): """Initialize class. Parameters ---------- config_obj : lsst.sims.ocs.configuration.proposal.General instance The instance containing the area distribution proposal information. """ self.parameter_order = ["name", "sky_region", "sky_exclusion", "sky_nightly_bounds", "sky_constraints", "scheduling", "filters"] ModelHelper.__init__(self, config_obj)
def apply_overrides(self, config_files): """Apply configuration overrides. Parameters ---------- config_files : list The list of configuration file paths. """ telescope = Telescope() ModelHelper.load_config(telescope, config_files) model = ModelHelper(telescope) return model
def apply_overrides(self, config_files): """Apply configuration overrides. Parameters ---------- config_files : list The list of configuration file paths. """ obs_site = ObservingSite() ModelHelper.load_config(obs_site, config_files) model = ModelHelper(obs_site) return model.params
def apply_overrides(self, config_files): """Apply configuration overrides. Parameters ---------- config_files : list The list of configuration file paths. """ rotator = Rotator() ModelHelper.load_config(rotator, config_files) model = ModelHelper(rotator) return model
def apply_overrides(self, config_files): """Apply configuration overrides. Parameters ---------- config_files : list The list of configuration file paths. """ sched_driver = SchedulerDriver() ModelHelper.load_config(sched_driver, config_files) model = ModelHelper(sched_driver) return model.params
def apply_overrides(self, config_files): """Apply configuration overrides. Parameters ---------- config_files : list The list of configuration file paths. """ environment = Environment() ModelHelper.load_config(environment, config_files) model = ModelHelper(environment) return model.params
def apply_overrides(self, config_files): """Apply configuration overrides. Parameters ---------- config_files : list The list of configuration file paths. """ filters = Filters() ModelHelper.load_config(filters, config_files) model = ModelHelper(filters) return model
def apply_overrides(self, config_files): """Apply configuration overrides. Parameters ---------- config_files : list The list of configuration file paths. """ slew = Slew() ModelHelper.load_config(slew, config_files) model = ModelHelper(slew) return model
def apply_overrides(self, config_files): """Apply configuration overrides. Parameters ---------- config_files : list The list of configuration file paths. """ optics_loop_corr = OpticsLoopCorr() ModelHelper.load_config(optics_loop_corr, config_files) model = ModelHelper(optics_loop_corr) return model
def apply_overrides(self, config_files): """Apply configuration overrides. Parameters ---------- config_files : list The list of configuration file paths. """ obs_var = ObservatoryVariation() ModelHelper.load_config(obs_var, config_files) model = ModelHelper(obs_var) return model
def make_parameter_dictionary(self): """Parameter dictionary for area distribution proposals. """ iparams = ModelHelper.make_parameter_dictionary(self) for key in iparams: if iparams[key]["dtype"] is None: iparams[key]["dtype"] = "GroupBox" sub_obj = getattr(self.config_obj, key) sub_cls = load_class(sub_obj) try: sparams = ModelHelper.make_parameter_dictionary(self, fields=sub_cls._fields, obj=sub_obj) iparams[key]["value"] = sparams except AttributeError: iparams[key]["value"] = {} for i, (k1, v1) in enumerate(sub_obj.items()): sub_cls1 = load_class(v1) sparams1 = ModelHelper.make_parameter_dictionary(self, fields=sub_cls1._fields, obj=v1) iparams[key]["value"][k1] = sparams1 iparams1 = iparams[key]["value"] for k2 in iparams1: if isinstance(iparams1[k2], collections.defaultdict): continue if iparams1[k2]["dtype"] is None: iparams1[k2]["dtype"] = "GroupBox" sub_obj2 = getattr(sub_obj, k2) try: sub_cls2 = load_class(sub_obj2) except ValueError: continue try: sparams1 = ModelHelper.make_parameter_dictionary(self, fields=sub_cls2._fields, obj=sub_obj2) iparams1[k2]["value"] = sparams1 except AttributeError: iparams1[k2]["value"] = {} for j, (k3, v3) in enumerate(sub_obj2.items()): sub_cls3 = load_class(v3) sparams2 = ModelHelper.make_parameter_dictionary(self, fields=sub_cls3._fields, obj=v3) iparams1[k2]["value"][j] = sparams2 iparams[key]["value"] = iparams1 final_params = collections.OrderedDict() for parameter_name in self.parameter_order: final_params[parameter_name] = iparams.get(parameter_name) return final_params
def make_parameter_dictionary(self): """Parameter dictionary for area distribution proposals. """ iparams = ModelHelper.make_parameter_dictionary(self) for key in iparams: if iparams[key]["dtype"] is None: iparams[key]["dtype"] = "GroupBox" sub_obj = getattr(self.config_obj, key) sub_cls = load_class(sub_obj) try: sparams = ModelHelper.make_parameter_dictionary(self, fields=sub_cls._fields, obj=sub_obj) iparams[key]["value"] = sparams except AttributeError: iparams[key]["value"] = {} for i, (k1, v1) in enumerate(sub_obj.items()): sub_cls1 = load_class(v1) sparams1 = ModelHelper.make_parameter_dictionary(self, fields=sub_cls1._fields, obj=v1) iparams[key]["value"][i] = sparams1 iparams1 = iparams[key]["value"] for k2 in iparams1: if isinstance(iparams1[k2], collections.defaultdict): continue if iparams1[k2]["dtype"] is None: iparams1[k2]["dtype"] = "GroupBox" sub_obj2 = getattr(sub_obj, k2) try: sub_cls2 = load_class(sub_obj2) except ValueError: continue try: sparams1 = ModelHelper.make_parameter_dictionary(self, fields=sub_cls2._fields, obj=sub_obj2) iparams1[k2]["value"] = sparams1 except AttributeError: iparams1[k2]["value"] = {} for j, (k3, v3) in enumerate(sub_obj2.items()): sub_cls3 = load_class(v3) sparams2 = ModelHelper.make_parameter_dictionary(self, fields=sub_cls3._fields, obj=v3) iparams1[k2]["value"][j] = sparams2 iparams[key]["value"] = iparams1 final_params = collections.OrderedDict() for parameter_name in self.parameter_order: final_params[parameter_name] = iparams.get(parameter_name) return final_params
def __init__(self, config_obj): """Initialize class. Parameters ---------- config_obj : lsst.sims.ocs.configuration.proposal.Sequence instance The instance containing the sequence proposal information. """ self.parameter_order = [ "name", "sky_user_regions", "sky_exclusion", "sky_nightly_bounds", "sky_constraints", "sub_sequences", "master_sub_sequences", "scheduling", "filters" ] ModelHelper.__init__(self, config_obj)
def get_parameter(self, parameter_name): """Get a value for the given parameter. Parameters ---------- parameter_name : str The name of the parameter to fetch the value of. Returns ------- any The associated parameter value. """ if "general_proposals" in parameter_name: return list(self.proposals["GEN"]) else: return ModelHelper.get_parameter(self, parameter_name)
def __init__(self): """Initialize the class. """ ModelHelper.__init__(self, Rotator())
def __init__(self): """Initialize the class. """ ModelHelper.__init__(self, ObservatoryVariation())
def __init__(self): """Initialize the class. """ ModelHelper.__init__(self, OpticsLoopCorr())
def setUp(self): self.mh = ModelHelper(ObservingSite())
class ModelHelperTest(unittest.TestCase): @classmethod def setUpClass(cls): cls.save_dir = "config_dir" if not os.path.exists(cls.save_dir): os.mkdir(cls.save_dir) @classmethod def tearDownClass(cls): shutil.rmtree(cls.save_dir) def setUp(self): self.mh = ModelHelper(ObservingSite()) def test_basic_information_after_creation(self): self.assertIsNotNone(self.mh.config_obj) self.assertIsNotNone(self.mh.config_cls) self.assertIsNotNone(self.mh.paren_match) self.assertIsNotNone(self.mh.params) def test_blank_helper_basic_information_after_creation(self): blank_mh = ModelHelper() self.assertIsNone(blank_mh.config_obj) self.assertIsNone(blank_mh.config_cls) self.assertIsNotNone(blank_mh.paren_match) self.assertIsNone(blank_mh.params) def test_make_parameter(self): # Setup top-level information for one parameter param_dict = collections.defaultdict(dict) fields = self.mh.config_cls._fields key = "name" value = fields[key] pdict = param_dict[key] self.mh.make_parameter(pdict, key, value) self.assertEqual(pdict["dtype"], "Str") self.assertEqual(pdict["value"], "Cerro Pachon") self.assertIsNone(pdict["units"]) def test_make_parameter_dictionary(self): param_dict = self.mh.make_parameter_dictionary() self.assertEqual(len(param_dict), 7) def test_check_parameter(self): self.assertTrue(self.mh.check_parameter("name", "Sierra Madre")) self.assertFalse(self.mh.check_parameter("height", "2650.0")) def test_get_parameter(self): self.assertEquals(self.mh.get_parameter("name"), "Cerro Pachon") self.assertEquals(self.mh.get_parameter("height"), 2650.0) def test_save_configuration(self): name = "obs_site" changed_values = [ ("name", "Sierra Madre"), ("height", "1243.5"), ("bool_val", "False"), ("str_list", "a,b,c,d"), ("float_list", "0.0,1.0,2.0"), ] self.mh.save_configuration(self.save_dir, name, changed_values) output_file = "{}.py".format(name) full_file = os.path.join(self.save_dir, output_file) self.assertTrue(os.path.exists(full_file)) with open(full_file, "r") as ifile: lines = ifile.readlines() self.assertEqual(len(lines), len(changed_values) + 2)
def __init__(self): """Initialize the class. """ ModelHelper.__init__(self, SchedulerDriver())
def __init__(self): """Initialize the class. """ ModelHelper.__init__(self, Environment())
def __init__(self): """Initialize the class. """ ModelHelper.__init__(self, ObservingSite())
class ModelHelperTest(unittest.TestCase): @classmethod def setUpClass(cls): cls.save_dir = "config_dir" if not os.path.exists(cls.save_dir): os.mkdir(cls.save_dir) @classmethod def tearDownClass(cls): shutil.rmtree(cls.save_dir) def setUp(self): self.mh = ModelHelper(ObservingSite()) def test_basic_information_after_creation(self): self.assertIsNotNone(self.mh.config_obj) self.assertIsNotNone(self.mh.config_cls) self.assertIsNotNone(self.mh.paren_match) self.assertIsNotNone(self.mh.params) def test_blank_helper_basic_information_after_creation(self): blank_mh = ModelHelper() self.assertIsNone(blank_mh.config_obj) self.assertIsNone(blank_mh.config_cls) self.assertIsNotNone(blank_mh.paren_match) self.assertIsNone(blank_mh.params) def test_make_parameter(self): # Setup top-level information for one parameter param_dict = collections.defaultdict(dict) fields = self.mh.config_cls._fields key = "name" value = fields[key] pdict = param_dict[key] self.mh.make_parameter(pdict, key, value) self.assertEqual(pdict["dtype"], "Str") self.assertEqual(pdict["value"], "Cerro Pachon") self.assertIsNone(pdict["units"]) def test_make_parameter_dictionary(self): param_dict = self.mh.make_parameter_dictionary() self.assertEqual(len(param_dict), 7) def test_check_parameter(self): self.assertTrue(self.mh.check_parameter("name", "Sierra Madre")) self.assertFalse(self.mh.check_parameter("height", "2650.0")) def test_get_parameter(self): self.assertEquals(self.mh.get_parameter("name"), "Cerro Pachon") self.assertEquals(self.mh.get_parameter("height"), 2650.0) def test_save_configuration(self): name = "obs_site" changed_values = [("name", "Sierra Madre"), ("height", "1243.5"), ("bool_val", "False"), ("str_list", "a,b,c,d"), ("float_list", "0.0,1.0,2.0")] self.mh.save_configuration(self.save_dir, name, changed_values) output_file = "{}.py".format(name) full_file = os.path.join(self.save_dir, output_file) self.assertTrue(os.path.exists(full_file)) with open(full_file, 'r') as ifile: lines = ifile.readlines() self.assertEqual(len(lines), len(changed_values) + 2)
def __init__(self): """Initialize the class. """ ModelHelper.__init__(self, Telescope())
def test_blank_helper_basic_information_after_creation(self): blank_mh = ModelHelper() self.assertIsNone(blank_mh.config_obj) self.assertIsNone(blank_mh.config_cls) self.assertIsNotNone(blank_mh.paren_match) self.assertIsNone(blank_mh.params)
def apply_overrides(self, config_files, extra_props=None): """Apply configuration overrides. Parameters ---------- config_files : list The list of configuration file paths. extra_props : str, optional A path for extra proposals. """ original_props = self.get_proposal_names() sci_props = ScienceProposals() survey = Survey() sci_props.load_proposals( { "GEN": survey.general_proposals, "SEQ": survey.sequence_proposals }, alternate_proposals=extra_props) general_params = {} new_general = {} for general_obj in sci_props.general_props.active: if general_obj.name not in original_props: name = general_obj.name self.general_modules[name] = load_class(general_obj).__module__ model = GeneralPropModel(general_obj) params = model.make_parameter_dictionary() self.general_params[name] = params new_general[name] = params ModelHelper.load_config(general_obj, config_files) general_model = GeneralPropModel(general_obj) params = general_model.make_parameter_dictionary() prop_name = params["name"]["value"] general_params[prop_name] = params sequence_params = {} new_sequence = {} for sequence_obj in sci_props.sequence_props.active: if sequence_obj.name not in original_props: name = sequence_obj.name self.sequence_modules[name] = load_class( sequence_obj).__module__ model = SequencePropModel(sequence_obj) params = model.make_parameter_dictionary() self.sequence_params[name] = params new_sequence[name] = params ModelHelper.load_config(sequence_obj, config_files) sequence_model = SequencePropModel(sequence_obj) params = sequence_model.make_parameter_dictionary() prop_name = params["name"]["value"] sequence_params[prop_name] = params new_params = collections.namedtuple( "new_params", "general_params sequence_params " "new_general new_sequence") new_params.general_params = general_params new_params.sequence_params = sequence_params new_params.new_general = new_general new_params.new_sequence = new_sequence return new_params
def __init__(self): """Initialize the class. """ ModelHelper.__init__(self, Downtime())
def __init__(self): """Initialize the class. """ ModelHelper.__init__(self, Camera())
def make_parameter_dictionary(self): """Parameter dictionary for sequence proposals. """ iparams = ModelHelper.make_parameter_dictionary(self) for key in iparams: if iparams[key]["dtype"] is None: iparams[key]["dtype"] = "GroupBox" sub_obj = getattr(self.config_obj, key) sub_cls = load_class(sub_obj) try: sparams = ModelHelper.make_parameter_dictionary( self, fields=sub_cls._fields, obj=sub_obj) iparams[key]["value"] = sparams except AttributeError: iparams[key]["value"] = {} for i, (k1, v1) in enumerate(sub_obj.items()): sub_cls1 = load_class(v1) sparams1 = ModelHelper.make_parameter_dictionary( self, fields=sub_cls1._fields, obj=v1) iparams[key]["value"][k1] = sparams1 if "master" in key: iparams[key]["value"][k1]["sub_sequences"][ "value"] = {} # Need to handle sub-sequence lists sub_seq_names = [] for k3, v3 in v1.sub_sequences.items(): sub_cls3 = load_class(v3) sparams3 = ModelHelper.make_parameter_dictionary( self, fields=sub_cls3._fields, obj=v3) iparams[key]["value"][k1]["sub_sequences"][ "value"][k3] = sparams3 sub_seq_names.append(sparams3["name"]["value"]) iparams[key]["value"][k1]["sub_sequence_names"] = \ {"units": None, "dtype": "StringList", "format": None, "doc": iparams[key]["value"][0]["sub_sequences"]["doc"], "value": ','.join(sub_seq_names)} iparams1 = iparams[key]["value"] for k2 in iparams1: if isinstance(iparams1[k2], collections.defaultdict): continue if iparams1[k2]["dtype"] is None: iparams1[k2]["dtype"] = "GroupBox" sub_obj2 = getattr(sub_obj, k2) try: sub_cls2 = load_class(sub_obj2) except ValueError: continue try: sparams1 = ModelHelper.make_parameter_dictionary( self, fields=sub_cls2._fields, obj=sub_obj2) iparams1[k2]["value"] = sparams1 except AttributeError: iparams1[k2]["value"] = {} for j, (k3, v3) in enumerate(sub_obj2.items()): sub_cls3 = load_class(v3) sparams2 = ModelHelper.make_parameter_dictionary( self, fields=sub_cls3._fields, obj=v3) iparams1[k2]["value"][j] = sparams2 iparams[key]["value"] = iparams1 final_params = collections.OrderedDict() for parameter_name in self.parameter_order: final_params[parameter_name] = iparams.get(parameter_name) return final_params
def __init__(self): """Initialize the class. """ ModelHelper.__init__(self, Dome())
def __init__(self): """Initialize the class. """ ModelHelper.__init__(self, Slew())
def __init__(self): """Initialize the class. """ ModelHelper.__init__(self, Filters())