xoa.grid.dz2depth#
- xoa.grid.dz2depth(dz, positive=None, zdim=None, ref=None, ref_type='infer', centered=False)[source]#
Integrate layer thicknesses to compute depths
The output depths are the depths at the bottom of the layers and the top is at a depth of zero. Thus, the output array has the same dimensions as the input array of layer thicknesses.
- Parameters:
dz (xarray.DataArray) – Layer thicknesses
positive (str, int, None) – Direction over which coordinates are increasing:
0|"infer"|"guess",1|"up",-1|"down"When “up”, the first level is supposed to be the bottom and the output coordinates are negative. When “down”, first level is supposed to be the top and the output coordinates are positive. When “guess”, the dz array must have an axis coordinate of the same name as the z dimension, and this coordinate must have a valid positive attribute.zdim (str) – Name of the vertical dimension. If not set, it is inferred with
get_meta_dims().ref (xarray.DataArray) –
Reference array converting layer thicknesses to depth:
If positive up, it is expected to be the SSH (sea surface height) by default
If positive down, it is expected to be by default the depth of ground also known as bathymetry, which should be positive.
ref_type (str, int) – Type of ref:
0|"infer",1|"top"|"ssh",-1|"bottom"|"bathy"centered (bool) – Get depth at the middle of layers instead of at their edge
- Returns:
xarray.DataArray – Output depths with the same dimensions as input array.
Example
In [1]: dz = xr.DataArray([1., 3., 4.], dims="nz") # Positive down In [2]: print(dz2depth(dz, "down")) <xarray.DataArray 'depth' (nz: 4)> Size: 32B array([0., 1., 4., 8.]) Dimensions without coordinates: nz Attributes: positive: down axis: Z long_name: Depth standard_name: ocean_layer_depth units: m # Positive up In [3]: print(dz2depth(dz, "up")) <xarray.DataArray 'depth' (nz: 4)> Size: 32B array([-8., -7., -4., 0.]) Dimensions without coordinates: nz Attributes: positive: up axis: Z long_name: Depth standard_name: ocean_layer_depth units: m