OpenCPN Partial API docs
Loading...
Searching...
No Matches
GribRecord.h File Reference

GRIB Record Base Class Implementation. More...

#include <iostream>
#include <cmath>

Go to the source code of this file.

Classes

class  GribCode
 
class  GribRecord
 Represents a meteorological data grid from a GRIB (Gridded Binary) file. More...
 

Macros

#define DEBUG_INFO   false
 
#define DEBUG_ERROR   true
 
#define grib_debug(format, ...)
 
#define erreur(format, ...)
 
#define zuint   unsigned int
 
#define zuchar   unsigned char
 
#define GRIB_NOTDEF   -999999999
 
#define GRB_PRESSURE   2 /* Pa */
 
#define GRB_GEOPOT_HGT   7 /* gpm */
 
#define GRB_TEMP   11 /* K */
 
#define GRB_TPOT   13 /* K */
 
#define GRB_TMAX   15 /* K */
 
#define GRB_TMIN   16 /* K */
 
#define GRB_DEWPOINT   17 /* K */
 
#define GRB_WIND_DIR   31 /* Deg. Wind Direction */
 
#define GRB_WIND_SPEED   32 /* m/s Wind Speed */
 
#define GRB_WIND_VX   33 /* m/s U */
 
#define GRB_WIND_VY   34 /* m/s V */
 
#define GRB_CUR_DIR   47 /* Deg. Direction of current */
 
#define GRB_CUR_SPEED   48 /* m/s Speed of current */
 
#define GRB_UOGRD   49 /*"u-component of current", "m/s" */
 
#define GRB_VOGRD   50 /*"v-component of current", "m/s" */
 
#define GRB_HUMID_SPEC   51 /* kg/kg */
 
#define GRB_HUMID_REL   52 /* % */
 
#define GRB_PRECIP_RATE   59 /* l/m2/s */
 
#define GRB_PRECIP_TOT   61 /* l/m2 */
 
#define GRB_SNOW_DEPTH   66 /* m */
 
#define GRB_CLOUD_TOT   71 /* % */
 
#define GRB_HTSGW   100 /* m */
 
#define GRB_WTMP   80 /* "Water Temperature", "K" */
 
#define GRB_COMP_REFL   212 /* dBZ */
 
#define GRB_WVDIR   101
 
#define GRB_WVHGT   102
 
#define GRB_WVPER   103
 
#define GRB_SWDIR   104
 
#define GRB_SWELL   105
 
#define GRB_SWPER   106
 
#define GRB_DIRPW   107
 
#define GRB_PERPW   108
 
#define GRB_DIRSW   109
 
#define GRB_PERSW   110
 
#define GRB_PER   209
 
#define GRB_DIR   210
 
#define GRB_CRAIN   140 /* "Categorical rain", "yes=1;no=0" */
 
#define GRB_FRZRAIN_CATEG   141 /* 1=yes 0=no */
 
#define GRB_SNOW_CATEG   143 /* 1=yes 0=no */
 
#define GRB_CAPE   157 /* J/kg */
 
#define GRB_TSEC    171 /* "Seconds prior to initial reference time (defined in bytes 18-20)" */
 
#define GRB_WIND_GUST   180 /* m/s "wind gust */
 
#define GRB_WIND_GUST_VX   181 /* m/s */
 
#define GRB_WIND_GUST_VY   182 /* m/s */
 
#define GRB_USCT   190 /* Scatterometer estimated U Wind, NCEP Center 7 */
 
#define GRB_VSCT   191 /* Scatterometer estimated V Wind, NCEP Center 7 */
 
#define GRB_WIND_XY2D   250 /* private : GRB_WIND_VX+GRB_WIND_VX */
 
#define GRB_DIFF_TEMPDEW   251 /* private : GRB_TEMP-GRB_DEWPOINT */
 
#define LV_GND_SURF   1
 
#define LV_ISOTHERM0   4
 
#define LV_ISOBARIC   100
 
#define LV_MSL   102
 
#define LV_ABOV_MSL   103
 
#define LV_ABOV_GND   105
 
#define LV_SIGMA   107
 
#define LV_ATMOS_ENT   10
 
#define LV_ATMOS_ALL   200
 

Enumerations

enum  DataCenterModel {
  NOAA_GFS , NOAA_NCEP_WW3 , NOAA_NCEP_SST , NOAA_RTOFS ,
  FNMOC_WW3_GLB , FNMOC_WW3_MED , NORWAY_METNO , ECMWF_ERA5 ,
  KNMI_HIRLAM , KNMI_HARMONIE_AROME , OTHER_DATA_CENTER
}
 

Detailed Description

GRIB Record Base Class Implementation.

