def loadFromFile(self, fileName):
        """
        loads from fileName, a plain text .paramnames file or a "full" yaml file
        """

        self.filenameLoadedFrom = os.path.split(fileName)[1]
        extension = os.path.splitext(fileName)[-1]
        if extension == '.paramnames':
            with open(fileName) as f:
                self.names = [
                    ParamInfo(line) for line in [s.strip() for s in f]
                    if line != ''
                ]
        elif extension.lower() in ('.yaml', '.yml'):
            info_params = load_info_params(fileName)
            # first sampled, then derived
            self.names = [
                ParamInfo(param + " " + ((info or {}).get("latex", param)))
                for param, info in info_params.items()
                if is_sampled_param(info)
            ]
            self.names += [
                ParamInfo(param + " " + ((info or {}).get("latex", param)))
                for param, info in info_params.items()
                if is_derived_param(info)
            ]
Exemple #2
0
    def loadFromFile(self, fileName):
        """
        loads from fileName, a plain text .paramnames file or a "full" yaml file
        """

        self.filenameLoadedFrom = os.path.split(fileName)[1]
        extension = os.path.splitext(fileName)[-1]
        if extension == '.paramnames':
            with open(fileName) as f:
                self.names = [
                    ParamInfo(line) for line in [s.strip() for s in f]
                    if line != ''
                ]
        elif extension.lower() in ('.yaml', '.yml'):
            from getdist.yaml_format_tools import yaml_load_file, get_info_params
            from getdist.yaml_format_tools import is_sampled_param, is_derived_param
            from getdist.yaml_format_tools import _p_label, _p_renames

            info_params = get_info_params(yaml_load_file(fileName))
            # first sampled, then derived
            self.names = [
                ParamInfo(name=param,
                          label=(info or {}).get(_p_label, param),
                          renames=(info or {}).get(_p_renames))
                for param, info in info_params.items()
                if is_sampled_param(info)
            ]
            self.names += [
                ParamInfo(name=param,
                          label=(info or {}).get(_p_label, param),
                          renames=(info or {}).get(_p_renames),
                          derived=True) for param, info in info_params.items()
                if is_derived_param(info)
            ]
 def loadFromFile(self, fileName):
     self.filenameLoadedFrom = os.path.split(fileName)[1]
     extension = os.path.splitext(fileName)[-1]
     if extension in ('.ranges', '.bounds'):
         with open(fileName) as f:
             for line in f:
                 strings = [text.strip() for text in line.split()]
                 if len(strings) == 3:
                     self.setRange(strings[0], strings[1:])
     elif extension in ('.yaml', '.yml'):
         info_params = load_info_params(fileName)
         for p, info in info_params.items():
             # Sampled
             if is_sampled_param(info):
                 info_lims = dict([[l,info["prior"].get(l)]
                                   for l in ["min", "max", "loc", "scale"]])
                 if info_lims["min"] != None or info_lims["max"] != None:
                     lims = [info["prior"].get("min"), info["prior"].get("max")]
                 elif info_lims["loc"] != None or info_lims["scale"] != None:
                     dist = info["prior"].pop("dist", "uniform")
                     pdf_dist = getattr(import_module("scipy.stats", dist), dist)
                     lims = pdf_dist.interval(1, **info["prior"])
             # Derived
             elif is_derived_param(info):
                 lims = (lambda i: [i.get("min", -np.inf), i.get("max", np.inf)])(info or {})
             # Fixed
             else:
                 continue
             self.setRange(p, lims)
Exemple #4
0
    def loadFromFile(self, fileName):
        """
        loads from fileName, a plain text .paramnames file or a "full" yaml file
        """

        self.filenameLoadedFrom = os.path.split(fileName)[1]
        extension = os.path.splitext(fileName)[-1]
        if extension == '.paramnames':
            with open(fileName) as f:
                self.names = [ParamInfo(line) for line in [s.strip() for s in f] if line != '']
        elif extension.lower() in ('.yaml', '.yml'):
            from getdist.yaml_format_tools import yaml_load_file, get_info_params
            from getdist.yaml_format_tools import is_sampled_param, is_derived_param
            from getdist.yaml_format_tools import _p_label, _p_renames

            info_params = get_info_params(yaml_load_file(fileName))
            # first sampled, then derived
            self.names = [ParamInfo(name=param, label=(info or {}).get(_p_label, param),
                                    renames=(info or {}).get(_p_renames))
                          for param, info in info_params.items() if is_sampled_param(info)]
            self.names += [ParamInfo(name=param, label=(info or {}).get(_p_label, param),
                                     renames=(info or {}).get(_p_renames), derived=True)
                           for param, info in info_params.items() if is_derived_param(info)]