Source code for openscm_runner.utils

"""
Utility functions
"""
import scmdata


[docs]def calculate_quantiles( scmdf, quantiles, process_over_columns=("run_id", "ensemble_member", "climate_model"), ): """ Calculate quantiles of an :obj:`ScmRun` Parameters ---------- scmdf : :obj:`ScmRun` :obj:`ScmRun` containing the data from which to calculate the quantiles quantiles : list of float quantiles to calculate (must be in [0, 1]) process_over_columns : list of str Columns to process over. All other columns in ``scmdf.meta`` will be included in the output. Returns ------- :obj:`ScmRun` :obj:`ScmRun` containing the quantiles of interest, processed over ``process_over_columns`` """ out = [] for quant in quantiles: quantile_df = scmdf.process_over(process_over_columns, "quantile", q=quant) quantile_df["quantile"] = quant out.append(quantile_df) out = scmdata.run_append([scmdata.ScmRun(o) for o in out]) return out