htrdr 0.9.2



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.


Data are encoded with respect to the little endian bytes ordering, i.e. least significant bytes are stored first.

<htcp>       ::= <header>

<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
                   ::= 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 ... ]