pycontrails.Model¶
- class pycontrails.Model(met=None, params=None, **params_kwargs)¶
Bases:
ABCBase class for physical models.
Implementing classes must implement the
eval()method- __init__(met=None, params=None, **params_kwargs)¶
Methods
__init__([met, params])Return an ECMWF-specific list of required meteorology variables.
eval([source])Abstract method to handle evaluation.
Return a model-agnostic list of required meteorology variables.
get_data_param(other, key[, default, set_attr])Get data from other source-compatible object with default set by model parameter key.
get_source_param(key[, default, set_attr])Get source data with default set by parameter key.
Return a GFS-specific list of required meteorology variables.
Ensure that
metis a MetDataset.require_source_type(type_)Ensure that
sourceistype_.set_source([source])Attach original or copy of input
sourcetosource.set_source_met([optional, variable])Ensure or interpolate each required
met_variablesonsource.transfer_met_source_attrs([source])Transfer met source metadata from
mettosource.update_params([params])Update model parameters on
params.Attributes
Meteorology data
Instantiated model parameters, in dictionary form
Data evaluated in model
Generate a unique hash for model instance.
Shortcut to create interpolation arguments from
params.Get long name descriptor, annotated on
xr.DataArrayoutputs.Require meteorology is not None on __init__()
class`Flight`.
Required meteorology pressure level variables.
Set of required parameters if processing already complete on
metinput.Optional meteorology variables
- default_params¶
alias of
ModelParams
- downselect_met()¶
Downselect
metdomain to the max/min bounds ofsource.Override this method if special handling is needed in met down-selection.
sourcemust be defined before callingdownselect_met().This method copies and re-assigns
metusingmet.copy()to avoid side-effects.
- Raises:
ValueError – Raised if
sourceis not defined. Raised ifsourceis not aGeoVectorDataset.TypeError – Raised if
metis not aMetDataset.
- classmethod ecmwf_met_variables()¶
Return an ECMWF-specific list of required meteorology variables.
- Returns:
tuple[MetVariable]– List of ECMWF-specific variants of required variables
- abstractmethod eval(source=None, **params)¶
Abstract method to handle evaluation.
Implementing classes should override call signature to overload
sourceinputs and model outputs.- Parameters:
source (
ModelInput, optional) – Dataset defining coordinates to evaluate model. Defined by implementing class, but must be a subset of ModelInput. If None,metis assumed to be evaluation points.**params (
Any) – Overwrite model parameters before evaluation.
- Returns:
ModelOutput– Return type depends on implementing model
- classmethod generic_met_variables()¶
Return a model-agnostic list of required meteorology variables.
- Returns:
tuple[MetVariable]– List of model-agnostic variants of required variables
- get_data_param(other, key, default=<object object>, *, set_attr=True)¶
Get data from other source-compatible object with default set by model parameter key.
Retrieves data with the following hierarchy:
other.data[key]. Returnsnp.ndarray | xr.DataArray.other.attrs[key]params[key]default
In case 3., the value of
params[key]is attached toother.attrs[key]unlessset_attris set to False.- Parameters:
- Returns:
Any– Value(s) found for key inotherdata,otherattrs, or model params- Raises:
KeyError – Raises KeyError if key is not found in any location and
defaultis not provided.
- get_source_param(key, default=<object object>, *, set_attr=True)¶
Get source data with default set by parameter key.
Retrieves data with the following hierarchy:
source.data[key]. Returnsnp.ndarray | xr.DataArray.source.attrs[key]params[key]default
In case 3., the value of
params[key]is attached tosource.attrs[key]unlessset_attris set to False.- Parameters:
- Returns:
Any– Value(s) found for key in source data, source attrs, or model params- Raises:
KeyError – Raises KeyError if key is not found in any location and
defaultis not provided.
- classmethod gfs_met_variables()¶
Return a GFS-specific list of required meteorology variables.
- Returns:
tuple[MetVariable]– List of GFS-specific variants of required variables
- property hash¶
Generate a unique hash for model instance.
- Returns:
str– Unique hash for model instance (sha1)
- property interp_kwargs¶
Shortcut to create interpolation arguments from
params.The output of this is useful for passing to
interpolate_met().- Returns:
dict[str,Any]– Dictionary with keys”method”
”bounds_error”
”fill_value”
”localize”
”use_indices”
”q_method”
as determined by
params.
- abstract property long_name¶
Get long name descriptor, annotated on
xr.DataArrayoutputs.
- met¶
Meteorology data
- met_required = False¶
Require meteorology is not None on __init__()
- met_variables¶
Required meteorology pressure level variables. Each element in the list is a
MetVariableor atuple[MetVariable]. If element is atuple[MetVariable], the variable depends on the data source and the tuple must include entries for a model-agnostic variable, an ECMWF-specific variable, and a GFS-specific variable. Only one of the three variable in the tuple is required for model evaluation.
- abstract property name¶
class`Flight`.
- Type:
Get model name for use as a data key in
xr.DataArrayor
- optional_met_variables¶
Optional meteorology variables
- params¶
Instantiated model parameters, in dictionary form
- processed_met_variables¶
Set of required parameters if processing already complete on
metinput.
- require_met()¶
Ensure that
metis a MetDataset.- Returns:
MetDataset– Returns reference tomet. This is helpful for type narrowingmetwhen meteorology is required.- Raises:
ValueError – Raises when
metis None.
- require_source_type(type_)¶
Ensure that
sourceistype_.- Returns:
_Source– Returns reference tosource. This is helpful for type narrowingsourceto specific type(s).- Raises:
ValueError – Raises when
sourceis not_type_.
- set_source(source=None)¶
Attach original or copy of input
sourcetosource.- Parameters:
source (
MetDataset | GeoVectorDataset | Flight | Iterable[Flight] | None) – Parametersourcepassed ineval(). If None, an empty MetDataset with coordinates likemetis set tosource.
See also
- set_source_met(optional=False, variable=None)¶
Ensure or interpolate each required
met_variablesonsource.For each variable in
met_variables, checksourcefor data variable with the same name.For
GeoVectorDatasetsources, try to interpolatemetif variable does not exist.For
MetDatasetsources, try to get data frommetif variable does not exist.- Parameters:
optional (
bool, optional) – Includeoptional_met_variablesvariable (
MetVariable | Sequence[MetVariable] | None, optional) – MetVariable to set, frommet_variables. If None, set all variables inmet_variablesandoptional_met_variablesifoptionalis True.
- Raises:
ValueError – Variable does not exist and
sourceis a MetDataset.
- source¶
Data evaluated in model