Version 1.0 Updates

Version 1.0.0

Deprecated features

The following deprecations have been introduced in this release:

Please note that the import paths for the deprecated functions have changed. See the next section for details.

Changed import paths

The deprecated functions listed above now have to be imported from the earthkit.meteo.vertical.array submodule. Previously they were available in the earthkit.meteo.vertical submodule.

Removed

The following functions have been removed:

  • earthkit.meteo.thermo.kelvin_to_celsius()

  • earthkit.meteo.thermo.celsius_to_kelvin()

They can be both replaced by using the newly added T_C2K (273.15 K) constant.

High level interface

A unified high-level interface has been added across most modules, supporting array, Xarray and earthkit-data FieldList/Field input. The appropriate implementation is selected automatically based on the input type, so the same function names and call signatures work regardless of how the data is represented.

Note

Not all functions support every input type yet, and there may be minor API differences between implementations. Refer to each function’s documentation for details.

from earthkit.meteo import wind

# For array-based inputs
speed = wind.speed(u_array, v_array)

# For Xarray-based inputs
speed = wind.speed(u_xarray, v_xarray)

# For FieldList-based inputs
speed = wind.speed(u_fieldlist, v_fieldlist)

The actual implementations are now available in the array, xarray and fieldlist submodules and can also be directly accessed bypassing the high level dispatch mechanism.

import earthkit.meteo.wind.array as array_wind
import earthkit.meteo.wind.xarray as xarray_wind
import earthkit.meteo.wind.fieldlist as fieldlist_wind

# For array-based inputs
speed = array_wind.speed(u_array, v_array)

# For Xarray-based inputs
speed = xarray_wind.speed(u_xarray, v_xarray)

# For FieldList-based inputs
speed = fieldlist_wind.speed(u_fieldlist, v_fieldlist)

Examples of using the high-level interface with various inputs can be found in the following notebook example:

New vertical methods

The following coordinate computing functions have been added for array and FieldList inputs (see: earthkit.meteo.vertical.array and earthkit.meteo.vertical.fieldlist):

  • hybrid_level_parameters

  • pressure_on_hybrid_levels

  • relative_geopotential_thickness_on_hybrid_levels_from_alpha_delta

  • relative_geopotential_thickness_on_hybrid_levels

  • geopotential_on_hybrid_levels

  • height_on_hybrid_levels

The following vertical interpolation functions have been added for array and FieldList inputs (see: earthkit.meteo.vertical.array and earthkit.meteo.vertical.fieldlist):

  • interpolate_hybrid_to_pressure_levels

  • interpolate_hybrid_to_height_levels

  • interpolate_pressure_to_height_levels

  • interpolate_monotonic

The following vertical interpolation functions have been added to the earthkit.meteo.vertical.xarray submodule for Xarray inputs:

  • interpolate_monotonic

  • interpolate_to_pressure_levels

  • interpolate_sleve_to_coord_levels

  • interpolate_sleve_to_theta_levels

See all notebook examples for vertical coordinate and interpolation functions in the Vertical tutorial section.

Regimes

Added new submodule earthkit.meteo.regimes with classes to define a weather regime classification based on patterns and functions to project anomaly fields onto these patterns to compute a regime index, following the approach of Michel and Rivière (2011).

See the notebook example: Regimes: year-round North Atlantic-European Weather Regimes

Bootstrap utilities

Added a new bootstrapping helper module earthkit.meteo.score.bootstrap (#54) providing functions for statistical resampling and bootstrap confidence interval estimation. Both array and xarray inputs are supported.

Key functions:

  • resample() — draw bootstrap samples from a dataset, with optional replacement

  • bootstrap() — compute a statistic over bootstrap samples

New features

kge exposed at top-level score module

kge() (Kling–Gupta Efficiency) is now importable directly from earthkit.meteo.score (#162).