openghg_inversions.inversion_inputs#
Create backend-neutral, observation-aligned inversion inputs.
make_inv_inputs gathers selected per-site datasets into one ragged
nmeasure dataset, validates shared state layouts, adds site/minimum-error
metadata, transforms boundary-condition periods, drops unusable rows, and
materializes core arrays. sites=None infers non-metadata entries; an
explicit empty selection is an error.
- openghg_inversions.inversion_inputs.add_min_error(ds: Dataset, fp_data: dict[str, Any], min_error: str | dict[str, float] | int | float = 0.0, min_error_per_site: bool = True) Dataset#
Add a prepared, observation-aligned minimum error to a dataset.
- openghg_inversions.inversion_inputs.add_site_indicator(ds: Dataset, sort: bool = False) Dataset#
Adds site_indicator and site_names data variables.
- openghg_inversions.inversion_inputs.make_freq_indicator(time: DataArray, freq: Literal['monthly'] | str, *, anchor_time: str | datetime | datetime64 | Timestamp | None = None) DataArray#
- openghg_inversions.inversion_inputs.make_inv_inputs(fp_data: dict[str, Any], sites: list[str] | None = None, bc_freq: Literal['monthly'] | str | None = None, min_error: str | dict[str, float] | int | float = 0.0, min_error_per_site: bool = True, start_date: str | datetime | datetime64 | Timestamp | None = None, missing_data_vars: Literal['error', 'drop'] = 'drop') Dataset#
Create backend-neutral observation-aligned inversion inputs.
The returned dataset contains shared observations, sensitivities, error terms, and site alignment metadata. Model-component-specific arrays are constructed by their owning components.
- Parameters:
fp_data – Per-site merged observations and sensitivity data.
sites – Sites to retain.
Noneinfers all non-metadatafp_datakeys in insertion order. An explicit empty list is invalid, and every named site must exist infp_data.bc_freq – Optional frequency used to transform boundary-condition sensitivities.
min_error – Minimum-error value or calculation configuration.
min_error_per_site – Whether a calculated minimum error varies by site.
start_date – Optional anchor for fixed-duration boundary-condition frequencies.
missing_data_vars – Policy for observation-aligned variables that are not present at every site.
"drop"preserves the established OpenGHG/legacy behavior;"error"prevents extension fields from being discarded.
- Returns:
Canonical inversion inputs aligned along
nmeasure.- Raises:
ValueError – If no sites can be inferred, the explicit selection is empty, a requested site is missing, required input variables are missing, the selected missing-variable policy is violated, or minimum-error configuration is invalid.
- openghg_inversions.inversion_inputs.make_sigma_freq(time: DataArray, freq: Literal['monthly'] | str | None = None, anchor_time: str | datetime | datetime64 | Timestamp | None = None) DataArray#
- openghg_inversions.inversion_inputs.make_site_indicator(site_coord: DataArray) DataArray#
Make site_indicator from DataArray of site names.
For instance, the values [“TAC”, “TAC”, “MHD”] would be converted to [0, 0, 1].
- openghg_inversions.inversion_inputs.make_site_names(site_coord: DataArray) DataArray#
Make site names DataArray corresponding to site indicator.
- openghg_inversions.inversion_inputs.xr_factorize(da: DataArray, indicator_name: str, label_name: str, label_dim: str, sort: bool = False) Dataset#
Create Dataset with integer indicators and labels for DataArray.
- Parameters:
da – DataArray to find indicator for.
indicator_name – name for indicator data variable
label_name – name for label data variable
label_dim – dimension for labels
sort – if True, the labels will be sorted and the indicator shuffled
accordingly
- Returns:
Dataset with indicator and label data variables.