Defines the base class for GRIB weather data records. A GRIB record represents a single parameter (like wind, pressure, temperature) for one forecast time. This class provides common functionality shared between GRIB1 and GRIB2 formats.

Definition in file GribRecord.h.

Macro Definition Documentation

◆ DEBUG_ERROR

#define DEBUG_ERROR   true

Definition at line 34 of file GribRecord.h.

◆ DEBUG_INFO

#define DEBUG_INFO   false

Definition at line 33 of file GribRecord.h.

◆ erreur

#define erreur (   format,
  ... 
)
Value:
{ \
if (DEBUG_ERROR) { \
fprintf(stderr, "Grib ERROR: "); \
fprintf(stderr, format, __VA_ARGS__); \
fprintf(stderr, "\n"); \
} \
}

Definition at line 42 of file GribRecord.h.

◆ GRB_CAPE

#define GRB_CAPE   157 /* J/kg */

Definition at line 103 of file GribRecord.h.

◆ GRB_CLOUD_TOT

#define GRB_CLOUD_TOT   71 /* % */

Definition at line 82 of file GribRecord.h.

◆ GRB_COMP_REFL

#define GRB_COMP_REFL   212 /* dBZ */

Definition at line 85 of file GribRecord.h.

◆ GRB_CRAIN

#define GRB_CRAIN   140 /* "Categorical rain", "yes=1;no=0" */

Definition at line 100 of file GribRecord.h.

◆ GRB_CUR_DIR

#define GRB_CUR_DIR   47 /* Deg. Direction of current */

Definition at line 72 of file GribRecord.h.

◆ GRB_CUR_SPEED

#define GRB_CUR_SPEED   48 /* m/s Speed of current */

Definition at line 73 of file GribRecord.h.

◆ GRB_DEWPOINT

#define GRB_DEWPOINT   17 /* K */

Definition at line 65 of file GribRecord.h.

◆ GRB_DIFF_TEMPDEW

#define GRB_DIFF_TEMPDEW   251 /* private : GRB_TEMP-GRB_DEWPOINT */

Definition at line 115 of file GribRecord.h.

◆ GRB_DIR

#define GRB_DIR   210

Definition at line 98 of file GribRecord.h.

◆ GRB_DIRPW

#define GRB_DIRPW   107

Definition at line 93 of file GribRecord.h.

◆ GRB_DIRSW

#define GRB_DIRSW   109

Definition at line 95 of file GribRecord.h.

◆ GRB_FRZRAIN_CATEG

#define GRB_FRZRAIN_CATEG   141 /* 1=yes 0=no */

Definition at line 101 of file GribRecord.h.

◆ GRB_GEOPOT_HGT

#define GRB_GEOPOT_HGT   7 /* gpm */

Definition at line 60 of file GribRecord.h.

◆ GRB_HTSGW

#define GRB_HTSGW   100 /* m */

Definition at line 83 of file GribRecord.h.

◆ GRB_HUMID_REL

#define GRB_HUMID_REL   52 /* % */

Definition at line 78 of file GribRecord.h.

◆ GRB_HUMID_SPEC

#define GRB_HUMID_SPEC   51 /* kg/kg */

Definition at line 77 of file GribRecord.h.

◆ GRB_PER

#define GRB_PER   209

Definition at line 97 of file GribRecord.h.

◆ GRB_PERPW

#define GRB_PERPW   108

Definition at line 94 of file GribRecord.h.

◆ GRB_PERSW

#define GRB_PERSW   110

Definition at line 96 of file GribRecord.h.

◆ GRB_PRECIP_RATE

#define GRB_PRECIP_RATE   59 /* l/m2/s */

Definition at line 79 of file GribRecord.h.

◆ GRB_PRECIP_TOT

#define GRB_PRECIP_TOT   61 /* l/m2 */

Definition at line 80 of file GribRecord.h.

◆ GRB_PRESSURE

#define GRB_PRESSURE   2 /* Pa */

Definition at line 59 of file GribRecord.h.

◆ GRB_SNOW_CATEG

#define GRB_SNOW_CATEG   143 /* 1=yes 0=no */

Definition at line 102 of file GribRecord.h.

◆ GRB_SNOW_DEPTH

#define GRB_SNOW_DEPTH   66 /* m */

Definition at line 81 of file GribRecord.h.

◆ GRB_SWDIR

#define GRB_SWDIR   104

Definition at line 90 of file GribRecord.h.

◆ GRB_SWELL

#define GRB_SWELL   105

Definition at line 91 of file GribRecord.h.

◆ GRB_SWPER

#define GRB_SWPER   106

Definition at line 92 of file GribRecord.h.

◆ GRB_TEMP

#define GRB_TEMP   11 /* K */

Definition at line 61 of file GribRecord.h.

◆ GRB_TMAX

#define GRB_TMAX   15 /* K */

