improver.cli.estimate_samos_coefficients module#
CLI to estimate the Ensemble Model Output Statistics (EMOS) coefficients for Standardized Anomaly Model Output Statistics (SAMOS).
- process(*file_paths, truth_attribute, gam_features, use_default_initial_guess=False, units=None, predictor='mean', tolerance=0.02, max_iterations=1000, unique_site_id_key='wmo_id')[source]#
Estimate EMOS coefficients for use with SAMOS.
Loads in arguments for estimating coefficients for Ensemble Model Output Statistics (EMOS), otherwise known as Non-homogeneous Gaussian Regression (NGR). Two sources of input data must be provided: historical forecasts and historical truth data (to use in calibration). The estimated coefficients are output as a cube.
- Parameters:
file_paths (cli.inputpath) – A list of input paths containing: - Path to a pickle file containing the GAMs to be used. This pickle file contains two lists, each containing two fitted GAMs. The first list contains GAMS for predicting each of the climatological mean and standard deviation of the historical forecasts. The second list contains GAMS for predicting each of the climatological mean and standard deviation of the truths. - Paths to NetCDF files containing the historical forecasts and corresponding truths used for calibration. They must have the same diagnostic name and will be separated based on the provided truth attribute. - Optionally, paths to additional NetCDF files that will be provided to the emos plugin representing static additional predictors. These static additional predictors are expected not to have a time coordinate. These will be identified by their omission from the gam_features list. - Optionally paths to additional NetCDF files that contain additional features (static predictors) that will be provided to the GAM to help calculate the climatological statistics. The name of the cubes should match one of the names in the gam_features list.
truth_attribute (str) – An attribute and its value in the format of “attribute=value”, which must be present on historical truth cubes.
gam_features (list of str) – A list of the names of the cubes that will be used as additional features in the GAM. Additionally, the name of any coordinates that are to be used as features in the GAM.
use_default_initial_guess (bool) – If True, use the default initial guess. The default initial guess assumes no adjustments are required to the initial choice of predictor to generate the calibrated distribution. This means coefficients of 1 for the multiplicative coefficients and 0 for the additive coefficients. If False, the initial guess is computed.
units (str) – The units that calibration should be undertaken in. The historical forecast and truth will be converted as required.
predictor (str) – String to specify the form of the predictor used to calculate the location parameter when estimating the EMOS coefficients. Currently the ensemble mean (“mean”) and the ensemble realizations (“realizations”) are supported as options.
tolerance (float) – The tolerance for the Continuous Ranked Probability Score (CRPS) calculated by the minimisation. Once multiple iterations result in a CRPS equal to the same value within the specified tolerance, the minimisation will terminate.
max_iterations (int) – The maximum number of iterations allowed until the minimisation has converged to a stable solution. If the maximum number of iterations is reached but the minimisation has not yet converged to a stable solution, then the available solution is used anyway, and a warning is raised. If the predictor is “realizations”, then the number of iterations may require increasing, as there will be more coefficients to solve.
unique_site_id_key (str) – If working with spot data and available, the name of the coordinate in the input cubes that contains unique site IDs, e.g. “wmo_id” if all sites have a valid wmo_id. For estimation the default is “wmo_id” as we expect to be including observation data.
- Returns:
CubeList containing the coefficients estimated using EMOS. Each coefficient is stored in a separate cube.
- Return type: