def __init__(self):
        """Initialize the class.
        """
        survey = Survey()
        ModelHelper.__init__(self, survey)

        self.proposals = {"GEN": survey.general_proposals}
Example #2
0
    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
Example #6
0
    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
Example #9
0
    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
Example #10
0
    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
Example #11
0
    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 __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 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)
Example #18
0
    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())
Example #25
0
 def __init__(self):
     """Initialize the class.
     """
     ModelHelper.__init__(self, Environment())
 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, ObservatoryVariation())
Example #29
0
 def setUp(self):
     self.mh = ModelHelper(ObservingSite())
Example #30
0
 def __init__(self):
     """Initialize the class.
     """
     ModelHelper.__init__(self, ObservingSite())
 def __init__(self):
     """Initialize the class.
     """
     ModelHelper.__init__(self, Rotator())
 def __init__(self):
     """Initialize the class.
     """
     ModelHelper.__init__(self, OpticsLoopCorr())
Example #33
0
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())
Example #35
0
 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)
Example #36
0
    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, ObservingSite())
 def __init__(self):
     """Initialize the class.
     """
     ModelHelper.__init__(self, Downtime())
Example #39
0
 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
Example #41
0
 def __init__(self):
     """Initialize the class.
     """
     ModelHelper.__init__(self, Dome())
Example #42
0
 def __init__(self):
     """Initialize the class.
     """
     ModelHelper.__init__(self, Slew())
 def __init__(self):
     """Initialize the class.
     """
     ModelHelper.__init__(self, Telescope())
Example #44
0
 def __init__(self):
     """Initialize the class.
     """
     ModelHelper.__init__(self, Filters())