epygram.geometries.VGeometry
— Vertical Geometry class¶
Contains the class for Vertical geometry of fields.
- class epygram.geometries.VGeometry.VGeometry(typeoffirstfixedsurface, levels, typeofsecondfixedsurface=None, toplevel=None, bottomlevel=None, grid=None, position_on_grid='__unknown__')[source]¶
Bases:
epygram.util.RecursiveObject
Handles the vertical geometry for fields.
Here, the grid defines the vertical position of each level between a bottom and a top positions.
The position of points w/r to the vertical grid (mass or flux points), is interpreted as:
mass: points are located on same levels as the grid points.
flux: points are located on half-levels, hence are N+1.
levels is a list with one item for each level represented in data. Each item can be:
a scalar (constant value for all the data point),
an array with the horizontal geographic shape (level constant in time but varying on the horizontal),
an array with the first dimension corresponding to the validity lengthy and other dimensions to represent the horizotal.
It is not allowed to have a level varying in time and constant on the geographic domain.
- Parameters
structure (str) – must be ‘V’
typeoffirstfixedsurface (int) – Type of horizontal level, as of GRIB2 norm (inspired from GRIB_API).
levels (list) – Effective levels on which data is available.
grid (dict) – Handles description of the vertical grid.
position_on_grid (str) – Position of points w/r to the vertical grid. (among [‘mass’, ‘flux’, ‘__unknown__’])
Functions¶
- epygram.geometries.VGeometry.hybridP2pressure(hybridP_geometry, Psurf, vertical_mean, gridposition=None)[source]¶
Converts a ‘hybrid_pressure’ VGeometry to a ‘pressure’ (in hPa) VGeometry.
- Parameters
hybridP_geometry (VGeometry) – the initial vertical coordinate
Psurf (float) – the surface pressure in Pa, needed for integration of Ai and Bi.
vertical_mean (str) – defines the kind of averaging done on the vertical to compute half-levels from full-levels, or inverse: ‘geometric’ or ‘arithmetic’.
gridposition (str) – (= ‘mass’ or ‘flux’) is the target grid position. By default the data position in the origin geometry is taken.
- Return type
- epygram.geometries.VGeometry.hybridH2pressure(hybridH_geometry, P, position)[source]¶
Converts a hybrid_height coordinate grid into pressure (in hPa).
- Parameters
P – the vertical profile of pressure to use
position – the position of P values on the grid (‘mass’ or ‘flux’)
- Return type
- epygram.geometries.VGeometry.hybridP2altitude(hybridP_geometry, R, T, Psurf, vertical_mean, Pdep=None, Phi_surf=None)[source]¶
Converts a hybrid_pressure coordinate grid into altitude of mass levels.
- Parameters
hybridP_geometry (VGeometry) – the initial vertical coordinate
R (list,numpy.ndarray) – the profile of specific gas constant (J/kg/K).
T (list,numpy.ndarray) – the profile of temperature (K).
Psurf (float) – the surface pressure, needed for integration of Ai and Bi.
vertical_mean (str) – defines the kind of averaging done on the vertical to compute half-levels from full-levels, or inverse: ‘geometric’ or ‘arithmetic’.
Pdep (list,numpy.ndarray) – the optional profile of NH pressure departures.
Phi_surf (float) – the optional surface geopotential. If given, the final coordinate is altitude above sea level, else height above ground surface.
- Return type
- epygram.geometries.VGeometry.hybridH2altitude(hybridH_geometry, Zsurf, gridposition=None, conv2height=False)[source]¶
Converts a hybrid_height coordinate grid into altitude.
- Parameters
Zsurf – the surface height, needed for integration of Ai and Bi.
gridposition – if given (‘mass’ or ‘flux’), the target grid is computed accordingly. By default the data position in the origin geometry is taken.
conv2height – if True, conversion into height is performed instead of altitude.
- Return type
- epygram.geometries.VGeometry.pressure2altitude(pressure_geometry, R, T, vertical_mean, Pdep=0.0, Phi_surf=0.0)[source]¶
Converts a pressure coordinate grid (on mass or flux levels) to altitude on mass levels).
- Parameters
R – the profile of specific gas constant (J/kg/K).
T – the profile of temperature (K).
Pdep – the optional profile of NH pressure departures.
Phi_surf – the optional surface geopotential. If given, the final coordinate is altitude above sea level, else height above ground surface.
vertical_mean – defines the kind of averaging done on the vertical to compute half-levels from full-levels, or inverse: ‘geometric’ or ‘arithmetic’.
- epygram.geometries.VGeometry.hybridP_coord_and_surfpressure_to_3D_pressure_field(hybridP_geometry, Psurf, vertical_mean, gridposition=None)[source]¶
From a hybridP VGeometry and a surface pressure (in Pa) H2D field, compute a 3D field containing the pressure (in hPa) at each hybridP level for each gridpoint.
- Parameters
hybridP_geometry (VGeometry) – the hybridP VGeometry
Psurf (H2DField) – the surface pressure H2DField in Pa, needed for integration of Ai and Bi.
vertical_mean (str) – defines the kind of averaging done on the vertical to compute half-levels from full-levels, or inverse: ‘geometric’ or ‘arithmetic’.
gridposition (str) – (= ‘mass’ or ‘flux’) is the target grid position. By default the data position in the origin geometry is taken.
- Return type
- epygram.geometries.VGeometry.hybridP_coord_to_3D_altitude_field(hybridP_geometry, Psurf, vertical_mean, t3D, q3D, ql3D=None, qi3D=None, qr3D=None, qs3D=None, qg3D=None, Pdep3D=None, Phi_surf=None)[source]¶
From a hybridP VGeometry, a surface pressure (in Pa) H2D field, and temperature and specific humidity 3D fields, compute a 3D field containing the altitude (in m) at each hybridP level for each gridpoint.
Hydrometeors 3D fields can be provided for more accurate R computation.
- Parameters
hybridP_geometry (VGeometry) – the hybridP VGeometry
Psurf (H2DField) – the surface pressure H2DField in Pa, needed for integration of Ai and Bi.
vertical_mean (str) – defines the kind of averaging done on the vertical to compute half-levels from full-levels, or inverse: ‘geometric’ or ‘arithmetic’.
t3D (D3Field) – temperature D3Field
q3D (D3Field) – specific humidity D3Field
ql3D (D3Field) – liquid water content D3Field
qi3D (D3Field) – ice water content D3Field
qr3D (D3Field) – rain water content D3Field
qs3D (D3Field) – snow water content D3Field
qg3D (D3Field) – graupel water content D3Field
Pdep3D (D3Field) – non-hydrostatic pressure departure D3Field
Phi_surf (H2DField) – surface geopotential H2DField (for altitude vs. height)
- Return type