Example #1
0
    def _add_dist_background(self, back_dict, numreal):
        """Drawing background values from distributions
        specified in dictionary

        Args:
            back_dict (OrderedDict): parameters and distributions
            numreal (int): Number of samples to generate
        """
        mc_background = MonteCarloSensitivity("background")
        mc_background.generate(
            range(numreal), back_dict["parameters"], "None", back_dict["correlations"]
        )
        mc_backgroundvalues = mc_background.sensvalues

        # Rounding of background values as specified
        if "decimals" in back_dict.keys():
            for key in back_dict["decimals"].keys():
                if design_dist.is_number(mc_backgroundvalues[key].iloc[0]):
                    mc_backgroundvalues[key] = (
                        mc_backgroundvalues[key]
                        .astype(float)
                        .round(int(back_dict["decimals"][key]))
                    )
                else:
                    raise ValueError("Cannot round a string parameter")
        self.backgroundvalues = mc_backgroundvalues.copy()
Example #2
0
    def _set_decimals(self, dict_decimals):
        """Rounding to specified number of decimals

        Args:
            dict_decimals (dictionary): (key, value)s are (param, decimals)
        """
        for key in self.designvalues.keys():
            if key in dict_decimals.keys():
                if design_dist.is_number(self.designvalues[key].iloc[0]):
                    self.designvalues[key] = (
                        self.designvalues[key].astype(float).round(
                            int(dict_decimals[key])))
                else:
                    raise ValueError(
                        "Cannot round a string parameter {}".format(key))