Source code for netcdf_scm.normalisation

"""
Normalisation handling

Within netCDF-SCM, 'normalisation' refers to taking anomalies from some set
of reference values. For example, subtracting a 21-year running mean from
a pre-industrial control experiment from the results of a projection
experiment.
"""
from .after_branch_time_mean import AfterBranchTimeMean
from .running_mean import NormaliserRunningMean
from .running_mean_dedrift import NormaliserRunningMeanDedrift


[docs]def get_normaliser(key): """ Get the appropriate normaliser for a given key Parameters ---------- key : str Key which specifies the type of normaliser to get Returns ------- :obj:`netcdf_scm.normalisation.base.Normaliser` Normaliser appropriate for ``key`` Raises ------ ValueError ``key`` cannot be mapped to a known normaliser """ if key == "21-yr-running-mean": return NormaliserRunningMean(nyears=21) if key == "30-yr-running-mean": return NormaliserRunningMean(nyears=30) if key == "21-yr-running-mean-dedrift": return NormaliserRunningMeanDedrift(nyears=21) if key == "30-yr-running-mean-dedrift": return NormaliserRunningMeanDedrift(nyears=30) if key == "31-yr-mean-after-branch-time": return AfterBranchTimeMean() raise ValueError("Unrecognised key: '{}'".format(key))