htcp - High-Tune: Cloud Properties file format
htcp is a binary file format that describes properties on liquid water content in suspension within clouds. The les2htcp(1) command can be used to generate a htcp file from cloud properties saved in a NetCDF file format.
The cloud properties are actually spatio temporal double precision floating point data, structured in a 4D grid whose definition and spatial origin is given by the <definition> and the <lower-pos> fields. The size of a grid cell along the X and Y dimension is constant while the size along the Z axis can be irregular. Is such case, the <is-Z-irregular> header flag is set to 1 and the sizes of the cells in Z are explicitly listed in <voxel-size>. Note that in htcp, the spatial dimensions are defined in meters, i.e. values listed in <lower-pos> and <voxel-size> are meters.
For a given property, the list of its spatio temporal data are linearly listed along the X, Y, Z and time dimension, in that order. The address where its first data is stored is aligned on the value defined by the file header field <pagesize>; several bytes of padding can be thus added priorly to a property in order to ensure that its first data is correctly aligned.
Available cloud properties are:
- <RVT>: water vapor mixing ratio in kg of water per m^3 of dry air.
- <RCT>: liquid water in suspension mixing ratio in kg of water per m^3 of dry air.
- <PABST>: pressure in Pascal.
- <T>: temperature in Kelvin.
BINARY FILE FORMAT
Data are encoded with respect to the little endian bytes ordering, i.e. least significant bytes are stored first.
<htcp> ::= <header> <definition> <lower-pos> <voxel-size> <padding> <RVT> <padding> <RCT> <padding> <PABST> <padding> <T> <padding> <header> ::= <pagesize> <is-Z-irregular> <definition> ::= <X> <Y> <Z> <time> # Spatial and temporal definition <lower-pos> ::= DOUBLE DOUBLE DOUBLE # Spatial origin of the grid <voxel-size> ::= DOUBLE DOUBLE # Size of a cell in X and Y DOUBLE [ DOUBLE ... ] # Size of the cells in Z <pagesize> ::= INT64 <is-Z-irregular> ::= INT8 <X> ::= INT32 <Y> ::= INT32 <Z> ::= INT32 <time> ::= INT32 <RVT> ::= DOUBLE [ DOUBLE ... ] # Water vapor mixing ratio <RCT> ::= DOUBLE [ DOUBLE ... ] # Liquid water in suspension mixing ratio <PABST> ::= DOUBLE [ DOUBLE ... ] # Pressure <T> ::= DOUBLE [ DOUBLE ... ] # Temperature <padding> ::= [ BYTE ... ]