earthkit.meteo.vertical.array.interpolate_hybrid_to_height_levels

earthkit.meteo.vertical.array.interpolate_hybrid_to_height_levels(data, target_h, t, q, zs, sp, A, B, alpha_top='ifs', h_type='geometric', h_reference='ground', interpolation='linear', aux_bottom_data=None, aux_bottom_h=None, aux_top_data=None, aux_top_h=None, vertical_dim=0)

Interpolate data from hybrid full-levels (IFS model levels) to height levels.

New in version 1.0.0

Parameters:
  • data (ArrayLike) – Data to be interpolated. The axis corresponding to the vertical coordinate (hybrid levels) is defined by the vertical_dim parameter. Must have at least two levels. Levels must be ordered in ascending order with respect to the model level number. By convention, model level numbering starts at 1 at the top of the atmosphere and increases towards the surface. Not all the levels must be present, but a contiguous level range including the bottom-most level must be used. E.g. if the vertical coordinate system has 137 model levels using only a subset of levels between e.g. 137-96 is allowed.

  • target_h (ArrayLike) – Target height levels (m) to which data will be interpolated. It can be either a scalar or a 1D array of height levels. Alternatively, it can be a multidimensional array with a vertical axis defined by vertical_dim. In this case the other axes/dimensions must match those of data. The type of the height and the reference level are defined by h_type and h_reference.

  • t (ArrayLike) – Temperature on hybrid full-levels (K). Must have the same shape, level range and order as data.

  • q (ArrayLike) – Specific humidity on hybrid full-levels (kg/kg). Must have the same shape, level range and order as t.

  • zs (ArrayLike) – Surface geopotential (m2/s2). The shape must be compatible with the non-vertical dimensions of t and q. Not used when h_type is “geopotential” and h_reference is “ground”.

  • sp (ArrayLike) – Surface pressure (Pa). The shape must be compatible with the non-vertical dimensions of data.

  • A (ArrayLike) – A-coefficients defining the hybrid levels. Must contain all the half-levels in ascending order with respect to the model level number. See hybrid_level_parameters() for details.

  • B (ArrayLike) – B-coefficients defining the hybrid levels. Must contain all the half-levels in ascending order with respect to the model level number. Must have the same size as A. See hybrid_level_parameters() for details.

  • alpha_top (str) – Option to initialise the alpha parameters (for details see below) on the top of the model atmosphere (first half-level in the vertical coordinate system). See pressure_on_hybrid_levels() for details.

  • h_type (str) –

    Type of height to compute. Default is “geometric”. Possible values are:

    • ”geometric”: geometric height (m) with respect to h_reference

    • ”geopotential”: geopotential height (m) with respect to h_reference

    See geometric_height_from_geopotential() and geopotential_height_from_geopotential() for details.

  • h_reference (str) –

    Reference level for the height calculation. Default is “ground”. Possible values are:

    • ”ground”: height with respect to the ground/surface level

    • ”sea”: height with respect to the sea level

  • interpolation (str) –

    Interpolation mode. Default is “linear”. Possible values are:

    • ”linear”: linear interpolation in height between the two nearest levels

    • ”log”: linear interpolation in logarithm of height between the two nearest levels

    • ”nearest”: nearest level interpolation

  • aux_bottom_data (ArrayLike|None, optional) – Auxiliary data for interpolation to heights between the bottom hybrid full-level and aux_bottom_h. Can be a scalar or must have the same shape as a single level of data.

  • aux_bottom_h (ArrayLike|None, optional) – Heights (m) of aux_bottom_data. Can be a scalar or must have the same shape as a single level of data. The type of the height and the reference level are defined by h_type and h_reference.

  • aux_top_data (ArrayLike|None, optional) – Auxiliary data for interpolation to heights above the top hybrid full-level and below aux_top_h. Can be a scalar or must have the same shape as a single level of data.

  • aux_top_h (ArrayLike|None, optional) – Heights (m) of aux_top_data. Can be a scalar or must have the same shape as a single level of data. The type of the height and the reference level are defined by h_type and h_reference.

  • vertical_dim (int) – Axis corresponding to the vertical coordinate (hybrid full-levels) in the input arrays and also in the output array. Default is 0 (first axis).

Returns:

Data interpolated to the target height levels. The shape depends on the shape of target_h. The axis corresponding to the vertical coordinate (hybrid levels) is defined by the vertical_dim parameter. When interpolation is not possible for a given target height level (e.g., when the target height is outside the available height range), the corresponding output values are set to nan.

Return type:

ArrayLike

Raises:
  • ValueError – If data has less than two levels.

  • ValueError – If the first dimension of data and that of target_h do not match.

Examples

  • /how-tos/interpolate_hybrid_to_hl.ipynb