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()
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))