Definition at line 63 of file GribRecord.h.

◆ GRB_TMIN

#define GRB_TMIN   16 /* K */

Definition at line 64 of file GribRecord.h.

◆ GRB_TPOT

#define GRB_TPOT   13 /* K */

Definition at line 62 of file GribRecord.h.

◆ GRB_TSEC

#define GRB_TSEC    171 /* "Seconds prior to initial reference time (defined in bytes 18-20)" */

Definition at line 105 of file GribRecord.h.

◆ GRB_UOGRD

#define GRB_UOGRD   49 /*"u-component of current", "m/s" */

Definition at line 74 of file GribRecord.h.

◆ GRB_USCT

#define GRB_USCT   190 /* Scatterometer estimated U Wind, NCEP Center 7 */

Definition at line 111 of file GribRecord.h.

◆ GRB_VOGRD

#define GRB_VOGRD   50 /*"v-component of current", "m/s" */

Definition at line 75 of file GribRecord.h.

◆ GRB_VSCT

#define GRB_VSCT   191 /* Scatterometer estimated V Wind, NCEP Center 7 */

Definition at line 112 of file GribRecord.h.

◆ GRB_WIND_DIR

#define GRB_WIND_DIR   31 /* Deg. Wind Direction */

Definition at line 67 of file GribRecord.h.

◆ GRB_WIND_GUST

#define GRB_WIND_GUST   180 /* m/s "wind gust */

Definition at line 107 of file GribRecord.h.

◆ GRB_WIND_GUST_VX

#define GRB_WIND_GUST_VX   181 /* m/s */

Definition at line 108 of file GribRecord.h.

◆ GRB_WIND_GUST_VY

#define GRB_WIND_GUST_VY   182 /* m/s */

Definition at line 109 of file GribRecord.h.

◆ GRB_WIND_SPEED

#define GRB_WIND_SPEED   32 /* m/s Wind Speed */

Definition at line 68 of file GribRecord.h.

◆ GRB_WIND_VX

#define GRB_WIND_VX   33 /* m/s U */

Definition at line 69 of file GribRecord.h.

◆ GRB_WIND_VY

#define GRB_WIND_VY   34 /* m/s V */

Definition at line 70 of file GribRecord.h.

◆ GRB_WIND_XY2D

#define GRB_WIND_XY2D   250 /* private : GRB_WIND_VX+GRB_WIND_VX */

Definition at line 114 of file GribRecord.h.

◆ GRB_WTMP

#define GRB_WTMP   80 /* "Water Temperature", "K" */

Definition at line 84 of file GribRecord.h.

◆ GRB_WVDIR

#define GRB_WVDIR   101

Definition at line 87 of file GribRecord.h.

◆ GRB_WVHGT

#define GRB_WVHGT   102

Definition at line 88 of file GribRecord.h.

◆ GRB_WVPER

#define GRB_WVPER   103

Definition at line 89 of file GribRecord.h.

◆ grib_debug

#define grib_debug (   format,
  ... 
)
Value:
{ \
if (DEBUG_INFO) { \
fprintf(stderr, format, __VA_ARGS__); \
fprintf(stderr, "\n"); \
} \
}

Definition at line 35 of file GribRecord.h.

◆ GRIB_NOTDEF

#define GRIB_NOTDEF   -999999999

Definition at line 54 of file GribRecord.h.

◆ LV_ABOV_GND

#define LV_ABOV_GND   105

Definition at line 125 of file GribRecord.h.

◆ LV_ABOV_MSL

#define LV_ABOV_MSL   103

Definition at line 124 of file GribRecord.h.

◆ LV_ATMOS_ALL

#define LV_ATMOS_ALL   200

Definition at line 128 of file GribRecord.h.

◆ LV_ATMOS_ENT

#define LV_ATMOS_ENT   10

Definition at line 127 of file GribRecord.h.

◆ LV_GND_SURF

#define LV_GND_SURF   1

Definition at line 120 of file GribRecord.h.

◆ LV_ISOBARIC

#define LV_ISOBARIC   100

Definition at line 122 of file GribRecord.h.

◆ LV_ISOTHERM0

#define LV_ISOTHERM0   4

Definition at line 121 of file GribRecord.h.

◆ LV_MSL

#define LV_MSL   102

Definition at line 123 of file GribRecord.h.

◆ LV_SIGMA

#define LV_SIGMA   107

Definition at line 126 of file GribRecord.h.

◆ zuchar

#define zuchar   unsigned char

Definition at line 52 of file GribRecord.h.

◆ zuint

#define zuint   unsigned int

Definition at line 51 of file GribRecord.h.

Enumeration Type Documentation

◆ DataCenterModel

enum DataCenterModel

Definition at line 130 of file GribRecord.h.