{"$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "http://community-inversion.eu/pycif_config.schema.json", "title": "pyCIF Configuration File", "description": "A pyCIF configuration file", "type": "object", "properties": {"verbose": {"description": "verbose level:\n- 0: debugging verbose, includes the path to the python script were the log instance was called\n- 1: debugging verbose, without extra information on the script path\n- 2: only main information are displayed\n- >2: only warnings are displayed", "type": "integer", "minimum": 0, "default": 0}, "workdir": {"description": "execution directory", "type": ["string", "array"], "items": {"type": "string"}}, "logfile": {"description": "log file", "type": ["string", "array"], "items": {"type": "string"}, "default": "pycif.log"}, "datei": {"description": "initial datetime", "type": "string", "pattern": "^[0-9]{4}-(0[0-9]|1[0-2])-([0-2][0-9]|3[01])(|( |T)([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])$", "default": "YYYY-MM-DD"}, "datef": {"description": "final datetime", "type": "string", "pattern": "^[0-9]{4}-(0[0-9]|1[0-2])-([0-2][0-9]|3[01])(|( |T)([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])$", "default": "YYYY-MM-DD"}, "chemistry": {"oneOf": [{"$ref": "#/$defs/TM5_SINK-TIPP_chemistry"}, {"$ref": "#/$defs/CHIMERE_gasJtab_chemistry"}, {"$ref": "#/$defs/ICON-ART_std_chemistry"}, {"$ref": "#/$defs/LMDZ_SACS_chemistry"}, {"$ref": "#/$defs/lmdz_chemistry"}, {"description": "include external YAML file", "type": "object", "properties": {"file_yaml": {"description": "path to external YAML file", "type": "string"}}, "additionalProperties": false}]}, "controlvect": {"oneOf": [{"$ref": "#/$defs/standard_std_controlvect"}, {"description": "include external YAML file", "type": "object", "properties": {"file_yaml": {"description": "path to external YAML file", "type": "string"}}, "additionalProperties": false}]}, "datavect": {"oneOf": [{"$ref": "#/$defs/standard_std_datavect"}, {"description": "include external YAML file", "type": "object", "properties": {"file_yaml": {"description": "path to external YAML file", "type": "string"}}, "additionalProperties": false}]}, "domain": {"oneOf": [{"$ref": "#/$defs/CHIMERE_std_domain"}, {"$ref": "#/$defs/dummy_std_domain"}, {"$ref": "#/$defs/dynamico_std_domain"}, {"$ref": "#/$defs/FLEXPART_std_domain"}, {"$ref": "#/$defs/gridded_netcdf_std_domain"}, {"$ref": "#/$defs/ICON-ART_std_domain"}, {"$ref": "#/$defs/LMDZ_std_domain"}, {"$ref": "#/$defs/LMDZ_dynamico_domain"}, {"$ref": "#/$defs/LMDZ_regular_domain"}, {"$ref": "#/$defs/gridded_netcdf_unstructured_domain"}, {"$ref": "#/$defs/wrfchem_std_domain"}, {"description": "include external YAML file", "type": "object", "properties": {"file_yaml": {"description": "path to external YAML file", "type": "string"}}, "additionalProperties": false}]}, "mode": {"oneOf": [{"$ref": "#/$defs/adj-tl_test_std_mode"}, {"$ref": "#/$defs/analytic_std_mode"}, {"$ref": "#/$defs/EnSRF_std_mode"}, {"$ref": "#/$defs/footprint_std_mode"}, {"$ref": "#/$defs/forward_std_mode"}, {"$ref": "#/$defs/post-proc_std_mode"}, {"$ref": "#/$defs/response-functions_std_mode"}, {"$ref": "#/$defs/4dvar_std_mode"}, {"description": "include external YAML file", "type": "object", "properties": {"file_yaml": {"description": "path to external YAML file", "type": "string"}}, "additionalProperties": false}]}, "model": {"oneOf": [{"$ref": "#/$defs/TM5_std_model"}, {"$ref": "#/$defs/CHIMERE_std_model"}, {"$ref": "#/$defs/CHIMERE_acc_model"}, {"$ref": "#/$defs/dummy_std_model"}, {"$ref": "#/$defs/ICON-ART_std_model"}, {"$ref": "#/$defs/Lagrangian_std_model"}, {"$ref": "#/$defs/LMDZ_acc_model"}, {"$ref": "#/$defs/LMDZ_reg-ico_model"}, {"$ref": "#/$defs/LMDZ_std_model"}, {"$ref": "#/$defs/satwetch4_std_model"}, {"$ref": "#/$defs/template_std_model"}, {"$ref": "#/$defs/wrfchem_std_model"}, {"description": "include external YAML file", "type": "object", "properties": {"file_yaml": {"description": "path to external YAML file", "type": "string"}}, "additionalProperties": false}]}, "obsoperator": {"oneOf": [{"$ref": "#/$defs/FLEXINVERT_std_obsoperator"}, {"$ref": "#/$defs/random_std_obsoperator"}, {"$ref": "#/$defs/standard_std_obsoperator"}, {"description": "include external YAML file", "type": "object", "properties": {"file_yaml": {"description": "path to external YAML file", "type": "string"}}, "additionalProperties": false}]}, "obsvect": {"oneOf": [{"$ref": "#/$defs/standard_std_obsvect"}, {"description": "include external YAML file", "type": "object", "properties": {"file_yaml": {"description": "path to external YAML file", "type": "string"}}, "additionalProperties": false}]}, "platform": {"oneOf": [{"$ref": "#/$defs/TGCC-CCRT_AMD_platform"}, {"$ref": "#/$defs/docker_cif_platform"}, {"$ref": "#/$defs/docker_nvidia_platform"}, {"$ref": "#/$defs/ECMWF_ecs_platform"}, {"$ref": "#/$defs/EMPA_daint_platform"}, {"$ref": "#/$defs/ESPRI_spirit-nvidia_platform"}, {"$ref": "#/$defs/FMI_Puhti_platform"}, {"$ref": "#/$defs/LAERO_nuwa_platform"}, {"$ref": "#/$defs/LSCE_obelix_platform"}, {"$ref": "#/$defs/LSCE_obelix-nvidia_platform"}, {"$ref": "#/$defs/TGCC-CCRT_std_platform"}, {"$ref": "#/$defs/TGCC-CCRT_nvidia_platform"}, {"description": "include external YAML file", "type": "object", "properties": {"file_yaml": {"description": "path to external YAML file", "type": "string"}}, "additionalProperties": false}]}}, "$defs": {"TM5_SINK-TIPP_chemistry": {"title": "TM5/SINK-TIPP/chemistry", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TM5"}, "version": {"description": "plugin version", "const": "SINK-TIPP"}, "type": {"description": "plugin type", "const": "chemistry"}}, "required": ["name", "version"]}, "dir_tipp": {"description": "Path to kinetics files", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin", "dir_tipp"], "additionalProperties": false}, "CHIMERE_gasJtab_chemistry": {"title": "CHIMERE/gasJtab/chemistry", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CHIMERE"}, "version": {"description": "plugin version", "const": "gasJtab"}, "type": {"description": "plugin type", "const": "chemistry"}}, "required": ["name", "version"]}, "schemeid": {"description": "Name of the chemical scheme", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "nreactamax": {"description": "Max number of reactants/reaction (4 by default)", "type": "integer", "default": 4}, "ntemps": {"description": "Number of tabul. temperatures for stoichio. (4 by default)", "type": "integer", "default": 4}, "ntabmax": {"description": "Max number of rate constants (22 by default)", "type": "integer", "default": 22}, "nlevphotmax": {"description": "Max number of tabulated photolysis levels (50 by default)", "type": "integer", "default": 50}, "ntabuzenmax": {"description": "Max number of tabulated zenith angles (20 by default)", "type": "integer", "default": 20}, "nphotmax": {"description": "Max number of photolysis reactions (50 by default)", "type": "integer", "default": 50}, "dir_precomp": {"description": "Directory where pre-defined chemical schemes are stored. The assumed structure is: ``${dir_precomp}/${schemeid}/``", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "acspecies": {"description": "List of active species and corresponding parameters", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "Name of a species.", "type": "object", "additionalProperties": false, "properties": {"restart_id": {"description": "ID of the species in the LMDZ restart files. If the ID is an integer, the variable name to be found in `restart.nc` files has the format `q{:02d}`.  To explicitly specify the variable name to look for in `restart.nc` files, use the format `explicit_XXXX`; in that case, all characters after `explicit_` make the species/variable name."}, "mass": {"description": "Molar mass of the species"}, "htransport": {"description": "Vertical transport scheme to use in CHIMERE (2 by default)", "enum": [1, 2, 0], "default": 2}, "vtransport": {"description": "Vertical transport scheme to use in CHIMERE (1 by default)", "enum": [1, 2], "default": 1}, "bound_dry": {"description": "Apply a conversion to humid concentration if dry (True by default)", "type": "boolean", "default": true}}}}}, "outspecies": {"description": "List of output species and corresponding parameters", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "Name of a species.", "type": "object", "additionalProperties": false, "properties": {"output_frac": {"description": "In CHIMERE, computed concentrations are in fraction of total air (i.e., wet). It is possible to convert it to dry, or apply any other conversion factor. (0 by default)", "enum": [-1, 0, 1], "default": 0}}}}}, "emis_species": {"description": "List of emitted species with constant emissions on corresponding time steps. Use for all emitted species for LMDZ. Corresponds to ANTHROPOGENIC species in CHIMERE", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "Name of a species.", "type": "object", "additionalProperties": false, "properties": {}}}}, "bio_species": {"description": "List of emitted species with interpolated emissions between time steps. Do not use for LMDZ. Corresponds to BIOGENIC species in CHIMERE", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "Name of a species.", "type": "object", "additionalProperties": false, "properties": {}}}}, "families": {"description": "List of families of species. Only for CHIMERE", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "Name of a species.", "type": "object", "additionalProperties": false, "properties": {}}}}, "photo_parameters": {"description": "Information about photolysis parameters", "type": "object", "additionalProperties": false, "properties": {"ntabuzen": {"description": "Number of zenithal angles for which values are given (0 by default)", "default": 0}, "nphot": {"description": "Number of species for which values are given (0 by default)", "default": 0}, "nwavel": {"description": "Not used anywere... (3 by default)", "default": 3}, "altiphot": {"description": "Levels (in meters above ground level) at which photolysis rates are given ([] by default)", "default": []}}}}, "required": ["plugin", "schemeid"], "additionalProperties": false}, "ICON-ART_std_chemistry": {"title": "ICON-ART/std/chemistry", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "ICON-ART"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "chemistry"}}, "required": ["name", "version"]}, "schemeid": {"description": "Name of the chemical scheme", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_precomp": {"description": "Directory where pre-defined chemical schemes are stored. The assumed structure is: ``${dir_precomp}/${schemeid}/``", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "acspecies": {"description": "List of active species and corresponding parameters", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "Name of a species.", "type": "object", "additionalProperties": false, "properties": {"mass": {"description": "Molar mass of the species"}, "emis_species": {"description": "Corresponding emitted species (OEM categories)"}}}}}}, "required": ["plugin", "schemeid"], "additionalProperties": false}, "LMDZ_SACS_chemistry": {"title": "LMDZ/SACS/chemistry", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "SACS"}, "type": {"description": "plugin type", "const": "chemistry"}}, "required": ["name", "version"]}, "active_species": {"description": "List of active species / tracers. Each species requires a parameter in a 'inicond' component", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "Name of a species.", "type": "object", "additionalProperties": false, "properties": {"molar_mass": {"description": "Molar mass of the species", "type": "number"}, "restart_id": {"description": "ID in the restart file (with 'q' at the beginning)", "type": "integer"}}}}}, "emitted_species": {"description": "List of emitted species, must be included in 'active_species'. Each species requires a parameter in a 'flux' component. By default, all species in 'active_species' are emitted.", "type": "array"}, "prescribed_species": {"description": "List of prescribed species. Each species requires a parameter in a 'prescrconcs' component ([] by default)", "type": "array", "default": []}, "prodloss_species": {"description": "List of production/loss species, must be included in 'active_species'. Each species requires a parameter in a 'prodloss' component ([] by default)", "type": "array", "default": []}, "deposition_species": {"description": "List of deposition species, must be included in 'active_species'. Each species requires a parameter in a 'deposition' component ([] by default)", "type": "array", "default": []}, "reactions": {"description": "List of reactions. ([] by default)", "type": "array", "default": []}}, "required": ["plugin", "active_species"], "additionalProperties": false}, "standard_std_controlvect": {"title": "standard/std/controlvect", "description": "Standard CIF control vector", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "standard"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "controlvect"}}, "required": ["name", "version"]}, "domain": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "datavect": {"$ref": "#/$defs/standard_std_datavect"}, "save_out_netcdf": {"description": "Save NetCDF format in addition to pickle when saving the control vector (False by default)", "type": "boolean", "default": false}, "force_adj_netcdf": {"description": "Force saving sensitivities to the adjoint as netcdf (False by default)", "type": "boolean", "default": false}, "reduced_chi": {"description": "The Chi space can be reduced by clipping the eigen vectors. Beware that it is an approximation that may save some memory and accelerate converge of variational inversions, but miss some correlation structures (False by default)", "type": "boolean", "default": false}, "save_full_B": {"description": "Force dumping the full B matrix.  .. warning::  Beware of the size of your problem. The full B matrix may be to big to be explicitly defined and stored (False by default)", "type": "boolean", "default": false}, "reload_xb": {"description": "Load x from a pre-defined file (False by default)", "type": "boolean", "default": false}, "perturb_xb": {"description": "Perturb xb using B (False by default)", "type": "boolean", "default": false}, "reload_file": {"description": "File from which to reload x (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "use_boundaries": {"description": "Define range of validity for the control variables (False by default)", "type": "boolean", "default": false}, "transform_pipe": {"title": "controlvect transform pipe", "type": "object", "patternProperties": {"^.*$": {"oneOf": [{"$ref": "#/$defs/background_std_transform"}, {"$ref": "#/$defs/clipcrop_std_transform"}, {"$ref": "#/$defs/exp_std_transform"}, {"$ref": "#/$defs/families_std_transform"}, {"$ref": "#/$defs/product_std_transform"}, {"$ref": "#/$defs/regrid_std_transform"}, {"$ref": "#/$defs/time_interpolation_std_transform"}, {"$ref": "#/$defs/unit_conversion_std_transform"}, {"$ref": "#/$defs/vertical_interpolation_std_transform"}, {"$ref": "#/$defs/conc2ratio_std_transform"}, {"$ref": "#/$defs/diagmet_std_transform"}, {"$ref": "#/$defs/isotopes_std_transform"}, {"$ref": "#/$defs/moist2dry_std_transform"}, {"$ref": "#/$defs/ratio2conc_std_transform"}, {"$ref": "#/$defs/satellites_std_transform"}, {"$ref": "#/$defs/array2sampled_std_transform"}, {"$ref": "#/$defs/dump2format_std_transform"}, {"$ref": "#/$defs/dump2inputs_std_transform"}, {"$ref": "#/$defs/fromcontrol_std_transform"}, {"$ref": "#/$defs/loadfromoutputs_std_transform"}, {"$ref": "#/$defs/run_model_std_transform"}, {"$ref": "#/$defs/sparse2sample_std_transform"}, {"$ref": "#/$defs/toobsvect_std_transform"}]}}, "additionalProperties": false}}, "required": ["plugin"], "additionalProperties": false}, "carboscope_std_background": {"title": "carboscope/std/background", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "carboscope"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "background"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "numscale": {"description": "Scaling factor to apply to the input data (1 by default)", "type": "number", "default": 1}, "station_name_dict": {"description": "Information to translate station IDs from CIF to footprint file names.", "type": "object", "additionalProperties": false, "properties": {"dict_file": {"description": "Path to the file to use as dictionary", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "separator": {"description": "Separator to use to parse the parse `dict_file` (\";\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ";"}, "CIF_stations_id": {"description": "Column name to use as CIF station names (\"CIF_stations_id\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "CIF_stations_id"}, "footprint_stations_id": {"description": "Column name to use in footprint station name (\"footprint_stations_id\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "footprint_stations_id"}}}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "TM5-4DVAR_rodenbeck_background": {"title": "TM5-4DVAR/rodenbeck/background", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TM5-4DVAR"}, "version": {"description": "plugin version", "const": "rodenbeck"}, "type": {"description": "plugin type", "const": "background"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "time_varname": {"description": "Name of the time variable (\"time1\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "time1"}, "id_varname": {"description": "Name of the station ID variable (\"identification\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "identification"}, "numscale": {"description": "Scaling factor to apply to the input data (1 by default)", "type": "number", "default": 1}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "BCs_template_field": {"title": "BCs/template/field", "description": "Template plugin for BCs", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "BCs"}, "version": {"description": "plugin version", "const": "template"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "dummy_arg": {"description": "document here the argument (\"let's say it's not mandatory\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "let's say it's not mandatory"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "CHIMERE_icbc_field": {"title": "CHIMERE/icbc/field", "description": "CHIMERE INI_CONCS and BOUN_CONCS netcdf files", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CHIMERE"}, "version": {"description": "plugin version", "const": "icbc"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/CHIMERE_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "comp_type": {"description": "Type of conditions to write", "enum": ["inicond", "latcond", "topcond"]}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "ECMWF_grib2_field": {"title": "ECMWF/grib2/field", "description": "ECMWF grib2 data files", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "ECMWF"}, "version": {"description": "plugin version", "const": "grib2"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "decumul": {"description": "activates decumulation (False by default)", "type": "boolean", "default": false}, "cumul_length": {"description": "if cumulation length differ from 12h, in hour (12 by default)", "type": "integer", "default": 12}, "surface": {"description": "for treating 2D fields (e.g. surface variables) (False by default)", "type": "boolean", "default": false}, "expand_psurf": {"description": "Expand surface pressure to full pressure field (False by default)", "type": "boolean", "default": false}, "pressure_thickness": {"description": "Returns the pressure thickness of each level. To be used with `expand_psurf` (False by default)", "type": "boolean", "default": false}, "domain_file": {"description": "Name of the file to use to deduce the domain, if different from the file format specified for data reading", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "delta_tolerance": {"description": "Tolerance for getting the closest valid file.The value is multiplied by `file_freq`. (1 by default)", "type": "integer", "default": 1}, "filter_by_keys": {"description": "Can filter only some variables following some keys:", "type": "object", "additionalProperties": false, "properties": {"edition": {"description": "Filter by edition.", "type": "integer"}}}, "dir_hcoord_corner": {"description": "Directory containing ``file_hcoord_corner``. Use this argument if the grid is octahedral (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "file_hcoord_corner": {"description": "`csv` file giving the coordinates of grid corners for octahedral grids (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "gridded_netcdf_std_field": {"title": "gridded_netcdf/std/field", "description": "Gridded NetCDF initial conditions", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "gridded_netcdf"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "dir_vcoord": {"description": "Directory containing ``file_vcoord``. Use this argument if the vertical coordinates are not in ``file`` (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "file_vcoord": {"description": "NetCDF file containing the vertical coordinates. Use this argument if the vertical coordinates are not in ``file``", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "vertical_coord": {"description": "Read the domain's vertical levels if this parameter is used. Should be 'mids' if the vertical coordinate represents the levels mid-points or 'bounds' if the vertical coordinate represents the levels boundaries. If this parameter is not used a domain single vertical level is created", "enum": ["mids", "bounds"]}, "vertical_dim_name": {"description": "Vertical dimension name in ``file`` or ``file_vcoord`` (\"lev\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "lev"}, "vertical_dim_type": {"description": "Vertical dimension type (\"sigma_pressure\" by default)", "enum": ["sigma_pressure", "heights"], "default": "sigma_pressure"}, "sigma_a_var_name": {"description": "'sigma a' variable name in ``file`` or ``file_vcoord`` (\"ap\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "ap"}, "sigma_b_var_name": {"description": "'sigma b' variable name in ``file`` or ``file_vcoord`` (\"bp\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "bp"}, "pressure_unit": {"description": "pressure units if different from ``units`` attributes in ``sigma `a` variable, should be ``'Pa'`` or ``'hPa'``", "enum": ["Pa", "hPa"]}, "reverse_vcoord": {"description": "reverse the vertical coordinate or not (False by default)", "type": "boolean", "default": false}, "latitude_varname": {"description": "Latitude coordinate variable name in ``file``. If this argument is not provided, the latitude coordinate is found by its ``standard_name`` or ``long_name`` attribute (which should be ``'latitude'``). (\"latitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "latitude"}, "longitude_varname": {"description": "Longitude coordinate variable name in ``file``. If this argument is not provided, the longitude coordinate is found by its ``standard_name`` or ``long_name`` attribute (which should be ``'longitude'``). (\"longitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "longitude"}, "latitude_dimname": {"description": "Latitude dimension name in ``file``. (\"latitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "latitude"}, "longitude_dimname": {"description": "Longitude dimension name in ``file``. (\"longitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "longitude"}, "use_corners": {"description": "`True` if the longitudes and latitudes are used to defined the corners instead of gridcell centers (False by default)", "type": "boolean", "default": false}, "extend_lat": {"description": "Extend corner latitudes by one cell if `nlat_corner != nlat + 1` (False by default)", "type": "boolean", "default": false}, "extend_lon": {"description": "Extend corner longitudes by one cell if `nlon_corner != nlon + 1` (False by default)", "type": "boolean", "default": false}, "lat_min": {"description": "Minimum latitude (-90.0 by default)", "type": "number", "default": -90.0}, "lat_max": {"description": "Maximum latitude (90.0 by default)", "type": "number", "default": 90.0}, "delta_lat": {"description": "Skip the reading/computation of latitude bounds and use regular gridcells with a size of ``delta_lat``. ``delta_lat`` should divide ``lat_max - lat_min`` and be coherent with the NetCDF file dimensions.", "type": "number"}, "lon_min": {"description": "Minimum longitude (-180.0 by default)", "type": "number", "default": -180.0}, "lon_max": {"description": "Maximum longitude (180.0 by default)", "type": "number", "default": 180.0}, "delta_lon": {"description": "Skip the reading/computation of longitude bounds and use regular gridcells with a size of ``delta_lon``. ``delta_lon`` should divide ``lon_max - lon_min`` and be coherent with the NetCDF file dimensions.", "type": "number"}, "regular_lon": {"description": "Overwrites the default behaviour of regular domain in zonal direction to compute corners. In this case, use the first and last delta to extent East and West (True by default)", "type": "boolean", "default": true}, "regular_lat": {"description": "Overwrites the default behaviour of regular domain in meridional direction to compute corners. In this case, use the first and last delta to extent South and North (True by default)", "type": "boolean", "default": true}, "force_centered_lat": {"description": "Force grid cells latitude to be centered between thier corners. Grid cells centers and corners will be read normally then the grid cells centers latitudes will be adjusted. (False by default)", "type": "boolean", "default": false}, "force_centered_lon": {"description": "Force grid cells longitude to be centered between thier corners. Grid cells centers and corners will be read normally then the grid cells centers longitudes will be adjusted. (False by default)", "type": "boolean", "default": false}, "sort_lat": {"description": "Sort latitudes in ascending order (True by default)", "type": "boolean", "default": true}, "sort_lon": {"description": "Sort longitudes in ascending order (True by default)", "type": "boolean", "default": true}, "drop_variables": {"description": "List of variables to drop when reading the NetCDF files. This allows issues of `MissingDimensionErrors` as documented in, e.g., https://stackoverflow.com/questions/55109481/how-to-import-netcdf4-file-with-xarray-when-index-names-have-multiple-dimensions ([] by default)", "type": "array", "default": []}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "ICON-ART_icbc_field": {"title": "ICON-ART/icbc/field", "description": "ICON-ART initial and lateral boundary conditions", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "ICON-ART"}, "version": {"description": "plugin version", "const": "icbc"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/ICON-ART_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "comp_type": {"description": "Type of conditions to fetch", "enum": ["inicond", "lbc", "background"]}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": ["comp_type"], "additionalProperties": false}, "LMDZ_chemfield_field": {"title": "LMDZ/chemfield/field", "description": "LMDz chemical field", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "chemfield"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ_chemfield-dynamico_field": {"title": "LMDZ/chemfield-dynamico/field", "description": "LMDz chemical field on icosahedral grid", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "chemfield-dynamico"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_dynamico_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "surface_only": {"description": "Set to ``true`` if the field has no vertical dimension (for surface deposition velocity example) (False by default)", "type": "boolean", "default": false}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ_chemfield-regular_field": {"title": "LMDZ/chemfield-regular/field", "description": "LMDz chemical field on regular lat-lon grid", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "chemfield-regular"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_regular_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "surface_only": {"description": "Set to ``true`` if the field has no vertical dimension (for surface deposition velocity example) (False by default)", "type": "boolean", "default": false}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ_ic_field": {"title": "LMDZ/ic/field", "description": "LMDz restart concentrations", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "ic"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_std_domain"}, "chemistry": {"$ref": "#/$defs/CHIMERE_gasJtab_chemistry"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "restart_id": {"description": "restart id", "type": "integer"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ_inicond-dynamico_field": {"title": "LMDZ/inicond-dynamico/field", "description": "LMDz initial condition for mixing ratio on icosahedral grid", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "inicond-dynamico"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_dynamico_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ_inicond-regular_field": {"title": "LMDZ/inicond-regular/field", "description": "LMDz initial condition for mixing ratio on regular lat-lon grid", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "inicond-regular"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_regular_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ-trajq_netcdf_field": {"title": "LMDZ-trajq/netcdf/field", "description": "LMDz trajq files", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ-trajq"}, "version": {"description": "plugin version", "const": "netcdf"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ_photochem_field": {"title": "LMDZ/photochem/field", "description": "LMDz photorates", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "photochem"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ_prescrconcs_field": {"title": "LMDZ/prescrconcs/field", "description": "LMDz prescribed concentrations", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "prescrconcs"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ_prodloss3d_field": {"title": "LMDZ/prodloss3d/field", "description": "LMDz production and loss fields", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "prodloss3d"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "CAMS_netcdf_field": {"title": "CAMS/netcdf/field", "description": "CAMS netcdf files", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CAMS"}, "version": {"description": "plugin version", "const": "netcdf"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "aibi_name": {"description": "To choose ai/bi vertical coordinate names instead of hyam and hybm; this depends on the version of the CAMS product to be read (False by default)", "type": "boolean", "default": false}, "aibi_file": {"description": "vertical coordinates this depends on the version of the CAMS product to be read", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "flip_level": {"description": "Flip data in the vertical dimension (False by default)", "type": "boolean", "default": false}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "NOAA_glob_avg_field": {"title": "NOAA/glob_avg/field", "description": "Global averages from NOAA data", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "NOAA"}, "version": {"description": "plugin version", "const": "glob_avg"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "oldLMDZ_ic_field": {"title": "oldLMDZ/ic/field", "description": "LMDz 4 72x96x19 grid restart", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "oldLMDZ"}, "version": {"description": "plugin version", "const": "ic"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "oldLMDZ_photochem_field": {"title": "oldLMDZ/photochem/field", "description": "LMDz 4 72x96x19 grid photorates", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "oldLMDZ"}, "version": {"description": "plugin version", "const": "photochem"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "oldLMDZ_prescrconcs_field": {"title": "oldLMDZ/prescrconcs/field", "description": "LMDz 4 72x96x19 grid prescribed concentrations", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "oldLMDZ"}, "version": {"description": "plugin version", "const": "prescrconcs"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "TM5_ic_field": {"title": "TM5/ic/field", "description": "TM5 initial condition files", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TM5"}, "version": {"description": "plugin version", "const": "ic"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/dummy_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "wrfchem_icbc_field": {"title": "wrfchem/icbc/field", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "wrfchem"}, "version": {"description": "plugin version", "const": "icbc"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/wrfchem_std_domain"}, "chemistry": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "forced_varname": {"description": "Variable name to use in initial condition files if different from what CIF call it with", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "comp_type": {"description": "Type of conditions (\"\" by default)", "enum": ["inicond", "latcond"], "default": ""}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "CAMSREG_netcdf_flux": {"title": "CAMSREG/netcdf/flux", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CAMSREG"}, "version": {"description": "plugin version", "const": "netcdf"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "point_sources": {"description": "enables vertical projection (False by default)", "type": "boolean", "default": false}, "dir_profiles": {"description": "Directory where the time and vertical profiles are.Files should be:     TNO_height-distribution_GNFR.csv,     timeprofiles-month-in-year_GNFR.csv,     timeprofiles-day-in-week_GNFR.csv,     timeprofiles-hour-in-day_GNFR.csv", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "cat_select": {"description": "List of TNO categories to use. By Default all categories are used (False by default)", "enum": [], "default": false}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": ["dir_profiles"], "additionalProperties": false}, "CMEMS_std_flux": {"title": "CMEMS/std/flux", "description": "Copernicus Marine Service CO2 fluxes", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CMEMS"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "CarbonMonitor_netcdf_flux": {"title": "CarbonMonitor/netcdf/flux", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CarbonMonitor"}, "version": {"description": "plugin version", "const": "netcdf"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "dir_profiles": {"description": "Directory where the time and vertical profiles are files should be:     TNO_height-distribution_GNFR.csv,     timeprofiles-month-in-year_GNFR.csv,     timeprofiles-day-in-week_GNFR.csv,     timeprofiles-hour-in-day_GNFR.csv (False by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": false}, "cat_select": {"description": "List of Carbon Monitor categories to use (in 0:7 range). By Default all categories are used ([0, 1, 2, 3, 4, 5, 6, 7] by default)", "enum": [], "default": [0, 1, 2, 3, 4, 5, 6, 7]}, "dummy_arg": {"description": "document here the argument (\"let's say it's not mandatory\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "let's say it's not mandatory"}, "lon_min": {"description": "Minimum longitude (-180 by default)", "type": "number", "default": -180}, "lon_max": {"description": "Maximum longitude (180 by default)", "type": "number", "default": 180}, "lat_min": {"description": "Minimum latitude (-90 by default)", "type": "number", "default": -90}, "lat_max": {"description": "Maximum latgitude (90 by default)", "type": "number", "default": 90}, "nlon": {"description": "Number of grid cells in the zonal direction (90 by default)", "type": "integer", "default": 90}, "nlat": {"description": "Number of grid cells in the meridional direction (45 by default)", "type": "integer", "default": 45}, "nlev": {"description": "Number of levels in the data (1 by default)", "type": "integer", "default": 1}, "average_value": {"description": "Average value for the generation of random values (1 by default)", "type": "number", "default": 1}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "EDGARv8_time_profile_flux": {"title": "EDGARv8/time_profile/flux", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "EDGARv8"}, "version": {"description": "plugin version", "const": "time_profile"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "dir_profiles": {"description": "Directory where the time profiles are.Files should be in:  example /home/satellites14/afortems/CIF-EYECLIMA-CO2/EDGARv8/auxiliary_tables/ (False by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": false}, "profil_select": {"description": "type of temporal profil to use for EDGARv8 .  Alternative could be found in read module (False by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": false}, "global_mask": {"description": "Edgar Global mask of the countries, A3 type names, example: /home/satellites8/amartine/Fluxes/EDGARv8/EDGAR_country_mask.nc (False by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": false}, "truncated": {"description": "If the domain is not global (False by default)", "type": "boolean", "default": false}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "GCP_1x1_flux": {"title": "GCP/1x1/flux", "description": "Global Carbon Fluxes", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "GCP"}, "version": {"description": "plugin version", "const": "1x1"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "is_climato": {"description": "``True`` if is a climatology (False by default)", "type": "boolean", "default": false}, "contact_person": {"description": "Contact person who created the files", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "contact_mail": {"description": "Contact mail", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "References": {"description": "References (papers, websites) to the original data", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_longname": {"description": "Long name of the data", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "GCP_N2O_1x1_flux": {"title": "GCP_N2O/1x1/flux", "description": "GCP at 1 degree x 1 degree", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "GCP_N2O"}, "version": {"description": "plugin version", "const": "1x1"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "dummy_arg": {"description": "document here the argument (\"let's say it's not mandatory\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "let's say it's not mandatory"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "GFED4_std_flux": {"title": "GFED4/std/flux", "description": "Global Fire Emission Database v4", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "GFED4"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "temporal_fraction": {"description": "Temporal fraction to use to generate emissions. (\"diurnal\" by default)", "enum": ["monthly", "daily", "diurnal"], "default": "diurnal"}, "file_emisfactors": {"description": "Full path to the file :bash:`GFED4_Emission_Factors.txt`.  .. warning ::  This parameter is not mandatory. If not specified, dry matter values will be directly read and not converted. In that case, make sure to have a :bash:`unit_conversion` transform specified in your yaml."}, "ecosystems": {"description": "List of ecosystems to include in the computed fluxes (['SAVA', 'BORF', 'TEMF', 'DEFO', 'PEAT', 'AGRI'] by default)", "type": "array", "default": ["SAVA", "BORF", "TEMF", "DEFO", "PEAT", "AGRI"]}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "GridFED_std_flux": {"title": "GridFED/std/flux", "description": "GridFED emission database", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "GridFED"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "group_name": {"description": "Group (indicating the species) to use in the files (\"CO2\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "CO2"}, "sectors": {"description": "List of sectors to add to produce outputs (['OIL', 'GAS', 'COAL', 'CEMENT', 'BUNKER'] by default)", "type": "array", "default": ["OIL", "GAS", "COAL", "CEMENT", "BUNKER"]}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "TNO_netcdf_flux": {"title": "TNO/netcdf/flux", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TNO"}, "version": {"description": "plugin version", "const": "netcdf"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "point_sources": {"description": "enables vertical projection (False by default)", "type": "boolean", "default": false}, "dir_profiles": {"description": "Directory where the time and vertical profiles are.Files should be:     TNO_height-distribution_GNFR.csv,     timeprofiles-month-in-year_GNFR.csv,     timeprofiles-day-in-week_GNFR.csv,     timeprofiles-hour-in-day_GNFR.csv (False by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": false}, "cat_select": {"description": "List of TNO categories to use. By Default all categories are used (False by default)", "enum": [], "default": false}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "VPRM1km_netcdf_flux": {"title": "VPRM1km/netcdf/flux", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "VPRM1km"}, "version": {"description": "plugin version", "const": "netcdf"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "corners_file": {"description": "file of the corner coordinates, assumed to be stored in the same directory as data (\"CoCO2_VPRM_areas.nc\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "CoCO2_VPRM_areas.nc"}, "regular": {"description": "True for regular lat lon as CoCO2 VPRM fluxes (default) False for irregular lat lon as CHE VPRM fluxes (True by default)", "type": "boolean", "default": true}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "VPRM_netcdf_flux": {"title": "VPRM/netcdf/flux", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "VPRM"}, "version": {"description": "plugin version", "const": "netcdf"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "corners_file": {"description": "file of the corner coordinates, assumed to be stored in the same directory as data (\"corners_5km.nc\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "corners_5km.nc"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "becker_ocean_flux": {"title": "becker/ocean/flux", "description": "Becker coastal fluxes", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "becker"}, "version": {"description": "plugin version", "const": "ocean"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "CHIMERE_AEMISSIONS_flux": {"title": "CHIMERE/AEMISSIONS/flux", "description": "CHIMERE AEMISSIONS and BEMISSIONS netcdf files", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CHIMERE"}, "version": {"description": "plugin version", "const": "AEMISSIONS"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/CHIMERE_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "emis_type": {"description": "type of emission files (\"anthro\" by default)", "enum": ["anthro", "bio"], "default": "anthro"}, "diurnal_factor": {"description": "Scale the diurnal factor of the fluxes while keeping the same daily total fluxes.  .. warning::  This feature is EXPERIMENTAL!!!"}, "ncformat": {"description": "NETCDF4 or NETCDF3_CLASSIC (\"NETCDF4\" by default)", "enum": ["NETCDF4", "NETCDF3_CLASSIC"], "default": "NETCDF4"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "dummy_nc_flux": {"title": "dummy/nc/flux", "description": "Dummy model - NetCDF", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "dummy"}, "version": {"description": "plugin version", "const": "nc"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/dummy_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "dummy_txt_flux": {"title": "dummy/txt/flux", "description": "Dummy model - text", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "dummy"}, "version": {"description": "plugin version", "const": "txt"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/dummy_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "period": {"description": "Frequency of the original fluxes (\"1D\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1D"}, "freq": {"description": "Frequency of the original fluxes (\"1D\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1D"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "EDGAR_v5_flux": {"title": "EDGAR/v5/flux", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "EDGAR"}, "version": {"description": "plugin version", "const": "v5"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "closest_year": {"description": "If the correct year is not available, use the closest one (False by default)", "type": "boolean", "default": false}, "truncated": {"description": "If the domain is not global (False by default)", "type": "boolean", "default": false}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "FLEXPART_nc_flux": {"title": "FLEXPART/nc/flux", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "FLEXPART"}, "version": {"description": "plugin version", "const": "nc"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/FLEXPART_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "latname_flx": {"description": "Name of the latitude variable (\"latitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "latitude"}, "lonname_flx": {"description": "Name of the longitude variable (\"longitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "longitude"}, "timename_flx": {"description": "Name of the time variable (\"time\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "time"}, "crop_region": {"description": "Crop input to the regional extend (True by default)", "type": "boolean", "default": true}, "convert_to_flux": {"description": "Convert to ng/m2/s (True by default)", "type": "boolean", "default": true}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "flux_template_flux": {"title": "flux/template/flux", "description": "Template plugin for fluxes", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "flux"}, "version": {"description": "plugin version", "const": "template"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "dummy_arg": {"description": "document here the argument (\"let's say it's not mandatory\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "let's say it's not mandatory"}, "lon_min": {"description": "Minimum longitude (-180 by default)", "type": "number", "default": -180}, "lon_max": {"description": "Maximum longitude (180 by default)", "type": "number", "default": 180}, "lat_min": {"description": "Minimum latitude (-90 by default)", "type": "number", "default": -90}, "lat_max": {"description": "Maximum latgitude (90 by default)", "type": "number", "default": 90}, "nlon": {"description": "Number of grid cells in the zonal direction (90 by default)", "type": "integer", "default": 90}, "nlat": {"description": "Number of grid cells in the meridional direction (45 by default)", "type": "integer", "default": 45}, "nlev": {"description": "Number of levels in the data (1 by default)", "type": "integer", "default": 1}, "average_value": {"description": "Average value for the generation of random values (1 by default)", "type": "number", "default": 1}, "std_value": {"description": "Standard deviation value for the generation of random values (1 by default)", "type": "number", "default": 1}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "gridded_netcdf_std_flux": {"title": "gridded_netcdf/std/flux", "description": "Gridded NetCDF surface flux", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "gridded_netcdf"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "is_climatology": {"description": "Set this argument to ``True`` for climatological data (i.e. year-independent data) (False by default)", "type": "boolean", "default": false}, "var_freq": {"description": "The time frequency of the flux variable within the NetCDF files. Should be one of Pandas' `offset aliases <https://pandas.pydata.org/docs/user_guide/timeseries.html#timeseries-offset-aliases>`_ which will be passed to the `pandas.DatetimeIndex.to_period <https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DatetimeIndex.to_period.html>`_ method. This argument may not be needed is the time frequency in the NetCDF files is regular, ex: 'D' for daily values", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "force_var_freq": {"description": "Force using `var_freq` instead of the time dimension. (False by default)", "type": "boolean", "default": false}, "remove_duplicates": {"description": "Remove duplicate files matching the prescribed pattern (True by default)", "type": "boolean", "default": true}, "time_varname": {"description": "Time coordinate variable name in ``file``. If this argument is not provided, the time coordinate is found by its ``standard_name`` or ``long_name`` (which should be ``'time'``). If the time coordinate cannot be found by its attributes, the variable named ``'time'`` will be used if it exists.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "period_varname": {"description": "Period variable, used to define time intervals valid for each value in the dataset", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "time_coordinate": {"description": "Name of the time coordinate if different from the time variable", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "time_dimname": {"description": "Time dimension name in ``file``. (\"time\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "time"}, "time_midpoint": {"description": "Whether the time variable defines the beginning of each period of validity of the data, or the midpoint. `True` for midpoint. (False by default)", "type": "boolean", "default": false}, "time_endpoint": {"description": "Whether the time variable defines the beginning of each period of validity of the data, or the endpoint. `True` for endpoint. (False by default)", "type": "boolean", "default": false}, "time_unit": {"description": "NetCDF standard time unit, if not specified in the file. Can contain a date format (ex: ``\"%Y-%m-%d``) which will be decoded with the current file datetime. Cannot be used along side the ``time_format`` argument", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "time_calendar": {"description": "Overwrite the calendar as specified in the files", "enum": ["gregorian", "noleap"]}, "time_format": {"description": "The strftime to parse the time coordinate values, e.g. ``\"%Y%m%d\"``. This argument is passed to the `pandas.to_datetime <https://pandas.pydata.org/docs/reference/api/pandas.to_datetime.html>`_ method's ``format`` keyword argument. Cannot be used along side the ``time_unit`` argument", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "add_time_coord": {"description": "Set this argument to ``True`` if there is no time coordinate. in the NetCDF file. Timestamps will be added acording to the ``var_freq`` or ``file_freq`` argument. Use the ``var_freq`` argument only if there is a single timestamp per file. When the ``var_freq`` argument is used the time dimension is found with the ``time_dimname`` argument. Cannot be used with the ``is_climatology`` argument. (False by default)", "type": "boolean", "default": false}, "sum_along_dim": {"description": "Sum the data along a given dimension (other than `lon`, `lat`, `lev` and `time`)", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "group_name": {"description": "Name of the NetCDF group to read in the NetCDF file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "sum_variables": {"description": "If several variables are specified in varname, force them to be summed (False by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": false}, "slice_dimension": {"description": "Keep only slices over some dimensions. This is useful when the data hqs more dimensions than ones corresponding to (time, level, lat, lon). It is possible to slice over given dimensions with the convention `slice(slice_min, slice_max, slice_freq)`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "Name of a dimension.", "type": "object", "additionalProperties": false, "properties": {"slice_min": {"description": "Start for the slice", "type": "integer"}, "slice_max": {"description": "End for the slice", "type": "integer"}, "slice_freq": {"description": "Frequency for the slice", "type": "integer"}, "method": {"description": "Method for the slicing (\"sum\" by default)", "enum": ["sum", "avg"], "default": "sum"}}}}}, "full_log": {"description": "Do not limit the amount of lines for the fetch log (False by default)", "type": "boolean", "default": false}, "latitude_varname": {"description": "Latitude coordinate variable name in ``file``. If this argument is not provided, the latitude coordinate is found by its ``standard_name`` or ``long_name`` attribute (which should be ``'latitude'``). (\"latitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "latitude"}, "longitude_varname": {"description": "Longitude coordinate variable name in ``file``. If this argument is not provided, the longitude coordinate is found by its ``standard_name`` or ``long_name`` attribute (which should be ``'longitude'``). (\"longitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "longitude"}, "latitude_dimname": {"description": "Latitude dimension name in ``file``. (\"latitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "latitude"}, "longitude_dimname": {"description": "Longitude dimension name in ``file``. (\"longitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "longitude"}, "use_corners": {"description": "`True` if the longitudes and latitudes are used to defined the corners instead of gridcell centers (False by default)", "type": "boolean", "default": false}, "extend_lat": {"description": "Extend corner latitudes by one cell if `nlat_corner != nlat + 1` (False by default)", "type": "boolean", "default": false}, "extend_lon": {"description": "Extend corner longitudes by one cell if `nlon_corner != nlon + 1` (False by default)", "type": "boolean", "default": false}, "lat_min": {"description": "Minimum latitude (-90.0 by default)", "type": "number", "default": -90.0}, "lat_max": {"description": "Maximum latitude (90.0 by default)", "type": "number", "default": 90.0}, "delta_lat": {"description": "Skip the reading/computation of latitude bounds and use regular gridcells with a size of ``delta_lat``. ``delta_lat`` should divide ``lat_max - lat_min`` and be coherent with the NetCDF file dimensions.", "type": "number"}, "lon_min": {"description": "Minimum longitude (-180.0 by default)", "type": "number", "default": -180.0}, "lon_max": {"description": "Maximum longitude (180.0 by default)", "type": "number", "default": 180.0}, "delta_lon": {"description": "Skip the reading/computation of longitude bounds and use regular gridcells with a size of ``delta_lon``. ``delta_lon`` should divide ``lon_max - lon_min`` and be coherent with the NetCDF file dimensions.", "type": "number"}, "regular_lon": {"description": "Overwrites the default behaviour of regular domain in zonal direction to compute corners. In this case, use the first and last delta to extent East and West (True by default)", "type": "boolean", "default": true}, "regular_lat": {"description": "Overwrites the default behaviour of regular domain in meridional direction to compute corners. In this case, use the first and last delta to extent South and North (True by default)", "type": "boolean", "default": true}, "force_centered_lat": {"description": "Force grid cells latitude to be centered between thier corners. Grid cells centers and corners will be read normally then the grid cells centers latitudes will be adjusted. (False by default)", "type": "boolean", "default": false}, "force_centered_lon": {"description": "Force grid cells longitude to be centered between thier corners. Grid cells centers and corners will be read normally then the grid cells centers longitudes will be adjusted. (False by default)", "type": "boolean", "default": false}, "sort_lat": {"description": "Sort latitudes in ascending order (True by default)", "type": "boolean", "default": true}, "sort_lon": {"description": "Sort longitudes in ascending order (True by default)", "type": "boolean", "default": true}, "drop_variables": {"description": "List of variables to drop when reading the NetCDF files. This allows issues of `MissingDimensionErrors` as documented in, e.g., https://stackoverflow.com/questions/55109481/how-to-import-netcdf4-file-with-xarray-when-index-names-have-multiple-dimensions ([] by default)", "type": "array", "default": []}, "dir_vcoord": {"description": "Directory containing ``file_vcoord``. Use this argument if the vertical coordinates are not in ``file`` (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "file_vcoord": {"description": "NetCDF file containing the vertical coordinates. Use this argument if the vertical coordinates are not in ``file``", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "vertical_coord": {"description": "Read the domain's vertical levels if this parameter is used. Should be 'mids' if the vertical coordinate represents the levels mid-points or 'bounds' if the vertical coordinate represents the levels boundaries. If this parameter is not used a domain single vertical level is created", "enum": ["mids", "bounds"]}, "vertical_dim_name": {"description": "Vertical dimension name in ``file`` or ``file_vcoord`` (\"lev\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "lev"}, "vertical_dim_type": {"description": "Vertical dimension type (\"sigma_pressure\" by default)", "enum": ["sigma_pressure", "heights"], "default": "sigma_pressure"}, "sigma_a_var_name": {"description": "'sigma a' variable name in ``file`` or ``file_vcoord`` (\"ap\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "ap"}, "sigma_b_var_name": {"description": "'sigma b' variable name in ``file`` or ``file_vcoord`` (\"bp\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "bp"}, "pressure_unit": {"description": "pressure units if different from ``units`` attributes in ``sigma `a` variable, should be ``'Pa'`` or ``'hPa'``", "enum": ["Pa", "hPa"]}, "reverse_vcoord": {"description": "reverse the vertical coordinate or not (False by default)", "type": "boolean", "default": false}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "ICON-ART_sflx_flux": {"title": "ICON-ART/sflx/flux", "description": "ICON-ART surface fluxes", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "ICON-ART"}, "version": {"description": "plugin version", "const": "sflx"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/ICON-ART_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "tfactors_hod_file": {"description": "Hour-of-day temporal scaling factors."}, "tfactors_dow_file": {"description": "Day-of-week temporal scaling factors."}, "tfactors_moy_file": {"description": "Month-of-year temporal scaling factors."}, "tfactors_hoy_file": {"description": "Hour-of-year temporal scaling factors."}, "tfactors_oem_group": {"description": "Name of the OEM group to fetch for temporal scaling factors."}, "vfactors_file": {"description": "Vertical scaling factors."}, "vfactors_oem_group": {"description": "Name of the OEM group to fetch for vertical scaling factors."}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ_bin_flux": {"title": "LMDZ/bin/flux", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "bin"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ_netcdf-dynamico_flux": {"title": "LMDZ/netcdf-dynamico/flux", "description": "LMDZ surface fluxes on icosahedral grid", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "netcdf-dynamico"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_dynamico_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ_netcdf-regular_flux": {"title": "LMDZ/netcdf-regular/flux", "description": "LMDZ surface fluxes on regular lat-lon grid", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "netcdf-regular"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_regular_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ_sflx_flux": {"title": "LMDZ/sflx/flux", "description": "LMDZ surface fluxes", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "sflx"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "orchidee_std_flux": {"title": "orchidee/std/flux", "description": "ORCHIDEE surface fluxes", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "orchidee"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "timeresol": {"description": "Temporal resolution of ORCHIDEE fluxes (\"3h\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "3h"}, "interpol_resolution": {"description": "Interpolate to a given temporal resolution. This is temporary for test."}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "point_sources_std_flux": {"title": "point_sources/std/flux", "description": "Fluxes from csv-formatted point sources", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "point_sources"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "dummy_arg": {"description": "document here the argument (\"let's say it's not mandatory\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "let's say it's not mandatory"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "TM5_std_flux": {"title": "TM5/std/flux", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TM5"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/dummy_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "exp_conversion": {"description": "Apply the exponential conversion if fluxes stored as non-linear variable (False by default)", "default": false}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "gridded_netcdf_unstructured_flux": {"title": "gridded_netcdf/unstructured/flux", "description": "Unstructured grid NetCDF surface flux", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "gridded_netcdf"}, "version": {"description": "plugin version", "const": "unstructured"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "is_climatology": {"description": "Set this argument to ``True`` for climatological data (i.e. year-independent data) (False by default)", "type": "boolean", "default": false}, "var_freq": {"description": "The time frequency of the flux variable within the NetCDF files. Should be one of Pandas' `offset aliases <https://pandas.pydata.org/docs/user_guide/timeseries.html#timeseries-offset-aliases>`_ which will be passed to the `pandas.DatetimeIndex.to_period <https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DatetimeIndex.to_period.html>`_ method. This argument may not be needed is the time frequency in the NetCDF files is regular, ex: 'D' for daily values", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "force_var_freq": {"description": "Force using `var_freq` instead of the time dimension. (False by default)", "type": "boolean", "default": false}, "remove_duplicates": {"description": "Remove duplicate files matching the prescribed pattern (True by default)", "type": "boolean", "default": true}, "time_varname": {"description": "Time coordinate variable name in ``file``. If this argument is not provided, the time coordinate is found by its ``standard_name`` or ``long_name`` (which should be ``'time'``). If the time coordinate cannot be found by its attributes, the variable named ``'time'`` will be used if it exists.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "period_varname": {"description": "Period variable, used to define time intervals valid for each value in the dataset", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "time_coordinate": {"description": "Name of the time coordinate if different from the time variable", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "time_dimname": {"description": "Time dimension name in ``file``. (\"time\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "time"}, "time_midpoint": {"description": "Whether the time variable defines the beginning of each period of validity of the data, or the midpoint. `True` for midpoint. (False by default)", "type": "boolean", "default": false}, "time_endpoint": {"description": "Whether the time variable defines the beginning of each period of validity of the data, or the endpoint. `True` for endpoint. (False by default)", "type": "boolean", "default": false}, "time_unit": {"description": "NetCDF standard time unit, if not specified in the file. Can contain a date format (ex: ``\"%Y-%m-%d``) which will be decoded with the current file datetime. Cannot be used along side the ``time_format`` argument", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "time_calendar": {"description": "Overwrite the calendar as specified in the files", "enum": ["gregorian", "noleap"]}, "time_format": {"description": "The strftime to parse the time coordinate values, e.g. ``\"%Y%m%d\"``. This argument is passed to the `pandas.to_datetime <https://pandas.pydata.org/docs/reference/api/pandas.to_datetime.html>`_ method's ``format`` keyword argument. Cannot be used along side the ``time_unit`` argument", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "add_time_coord": {"description": "Set this argument to ``True`` if there is no time coordinate. in the NetCDF file. Timestamps will be added acording to the ``var_freq`` or ``file_freq`` argument. Use the ``var_freq`` argument only if there is a single timestamp per file. When the ``var_freq`` argument is used the time dimension is found with the ``time_dimname`` argument. Cannot be used with the ``is_climatology`` argument. (False by default)", "type": "boolean", "default": false}, "sum_along_dim": {"description": "Sum the data along a given dimension (other than `lon`, `lat`, `lev` and `time`)", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "group_name": {"description": "Name of the NetCDF group to read in the NetCDF file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "sum_variables": {"description": "If several variables are specified in varname, force them to be summed (False by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": false}, "slice_dimension": {"description": "Keep only slices over some dimensions. This is useful when the data hqs more dimensions than ones corresponding to (time, level, lat, lon). It is possible to slice over given dimensions with the convention `slice(slice_min, slice_max, slice_freq)`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "Name of a dimension.", "type": "object", "additionalProperties": false, "properties": {"slice_min": {"description": "Start for the slice", "type": "integer"}, "slice_max": {"description": "End for the slice", "type": "integer"}, "slice_freq": {"description": "Frequency for the slice", "type": "integer"}, "method": {"description": "Method for the slicing (\"sum\" by default)", "enum": ["sum", "avg"], "default": "sum"}}}}}, "latitude_varname": {"description": "Latitude coordinate variable name in ``file``. If this argument is not provided, the latitude coordinate is found by its ``standard_name`` or ``long_name`` attribute (which should be ``'latitude'``). (\"latitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "latitude"}, "longitude_varname": {"description": "Longitude coordinate variable name in ``file``. If this argument is not provided, the longitude coordinate is found by its ``standard_name`` or ``long_name`` attribute (which should be ``'longitude'``). (\"longitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "longitude"}, "latitude_bounds_varname": {"description": "Latitude bounds (vertices) coordinate variable name in ``file``. If this argument is not provided, the latitude coordinate is found with the ``bounds`` attribute of the latitude variable.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "longitude_bounds_varname": {"description": "longitude bounds (vertices) coordinate variable name in ``file``. If this argument is not provided, the longitude coordinate is found with the ``bounds`` attribute of the longitude variable.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_vcoord": {"description": "Directory containing ``file_vcoord``. Use this argument if the vertical coordinates are not in ``file`` (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "file_vcoord": {"description": "NetCDF file containing the vertical coordinates. Use this argument if the vertical coordinates are not in ``file``", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "vertical_coord": {"description": "Read the domain's vertical levels if this parameter is used. Should be 'mids' if the vertical coordinate represents the levels mid-points or 'bounds' if the vertical coordinate represents the levels boundaries. If this parameter is not used a domain single vertical level is created", "enum": ["mids", "bounds"]}, "vertical_dim_name": {"description": "Vertical dimension name in ``file`` or ``file_vcoord`` (\"lev\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "lev"}, "vertical_dim_type": {"description": "Vertical dimension type (\"sigma_pressure\" by default)", "enum": ["sigma_pressure", "heights"], "default": "sigma_pressure"}, "sigma_a_var_name": {"description": "'sigma a' variable name in ``file`` or ``file_vcoord`` (\"ap\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "ap"}, "sigma_b_var_name": {"description": "'sigma b' variable name in ``file`` or ``file_vcoord`` (\"bp\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "bp"}, "pressure_unit": {"description": "pressure units if different from ``units`` attributes in ``sigma `a` variable, should be ``'Pa'`` or ``'hPa'``", "enum": ["Pa", "hPa"]}, "reverse_vcoord": {"description": "reverse the vertical coordinate or not (False by default)", "type": "boolean", "default": false}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "wrfchem_std_flux": {"title": "wrfchem/std/flux", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "wrfchem"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/wrfchem_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "CHIMERE_std_meteo": {"title": "CHIMERE/std/meteo", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CHIMERE"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "meteo"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/CHIMERE_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "ncformat": {"description": "NETCDF4 or NETCDF3_CLASSIC (\"NETCDF4\" by default)", "enum": ["NETCDF4", "NETCDF3_CLASSIC"], "default": "NETCDF4"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "dummy_csv_meteo": {"title": "dummy/csv/meteo", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "dummy"}, "version": {"description": "plugin version", "const": "csv"}, "type": {"description": "plugin type", "const": "meteo"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/dummy_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "seed": {"description": "Use random generation of meteo parameters (False by default)", "type": "boolean", "default": false}, "seed_id": {"description": "ID for the numpy seed to be used (0 by default)", "type": "integer", "default": 0}, "resolution": {"description": "Temporal resolution of the meteorology (\"1h\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1h"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ_mass-fluxes_meteo": {"title": "LMDZ/mass-fluxes/meteo", "description": "LMDZ mass fluxes", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "mass-fluxes"}, "type": {"description": "plugin type", "const": "meteo"}}, "required": ["name", "version"]}, "model": {"$ref": "#/$defs/LMDZ_reg-ico_model"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "LMDZ_mass-fluxes-acc_meteo": {"title": "LMDZ/mass-fluxes-acc/meteo", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "mass-fluxes-acc"}, "type": {"description": "plugin type", "const": "meteo"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "defstoke_file": {"description": "Path to the 'defstoke.nc' file if it is in a different location", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "TM5_std_meteo": {"title": "TM5/std/meteo", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TM5"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "meteo"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/dummy_std_domain"}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "regrid": {"$ref": "#/$defs/regrid_std_transform_datavect"}, "time_interpolation": {"$ref": "#/$defs/time_interpolation_std_transform_datavect"}, "unit_conversion": {"$ref": "#/$defs/unit_conversion_std_transform_datavect"}, "vertical_interpolation": {"$ref": "#/$defs/vertical_interpolation_std_transform_datavect"}, "hresol": {"description": "the horizontal resolution of the control vector.  .. warning::  This argument determines whether the parameter is included in the control vector. All other arguments will be ignored if this one is not specified.", "enum": ["hpixels", "regions", "bands", "ibands", "global"]}, "vresol": {"description": "the vertical resolution of the control vector. (\"column\" by default)", "enum": ["vpixels", "kbands", "column"], "default": "column"}, "tresol": {"description": "the main temporal resolution of the control vector. Should be a pandas syntax string value. If not specified, only one increment for the full inversion window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "tsubresol": {"description": "secondary resolution for the control vector. If :bash:`tsubresol` is not a divider of :bash:`tresol`, the final temporal resolution will keep :bash:`tresol` as anchors and them split them accordingly to :bash:`tsubresol` and fitting the size of the last sub-period of each period.  For instance if :bash:`tresol` is :bash:`1MS` and :bash:`tsubresol` is :bash:`10D`, the control vector will have a monthly resolution with 3 sub-periods per month: the two first periods are 10-days long according to :bash:`tsubresol` and the third sub-period fills the remaining days of the months, hence between 8 days (for February) to 11 days for 31-day-long months"}, "type": {"description": "type of increments (\"scalar\" by default)", "enum": ["scalar", "physical"], "default": "scalar"}, "xb_scale": {"description": "a scalar to apply to the prior before any computation", "type": "number"}, "xb_value": {"description": "an offset to apply to the prior before any computation", "type": "number"}, "err": {"description": "scaling factor to apply to the prior to compute the standard deviation of prior uncertainties.", "type": "number"}, "err_type": {"description": "complement to :bash:`err`; approach used to compute prior uncertainties from prior values; used only when :bash:`type` = :bash:`physical`: (\"avg\" by default)", "enum": ["max", "avg"], "default": "avg"}, "lower_bound": {"description": "lower boundary for the value of this control variable", "type": "number"}, "upper_bound": {"description": "upper boundary for the value of this control variable.", "type": "number"}, "glob_err": {"description": "used only when :bash:`type` = :bash:`physical`. Can be used to specify a total error for the spatial extent of the prior. The standard deviation of each spatial component of the control vector is scale, so that the total error (accounting for the horizontal correlations if any) matches the one specified", "type": "object", "additionalProperties": false, "properties": {"total": {"description": "the area-weighted sum of all prior values is scaled according to this value", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to the sum of prior values. Use if the value specified in :bash:`total` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}, "surface_unit": {"description": "set to `True` if the `total` value is given per unit of surface (False by default)", "type": "boolean", "default": false}, "frequency_unit": {"description": "set to `True` if the `total` value is given per unit of time (False by default)", "type": "boolean", "default": false}, "account_correlations": {"description": "account or not for correlations to compute the total errors, i.e. also summing non-diagonal terms of the covariance matrix (True by default)", "type": "boolean", "default": true}}}, "lowlim_error": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"err": {"description": "lower threshold for errors", "type": "number"}, "unit_scale": {"description": "scaling factor to apply to prior values. Use if the value specified in :bash:`err` is not in the same unit as the one in the prior values (1 by default)", "type": "number", "default": 1}}}, "hcorrelations": {"description": "horizontal correlations. In most cases, the matrix **B** is not explicitly built. Instead, Kronecker products are used for each temporal slice of the control vector, horizontal correlations are used", "type": "object", "additionalProperties": false, "properties": {"sigma": {"description": "the horizontal correlation length in kilometers", "type": "number"}, "landsea": {"description": "separate land and sea pixels (False by default)", "type": "boolean", "default": false}, "sigma_land": {"description": "the horizontal correlation length for land pixels", "type": "number"}, "sigma_sea": {"description": "the horizontal correlation length for sea pixels", "type": "number"}, "filelsm": {"description": "the path to the land-sea mask; it is a NetCDF with a variable :bash:`lsm`; ocean pixels are pixels with  :bash:`lsm` < 0.5", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_hcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`horcor_{hresol}_{nlon}x{nlat}_cs{sigma_sea}_cl{sigma_land}.bin`; a suffix :bash:`_lbc` is appended if correlations are computed for a lateral boundary condition component (False by default)", "type": "boolean", "default": false}, "dircorrel": {"description": "where to look for pre-computed correlations; files are looked for in the folder following the same format as for :bash:`dump_hcorr`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "type": "boolean", "default": false}}}, "tcorrelations": {"description": "lower limit for the standard deviation of prior uncertainties. The threshold is computed using the physical values of the prior data", "type": "object", "additionalProperties": false, "properties": {"multi_sigmas": {"description": "it is possible to convolve multiple temporal correlation lengths and type (see below). if :bash:`multi_sigmas` is True, add a sub-paragraph :bash:`sigmas`, with multiple entries; for each entry (the name has no importance), specify the :bash:`sigma_t` and :bash:`type`; this read as follows:  .. code-block:: yaml  tcorrelations: multi_sigmas: True sigmas: sigma1: type: isotrope sigma_t: \"3D\" sigma2: type: frequency freq: \"1D\" sigma_t: \"10D\" sigma3: type: category scale: \"hourofday\" sigma_t: \"50D\"  .. note::  Please note the if :bash:`multi_sigmas` is True, only the correlation values below :bash:`sigmas` will be accounted for. (False by default)", "type": "boolean", "default": false}, "sigmas": {"description": "temporal correlation lengths and types, to be used with :bash:`multi_sigmas`", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "correlation length and type", "type": "object", "additionalProperties": false, "properties": {"sigma_t": {"description": "correlation length", "type": "number"}, "type": {"description": "correlation type", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "sigma_t": {"description": "temporal correlation length; should be a pandas frequency string", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "the horizontal correlation length for land pixels", "enum": ["isotrope", "frequency", "category"]}, "dump_tcorr": {"description": "save horizontal correlations (as eigen vectors and values) for later use; they are saved in the folder :bash:`$WORKDIR/controlvect/correlations/`; the name of each file is: :bash:`tempcor_{datei}_{datef}_per{period}_ct{ sigma_t}_{sigma_type}.bin`; a suffix :bash:`_lbc` is appended if (False by default)", "type": "boolean", "default": false}}}, "dircorrel": {"description": "where to look for pre-computed correlations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "evalmin": {"description": "minimal value for eigen values to filter out (0 by default)", "type": "number", "default": 0}, "crop_chi": {"description": "if True, the regularized vector :math:`\\mathbf{\\chi}` has a reduced dimension (consistent with :bash:`evalmin`) compared to the full control vector (False by default)", "default": false}, "dump_physical": {"description": "if True, dumps physical values in the control vector netcdf (True by default)", "default": true}, "bands_lat, bands_lon": {"description": "To be used with :bash:`hpixels = bands`. A list of longitudes/latitudes defining a chess-board for aggregating the pixels. The values are the side of each band, hence one need :bash:`N + 1` values for :bash:`N` bands", "type": "array"}, "bands_i, bands_j": {"description": "To be used with :bash:`hpixels = ibands`. same as :bash:`bands_lat` / :bash:`bands_lon` but with column/row indexes", "type": "array"}, "regions_infos": {"description": "To be used with :bash:`hpixels = regions`. Information about the file to be read to define regions.  The region file format can either follow a default format, which is a NetCDF file with a variable :bash:`regions`; the variable should have the same dimension as the domain of the prior data; It is possible to use the format of another data type as recognized by pycif. In that case, a :bash:`plugin` sub-paragraph should be included in :bash:`regions_infos`", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Path where to find the region-defining file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "name of the file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "plugin": {"description": "plugin used to read the region-defining file", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}}, "regions_lsm": {"description": "To be used with :bash:`hpixels = regions`. Use the index of each regions to determine land and ocean regions. Positive indexes are land regions. Negative and null indexes are ocean regions. This information is used to computed horizontal correlations if the correlation length is different for land and ocean. (False by default)", "type": "boolean", "default": false}}, "required": [], "additionalProperties": false}, "standard_std_datavect": {"title": "standard/std/datavect", "description": "Standard CIF data vector", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "standard"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "datavect"}}, "required": ["name", "version"]}, "domain": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "components": {"description": "List of components in the data vector", "type": "object", "additionalProperties": false, "properties": {"concs": {"description": "Concs Observations", "type": "object", "properties": {"dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"description": "Name of a given parameter", "properties": {"dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}}}}, "additionalProperties": false}}}, "insitu": {"description": "Insitu Observations", "type": "object", "properties": {"dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"description": "Name of a given parameter", "properties": {"dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}}}}, "additionalProperties": false}}}, "flasks": {"description": "Flasks Observations", "type": "object", "properties": {"dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"description": "Name of a given parameter", "properties": {"dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}}}}, "additionalProperties": false}}}, "satellites": {"description": "Satellites Observations", "type": "object", "properties": {"dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"description": "Name of a given parameter", "$ref": "#/$defs/satellites_std_transform"}}, "additionalProperties": false}}}}, "patternProperties": {"^.*$": {"oneOf": [{"description": "component name", "type": "object", "properties": {"dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"oneOf": [{"$ref": "#/$defs/carboscope_std_background"}, {"$ref": "#/$defs/TM5-4DVAR_rodenbeck_background"}, {"$ref": "#/$defs/BCs_template_field"}, {"$ref": "#/$defs/CHIMERE_icbc_field"}, {"$ref": "#/$defs/ECMWF_grib2_field"}, {"$ref": "#/$defs/gridded_netcdf_std_field"}, {"$ref": "#/$defs/ICON-ART_icbc_field"}, {"$ref": "#/$defs/LMDZ_chemfield_field"}, {"$ref": "#/$defs/LMDZ_chemfield-dynamico_field"}, {"$ref": "#/$defs/LMDZ_chemfield-regular_field"}, {"$ref": "#/$defs/LMDZ_ic_field"}, {"$ref": "#/$defs/LMDZ_inicond-dynamico_field"}, {"$ref": "#/$defs/LMDZ_inicond-regular_field"}, {"$ref": "#/$defs/LMDZ-trajq_netcdf_field"}, {"$ref": "#/$defs/LMDZ_photochem_field"}, {"$ref": "#/$defs/LMDZ_prescrconcs_field"}, {"$ref": "#/$defs/LMDZ_prodloss3d_field"}, {"$ref": "#/$defs/CAMS_netcdf_field"}, {"$ref": "#/$defs/NOAA_glob_avg_field"}, {"$ref": "#/$defs/oldLMDZ_ic_field"}, {"$ref": "#/$defs/oldLMDZ_photochem_field"}, {"$ref": "#/$defs/oldLMDZ_prescrconcs_field"}, {"$ref": "#/$defs/TM5_ic_field"}, {"$ref": "#/$defs/wrfchem_icbc_field"}, {"$ref": "#/$defs/CAMSREG_netcdf_flux"}, {"$ref": "#/$defs/CMEMS_std_flux"}, {"$ref": "#/$defs/CarbonMonitor_netcdf_flux"}, {"$ref": "#/$defs/EDGARv8_time_profile_flux"}, {"$ref": "#/$defs/GCP_1x1_flux"}, {"$ref": "#/$defs/GCP_N2O_1x1_flux"}, {"$ref": "#/$defs/GFED4_std_flux"}, {"$ref": "#/$defs/GridFED_std_flux"}, {"$ref": "#/$defs/TNO_netcdf_flux"}, {"$ref": "#/$defs/VPRM1km_netcdf_flux"}, {"$ref": "#/$defs/VPRM_netcdf_flux"}, {"$ref": "#/$defs/becker_ocean_flux"}, {"$ref": "#/$defs/CHIMERE_AEMISSIONS_flux"}, {"$ref": "#/$defs/dummy_nc_flux"}, {"$ref": "#/$defs/dummy_txt_flux"}, {"$ref": "#/$defs/EDGAR_v5_flux"}, {"$ref": "#/$defs/FLEXPART_nc_flux"}, {"$ref": "#/$defs/flux_template_flux"}, {"$ref": "#/$defs/gridded_netcdf_std_flux"}, {"$ref": "#/$defs/ICON-ART_sflx_flux"}, {"$ref": "#/$defs/LMDZ_bin_flux"}, {"$ref": "#/$defs/LMDZ_netcdf-dynamico_flux"}, {"$ref": "#/$defs/LMDZ_netcdf-regular_flux"}, {"$ref": "#/$defs/LMDZ_sflx_flux"}, {"$ref": "#/$defs/orchidee_std_flux"}, {"$ref": "#/$defs/point_sources_std_flux"}, {"$ref": "#/$defs/TM5_std_flux"}, {"$ref": "#/$defs/gridded_netcdf_unstructured_flux"}, {"$ref": "#/$defs/wrfchem_std_flux"}, {"$ref": "#/$defs/CHIMERE_std_meteo"}, {"$ref": "#/$defs/dummy_csv_meteo"}, {"$ref": "#/$defs/LMDZ_mass-fluxes_meteo"}, {"$ref": "#/$defs/LMDZ_mass-fluxes-acc_meteo"}, {"$ref": "#/$defs/TM5_std_meteo"}]}}}}, "required": ["parameters"], "additionalProperties": false}, {"allOf": [{"oneOf": [{"$ref": "#/$defs/carboscope_std_background"}, {"$ref": "#/$defs/TM5-4DVAR_rodenbeck_background"}, {"$ref": "#/$defs/BCs_template_field"}, {"$ref": "#/$defs/CHIMERE_icbc_field"}, {"$ref": "#/$defs/ECMWF_grib2_field"}, {"$ref": "#/$defs/gridded_netcdf_std_field"}, {"$ref": "#/$defs/ICON-ART_icbc_field"}, {"$ref": "#/$defs/LMDZ_chemfield_field"}, {"$ref": "#/$defs/LMDZ_chemfield-dynamico_field"}, {"$ref": "#/$defs/LMDZ_chemfield-regular_field"}, {"$ref": "#/$defs/LMDZ_ic_field"}, {"$ref": "#/$defs/LMDZ_inicond-dynamico_field"}, {"$ref": "#/$defs/LMDZ_inicond-regular_field"}, {"$ref": "#/$defs/LMDZ-trajq_netcdf_field"}, {"$ref": "#/$defs/LMDZ_photochem_field"}, {"$ref": "#/$defs/LMDZ_prescrconcs_field"}, {"$ref": "#/$defs/LMDZ_prodloss3d_field"}, {"$ref": "#/$defs/CAMS_netcdf_field"}, {"$ref": "#/$defs/NOAA_glob_avg_field"}, {"$ref": "#/$defs/oldLMDZ_ic_field"}, {"$ref": "#/$defs/oldLMDZ_photochem_field"}, {"$ref": "#/$defs/oldLMDZ_prescrconcs_field"}, {"$ref": "#/$defs/TM5_ic_field"}, {"$ref": "#/$defs/wrfchem_icbc_field"}, {"$ref": "#/$defs/CAMSREG_netcdf_flux"}, {"$ref": "#/$defs/CMEMS_std_flux"}, {"$ref": "#/$defs/CarbonMonitor_netcdf_flux"}, {"$ref": "#/$defs/EDGARv8_time_profile_flux"}, {"$ref": "#/$defs/GCP_1x1_flux"}, {"$ref": "#/$defs/GCP_N2O_1x1_flux"}, {"$ref": "#/$defs/GFED4_std_flux"}, {"$ref": "#/$defs/GridFED_std_flux"}, {"$ref": "#/$defs/TNO_netcdf_flux"}, {"$ref": "#/$defs/VPRM1km_netcdf_flux"}, {"$ref": "#/$defs/VPRM_netcdf_flux"}, {"$ref": "#/$defs/becker_ocean_flux"}, {"$ref": "#/$defs/CHIMERE_AEMISSIONS_flux"}, {"$ref": "#/$defs/dummy_nc_flux"}, {"$ref": "#/$defs/dummy_txt_flux"}, {"$ref": "#/$defs/EDGAR_v5_flux"}, {"$ref": "#/$defs/FLEXPART_nc_flux"}, {"$ref": "#/$defs/flux_template_flux"}, {"$ref": "#/$defs/gridded_netcdf_std_flux"}, {"$ref": "#/$defs/ICON-ART_sflx_flux"}, {"$ref": "#/$defs/LMDZ_bin_flux"}, {"$ref": "#/$defs/LMDZ_netcdf-dynamico_flux"}, {"$ref": "#/$defs/LMDZ_netcdf-regular_flux"}, {"$ref": "#/$defs/LMDZ_sflx_flux"}, {"$ref": "#/$defs/orchidee_std_flux"}, {"$ref": "#/$defs/point_sources_std_flux"}, {"$ref": "#/$defs/TM5_std_flux"}, {"$ref": "#/$defs/gridded_netcdf_unstructured_flux"}, {"$ref": "#/$defs/wrfchem_std_flux"}, {"$ref": "#/$defs/CHIMERE_std_meteo"}, {"$ref": "#/$defs/dummy_csv_meteo"}, {"$ref": "#/$defs/LMDZ_mass-fluxes_meteo"}, {"$ref": "#/$defs/LMDZ_mass-fluxes-acc_meteo"}, {"$ref": "#/$defs/TM5_std_meteo"}]}, {"required": ["plugin"], "not": {"required": ["parameters"]}}]}, {"oneOf": [{"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "carboscope"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "background"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/carboscope_std_background"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TM5-4DVAR"}, "version": {"description": "plugin version", "const": "rodenbeck"}, "type": {"description": "plugin type", "const": "background"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/TM5-4DVAR_rodenbeck_background"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "BCs"}, "version": {"description": "plugin version", "const": "template"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/BCs_template_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CHIMERE"}, "version": {"description": "plugin version", "const": "icbc"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/CHIMERE_icbc_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "ECMWF"}, "version": {"description": "plugin version", "const": "grib2"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/ECMWF_grib2_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "gridded_netcdf"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/gridded_netcdf_std_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "ICON-ART"}, "version": {"description": "plugin version", "const": "icbc"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/ICON-ART_icbc_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "chemfield"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_chemfield_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "chemfield-dynamico"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_chemfield-dynamico_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "chemfield-regular"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_chemfield-regular_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "ic"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_ic_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "inicond-dynamico"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_inicond-dynamico_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "inicond-regular"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_inicond-regular_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ-trajq"}, "version": {"description": "plugin version", "const": "netcdf"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ-trajq_netcdf_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "photochem"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_photochem_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "prescrconcs"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_prescrconcs_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "prodloss3d"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_prodloss3d_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CAMS"}, "version": {"description": "plugin version", "const": "netcdf"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/CAMS_netcdf_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "NOAA"}, "version": {"description": "plugin version", "const": "glob_avg"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/NOAA_glob_avg_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "oldLMDZ"}, "version": {"description": "plugin version", "const": "ic"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/oldLMDZ_ic_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "oldLMDZ"}, "version": {"description": "plugin version", "const": "photochem"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/oldLMDZ_photochem_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "oldLMDZ"}, "version": {"description": "plugin version", "const": "prescrconcs"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/oldLMDZ_prescrconcs_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TM5"}, "version": {"description": "plugin version", "const": "ic"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/TM5_ic_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "wrfchem"}, "version": {"description": "plugin version", "const": "icbc"}, "type": {"description": "plugin type", "const": "field"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/wrfchem_icbc_field"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CAMSREG"}, "version": {"description": "plugin version", "const": "netcdf"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/CAMSREG_netcdf_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CMEMS"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/CMEMS_std_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CarbonMonitor"}, "version": {"description": "plugin version", "const": "netcdf"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/CarbonMonitor_netcdf_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "EDGARv8"}, "version": {"description": "plugin version", "const": "time_profile"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/EDGARv8_time_profile_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "GCP"}, "version": {"description": "plugin version", "const": "1x1"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/GCP_1x1_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "GCP_N2O"}, "version": {"description": "plugin version", "const": "1x1"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/GCP_N2O_1x1_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "GFED4"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/GFED4_std_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "GridFED"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/GridFED_std_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TNO"}, "version": {"description": "plugin version", "const": "netcdf"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/TNO_netcdf_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "VPRM1km"}, "version": {"description": "plugin version", "const": "netcdf"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/VPRM1km_netcdf_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "VPRM"}, "version": {"description": "plugin version", "const": "netcdf"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/VPRM_netcdf_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "becker"}, "version": {"description": "plugin version", "const": "ocean"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/becker_ocean_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CHIMERE"}, "version": {"description": "plugin version", "const": "AEMISSIONS"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/CHIMERE_AEMISSIONS_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "dummy"}, "version": {"description": "plugin version", "const": "nc"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/dummy_nc_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "dummy"}, "version": {"description": "plugin version", "const": "txt"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/dummy_txt_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "EDGAR"}, "version": {"description": "plugin version", "const": "v5"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/EDGAR_v5_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "FLEXPART"}, "version": {"description": "plugin version", "const": "nc"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/FLEXPART_nc_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "flux"}, "version": {"description": "plugin version", "const": "template"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/flux_template_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "gridded_netcdf"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/gridded_netcdf_std_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "ICON-ART"}, "version": {"description": "plugin version", "const": "sflx"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/ICON-ART_sflx_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "bin"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_bin_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "netcdf-dynamico"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_netcdf-dynamico_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "netcdf-regular"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_netcdf-regular_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "sflx"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_sflx_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "orchidee"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/orchidee_std_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "point_sources"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/point_sources_std_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TM5"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/TM5_std_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "gridded_netcdf"}, "version": {"description": "plugin version", "const": "unstructured"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/gridded_netcdf_unstructured_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "wrfchem"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "flux"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/wrfchem_std_flux"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CHIMERE"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "meteo"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/CHIMERE_std_meteo"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "dummy"}, "version": {"description": "plugin version", "const": "csv"}, "type": {"description": "plugin type", "const": "meteo"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/dummy_csv_meteo"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "mass-fluxes"}, "type": {"description": "plugin type", "const": "meteo"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_mass-fluxes_meteo"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "mass-fluxes-acc"}, "type": {"description": "plugin type", "const": "meteo"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/LMDZ_mass-fluxes-acc_meteo"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}, {"description": "component name", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TM5"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "meteo"}}, "required": ["name", "version"]}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}, "parameters": {"description": "Store the list of parameters for this component", "type": "object", "patternProperties": {"^.*$": {"$ref": "#/$defs/TM5_std_meteo"}}, "not": {"required": ["plugin", "parameters"]}}}, "required": ["plugin", "parameters"], "additionalProperties": false}]}]}}}, "dump_debug": {"description": "Save extra information for debugging purpose. It includes the list of files and dates for each input saved in $workdir/datavect/ (False by default)", "type": "boolean", "default": false}}, "required": ["plugin"], "additionalProperties": false}, "CHIMERE_std_domain": {"title": "CHIMERE/std/domain", "description": "CHIMERE HCOORD/VCOORD domain", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CHIMERE"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "domain"}}, "required": ["name", "version"]}, "repgrid": {"description": "Path to the directory where the COORD files are to be found. Details on the structure of this folder are given :doc:`here</documentation/doc-models/chimere/coordfiles>`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "domid": {"description": "Name of the domain", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "nlev": {"description": "Number of vertical levels", "type": "integer"}, "p1": {"description": "Pressure at the top of the first layer (in hPa).", "type": "number"}, "pmax": {"description": "Pressure at the top of the domain (in hPa).", "type": "number"}, "emissublayer": {"description": "Use a sub-layer for surface emissions (False by default)", "type": "boolean", "default": false}, "stretching": {"description": "Coefficient used to stretch domain regular in kilometers (0 by default)", "type": "number", "default": 0}, "buffer_layer": {"description": "Buffer layer near the surface (0 by default)", "type": "number", "default": 0}, "dir_landuse": {"description": "Path to GLCF data (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "file_aggregation": {"description": "Path to the file LAND_AGGREGATION (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "dx": {"description": "size of cells in longitude (\"\" by default)", "type": "number", "default": ""}, "dy": {"description": "size of cells in latitude (\"\" by default)", "type": "number", "default": ""}, "type": {"description": "type of horizontal grid to generate (precomputed option to test) (\"\" by default)", "enum": ["km", "deg", "precomputed"], "default": ""}, "xcenter": {"description": "longitude of the center of the domain (used with 'km' type) (\"\" by default)", "type": "number", "default": ""}, "ycenter": {"description": "latitude of the center of the domain (used with 'km' type) (\"\" by default)", "type": "number", "default": ""}, "nlon": {"description": "number of cells in longitude (used with 'km' and 'precomputed' type) (\"\" by default)", "type": "integer", "default": ""}, "nlat": {"description": "number of cells in latitude (used with 'km' and 'precomputed' type) (\"\" by default)", "type": "integer", "default": ""}, "xmin": {"description": "longitude of the East side of the domain (used with 'deg' type) (\"\" by default)", "type": "number", "default": ""}, "xmax": {"description": "longitude of the West side of the domain (used with 'deg' type) (\"\" by default)", "type": "number", "default": ""}, "ymin": {"description": "latitude of the South side of the domain (used with 'deg' type) (\"\" by default)", "type": "number", "default": ""}, "ymax": {"description": "latitude of the North side of the domain (used with 'deg' type) (\"\" by default)", "type": "number", "default": ""}, "coord_precomputed_dir": {"description": "Directory with precomputed HCOORD and HCOORD_CORNER files (used with 'precomputed' type)", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "add_buffer": {"description": "additional option to add a buffer around the domain (with a higher resolution) (False by default)", "type": "boolean", "default": false}, "x_buffer_left": {"description": "additional buffer longitude of the Est side of the domain (used with 'deg' type) (0 by default)", "type": "number", "default": 0}, "x_buffer_right": {"description": "additional buffer longitude of the West side of the domain (used with 'deg' type, requires at least one additional line right) (0 by default)", "type": "number", "default": 0}, "y_buffer_up": {"description": "additional buffer latitude of the North side of the domain (used with 'deg' type, requires at least one additional line up)) (0 by default)", "type": "number", "default": 0}, "y_buffer_down": {"description": "additional buffer latitude of the South side of the domain (used with 'deg' type) (0 by default)", "type": "number", "default": 0}, "dx_buffer": {"description": "size of buffer cells in longitude (0 by default)", "type": "number", "default": 0}, "dy_buffer": {"description": "size of buffer cells in latitude (0 by default)", "type": "number", "default": 0}}, "required": ["plugin", "repgrid", "domid", "nlev", "p1", "pmax"], "additionalProperties": false}, "dummy_std_domain": {"title": "dummy/std/domain", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "dummy"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "domain"}}, "required": ["name", "version"]}, "filelon": {"description": "Path to a text file defining the list of longitudes", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "filelat": {"description": "Path to a text file defining the list of latitudes", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "projection": {"description": "Type of projection to use for computations with this domain (\"xy\" by default)", "enum": ["gps", "xy"], "default": "xy"}, "nlon": {"description": "Number of grid cells in the zonal direction", "type": "integer"}, "nlat": {"description": "Number of grid cells in the meridional direction", "type": "integer"}, "xmin": {"description": "Coordinate of the left border of the domain", "type": "number"}, "xmax": {"description": "Coordinate of the right border of the domain", "type": "number"}, "ymin": {"description": "Coordinate of the bottom border of the domain", "type": "number"}, "ymax": {"description": "Coordinate of the top border of the domain", "type": "number"}}, "required": ["plugin"], "additionalProperties": false}, "dynamico_std_domain": {"title": "dynamico/std/domain", "description": "Dynamico grid", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "dynamico"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "domain"}}, "required": ["name", "version"]}, "dir": {"description": "directory containing ``grid_file`` and ``vcoord_file``. Use ``grid_dir`` and ``vcoord_dir`` instead if the files are not located in the same directory", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "grid_dir": {"description": "directory containing ``grid_file``. should be an absolute path if neither ``dir`` or ``grid_dir`` is used", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "grid_file": {"description": "NetCDF containing the horizontal grid coordinate", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "vcoord_dir": {"description": "directory containing ``vcoord_file``.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "vcoord_file": {"description": "NetCDF containing the vertical grid coordinate should be an absolute path if neither ``dir`` or ``vcoord_dir`` is used", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin", "grid_file", "vcoord_file"], "additionalProperties": false}, "FLEXPART_std_domain": {"title": "FLEXPART/std/domain", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "FLEXPART"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "domain"}}, "required": ["name", "version"]}, "nested": {"description": "Indicate whether the domain is nested or not. For non nested domains, only the 'nest' domain is loaded and not the 'global' one (True by default)", "type": "boolean", "default": true}, "xmin": {"description": "West longitude of the domain", "type": "number"}, "xmax": {"description": "East longitude of the domain", "type": "number"}, "ymin": {"description": "South latitude of the domain", "type": "number"}, "ymax": {"description": "North latitude of the domain", "type": "number"}, "nlon": {"description": "Number of grid cells in the zonal direction", "type": "number"}, "nlat": {"description": "Number of grid cells in the meridional direction", "type": "number"}, "xmin_glob": {"description": "East longitude of the global domain for the nested case (0 by default)", "type": "number", "default": 0}, "ymin_glob": {"description": "South latitude of the global domain for the nested case (0 by default)", "type": "number", "default": 0}, "nlon_glob": {"description": "Number of grid cells in the zonal direction for the nested case (0 by default)", "type": "number", "default": 0}, "nlat_glob": {"description": "Number of grid cells in the meridional direction for the nested case (0 by default)", "type": "number", "default": 0}, "dx_glob": {"description": "Zonal resolution in the nested case (1 by default)", "type": "number", "default": 1}, "dy_glob": {"description": "Meridional resolution in the nested case (1 by default)", "type": "number", "default": 1}, "pressure_unit": {"description": "Unit for the pressure in the VCOORD file (\"hPa\" by default)", "enum": ["Pa", "hPa"], "default": "hPa"}, "dir_heights": {"description": "directory where the header defining the output vertical levels of FLEXPART is stored (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "outheight_header": {"description": "Name of the header file in dir_heights", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "ignore_heights": {"description": "Ignore the outheight_header and simply generate height at ground level (False by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": false}}, "required": ["plugin", "xmin", "xmax", "ymin", "ymax", "nlon", "nlat", "outheight_header"], "additionalProperties": false}, "gridded_netcdf_std_domain": {"title": "gridded_netcdf/std/domain", "description": "Gridded NetCDF domain", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "gridded_netcdf"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "domain"}}, "required": ["name", "version"]}, "dir": {"description": "Directory containing ``file`` (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "file": {"description": "NetCDF file containing the grid coordinates", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_vcoord": {"description": "Directory containing ``file_vcoord``. Use this argument if the vertical coordinates are not in ``file`` (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "file_vcoord": {"description": "NetCDF file containing the vertical coordinates. Use this argument if the vertical coordinates are not in ``file``", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "vertical_coord": {"description": "Read the domain's vertical levels if this parameter is used. Should be 'mids' if the vertical coordinate represents the levels mid-points or 'bounds' if the vertical coordinate represents the levels boundaries. If this parameter is not used a domain single vertical level is created", "enum": ["mids", "bounds"]}, "vertical_dim_name": {"description": "Vertical dimension name in ``file`` or ``file_vcoord`` (\"lev\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "lev"}, "vertical_dim_type": {"description": "Vertical dimension type (\"sigma_pressure\" by default)", "enum": ["sigma_pressure", "heights"], "default": "sigma_pressure"}, "sigma_a_var_name": {"description": "'sigma a' variable name in ``file`` or ``file_vcoord`` (\"ap\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "ap"}, "sigma_b_var_name": {"description": "'sigma b' variable name in ``file`` or ``file_vcoord`` (\"bp\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "bp"}, "pressure_unit": {"description": "pressure units if different from ``units`` attributes in ``sigma `a` variable, should be ``'Pa'`` or ``'hPa'``", "enum": ["Pa", "hPa"]}, "reverse_vcoord": {"description": "reverse the vertical coordinate or not (False by default)", "type": "boolean", "default": false}, "latitude_varname": {"description": "Latitude coordinate variable name in ``file``. If this argument is not provided, the latitude coordinate is found by its ``standard_name`` or ``long_name`` attribute (which should be ``'latitude'``). (\"latitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "latitude"}, "longitude_varname": {"description": "Longitude coordinate variable name in ``file``. If this argument is not provided, the longitude coordinate is found by its ``standard_name`` or ``long_name`` attribute (which should be ``'longitude'``). (\"longitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "longitude"}, "latitude_dimname": {"description": "Latitude dimension name in ``file``. (\"latitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "latitude"}, "longitude_dimname": {"description": "Longitude dimension name in ``file``. (\"longitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "longitude"}, "use_corners": {"description": "`True` if the longitudes and latitudes are used to defined the corners instead of gridcell centers (False by default)", "type": "boolean", "default": false}, "extend_lat": {"description": "Extend corner latitudes by one cell if `nlat_corner != nlat + 1` (False by default)", "type": "boolean", "default": false}, "extend_lon": {"description": "Extend corner longitudes by one cell if `nlon_corner != nlon + 1` (False by default)", "type": "boolean", "default": false}, "lat_min": {"description": "Minimum latitude (-90.0 by default)", "type": "number", "default": -90.0}, "lat_max": {"description": "Maximum latitude (90.0 by default)", "type": "number", "default": 90.0}, "delta_lat": {"description": "Skip the reading/computation of latitude bounds and use regular gridcells with a size of ``delta_lat``. ``delta_lat`` should divide ``lat_max - lat_min`` and be coherent with the NetCDF file dimensions.", "type": "number"}, "lon_min": {"description": "Minimum longitude (-180.0 by default)", "type": "number", "default": -180.0}, "lon_max": {"description": "Maximum longitude (180.0 by default)", "type": "number", "default": 180.0}, "delta_lon": {"description": "Skip the reading/computation of longitude bounds and use regular gridcells with a size of ``delta_lon``. ``delta_lon`` should divide ``lon_max - lon_min`` and be coherent with the NetCDF file dimensions.", "type": "number"}, "regular_lon": {"description": "Overwrites the default behaviour of regular domain in zonal direction to compute corners. In this case, use the first and last delta to extent East and West (True by default)", "type": "boolean", "default": true}, "regular_lat": {"description": "Overwrites the default behaviour of regular domain in meridional direction to compute corners. In this case, use the first and last delta to extent South and North (True by default)", "type": "boolean", "default": true}, "force_centered_lat": {"description": "Force grid cells latitude to be centered between thier corners. Grid cells centers and corners will be read normally then the grid cells centers latitudes will be adjusted. (False by default)", "type": "boolean", "default": false}, "force_centered_lon": {"description": "Force grid cells longitude to be centered between thier corners. Grid cells centers and corners will be read normally then the grid cells centers longitudes will be adjusted. (False by default)", "type": "boolean", "default": false}, "sort_lat": {"description": "Sort latitudes in ascending order (True by default)", "type": "boolean", "default": true}, "sort_lon": {"description": "Sort longitudes in ascending order (True by default)", "type": "boolean", "default": true}, "drop_variables": {"description": "List of variables to drop when reading the NetCDF files. This allows issues of `MissingDimensionErrors` as documented in, e.g., https://stackoverflow.com/questions/55109481/how-to-import-netcdf4-file-with-xarray-when-index-names-have-multiple-dimensions ([] by default)", "type": "array", "default": []}}, "required": ["plugin", "file"], "additionalProperties": false}, "ICON-ART_std_domain": {"title": "ICON-ART/std/domain", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "ICON-ART"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "domain"}}, "required": ["name", "version"]}, "dynamics_grid": {"description": "Path to the dynamical grid file. This is the main grid of the ICON model, and the grid that is used for all the outputs.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "lbc_grid": {"description": "Path to the lateral boundary grid file. Only required for running ICON model in limited area mode.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "reduced_radiation_grid": {"description": "Path to the reduced radiation grid file. Only required for calculating radiation on a coarser grid.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "map_file": {"description": "Path to the file that contains the mapping: GRIB2/Netcdf input names <-> ICON internal names.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "extpar_file": {"description": "Path to the external parameters file.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "ifs_137_level_def_file": {"description": "Path to the IFS 137 levels definition.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin", "dynamics_grid", "map_file", "extpar_file", "ifs_137_level_def_file"], "additionalProperties": false}, "LMDZ_std_domain": {"title": "LMDZ/std/domain", "description": "LMDz grid", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "domain"}}, "required": ["name", "version"]}, "filegrid": {"description": "File with longitudes and latitudes", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file_vcoord": {"description": "File with vertical coordinates. Should be a restart file from a previous online simulation", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_vcoord": {"description": "Directory where to find file_vcoord", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin", "filegrid", "file_vcoord", "dir_vcoord"], "additionalProperties": false}, "LMDZ_dynamico_domain": {"title": "LMDZ/dynamico/domain", "description": "LMDZ dynamico domain", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "dynamico"}, "type": {"description": "plugin type", "const": "domain"}}, "required": ["name", "version"]}, "dir": {"description": "Directory containing ``file``. Use this argument if ``file`` is not in an absolute path.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "NetCDF file containing the domain coordinates.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_vcoord": {"description": "Directory containing ``file_vcoord``, if different from ``dir``. Use this argument if the vertical coordinates are not in ``file`` and ``file_vcoord`` is not in an absolute path.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file_vcoord": {"description": "NetCDF file containing the vertical coordinates. Use this argument if the vertical coordinates are not in ``file``", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_mesh": {"description": "Directory containing ``file_mesh``, if different from ``dir``. Use this argument if the mesh variables are not in ``file`` and ``file_mesh`` is not in an absolute path.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file_mesh": {"description": "NetCDF file containing the mesh variables. Use this argument if the mesh variables are not in ``file``", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin", "file"], "additionalProperties": false}, "LMDZ_regular_domain": {"title": "LMDZ/regular/domain", "description": "LMDZ regular lat-lon domain", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "regular"}, "type": {"description": "plugin type", "const": "domain"}}, "required": ["name", "version"]}, "dir": {"description": "Directory containing ``file``. Use this argument if ``file`` is not in an absolute path.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file": {"description": "NetCDF file containing the domain coordinates.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_vcoord": {"description": "Directory containing ``file_vcoord``, if different from ``dir``. Use this argument if the vertical coordinates are not in ``file`` and ``file_vcoord`` is not in an absolute path.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file_vcoord": {"description": "NetCDF file containing the vertical coordinates. Use this argument if the vertical coordinates are not in ``file``", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin", "file"], "additionalProperties": false}, "gridded_netcdf_unstructured_domain": {"title": "gridded_netcdf/unstructured/domain", "description": "Unstructured grid NetCDF domain", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "gridded_netcdf"}, "version": {"description": "plugin version", "const": "unstructured"}, "type": {"description": "plugin type", "const": "domain"}}, "required": ["name", "version"]}, "dir": {"description": "Directory containing ``file`` (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "file": {"description": "NetCDF file containing the grid coordinates", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_vcoord": {"description": "Directory containing ``file_vcoord``. Use this argument if the vertical coordinates are not in ``file`` (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "file_vcoord": {"description": "NetCDF file containing the vertical coordinates. Use this argument if the vertical coordinates are not in ``file``", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "vertical_coord": {"description": "Read the domain's vertical levels if this parameter is used. Should be 'mids' if the vertical coordinate represents the levels mid-points or 'bounds' if the vertical coordinate represents the levels boundaries. If this parameter is not used a domain single vertical level is created", "enum": ["mids", "bounds"]}, "vertical_dim_name": {"description": "Vertical dimension name in ``file`` or ``file_vcoord`` (\"lev\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "lev"}, "vertical_dim_type": {"description": "Vertical dimension type (\"sigma_pressure\" by default)", "enum": ["sigma_pressure", "heights"], "default": "sigma_pressure"}, "sigma_a_var_name": {"description": "'sigma a' variable name in ``file`` or ``file_vcoord`` (\"ap\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "ap"}, "sigma_b_var_name": {"description": "'sigma b' variable name in ``file`` or ``file_vcoord`` (\"bp\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "bp"}, "pressure_unit": {"description": "pressure units if different from ``units`` attributes in ``sigma `a` variable, should be ``'Pa'`` or ``'hPa'``", "enum": ["Pa", "hPa"]}, "reverse_vcoord": {"description": "reverse the vertical coordinate or not (False by default)", "type": "boolean", "default": false}, "latitude_varname": {"description": "Latitude coordinate variable name in ``file``. If this argument is not provided, the latitude coordinate is found by its ``standard_name`` or ``long_name`` attribute (which should be ``'latitude'``). (\"latitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "latitude"}, "longitude_varname": {"description": "Longitude coordinate variable name in ``file``. If this argument is not provided, the longitude coordinate is found by its ``standard_name`` or ``long_name`` attribute (which should be ``'longitude'``). (\"longitude\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "longitude"}, "latitude_bounds_varname": {"description": "Latitude bounds (vertices) coordinate variable name in ``file``. If this argument is not provided, the latitude coordinate is found with the ``bounds`` attribute of the latitude variable.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "longitude_bounds_varname": {"description": "longitude bounds (vertices) coordinate variable name in ``file``. If this argument is not provided, the longitude coordinate is found with the ``bounds`` attribute of the longitude variable.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin", "file"], "additionalProperties": false}, "wrfchem_std_domain": {"title": "wrfchem/std/domain", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "wrfchem"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "domain"}}, "required": ["name", "version"]}, "dir_geo_em": {"description": "Directory that contains geo_em.d??.nc produced by geogrid.exe (needed for longitude/latitude corners)", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_wrfinput": {"description": "Directory that contains (wrfinput_d??) produced by real.exe (needed for vertical grid layout)", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "max_dom": {"description": "Number of domains to use (in nested domain setup)", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin", "dir_geo_em", "dir_wrfinput", "max_dom"], "additionalProperties": false}, "random_param_measurements": {"title": "random/param/measurements", "description": "Random generation of observations", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "random"}, "version": {"description": "plugin version", "const": "param"}, "type": {"description": "plugin type", "const": "measurements"}}, "required": ["name", "version"]}, "domain": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "frequency": {"description": "Frequency of generated observations (\"1h\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1h"}, "date_shift": {"description": "Shift from default frequency (\"0h\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "0h"}, "duration": {"description": "Duration of generated observations (\"1h\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1h"}, "zmax": {"description": "Stations are randomly located between 0 m a.g.l. and `zmax` m a.g.l (100 by default)", "type": "number", "default": 100}, "obs_min": {"description": "Lower range of the observations for uniform distribution (0 by default)", "type": "number", "default": 0}, "obs_max": {"description": "Upper range of the observations for uniform distribution (1 by default)", "type": "number", "default": 1}, "random_subperiod_shift": {"description": "Randomly shift observations within their frequency. For instance, if the frequency is hourly, and ``random_subperiod_shift`` is True, hourly observations will be generated, but with a random shift of 0-60 minutes for each observations. (False by default)", "type": "boolean", "default": false}, "seed": {"description": "Use a fixed seed to generate observations (False by default)", "type": "boolean", "default": false}, "seed_id": {"description": "The seed to be used to generate observations. The associated command is `np.random.seed` (0 by default)", "type": "integer", "default": 0}, "nstations": {"description": "Number of stations to generate", "type": "integer"}, "station_names": {"description": "List of station names to be used. Should be at least larger  than `nstations`", "type": "array"}}, "required": ["plugin", "nstations"], "additionalProperties": false}, "standard_std_measurements": {"title": "standard/std/measurements", "description": "Concatenation of observations from parsers", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "standard"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "measurements"}}, "required": ["name", "version"]}, "specname": {"description": "Species name to use if different than the one in the corresponding ``datavect`` paragraph", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_type": {"description": "How to dump intermediate observation datastores (\"nc\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "nc"}, "file_monitor": {"description": "Path to a pre-formatted monitor file.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "providers": {"description": "List of providers and corresponding arguments to parse. See the documentation of ``obsparser`` objects for further details: :doc:`here </documentation/plugins/obsparsers/index>`"}, "provider": {"description": "Used only if ``providers`` is not specified. Can be used if only one provider is to be used. In that case, the provider arguments are directly specified at the same level.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin"], "additionalProperties": false}, "congrad_std_minimizer": {"title": "congrad/std/minimizer", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "congrad"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "minimizer"}}, "required": ["name", "version"]}, "simulator": {"$ref": "#/$defs/gausscost_std_simulator"}, "save_uncertainties": {"description": "Save the estimated eigenvectors of the inverse of the hessian. They allow the reconstruction of the uncertainty reduction matrix (False by default)", "type": "boolean", "default": false}, "force_linearize": {"description": "Force linearizing the cost function by using the TL instead of the forward (False by default)", "type": "boolean", "default": false}, "maxiter": {"description": "maximum number of iterations (1 by default)", "type": "integer", "default": 1}}, "required": ["plugin"], "additionalProperties": false}, "M1QN3_std_minimizer": {"title": "M1QN3/std/minimizer", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "M1QN3"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "minimizer"}}, "required": ["name", "version"]}, "simulator": {"$ref": "#/$defs/gausscost_std_simulator"}, "niter": {"description": "maximum number of iterations", "type": "integer"}, "nsim": {"description": "maximum number of simulations", "type": "integer"}, "maxiter": {"description": "maximum number of iterations; if one of the two previousis missing, :bash:`niter` is set to :bash:`maxiter` and :bash:`nsim` to 2 times :bash:`maxiter` (1 by default)", "type": "integer", "default": 1}, "dxmin": {"description": "absolute precision on x; optional (1e-20 by default)", "type": "number", "default": 1e-20}, "df1": {"description": "expected decrease for f (0.01 by default)", "type": "number", "default": 0.01}, "epsg": {"description": "relative precision on the gradient (1e-20 by default)", "type": "number", "default": 1e-20}, "mode": {"description": "mode more M1QN3; for expert users only; see `M1QN3 documentation <https://who.rocq.inria.fr/Jean-Charles.Gilbert/modulopt/optimization-routines/m1qn3/m1qn3.pdf>`__ for further details (0 by default)", "type": "integer", "default": 0}, "nupdates": {"description": "number of updates; for experts only (5 by default)", "type": "integer", "default": 5}}, "required": ["plugin"], "additionalProperties": false}, "scipy_std_minimizer": {"title": "scipy/std/minimizer", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "scipy"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "minimizer"}}, "required": ["name", "version"]}, "simulator": {"$ref": "#/$defs/gausscost_std_simulator"}, "method": {"description": "Type of solver.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "maxiter": {"description": "Maximum number of iterations", "type": "integer"}, "maxfun": {"description": "Maximum number of function evaluation", "type": "integer"}, "epsg": {"description": "Condition on the norm of the gradient. Converges if `||g||_k < epsg . ||g||_0`", "type": "number"}}, "required": ["plugin", "method"], "additionalProperties": false}, "scipy_conjugate_minimizer": {"title": "scipy/conjugate/minimizer", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "scipy"}, "version": {"description": "plugin version", "const": "conjugate"}, "type": {"description": "plugin type", "const": "minimizer"}}, "required": ["name", "version"]}, "simulator": {"$ref": "#/$defs/gausscost_std_simulator"}, "method": {"description": "Type of solver.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "maxiter": {"description": "Maximum number of iterations", "type": "integer"}, "maxfun": {"description": "Maximum number of function evaluation", "type": "integer"}, "epsg": {"description": "Condition on the norm of the gradient. Converges if `||g||_k < epsg . ||g||_0`", "type": "number"}}, "required": ["plugin", "method"], "additionalProperties": false}, "TM5_std_model": {"title": "TM5/std/model", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TM5"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "model"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/dummy_std_domain"}, "chemistry": {"$ref": "#/$defs/TM5_SINK-TIPP_chemistry"}, "flux": {"$ref": "#/$defs/TM5_std_flux"}, "meteo": {"$ref": "#/$defs/TM5_std_meteo"}, "inicond": {"$ref": "#/$defs/TM5_ic_field"}, "autoflush": {"description": "Cleans big temporary files when the simulation is done. Triggers the function ``flushrun`` of the model if available (False by default)", "type": "boolean", "default": false}, "direxec": {"description": "Path to executable and/or sources", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "auto_recompile": {"description": "Recompile sources", "type": "boolean"}, "make_clean": {"description": "When compiling, do a 'make clean' first.", "type": "boolean"}, "tracer": {"description": "The tracer to be used in the inverse modelling. (\"CH4\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "CH4"}, "nlay": {"description": "Number of layers in TM5 vertical grid. (25 by default)", "type": "integer", "default": 25}, "levs": {"description": "Number of layers in TM5 vertical grid. (\"tropo25a\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "tropo25a"}, "eclevs": {"description": "Number of layers in ECMWF vertical grid. (\"ml137\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "ml137"}, "projs": {"description": "Copy these projects from the source dir before compilation. Note that the variable tm5_dir must be defined in the yaml config file. (['base/src/', 'proj/levels/ml137/tropo25a/src/', 'proj/levels/ml137/src/', 'proj/tracer/CH4/src/'] by default)", "type": "array", "default": ["base/src/", "proj/levels/ml137/tropo25a/src/", "proj/levels/ml137/src/", "proj/tracer/CH4/src/"]}, "make_options": {"description": "Options to pass to make, such as '-j n' to have make run parallel threads. (\"-j4\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "-j4"}, "makedeps_dir": {"description": "The path to Makefile_makedeps, a makefile that automatically generates a list of dependencies. (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "fc": {"description": "Fortran compiler", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "linker": {"description": "Linker", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "fflags_gfortran": {"description": "Compiler flags for gfortran. Note that openmp only works for ifort, but that ifort is not yet supported for compiling TM5 in CIF. (\"-fdefault-real-8 -fdefault-double-8 -ffree-line-length-0 -g1 -O3 -fbacktrace -fcheck=array-temps -fcheck=bounds -fcheck=do -fcheck=pointer -fcheck=recursion -fallow-argument-mismatch -I/usr/local/gfortran/include \" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "-fdefault-real-8 -fdefault-double-8 -ffree-line-length-0 -g1 -O3 -fbacktrace -fcheck=array-temps -fcheck=bounds -fcheck=do -fcheck=pointer -fcheck=recursion -fallow-argument-mismatch -I/usr/local/gfortran/include "}, "ldflags_gfortran": {"description": "Linker flags for gfortran. (\"-Wl,-rpath=/usr/local/gfortran/lib -Wl,-rpath=/usr/local/gfortran/include -L/usr/local/gfortran/lib -l:libmfhdf.a -l:libdf.a -ljpeg -lz -lsz -L/usr/local/gfortran/lib -lhdf5_hl -lhdf5hl_fortran -lhdf5 -lhdf5_fortran -L/usr/local/gfortran/lib -lnetcdff -lnetcdf -lhdf5_hl -lhdf5hl_fortran -lhdf5_fortran -lhdf5 -lz -lm -lsz -L/usr/local/gfortran/lib -llapack -lblas \" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "-Wl,-rpath=/usr/local/gfortran/lib -Wl,-rpath=/usr/local/gfortran/include -L/usr/local/gfortran/lib -l:libmfhdf.a -l:libdf.a -ljpeg -lz -lsz -L/usr/local/gfortran/lib -lhdf5_hl -lhdf5hl_fortran -lhdf5 -lhdf5_fortran -L/usr/local/gfortran/lib -lnetcdff -lnetcdf -lhdf5_hl -lhdf5hl_fortran -lhdf5_fortran -lhdf5 -lz -lm -lsz -L/usr/local/gfortran/lib -llapack -lblas "}, "fflags_ifort": {"description": "Compiler flags for ifort. Note that compiling TM5 with ifort is not yet supported in CIF. (\"-traceback -warn errors -warn declarations -qopenmp -r8 -O3 -I/hpc/sw/netcdf-fortran-4.4.2-intel-seq/include -I/hpc/sw/hdf-4.2.9-intel-seq/include -I/hpc/sw/szip-2.1-intel/include -mkl=sequential \" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "-traceback -warn errors -warn declarations -qopenmp -r8 -O3 -I/hpc/sw/netcdf-fortran-4.4.2-intel-seq/include -I/hpc/sw/hdf-4.2.9-intel-seq/include -I/hpc/sw/szip-2.1-intel/include -mkl=sequential "}, "ldflags_ifort": {"description": "Linker flags for ifort. (\"-qopenmp -L/hpc/sw/netcdf-fortran-4.4.2-intel-seq/lib -lnetcdff -Wl,-rpath -Wl,/hpc/sw/netcdf-fortran-4.4.2-intel-seq/lib -L/hpc/sw/netcdf-4.3.1.1-intel-seq/lib -lnetcdf -Wl,-rpath -Wl,/hpc/sw/netcdf-4.3.1.1-intel-seq/lib -L/hpc/sw/hdf-4.2.9-intel-seq/lib -lmfhdf -ldf -L/hpc/sw/szip-2.1-intel/lib -lsz -ljpeg -lz -L/opt/intel/composer_xe_2015.0.090/mkl/lib/intel64 -lmkl_lapack95_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl -Wl,-rpath -Wl,/opt/intel/composer_xe_2015.0.090/mkl/lib/intel64 \" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "-qopenmp -L/hpc/sw/netcdf-fortran-4.4.2-intel-seq/lib -lnetcdff -Wl,-rpath -Wl,/hpc/sw/netcdf-fortran-4.4.2-intel-seq/lib -L/hpc/sw/netcdf-4.3.1.1-intel-seq/lib -lnetcdf -Wl,-rpath -Wl,/hpc/sw/netcdf-4.3.1.1-intel-seq/lib -L/hpc/sw/hdf-4.2.9-intel-seq/lib -lmfhdf -ldf -L/hpc/sw/szip-2.1-intel/lib -lsz -ljpeg -lz -L/opt/intel/composer_xe_2015.0.090/mkl/lib/intel64 -lmkl_lapack95_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl -Wl,-rpath -Wl,/opt/intel/composer_xe_2015.0.090/mkl/lib/intel64 "}, "meteo_macros": {"description": "Meteo macro's (my.tmm.define in tmvar-tm5-build.rc) (['with_tmm_tm5'] by default)", "type": "array", "default": ["with_tmm_tm5"]}, "model_macros": {"description": "Model macro's. When compiling with ifort, use with_mkl, else with_lapack. (['slopes', 'with_budgets', 'without_wet_deposition', 'without_photolysis', 'without_dry_deposition', 'with_convdiff', 'with_lapack'] by default)", "type": "array", "default": ["slopes", "with_budgets", "without_wet_deposition", "without_photolysis", "without_dry_deposition", "with_convdiff", "with_lapack"]}, "mdf_macros": {"description": "Datafile macro's (['with_hdf4', 'with_netcdf4'] by default)", "type": "array", "default": ["with_hdf4", "with_netcdf4"]}, "optim_emis_type": {"description": "Type of variable to be optimized for emissions (3 by default)", "type": "integer", "default": 3}, "TCCON_FTS_list": {"description": "path to a station list for TCCON sites; this may disappear in the future", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin", "direxec", "auto_recompile", "make_clean", "fc", "linker"], "additionalProperties": false}, "CHIMERE_std_model": {"title": "CHIMERE/std/model", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CHIMERE"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "model"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/CHIMERE_std_domain"}, "chemistry": {"$ref": "#/$defs/CHIMERE_gasJtab_chemistry"}, "flux": {"$ref": "#/$defs/CHIMERE_AEMISSIONS_flux"}, "bioflux": {"$ref": "#/$defs/CHIMERE_AEMISSIONS_flux"}, "meteo": {"$ref": "#/$defs/CHIMERE_std_meteo"}, "latcond": {"$ref": "#/$defs/CHIMERE_icbc_field"}, "topcond": {"$ref": "#/$defs/CHIMERE_icbc_field"}, "inicond": {"$ref": "#/$defs/CHIMERE_icbc_field"}, "autoflush": {"description": "Cleans big temporary files when the simulation is done. Triggers the function ``flushrun`` of the model if available (False by default)", "type": "boolean", "default": false}, "direxec": {"description": "Path to CHIMERE sources and/or executables. For executables, ``fwdchimere.e``, ``tlchimere.e`` and ``achimere.e`` should be in ``${path}/src``, ``${path}/src_tl`` and ``${path}/src_ad`` respective sub-folders.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_sources": {"description": "Path to CHIMERE sources. Overwrites direxec if specified. (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "nphour_ref": {"description": "Number of physical steps per hour. 6 is well tested for regional cases.", "type": "integer"}, "ichemstep": {"description": "Number of chemical refined iterations, i.e., refined time steps relative to physical time steps. Down to 1/4 degree resolution, phys=6 and step=1 is fine; For finer grids (5-10 kms), take at least step=4; For grids of 2-5 kms, try step=6 or more.", "type": "integer"}, "ideepconv": {"description": "Computation of the deep convection.", "enum": [0, 1, 2]}, "nivout": {"description": "Number of vertical layers in output files.", "type": "integer"}, "nlevemis": {"description": "Number of levels for emissions. Applies to AEMISSION files.", "type": "integer"}, "periods": {"description": "Length of sub-simulations periods. Use Pandas frequency strings (\"1D\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1D"}, "ihoursu": {"description": "Number of spin-up hours. (0 by default)", "type": "integer", "default": 0}, "useemisb": {"description": "Include biogenic emissions, i.e. the file BEMISSIONS.nc (False by default)", "type": "boolean", "default": false}, "dumpnctype": {"description": "Precision for the output NetCDF files. Do not impact the values in mod.txt (\"float\" by default)", "enum": ["double", "float"], "default": "float"}, "nc4type": {"description": "Use NetCDF4 or not (NetCDF3 classic) (True by default)", "type": "boolean", "default": true}, "dumpncoutput": {"description": "Dump outputs into a NetCDF file. (True by default)", "type": "boolean", "default": true}, "dumpncpar": {"description": "Dump parameters into a NetCDF file. (False by default)", "type": "boolean", "default": false}, "usechemistry": {"description": "Use chemistry. (0 by default)", "enum": [0, 1], "default": 0}, "useemissions": {"description": "Use emisions. (1 by default)", "enum": [0, 1], "default": 1}, "usetransmix": {"description": "Use transport and mixing. (1 by default)", "enum": [0, 1], "default": 1}, "usewetdepos": {"description": "Use wet deposition. (0 by default)", "enum": [0, 1], "default": 0}, "usedepos": {"description": "Use dry deposition. (0 by default)", "enum": [0, 1], "default": 0}, "nsavedepos": {"description": "Save deposition in NetCDF file every ... hours. (4 by default)", "type": "integer", "default": 4}, "nitgs": {"description": "Number of Gauss-Seidel iterations in the TWOSTEP solver. (1 by default)", "enum": [1, 2], "default": 1}, "nitgssu": {"description": "Same during spin-up (1 by default)", "enum": [1, 2], "default": 1}, "useabsclipconc": {"description": "Clip small (in absolute value) concentrations when = 1;  clip small (including all negative) concentrations when = 0. Warning: the clipping is done in twostep,  not only when writing the output writing; thus, clipping must be used with care as it can alter the mass conservationsee CHIMERE doc for more information on the use of clipconc (0 by default)", "enum": [0, 1], "default": 0}, "clipconc": {"description": "Clipping concentration (in molecule/cm3) (1 by default)", "type": "number", "default": 1}, "ntyperate": {"description": "Max number of reaction types (50 by default)", "type": "integer", "default": 50}, "nvegtype": {"description": "Number of vegetation types (16 by default)", "type": "integer", "default": 16}, "nlduse": {"description": "Max number of landuse classes (9 by default)", "type": "integer", "default": 9}, "nparammax": {"description": "Max number of output parameters (30 by default)", "type": "integer", "default": 30}, "hpulse": {"description": "Hour of emission pulse. All emissions before this hour from the beginning of the simulations are ignored, and all transport/chemistry computations are skipped.To be used when computing response functions from a given hour (0 by default)", "type": "integer", "default": 0}, "auto-recompile": {"description": "Auto-compile executables before running if executables not available (False by default)", "type": "boolean", "default": false}, "force-recompile": {"description": "Force compilation even if executables available (False by default)", "type": "boolean", "default": false}, "compile-mode": {"description": "Compilation mode (\"PROD\" by default)", "enum": ["PROD", "DEBUG"], "default": "PROD"}, "compile-clean": {"description": "Cleaning repositories before compiling; slows the compilation but prevent side-effects from re-compiling.Can be switched of for minor modifications in the code (True by default)", "type": "boolean", "default": true}, "compile-only": {"description": "Compile only part of the available CHIMERE modes (tangent-linear, forward and adjoint) (['A', 'L', 'D'] by default)", "type": "array", "default": ["A", "L", "D"]}, "force-compile-stderr": {"description": "Force printing stderr from compiling (even when executable correctly generated after compiling) (False by default)", "type": "boolean", "default": false}, "nlevemis_bio": {"description": "Number of vertical levels in biogenic emissions (BEMISSIONS.nc) (1 by default)", "type": "integer", "default": 1}, "nmdoms": {"description": "Number of parallel domains in meridional direction (1 by default)", "type": "integer", "default": 1}, "nzdoms": {"description": "Number of parallel domains in zonal direction (1 by default)", "type": "integer", "default": 1}, "mpirun": {"description": "path to mpirun (\"mpirun\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "mpirun"}, "ignore_input_dates": {"description": "Forces CHIMERE to by-pass the checks on the consistency of dates in AEMISSIONS, BEMISSIONS,   BOUN_CONCS, INI_COCNS and METEO; useful to use input files from another periodwithout duplicating them only for the dates. (False by default)", "type": "boolean", "default": false}, "useRAMonly": {"description": "Force relying on the RAM only, instead of TMP files, to save forward simulations necessary for the adjoint. This trades I/O burden with TMP files with RAM burden  .. warning::  This option can use a LOT of RAM. Please test the option on a simple case and compare with a case using TMP files. Depending on your cluster and your test case, choose the fastest one. (False by default)", "type": "boolean", "default": false}, "force_clean_run": {"description": "Clean run subdirectory just after running to limit disk space usage (False by default)", "type": "boolean", "default": false}, "stopORmore": {"description": "To avoid running simulations for which the simulated concentrations are smaller than a given thresholdfor a set of species; please provide a list of tuples (species,threshold) (species is from ACTIVE_SPECIES and treshold in XXUNITXX ([] by default)", "type": "array", "default": []}, "pre-computed-meteo": {"description": "Simplified METEO mapper when the meteo is already computed. Set to False if using `diagmet` transform (True by default)", "type": "boolean", "default": true}}, "required": ["plugin", "direxec", "nphour_ref", "ichemstep", "ideepconv", "nivout", "nlevemis"], "additionalProperties": false}, "CHIMERE_acc_model": {"title": "CHIMERE/acc/model", "description": "CHIMERE with OpenACC annotations", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CHIMERE"}, "version": {"description": "plugin version", "const": "acc"}, "type": {"description": "plugin type", "const": "model"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/CHIMERE_std_domain"}, "chemistry": {"$ref": "#/$defs/CHIMERE_gasJtab_chemistry"}, "flux": {"$ref": "#/$defs/CHIMERE_AEMISSIONS_flux"}, "bioflux": {"$ref": "#/$defs/CHIMERE_AEMISSIONS_flux"}, "meteo": {"$ref": "#/$defs/CHIMERE_std_meteo"}, "latcond": {"$ref": "#/$defs/CHIMERE_icbc_field"}, "topcond": {"$ref": "#/$defs/CHIMERE_icbc_field"}, "inicond": {"$ref": "#/$defs/CHIMERE_icbc_field"}, "autoflush": {"description": "Cleans big temporary files when the simulation is done. Triggers the function ``flushrun`` of the model if available (False by default)", "type": "boolean", "default": false}, "direxec": {"description": "Path to CHIMERE sources and/or executables. For executables, ``fwdchimere.e``, ``tlchimere.e`` and ``achimere.e`` should be in ``${path}/src``, ``${path}/src_tl`` and ``${path}/src_ad`` respective sub-folders.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_sources": {"description": "Path to CHIMERE sources. Overwrites direxec if specified. (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "nphour_ref": {"description": "Number of physical steps per hour. 6 is well tested for regional cases.", "type": "integer"}, "ichemstep": {"description": "Number of chemical refined iterations, i.e., refined time steps relative to physical time steps. Down to 1/4 degree resolution, phys=6 and step=1 is fine; For finer grids (5-10 kms), take at least step=4; For grids of 2-5 kms, try step=6 or more.", "type": "integer"}, "ideepconv": {"description": "Computation of the deep convection.", "enum": [0, 1, 2]}, "nivout": {"description": "Number of vertical layers in output files.", "type": "integer"}, "nlevemis": {"description": "Number of levels for emissions. Applies to AEMISSION files.", "type": "integer"}, "periods": {"description": "Length of sub-simulations periods. Use Pandas frequency strings (\"1D\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1D"}, "ihoursu": {"description": "Number of spin-up hours. (0 by default)", "type": "integer", "default": 0}, "useemisb": {"description": "Include biogenic emissions, i.e. the file BEMISSIONS.nc (False by default)", "type": "boolean", "default": false}, "dumpnctype": {"description": "Precision for the output NetCDF files. Do not impact the values in mod.txt (\"float\" by default)", "enum": ["double", "float"], "default": "float"}, "nc4type": {"description": "Use NetCDF4 or not (NetCDF3 classic) (True by default)", "type": "boolean", "default": true}, "dumpncoutput": {"description": "Dump outputs into a NetCDF file. (True by default)", "type": "boolean", "default": true}, "dumpncpar": {"description": "Dump parameters into a NetCDF file. (False by default)", "type": "boolean", "default": false}, "usechemistry": {"description": "Use chemistry. (0 by default)", "enum": [0, 1], "default": 0}, "useemissions": {"description": "Use emisions. (1 by default)", "enum": [0, 1], "default": 1}, "usetransmix": {"description": "Use transport and mixing. (1 by default)", "enum": [0, 1], "default": 1}, "usewetdepos": {"description": "Use wet deposition. (0 by default)", "enum": [0, 1], "default": 0}, "usedepos": {"description": "Use dry deposition. (0 by default)", "enum": [0, 1], "default": 0}, "nsavedepos": {"description": "Save deposition in NetCDF file every ... hours. (4 by default)", "type": "integer", "default": 4}, "nitgs": {"description": "Number of Gauss-Seidel iterations in the TWOSTEP solver. (1 by default)", "enum": [1, 2], "default": 1}, "nitgssu": {"description": "Same during spin-up (1 by default)", "enum": [1, 2], "default": 1}, "useabsclipconc": {"description": "Clip small (in absolute value) concentrations when = 1;  clip small (including all negative) concentrations when = 0. Warning: the clipping is done in twostep,  not only when writing the output writing; thus, clipping must be used with care as it can alter the mass conservationsee CHIMERE doc for more information on the use of clipconc (0 by default)", "enum": [0, 1], "default": 0}, "clipconc": {"description": "Clipping concentration (in molecule/cm3) (1 by default)", "type": "number", "default": 1}, "ntyperate": {"description": "Max number of reaction types (50 by default)", "type": "integer", "default": 50}, "nvegtype": {"description": "Number of vegetation types (16 by default)", "type": "integer", "default": 16}, "nlduse": {"description": "Max number of landuse classes (9 by default)", "type": "integer", "default": 9}, "nparammax": {"description": "Max number of output parameters (30 by default)", "type": "integer", "default": 30}, "hpulse": {"description": "Hour of emission pulse. All emissions before this hour from the beginning of the simulations are ignored, and all transport/chemistry computations are skipped.To be used when computing response functions from a given hour (0 by default)", "type": "integer", "default": 0}, "auto-recompile": {"description": "Auto-compile executables before running if executables not available (False by default)", "type": "boolean", "default": false}, "force-recompile": {"description": "Force compilation even if executables available (False by default)", "type": "boolean", "default": false}, "compile-mode": {"description": "Compilation mode (\"PROD\" by default)", "enum": ["PROD", "DEBUG"], "default": "PROD"}, "compile-clean": {"description": "Cleaning repositories before compiling; slows the compilation but prevent side-effects from re-compiling.Can be switched of for minor modifications in the code (True by default)", "type": "boolean", "default": true}, "compile-only": {"description": "Compile only part of the available CHIMERE modes (tangent-linear, forward and adjoint) (['A', 'L', 'D'] by default)", "type": "array", "default": ["A", "L", "D"]}, "force-compile-stderr": {"description": "Force printing stderr from compiling (even when executable correctly generated after compiling) (False by default)", "type": "boolean", "default": false}, "nlevemis_bio": {"description": "Number of vertical levels in biogenic emissions (BEMISSIONS.nc) (1 by default)", "type": "integer", "default": 1}, "nproc": {"description": "Force using a given number of processors. By default, CIMERE GPU uses all available processors", "type": "integer"}, "ignore_input_dates": {"description": "Forces CHIMERE to by-pass the checks on the consistency of dates in AEMISSIONS, BEMISSIONS,   BOUN_CONCS, INI_COCNS and METEO; useful to use input files from another periodwithout duplicating them only for the dates. (False by default)", "type": "boolean", "default": false}, "useRAMonly": {"description": "Force relying on the RAM only, instead of TMP files, to save forward simulations necessary for the adjoint. This trades I/O burden with TMP files with RAM burden  .. warning::  This option can use a LOT of RAM. Please test the option on a simple case and compare with a case using TMP files. Depending on your cluster and your test case, choose the fastest one. (False by default)", "type": "boolean", "default": false}, "force_clean_run": {"description": "Clean run subdirectory just after running to limit disk space usage (False by default)", "type": "boolean", "default": false}, "stopORmore": {"description": "To avoid running simulations for which the simulated concentrations are smaller than a given thresholdfor a set of species; please provide a list of tuples (species,threshold) (species is from ACTIVE_SPECIES and treshold in XXUNITXX ([] by default)", "type": "array", "default": []}, "pre-computed-meteo": {"description": "Simplified METEO mapper when the meteo is already computed. Set to False if using `diagmet` transform (True by default)", "type": "boolean", "default": true}, "keep_log_stderr": {"description": "Redirect the standard error from chimere.e to prof.log  (particularly useful for checking time in ACC) (False by default)", "type": "boolean", "default": false}}, "required": ["plugin", "direxec", "nphour_ref", "ichemstep", "ideepconv", "nivout", "nlevemis"], "additionalProperties": false}, "dummy_std_model": {"title": "dummy/std/model", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "dummy"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "model"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/dummy_std_domain"}, "flux": {"$ref": "#/$defs/dummy_nc_flux"}, "meteo": {"$ref": "#/$defs/dummy_csv_meteo"}, "autoflush": {"description": "Cleans big temporary files when the simulation is done. Triggers the function ``flushrun`` of the model if available (False by default)", "type": "boolean", "default": false}, "file_pg": {"description": "file with Pasquill-Gifford stability classes. Give correspondences between stability classes and gaussian dispersion parameters. The file is provided alongside pyCIF sources in the directory: ``${CIF_root}/model_sources/dummy_gauss/``", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "periods": {"description": "length of simulation sub-periods (\"1D\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1D"}, "tstep": {"description": "length of simulation temproal steps (\"1h\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1h"}, "save_H": {"description": "save the sensitivity matrix to a pickle file (False by default)", "type": "boolean", "default": false}, "reload_H": {"description": "Load the sensitivity matrix from the given pickle file (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}}, "required": ["plugin", "file_pg"], "additionalProperties": false}, "ICON-ART_std_model": {"title": "ICON-ART/std/model", "description": "ICOsahedral Nonhydrostatic weather- and climate model with Aerosols and Reactive Trace gases", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "ICON-ART"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "model"}}, "required": ["name", "version"]}, "autoflush": {"description": "Cleans big temporary files when the simulation is done. Triggers the function ``flushrun`` of the model if available (False by default)", "type": "boolean", "default": false}, "periods": {"description": "Frequency for sub-simulations (\"1D\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1D"}, "output_resolution": {"description": "Temporal resolution of outputs (\"1h\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1h"}, "input_resolution": {"description": "Temporal resolution of inputs. Must not be less that 1H. (\"1h\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1h"}, "icon_dir": {"description": "Directory where ICON-ART is installed on the computer. Radiation, ART files, etc, are stored in this directory.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "icon_exe": {"description": "Path to the ICON executable to use. Might be a location different from the icon_dir.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "namelist_file": {"description": "The iconart namelist file. Some of the namelist parameter cannot be specified and will be overriden by this plugin. You will get warning inside the log file for these parameters.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "meteo_inicond_file": {"description": "File containing the meteorological variables required for initializing ICON.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "meteo_lbc_dir": {"description": "Directory where the meteorological lateral boundary conditions files are found.  The directory must contain files with the following format: '<meteo_lbc_basename>_%Y%m%d%H_lbc.nc'. (False by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": false}, "meteo_lbc_file": {"description": "Format of the meteorological lateral boundary conditions files. (\"ifs\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "ifs"}, "inicond_dry2moist": {"description": "Convert inicond variable from dry vmr to moist vmr before dumping the file. (False by default)", "type": "boolean", "default": false}, "lbc_dry2moist": {"description": "Convert inicond variable from dry vmr to moist vmr before dumping the file. (False by default)", "type": "boolean", "default": false}, "use_hourofyear": {"description": "If True, dump OEM temporal scaling factors using the hour_of_year feature, allowing more flux representativeness.  Users should be aware that when using this option, only the hours corresponding to the period being simulated are dumped to avoid oom errors, and not the full year.  It leverages the option 'hourofyear_relative\" in ICON specifically developed for the CIF. (True by default)", "type": "boolean", "default": true}, "run_icon_with_another_job": {"description": "If True, a new job will be launched to specifically run the model. The platform option 'nodes_model' allows to specify the number of nodes to be used. A Platform plugin is required if this option is True. (True by default)", "type": "boolean", "default": true}, "dump_output_latlon": {"description": "Also dump outputs on a regular lat/lon grid. (False by default)", "type": "boolean", "default": false}, "output_interp_neighbors": {"description": "Number of adjacent cells to consider for horizontal interpolation.  To convert ICON outputs to observation equivalents, a distance-weighted interpolation is applied. It takes the closest cells to the station into account and calculate the distance between the station and the center of the nth closest adjacent cells. (5 by default)", "type": "integer", "default": 5}, "full_interpolation": {"description": "If only the level is provided for an observation rather than the altitude (typically for satellites), this option allows to find the levels of the adjacent values corresponding to the same altitude of the observation.  If this option is set to False, the same level is used to fetch the adjacent values.  This option might improve the comparison to satellite observations but also multiply the numbers of observations to interpolate by a factor of `nlev` * `output_interp_neighbors`. Therefore, the computational time is drastically increase and may become too large if the number of observations to process is high (typically >1e5). (True by default)", "type": "boolean", "default": true}, "interpolation_apply_nchunks": {"description": "Number of chunks used to apply the interpolation to the ICON outputs for each observation.  Maximum value should be 36 with Daint.  If the number of tracers is important, using the maximum value might result in oom errors. (10 by default)", "type": "integer", "default": 10}, "dont_run": {"description": "If True, the model will not run. Useful for checking the inputs. (False by default)", "type": "boolean", "default": false}, "force_clean_run": {"description": "Clean run subdirectory just after running to limit disk space usage. (False by default)", "type": "boolean", "default": false}, "test_mode": {"description": "Run ICON-ART without initial conditions, turbulence and convection. (False by default)", "type": "boolean", "default": false}}, "required": ["plugin", "icon_dir", "icon_exe", "namelist_file", "meteo_inicond_file"], "additionalProperties": false}, "Lagrangian_std_model": {"title": "Lagrangian/std/model", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "Lagrangian"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "model"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/FLEXPART_std_domain"}, "flux": {"$ref": "#/$defs/FLEXPART_nc_flux"}, "autoflush": {"description": "Cleans big temporary files when the simulation is done. Triggers the function ``flushrun`` of the model if available (False by default)", "type": "boolean", "default": false}, "read_background": {"description": "Read sensitivity to the background according to FLEXPART (False by default)", "type": "boolean", "default": false}, "read_surface_sensitivity": {"description": "Read sensitivity to the surface fluxes according to FLEXPART/STILT (True by default)", "type": "boolean", "default": true}, "footprint_type": {"description": "Type of footprints to read (\"FLEXPART\" by default)", "enum": ["FLEXPART", "STILT"], "default": "FLEXPART"}, "period": {"description": "Length of periods along which simulations are split (\"1MS\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1MS"}, "subperiod": {"description": "Complementary to `period` if inputs should be at a better resolution than `period` (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "numscale": {"description": "Scaling factor to convert from footprint native resolution to`ppm / (ng/m2/s)` (1000000000000.0 by default)", "type": "number", "default": 1000000000000.0}, "coeff": {"description": "Conversion coefficient to convert from native output unit to ppb/ppt/ppm, etc. A coefficient of `1` returns `ppm`; `1e-3` returns `ppb`, etc. (0.001 by default)", "type": "number", "default": 0.001}, "mmair": {"description": "Molar mass of dry air (28.97 by default)", "type": "number", "default": 28.97}, "footprint_dir_format": {"description": "Structure for the footprints per stations. The format can use date formatting (\"%Y%m\" by default)", "default": "%Y%m"}, "footprint_stat_subdir_format": {"description": "Structure for the footprints split by stations (\"{stat}\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "{stat}"}, "footprint_date_format": {"description": "Date format for converting observation dates to footprint data (\"%Y%m%d%H%M%S\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "%Y%m%d%H%M%S"}, "file_nest_format": {"description": "Format of the footprint file names.  .. note:: It is possible to dynamically include the name of the station in `file_nest_format` (but also in `footprint_date_format` and `footprint_dir_format`.  To do so, simply include the string `{stat}` in the variable.  For instance, if `file_nest_format` is `footprint_{stat}_%Y%m.nc`, it will be replaced by `footprint_PAL_201001.nc` for the station `PAL` for the month of January 2010.  Similarly, the network column can be used with `{network}`. (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "file_glob_format": {"description": "Same as `file_nest_format` for footprints outside the regional domain. (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "file_ini_format": {"description": "Same as `file_nest_format` for the initial condition sensitivity files. (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "run_dir_nest": {"description": "Directory where footprints for the nested domain are stored. In the case of a non-nested domain, this argument is used for the overall domain.  .. note:: The expected structure of the footprint folder is:  `run_dir_nest` \u251c\u2500\u2500 `station_ID#1` \u2502   \u2514\u2500\u2500 `footprint_dir_format` \u2502       \u2514\u2500\u2500 `file_nest_format` \u2514\u2500\u2500 `station_ID#2` \u2514\u2500\u2500 `footprint_dir_format` \u2514\u2500\u2500 `file_nest_format` (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "run_dir_glob": {"description": "Same as `run_dir_nest` for the outer domain.  .. warning:: For non-nested domains, `run_dir_glob` is used by default to read footprints. It is possible to force reading the inside domain with `force_read_nest` (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "run_dir_bg": {"description": "Same as `run_dir_nest` for reading the influence of the background. (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "release_shift": {"description": "Releases start X time before observation starts. Accepts pandas date syntax (\"0H\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "0H"}, "footprint_format": {"description": "Format of FLEXPART/STILT output files 'grid_time' (\"bin\" by default)", "enum": ["bin", "nc"], "default": "bin"}, "force_read_nest": {"description": "Use it to force using the nested format even when simulations where nested, but the CIF uses them as non-nested. It has no impact for nested simulations, but for non-nested, if the original FLEXPART/STILT simulation was nested and force_read_nest is False, the CIF will use the outer domain by default, which may lead to shape issues (False by default)", "type": "boolean", "default": false}, "dump_debug": {"description": "Dumps intermediate datastores (contributions from nested fluxes, global fluxes and initial conditions) in the model sub-directory (False by default)", "type": "boolean", "default": false}, "backward_trajdays": {"description": "Duration of backward trajectories. If not specified, automatically inferred from the domain information.  .. warning:: This argument should be explicitly specified only with STILT (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "ref_header_ID": {"description": "Name of the station to be used to initialize the header for the model footprints. If not specified, The first station of the observation files will be used.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "nthreads": {"description": "Number of threads to read in parallel grid files. There is a balance to find between to few threads which do not optimize anything and too many threads that overload I/O. (1 by default)", "type": "integer", "default": 1}, "flexversion": {"description": "Version of FLEXPART used to generate footprints (10.4 by default)", "type": "number", "default": 10.4}, "exp_decay": {"description": "Apply an exponential decay of the emitted species from fluxes to observation data.", "type": "object", "additionalProperties": false, "properties": {"halflife": {"description": "The half time of the exponential decay to apply", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "inverse_decay": {"description": "Applies a exponential convergence toward an asymptote (False by default)", "type": "boolean", "default": false}}}, "station_name_dict": {"description": "Information to translate station IDs from CIF to footprint file names.", "type": "object", "additionalProperties": false, "properties": {"dict_file": {"description": "Path to the file to use as dictionary", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "separator": {"description": "Separator to use to parse the parse `dict_file` (\";\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ";"}, "CIF_stations_id": {"description": "Column name to use as CIF station names (\"CIF_stations_id\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "CIF_stations_id"}, "footprint_stations_id": {"description": "Column name to use in footprint station name (\"footprint_stations_id\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "footprint_stations_id"}}}, "reload_footprints": {"description": "Keeps in memory previous footprint in case other observation have the same release. (False by default)", "type": "boolean", "default": false}}, "required": ["plugin"], "additionalProperties": false}, "LMDZ_acc_model": {"title": "LMDZ/acc/model", "description": "LMDz with OpenACC annotations", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "acc"}, "type": {"description": "plugin type", "const": "model"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_std_domain"}, "flux": {"$ref": "#/$defs/LMDZ_sflx_flux"}, "chemistry": {"$ref": "#/$defs/CHIMERE_gasJtab_chemistry"}, "emis_species": {"$ref": "#/$defs/LMDZ_bin_flux"}, "meteo": {"$ref": "#/$defs/LMDZ_mass-fluxes-acc_meteo"}, "inicond": {"$ref": "#/$defs/LMDZ_ic_field"}, "prescrconcs": {"$ref": "#/$defs/LMDZ_prescrconcs_field"}, "kinetic": {"$ref": "#/$defs/LMDZ_photochem_field"}, "prodloss3d": {"$ref": "#/$defs/LMDZ_prodloss3d_field"}, "autoflush": {"description": "Clean sub-directories of temporary files (mod.bin, etc.) (True by default)", "type": "boolean", "default": true}, "run_command": {"description": "Commnand used to run DISPERSION executable: :bash:`run_command dispersion.e`. By default, the DISPERSION executable will be run with :bash:`./dispersion.e (\"./dispersion.e\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "./dispersion.e"}, "fileexec": {"description": "path to DISPERSION executable", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_sources": {"description": "Path to DISPERSION sources. Overwrites fileexec if specified. (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "modules": {"description": "Modules to be loaded for compiling and running LMDZ, if incompatible with the modules required to run PyCIF. This option should be set through a :bash:`platform` plugin.", "type": "array"}, "periods": {"description": "Frequency for sub-simulations (\"1MS\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1MS"}, "flx_tresol": {"description": "Expected time step between flux values in the executable (\"1D\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1D"}, "physic": {"description": "Use physics in LMDZ (True by default)", "type": "boolean", "default": true}, "compressed_phystoke": {"description": "Use compressed phystoke files (True by default)", "type": "boolean", "default": true}, "no_trajq": {"description": "Do not write 'trajq_*.bin' files. WARNING: 'trajq_*.bin' files are necessary for the adjoint mode (False by default)", "type": "boolean", "default": false}, "dump_chemical_sink": {"description": "Write tracers chemical and tracers lifetime sink in NetCDF files. (False by default)", "type": "boolean", "default": false}, "dump": {"description": "Dump trajq as netCDF (False by default)", "type": "boolean", "default": false}, "do_chemistry": {"description": "Use the chemistry (True by default)", "type": "boolean", "default": true}, "approx_operator": {"description": "Approximated operator arguments. The approximated operator is used in the \"tangent-linear\" mode when all the defined thresholds are reached or in \"adjoint\" mode when the the parallel observation operator is used. The approximated operator operator considers the atmosphere as well mixed (i.e. uniform) and only compute the chemical losses with a simple newton scheme.", "type": "object", "additionalProperties": false, "properties": {"time_step": {"description": "time step for the newton scheme integration", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "condition": {"description": "condition on which the approximated operator replaces the model, either 'and' (when all species threshold are met, default) or 'or' (when at least one species threshold is met) (\"and\" by default)", "enum": ["and", "or"], "default": "and"}, "species_threshold": {"type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "species name", "type": "object", "additionalProperties": false, "properties": {"threshold": {"description": "concentration threshold in ppm", "type": "number"}}}}}}}, "compiler": {"description": "Compiler to use", "enum": ["gfortran", "mpif90", "nvfortran"]}, "auto-recompile": {"description": "Auto-compile executables before running if executables not available (False by default)", "type": "boolean", "default": false}, "force-recompile": {"description": "Force compilation even if executables available (False by default)", "type": "boolean", "default": false}, "force-compile-stderr": {"description": "Force printing what happened during compiling (False by default)", "type": "boolean", "default": false}, "compile-clean": {"description": "Cleaning repositories before compiling; slows the compilation but prevent side-effects from re-compiling.Can be switched of for minor modifications in the code (False by default)", "type": "boolean", "default": false}, "compile-mode": {"description": "Compilation mode (\"PROD\" by default)", "enum": ["PROD", "DEBUG"], "default": "PROD"}, "compile-acc-target": {"description": "Target for ACC annotations (\"multicore\" by default)", "enum": ["multicore", "gpu", "none"], "default": "multicore"}, "nproc": {"description": "Force using a given number of processors. By default, LMDz uses all available processors", "type": "integer"}, "dont_perturb_species": {"description": "List of species to not perturb in batch sampling", "type": "array"}, "copy_inputs": {"description": "Copy (rather creating symbolic links) the input files ([] by default)", "default": []}}, "required": ["plugin", "fileexec"], "additionalProperties": false}, "LMDZ_reg-ico_model": {"title": "LMDZ/reg-ico/model", "description": "LMDZ with regular and dynamico grids", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "reg-ico"}, "type": {"description": "plugin type", "const": "model"}}, "required": ["name", "version"]}, "autoflush": {"description": "Clean sub-directories of temporary files (True by default)", "type": "boolean", "default": true}, "grid": {"description": "Grid type (\"regular\" by default)", "enum": ["regular", "dynamico"], "default": "regular"}, "executable": {"description": "Path to Dispersion executable, used if compiling is not required", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "source_dir": {"description": "Path to Dispersion sources. Must be specified if `executable` is not provided, or if compiling is required. Defaults to '[CIF directory]/model_sources/dispersion' (correct only if `pycif` is installed in editable mode).", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "run_command": {"description": "Commnand used to run DISPERSION executable: :bash:`run_command dispersion.e`. By default, the DISPERSION executable will be run with :bash:`./dispersion.e` This option should be set through a :bash:`platform` self. (\"./dispersion.e\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "./dispersion.e"}, "modules": {"description": "Modules to be loaded for compiling and running LMDZ, if incompatible with the modules required to run PyCIF. This option should be set through a :bash:`platform` self.", "type": "array"}, "do_physics": {"description": "Use physics in the model. (True by default)", "type": "boolean", "default": true}, "do_chemistry": {"description": "Use SACS linear chemistry in the model. (True by default)", "type": "boolean", "default": true}, "period_freq": {"description": "Simulation sub-periods frequency. Sub-periods covering two months will be cut (\"1MS\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1MS"}, "flux_freq": {"description": "Fluxes time resolution used in the model. Total fluxes will be interpolated to this frequency. (\"1D\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1D"}, "no_trajectory_file": {"description": "Do not write 'trajq_*.bin' files. WARNING: 'trajq_*.bin' files are necessary for the adjoint mode (False by default)", "type": "boolean", "default": false}, "dump": {"description": "Dump 'trajq' trajectory files as NetCDF files (False by default)", "type": "boolean", "default": false}, "dump_total_mass": {"description": "Write tracers total mass in NetCDF files. (False by default)", "type": "boolean", "default": false}, "dump_chemical_sink": {"description": "Write tracers chemical sink in NetCDF files. (False by default)", "type": "boolean", "default": false}, "dump_chemical_lifetime": {"description": "Write tracers chemical lifetime in NetCDF files. (False by default)", "type": "boolean", "default": false}, "compiler": {"description": "Compiler to use (\"nvfortran\" by default)", "enum": ["gfortran", "nvfortran", "mpif90"], "default": "nvfortran"}, "auto-recompile": {"description": "Automatically compile LMDZ sources before running if the executable file is not present (False by default)", "type": "boolean", "default": false}, "force-recompile": {"description": "Force compilation even if the executable file is not present (False by default)", "type": "boolean", "default": false}, "compile-clean": {"description": "Cleaning before compiling by calling :bash:`make [...] clean` (False by default)", "type": "boolean", "default": false}, "compile-mode": {"description": "Compilation mode (\"PROD\" by default)", "enum": ["PROD", "DEBUG"], "default": "PROD"}, "compile-acc-target": {"description": "Target for ACC annotations (\"multicore\" by default)", "enum": ["multicore", "gpu", "none"], "default": "multicore"}, "nproc": {"description": "Force using a given number of processors. By default, LMDZ uses all available processors", "type": "integer"}, "env_variables": {"description": "Environment variables to set when running LMDZ", "type": "object"}, "dont_perturb_species": {"description": "List of species to not perturb in batch sampling", "type": "array"}, "approx_operator": {"description": "Approximated operator arguments. The approximated operator is used in the \"tangent-linear\" mode when all the defined thresholds are reached or in \"adjoint\" mode when the the parallel observation operator is used. The approximated operator operator considers the atmosphere as well mixed (i.e. uniform) and only compute the chemical losses with a simple newton scheme.", "type": "object", "additionalProperties": false, "properties": {"time_step": {"description": "time step for the newton scheme integration", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "condition": {"description": "condition on which the approximated operator replaces the model, either 'and' (when all species threshold are met, default) or 'or' (when at least one species threshold is met) (\"and\" by default)", "enum": ["and", "or"], "default": "and"}, "species_threshold": {"type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "species name", "type": "object", "additionalProperties": false, "properties": {"threshold": {"description": "concentration threshold in ppm", "type": "number"}}}}}}}}, "required": ["plugin"], "additionalProperties": false}, "LMDZ_std_model": {"title": "LMDZ/std/model", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LMDZ"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "model"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/LMDZ_std_domain"}, "flux": {"$ref": "#/$defs/LMDZ_sflx_flux"}, "chemistry": {"$ref": "#/$defs/CHIMERE_gasJtab_chemistry"}, "emis_species": {"$ref": "#/$defs/LMDZ_bin_flux"}, "meteo": {"$ref": "#/$defs/LMDZ_mass-fluxes_meteo"}, "inicond": {"$ref": "#/$defs/LMDZ_ic_field"}, "prescrconcs": {"$ref": "#/$defs/LMDZ_prescrconcs_field"}, "kinetic": {"$ref": "#/$defs/LMDZ_photochem_field"}, "prodloss3d": {"$ref": "#/$defs/LMDZ_prodloss3d_field"}, "autoflush": {"description": "Clean sub-directories of temporary files (mod.bin, etc.) (True by default)", "type": "boolean", "default": true}, "fileexec": {"description": "path to DISPERSION executable", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_sources": {"description": "Path to DISPERSION sources. Overwrites fileexec if specified. (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "file_controle": {"description": "path to a restart file. It is used to update the controle variables in the initial condition files. It is especially important when directly interpolating initial conditions from another dataset. It is also used to update the initial date if different from the restart provided in the data vector", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "periods": {"description": "Frequency for sub-simulations (\"1MS\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1MS"}, "flx_tresol": {"description": "Expected time step between flux values in the executable (\"1D\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1D"}, "physic": {"description": "Use physics in LMDZ (True by default)", "type": "boolean", "default": true}, "thermals": {"description": "Use thermals (False by default)", "type": "boolean", "default": false}, "compressed_phystoke": {"description": "Use compressed phystoke files (False by default)", "type": "boolean", "default": false}, "conv_scheme": {"description": "Convection scheme to use for the deep-convection (\"TK\" by default)", "enum": ["TK", "KE", "KE-Therm"], "default": "TK"}, "no_trajq": {"description": "Do not write 'trajq_*.bin' files. WARNING: 'trajq_*.bin' files are necessary for the adjoint mode (False by default)", "type": "boolean", "default": false}, "dump": {"description": "Dump trajq as netCDF (False by default)", "type": "boolean", "default": false}, "do_chemistry": {"description": "Use the chemistry (True by default)", "type": "boolean", "default": true}, "auto-recompile": {"description": "Auto-compile executables before running if executables not available (False by default)", "type": "boolean", "default": false}, "force-recompile": {"description": "Force compilation even if executables available (False by default)", "type": "boolean", "default": false}, "force-compile-stderr": {"description": "Force printing what happened during compiling (False by default)", "type": "boolean", "default": false}, "compile-clean": {"description": "Cleaning repositories before compiling; slows the compilation but prevent side-effects from re-compiling.Can be switched of for minor modifications in the code (False by default)", "type": "boolean", "default": false}, "compile-mode": {"description": "Compilation mode (\"PROD\" by default)", "enum": ["PROD", "DEBUG"], "default": "PROD"}, "compiler": {"description": "Compiler to use (\"ifort\" by default)", "enum": ["ifort", "gfortran"], "default": "ifort"}, "mpirun": {"description": "path to mpirun (\"mpirun\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "mpirun"}, "run_options": {"description": "MPI options ([] by default)", "default": []}, "nfilun": {"description": "Parameter used in LMDZ sources in :bash:`libf/firtrez/parafilt.h` (16 by default)", "type": "integer", "default": 16}, "nfilus": {"description": "Parameter used in LMDZ sources in :bash:`libf/firtrez/parafilt.h` (15 by default)", "type": "integer", "default": 15}, "nproc": {"description": "Force using a given number of processors. By default, LMDZ uses all available processors"}, "dont_perturb_species": {"description": "List of species to not perturb in batch sampling", "type": "array"}, "copy_inputs": {"description": "Copy (rather creating symbolic links) the input files ([] by default)", "default": []}}, "required": ["plugin", "fileexec", "file_controle"], "additionalProperties": false}, "satwetch4_std_model": {"title": "satwetch4/std/model", "description": "SatWetCH4 v.1 Juliette Bernard et al., 2024", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "satwetch4"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "model"}}, "required": ["name", "version"]}, "autoflush": {"description": "Cleans big temporary files when the simulation is done. Triggers the function ``flushrun`` of the model if available (False by default)", "type": "boolean", "default": false}, "timestep": {"description": "length of timesteps of the model (\"1MS\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1MS"}, "periods": {"description": "Length of subsimulations (\"1YS\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1YS"}}, "required": ["plugin"], "additionalProperties": false}, "template_std_model": {"title": "template/std/model", "description": "Template for model implementation", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "template"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "model"}}, "required": ["name", "version"]}, "autoflush": {"description": "Cleans big temporary files when the simulation is done. Triggers the function ``flushrun`` of the model if available (False by default)", "type": "boolean", "default": false}, "require_domain": {"description": "Test initializing the template with a domain (False by default)", "type": "boolean", "default": false}, "require_chemistry": {"description": "Test initializing the template with a chemical scheme (False by default)", "type": "boolean", "default": false}, "empty_mapper": {"description": "Initializes an empty mapper (True by default)", "type": "boolean", "default": true}, "only_outputs": {"description": "Initializes a mapper with only concentration outputs (False by default)", "type": "boolean", "default": false}, "output_resolution": {"description": "Temporal resolution of outputs (\"1h\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1h"}, "input_resolution": {"description": "Temporal resolution of inputs (\"1h\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1h"}, "include_fluxes": {"description": "Force the preparation of fluxes prior to running the model (False by default)", "type": "boolean", "default": false}}, "required": ["plugin"], "additionalProperties": false}, "wrfchem_std_model": {"title": "wrfchem/std/model", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "wrfchem"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "model"}}, "required": ["name", "version"]}, "domain": {"$ref": "#/$defs/wrfchem_std_domain"}, "chemistry": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "flux": {"$ref": "#/$defs/wrfchem_std_flux"}, "latcond": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "inicond": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "autoflush": {"description": "Cleans big temporary files when the simulation is done. Triggers the function ``flushrun`` of the model if available (False by default)", "type": "boolean", "default": false}, "periods": {"description": "Frequency for sub-simulations", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "source_dir": {"description": "Directory like ``WRF/run/``, including output of ``real.exe``, i.e. ``wrfbdy_d01`` and ``wrfinput_d%02d``, both already containing tracer values.  Necessary files are linked/copied (as needed) from source_dir at the start of running CIF. Files that are already present in run_dir are skipped.  ``namelist.input`` is copied separately from path specified in argument namelist_input_file. Flux files are handled by the flux plugin.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "namelist_input_file": {"description": "Path to namelist.input. Namelist settings that are controlled (overwritten) by CIF: - run period (start_year, ..., end_second) - restart flag / interval (restart, restart_interval)  Namelist settings necessary to run with CIF: - io_style_emissions = 2 # explicit fluxes per timestep - io_form_auxinput5 = 2 # netCDF - auxinput5_inname = ``wrfchemi_d<domain>_<date>`` - write_hist_at_0h_rst = .true. - chem_opt = 17 - emiss_opt = 17  Recommended namelist settings: - Consider quilting to speed up i/o of history files - I only tested frames_per_auxinput5 = 1. The code is written to handle other cases as well, but this would have to be tested. - Use nudging to keep WRF meteorology close to the driving meteorology (e.g. spectral nudging)", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "mpirun": {"description": "Command that calls ``./wrf.exe``. Default is empty string, which is useful e.g. for interactive runs of small testcases. For using slurm inside a cif job, not sure about the format yet. Ultimately want something in the format ``srun -n 72 -t 10:00:00`` - but need to read the resources the cif job has. (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}}, "required": ["plugin", "source_dir", "namelist_input_file"], "additionalProperties": false}, "adj-tl_test_std_mode": {"title": "adj-tl_test/std/mode", "description": "Test of the adjoint", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "adj-tl_test"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "mode"}}, "required": ["name", "version"]}, "obsvect": {"$ref": "#/$defs/standard_std_obsvect"}, "controlvect": {"$ref": "#/$defs/standard_std_controlvect"}, "obsoperator": {"$ref": "#/$defs/standard_std_obsoperator"}, "simulator": {"$ref": "#/$defs/gausscost_std_simulator"}, "incrmode": {"description": "Type of increments to use in the test. (\"cst\" by default)", "enum": ["cst", "rand"], "default": "cst"}, "increments": {"description": "Scale of the increments to do the test. The following equation is used: :math:`\\delta x = \\delta i \\;.\\; \\sigma_\\mathbf{x}`", "type": "number"}, "testspace": {"description": "Reference space to apply the test of the adjoint (\"control\" by default)", "enum": ["control", "chi"], "default": "control"}, "testtype": {"description": "Which type of test to run (\"adj\" by default)", "enum": ["adj", "tltaylor", "tllinearity", "adj_sym"], "default": "adj"}, "reload_results": {"description": "Reload results from previously compiled test. If True does not recomputed the tangent-linear and/or the adjoint (False by default)", "type": "boolean", "default": false}, "random_seed": {"description": "Seed to use in the test of the adjoint for generating random numbers; used only with incrmode = rand (0 by default)", "type": "integer", "default": 0}, "check_transforms": {"description": "Check whether individual transformation pass the test of the adjoint. Transformations are printed out in the order they are run in forward.  For each transformation, the output reads as follows:  :bash:`transformation_ID, transformation_name, sub-simulation date:` :math:`\\langle \\mathcal{H}(\\delta \\mathbf{x}) \\vert \\mathcal{H}(\\delta \\mathbf{x}) \\rangle` / :math:`\\langle \\delta \\mathbf{x} \\vert \\mathcal{H}^* \\circ \\mathcal{H}(\\delta \\mathbf{x}) \\rangle`  The output is printed out both in the main pyCIF log file and in a dedicated file :bash:`check_transforms.log` in your work directory. (False by default)", "type": "boolean", "default": false}, "use_forward": {"description": "Force using the forward model instead of the tangent linear. WARNING: this works only if the model is linear (False by default)", "type": "boolean", "default": false}, "taylor_iter": {"description": "Number of iterations for the Taylor test (1 by default)", "type": "integer", "default": 1}, "lambdalin": {"description": "Factor to use to perturb increments in the Taylor and linearity tests (0.1 by default)", "type": "number", "default": 0.1}}, "required": ["plugin", "increments"], "additionalProperties": false}, "analytic_std_mode": {"title": "analytic/std/mode", "description": "Analytical inversions", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "analytic"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "mode"}}, "required": ["name", "version"]}, "obsvect": {"$ref": "#/$defs/standard_std_obsvect"}, "controlvect": {"$ref": "#/$defs/standard_std_controlvect"}, "obsoperator": {"$ref": "#/$defs/standard_std_obsoperator"}, "platform": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "dump_nc_base_control": {"description": "Dumps elementary control vectors used to build the base functions as NetCDF format; this helps diagnosing whether base functions are computed based on e.g., fluxes consistent with the user expectations (False by default)", "type": "boolean", "default": false}, "dryrun": {"description": "Runs a dry analytical inversion to estimate the time needed to compute the full observation operator (False by default)", "type": "boolean", "default": false}, "sequential": {"description": "Sequential submissions of the jobs (this option could be useful with gpu) (False by default)", "type": "boolean", "default": false}, "resp_func_only": {"description": "Does not run the inversion, only the response functions to build the H matrix (False by default)", "type": "boolean", "default": false}}, "required": ["plugin"], "additionalProperties": false}, "EnSRF_std_mode": {"title": "EnSRF/std/mode", "description": "Ensemble Square-Root Filter", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "EnSRF"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "mode"}}, "required": ["name", "version"]}, "obsvect": {"$ref": "#/$defs/standard_std_obsvect"}, "controlvect": {"$ref": "#/$defs/standard_std_controlvect"}, "obsoperator": {"$ref": "#/$defs/standard_std_obsoperator"}, "platform": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "nsample": {"description": "Number of random samples in the ensemble", "type": "integer"}, "reload_results": {"description": "Reload results from previous simulations (False by default)", "type": "boolean", "default": false}, "batch_sampling": {"description": "Compute samples into a single observation operator or as separate jobs if `False`. (True by default)", "type": "boolean", "default": true}, "batch_subjob": {"description": "Force submitting the batch sampling inside a separate job. Otherwise, run as a sub-instance of python (False by default)", "type": "boolean", "default": false}, "max_nsamples_per_run": {"description": "If separate sampling (`batch_sampling`=`False`), set the number of samples run as part of a single observation operator. (5 by default)", "type": "integer", "default": 5}, "include_system_samples": {"description": "If separate sampling (`batch_sampling`=`False`), include the three system-bound samples as part of each observation operator in addition to the other samples. This is strongly recommended because the samples cannot be reset to the mean of the ensemble after a restart if this option is set to 'False'. It is also necessary if the model needs scaling factors as inputs. If `True`, the three system-bound samples are accounted as part of the `max_nsamples_per_run` limit. (True by default)", "type": "boolean", "default": true}, "serial_optimization": {"description": "Assimilate the observations sequentially. If False, assimilate the observations in bulk (matrix operations). (True by default)", "type": "boolean", "default": true}, "window_length": {"description": "Time length of each assimilation window", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "nlag": {"description": "Number of windows in each segment. (1 by default)", "type": "integer", "default": 1}, "mean_propagwgt": {"description": "The propagation weight to use When a new assimilation segment begins and a new window is included. Either a general weight to apply to all components or a mapper (component -> value) can be provided. This parameter is taken into account only if nlag >= 2.  If a mapper is provided, include it as a new yaml paragraph, with sub-keys the different components for which a weight needs to be included.  WARNING: if no weight is provided in the yml for a given component, then a default value of 0 is applied (0 by default)", "default": 0}, "localization": {"description": "Apply localization to every assimilated observation.", "type": "object", "additionalProperties": false, "properties": {"decay_func": {"description": "Correlation function to apply. (\"normal\" by default)", "enum": ["exponential", "normal"], "default": "normal"}, "decay_length": {"description": "Correlation length to apply.", "type": "number"}, "full_localization": {"description": "Apply both space-obs localization and obs-obs localization. If False, apply only space-obs localization. (False by default)", "type": "boolean", "default": false}}}, "restart_format": {"description": "Format of the restart file to fetch after a posterior forward simulation. (\"restart_%Y%m%d%H.nc\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "restart_%Y%m%d%H.nc"}, "seed": {"description": "Use a seed to generate random samples. (False by default)", "type": "boolean", "default": false}, "seed_id": {"description": "ID of the numpy seed to use. (0 by default)", "type": "integer", "default": 0}, "unbias_ensemble": {"description": "Force the ensemble to have a mean and a standard deviation consistent with the distribution modes. (False by default)", "type": "boolean", "default": false}, "set_deviations_equal": {"description": "During the generation of samples, ensure each window contains the same deviations from the mean to reduce noise cancellation. (False by default)", "type": "boolean", "default": false}, "level_metrics": {"description": "Level which defines the number of metrics to compute:\" 0. No metrics computed. 1. Only metrics not involving the calculation of the posterior matrix's eigenvalues. 2. All metrics (1 by default)", "type": "integer", "default": 1}, "flushrun": {"description": "Removes the unnecessary directories in the sampling. (False by default)", "type": "boolean", "default": false}, "save_out_netcdf": {"description": "Save prior and final posterior vector as NetCDF. This argument overwrites the corresponding argument in the :bash:`controlvect`. (False by default)", "type": "boolean", "default": false}}, "required": ["plugin", "nsample"], "additionalProperties": false}, "footprint_std_mode": {"title": "footprint/std/mode", "description": "Footprints or backward mode", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "footprint"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "mode"}}, "required": ["name", "version"]}, "controlvect": {"$ref": "#/$defs/standard_std_controlvect"}, "obsvect": {"$ref": "#/$defs/standard_std_obsvect"}, "obsoperator": {"$ref": "#/$defs/standard_std_obsoperator"}, "increments": {"description": "Increment value used to fill the observation vector increment. By default the values from the 'sim_tl' column of the monitor files are used.", "type": "number"}, "use_xb": {"description": "Running mode for the forward simulation (True by default)", "type": "boolean", "default": true}, "reload_results": {"description": "Reload results from previous simulations. If True does not recomputed already computed simulations (False by default)", "type": "boolean", "default": false}}, "required": ["plugin"], "additionalProperties": false}, "forward_std_mode": {"title": "forward/std/mode", "description": "Forward run", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "forward"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "mode"}}, "required": ["name", "version"]}, "controlvect": {"$ref": "#/$defs/standard_std_controlvect"}, "obsoperator": {"$ref": "#/$defs/standard_std_obsoperator"}, "run_mode": {"description": "Running mode for the forward simulation (\"fwd\" by default)", "enum": ["fwd", "tl"], "default": "fwd"}, "use_xb": {"description": "Running mode for the forward simulation (True by default)", "type": "boolean", "default": true}, "perturb_obsvect": {"description": "If True, perturbs the output observation vector to generate truth in OSSEs. The formula used for the perturbations is :math:`\\delta y \\sim \\mathcal{N}(0, \\sigma_\\epsilon)` with :math:`\\sigma_\\epsilon = \\sigma_\\mathbf{y} \\;.\\; \\delta`; :math:`\\delta` is the value specified in ${obserror}. Perturbed simulations are saved in the ``obs`` column of the output ``monitor.nc`` file; :math:`\\sigma_\\mathbf{y} \\;.\\; \\delta is stored in the column ``yobs_err`` (False by default)", "type": "boolean", "default": false}, "obserror": {"description": "The scale used to generate perturbation on the errors. (0.0 by default)", "type": "number", "default": 0.0}, "reload_results": {"description": "Reload results from previous simulations. If True does not recomputed already computed simulations (False by default)", "type": "boolean", "default": false}}, "required": ["plugin"], "additionalProperties": false}, "post-proc_std_mode": {"title": "post-proc/std/mode", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "post-proc"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "mode"}}, "required": ["name", "version"]}, "obsvect": {"$ref": "#/$defs/standard_std_obsvect"}, "controlvect": {"$ref": "#/$defs/standard_std_controlvect"}, "obsoperator": {"$ref": "#/$defs/standard_std_obsoperator"}}, "required": ["plugin"], "additionalProperties": false}, "response-functions_std_mode": {"title": "response-functions/std/mode", "description": "Response functions", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "response-functions"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "mode"}}, "required": ["name", "version"]}, "platform": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "obsoperator": {"$ref": "#/$defs/standard_std_obsoperator"}, "obsvect": {"$ref": "#/$defs/standard_std_obsvect"}, "controlvect": {"$ref": "#/$defs/standard_std_controlvect"}, "datavect": {"$ref": "#/$defs/standard_std_datavect"}, "dryrun": {"description": "Create all response functions input files then stop. This option can be used to know the number of response functions (False by default)", "type": "boolean", "default": false}, "run_mode": {"description": "Run mode of the response functions, if ``\"tl\"`` (tangent linear) is chosen and ``use_model_approximation`` is set to ``true``, a forward reference will be runned (\"tl\" by default)", "enum": ["fwd", "tl"], "default": "tl"}, "autoflush": {"description": "Flush temporary files that are not already flush by the model plugin ``flushrun`` method. (False by default)", "type": "boolean", "default": false}, "reload_results": {"description": "Reload response functions results from previous simulations. If set to ``true`` already computed simulations will not be run. Affect both the eventual reference forward simulation and the response functions simulations. (True by default)", "type": "boolean", "default": true}, "reload_h_matrix": {"description": "Reload the H matrix from previous simulations. If this argument is used,  the computation of the response functions will be skipped and the H matrix will be read from the provided path(s). If multiple paths are provided, the H matrices will be summed."}, "clamp_h_matrix_to_zero": {"description": "Ensure all H matrix elements are greater than zero by clmamping them to zero. (True by default)", "type": "boolean", "default": true}, "analytical_inversion": {"description": "Do an analytical inversion with the H matrix build with the response function results (False by default)", "type": "boolean", "default": false}, "use_woodbury_identity": {"description": "Use `Woodbury matrix identity <https://en.wikipedia.org/wiki/Woodbury_matrix_identity>`_ to compute the inverse of :math:`\\left( \\mathbf{R} + \\mathbf{H}\\mathbf{B}\\mathbf{H}^T \\right)`. Decreases computation time significantly when :math:`\\mathrm{dim}(\\mathbf{R}) \\gg \\mathrm{dim}(\\mathbf{B})` (significantly increase the computation time otherwise). When this option is set to \"auto\" the method used is chosen according to :math:`\\mathbf{R}` and :math:`\\mathbf{B}` dimensions (\"auto\" by default)", "default": "auto"}, "full_period": {"description": "Run the response functions over the whole simulation windows. This argument cannot be set to ``true`` if the 'spin_down' arguments is used. (False by default)", "type": "boolean", "default": false}, "spin_down": {"description": "Spin-down of period of the response functions. Should be a valid pandas period alias (1D, 1M, ...). Spin-down value can be set here globally for all response fonction or individual by setting a control vector option individially for tracers in the dat vector (the later option is prioritized when both are used).", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "first_period_only": {"description": "Only run the response funxtions that correspond to the first time period in the control vector. This option can be used to get the computing time required for running the response functions over one period or get the 'relaxation' time of one period. This option can not to be used with ``full_period = true`` (False by default)", "type": "boolean", "default": false}, "inicond_component": {"description": "Initial conditions datavect component name (\"inicond\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "inicond"}, "ignore_tracers": {"description": "List of datavect (component, parameter) couples to ignore. Ignored parameters corresponding response function will not be run and its outputs will be filled with zeros", "type": "array"}, "job_batch_size": {"description": "Size of job batches to submit, wait for one batch to finish to submit the next one. If this option is set to zero or a negative number, all jobs will be submited at the same time (not recommended). When running jobs in a subprocess, setting this option to 1 will triger the cleaning of the temporary files after every job. (20 by default)", "type": "integer", "default": 20}, "pseudo_parallel_job": {"description": "Run the job batches (of size ``job_batch_size``) in \"pseudo parallel mode, i.e. with a job file of the following format:   .. code-block:: bash   python -m pycif config_a.yaml & python -m pycif config_b.yaml & python -m pycif config_c.yaml & wait (False by default)", "type": "boolean", "default": false}, "use_batch_sampling": {"description": "Group response functions per time periods and run them with the observation operator 'batch_computation' mode (False by default)", "type": "boolean", "default": false}, "batch_sampling_size": {"description": "Maximum size for the batch sampling batches", "type": "integer"}, "separate_parameters": {"description": "Separate response functions by observation parameters. This option can only be used with ``use_batch_sampling = True`` (False by default)", "type": "boolean", "default": false}, "independant_parameters": {"description": "If true parameters (species) are considered as \"independant\", i.e. one response function will only affect the parameter of its control vector tracer and/or the parameters resulting of the control vector transformations (``transform_pipe``) taking the response function control vector tracer as input. This option can help reduce the number of samples actually present in batch sampling response function simulations. This option can only be used with ``use_batch_sampling = True`` (False by default)", "type": "boolean", "default": false}, "use_model_approximation": {"description": "Use the approximation of the model tangent operator for response functions. if ``use_model_approximation`` is set to ``true``, ``run_mode`` must be set to ``\"tl\"`` (False by default)", "type": "boolean", "default": false}, "run_reference_forward": {"description": "Run a reference forward run and fill the observation vector ``y`` (``'sim'``) field with the results. This option can not to be used with ``run_mode = 'fwd'`` (False by default)", "type": "boolean", "default": false}, "dump_sparse_arrays": {"description": "Use COOrdinates sparse arrays in dumped NetCDF files. The ``pycif.utils.sparse_array.to_dense_dataset`` function can be used to convert the sparse NetCDF files data to dense arrays (False by default)", "type": "boolean", "default": false}, "dump_obsvect_decompostion": {"description": "Dump observation vector decomposition by response function (False by default)", "type": "boolean", "default": false}}, "required": ["plugin"], "additionalProperties": false}, "4dvar_std_mode": {"title": "4dvar/std/mode", "description": "4DVAR variational inversions", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "4dvar"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "mode"}}, "required": ["name", "version"]}, "obsvect": {"$ref": "#/$defs/standard_std_obsvect"}, "controlvect": {"$ref": "#/$defs/standard_std_controlvect"}, "obsoperator": {"$ref": "#/$defs/standard_std_obsoperator"}, "minimizer": {"$ref": "#/$defs/M1QN3_std_minimizer"}, "simulator": {"$ref": "#/$defs/gausscost_std_simulator"}, "platform": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "save_out_netcdf": {"description": "Save final posterior vector as NetCDF. This argument overwrites the corresponding argument in the :bash:`controlvect`. (False by default)", "type": "boolean", "default": false}, "montecarlo": {"description": "Number of perturbed inversions to compute posterior inversions.", "type": "object", "additionalProperties": false, "properties": {"nsample": {"description": "Number of members in the Monte-Carlo. The control run with no perturbation will be computed as the last member of the ensemble."}, "perturb_x": {"description": "Perturb the control vector or not (True by default)", "type": "boolean", "default": true}, "seed_x": {"description": "Seed for the random generator for perturbing x.Useful to run the same perturbationsfor various cases", "type": "integer"}, "perturb_y": {"description": "Perturb the observation vector or not (True by default)", "type": "boolean", "default": true}, "seed_y": {"description": "Seed for the random generator for perturbing y.Useful to run the same perturbationsfor various cases", "type": "integer"}, "compute_reference": {"description": "Recompute the unperturbed member (True by default)", "type": "boolean", "default": true}, "aggregate_results": {"description": "Aggregate ensemble results and re-run prior/posterior cost functions (False by default)", "type": "boolean", "default": false}, "save_out_netcdf": {"description": "Save sample control vector as NetCDF. This argument overwrites the corresponding argument in the :bash:`controlvect`. (False by default)", "type": "boolean", "default": false}}}}, "required": ["plugin"], "additionalProperties": false}, "FLEXINVERT_std_obsoperator": {"title": "FLEXINVERT/std/obsoperator", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "FLEXINVERT"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "obsoperator"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "obsvect": {"$ref": "#/$defs/standard_std_obsvect"}, "controlvect": {"$ref": "#/$defs/standard_std_controlvect"}}, "required": ["plugin"], "additionalProperties": false}, "random_std_obsoperator": {"title": "random/std/obsoperator", "description": "Random observation operator for testing", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "random"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "obsoperator"}}, "required": ["name", "version"]}, "obsvect": {"$ref": "#/$defs/standard_std_obsvect"}, "controlvect": {"$ref": "#/$defs/standard_std_controlvect"}, "datavect": {"$ref": "#/$defs/standard_std_datavect"}, "platform": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "seed": {"description": "Use a seed for random generation (True by default)", "type": "boolean", "default": true}, "seed_id": {"description": "Seed to use in numpy. (1 by default)", "type": "integer", "default": 1}}, "required": ["plugin"], "additionalProperties": false}, "standard_std_obsoperator": {"title": "standard/std/obsoperator", "description": "Main CIF observation operator", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "standard"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "obsoperator"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "obsvect": {"$ref": "#/$defs/standard_std_obsvect"}, "controlvect": {"$ref": "#/$defs/standard_std_controlvect"}, "datavect": {"$ref": "#/$defs/standard_std_datavect"}, "platform": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "autorestart": {"description": "if interrupted, computations restart from the last simulated period. WARNING: the CIF cannot detect whether this period has been correctly written or is corrupt: it is necessary to check manually in the relevant directories and remove the last simulated period if a file has not been correctly written. (False by default)", "type": "boolean", "default": false}, "autoflush": {"description": "Remove big temporary files when the run is done (False by default)", "type": "boolean", "default": false}, "force-full-flush": {"description": "Complementary to `autoflush`. Also flushes files needed to run an adjoint. Use this option when no adjoint is needed later. The option is triggered only if `autoflush` is True (False by default)", "type": "boolean", "default": false}, "save_debug": {"description": "Force transforms to save debugging information. Intermediate datastores will be saved in the directory $workdir/obsoperator/$run_id/transform_debug/  .. warning ::  This option saves every intermediate states of the transformation pipeline. It slows drastically the computation of the obsvervation operator and can take a lot of disk space. Should be used only for debugging or understanding what happens along the way. (False by default)", "type": "boolean", "default": false}, "force_full_operator": {"description": "Force computing all transforms in the observation operator, event if no observation is to be simulated. (False by default)", "type": "boolean", "default": false}, "init_inputs": {"description": "Structure of components and parameters to initialize. Doing so, there is no need to define :doc:`an execution mode<../modes/index>`. Only inputs that were required will be computed. Moreover, with this option, it is possible to provide a partial yaml paragraph for the :bash:`datavect` object: only components required to generate those required are checked before execution.", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "Name of a given component to be initialized", "type": "object", "additionalProperties": false, "properties": {"parameters": {"description": "List of parameters to initialize for the corresponding component. Initialize all parameters if not specified", "type": "array"}}}}}, "transform_pipe": {"description": "List of transformations to build the main observation operator pipeline", "type": "object", "additionalProperties": false, "properties": {}, "patternProperties": {"^.*$": {"description": "Name of a given transformation to be included. The name has no impact on the way the observation operator is computed, although it is recommended to use explicit names to help debugging.", "type": "object", "additionalProperties": false, "properties": {"**args": {"description": "Arguments to set-up the given transform"}}}}}, "parallel": {"description": "Physical parallelization of the computation of the TL and adjoint", "type": "object", "additionalProperties": false, "properties": {"segments": {"description": "Length of each parallel segment", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "overlap": {"description": "Length of the initial overlap with previous segments", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "subprocess": {"description": "If True submit the segments in subprocesses, else submit them in new jobs with the platform plugin (False by default)", "type": "boolean", "default": false}, "nproc": {"description": "number of proc to attribute to each segments when 'subprocess' is True (work with LMDz only)", "type": "integer"}}}, "ref_fwd_dir": {"description": "Path to a reference forward run. This is used when using the approximate operator to accelerate its computation. (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "approx_operator": {"description": "Approximate the observation operator outside the given interval", "type": "object", "additionalProperties": false, "properties": {"datei": {"description": "Start date of the interval on which to compute the real operator", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "datef": {"description": "Start date of the interval on which to compute the real operator", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}, "batch_computation": {"description": "Compute perturbed samples of the control vector within the same observation operator", "type": "object", "additionalProperties": false, "properties": {"nsamples": {"description": "Number of samples to generate", "type": "integer"}, "dir_samples": {"description": "Directory where to fetch sample control vectors", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file_samples": {"description": "Sample control vectors file name (\"controlvect_ensemble.pickle\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "controlvect_ensemble.pickle"}, "dont_propagate": {"description": "list of (component, parameter) tuples that should not be propagated", "type": "array"}, "dont_propagate_obsvect": {"description": "list of (component, parameter) tuples that 'toobsvect' transformation should not be propagated", "type": "array"}}}, "ignore_model": {"description": "Do not run the model as part of the observation operator. (False by default)", "type": "boolean", "default": false}, "force_propagate_attributes": {"description": "Force the propagation of attributes throughout transforms. Use with caution. (False by default)", "type": "boolean", "default": false}, "monitor_memory": {"description": "Print memory usage for each transform. (False by default)", "type": "boolean", "default": false}, "clean_memory": {"description": "Clean datastores that are not used anymore (True by default)", "type": "boolean", "default": true}, "autokill_time": {"description": "Stops the running simulation after a given time and re-submit it automatically in a new job. Should be one of Pandas' `offset aliases <https://pandas.pydata.org/docs/user_guide/timeseries.html#timeseries-offset-aliases>`_ for example use '23h' to stop the simulation after 23 hours. When using this option, a platform plugin with the options needed for submitting a job is required.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "max_resubmissions": {"description": "Maximum number of times the simulation can be automatically re-submitted in a job. (0 by default)", "type": "integer", "default": 0}}, "required": ["plugin"], "additionalProperties": false}, "CO2M_pseudo_data_obsparser": {"title": "CO2M/pseudo_data/obsparser", "description": "CO2M pseudo_data", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "CO2M"}, "version": {"description": "plugin version", "const": "pseudo_data"}, "type": {"description": "plugin type", "const": "obsparser"}}, "required": ["name", "version"]}, "aggreg_freq": {"description": "Frequency at which to aggregate files into intermediate monitor file (\"1D\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1D"}, "crop_domain": {"description": "Domain where to keep data. Data outside are discarded", "type": "object", "additionalProperties": false, "properties": {"xmin": {"description": "West boundary", "type": "number"}, "xmax": {"description": "East boundary", "type": "number"}, "ymin": {"description": "South boundary", "type": "number"}, "ymax": {"description": "North boundary", "type": "number"}}}, "nlayers": {"description": "Number of layers expected in the averaging kernels (5 by default)", "type": "number", "default": 5}, "err_sys": {"description": "True if systematic error accounted for (False by default)", "type": "boolean", "default": false}, "err_model": {"description": "model error in ppm, 0. by default (0.0 by default)", "type": "number", "default": 0.0}, "obs_duration": {"description": "Duration of each observation (0.016666666666666666 by default)", "type": "number", "default": 0.016666666666666666}, "stationID": {"description": "Name to put in the 'station' column of the output parsed datastore (\"CO2M\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "CO2M"}, "networkID": {"description": "Name to put in the 'network' column of the output parsed datastore (\"OFFICIAL\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "OFFICIAL"}, "parameter": {"description": "Name of the species to put in the 'parameter' column of the output parsed datastore (\"CO2\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "CO2"}, "ref_year": {"description": "reference year of the pseudo data (2025 by default)", "type": "integer", "default": 2025}, "pressure_file": {"description": "pressure level file (False by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": false}, "std_max": {"description": "Threshold for standard deviation of ratio weak and strong HCHO column (0.05 by default)", "type": "number", "default": 0.05}, "cloud_fraction_max": {"description": "Maximum threshold for cloud fraction (0.001 by default)", "type": "number", "default": 0.001}, "prec_max": {"description": "Precision threshold (10 by default)", "type": "number", "default": 10}, "qa_value": {"description": "Keep diagnostic group larger than `qa_value` (0.5 by default)", "type": "number", "default": 0.5}}, "required": ["plugin"], "additionalProperties": false}, "ICOS_std_obsparser": {"title": "ICOS/std/obsparser", "description": "Integrated Carbon Observing System (ICOS) data", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "ICOS"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "obsparser"}}, "required": ["name", "version"]}, "default_unit": {"description": "Default unit to use if not explicitly specified in each file (\"ppb\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "ppb"}, "force_default_unit": {"description": "Force using the default unit instead of the one in the file. (False by default)", "type": "boolean", "default": false}, "default_lat_unit": {"description": "If meridional direction not specified in header, takes the specified direction", "enum": ["N", "S"]}, "default_lon_unit": {"description": "If zonal direction not specified in header, takes the specified direction", "enum": ["E", "W"]}, "default_duration": {"description": "Default time interval if not explicitly specified in the header", "enum": ["hourly"]}}, "required": ["plugin"], "additionalProperties": false}, "obspack_std_obsparser": {"title": "obspack/std/obsparser", "description": "NOAA-ESRL Observation Package (ObsPack) Data Products", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "obspack"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "obsparser"}}, "required": ["name", "version"]}}, "required": ["plugin"], "additionalProperties": false}, "template_std_obsparser": {"title": "template/std/obsparser", "description": "Template plugin for observation parsers", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "template"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "obsparser"}}, "required": ["name", "version"]}, "parameter": {"description": "Name of the species for which to generate observations (\"CO2\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "CO2"}, "obs_min": {"description": "Lower range for generating random observations (380 by default)", "type": "number", "default": 380}, "obs_max": {"description": "Lower range for generating random observations (450 by default)", "type": "number", "default": 450}, "nstations": {"description": "Number of stations to randomly distribute (5 by default)", "type": "integer", "default": 5}, "xmin": {"description": "West border of the domain on which to distribute stations (-180 by default)", "type": "number", "default": -180}, "xmax": {"description": "East border of the domain on which to distribute stations (180 by default)", "type": "number", "default": 180}, "ymin": {"description": "South border of the domain on which to distribute stations (-90 by default)", "type": "number", "default": -90}, "ymax": {"description": "North border of the domain on which to distribute stations (90 by default)", "type": "number", "default": 90}}, "required": ["plugin"], "additionalProperties": false}, "TROPOMI_CH4-BLENDED_obsparser": {"title": "TROPOMI/CH4-BLENDED/obsparser", "description": "TROPOMI-GOSAT XCH4 retrievals from Balasus", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TROPOMI"}, "version": {"description": "plugin version", "const": "CH4-BLENDED"}, "type": {"description": "plugin type", "const": "obsparser"}}, "required": ["name", "version"]}, "aggreg_freq": {"description": "Frequency at which to aggregate files into intermediate monitor file (\"1D\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1D"}, "crop_domain": {"description": "Domain where to keep data. Data outside are discarded", "type": "object", "additionalProperties": false, "properties": {"xmin": {"description": "West boundary", "type": "number"}, "xmax": {"description": "East boundary", "type": "number"}, "ymin": {"description": "South boundary", "type": "number"}, "ymax": {"description": "North boundary", "type": "number"}}}, "nlayers": {"description": "Number of layers expected in the averaging kernels (12 by default)", "type": "number", "default": 12}, "obs_duration": {"description": "Duration of each observation (0.016666666666666666 by default)", "type": "number", "default": 0.016666666666666666}, "stationID": {"description": "Name to put in the 'station' column of the output parsed datastore (\"TROPOMI\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "TROPOMI"}, "networkID": {"description": "Name to put in the 'network' column of the output parsed datastore (\"BLENDED\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "BLENDED"}, "parameter": {"description": "Name of the species to put in the 'parameter' column of the output parsed datastore (\"CH4\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "CH4"}, "filter_coastal_scene": {"description": "Threshold for chi-square value (True by default)", "type": "boolean", "default": true}, "qa_value": {"description": "Keep diagnostic group equal to `qa_value` (1 by default)", "type": "number", "default": 1}}, "required": ["plugin"], "additionalProperties": false}, "TROPOMI_CH4-official_obsparser": {"title": "TROPOMI/CH4-official/obsparser", "description": "TROPOMI XCH4 retrievals -- Official product", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TROPOMI"}, "version": {"description": "plugin version", "const": "CH4-official"}, "type": {"description": "plugin type", "const": "obsparser"}}, "required": ["name", "version"]}, "aggreg_freq": {"description": "Frequency at which to aggregate files into intermediate monitor file (\"1D\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1D"}, "crop_domain": {"description": "Domain where to keep data. Data outside are discarded", "type": "object", "additionalProperties": false, "properties": {"xmin": {"description": "West boundary", "type": "number"}, "xmax": {"description": "East boundary", "type": "number"}, "ymin": {"description": "South boundary", "type": "number"}, "ymax": {"description": "North boundary", "type": "number"}}}, "nlayers": {"description": "Number of layers expected in the averaging kernels (12 by default)", "type": "number", "default": 12}, "obs_duration": {"description": "Duration of each observation (0.016666666666666666 by default)", "type": "number", "default": 0.016666666666666666}, "stationID": {"description": "Name to put in the 'station' column of the output parsed datastore (\"TROPOMI\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "TROPOMI"}, "networkID": {"description": "Name to put in the 'network' column of the output parsed datastore (\"OFFICIAL\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "OFFICIAL"}, "parameter": {"description": "Name of the species to put in the 'parameter' column of the output parsed datastore (\"CH4\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "CH4"}, "std_max": {"description": "Threshold for standard deviation of ratio weak and strong CH4 column (0.05 by default)", "type": "number", "default": 0.05}, "cloud_fraction_max": {"description": "Maximum threshold for cloud fraction (0.001 by default)", "type": "number", "default": 0.001}, "aot_max": {"description": "Aerosol optical thickness (NIR) (0.3 by default)", "type": "number", "default": 0.3}, "chi2_max": {"description": "Threshold for chi-square value (100 by default)", "type": "number", "default": 100}, "sza_max": {"description": "Solar zenith angle (70 by default)", "type": "number", "default": 70}, "prec_max": {"description": "Precision threshold (10 by default)", "type": "number", "default": 10}, "sr_max": {"description": "Maximum surface roughness (80 by default)", "type": "number", "default": 80}, "sa_min": {"description": "Minimum surface albedo (SWIR) to keep land only (0.02 by default)", "type": "number", "default": 0.02}, "qa_value": {"description": "Keep diagnostic group larger than `qa_value` (1.0 by default)", "type": "number", "default": 1.0}, "ws_min": {"description": "Minimum ratio weak and strong CH4 column (0.85 by default)", "type": "number", "default": 0.85}, "ws_max": {"description": "Maximum ratio weak and strong CH4 column (1.15 by default)", "type": "number", "default": 1.15}}, "required": ["plugin"], "additionalProperties": false}, "TROPOMI_CH4-RPRO_obsparser": {"title": "TROPOMI/CH4-RPRO/obsparser", "description": "TROPOMI XCH4 retrievals -- Official RPRO product", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TROPOMI"}, "version": {"description": "plugin version", "const": "CH4-RPRO"}, "type": {"description": "plugin type", "const": "obsparser"}}, "required": ["name", "version"]}, "orbit_range": {"description": "Range of orbit IDs to cover", "type": "object", "additionalProperties": false, "properties": {"orb_min": {"description": "Minimum orbit ID (-10 by default)", "type": "integer", "default": -10}, "orb_max": {"description": "Minimum orbit ID (10000000 by default)", "type": "integer", "default": 10000000}}}, "aggreg_freq": {"description": "Frequency at which to aggregate files into intermediate monitor file (\"1D\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1D"}, "crop_domain": {"description": "Domain where to keep data. Data outside are discarded", "type": "object", "additionalProperties": false, "properties": {"xmin": {"description": "West boundary", "type": "number"}, "xmax": {"description": "East boundary", "type": "number"}, "ymin": {"description": "South boundary", "type": "number"}, "ymax": {"description": "North boundary", "type": "number"}}}, "nlayers": {"description": "Number of layers expected in the averaging kernels (12 by default)", "type": "number", "default": 12}, "obs_duration": {"description": "Duration of each observation (0.016666666666666666 by default)", "type": "number", "default": 0.016666666666666666}, "stationID": {"description": "Name to put in the 'station' column of the output parsed datastore (\"TROPOMI\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "TROPOMI"}, "networkID": {"description": "Name to put in the 'network' column of the output parsed datastore (\"OFFICIAL-RPRO\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "OFFICIAL-RPRO"}, "parameter": {"description": "Name of the species to put in the 'parameter' column of the output parsed datastore (\"CH4\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "CH4"}, "qa_value": {"description": "Keep diagnostic group above `qa_value` (0.5 by default)", "type": "number", "default": 0.5}}, "required": ["plugin"], "additionalProperties": false}, "TROPOMI_CH4-SRON_obsparser": {"title": "TROPOMI/CH4-SRON/obsparser", "description": "TROPOMI XCH4 retrievals from SRON", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TROPOMI"}, "version": {"description": "plugin version", "const": "CH4-SRON"}, "type": {"description": "plugin type", "const": "obsparser"}}, "required": ["name", "version"]}, "orbit_range": {"description": "Range of orbit IDs to cover", "type": "object", "additionalProperties": false, "properties": {"orb_min": {"description": "Minimum orbit ID (-10 by default)", "type": "integer", "default": -10}, "orb_max": {"description": "Minimum orbit ID (10000000 by default)", "type": "integer", "default": 10000000}}}, "aggreg_freq": {"description": "Frequency at which to aggregate files into intermediate monitor file (\"1D\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "1D"}, "crop_domain": {"description": "Domain where to keep data. Data outside are discarded", "type": "object", "additionalProperties": false, "properties": {"xmin": {"description": "West boundary", "type": "number"}, "xmax": {"description": "East boundary", "type": "number"}, "ymin": {"description": "South boundary", "type": "number"}, "ymax": {"description": "North boundary", "type": "number"}}}, "nlayers": {"description": "Number of layers expected in the averaging kernels (12 by default)", "type": "number", "default": 12}, "obs_duration": {"description": "Duration of each observation (0.016666666666666666 by default)", "type": "number", "default": 0.016666666666666666}, "stationID": {"description": "Name to put in the 'station' column of the output parsed datastore (\"TROPOMI\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "TROPOMI"}, "networkID": {"description": "Name to put in the 'network' column of the output parsed datastore (\"KNMI-SRON\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "KNMI-SRON"}, "parameter": {"description": "Name of the species to put in the 'parameter' column of the output parsed datastore (\"CH4\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "CH4"}, "std_max": {"description": "Threshold for standard deviation of ratio weak and strong CH4 column (0.05 by default)", "type": "number", "default": 0.05}, "cloud_fraction_max": {"description": "Maximum threshold for cloud fraction (0.001 by default)", "type": "number", "default": 0.001}, "aot_max": {"description": "Aerosol optical thickness (NIR) (0.3 by default)", "type": "number", "default": 0.3}, "chi2_max": {"description": "Threshold for chi-square value (100 by default)", "type": "number", "default": 100}, "sza_max": {"description": "Solar zenith angle (70 by default)", "type": "number", "default": 70}, "prec_max": {"description": "Precision threshold (10 by default)", "type": "number", "default": 10}, "sr_max": {"description": "Maximum surface roughness (80 by default)", "type": "number", "default": 80}, "sa_min": {"description": "Minimum surface albedo (SWIR) to keep land only (0.02 by default)", "type": "number", "default": 0.02}, "qa_value": {"description": "Keep diagnostic group equal to `qa_value` (1 by default)", "type": "number", "default": 1}, "ws_min": {"description": "Minimum ratio weak and strong CH4 column (0.85 by default)", "type": "number", "default": 0.85}, "ws_max": {"description": "Maximum ratio weak and strong CH4 column (1.15 by default)", "type": "number", "default": 1.15}, "balb_max": {"description": "Maximum blended albedo (0.8 by default)", "type": "number", "default": 0.8}}, "required": ["plugin"], "additionalProperties": false}, "TROPOMI_CH4-WFMD_obsparser": {"title": "TROPOMI/CH4-WFMD/obsparser", "description": "TROPOMI XCH4 retrievals from the University of Bremen", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TROPOMI"}, "version": {"description": "plugin version", "const": "CH4-WFMD"}, "type": {"description": "plugin type", "const": "obsparser"}}, "required": ["name", "version"]}, "crop_domain": {"description": "Domain where to keep data. Data outside are discarded", "type": "object", "additionalProperties": false, "properties": {"xmin": {"description": "West boundary", "type": "number"}, "xmax": {"description": "East boundary", "type": "number"}, "ymin": {"description": "South boundary", "type": "number"}, "ymax": {"description": "North boundary", "type": "number"}}}, "nlayers": {"description": "Number of layers expected in the averaging kernels (20 by default)", "type": "number", "default": 20}, "obs_duration": {"description": "Duration of each observation (0.016666666666666666 by default)", "type": "number", "default": 0.016666666666666666}, "stationID": {"description": "Name to put in the 'station' column of the output parsed datastore (\"TROPOMI\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "TROPOMI"}, "networkID": {"description": "Name to put in the 'network' column of the output parsed datastore (\"WFMD\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "WFMD"}, "parameter": {"description": "Name of the species to put in the 'parameter' column of the output parsed datastore (\"CH4\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "CH4"}}, "required": ["plugin"], "additionalProperties": false}, "VERIFY_std_obsparser": {"title": "VERIFY/std/obsparser", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "VERIFY"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "obsparser"}}, "required": ["name", "version"]}}, "required": ["plugin"], "additionalProperties": false}, "WDCGG_std_obsparser": {"title": "WDCGG/std/obsparser", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "WDCGG"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "obsparser"}}, "required": ["name", "version"]}, "default_unit": {"description": "Default unit to use if not explicitly specified in each file (\"ppb\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "ppb"}, "default_duration": {"description": "Default duration in hours of single measurements to use if not explicitly specified in each file (1 by default)", "type": "number", "default": 1}, "na_values": {"description": "Values to be considered as NaNs, hence to be excluded (-999 by default)", "type": "number", "default": -999}, "err_na_values": {"description": "Values for observational errors to be considered as NaNs, hence to be excluded (-999 by default)", "type": "number", "default": -999}, "measerr": {"description": "Minimum threshold for observation error. All errors smaller than this one will be replaced by the threshold", "type": "number"}, "filter_time_of_day": {"description": "List of hours of the day to keep", "type": "array"}}, "required": ["plugin"], "additionalProperties": false}, "standard_std_obsvect": {"title": "standard/std/obsvect", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "standard"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "obsvect"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "datavect": {"$ref": "#/$defs/standard_std_datavect"}, "dir_obsvect": {"description": "contains the observation vector from a previous simulation (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "dump_obs": {"description": "dump the observation vector in a netcdf file (False by default)", "type": "boolean", "default": false}, "dump_index": {"description": "dump the observation vector index as 'orig_index' (False by default)", "type": "boolean", "default": false}, "obsvect_only": {"description": "Process only observations that are part of the observation vector (False by default)", "type": "boolean", "default": false}, "dump_type": {"description": "Type of file to dump to (\"nc\" by default)", "enum": ["nc", "csv"], "default": "nc"}, "transform_pipe": {"title": "obsvect transform pipe", "type": "object", "patternProperties": {"^.*$": {"oneOf": [{"$ref": "#/$defs/background_std_transform"}, {"$ref": "#/$defs/clipcrop_std_transform"}, {"$ref": "#/$defs/exp_std_transform"}, {"$ref": "#/$defs/families_std_transform"}, {"$ref": "#/$defs/product_std_transform"}, {"$ref": "#/$defs/regrid_std_transform"}, {"$ref": "#/$defs/time_interpolation_std_transform"}, {"$ref": "#/$defs/unit_conversion_std_transform"}, {"$ref": "#/$defs/vertical_interpolation_std_transform"}, {"$ref": "#/$defs/conc2ratio_std_transform"}, {"$ref": "#/$defs/diagmet_std_transform"}, {"$ref": "#/$defs/isotopes_std_transform"}, {"$ref": "#/$defs/moist2dry_std_transform"}, {"$ref": "#/$defs/ratio2conc_std_transform"}, {"$ref": "#/$defs/satellites_std_transform"}, {"$ref": "#/$defs/array2sampled_std_transform"}, {"$ref": "#/$defs/dump2format_std_transform"}, {"$ref": "#/$defs/dump2inputs_std_transform"}, {"$ref": "#/$defs/fromcontrol_std_transform"}, {"$ref": "#/$defs/loadfromoutputs_std_transform"}, {"$ref": "#/$defs/run_model_std_transform"}, {"$ref": "#/$defs/sparse2sample_std_transform"}, {"$ref": "#/$defs/toobsvect_std_transform"}]}}, "additionalProperties": false}}, "required": ["plugin"], "additionalProperties": false}, "TGCC-CCRT_AMD_platform": {"title": "TGCC-CCRT/AMD/platform", "description": "Centre de Calcul Recherche et Technologie (AMD/rome)", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TGCC-CCRT"}, "version": {"description": "plugin version", "const": "AMD"}, "type": {"description": "plugin type", "const": "platform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}}, "required": ["plugin"], "additionalProperties": false}, "docker_cif_platform": {"title": "docker/cif/platform", "description": "Docker container for pycif", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "docker"}, "version": {"description": "plugin version", "const": "cif"}, "type": {"description": "plugin type", "const": "platform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}}, "required": ["plugin"], "additionalProperties": false}, "docker_nvidia_platform": {"title": "docker/nvidia/platform", "description": "Docker container for pycif with nvidia HPC environment", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "docker"}, "version": {"description": "plugin version", "const": "nvidia"}, "type": {"description": "plugin type", "const": "platform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "python": {"description": "the python command used to run sub-instances of pyCIF (\"python\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "python"}}, "required": ["plugin"], "additionalProperties": false}, "ECMWF_ecs_platform": {"title": "ECMWF/ecs/platform", "description": "Bologna's ECMWF cluster", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "ECMWF"}, "version": {"description": "plugin version", "const": "ecs"}, "type": {"description": "plugin type", "const": "platform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "python": {"description": "the python command used to run sub-instances of pyCIF (\"python3\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "python3"}}, "required": ["plugin"], "additionalProperties": false}, "EMPA_daint_platform": {"title": "EMPA/daint/platform", "description": "CSCS - Swiss National Supercomputing Centre", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "EMPA"}, "version": {"description": "plugin version", "const": "daint"}, "type": {"description": "plugin type", "const": "platform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "python": {"description": "Path to the python interpreter to used. (\"python\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "python"}, "nodes": {"description": "number of nodes to use by the jobs launched to run a CIF segment (analytic, EnKF modes) (1 by default)", "type": "integer", "default": 1}, "cores": {"description": "number of cores per node to use by the jobs launched by the CIF (analytic, EnKF modes) (36 by default)", "type": "integer", "default": 36}, "time": {"description": "Time limit of the job (\"01:30:00\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "01:30:00"}, "queue": {"description": "queue on which to submit the jobs launched by the CIF (analytic, EnKF modes) (\"normal\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "normal"}, "constraint": {"description": "Run on multicores (mc) or GPUs (gpu). (\"mc\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "mc"}, "project": {"description": "project on which to submit job (\"em05\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "em05"}, "memory": {"description": "Amount of memory to us in Gb", "type": "integer"}, "time_model": {"description": "Time limit of the model job if different job", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "nodes_model": {"description": "number of nodes to use by the jobs launched to run the model", "type": "integer"}, "memory_model": {"description": "Amount of memory to us in Gb for the model if different job", "type": "integer"}}, "required": ["plugin"], "additionalProperties": false}, "ESPRI_spirit-nvidia_platform": {"title": "ESPRI/spirit-nvidia/platform", "description": "ESPRI Spirit/SpiritX cluster with NVIDIA environment", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "ESPRI"}, "version": {"description": "plugin version", "const": "spirit-nvidia"}, "type": {"description": "plugin type", "const": "platform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}}, "required": ["plugin"], "additionalProperties": false}, "FMI_Puhti_platform": {"title": "FMI/Puhti/platform", "description": "CSC-Puhti's FMI cluster", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "FMI"}, "version": {"description": "plugin version", "const": "Puhti"}, "type": {"description": "plugin type", "const": "platform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "python": {"description": "the python command used to run sub-instances of pyCIF (\"python\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "python"}, "queue": {"description": "queue on which to submit the jobs launched by the CIF (analytic, EnKF modes) (\"short\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "short"}, "nodes": {"description": "number of nodes to use by the jobs launched by the CIF (analytic, EnKF modes) (1 by default)", "type": "integer", "default": 1}, "cores": {"description": "number of cores to use by the jobs launched by the CIF (analytic, EnKF modes) (1 by default)", "type": "integer", "default": 1}, "max_procs_node": {"description": "maximum number of cores available per node on the partition. Further detail `here (restricted access) <https://intranet.lsce.ipsl.fr/informatique/fr/calcul/batch.php>`__ (40 by default)", "type": "integer", "default": 40}, "resource": {"description": "indicate how the job resource is allocated (\"std\" by default)", "enum": ["std", "auto", "only_cores"], "default": "std"}, "submit_qsub": {"description": "Submit the job with :bash:`sbatch` or simply run it within the same instance (True by default)", "type": "boolean", "default": true}}, "required": ["plugin"], "additionalProperties": false}, "LAERO_nuwa_platform": {"title": "LAERO/nuwa/platform", "description": "LAERO's cluster", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LAERO"}, "version": {"description": "plugin version", "const": "nuwa"}, "type": {"description": "plugin type", "const": "platform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "compiler": {"description": "compiler used to compile the model", "enum": ["gfortran", "ifort"]}}, "required": ["plugin", "compiler"], "additionalProperties": false}, "LSCE_obelix_platform": {"title": "LSCE/obelix/platform", "description": "LSCE's cluster", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LSCE"}, "version": {"description": "plugin version", "const": "obelix"}, "type": {"description": "plugin type", "const": "platform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "python": {"description": "the python command used to run sub-instances of pyCIF (\"python\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "python"}, "queue": {"description": "queue on which to submit the jobs launched by the CIF (analytic, EnKF modes) (\"short\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "short"}, "nodes": {"description": "number of nodes to use by the jobs launched by the CIF (analytic, EnKF modes) (1 by default)", "type": "integer", "default": 1}, "cores": {"description": "number of cores to use by the jobs launched by the CIF (analytic, EnKF modes) (1 by default)", "type": "integer", "default": 1}, "max_procs_node": {"description": "maximum number of cores available per node on the partition. Further detail `here (restricted access) <https://intranet.lsce.ipsl.fr/informatique/fr/calcul/batch.php>`__ (20 by default)", "type": "integer", "default": 20}, "resource": {"description": "indicate how the job resource is allocated (\"std\" by default)", "enum": ["std", "auto", "only_cores"], "default": "std"}, "submit_qsub": {"description": "Submit the job with :bash:`qsub` or simply run it within the same instance (True by default)", "type": "boolean", "default": true}}, "required": ["plugin"], "additionalProperties": false}, "LSCE_obelix-nvidia_platform": {"title": "LSCE/obelix-nvidia/platform", "description": "LSCE's cluster with NVIDIA environnement", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "LSCE"}, "version": {"description": "plugin version", "const": "obelix-nvidia"}, "type": {"description": "plugin type", "const": "platform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "python": {"description": "the python command used to run sub-instances of pyCIF (\"python\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "python"}, "queue": {"description": "queue on which to submit the jobs launched by the CIF (analytic, EnKF modes) (\"short\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "short"}, "nodes": {"description": "number of nodes used by the jobs launched by the CIF", "type": "integer"}, "cores": {"description": "number of cores used by the jobs launched by the CIF, defaults to 1", "type": "integer"}, "auto_detect_nproc": {"description": "Automatically detect the number of cores to use and set the model plugin related input arguments accordingly. (True by default)", "type": "boolean", "default": true}, "submit_qsub": {"description": "Submit the job with :bash:`qsub`. If false simply run it within the same instance (True by default)", "type": "boolean", "default": true}}, "required": ["plugin"], "additionalProperties": false}, "TGCC-CCRT_std_platform": {"title": "TGCC-CCRT/std/platform", "description": "Centre de Calcul Recherche et Technologie (skylake)", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TGCC-CCRT"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "platform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "python": {"description": "the python command used to run sub-instances of pyCIF (\"python3 -m mpi4py -rc initialize=False\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "python3 -m mpi4py -rc initialize=False"}, "pythonuserbase": {"description": "path to user's python userbase (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "partition": {"description": "partition on which to submit job (\"skylake\" by default)", "enum": ["skylake", "rome"], "default": "skylake"}, "project": {"description": "project on which to submit job (\"gen2201\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "gen2201"}, "nodes": {"description": "number of nodes to use by the jobs launched by the CIF (analytic, EnKF modes) (1 by default)", "type": "integer", "default": 1}, "cores": {"description": "number of cores to use by the jobs launched by the CIF (analytic, EnKF modes) (1 by default)", "type": "integer", "default": 1}, "max_procs_node": {"description": "maximum number of cores available per node on the partition (48 by default)", "type": "integer", "default": 48}, "resource": {"description": "indicate how the job resource is allocated:            std - submit default or yml values,            auto - automatic submission for CHIMERE with ncores=nzdoms*nmdoms+1,            only_cores - submit cores only (\"std\" by default)", "enum": ["std", "auto", "only_cores"], "default": "std"}, "python_venv": {"description": "path to activate user's python virtual environnement (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}}, "required": ["plugin"], "additionalProperties": false}, "TGCC-CCRT_nvidia_platform": {"title": "TGCC-CCRT/nvidia/platform", "description": "Centre de Calcul Recherche et Technologie with NVIDIA environnement", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "TGCC-CCRT"}, "version": {"description": "plugin version", "const": "nvidia"}, "type": {"description": "plugin type", "const": "platform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "python": {"description": "the python command used to run sub-instances of pyCIF (\"python -m mpi4py -rc initialize=False\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "python -m mpi4py -rc initialize=False"}, "python_venv": {"description": "path to the python virtual environment to use", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "python_module": {"description": "the python module to load, by default python3/3.10.6. This argument can not be used together with 'job_env'.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "job_env": {"description": "List of commands to execute at the start of the job script to setup the environment. Using this argument will override the default module loading. This argument can not be used together with 'python_module'. The list list of commands should not include any python virtual environment activation command, please use the 'python_venv' argument for that purpose."}, "gpu": {"description": "change the command used to run parallel programs in order to allocate one GPU (False by default)", "type": "boolean", "default": false}, "partition": {"description": "partition on which to submit job, used as the :bash:`-q` option for the :bash:`cc_msub` command", "enum": ["rome", "skylake", "a64fx", "v100", "v100l", "v100l-os", "hybrid", "xlarge", "v100xl"]}, "project": {"description": "project on which to submit job, used as the :bash:`-A` option for the :bash:`cc_msub` command", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "filesystem": {"description": "the file system(s) required by the job, used as the :bash:`-m` option for the :bash:`cc_msub` command (\"all\" by default)", "default": "all"}, "qos": {"description": "Quality of Service (QoS) used to submit job, used as the :bash:`-Q` option for the :bash:`cc_msub` command (\"normal\" by default)", "enum": ["long", "normal", "test"], "default": "normal"}, "walltime": {"description": "maximum walltime of the submited job, used as the :bash:`-T` option for the :bash:`cc_msub` command (7200 by default)", "type": "integer", "default": 7200}, "nodes": {"description": "number of nodes to use by the jobs launched by the CIF, used as the :bash:`-n` option for the :bash:`cc_msub` command (1 by default)", "type": "integer", "default": 1}, "cores": {"description": "number of cores to use by the jobs launched by the CIF, used as the :bash:`-c` option for the :bash:`cc_msub` command (1 by default)", "type": "integer", "default": 1}, "submit_msub": {"description": "Submit the job with :bash:`ccc_msub`. If false simply run it within the same instance (True by default)", "type": "boolean", "default": true}}, "required": ["plugin"], "additionalProperties": false}, "dummy_txt_std_simulator": {"title": "dummy_txt/std/simulator", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "dummy_txt"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "simulator"}}, "required": ["name", "version"]}, "controlvect": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}}, "required": ["plugin"], "additionalProperties": false}, "gausscost_std_simulator": {"title": "gausscost/std/simulator", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "gausscost"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "simulator"}}, "required": ["name", "version"]}, "controlvect": {"$ref": "#/$defs/standard_std_controlvect"}, "obsvect": {"$ref": "#/$defs/standard_std_obsvect"}, "obsoperator": {"$ref": "#/$defs/standard_std_obsoperator"}, "reload_from_previous": {"description": "Use results from previous computations, i.e., reload simulated concentrations, or adjoint sensitivities from previous observation operator computations (False by default)", "type": "boolean", "default": false}, "do_svd": {"description": "Computes the cost function based on the SVD decomposition (False by default)", "type": "boolean", "default": false}, "replace_NaNs": {"description": "Replace NaNs in departures by 0. This option must be used with caution and only when knowing where NaNs come from. (False by default)", "type": "boolean", "default": false}}, "required": ["plugin"], "additionalProperties": false}, "gausscost_FLEXPART_simulator": {"title": "gausscost/FLEXPART/simulator", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "gausscost"}, "version": {"description": "plugin version", "const": "FLEXPART"}, "type": {"description": "plugin type", "const": "simulator"}}, "required": ["name", "version"]}, "controlvect": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "obsvect": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "obsoperator": {"$ref": "#/$defs/standard_std_obsoperator"}}, "required": ["plugin"], "additionalProperties": false}, "background_std_transform": {"title": "background/std/transform", "description": "Adding background to simulations", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "background"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "datavect": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "spec": {"description": "The species to process for the background.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin", "spec"], "additionalProperties": false}, "clipcrop_std_transform": {"title": "clipcrop/std/transform", "description": "Clip & crop", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "clipcrop"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "parameter": {"description": "Tracer of the input to be clipped or cropped", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component of the input to be clipped or cropped", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "mode": {"description": "Clip/crop mode to apply", "enum": ["clip", "crop"]}, "xmin": {"description": "West longitude of the rectangle to clip/crop", "type": "number"}, "xmax": {"description": "East longitude of the rectangle to clip/crop", "type": "number"}, "ymin": {"description": "South latitude of the rectangle to clip/crop", "type": "number"}, "ymax": {"description": "North latitude of the rectangle to clip/crop", "type": "number"}}, "required": ["plugin", "parameter", "component", "mode", "xmin", "xmax", "ymin", "ymax"], "additionalProperties": false}, "exp_std_transform": {"title": "exp/std/transform", "description": "exponential", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "exp"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "parameter": {"description": "Tracer of the input tracers of which exponential is taken", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component of the input tracers of which exponential is taken", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin", "parameter", "component"], "additionalProperties": false}, "families_std_transform": {"title": "families/std/transform", "description": "Tracer families or addition", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "families"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component of the input tracers to be aggregated", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component_out": {"description": "Component of the output tracer, if different from the input component.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "parameters_in": {"description": "List of tracers to be aggregated.", "type": "array"}, "parameter_out": {"description": "Name of the output tracer.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin", "component", "parameters_in"], "additionalProperties": false}, "product_std_transform": {"title": "product/std/transform", "description": "Element-wise product", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "product"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "components_in": {"description": "List of components of the input tracers to be aggregated", "type": "array"}, "parameters_in": {"description": "List of tracers to be aggregated.", "type": "array"}, "component_out": {"description": "Component of the output tracer.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "parameter_out": {"description": "Name of the output tracer.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin", "components_in", "parameters_in", "component_out", "parameter_out"], "additionalProperties": false}, "regrid_std_transform": {"title": "regrid/std/transform", "description": "Horizontal re-gridding", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "regrid"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "parameter": {"description": "Component to reproject", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component to reproject", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_wgt": {"description": "Directory where pre-computed interpolation weights are available (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "method": {"description": "Method by which the original data is spatially interpolated onto the output grid", "enum": ["mass-conservation", "fast-conservative", "bilinear", "gridcell"]}, "min_weight": {"description": "Minimum weight to consider when reprojecting. If sensitivity to original dataset is smaller to `min_weight`, then crops (1e-10 by default)", "type": "number", "default": 1e-10}, "orig_regular": {"description": "Set to FALSE if irregular original grid when reprojecting, True by default (True by default)", "type": "boolean", "default": true}, "target_lbc": {"description": "Interpolate to the LBC of a domain (False by default)", "type": "boolean", "default": false}, "rounding_domain": {"description": "Number of digits to keep when rounding deltas in the domain to check whether the domain is regular or not. Use with the method `mass-conservation` (8 by default)", "type": "integer", "default": 8}, "sparse_in": {"description": "True if the input has the shape of sparse data, i.e., a pandas.DataFrame (False by default)", "type": "boolean", "default": false}, "sparse_out": {"description": "True if the output has the shape of sparse data, i.e., a pandas.DataFrame (False by default)", "type": "boolean", "default": false}, "sampled_in": {"description": "Whether inputs are sampled data (False by default)", "type": "boolean", "default": false}, "sampled_out": {"description": "Whether outputs are sampled data (False by default)", "type": "boolean", "default": false}, "chunk_size": {"description": "Chunk size for the 'fast-conservative' method. (1000 by default)", "type": "integer", "default": 1000}, "nthreads": {"description": "Number of chunks to parallelize processing of ensembles. (1 by default)", "type": "integer", "default": 1}, "threading_mode": {"description": "Mode for threading. (\"levels\" by default)", "enum": ["trid", "levels"], "default": "levels"}, "direction": {"description": "Direction of regridding with find gridcells (\"forward\" by default)", "enum": ["forward", "reverse"], "default": "forward"}, "grid_to_surface": {"description": "Scale grid values to area values (False by default)", "type": "boolean", "default": false}}, "required": ["plugin", "parameter", "component", "method"], "additionalProperties": false}, "time_interpolation_std_transform": {"title": "time_interpolation/std/transform", "description": "Temporal interpolation and re-indexing", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "time_interpolation"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "method": {"description": "Method by which the original data is temporally interpolated onto the output time-scale", "enum": ["linear"]}, "recombine_periods": {"description": "Recombine inputs from different sub-periods. If False, data overlapping several periods will be taken from the period with the biggest overlap with the outputs (True by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": true}, "sparse_in": {"description": "True if the input has the shape of sparse data, i.e., a pandas.DataFrame (False by default)", "type": "boolean", "default": false}, "sparse_out": {"description": "True if the output has the shape of sparse data, i.e., a pandas.DataFrame (False by default)", "type": "boolean", "default": false}, "sampled_in": {"description": "Whether inputs are sampled data (False by default)", "type": "boolean", "default": false}, "sampled_out": {"description": "Whether outputs are sampled data (False by default)", "type": "boolean", "default": false}, "nthreads": {"description": "Number of chunks to parallelize processing of ensembles. (1 by default)", "type": "integer", "default": 1}}, "required": ["plugin", "method"], "additionalProperties": false}, "unit_conversion_std_transform": {"title": "unit_conversion/std/transform", "description": "Unit conversion", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "unit_conversion"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "scale": {"description": "Scale factor used to convert the original data onto the output unit.", "type": "number"}, "grid_to_surface": {"description": "Scale grid values to area values (False by default)", "type": "boolean", "default": false}, "nthreads": {"description": "Number of chunks to parallelize processing of ensembles. (1 by default)", "type": "integer", "default": 1}}, "required": ["plugin", "scale"], "additionalProperties": false}, "vertical_interpolation_std_transform": {"title": "vertical_interpolation/std/transform", "description": "Vertical interpolation and re-mapping", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "vertical_interpolation"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "method": {"description": "Method used for the interpolation - static-levels: - linear: a linear interpolation. Uses the coordinate specified in :bash:`coord_out` - closest: gets closest levels", "enum": ["static-levels", "linear", "closest", "match-layer", "layer-weighted"]}, "coord_in": {"description": "Coordinates for inputs, pres, height (\"pres\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "pres"}, "file_statlev": {"description": "File with model levels in which stations are. The expected format is:  .. code-block:: text  #STAT LAT     LON     LEV  alt(m) ALT   82.45   -62.52  1        210 JFJ   46.548  7.987   10       3580 MHD   53.33   -9.9    1        8  The first line is ignored. The important informations are the first columns with the station ID (should be consistent with the station name in your monitor file, and the fourth column specifying the level in the model (in python index starting from 0) (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "ignore_level": {"description": "Don't do any vertical interpolation for sparse data and just propagate levels from inputs and outputs (False by default)", "type": "boolean", "default": false}, "coord_out": {"description": "Coordinates for outputs (\"pres\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "pres"}, "psurf": {"description": "Standard surfce pressure to use in computations with alpha/beta coordinate (1013.25 by default)", "type": "number", "default": 1013.25}, "fill_nans": {"description": "Use in combination with :bash:`method` = :bash:`linear`. Fill values outside the convex hull of inputs by using the closest valid (above or below) value (False by default)", "type": "boolean", "default": false}, "target_top": {"description": "Interpolate to the top of a domain (False by default)", "type": "boolean", "default": false}, "sparse_in": {"description": "Whether inputs are sparse data (False by default)", "type": "boolean", "default": false}, "sparse_out": {"description": "Whether outputs are sparse data (False by default)", "type": "boolean", "default": false}, "sampled_in": {"description": "Whether inputs are sampled data (False by default)", "type": "boolean", "default": false}, "sampled_out": {"description": "Whether outputs are sampled data (False by default)", "type": "boolean", "default": false}}, "required": ["plugin", "method"], "additionalProperties": false}, "conc2ratio_std_transform": {"title": "conc2ratio/std/transform", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "conc2ratio"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin"], "additionalProperties": false}, "diagmet_std_transform": {"title": "diagmet/std/transform", "description": "DIAGMET meteorological processing for CHIMERE", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "diagmet"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "model": {"$ref": "#/$defs/CHIMERE_std_model"}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file_landuse": {"description": "Path to the LANDUSE file (computed elsewhere)", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "file_landpar": {"description": "Path to the LANDPAR file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "pblmin": {"description": "Minimum PBL height (20 by default)", "type": "number", "default": 20}, "uwinfac": {"description": "Use urban wind correction in the surface layer.  .. warning::  In the original diagmet, the values were inverted. One should use 1 to disable the function and 0 to activate it. Now, True means using it and False not using it. (False by default)", "type": "boolean", "default": false}, "uflxadd": {"description": "Use additional urban heat flux (False by default)", "type": "boolean", "default": false}, "upblmin": {"description": "Use urban correction for minimal urban PBL height (False by default)", "type": "boolean", "default": false}, "cice": {"description": "Use cloud ice water in addition to cloud liquid water (True by default)", "type": "boolean", "default": true}, "rain": {"description": "Use rain water in addition to cloud liquid water (False by default)", "type": "boolean", "default": false}, "clol": {"description": "Use low clouds: 0 = read, 1 = use liquid water, 2 = use relative humidity (0 by default)", "type": "integer", "default": 0}, "clom": {"description": "Use medium clouds: 0 = read, 1 = use liquid water, 2 = use relative humidity (0 by default)", "type": "integer", "default": 0}, "cloh": {"description": "Use high clouds: 0 = read, 1 = use liquid water, 2 = use relative humidity (0 by default)", "type": "integer", "default": 0}, "usta": {"description": "Read Ustar or recompute from Louis 1982 (\"recompute\" by default)", "enum": ["read", "recompute"], "default": "recompute"}, "deep_convection": {"description": "Read deep convection (it False, put all DP fluxes at 0) (True by default)", "type": "boolean", "default": true}}, "required": ["plugin", "file_landuse", "file_landpar"], "additionalProperties": false}, "isotopes_std_transform": {"title": "isotopes/std/transform", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "isotopes"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin"], "additionalProperties": false}, "moist2dry_std_transform": {"title": "moist2dry/std/transform", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "moist2dry"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "scale": {"description": "Scale factor used to convert the original data onto the output unit. (1.0 by default)", "type": "number", "default": 1.0}}, "required": ["plugin"], "additionalProperties": false}, "ratio2conc_std_transform": {"title": "ratio2conc/std/transform", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "ratio2conc"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin"], "additionalProperties": false}, "satellites_std_transform": {"title": "satellites/std/transform", "description": "Processing of satellite observations", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "satellites"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "ignore_formula": {"description": "Ignore the given formula number and directly use the individual options (see below): - `log_space` - `precomputed_pwgt` - `use_prior` - `unit_scaling` - `normalize_columns` - `use_drycols` - `scale_dpressure` (False by default)", "type": "boolean", "default": false}, "formula": {"description": "Number of the formula to use to apply the averaging kernels. Here is the detail of each variable:  - :math:`nlevsat` the number of levels of the satellite, - :math:`y` the equivalent of the satellite data, - :math:`y^s` the simulated concentrations interpolated on these levels, - :math:`\\Delta P_i` the pressure thicknesses of these levels [remark: if the thicknesses are not provided directly, this implies that the pressures for the sides of the levels are provided, including the surface pressure for the bottom of the lowest level], - :math:`y^0_i` the prior concentrations on these levels (prior profile), - :math:`ak_i` the averaging kernels and if relevant, - :math:`chosenlev` the number of the level of the chosen partial column. - :math:`h_i` pressure weighting function Available formulae are:", "enum": [1, 2, 3, 4, 5, 8, 10]}, "product": {"description": "Type of product (\"level\" by default)", "enum": ["level", "column"], "default": "level"}, "pressure": {"description": "Unit for the pressure levels (\"hPa\" by default)", "enum": ["hPa", "Pa"], "default": "hPa"}, "vinterp_type": {"description": "Type of vertical interpolation (\"weight\" by default)", "enum": ["weight", "linear"], "default": "weight"}, "weights_nsubsteps": {"description": "Number of sub step for target levels to do the weighted interpolation. The smaller the step, the higher the precision (20 by default)", "type": "number", "default": 20}, "nchunks": {"description": "Number of chunks for the application of averaging kernels. Averaging kernels are applied by chunks and not observation by observation to accelerate computation. Chunks should not be too small, neither too large. As a rule of thumb, chunks of a few hundreds to one thousand observations are working fine. Smaller chunks loose the advantage of chunk-based computations, while too big chunks can overload your memory. For very low number of observations, 1-2 chunks are sufficient;For big datasets, one should test different number (a few tens is typically recommended) (50 by default)", "type": "integer", "default": 50}, "cropstrato": {"description": "Cropping stratospheric averaging kernels. All averaging kernels above the top of the model are excluded. Warning: for domain-limited domain, if cropstrato is False, the top-most value from the model is interpolated to the top of the atmosphere, potentially biasing results (not recommended) (False by default)", "type": "boolean", "default": false}, "fill_strato": {"description": "Filling stratosphere from a global model (temporary implemetation) (False by default)", "type": "integer", "default": false}, "molmass": {"description": "If fill_strato is True and product is column, molar mass (in g) of the species whose field is read in the stratosphere files.", "type": "number"}, "correct_pthick": {"description": "Correct for the thickness of the column. Due to topography and surface pressure approximations and errors in the model, the total column of air is never exactly the same between observations and the model. For that reason, a correcting factor can be applied to scale the thickness of the model column to make it fit the observed column (False by default)", "type": "boolean", "default": false}, "chosenlev": {"description": "For formula type #3, level at which the equivalent of the observation are computed. Counting starts at 0. (-1 by default)", "type": "integer", "default": -1}, "split_tropo_strato": {"description": "Compute separately the contribution from the stratosphere and the troposphere for debugging purpose (False by default)", "type": "boolean", "default": false}, "unit_scaling": {"description": "Re-scale aks using a given scaling factor (1 by default)", "type": "number", "default": 1}, "log_space": {"description": "Apply averaging kernels in a log space (False by default)", "type": "boolean", "default": false}, "precomputed_pwgt": {"description": "Use pre-computed pressure weights (False by default)", "type": "boolean", "default": false}, "use_prior": {"description": "Use a prior profile (False by default)", "type": "boolean", "default": false}, "use_drycols": {"description": "Use dry air columns to scale simulations (False by default)", "type": "boolean", "default": false}, "scale_dpressure": {"description": "Scale simulated level by pressure thickness (False by default)", "type": "boolean", "default": false}, "normalize_columns": {"description": "Normalize total columns according to aks and pressure weights, or drycols if `use_drycols = True` (False by default)", "type": "boolean", "default": false}, "level_based": {"description": "Averaging kernel pressure levels are defined at the middle (`True`) of levels, hence with `n` values, or at the interface ('False'), hence with `n+1` values (False by default)", "type": "boolean", "default": false}, "force_dump_sim_aks": {"description": "Force dump the full dataframe before applying aks for debugging purposes (False by default)", "type": "boolean", "default": false}, "dir": {"$ref": "#/$defs/datavect_arg_dir"}, "file": {"$ref": "#/$defs/datavect_arg_file"}, "varname": {"$ref": "#/$defs/datavect_arg_varname"}, "file_freq": {"$ref": "#/$defs/datavect_arg_file_freq"}, "split_freq": {"$ref": "#/$defs/datavect_arg_split_freq"}}, "required": ["formula", "molmass"], "additionalProperties": false}, "array2sampled_std_transform": {"title": "array2sampled/std/transform", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "array2sampled"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin"], "additionalProperties": false}, "dump2format_std_transform": {"title": "dump2format/std/transform", "description": "Dump to specific format", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "dump2format"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "domain": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "parameter": {"description": "Name of the parameter to dump to a specific format.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Name of the component to dump to a specific format.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_dir": {"description": "Dump directory for the files, the simulation period run subdirectory is used by default.", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dump_file": {"description": "File format for the files (\"dump_%Y%m%d\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "dump_%Y%m%d"}, "dump_format": {"description": "Definition of the plugin to use to dump the data, this plugin should have a ``write`` method implemented", "type": "object", "additionalProperties": false, "properties": {"name": {"description": "Name of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "version": {"description": "Version of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "type": {"description": "Type of the plugin", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}, "dump_options": {"description": "Dumping options, i.e., options for the plugin chosen in ``dump_format``"}, "overwrite": {"description": "If the target file already exists and `overwrite` is False, the data will not be dumped. (True by default)", "type": "boolean", "default": true}, "use_defined_domain": {"description": "Get the dump domain from the YAML configuration as a plugin dependency, the domain plugin is picked from this plugin or from the root level if none is defined within this plugin (False by default)", "type": "boolean", "default": false}, "use_get_domain": {"description": "Get the dump domain with ``get_domain`` method of the plugin defined with ``dump_format`` and ``dump_options``, the ``dump_options`` arguments are passed to the dump plugin's ``get_domain`` method with the ``tracer`` keyword argument.", "type": "object", "additionalProperties": false, "properties": {"dir": {"description": "Directory passed as the first positional argument (``ref_dir``) of the dump plugin's ``get_domain`` method (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "file": {"description": "File name passed as the second positional argument (``ref_file``) of the dump plugin's ``get_domain`` method", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}, "resample_dump": {"description": "Resample the data before dumping", "type": "object", "additionalProperties": false, "properties": {"file_freq": {"description": "Dump files frenquency", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "var_freq": {"description": "Variable frequency inside each file", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}}, "required": ["plugin", "parameter", "component"], "additionalProperties": false}, "dump2inputs_std_transform": {"title": "dump2inputs/std/transform", "description": "Dump to transform inputs", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "dump2inputs"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin"], "additionalProperties": false}, "fromcontrol_std_transform": {"title": "fromcontrol/std/transform", "description": "Data initialization from the control vector", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "fromcontrol"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "obsvect": {"$ref": "#/$defs/standard_std_obsvect"}, "controlvect": {"$ref": "#/$defs/standard_std_controlvect"}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin"], "additionalProperties": false}, "loadfromoutputs_std_transform": {"title": "loadfromoutputs/std/transform", "description": "Read model output to data", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "loadfromoutputs"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin"], "additionalProperties": false}, "run_model_std_transform": {"title": "run_model/std/transform", "description": "Computing a transport model", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "run_model"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "model": {"type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "type": "string"}, "version": {"description": "plugin version", "type": "string"}, "type": {"description": "plugin type", "type": "string"}}, "required": ["name", "version"]}}}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin"], "additionalProperties": false}, "sparse2sample_std_transform": {"title": "sparse2sample/std/transform", "description": "", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "sparse2sample"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin"], "additionalProperties": false}, "toobsvect_std_transform": {"title": "toobsvect/std/transform", "description": "Process data to the observation vector", "type": "object", "properties": {"plugin": {"description": "plugin definition", "type": "object", "properties": {"name": {"description": "plugin name", "const": "toobsvect"}, "version": {"description": "plugin version", "const": "std"}, "type": {"description": "plugin type", "const": "transform"}}, "required": ["name", "version"]}, "obsvect": {"$ref": "#/$defs/standard_std_obsvect"}, "controlvect": {"$ref": "#/$defs/standard_std_controlvect"}, "parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "split_freq": {"description": "Frequency at which to split the processing of observations. The expected frequency should follow Pandas syntax", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}, "required": ["plugin"], "additionalProperties": false}, "lmdz_chemistry": {"description": "LMDz chemistry scheme", "type": "object", "properties": {"schemeid": {"description": "scheme id", "type": "string"}, "acspecies": {"description": "Active species (species to be transported in the model)", "type": "object", "patternProperties": {"^.*$": {"description": "species name", "type": "object", "properties": {"restart_id": {"restart_id": "restart id", "type": "integer"}, "mass": {"description": "molar mass", "type": "number", "minimum": 0}}, "required": ["restart_id", "mass"], "additionalProperties": false}}, "additionalProperties": false}, "emis_species": {"description": "Emitted species", "type": "object", "patternProperties": {"^.*$": {"description": "species name", "type": "null"}}, "additionalProperties": false}, "prescrconcs": {"description": "Prescribed species", "type": "object", "patternProperties": {"^.*$": {"description": "species name", "type": "null"}}, "additionalProperties": false}, "reactions": {"description": "Chemical reactions", "type": "object", "patternProperties": {"^r[0-9]+$": {"description": "reaction", "type": "string"}}, "additionalProperties": false}}, "required": ["schemeid", "acspecies", "reactions"], "additionalProperties": false}, "datavect_arg_dir": {"properties": {"dir": {"description": "Path to the corresponding component. This value is used if not provided in parameters (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}}}, "datavect_arg_file": {"properties": {"file": {"description": "File format in the given directory. This value is used if not provided in parameters (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}}}, "datavect_arg_varname": {"properties": {"varname": {"description": "Variable name to use to read data filesinstead of the parameter name if different to the parameter name (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}}}, "datavect_arg_file_freq": {"properties": {"file_freq": {"description": "Temporal frequency to fetch files (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}}}, "datavect_arg_split_freq": {"properties": {"split_freq": {"description": "Force splitting the processing at a given frequency different to `file_freq`", "type": ["string", "array"], "items": {"type": ["string", "array"]}}}}, "regrid_std_transform_datavect": {"title": "regrid/std/transform", "description": "Horizontal re-gridding", "type": "object", "properties": {"parameter": {"description": "Component to reproject", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component to reproject", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "dir_wgt": {"description": "Directory where pre-computed interpolation weights are available (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "method": {"description": "Method by which the original data is spatially interpolated onto the output grid", "enum": ["mass-conservation", "fast-conservative", "bilinear", "gridcell"]}, "min_weight": {"description": "Minimum weight to consider when reprojecting. If sensitivity to original dataset is smaller to `min_weight`, then crops (1e-10 by default)", "type": "number", "default": 1e-10}, "orig_regular": {"description": "Set to FALSE if irregular original grid when reprojecting, True by default (True by default)", "type": "boolean", "default": true}, "target_lbc": {"description": "Interpolate to the LBC of a domain (False by default)", "type": "boolean", "default": false}, "rounding_domain": {"description": "Number of digits to keep when rounding deltas in the domain to check whether the domain is regular or not. Use with the method `mass-conservation` (8 by default)", "type": "integer", "default": 8}, "sparse_in": {"description": "True if the input has the shape of sparse data, i.e., a pandas.DataFrame (False by default)", "type": "boolean", "default": false}, "sparse_out": {"description": "True if the output has the shape of sparse data, i.e., a pandas.DataFrame (False by default)", "type": "boolean", "default": false}, "sampled_in": {"description": "Whether inputs are sampled data (False by default)", "type": "boolean", "default": false}, "sampled_out": {"description": "Whether outputs are sampled data (False by default)", "type": "boolean", "default": false}, "chunk_size": {"description": "Chunk size for the 'fast-conservative' method. (1000 by default)", "type": "integer", "default": 1000}, "nthreads": {"description": "Number of chunks to parallelize processing of ensembles. (1 by default)", "type": "integer", "default": 1}, "threading_mode": {"description": "Mode for threading. (\"levels\" by default)", "enum": ["trid", "levels"], "default": "levels"}, "direction": {"description": "Direction of regridding with find gridcells (\"forward\" by default)", "enum": ["forward", "reverse"], "default": "forward"}, "grid_to_surface": {"description": "Scale grid values to area values (False by default)", "type": "boolean", "default": false}}, "required": ["method"], "additionalProperties": false}, "time_interpolation_std_transform_datavect": {"title": "time_interpolation/std/transform", "description": "Temporal interpolation and re-indexing", "type": "object", "properties": {"parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "method": {"description": "Method by which the original data is temporally interpolated onto the output time-scale", "enum": ["linear"]}, "recombine_periods": {"description": "Recombine inputs from different sub-periods. If False, data overlapping several periods will be taken from the period with the biggest overlap with the outputs (True by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": true}, "sparse_in": {"description": "True if the input has the shape of sparse data, i.e., a pandas.DataFrame (False by default)", "type": "boolean", "default": false}, "sparse_out": {"description": "True if the output has the shape of sparse data, i.e., a pandas.DataFrame (False by default)", "type": "boolean", "default": false}, "sampled_in": {"description": "Whether inputs are sampled data (False by default)", "type": "boolean", "default": false}, "sampled_out": {"description": "Whether outputs are sampled data (False by default)", "type": "boolean", "default": false}, "nthreads": {"description": "Number of chunks to parallelize processing of ensembles. (1 by default)", "type": "integer", "default": 1}}, "required": ["method"], "additionalProperties": false}, "unit_conversion_std_transform_datavect": {"title": "unit_conversion/std/transform", "description": "Unit conversion", "type": "object", "properties": {"parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "scale": {"description": "Scale factor used to convert the original data onto the output unit.", "type": "number"}, "grid_to_surface": {"description": "Scale grid values to area values (False by default)", "type": "boolean", "default": false}, "nthreads": {"description": "Number of chunks to parallelize processing of ensembles. (1 by default)", "type": "integer", "default": 1}}, "required": ["scale"], "additionalProperties": false}, "vertical_interpolation_std_transform_datavect": {"title": "vertical_interpolation/std/transform", "description": "Vertical interpolation and re-mapping", "type": "object", "properties": {"parameter": {"description": "Parameter name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "component": {"description": "Component name on which the transform works on", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "orig_parameter_plg": {"description": "Plugin object on which the transform works on"}, "orig_component_plg": {"description": "Corresponding component object on which the transform works on"}, "successor": {"description": "Name of the successor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "precursor": {"description": "Name of the precursor transform", "type": ["string", "array"], "items": {"type": ["string", "array"]}}, "method": {"description": "Method used for the interpolation - static-levels: - linear: a linear interpolation. Uses the coordinate specified in :bash:`coord_out` - closest: gets closest levels", "enum": ["static-levels", "linear", "closest", "match-layer", "layer-weighted"]}, "coord_in": {"description": "Coordinates for inputs, pres, height (\"pres\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "pres"}, "file_statlev": {"description": "File with model levels in which stations are. The expected format is:  .. code-block:: text  #STAT LAT     LON     LEV  alt(m) ALT   82.45   -62.52  1        210 JFJ   46.548  7.987   10       3580 MHD   53.33   -9.9    1        8  The first line is ignored. The important informations are the first columns with the station ID (should be consistent with the station name in your monitor file, and the fourth column specifying the level in the model (in python index starting from 0) (\"\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": ""}, "ignore_level": {"description": "Don't do any vertical interpolation for sparse data and just propagate levels from inputs and outputs (False by default)", "type": "boolean", "default": false}, "coord_out": {"description": "Coordinates for outputs (\"pres\" by default)", "type": ["string", "array"], "items": {"type": ["string", "array"]}, "default": "pres"}, "psurf": {"description": "Standard surfce pressure to use in computations with alpha/beta coordinate (1013.25 by default)", "type": "number", "default": 1013.25}, "fill_nans": {"description": "Use in combination with :bash:`method` = :bash:`linear`. Fill values outside the convex hull of inputs by using the closest valid (above or below) value (False by default)", "type": "boolean", "default": false}, "target_top": {"description": "Interpolate to the top of a domain (False by default)", "type": "boolean", "default": false}, "sparse_in": {"description": "Whether inputs are sparse data (False by default)", "type": "boolean", "default": false}, "sparse_out": {"description": "Whether outputs are sparse data (False by default)", "type": "boolean", "default": false}, "sampled_in": {"description": "Whether inputs are sampled data (False by default)", "type": "boolean", "default": false}, "sampled_out": {"description": "Whether outputs are sampled data (False by default)", "type": "boolean", "default": false}}, "required": ["method"], "additionalProperties": false}}}