From 44842fdb6195721678f4c9428b2043a6e3c103a5 Mon Sep 17 00:00:00 2001 From: Eric Engle Date: Tue, 23 Jan 2024 09:40:03 -0500 Subject: [PATCH 1/5] Cleanup of index logic The indexing code has been cleaned up significantly. The index dictionary now contains offsets and sizes for all sections, for all messages. This will help for a future change to allow for in-place modification of GRIB2 metdata back into the input file -- similar to how you can edit NetCDF attributes with mode = 'a'. The new code logic allows for a simplified process for managing GRIB2 messages that contain submessages. Additionally with this commit, grib2io can now safely ignore GRIB1 messages. ECMWF GRIB files can contains GRIB1 and GRIB2 (...ugh...). --- grib2io/_grib2io.py | 256 +++++++++++++++++++------------------------- 1 file changed, 113 insertions(+), 143 deletions(-) diff --git a/grib2io/_grib2io.py b/grib2io/_grib2io.py index decb2bb..37e1271 100644 --- a/grib2io/_grib2io.py +++ b/grib2io/_grib2io.py @@ -29,6 +29,7 @@ import re import struct import sys +import warnings from dataclasses import dataclass, field from numpy import ma @@ -199,23 +200,23 @@ def _build_index(self, no_data=False): """ # Initialize index dictionary if not self._hasindex: - self._index['offset'] = [] - self._index['bitmap_offset'] = [] - self._index['data_offset'] = [] - self._index['size'] = [] - self._index['data_size'] = [] - self._index['submessageOffset'] = [] - self._index['submessageBeginSection'] = [] - self._index['isSubmessage'] = [] - self._index['messageNumber'] = [] + self._index['sectionOffset'] = [] + self._index['sectionSize'] = [] + self._index['msgSize'] = [] + self._index['msgNumber'] = [] self._index['msg'] = [] self._hasindex = True # Iterate while True: try: - # Read first 4 bytes and decode...looking for "GRIB" + # Initialize + bmapflag = None pos = self._filehandle.tell() + section2 = b'' + trailer = b'' + _secpos = dict.fromkeys(range(8)) + _secsize = dict.fromkeys(range(8)) # Ignore headers (usually text) that are not part of the GRIB2 # file. For example, NAVGEM files have a http header at the @@ -233,149 +234,118 @@ def _build_index(self, no_data=False): pos = pos + test_offset break - # Test header. Then get information from GRIB2 Section 0: the discipline - # number, edition number (should always be 2), and GRIB2 message size. - # Then iterate to check for submessages. - - _issubmessage = False - _submsgoffset = 0 - _submsgbegin = 0 - _bmapflag = None - # Read the rest of Section 0 using struct. - section0 = np.concatenate(([header],list(struct.unpack('>HBBQ',self._filehandle.read(12)))),dtype=np.int64) + _secpos[0] = self._filehandle.tell()-4 + _secsize[0] = 16 + secmsg = self._filehandle.read(12) + section0 = np.concatenate(([header],list(struct.unpack('>HBBQ',secmsg))),dtype=np.int64) + # Make sure message is GRIB2. if section0[3] != 2: - raise ValueError( - "This is a GRIB version 1 file. grib2io only supports GRIB version 2." - ) - - # Read and unpack Section 1 - secsize = struct.unpack('>i',self._filehandle.read(4))[0] - secnum = struct.unpack('>B',self._filehandle.read(1))[0] - assert secnum == 1 - self._filehandle.seek(self._filehandle.tell()-5) - _grbmsg = self._filehandle.read(secsize) - _grbpos = 0 - section1,_grbpos = g2clib.unpack1(_grbmsg,_grbpos,np.empty) - secrange = range(2,8) + # Check for GRIB1 and ignore. + if secmsg[3] == 1: + warnings.warn("GRIB version 1 message detected. Ignoring...") + grib1_size = int.from_bytes(secmsg[:3],"big") + self._filehandle.seek(self._filehandle.tell()+grib1_size-16) + continue + else: + raise ValueError("Bad GRIB version number.") + + # Read and unpack sections 1 through 8 which all follow a pattern of + # section size, number, and content. while 1: - section2 = b'' - for num in secrange: - secsize = struct.unpack('>i',self._filehandle.read(4))[0] - secnum = struct.unpack('>B',self._filehandle.read(1))[0] - if secnum == num: - if secnum == 2: - if secsize > 0: - section2 = self._filehandle.read(secsize-5) - elif secnum == 3: - self._filehandle.seek(self._filehandle.tell()-5) - _grbmsg = self._filehandle.read(secsize) - _grbpos = 0 - # Unpack Section 3 - _gds,_gdt,_deflist,_grbpos = g2clib.unpack3(_grbmsg,_grbpos,np.empty) - _gds = _gds.tolist() - _gdt = _gdt.tolist() - section3 = np.concatenate((_gds,_gdt)) - section3 = np.where(section3==4294967295,-1,section3) - elif secnum == 4: - self._filehandle.seek(self._filehandle.tell()-5) - _grbmsg = self._filehandle.read(secsize) - _grbpos = 0 - # Unpack Section 4 - _numcoord,_pdt,_pdtnum,_coordlist,_grbpos = g2clib.unpack4(_grbmsg,_grbpos,np.empty) - _pdt = _pdt.tolist() - section4 = np.concatenate((np.array((_numcoord,_pdtnum)),_pdt)) - elif secnum == 5: - self._filehandle.seek(self._filehandle.tell()-5) - _grbmsg = self._filehandle.read(secsize) - _grbpos = 0 - # Unpack Section 5 - _drt,_drtn,_npts,self._pos = g2clib.unpack5(_grbmsg,_grbpos,np.empty) - section5 = np.concatenate((np.array((_npts,_drtn)),_drt)) - section5 = np.where(section5==4294967295,-1,section5) - elif secnum == 6: - # Unpack Section 6. Not really...just get the flag value. - _bmapflag = struct.unpack('>B',self._filehandle.read(1))[0] - if _bmapflag == 0: - _bmappos = self._filehandle.tell()-6 - elif _bmapflag == 254: - pass # Do this to keep the previous position value - else: - _bmappos = None - self._filehandle.seek(self._filehandle.tell()+secsize-6) - elif secnum == 7: - # Unpack Section 7. No need to read it, just index the position in file. - _datapos = self._filehandle.tell()-5 - _datasize = secsize - self._filehandle.seek(self._filehandle.tell()+secsize-5) - else: - self._filehandle.seek(self._filehandle.tell()+secsize-5) + # Read first 5 bytes of the section which contains the size of the + # section (4 bytes) and the section number (1 byte). + secmsg = self._filehandle.read(5) + secsize, secnum = struct.unpack('>iB',secmsg) + + # Record the offset of the section number and "append" the rest of + # the section to secmsg. + _secpos[secnum] = self._filehandle.tell()-5 + _secsize[secnum] = secsize + if secnum in {1,3,4,5}: + secmsg += self._filehandle.read(secsize-5) + grbpos = 0 + + # Unpack section + if secnum == 1: + # Unpack Section 1 + section1, grbpos = g2clib.unpack1(secmsg,grbpos,np.empty) + elif secnum == 2: + # Unpack Section 2 + section2 = self._filehandle.read(secsize-5) + elif secnum == 3: + # Unpack Section 3 + gds, gdt, deflist, grbpos = g2clib.unpack3(secmsg,grbpos,np.empty) + gds = gds.tolist() + gdt = gdt.tolist() + section3 = np.concatenate((gds,gdt)) + section3 = np.where(section3==4294967295,-1,section3) + elif secnum == 4: + # Unpack Section 4 + numcoord, pdt, pdtnum, coordlist, grbpos = g2clib.unpack4(secmsg,grbpos,np.empty) + pdt = pdt.tolist() + section4 = np.concatenate((np.array((numcoord,pdtnum)),pdt)) + elif secnum == 5: + # Unpack Section 5 + drt, drtn, npts, self._pos = g2clib.unpack5(secmsg,grbpos,np.empty) + section5 = np.concatenate((np.array((npts,drtn)),drt)) + section5 = np.where(section5==4294967295,-1,section5) + elif secnum == 6: + # Unpack Section 6 - Just the bitmap flag + bmapflag = struct.unpack('>B',self._filehandle.read(1))[0] + if bmapflag == 0: + bmappos = self._filehandle.tell()-6 + elif bmapflag == 254: + # Do this to keep the previous position value + pass else: - if num == 2 and secnum == 3: - pass # Allow this. Just means no Local Use Section. - else: - _issubmessage = True - _submsgoffset = (self._filehandle.tell()-5)-(self._index['offset'][-1]) - _submsgbegin = secnum - self._filehandle.seek(self._filehandle.tell()-5) - continue - trailer = struct.unpack('>4s',self._filehandle.read(4))[0] - if trailer == b'7777': + bmappos = None + self._filehandle.seek(self._filehandle.tell()+secsize-6) + elif secnum == 7: + # Do not unpack section 7 here, but move the file pointer + # to after section 7. + self._filehandle.seek(self._filehandle.tell()+secsize-5) + + # Update the file index. self.messages += 1 - self._index['offset'].append(pos) - self._index['bitmap_offset'].append(_bmappos) - self._index['data_offset'].append(_datapos) - self._index['size'].append(section0[-1]) - self._index['data_size'].append(_datasize) - self._index['messageNumber'].append(self.messages) - self._index['isSubmessage'].append(_issubmessage) - if _issubmessage: - self._index['submessageOffset'].append(_submsgoffset) - self._index['submessageBeginSection'].append(_submsgbegin) - else: - self._index['submessageOffset'].append(0) - self._index['submessageBeginSection'].append(_submsgbegin) + self._index['sectionOffset'].append(_secpos) + self._index['sectionSize'].append(_secsize) + self._index['msgSize'].append(section0[-1]) + self._index['msgNumber'].append(self.messages) # Create Grib2Message with data. - msg = Grib2Message(section0,section1,section2,section3,section4,section5,_bmapflag) + msg = Grib2Message(section0,section1,section2,section3,section4,section5,bmapflag) msg._msgnum = self.messages-1 - msg._deflist = _deflist - msg._coordlist = _coordlist + msg._deflist = deflist + msg._coordlist = coordlist if not no_data: msg._data = Grib2MessageOnDiskArray((msg.ny,msg.nx), 2, TYPE_OF_VALUES_DTYPE[msg.typeOfValues], self._filehandle, - msg, pos, _bmappos, _datapos) + msg, pos, _secpos[6], _secpos[7]) self._index['msg'].append(msg) - break - else: - self._filehandle.seek(self._filehandle.tell()-4) - self.messages += 1 - self._index['offset'].append(pos) - self._index['bitmap_offset'].append(_bmappos) - self._index['data_offset'].append(_datapos) - self._index['size'].append(section0[-1]) - self._index['data_size'].append(_datasize) - self._index['messageNumber'].append(self.messages) - self._index['isSubmessage'].append(_issubmessage) - self._index['submessageOffset'].append(_submsgoffset) - self._index['submessageBeginSection'].append(_submsgbegin) - - # Create Grib2Message with data. - msg = Grib2Message(section0,section1,section2,section3,section4,section5,_bmapflag) - msg._msgnum = self.messages-1 - msg._deflist = _deflist - msg._coordlist = _coordlist - if not no_data: - msg._data = Grib2MessageOnDiskArray((msg.ny,msg.nx), 2, - TYPE_OF_VALUES_DTYPE[msg.typeOfValues], - self._filehandle, - msg, pos, _bmappos, _datapos) - self._index['msg'].append(msg) + # If here, then we have moved through GRIB2 section 1-7. Now we + # need to check the next 4 bytes after section 7. + trailer = struct.unpack('>i',self._filehandle.read(4))[0] - continue + # If we reach the GRIB2 trailer string ('7777'), then we can break + # begin processing the next GRIB2 message. If not, then we continue + # within the same iteration to process a GRIB2 submessage. + if trailer.to_bytes(4, "big") == b'7777': + break + else: + # If here, trailer should be the size of the first section + # of the next submessage, then the next byte is the section + # number. Check this value. + nextsec = struct.unpack('>B',self._filehandle.read(1))[0] + if nextsec not in {2,3,4}: + raise ValueError("Bad GRIB2 message structure.") + self._filehandle.seek(self._filehandle.tell()-5) + continue + else: + raise ValueError("Bad GRIB2 section number.") except(struct.error): if 'r' in self.mode: @@ -445,7 +415,7 @@ def seek(self, pos): The GRIB2 Message number to set the file pointer to. """ if self._hasindex: - self._filehandle.seek(self._index['offset'][pos]) + self._filehandle.seek(self._index['sectionOffset'][0][pos]) self.current_message = pos @@ -1225,14 +1195,14 @@ class Grib2MessageOnDiskArray: filehandle: open msg: Grib2Message offset: int - bmap_offset: int + bitmap_offset: int data_offset: int def __array__(self, dtype=None): - return np.asarray(_data(self.filehandle, self.msg, self.bmap_offset, self.data_offset),dtype=dtype) + return np.asarray(_data(self.filehandle, self.msg, self.bitmap_offset, self.data_offset),dtype=dtype) -def _data(filehandle: open, msg: Grib2Message, bmap_offset: int, data_offset: int)-> np.array: +def _data(filehandle: open, msg: Grib2Message, bitmap_offset: int, data_offset: int)-> np.array: """ Returns an unpacked data grid. @@ -1260,8 +1230,8 @@ def _data(filehandle: open, msg: Grib2Message, bmap_offset: int, data_offset: in fill_value = np.nan # Read bitmap data. - if bmap_offset is not None: - filehandle.seek(bmap_offset) # Position file pointer to the beginning of bitmap section. + if bitmap_offset is not None: + filehandle.seek(bitmap_offset) # Position file pointer to the beginning of bitmap section. bmap_size,num = struct.unpack('>IB',filehandle.read(5)) filehandle.seek(filehandle.tell()-5) ipos = 0 From 158d2638a56c052eb608bd46e665d4fe0574c01b Mon Sep 17 00:00:00 2001 From: Eric Engle Date: Tue, 23 Jan 2024 10:26:15 -0500 Subject: [PATCH 2/5] Remove usage of datetime.utctimestamp Replace with datetime.timestamp(timestamp, datetime.UTC) --- grib2io/_grib2io.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grib2io/_grib2io.py b/grib2io/_grib2io.py index 37e1271..db94893 100644 --- a/grib2io/_grib2io.py +++ b/grib2io/_grib2io.py @@ -528,7 +528,7 @@ def __new__(self, section0: np.array = np.array([struct.unpack('>I',b'GRIB')[0], section5: np.array = None, *args, **kwargs): if np.all(section1==0): - section1[5:11] = datetime.datetime.utcfromtimestamp(0).timetuple()[:6] + section1[5:11] = datetime.datetime.fromtimestamp(0, datetime.UTC).timetuple()[:6] bases = list() if section3 is None: From ecc98a625c6818d9764e56d0dec0ffa794210e30 Mon Sep 17 00:00:00 2001 From: Eric Engle Date: Tue, 23 Jan 2024 10:27:32 -0500 Subject: [PATCH 3/5] Update xarray backend from index cleanup. Some necessary changes to the grib2io xarray backend because of changes to the index dictionary structure. --- grib2io/xarray_backend.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/grib2io/xarray_backend.py b/grib2io/xarray_backend.py index 480496c..ef4defd 100755 --- a/grib2io/xarray_backend.py +++ b/grib2io/xarray_backend.py @@ -233,7 +233,7 @@ def __post_init__(self): self.shape = tuple([len(i) for i in self.index.index.levels]) + geo_shape self.ndim = len(self.shape) - cols = ['msg', 'data_offset','bitmap_offset'] + cols = ['msg', 'sectionOffset'] self.index = self.index[cols] def __getitem__(self, item) -> np.array: @@ -268,8 +268,8 @@ def __getitem__(self, item) -> np.array: with open(self.file_name, mode='rb', buffering=ONE_MB) as filehandle: for key, row in index.iterrows(): - bitmap_offset = None if pd.isna(row['bitmap_offset']) else int(row['bitmap_offset']) - values = _data(filehandle, row.msg, bitmap_offset, row['data_offset']) + bitmap_offset = None if pd.isna(row['sectionOffset'][6]) else int(row['sectionOffset'][6]) + values = _data(filehandle, row.msg, bitmap_offset, row['sectionOffset'][7]) if len(index_slicer_inclusive) >= 1: array_field[row.miloc] = values @@ -346,7 +346,7 @@ def parse_grib_index(index, filters): index = index.assign(typeOfGeneratingProcess=index.msg.apply(lambda msg: msg.typeOfGeneratingProcess)) index = index.assign(productDefinitionTemplateNumber=index.msg.apply(lambda msg: msg.productDefinitionTemplateNumber)) index = index.assign(typeOfFirstFixedSurface=index.msg.apply(lambda msg: msg.typeOfFirstFixedSurface)) - index = index.astype({'data_offset':'int', 'ny':'int','nx':'int'}) + index = index.astype({'ny':'int','nx':'int'}) # apply common filters(to all definition templates) to reduce dataset to single cube From bc66bd18f7031c1bc8328ead1b31667581c883a8 Mon Sep 17 00:00:00 2001 From: Eric Engle Date: Tue, 23 Jan 2024 10:44:42 -0500 Subject: [PATCH 4/5] Update _grib2io Handle getting timestamp for different Python versions. --- grib2io/_grib2io.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/grib2io/_grib2io.py b/grib2io/_grib2io.py index db94893..a40ed10 100644 --- a/grib2io/_grib2io.py +++ b/grib2io/_grib2io.py @@ -528,7 +528,12 @@ def __new__(self, section0: np.array = np.array([struct.unpack('>I',b'GRIB')[0], section5: np.array = None, *args, **kwargs): if np.all(section1==0): - section1[5:11] = datetime.datetime.fromtimestamp(0, datetime.UTC).timetuple()[:6] + try: + # Python >= 3.10 + section1[5:11] = datetime.datetime.fromtimestamp(0, datetime.UTC).timetuple()[:6] + except(AttributeError): + # Python < 3.10 + section1[5:11] = datetime.datetime.utcfromtimestamp(0).timetuple()[:6] bases = list() if section3 is None: From 04e452605aa40b421153ab255c8ebb15bdcff58f Mon Sep 17 00:00:00 2001 From: Eric Engle Date: Tue, 23 Jan 2024 11:01:13 -0500 Subject: [PATCH 5/5] Update docs [skip ci] --- docs/grib2io.html | 4048 ++++++++--------- docs/grib2io/tables.html | 2 +- docs/grib2io/tables/originating_centers.html | 2 +- docs/grib2io/tables/section0.html | 2 +- docs/grib2io/tables/section1.html | 2 +- docs/grib2io/tables/section3.html | 2 +- docs/grib2io/tables/section4.html | 2 +- docs/grib2io/tables/section4_discipline0.html | 2 +- docs/grib2io/tables/section4_discipline1.html | 2 +- .../grib2io/tables/section4_discipline10.html | 2 +- docs/grib2io/tables/section4_discipline2.html | 2 +- .../grib2io/tables/section4_discipline20.html | 2 +- .../tables/section4_discipline209.html | 2 +- docs/grib2io/tables/section4_discipline3.html | 2 +- docs/grib2io/tables/section4_discipline4.html | 2 +- docs/grib2io/tables/section5.html | 2 +- docs/grib2io/tables/section6.html | 2 +- docs/grib2io/templates.html | 2 +- docs/grib2io/utils.html | 2 +- docs/grib2io/utils/arakawa_rotated_grid.html | 2 +- docs/grib2io/utils/gauss_grid.html | 4 +- docs/grib2io/utils/rotated_grid.html | 2 +- docs/search.js | 2 +- grib2io/_grib2io.py | 5 + 24 files changed, 2044 insertions(+), 2055 deletions(-) diff --git a/docs/grib2io.html b/docs/grib2io.html index 510a787..f0e17d0 100644 --- a/docs/grib2io.html +++ b/docs/grib2io.html @@ -3,7 +3,7 @@ - + grib2io API documentation @@ -455,494 +455,468 @@

Tutorials

-
 60class open():
- 61    """
- 62    GRIB2 File Object.
- 63
- 64    A physical file can contain one or more GRIB2 messages.  When instantiated, class `grib2io.open`, 
- 65    the file named `filename` is opened for reading (`mode = 'r'`) and is automatically indexed.  
- 66    The indexing procedure reads some of the GRIB2 metadata for all GRIB2 Messages.  A GRIB2 Message 
- 67    may contain submessages whereby Section 2-7 can be repeated.  grib2io accommodates for this by 
- 68    flattening any GRIB2 submessages into multiple individual messages.
- 69
- 70    Attributes
- 71    ----------
- 72    **`mode : str`**
- 73        File IO mode of opening the file.
- 74
- 75    **`name : str`**
- 76        Full path name of the GRIB2 file.
- 77
- 78    **`messages : int`**
- 79        Count of GRIB2 Messages contained in the file.
+            
 61class open():
+ 62    """
+ 63    GRIB2 File Object.
+ 64
+ 65    A physical file can contain one or more GRIB2 messages.  When instantiated, class `grib2io.open`, 
+ 66    the file named `filename` is opened for reading (`mode = 'r'`) and is automatically indexed.  
+ 67    The indexing procedure reads some of the GRIB2 metadata for all GRIB2 Messages.  A GRIB2 Message 
+ 68    may contain submessages whereby Section 2-7 can be repeated.  grib2io accommodates for this by 
+ 69    flattening any GRIB2 submessages into multiple individual messages.
+ 70
+ 71    It is important to note that GRIB2 files from some Meteorological agencies contain other data
+ 72    than GRIB2 messages.  GRIB2 files from NWS NDFD and NAVGEM have text-based "header" data and
+ 73    files from ECMWF can contain GRIB1 and GRIB2 messages.  grib2io checks for these and safely
+ 74    ignores them.
+ 75
+ 76    Attributes
+ 77    ----------
+ 78    **`mode : str`**
+ 79        File IO mode of opening the file.
  80
- 81    **`current_message : int`**
- 82        Current position of the file in units of GRIB2 Messages.
+ 81    **`name : str`**
+ 82        Full path name of the GRIB2 file.
  83
- 84    **`size : int`**
- 85        Size of the file in units of bytes.
+ 84    **`messages : int`**
+ 85        Count of GRIB2 Messages contained in the file.
  86
- 87    **`closed : bool`**
- 88        `True` is file handle is close; `False` otherwise.
+ 87    **`current_message : int`**
+ 88        Current position of the file in units of GRIB2 Messages.
  89
- 90    **`variables : tuple`**
- 91        Tuple containing a unique list of variable short names (i.e. GRIB2 abbreviation names).
+ 90    **`size : int`**
+ 91        Size of the file in units of bytes.
  92
- 93    **`levels : tuple`**
- 94        Tuple containing a unique list of wgrib2-formatted level/layer strings.
- 95    """
- 96    __slots__ = ('_filehandle','_hasindex','_index','mode','name','messages',
- 97                 'current_message','size','closed','variables','levels','_pos')
- 98    def __init__(self, filename, mode='r', **kwargs):
- 99        """
-100        Initialize GRIB2 File object instance.
-101
-102        Parameters
-103        ----------
-104
-105        **`filename : str`**
-106            File name containing GRIB2 messages.
+ 93    **`closed : bool`**
+ 94        `True` is file handle is close; `False` otherwise.
+ 95
+ 96    **`variables : tuple`**
+ 97        Tuple containing a unique list of variable short names (i.e. GRIB2 abbreviation names).
+ 98
+ 99    **`levels : tuple`**
+100        Tuple containing a unique list of wgrib2-formatted level/layer strings.
+101    """
+102    __slots__ = ('_filehandle','_hasindex','_index','mode','name','messages',
+103                 'current_message','size','closed','variables','levels','_pos')
+104    def __init__(self, filename, mode='r', **kwargs):
+105        """
+106        Initialize GRIB2 File object instance.
 107
-108        **`mode : str, optional`**
-109            File access mode where `r` opens the files for reading only; `w` opens the file for writing.
-110        """
-111        # Manage keywords
-112        if "_xarray_backend" not in kwargs:
-113            kwargs["_xarray_backend"] = False
-114        if mode in {'a','r','w'}:
-115            mode = mode+'b'
-116            if 'w' in mode: mode += '+'
-117            if 'a' in mode: mode += '+'
-118
-119        # Some GRIB2 files are gzipped, so check for that here, but
-120        # raise error when using xarray backend.
-121        if 'r' in mode:
-122            self._filehandle = builtins.open(filename,mode=mode)
-123            # Gzip files contain a 2-byte header b'\x1f\x8b'.
-124            if self._filehandle.read(2) == b'\x1f\x8b':
-125                self._filehandle.close()
-126                if '_xarray_backend' in kwargs.keys():
-127                    raise RuntimeError('Gzip GRIB2 files are not supported by the Xarray backend.')
-128                import gzip
-129                self._filehandle = gzip.open(filename,mode=mode)
-130            else:
-131                self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB)
-132        else:
-133            self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB)
-134
-135        self._hasindex = False
-136        self._index = {}
-137        self.mode = mode
-138        self.name = os.path.abspath(filename)
-139        self.messages = 0
-140        self.current_message = 0
-141        self.size = os.path.getsize(self.name)
-142        self.closed = self._filehandle.closed
-143        self.levels = None
-144        self.variables = None
-145        if 'r' in self.mode:
-146            try:
-147                self._build_index(no_data=kwargs['_xarray_backend'])
-148            except(KeyError):
-149                self._build_index()
-150        # FIX: Cannot perform reads on mode='a'
-151        #if 'a' in self.mode and self.size > 0: self._build_index()
-152
-153
-154    def __delete__(self, instance):
-155        self.close()
-156        del self._index
-157
+108        Parameters
+109        ----------
+110
+111        **`filename : str`**
+112            File name containing GRIB2 messages.
+113
+114        **`mode : str, optional`**
+115            File access mode where `r` opens the files for reading only; `w` opens the file for writing.
+116        """
+117        # Manage keywords
+118        if "_xarray_backend" not in kwargs:
+119            kwargs["_xarray_backend"] = False
+120        if mode in {'a','r','w'}:
+121            mode = mode+'b'
+122            if 'w' in mode: mode += '+'
+123            if 'a' in mode: mode += '+'
+124
+125        # Some GRIB2 files are gzipped, so check for that here, but
+126        # raise error when using xarray backend.
+127        if 'r' in mode:
+128            self._filehandle = builtins.open(filename,mode=mode)
+129            # Gzip files contain a 2-byte header b'\x1f\x8b'.
+130            if self._filehandle.read(2) == b'\x1f\x8b':
+131                self._filehandle.close()
+132                if '_xarray_backend' in kwargs.keys():
+133                    raise RuntimeError('Gzip GRIB2 files are not supported by the Xarray backend.')
+134                import gzip
+135                self._filehandle = gzip.open(filename,mode=mode)
+136            else:
+137                self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB)
+138        else:
+139            self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB)
+140
+141        self._hasindex = False
+142        self._index = {}
+143        self.mode = mode
+144        self.name = os.path.abspath(filename)
+145        self.messages = 0
+146        self.current_message = 0
+147        self.size = os.path.getsize(self.name)
+148        self.closed = self._filehandle.closed
+149        self.levels = None
+150        self.variables = None
+151        if 'r' in self.mode:
+152            try:
+153                self._build_index(no_data=kwargs['_xarray_backend'])
+154            except(KeyError):
+155                self._build_index()
+156        # FIX: Cannot perform reads on mode='a'
+157        #if 'a' in self.mode and self.size > 0: self._build_index()
 158
-159    def __enter__(self):
-160        return self
-161
-162
-163    def __exit__(self, atype, value, traceback):
-164        self.close()
-165
-166
-167    def __iter__(self):
-168        yield from self._index['msg']
-169
-170
-171    def __len__(self):
-172        return self.messages
-173
-174
-175    def __repr__(self):
-176        strings = []
-177        for k in self.__slots__:
-178            if k.startswith('_'): continue
-179            strings.append('%s = %s\n'%(k,eval('self.'+k)))
-180        return ''.join(strings)
-181
-182
-183    def __getitem__(self, key):
-184        if isinstance(key,int):
-185            if abs(key) >= len(self._index['msg']):
-186                raise IndexError("index out of range")
-187            else:
-188                return self._index['msg'][key]
-189        elif isinstance(key,str):
-190            return self.select(shortName=key)
-191        elif isinstance(key,slice):
-192            return self._index['msg'][key]
-193        else:
-194            raise KeyError('Key must be an integer, slice, or GRIB2 variable shortName.')
-195
-196
-197    def _build_index(self, no_data=False):
-198        """
-199        Perform indexing of GRIB2 Messages.
-200        """
-201        # Initialize index dictionary
-202        if not self._hasindex:
-203            self._index['offset'] = []
-204            self._index['bitmap_offset'] = []
-205            self._index['data_offset'] = []
-206            self._index['size'] = []
-207            self._index['data_size'] = []
-208            self._index['submessageOffset'] = []
-209            self._index['submessageBeginSection'] = []
-210            self._index['isSubmessage'] = []
-211            self._index['messageNumber'] = []
-212            self._index['msg'] = []
-213            self._hasindex = True
-214
-215        # Iterate
-216        while True:
-217            try:
-218                # Read first 4 bytes and decode...looking for "GRIB"
-219                pos = self._filehandle.tell()
-220
-221                # Ignore headers (usually text) that are not part of the GRIB2
-222                # file.  For example, NAVGEM files have a http header at the
-223                # beginning that needs to be ignored.
-224
-225                # Read a byte at a time until "GRIB" is found.  Using
-226                # "wgrib2" on a NAVGEM file, the header was 421 bytes and
-227                # decided to go to 2048 bytes to be safe. For normal GRIB2
-228                # files this should be quick and break out of the first
-229                # loop when "test_offset" is 0.
-230                for test_offset in range(2048):
-231                    self._filehandle.seek(pos + test_offset)
-232                    header = struct.unpack(">i", self._filehandle.read(4))[0]
-233                    if header.to_bytes(4, "big") == b"GRIB":
-234                        pos = pos + test_offset
-235                        break
-236
-237                # Test header. Then get information from GRIB2 Section 0: the discipline
-238                # number, edition number (should always be 2), and GRIB2 message size.
-239                # Then iterate to check for submessages.
-240
-241                _issubmessage = False
-242                _submsgoffset = 0
-243                _submsgbegin = 0
-244                _bmapflag = None
-245
-246                # Read the rest of Section 0 using struct.
-247                section0 = np.concatenate(([header],list(struct.unpack('>HBBQ',self._filehandle.read(12)))),dtype=np.int64)
+159
+160    def __delete__(self, instance):
+161        self.close()
+162        del self._index
+163
+164
+165    def __enter__(self):
+166        return self
+167
+168
+169    def __exit__(self, atype, value, traceback):
+170        self.close()
+171
+172
+173    def __iter__(self):
+174        yield from self._index['msg']
+175
+176
+177    def __len__(self):
+178        return self.messages
+179
+180
+181    def __repr__(self):
+182        strings = []
+183        for k in self.__slots__:
+184            if k.startswith('_'): continue
+185            strings.append('%s = %s\n'%(k,eval('self.'+k)))
+186        return ''.join(strings)
+187
+188
+189    def __getitem__(self, key):
+190        if isinstance(key,int):
+191            if abs(key) >= len(self._index['msg']):
+192                raise IndexError("index out of range")
+193            else:
+194                return self._index['msg'][key]
+195        elif isinstance(key,str):
+196            return self.select(shortName=key)
+197        elif isinstance(key,slice):
+198            return self._index['msg'][key]
+199        else:
+200            raise KeyError('Key must be an integer, slice, or GRIB2 variable shortName.')
+201
+202
+203    def _build_index(self, no_data=False):
+204        """
+205        Perform indexing of GRIB2 Messages.
+206        """
+207        # Initialize index dictionary
+208        if not self._hasindex:
+209            self._index['sectionOffset'] = []
+210            self._index['sectionSize'] = []
+211            self._index['msgSize'] = []
+212            self._index['msgNumber'] = []
+213            self._index['msg'] = []
+214            self._hasindex = True
+215
+216        # Iterate
+217        while True:
+218            try:
+219                # Initialize
+220                bmapflag = None
+221                pos = self._filehandle.tell()
+222                section2 = b''
+223                trailer = b''
+224                _secpos = dict.fromkeys(range(8))
+225                _secsize = dict.fromkeys(range(8))
+226
+227                # Ignore headers (usually text) that are not part of the GRIB2
+228                # file.  For example, NAVGEM files have a http header at the
+229                # beginning that needs to be ignored.
+230
+231                # Read a byte at a time until "GRIB" is found.  Using
+232                # "wgrib2" on a NAVGEM file, the header was 421 bytes and
+233                # decided to go to 2048 bytes to be safe. For normal GRIB2
+234                # files this should be quick and break out of the first
+235                # loop when "test_offset" is 0.
+236                for test_offset in range(2048):
+237                    self._filehandle.seek(pos + test_offset)
+238                    header = struct.unpack(">i", self._filehandle.read(4))[0]
+239                    if header.to_bytes(4, "big") == b"GRIB":
+240                        pos = pos + test_offset
+241                        break
+242
+243                # Read the rest of Section 0 using struct.
+244                _secpos[0] = self._filehandle.tell()-4
+245                _secsize[0] = 16
+246                secmsg = self._filehandle.read(12)
+247                section0 = np.concatenate(([header],list(struct.unpack('>HBBQ',secmsg))),dtype=np.int64)
 248
-249                if section0[3] != 2:
-250                    raise ValueError(
-251                        "This is a GRIB version 1 file.  grib2io only supports GRIB version 2."
-252                    )
-253
-254                # Read and unpack Section 1
-255                secsize = struct.unpack('>i',self._filehandle.read(4))[0]
-256                secnum = struct.unpack('>B',self._filehandle.read(1))[0]
-257                assert secnum == 1
-258                self._filehandle.seek(self._filehandle.tell()-5)
-259                _grbmsg = self._filehandle.read(secsize)
-260                _grbpos = 0
-261                section1,_grbpos = g2clib.unpack1(_grbmsg,_grbpos,np.empty)
-262                secrange = range(2,8)
-263                while 1:
-264                    section2 = b''
-265                    for num in secrange:
-266                        secsize = struct.unpack('>i',self._filehandle.read(4))[0]
-267                        secnum = struct.unpack('>B',self._filehandle.read(1))[0]
-268                        if secnum == num:
-269                            if secnum == 2:
-270                                if secsize > 0:
-271                                    section2 = self._filehandle.read(secsize-5)
-272                            elif secnum == 3:
-273                                self._filehandle.seek(self._filehandle.tell()-5)
-274                                _grbmsg = self._filehandle.read(secsize)
-275                                _grbpos = 0
-276                                # Unpack Section 3
-277                                _gds,_gdt,_deflist,_grbpos = g2clib.unpack3(_grbmsg,_grbpos,np.empty)
-278                                _gds = _gds.tolist()
-279                                _gdt = _gdt.tolist()
-280                                section3 = np.concatenate((_gds,_gdt))
-281                                section3 = np.where(section3==4294967295,-1,section3)
-282                            elif secnum == 4:
-283                                self._filehandle.seek(self._filehandle.tell()-5)
-284                                _grbmsg = self._filehandle.read(secsize)
-285                                _grbpos = 0
-286                                # Unpack Section 4
-287                                _numcoord,_pdt,_pdtnum,_coordlist,_grbpos = g2clib.unpack4(_grbmsg,_grbpos,np.empty)
-288                                _pdt = _pdt.tolist()
-289                                section4 = np.concatenate((np.array((_numcoord,_pdtnum)),_pdt))
-290                            elif secnum == 5:
-291                                self._filehandle.seek(self._filehandle.tell()-5)
-292                                _grbmsg = self._filehandle.read(secsize)
-293                                _grbpos = 0
-294                                # Unpack Section 5
-295                                _drt,_drtn,_npts,self._pos = g2clib.unpack5(_grbmsg,_grbpos,np.empty)
-296                                section5 = np.concatenate((np.array((_npts,_drtn)),_drt))
-297                                section5 = np.where(section5==4294967295,-1,section5)
-298                            elif secnum == 6:
-299                                # Unpack Section 6. Not really...just get the flag value.
-300                                _bmapflag = struct.unpack('>B',self._filehandle.read(1))[0]
-301                                if _bmapflag == 0:
-302                                    _bmappos = self._filehandle.tell()-6
-303                                elif _bmapflag == 254:
-304                                    pass # Do this to keep the previous position value
-305                                else:
-306                                    _bmappos = None
-307                                self._filehandle.seek(self._filehandle.tell()+secsize-6)
-308                            elif secnum == 7:
-309                                # Unpack Section 7. No need to read it, just index the position in file.
-310                                _datapos = self._filehandle.tell()-5
-311                                _datasize = secsize
-312                                self._filehandle.seek(self._filehandle.tell()+secsize-5)
-313                            else:
-314                                self._filehandle.seek(self._filehandle.tell()+secsize-5)
-315                        else:
-316                            if num == 2 and secnum == 3:
-317                                pass # Allow this.  Just means no Local Use Section.
-318                            else:
-319                                _issubmessage = True
-320                                _submsgoffset = (self._filehandle.tell()-5)-(self._index['offset'][-1])
-321                                _submsgbegin = secnum
-322                            self._filehandle.seek(self._filehandle.tell()-5)
-323                            continue
-324                    trailer = struct.unpack('>4s',self._filehandle.read(4))[0]
-325                    if trailer == b'7777':
-326                        self.messages += 1
-327                        self._index['offset'].append(pos)
-328                        self._index['bitmap_offset'].append(_bmappos)
-329                        self._index['data_offset'].append(_datapos)
-330                        self._index['size'].append(section0[-1])
-331                        self._index['data_size'].append(_datasize)
-332                        self._index['messageNumber'].append(self.messages)
-333                        self._index['isSubmessage'].append(_issubmessage)
-334                        if _issubmessage:
-335                            self._index['submessageOffset'].append(_submsgoffset)
-336                            self._index['submessageBeginSection'].append(_submsgbegin)
-337                        else:
-338                            self._index['submessageOffset'].append(0)
-339                            self._index['submessageBeginSection'].append(_submsgbegin)
-340
-341                        # Create Grib2Message with data.
-342                        msg = Grib2Message(section0,section1,section2,section3,section4,section5,_bmapflag)
-343                        msg._msgnum = self.messages-1
-344                        msg._deflist = _deflist
-345                        msg._coordlist = _coordlist
-346                        if not no_data:
-347                            msg._data = Grib2MessageOnDiskArray((msg.ny,msg.nx), 2,
-348                                                                TYPE_OF_VALUES_DTYPE[msg.typeOfValues],
-349                                                                self._filehandle,
-350                                                                msg, pos, _bmappos, _datapos)
-351                        self._index['msg'].append(msg)
-352
-353                        break
-354                    else:
-355                        self._filehandle.seek(self._filehandle.tell()-4)
-356                        self.messages += 1
-357                        self._index['offset'].append(pos)
-358                        self._index['bitmap_offset'].append(_bmappos)
-359                        self._index['data_offset'].append(_datapos)
-360                        self._index['size'].append(section0[-1])
-361                        self._index['data_size'].append(_datasize)
-362                        self._index['messageNumber'].append(self.messages)
-363                        self._index['isSubmessage'].append(_issubmessage)
-364                        self._index['submessageOffset'].append(_submsgoffset)
-365                        self._index['submessageBeginSection'].append(_submsgbegin)
+249                # Make sure message is GRIB2.
+250                if section0[3] != 2:
+251                    # Check for GRIB1 and ignore.
+252                    if secmsg[3] == 1:
+253                        warnings.warn("GRIB version 1 message detected.  Ignoring...")
+254                        grib1_size = int.from_bytes(secmsg[:3],"big")
+255                        self._filehandle.seek(self._filehandle.tell()+grib1_size-16)
+256                        continue
+257                    else:
+258                        raise ValueError("Bad GRIB version number.")
+259
+260                # Read and unpack sections 1 through 8 which all follow a pattern of
+261                # section size, number, and content.
+262                while 1:
+263                    # Read first 5 bytes of the section which contains the size of the
+264                    # section (4 bytes) and the section number (1 byte).
+265                    secmsg = self._filehandle.read(5)
+266                    secsize, secnum = struct.unpack('>iB',secmsg)
+267
+268                    # Record the offset of the section number and "append" the rest of
+269                    # the section to secmsg.
+270                    _secpos[secnum] = self._filehandle.tell()-5
+271                    _secsize[secnum] = secsize
+272                    if secnum in {1,3,4,5}:
+273                        secmsg += self._filehandle.read(secsize-5)
+274                    grbpos = 0
+275
+276                    # Unpack section
+277                    if secnum == 1:
+278                        # Unpack Section 1
+279                        section1, grbpos = g2clib.unpack1(secmsg,grbpos,np.empty)
+280                    elif secnum == 2:
+281                        # Unpack Section 2
+282                        section2 = self._filehandle.read(secsize-5)
+283                    elif secnum == 3:
+284                        # Unpack Section 3
+285                        gds, gdt, deflist, grbpos = g2clib.unpack3(secmsg,grbpos,np.empty)
+286                        gds = gds.tolist()
+287                        gdt = gdt.tolist()
+288                        section3 = np.concatenate((gds,gdt))
+289                        section3 = np.where(section3==4294967295,-1,section3)
+290                    elif secnum == 4:
+291                        # Unpack Section 4
+292                        numcoord, pdt, pdtnum, coordlist, grbpos = g2clib.unpack4(secmsg,grbpos,np.empty)
+293                        pdt = pdt.tolist()
+294                        section4 = np.concatenate((np.array((numcoord,pdtnum)),pdt))
+295                    elif secnum == 5:
+296                        # Unpack Section 5
+297                        drt, drtn, npts, self._pos = g2clib.unpack5(secmsg,grbpos,np.empty)
+298                        section5 = np.concatenate((np.array((npts,drtn)),drt))
+299                        section5 = np.where(section5==4294967295,-1,section5)
+300                    elif secnum == 6:
+301                        # Unpack Section 6 - Just the bitmap flag
+302                        bmapflag = struct.unpack('>B',self._filehandle.read(1))[0]
+303                        if bmapflag == 0:
+304                            bmappos = self._filehandle.tell()-6
+305                        elif bmapflag == 254:
+306                            # Do this to keep the previous position value
+307                            pass
+308                        else:
+309                            bmappos = None
+310                        self._filehandle.seek(self._filehandle.tell()+secsize-6)
+311                    elif secnum == 7:
+312                        # Do not unpack section 7 here, but move the file pointer
+313                        # to after section 7.
+314                        self._filehandle.seek(self._filehandle.tell()+secsize-5)
+315
+316                        # Update the file index.
+317                        self.messages += 1
+318                        self._index['sectionOffset'].append(_secpos)
+319                        self._index['sectionSize'].append(_secsize)
+320                        self._index['msgSize'].append(section0[-1])
+321                        self._index['msgNumber'].append(self.messages)
+322
+323                        # Create Grib2Message with data.
+324                        msg = Grib2Message(section0,section1,section2,section3,section4,section5,bmapflag)
+325                        msg._msgnum = self.messages-1
+326                        msg._deflist = deflist
+327                        msg._coordlist = coordlist
+328                        if not no_data:
+329                            msg._data = Grib2MessageOnDiskArray((msg.ny,msg.nx), 2,
+330                                                                TYPE_OF_VALUES_DTYPE[msg.typeOfValues],
+331                                                                self._filehandle,
+332                                                                msg, pos, _secpos[6], _secpos[7])
+333                        self._index['msg'].append(msg)
+334
+335                        # If here, then we have moved through GRIB2 section 1-7. Now we
+336                        # need to check the next 4 bytes after section 7.
+337                        trailer = struct.unpack('>i',self._filehandle.read(4))[0]
+338
+339                        # If we reach the GRIB2 trailer string ('7777'), then we can break
+340                        # begin processing the next GRIB2 message.  If not, then we continue
+341                        # within the same iteration to process a GRIB2 submessage.
+342                        if trailer.to_bytes(4, "big") == b'7777':
+343                            break
+344                        else:
+345                            # If here, trailer should be the size of the first section
+346                            # of the next submessage, then the next byte is the section
+347                            # number.  Check this value.
+348                            nextsec = struct.unpack('>B',self._filehandle.read(1))[0]
+349                            if nextsec not in {2,3,4}:
+350                                raise ValueError("Bad GRIB2 message structure.")
+351                            self._filehandle.seek(self._filehandle.tell()-5)
+352                            continue
+353                    else:
+354                        raise ValueError("Bad GRIB2 section number.")
+355
+356            except(struct.error):
+357                if 'r' in self.mode:
+358                    self._filehandle.seek(0)
+359                break
+360
+361        # Index at end of _build_index()
+362        if self._hasindex and not no_data:
+363             self.variables = tuple(sorted(set([msg.shortName for msg in self._index['msg']])))
+364             self.levels = tuple(sorted(set([msg.level for msg in self._index['msg']])))
+365
 366
-367                        # Create Grib2Message with data.
-368                        msg = Grib2Message(section0,section1,section2,section3,section4,section5,_bmapflag)
-369                        msg._msgnum = self.messages-1
-370                        msg._deflist = _deflist
-371                        msg._coordlist = _coordlist
-372                        if not no_data:
-373                            msg._data = Grib2MessageOnDiskArray((msg.ny,msg.nx), 2,
-374                                                                TYPE_OF_VALUES_DTYPE[msg.typeOfValues],
-375                                                                self._filehandle,
-376                                                                msg, pos, _bmappos, _datapos)
-377                        self._index['msg'].append(msg)
-378
-379                        continue
-380
-381            except(struct.error):
-382                if 'r' in self.mode:
-383                    self._filehandle.seek(0)
-384                break
-385
-386        # Index at end of _build_index()
-387        if self._hasindex and not no_data:
-388             self.variables = tuple(sorted(set([msg.shortName for msg in self._index['msg']])))
-389             self.levels = tuple(sorted(set([msg.level for msg in self._index['msg']])))
-390
-391
-392    def close(self):
-393        """
-394        Close the file handle
-395        """
-396        if not self._filehandle.closed:
-397            self.messages = 0
-398            self.current_message = 0
-399            self._filehandle.close()
-400            self.closed = self._filehandle.closed
-401
-402
-403    def read(self, size=None):
-404        """
-405        Read size amount of GRIB2 messages from the current position.
-406
-407        If no argument is given, then size is None and all messages are returned from 
-408        the current position in the file. This read method follows the behavior of 
-409        Python's builtin open() function, but whereas that operates on units of bytes, 
-410        we operate on units of GRIB2 messages.
-411
-412        Parameters
-413        ----------
-414        **`size : int, optional`**
-415            The number of GRIB2 messages to read from the current position. If no argument is
-416            give, the default value is `None` and remainder of the file is read.
+367    def close(self):
+368        """
+369        Close the file handle
+370        """
+371        if not self._filehandle.closed:
+372            self.messages = 0
+373            self.current_message = 0
+374            self._filehandle.close()
+375            self.closed = self._filehandle.closed
+376
+377
+378    def read(self, size=None):
+379        """
+380        Read size amount of GRIB2 messages from the current position.
+381
+382        If no argument is given, then size is None and all messages are returned from 
+383        the current position in the file. This read method follows the behavior of 
+384        Python's builtin open() function, but whereas that operates on units of bytes, 
+385        we operate on units of GRIB2 messages.
+386
+387        Parameters
+388        ----------
+389        **`size : int, optional`**
+390            The number of GRIB2 messages to read from the current position. If no argument is
+391            give, the default value is `None` and remainder of the file is read.
+392
+393        Returns
+394        -------
+395        `Grib2Message` object when size = 1 or a `list` of Grib2Messages when size > 1.
+396        """
+397        if size is not None and size < 0:
+398            size = None
+399        if size is None or size > 1:
+400            start = self.tell()
+401            stop = self.messages if size is None else start+size
+402            if size is None:
+403                self.current_message = self.messages-1
+404            else:
+405                self.current_message += size
+406            return self._index['msg'][slice(start,stop,1)]
+407        elif size == 1:
+408            self.current_message += 1
+409            return self._index['msg'][self.current_message]
+410        else:
+411            None
+412
+413
+414    def seek(self, pos):
+415        """
+416        Set the position within the file in units of GRIB2 messages.
 417
-418        Returns
-419        -------
-420        `Grib2Message` object when size = 1 or a `list` of Grib2Messages when size > 1.
-421        """
-422        if size is not None and size < 0:
-423            size = None
-424        if size is None or size > 1:
-425            start = self.tell()
-426            stop = self.messages if size is None else start+size
-427            if size is None:
-428                self.current_message = self.messages-1
-429            else:
-430                self.current_message += size
-431            return self._index['msg'][slice(start,stop,1)]
-432        elif size == 1:
-433            self.current_message += 1
-434            return self._index['msg'][self.current_message]
-435        else:
-436            None
-437
-438
-439    def seek(self, pos):
-440        """
-441        Set the position within the file in units of GRIB2 messages.
-442
-443        Parameters
-444        ----------
-445        **`pos : int`**
-446            The GRIB2 Message number to set the file pointer to.
-447        """
-448        if self._hasindex:
-449            self._filehandle.seek(self._index['offset'][pos])
-450            self.current_message = pos
-451
+418        Parameters
+419        ----------
+420        **`pos : int`**
+421            The GRIB2 Message number to set the file pointer to.
+422        """
+423        if self._hasindex:
+424            self._filehandle.seek(self._index['sectionOffset'][0][pos])
+425            self.current_message = pos
+426
+427
+428    def tell(self):
+429        """
+430        Returns the position of the file in units of GRIB2 Messages.
+431        """
+432        return self.current_message
+433
+434
+435    def select(self, **kwargs):
+436        """
+437        Select GRIB2 messages by `Grib2Message` attributes.
+438        """
+439        # TODO: Added ability to process multiple values for each keyword (attribute)
+440        idxs = []
+441        nkeys = len(kwargs.keys())
+442        for k,v in kwargs.items():
+443            for m in self._index['msg']:
+444                if hasattr(m,k) and getattr(m,k) == v: idxs.append(m._msgnum)
+445        idxs = np.array(idxs,dtype=np.int32)
+446        return [self._index['msg'][i] for i in [ii[0] for ii in collections.Counter(idxs).most_common() if ii[1] == nkeys]]
+447
+448
+449    def write(self, msg):
+450        """
+451        Writes GRIB2 message object to file.
 452
-453    def tell(self):
-454        """
-455        Returns the position of the file in units of GRIB2 Messages.
-456        """
-457        return self.current_message
-458
-459
-460    def select(self, **kwargs):
-461        """
-462        Select GRIB2 messages by `Grib2Message` attributes.
-463        """
-464        # TODO: Added ability to process multiple values for each keyword (attribute)
-465        idxs = []
-466        nkeys = len(kwargs.keys())
-467        for k,v in kwargs.items():
-468            for m in self._index['msg']:
-469                if hasattr(m,k) and getattr(m,k) == v: idxs.append(m._msgnum)
-470        idxs = np.array(idxs,dtype=np.int32)
-471        return [self._index['msg'][i] for i in [ii[0] for ii in collections.Counter(idxs).most_common() if ii[1] == nkeys]]
-472
-473
-474    def write(self, msg):
-475        """
-476        Writes GRIB2 message object to file.
-477
-478        Parameters
-479        ----------
-480        **`msg : Grib2Message or sequence of Grib2Messages`**
-481            GRIB2 message objects to write to file.
-482        """
-483        if isinstance(msg,list):
-484            for m in msg:
-485                self.write(m)
-486            return
-487
-488        if issubclass(msg.__class__,_Grib2Message):
-489            if hasattr(msg,'_msg'):
-490                self._filehandle.write(msg._msg)
-491            else:
-492                if msg._signature != msg._generate_signature():
-493                    msg.pack()
-494                    self._filehandle.write(msg._msg)
-495                else:
-496                    if hasattr(msg._data,'filehandle'):
-497                        msg._data.filehandle.seek(msg._data.offset)
-498                        self._filehandle.write(msg._data.filehandle.read(msg.section0[-1]))
-499                    else:
-500                        msg.pack()
-501                        self._filehandle.write(msg._msg)
-502            self.flush()
-503            self.size = os.path.getsize(self.name)
-504            self._filehandle.seek(self.size-msg.section0[-1])
-505            self._build_index()
-506        else:
-507            raise TypeError("msg must be a Grib2Message object.")
-508        return
-509
-510
-511    def flush(self):
-512        """
-513        Flush the file object buffer.
-514        """
-515        self._filehandle.flush()
-516
+453        Parameters
+454        ----------
+455        **`msg : Grib2Message or sequence of Grib2Messages`**
+456            GRIB2 message objects to write to file.
+457        """
+458        if isinstance(msg,list):
+459            for m in msg:
+460                self.write(m)
+461            return
+462
+463        if issubclass(msg.__class__,_Grib2Message):
+464            if hasattr(msg,'_msg'):
+465                self._filehandle.write(msg._msg)
+466            else:
+467                if msg._signature != msg._generate_signature():
+468                    msg.pack()
+469                    self._filehandle.write(msg._msg)
+470                else:
+471                    if hasattr(msg._data,'filehandle'):
+472                        msg._data.filehandle.seek(msg._data.offset)
+473                        self._filehandle.write(msg._data.filehandle.read(msg.section0[-1]))
+474                    else:
+475                        msg.pack()
+476                        self._filehandle.write(msg._msg)
+477            self.flush()
+478            self.size = os.path.getsize(self.name)
+479            self._filehandle.seek(self.size-msg.section0[-1])
+480            self._build_index()
+481        else:
+482            raise TypeError("msg must be a Grib2Message object.")
+483        return
+484
+485
+486    def flush(self):
+487        """
+488        Flush the file object buffer.
+489        """
+490        self._filehandle.flush()
+491
+492
+493    def levels_by_var(self, name):
+494        """
+495        Return a list of level strings given a variable shortName.
+496
+497        Parameters
+498        ----------
+499        **`name : str`**
+500            Grib2Message variable shortName
+501
+502        Returns
+503        -------
+504        A list of strings of unique level strings.
+505        """
+506        return list(sorted(set([msg.level for msg in self.select(shortName=name)])))
+507
+508
+509    def vars_by_level(self, level):
+510        """
+511        Return a list of variable shortName strings given a level.
+512
+513        Parameters
+514        ----------
+515        **`level : str`**
+516            Grib2Message variable level
 517
-518    def levels_by_var(self, name):
-519        """
-520        Return a list of level strings given a variable shortName.
-521
-522        Parameters
-523        ----------
-524        **`name : str`**
-525            Grib2Message variable shortName
-526
-527        Returns
-528        -------
-529        A list of strings of unique level strings.
-530        """
-531        return list(sorted(set([msg.level for msg in self.select(shortName=name)])))
-532
-533
-534    def vars_by_level(self, level):
-535        """
-536        Return a list of variable shortName strings given a level.
-537
-538        Parameters
-539        ----------
-540        **`level : str`**
-541            Grib2Message variable level
-542
-543        Returns
-544        -------
-545        A list of strings of variable shortName strings.
-546        """
-547        return list(sorted(set([msg.shortName for msg in self.select(level=level)])))
+518        Returns
+519        -------
+520        A list of strings of variable shortName strings.
+521        """
+522        return list(sorted(set([msg.shortName for msg in self.select(level=level)])))
 
@@ -954,6 +928,11 @@

Tutorials

may contain submessages whereby Section 2-7 can be repeated. grib2io accommodates for this by flattening any GRIB2 submessages into multiple individual messages.

+

It is important to note that GRIB2 files from some Meteorological agencies contain other data +than GRIB2 messages. GRIB2 files from NWS NDFD and NAVGEM have text-based "header" data and +files from ECMWF can contain GRIB1 and GRIB2 messages. grib2io checks for these and safely +ignores them.

+

Attributes

mode : str @@ -992,60 +971,60 @@

Attributes

-
 98    def __init__(self, filename, mode='r', **kwargs):
- 99        """
-100        Initialize GRIB2 File object instance.
-101
-102        Parameters
-103        ----------
-104
-105        **`filename : str`**
-106            File name containing GRIB2 messages.
+            
104    def __init__(self, filename, mode='r', **kwargs):
+105        """
+106        Initialize GRIB2 File object instance.
 107
-108        **`mode : str, optional`**
-109            File access mode where `r` opens the files for reading only; `w` opens the file for writing.
-110        """
-111        # Manage keywords
-112        if "_xarray_backend" not in kwargs:
-113            kwargs["_xarray_backend"] = False
-114        if mode in {'a','r','w'}:
-115            mode = mode+'b'
-116            if 'w' in mode: mode += '+'
-117            if 'a' in mode: mode += '+'
-118
-119        # Some GRIB2 files are gzipped, so check for that here, but
-120        # raise error when using xarray backend.
-121        if 'r' in mode:
-122            self._filehandle = builtins.open(filename,mode=mode)
-123            # Gzip files contain a 2-byte header b'\x1f\x8b'.
-124            if self._filehandle.read(2) == b'\x1f\x8b':
-125                self._filehandle.close()
-126                if '_xarray_backend' in kwargs.keys():
-127                    raise RuntimeError('Gzip GRIB2 files are not supported by the Xarray backend.')
-128                import gzip
-129                self._filehandle = gzip.open(filename,mode=mode)
-130            else:
-131                self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB)
-132        else:
-133            self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB)
-134
-135        self._hasindex = False
-136        self._index = {}
-137        self.mode = mode
-138        self.name = os.path.abspath(filename)
-139        self.messages = 0
-140        self.current_message = 0
-141        self.size = os.path.getsize(self.name)
-142        self.closed = self._filehandle.closed
-143        self.levels = None
-144        self.variables = None
-145        if 'r' in self.mode:
-146            try:
-147                self._build_index(no_data=kwargs['_xarray_backend'])
-148            except(KeyError):
-149                self._build_index()
-150        # FIX: Cannot perform reads on mode='a'
-151        #if 'a' in self.mode and self.size > 0: self._build_index()
+108        Parameters
+109        ----------
+110
+111        **`filename : str`**
+112            File name containing GRIB2 messages.
+113
+114        **`mode : str, optional`**
+115            File access mode where `r` opens the files for reading only; `w` opens the file for writing.
+116        """
+117        # Manage keywords
+118        if "_xarray_backend" not in kwargs:
+119            kwargs["_xarray_backend"] = False
+120        if mode in {'a','r','w'}:
+121            mode = mode+'b'
+122            if 'w' in mode: mode += '+'
+123            if 'a' in mode: mode += '+'
+124
+125        # Some GRIB2 files are gzipped, so check for that here, but
+126        # raise error when using xarray backend.
+127        if 'r' in mode:
+128            self._filehandle = builtins.open(filename,mode=mode)
+129            # Gzip files contain a 2-byte header b'\x1f\x8b'.
+130            if self._filehandle.read(2) == b'\x1f\x8b':
+131                self._filehandle.close()
+132                if '_xarray_backend' in kwargs.keys():
+133                    raise RuntimeError('Gzip GRIB2 files are not supported by the Xarray backend.')
+134                import gzip
+135                self._filehandle = gzip.open(filename,mode=mode)
+136            else:
+137                self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB)
+138        else:
+139            self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB)
+140
+141        self._hasindex = False
+142        self._index = {}
+143        self.mode = mode
+144        self.name = os.path.abspath(filename)
+145        self.messages = 0
+146        self.current_message = 0
+147        self.size = os.path.getsize(self.name)
+148        self.closed = self._filehandle.closed
+149        self.levels = None
+150        self.variables = None
+151        if 'r' in self.mode:
+152            try:
+153                self._build_index(no_data=kwargs['_xarray_backend'])
+154            except(KeyError):
+155                self._build_index()
+156        # FIX: Cannot perform reads on mode='a'
+157        #if 'a' in self.mode and self.size > 0: self._build_index()
 
@@ -1161,15 +1140,15 @@

Parameters

-
392    def close(self):
-393        """
-394        Close the file handle
-395        """
-396        if not self._filehandle.closed:
-397            self.messages = 0
-398            self.current_message = 0
-399            self._filehandle.close()
-400            self.closed = self._filehandle.closed
+            
367    def close(self):
+368        """
+369        Close the file handle
+370        """
+371        if not self._filehandle.closed:
+372            self.messages = 0
+373            self.current_message = 0
+374            self._filehandle.close()
+375            self.closed = self._filehandle.closed
 
@@ -1189,40 +1168,40 @@

Parameters

-
403    def read(self, size=None):
-404        """
-405        Read size amount of GRIB2 messages from the current position.
-406
-407        If no argument is given, then size is None and all messages are returned from 
-408        the current position in the file. This read method follows the behavior of 
-409        Python's builtin open() function, but whereas that operates on units of bytes, 
-410        we operate on units of GRIB2 messages.
-411
-412        Parameters
-413        ----------
-414        **`size : int, optional`**
-415            The number of GRIB2 messages to read from the current position. If no argument is
-416            give, the default value is `None` and remainder of the file is read.
-417
-418        Returns
-419        -------
-420        `Grib2Message` object when size = 1 or a `list` of Grib2Messages when size > 1.
-421        """
-422        if size is not None and size < 0:
-423            size = None
-424        if size is None or size > 1:
-425            start = self.tell()
-426            stop = self.messages if size is None else start+size
-427            if size is None:
-428                self.current_message = self.messages-1
-429            else:
-430                self.current_message += size
-431            return self._index['msg'][slice(start,stop,1)]
-432        elif size == 1:
-433            self.current_message += 1
-434            return self._index['msg'][self.current_message]
-435        else:
-436            None
+            
378    def read(self, size=None):
+379        """
+380        Read size amount of GRIB2 messages from the current position.
+381
+382        If no argument is given, then size is None and all messages are returned from 
+383        the current position in the file. This read method follows the behavior of 
+384        Python's builtin open() function, but whereas that operates on units of bytes, 
+385        we operate on units of GRIB2 messages.
+386
+387        Parameters
+388        ----------
+389        **`size : int, optional`**
+390            The number of GRIB2 messages to read from the current position. If no argument is
+391            give, the default value is `None` and remainder of the file is read.
+392
+393        Returns
+394        -------
+395        `Grib2Message` object when size = 1 or a `list` of Grib2Messages when size > 1.
+396        """
+397        if size is not None and size < 0:
+398            size = None
+399        if size is None or size > 1:
+400            start = self.tell()
+401            stop = self.messages if size is None else start+size
+402            if size is None:
+403                self.current_message = self.messages-1
+404            else:
+405                self.current_message += size
+406            return self._index['msg'][slice(start,stop,1)]
+407        elif size == 1:
+408            self.current_message += 1
+409            return self._index['msg'][self.current_message]
+410        else:
+411            None
 
@@ -1257,18 +1236,18 @@

Returns

-
439    def seek(self, pos):
-440        """
-441        Set the position within the file in units of GRIB2 messages.
-442
-443        Parameters
-444        ----------
-445        **`pos : int`**
-446            The GRIB2 Message number to set the file pointer to.
-447        """
-448        if self._hasindex:
-449            self._filehandle.seek(self._index['offset'][pos])
-450            self.current_message = pos
+            
414    def seek(self, pos):
+415        """
+416        Set the position within the file in units of GRIB2 messages.
+417
+418        Parameters
+419        ----------
+420        **`pos : int`**
+421            The GRIB2 Message number to set the file pointer to.
+422        """
+423        if self._hasindex:
+424            self._filehandle.seek(self._index['sectionOffset'][0][pos])
+425            self.current_message = pos
 
@@ -1293,11 +1272,11 @@

Parameters

-
453    def tell(self):
-454        """
-455        Returns the position of the file in units of GRIB2 Messages.
-456        """
-457        return self.current_message
+            
428    def tell(self):
+429        """
+430        Returns the position of the file in units of GRIB2 Messages.
+431        """
+432        return self.current_message
 
@@ -1317,18 +1296,18 @@

Parameters

-
460    def select(self, **kwargs):
-461        """
-462        Select GRIB2 messages by `Grib2Message` attributes.
-463        """
-464        # TODO: Added ability to process multiple values for each keyword (attribute)
-465        idxs = []
-466        nkeys = len(kwargs.keys())
-467        for k,v in kwargs.items():
-468            for m in self._index['msg']:
-469                if hasattr(m,k) and getattr(m,k) == v: idxs.append(m._msgnum)
-470        idxs = np.array(idxs,dtype=np.int32)
-471        return [self._index['msg'][i] for i in [ii[0] for ii in collections.Counter(idxs).most_common() if ii[1] == nkeys]]
+            
435    def select(self, **kwargs):
+436        """
+437        Select GRIB2 messages by `Grib2Message` attributes.
+438        """
+439        # TODO: Added ability to process multiple values for each keyword (attribute)
+440        idxs = []
+441        nkeys = len(kwargs.keys())
+442        for k,v in kwargs.items():
+443            for m in self._index['msg']:
+444                if hasattr(m,k) and getattr(m,k) == v: idxs.append(m._msgnum)
+445        idxs = np.array(idxs,dtype=np.int32)
+446        return [self._index['msg'][i] for i in [ii[0] for ii in collections.Counter(idxs).most_common() if ii[1] == nkeys]]
 
@@ -1348,41 +1327,41 @@

Parameters

-
474    def write(self, msg):
-475        """
-476        Writes GRIB2 message object to file.
-477
-478        Parameters
-479        ----------
-480        **`msg : Grib2Message or sequence of Grib2Messages`**
-481            GRIB2 message objects to write to file.
-482        """
-483        if isinstance(msg,list):
-484            for m in msg:
-485                self.write(m)
-486            return
-487
-488        if issubclass(msg.__class__,_Grib2Message):
-489            if hasattr(msg,'_msg'):
-490                self._filehandle.write(msg._msg)
-491            else:
-492                if msg._signature != msg._generate_signature():
-493                    msg.pack()
-494                    self._filehandle.write(msg._msg)
-495                else:
-496                    if hasattr(msg._data,'filehandle'):
-497                        msg._data.filehandle.seek(msg._data.offset)
-498                        self._filehandle.write(msg._data.filehandle.read(msg.section0[-1]))
-499                    else:
-500                        msg.pack()
-501                        self._filehandle.write(msg._msg)
-502            self.flush()
-503            self.size = os.path.getsize(self.name)
-504            self._filehandle.seek(self.size-msg.section0[-1])
-505            self._build_index()
-506        else:
-507            raise TypeError("msg must be a Grib2Message object.")
-508        return
+            
449    def write(self, msg):
+450        """
+451        Writes GRIB2 message object to file.
+452
+453        Parameters
+454        ----------
+455        **`msg : Grib2Message or sequence of Grib2Messages`**
+456            GRIB2 message objects to write to file.
+457        """
+458        if isinstance(msg,list):
+459            for m in msg:
+460                self.write(m)
+461            return
+462
+463        if issubclass(msg.__class__,_Grib2Message):
+464            if hasattr(msg,'_msg'):
+465                self._filehandle.write(msg._msg)
+466            else:
+467                if msg._signature != msg._generate_signature():
+468                    msg.pack()
+469                    self._filehandle.write(msg._msg)
+470                else:
+471                    if hasattr(msg._data,'filehandle'):
+472                        msg._data.filehandle.seek(msg._data.offset)
+473                        self._filehandle.write(msg._data.filehandle.read(msg.section0[-1]))
+474                    else:
+475                        msg.pack()
+476                        self._filehandle.write(msg._msg)
+477            self.flush()
+478            self.size = os.path.getsize(self.name)
+479            self._filehandle.seek(self.size-msg.section0[-1])
+480            self._build_index()
+481        else:
+482            raise TypeError("msg must be a Grib2Message object.")
+483        return
 
@@ -1407,11 +1386,11 @@

Parameters

-
511    def flush(self):
-512        """
-513        Flush the file object buffer.
-514        """
-515        self._filehandle.flush()
+            
486    def flush(self):
+487        """
+488        Flush the file object buffer.
+489        """
+490        self._filehandle.flush()
 
@@ -1431,20 +1410,20 @@

Parameters

-
518    def levels_by_var(self, name):
-519        """
-520        Return a list of level strings given a variable shortName.
-521
-522        Parameters
-523        ----------
-524        **`name : str`**
-525            Grib2Message variable shortName
-526
-527        Returns
-528        -------
-529        A list of strings of unique level strings.
-530        """
-531        return list(sorted(set([msg.level for msg in self.select(shortName=name)])))
+            
493    def levels_by_var(self, name):
+494        """
+495        Return a list of level strings given a variable shortName.
+496
+497        Parameters
+498        ----------
+499        **`name : str`**
+500            Grib2Message variable shortName
+501
+502        Returns
+503        -------
+504        A list of strings of unique level strings.
+505        """
+506        return list(sorted(set([msg.level for msg in self.select(shortName=name)])))
 
@@ -1473,20 +1452,20 @@

Returns

-
534    def vars_by_level(self, level):
-535        """
-536        Return a list of variable shortName strings given a level.
-537
-538        Parameters
-539        ----------
-540        **`level : str`**
-541            Grib2Message variable level
-542
-543        Returns
-544        -------
-545        A list of strings of variable shortName strings.
-546        """
-547        return list(sorted(set([msg.shortName for msg in self.select(level=level)])))
+            
509    def vars_by_level(self, level):
+510        """
+511        Return a list of variable shortName strings given a level.
+512
+513        Parameters
+514        ----------
+515        **`level : str`**
+516            Grib2Message variable level
+517
+518        Returns
+519        -------
+520        A list of strings of variable shortName strings.
+521        """
+522        return list(sorted(set([msg.shortName for msg in self.select(level=level)])))
 
@@ -1516,73 +1495,78 @@

Returns

-
550class Grib2Message:
-551    """
-552    Creation class for a GRIB2 message.
-553    """
-554    def __new__(self, section0: np.array = np.array([struct.unpack('>I',b'GRIB')[0],0,0,2,0]),
-555                      section1: np.array = np.zeros((13),dtype=np.int64),
-556                      section2: bytes = None,
-557                      section3: np.array = None,
-558                      section4: np.array = None,
-559                      section5: np.array = None, *args, **kwargs):
-560
-561        if np.all(section1==0):
-562            section1[5:11] = datetime.datetime.utcfromtimestamp(0).timetuple()[:6]
-563
-564        bases = list()
-565        if section3 is None:
-566            if 'gdtn' in kwargs.keys():
-567                gdtn = kwargs['gdtn']
-568                Gdt = templates.gdt_class_by_gdtn(gdtn)
-569                bases.append(Gdt)
-570                section3 = np.zeros((Gdt._len+5),dtype=np.int64)
-571                section3[4] = gdtn
-572            else:
-573                raise ValueError("Must provide GRIB2 Grid Definition Template Number or section 3 array")
-574        else:
-575            gdtn = section3[4]
-576            Gdt = templates.gdt_class_by_gdtn(gdtn)
-577            bases.append(Gdt)
-578
-579        if section4 is None:
-580            if 'pdtn' in kwargs.keys():
-581                pdtn = kwargs['pdtn']
-582                Pdt = templates.pdt_class_by_pdtn(pdtn)
-583                bases.append(Pdt)
-584                section4 = np.zeros((Pdt._len+2),dtype=np.int64)
-585                section4[1] = pdtn
-586            else:
-587                raise ValueError("Must provide GRIB2 Production Definition Template Number or section 4 array")
-588        else:
-589            pdtn = section4[1]
-590            Pdt = templates.pdt_class_by_pdtn(pdtn)
-591            bases.append(Pdt)
-592
-593        if section5 is None:
-594            if 'drtn' in kwargs.keys():
-595                drtn = kwargs['drtn']
-596                Drt = templates.drt_class_by_drtn(drtn)
-597                bases.append(Drt)
-598                section5 = np.zeros((Drt._len+2),dtype=np.int64)
-599                section5[1] = drtn
-600            else:
-601                raise ValueError("Must provide GRIB2 Data Representation Template Number or section 5 array")
-602        else:
-603            drtn = section5[1]
-604            Drt = templates.drt_class_by_drtn(drtn)
-605            bases.append(Drt)
-606
-607        # attempt to use existing Msg class if it has already been made with gdtn,pdtn,drtn combo
-608        try:
-609            Msg = _msg_class_store[f"{gdtn}:{pdtn}:{drtn}"]
-610        except KeyError:
-611            @dataclass(init=False, repr=False)
-612            class Msg(_Grib2Message, *bases):
-613                pass
-614            _msg_class_store[f"{gdtn}:{pdtn}:{drtn}"] = Msg
-615
-616        return Msg(section0, section1, section2, section3, section4, section5, *args)
+            
525class Grib2Message:
+526    """
+527    Creation class for a GRIB2 message.
+528    """
+529    def __new__(self, section0: np.array = np.array([struct.unpack('>I',b'GRIB')[0],0,0,2,0]),
+530                      section1: np.array = np.zeros((13),dtype=np.int64),
+531                      section2: bytes = None,
+532                      section3: np.array = None,
+533                      section4: np.array = None,
+534                      section5: np.array = None, *args, **kwargs):
+535
+536        if np.all(section1==0):
+537            try:
+538                # Python >= 3.10
+539                section1[5:11] = datetime.datetime.fromtimestamp(0, datetime.UTC).timetuple()[:6]
+540            except(AttributeError):
+541                # Python < 3.10
+542                section1[5:11] = datetime.datetime.utcfromtimestamp(0).timetuple()[:6]
+543
+544        bases = list()
+545        if section3 is None:
+546            if 'gdtn' in kwargs.keys():
+547                gdtn = kwargs['gdtn']
+548                Gdt = templates.gdt_class_by_gdtn(gdtn)
+549                bases.append(Gdt)
+550                section3 = np.zeros((Gdt._len+5),dtype=np.int64)
+551                section3[4] = gdtn
+552            else:
+553                raise ValueError("Must provide GRIB2 Grid Definition Template Number or section 3 array")
+554        else:
+555            gdtn = section3[4]
+556            Gdt = templates.gdt_class_by_gdtn(gdtn)
+557            bases.append(Gdt)
+558
+559        if section4 is None:
+560            if 'pdtn' in kwargs.keys():
+561                pdtn = kwargs['pdtn']
+562                Pdt = templates.pdt_class_by_pdtn(pdtn)
+563                bases.append(Pdt)
+564                section4 = np.zeros((Pdt._len+2),dtype=np.int64)
+565                section4[1] = pdtn
+566            else:
+567                raise ValueError("Must provide GRIB2 Production Definition Template Number or section 4 array")
+568        else:
+569            pdtn = section4[1]
+570            Pdt = templates.pdt_class_by_pdtn(pdtn)
+571            bases.append(Pdt)
+572
+573        if section5 is None:
+574            if 'drtn' in kwargs.keys():
+575                drtn = kwargs['drtn']
+576                Drt = templates.drt_class_by_drtn(drtn)
+577                bases.append(Drt)
+578                section5 = np.zeros((Drt._len+2),dtype=np.int64)
+579                section5[1] = drtn
+580            else:
+581                raise ValueError("Must provide GRIB2 Data Representation Template Number or section 5 array")
+582        else:
+583            drtn = section5[1]
+584            Drt = templates.drt_class_by_drtn(drtn)
+585            bases.append(Drt)
+586
+587        # attempt to use existing Msg class if it has already been made with gdtn,pdtn,drtn combo
+588        try:
+589            Msg = _msg_class_store[f"{gdtn}:{pdtn}:{drtn}"]
+590        except KeyError:
+591            @dataclass(init=False, repr=False)
+592            class Msg(_Grib2Message, *bases):
+593                pass
+594            _msg_class_store[f"{gdtn}:{pdtn}:{drtn}"] = Msg
+595
+596        return Msg(section0, section1, section2, section3, section4, section5, *args)
 
@@ -1603,606 +1587,606 @@

Returns

-
 619@dataclass
- 620class _Grib2Message:
- 621    """GRIB2 Message base class"""
- 622    # GRIB2 Sections
- 623    section0: np.array = field(init=True,repr=False)
- 624    section1: np.array = field(init=True,repr=False)
- 625    section2: bytes = field(init=True,repr=False)
- 626    section3: np.array = field(init=True,repr=False)
- 627    section4: np.array = field(init=True,repr=False)
- 628    section5: np.array = field(init=True,repr=False)
- 629    bitMapFlag: templates.Grib2Metadata = field(init=True,repr=False,default=255)
- 630
- 631    # Section 0 looked up attributes
- 632    indicatorSection: np.array = field(init=False,repr=False,default=templates.IndicatorSection())
- 633    discipline: templates.Grib2Metadata = field(init=False,repr=False,default=templates.Discipline())
- 634
- 635    # Section 1 looked up attributes
- 636    identificationSection: np.array = field(init=False,repr=False,default=templates.IdentificationSection())
- 637    originatingCenter: templates.Grib2Metadata = field(init=False,repr=False,default=templates.OriginatingCenter())
- 638    originatingSubCenter: templates.Grib2Metadata = field(init=False,repr=False,default=templates.OriginatingSubCenter())
- 639    masterTableInfo: templates.Grib2Metadata = field(init=False,repr=False,default=templates.MasterTableInfo())
- 640    localTableInfo: templates.Grib2Metadata = field(init=False,repr=False,default=templates.LocalTableInfo())
- 641    significanceOfReferenceTime: templates.Grib2Metadata = field(init=False,repr=False,default=templates.SignificanceOfReferenceTime())
- 642    year: int = field(init=False,repr=False,default=templates.Year())
- 643    month: int = field(init=False,repr=False,default=templates.Month())
- 644    day: int = field(init=False,repr=False,default=templates.Day())
- 645    hour: int = field(init=False,repr=False,default=templates.Hour())
- 646    minute: int = field(init=False,repr=False,default=templates.Minute())
- 647    second: int = field(init=False,repr=False,default=templates.Second())
- 648    refDate: datetime.datetime = field(init=False,repr=False,default=templates.RefDate())
- 649    productionStatus: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ProductionStatus())
- 650    typeOfData: templates.Grib2Metadata = field(init=False,repr=False,default=templates.TypeOfData())
- 651
- 652    @property
- 653    def _isNDFD(self):
- 654        """Check if GRIB2 message is from NWS NDFD"""
- 655        return np.all(self.section1[0:2]==[8,65535])
- 656
- 657    # Section 3 looked up common attributes.  Other looked up attributes are available according
- 658    # to the Grid Definition Template.
- 659    gridDefinitionSection: np.array = field(init=False,repr=False,default=templates.GridDefinitionSection())
- 660    sourceOfGridDefinition: int = field(init=False,repr=False,default=templates.SourceOfGridDefinition())
- 661    numberOfDataPoints: int = field(init=False,repr=False,default=templates.NumberOfDataPoints())
- 662    interpretationOfListOfNumbers: templates.Grib2Metadata = field(init=False,repr=False,default=templates.InterpretationOfListOfNumbers())
- 663    gridDefinitionTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.GridDefinitionTemplateNumber())
- 664    gridDefinitionTemplate: list = field(init=False,repr=False,default=templates.GridDefinitionTemplate())
- 665    _earthparams: dict = field(init=False,repr=False,default=templates.EarthParams())
- 666    _dxsign: float = field(init=False,repr=False,default=templates.DxSign())
- 667    _dysign: float = field(init=False,repr=False,default=templates.DySign())
- 668    _llscalefactor: float = field(init=False,repr=False,default=templates.LLScaleFactor())
- 669    _lldivisor: float = field(init=False,repr=False,default=templates.LLDivisor())
- 670    _xydivisor: float = field(init=False,repr=False,default=templates.XYDivisor())
- 671    shapeOfEarth: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ShapeOfEarth())
- 672    earthShape: str = field(init=False,repr=False,default=templates.EarthShape())
- 673    earthRadius: float = field(init=False,repr=False,default=templates.EarthRadius())
- 674    earthMajorAxis: float = field(init=False,repr=False,default=templates.EarthMajorAxis())
- 675    earthMinorAxis: float = field(init=False,repr=False,default=templates.EarthMinorAxis())
- 676    resolutionAndComponentFlags: list = field(init=False,repr=False,default=templates.ResolutionAndComponentFlags())
- 677    ny: int = field(init=False,repr=False,default=templates.Ny())
- 678    nx: int = field(init=False,repr=False,default=templates.Nx())
- 679    scanModeFlags: list = field(init=False,repr=False,default=templates.ScanModeFlags())
- 680    projParameters: dict = field(init=False,repr=False,default=templates.ProjParameters())
- 681
- 682    # Section 4 attributes. Listed here are "extra" or "helper" attrs that use metadata from
- 683    # the given PDT, but not a formal part of the PDT.
- 684    productDefinitionTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ProductDefinitionTemplateNumber())
- 685    productDefinitionTemplate: np.array = field(init=False,repr=False,default=templates.ProductDefinitionTemplate())
- 686    _varinfo: list = field(init=False, repr=False, default=templates.VarInfo())
- 687    _fixedsfc1info: list = field(init=False, repr=False, default=templates.FixedSfc1Info())
- 688    _fixedsfc2info: list = field(init=False, repr=False, default=templates.FixedSfc2Info())
- 689    fullName: str = field(init=False, repr=False, default=templates.FullName())
- 690    units: str = field(init=False, repr=False, default=templates.Units())
- 691    shortName: str = field(init=False, repr=False, default=templates.ShortName())
- 692    leadTime: datetime.timedelta = field(init=False,repr=False,default=templates.LeadTime())
- 693    unitOfFirstFixedSurface: str = field(init=False,repr=False,default=templates.UnitOfFirstFixedSurface())
- 694    valueOfFirstFixedSurface: int = field(init=False,repr=False,default=templates.ValueOfFirstFixedSurface())
- 695    unitOfSecondFixedSurface: str = field(init=False,repr=False,default=templates.UnitOfSecondFixedSurface())
- 696    valueOfSecondFixedSurface: int = field(init=False,repr=False,default=templates.ValueOfSecondFixedSurface())
- 697    level: str = field(init=False, repr=False, default=templates.Level())
- 698    duration: datetime.timedelta = field(init=False,repr=False,default=templates.Duration())
- 699    validDate: datetime.datetime = field(init=False,repr=False,default=templates.ValidDate())
+            
 599@dataclass
+ 600class _Grib2Message:
+ 601    """GRIB2 Message base class"""
+ 602    # GRIB2 Sections
+ 603    section0: np.array = field(init=True,repr=False)
+ 604    section1: np.array = field(init=True,repr=False)
+ 605    section2: bytes = field(init=True,repr=False)
+ 606    section3: np.array = field(init=True,repr=False)
+ 607    section4: np.array = field(init=True,repr=False)
+ 608    section5: np.array = field(init=True,repr=False)
+ 609    bitMapFlag: templates.Grib2Metadata = field(init=True,repr=False,default=255)
+ 610
+ 611    # Section 0 looked up attributes
+ 612    indicatorSection: np.array = field(init=False,repr=False,default=templates.IndicatorSection())
+ 613    discipline: templates.Grib2Metadata = field(init=False,repr=False,default=templates.Discipline())
+ 614
+ 615    # Section 1 looked up attributes
+ 616    identificationSection: np.array = field(init=False,repr=False,default=templates.IdentificationSection())
+ 617    originatingCenter: templates.Grib2Metadata = field(init=False,repr=False,default=templates.OriginatingCenter())
+ 618    originatingSubCenter: templates.Grib2Metadata = field(init=False,repr=False,default=templates.OriginatingSubCenter())
+ 619    masterTableInfo: templates.Grib2Metadata = field(init=False,repr=False,default=templates.MasterTableInfo())
+ 620    localTableInfo: templates.Grib2Metadata = field(init=False,repr=False,default=templates.LocalTableInfo())
+ 621    significanceOfReferenceTime: templates.Grib2Metadata = field(init=False,repr=False,default=templates.SignificanceOfReferenceTime())
+ 622    year: int = field(init=False,repr=False,default=templates.Year())
+ 623    month: int = field(init=False,repr=False,default=templates.Month())
+ 624    day: int = field(init=False,repr=False,default=templates.Day())
+ 625    hour: int = field(init=False,repr=False,default=templates.Hour())
+ 626    minute: int = field(init=False,repr=False,default=templates.Minute())
+ 627    second: int = field(init=False,repr=False,default=templates.Second())
+ 628    refDate: datetime.datetime = field(init=False,repr=False,default=templates.RefDate())
+ 629    productionStatus: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ProductionStatus())
+ 630    typeOfData: templates.Grib2Metadata = field(init=False,repr=False,default=templates.TypeOfData())
+ 631
+ 632    @property
+ 633    def _isNDFD(self):
+ 634        """Check if GRIB2 message is from NWS NDFD"""
+ 635        return np.all(self.section1[0:2]==[8,65535])
+ 636
+ 637    # Section 3 looked up common attributes.  Other looked up attributes are available according
+ 638    # to the Grid Definition Template.
+ 639    gridDefinitionSection: np.array = field(init=False,repr=False,default=templates.GridDefinitionSection())
+ 640    sourceOfGridDefinition: int = field(init=False,repr=False,default=templates.SourceOfGridDefinition())
+ 641    numberOfDataPoints: int = field(init=False,repr=False,default=templates.NumberOfDataPoints())
+ 642    interpretationOfListOfNumbers: templates.Grib2Metadata = field(init=False,repr=False,default=templates.InterpretationOfListOfNumbers())
+ 643    gridDefinitionTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.GridDefinitionTemplateNumber())
+ 644    gridDefinitionTemplate: list = field(init=False,repr=False,default=templates.GridDefinitionTemplate())
+ 645    _earthparams: dict = field(init=False,repr=False,default=templates.EarthParams())
+ 646    _dxsign: float = field(init=False,repr=False,default=templates.DxSign())
+ 647    _dysign: float = field(init=False,repr=False,default=templates.DySign())
+ 648    _llscalefactor: float = field(init=False,repr=False,default=templates.LLScaleFactor())
+ 649    _lldivisor: float = field(init=False,repr=False,default=templates.LLDivisor())
+ 650    _xydivisor: float = field(init=False,repr=False,default=templates.XYDivisor())
+ 651    shapeOfEarth: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ShapeOfEarth())
+ 652    earthShape: str = field(init=False,repr=False,default=templates.EarthShape())
+ 653    earthRadius: float = field(init=False,repr=False,default=templates.EarthRadius())
+ 654    earthMajorAxis: float = field(init=False,repr=False,default=templates.EarthMajorAxis())
+ 655    earthMinorAxis: float = field(init=False,repr=False,default=templates.EarthMinorAxis())
+ 656    resolutionAndComponentFlags: list = field(init=False,repr=False,default=templates.ResolutionAndComponentFlags())
+ 657    ny: int = field(init=False,repr=False,default=templates.Ny())
+ 658    nx: int = field(init=False,repr=False,default=templates.Nx())
+ 659    scanModeFlags: list = field(init=False,repr=False,default=templates.ScanModeFlags())
+ 660    projParameters: dict = field(init=False,repr=False,default=templates.ProjParameters())
+ 661
+ 662    # Section 4 attributes. Listed here are "extra" or "helper" attrs that use metadata from
+ 663    # the given PDT, but not a formal part of the PDT.
+ 664    productDefinitionTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ProductDefinitionTemplateNumber())
+ 665    productDefinitionTemplate: np.array = field(init=False,repr=False,default=templates.ProductDefinitionTemplate())
+ 666    _varinfo: list = field(init=False, repr=False, default=templates.VarInfo())
+ 667    _fixedsfc1info: list = field(init=False, repr=False, default=templates.FixedSfc1Info())
+ 668    _fixedsfc2info: list = field(init=False, repr=False, default=templates.FixedSfc2Info())
+ 669    fullName: str = field(init=False, repr=False, default=templates.FullName())
+ 670    units: str = field(init=False, repr=False, default=templates.Units())
+ 671    shortName: str = field(init=False, repr=False, default=templates.ShortName())
+ 672    leadTime: datetime.timedelta = field(init=False,repr=False,default=templates.LeadTime())
+ 673    unitOfFirstFixedSurface: str = field(init=False,repr=False,default=templates.UnitOfFirstFixedSurface())
+ 674    valueOfFirstFixedSurface: int = field(init=False,repr=False,default=templates.ValueOfFirstFixedSurface())
+ 675    unitOfSecondFixedSurface: str = field(init=False,repr=False,default=templates.UnitOfSecondFixedSurface())
+ 676    valueOfSecondFixedSurface: int = field(init=False,repr=False,default=templates.ValueOfSecondFixedSurface())
+ 677    level: str = field(init=False, repr=False, default=templates.Level())
+ 678    duration: datetime.timedelta = field(init=False,repr=False,default=templates.Duration())
+ 679    validDate: datetime.datetime = field(init=False,repr=False,default=templates.ValidDate())
+ 680
+ 681    # Section 5 looked up common attributes.  Other looked up attributes are available according
+ 682    # to the Data Representation Template.
+ 683    numberOfPackedValues: int = field(init=False,repr=False,default=templates.NumberOfPackedValues())
+ 684    dataRepresentationTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.DataRepresentationTemplateNumber())
+ 685    dataRepresentationTemplate: list = field(init=False,repr=False,default=templates.DataRepresentationTemplate())
+ 686    typeOfValues: templates.Grib2Metadata = field(init=False,repr=False,default=templates.TypeOfValues())
+ 687
+ 688
+ 689    def __post_init__(self):
+ 690        """Set some attributes after init"""
+ 691        self._msgnum = -1
+ 692        self._deflist = None
+ 693        self._coordlist = None
+ 694        self._signature = self._generate_signature()
+ 695        try:
+ 696            self._sha1_section3 = hashlib.sha1(self.section3).hexdigest()
+ 697        except(TypeError):
+ 698            pass
+ 699        self.bitMapFlag = templates.Grib2Metadata(self.bitMapFlag,table='6.0')
  700
- 701    # Section 5 looked up common attributes.  Other looked up attributes are available according
- 702    # to the Data Representation Template.
- 703    numberOfPackedValues: int = field(init=False,repr=False,default=templates.NumberOfPackedValues())
- 704    dataRepresentationTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.DataRepresentationTemplateNumber())
- 705    dataRepresentationTemplate: list = field(init=False,repr=False,default=templates.DataRepresentationTemplate())
- 706    typeOfValues: templates.Grib2Metadata = field(init=False,repr=False,default=templates.TypeOfValues())
+ 701
+ 702    @property
+ 703    def gdtn(self):
+ 704        """Return Grid Definition Template Number"""
+ 705        return self.section3[4]
+ 706
  707
- 708
- 709    def __post_init__(self):
- 710        """Set some attributes after init"""
- 711        self._msgnum = -1
- 712        self._deflist = None
- 713        self._coordlist = None
- 714        self._signature = self._generate_signature()
- 715        try:
- 716            self._sha1_section3 = hashlib.sha1(self.section3).hexdigest()
- 717        except(TypeError):
- 718            pass
- 719        self.bitMapFlag = templates.Grib2Metadata(self.bitMapFlag,table='6.0')
- 720
- 721
- 722    @property
- 723    def gdtn(self):
- 724        """Return Grid Definition Template Number"""
- 725        return self.section3[4]
- 726
- 727
- 728    @property
- 729    def gdt(self):
- 730        """Return Grid Definition Template"""
- 731        return self.gridDefinitionTemplate
- 732
- 733
- 734    @property
- 735    def pdtn(self):
- 736        """Return Product Definition Template Number"""
- 737        return self.section4[1]
- 738
- 739
- 740    @property
- 741    def pdt(self):
- 742        """Return Product Definition Template"""
- 743        return self.productDefinitionTemplate
- 744
- 745
- 746    @property
- 747    def drtn(self):
- 748        """Return Data Representation Template Number"""
- 749        return self.section5[1]
- 750
- 751
- 752    @property
- 753    def drt(self):
- 754        """Return Data Representation Template"""
- 755        return self.dataRepresentationTemplate
+ 708    @property
+ 709    def gdt(self):
+ 710        """Return Grid Definition Template"""
+ 711        return self.gridDefinitionTemplate
+ 712
+ 713
+ 714    @property
+ 715    def pdtn(self):
+ 716        """Return Product Definition Template Number"""
+ 717        return self.section4[1]
+ 718
+ 719
+ 720    @property
+ 721    def pdt(self):
+ 722        """Return Product Definition Template"""
+ 723        return self.productDefinitionTemplate
+ 724
+ 725
+ 726    @property
+ 727    def drtn(self):
+ 728        """Return Data Representation Template Number"""
+ 729        return self.section5[1]
+ 730
+ 731
+ 732    @property
+ 733    def drt(self):
+ 734        """Return Data Representation Template"""
+ 735        return self.dataRepresentationTemplate
+ 736
+ 737
+ 738    @property
+ 739    def pdy(self):
+ 740        """Return the PDY ('YYYYMMDD')"""
+ 741        return ''.join([str(i) for i in self.section1[5:8]])
+ 742
+ 743
+ 744    @property
+ 745    def griddef(self):
+ 746        """Return a Grib2GridDef instance for a GRIB2 message"""
+ 747        return Grib2GridDef.from_section3(self.section3)
+ 748
+ 749
+ 750    def __repr__(self):
+ 751        info = ''
+ 752        for sect in [0,1,3,4,5,6]:
+ 753            for k,v in self.attrs_by_section(sect,values=True).items():
+ 754                info += f'Section {sect}: {k} = {v}\n'
+ 755        return info
  756
  757
- 758    @property
- 759    def pdy(self):
- 760        """Return the PDY ('YYYYMMDD')"""
- 761        return ''.join([str(i) for i in self.section1[5:8]])
+ 758    def __str__(self):
+ 759        return (f'{self._msgnum}:d={self.refDate}:{self.shortName}:'
+ 760                f'{self.fullName} ({self.units}):{self.level}:'
+ 761                f'{self.leadTime}')
  762
  763
- 764    @property
- 765    def griddef(self):
- 766        """Return a Grib2GridDef instance for a GRIB2 message"""
- 767        return Grib2GridDef.from_section3(self.section3)
- 768
+ 764    def _generate_signature(self):
+ 765        """Generature SHA-1 hash string from GRIB2 integer sections"""
+ 766        return hashlib.sha1(np.concatenate((self.section0,self.section1,
+ 767                                            self.section3,self.section4,
+ 768                                            self.section5))).hexdigest()
  769
- 770    def __repr__(self):
- 771        info = ''
- 772        for sect in [0,1,3,4,5,6]:
- 773            for k,v in self.attrs_by_section(sect,values=True).items():
- 774                info += f'Section {sect}: {k} = {v}\n'
- 775        return info
- 776
- 777
- 778    def __str__(self):
- 779        return (f'{self._msgnum}:d={self.refDate}:{self.shortName}:'
- 780                f'{self.fullName} ({self.units}):{self.level}:'
- 781                f'{self.leadTime}')
+ 770
+ 771    def attrs_by_section(self, sect, values=False):
+ 772        """
+ 773        Provide a tuple of attribute names for the given GRIB2 section.
+ 774
+ 775        Parameters
+ 776        ----------
+ 777        **`sect : int`**
+ 778            The GRIB2 section number.
+ 779
+ 780        **`values : bool, optional`**
+ 781            Optional (default is `False`) arugment to return attributes values.
  782
- 783
- 784    def _generate_signature(self):
- 785        """Generature SHA-1 hash string from GRIB2 integer sections"""
- 786        return hashlib.sha1(np.concatenate((self.section0,self.section1,
- 787                                            self.section3,self.section4,
- 788                                            self.section5))).hexdigest()
- 789
- 790
- 791    def attrs_by_section(self, sect, values=False):
- 792        """
- 793        Provide a tuple of attribute names for the given GRIB2 section.
- 794
- 795        Parameters
- 796        ----------
- 797        **`sect : int`**
- 798            The GRIB2 section number.
- 799
- 800        **`values : bool, optional`**
- 801            Optional (default is `False`) arugment to return attributes values.
- 802
- 803        Returns
- 804        -------
- 805        A List attribute names or Dict if `values = True`.
- 806        """
- 807        if sect in {0,1,6}:
- 808            attrs = templates._section_attrs[sect]
- 809        elif sect in {3,4,5}:
- 810            def _find_class_index(n):
- 811                _key = {3:'Grid', 4:'Product', 5:'Data'}
- 812                for i,c in enumerate(self.__class__.__mro__):
- 813                    if _key[n] in c.__name__:
- 814                        return i
- 815                else:
- 816                    return []
- 817            if sys.version_info.minor <= 8:
- 818                attrs = templates._section_attrs[sect]+\
- 819                        [a for a in dir(self.__class__.__mro__[_find_class_index(sect)]) if not a.startswith('_')]
- 820            else:
- 821                attrs = templates._section_attrs[sect]+\
- 822                        self.__class__.__mro__[_find_class_index(sect)]._attrs
- 823        else:
- 824            attrs = []
- 825        if values:
- 826            return {k:getattr(self,k) for k in attrs}
- 827        else:
- 828            return attrs
- 829
- 830
- 831    def pack(self):
- 832        """
- 833        Packs GRIB2 section data into a binary message.  It is the user's responsibility
- 834        to populate the GRIB2 section information with appropriate metadata.
- 835        """
- 836        # Create beginning of packed binary message with section 0 and 1 data.
- 837        self._sections = []
- 838        self._msg,self._pos = g2clib.grib2_create(self.indicatorSection[2:4],self.identificationSection)
- 839        self._sections += [0,1]
+ 783        Returns
+ 784        -------
+ 785        A List attribute names or Dict if `values = True`.
+ 786        """
+ 787        if sect in {0,1,6}:
+ 788            attrs = templates._section_attrs[sect]
+ 789        elif sect in {3,4,5}:
+ 790            def _find_class_index(n):
+ 791                _key = {3:'Grid', 4:'Product', 5:'Data'}
+ 792                for i,c in enumerate(self.__class__.__mro__):
+ 793                    if _key[n] in c.__name__:
+ 794                        return i
+ 795                else:
+ 796                    return []
+ 797            if sys.version_info.minor <= 8:
+ 798                attrs = templates._section_attrs[sect]+\
+ 799                        [a for a in dir(self.__class__.__mro__[_find_class_index(sect)]) if not a.startswith('_')]
+ 800            else:
+ 801                attrs = templates._section_attrs[sect]+\
+ 802                        self.__class__.__mro__[_find_class_index(sect)]._attrs
+ 803        else:
+ 804            attrs = []
+ 805        if values:
+ 806            return {k:getattr(self,k) for k in attrs}
+ 807        else:
+ 808            return attrs
+ 809
+ 810
+ 811    def pack(self):
+ 812        """
+ 813        Packs GRIB2 section data into a binary message.  It is the user's responsibility
+ 814        to populate the GRIB2 section information with appropriate metadata.
+ 815        """
+ 816        # Create beginning of packed binary message with section 0 and 1 data.
+ 817        self._sections = []
+ 818        self._msg,self._pos = g2clib.grib2_create(self.indicatorSection[2:4],self.identificationSection)
+ 819        self._sections += [0,1]
+ 820
+ 821        # Add section 2 if present.
+ 822        if isinstance(self.section2,bytes) and len(self.section2) > 0:
+ 823            self._msg,self._pos = g2clib.grib2_addlocal(self._msg,self.section2)
+ 824            self._sections.append(2)
+ 825
+ 826        # Add section 3.
+ 827        self.section3[1] = self.nx * self.ny
+ 828        self._msg,self._pos = g2clib.grib2_addgrid(self._msg,self.gridDefinitionSection,
+ 829                                                   self.gridDefinitionTemplate,
+ 830                                                   self._deflist)
+ 831        self._sections.append(3)
+ 832
+ 833        # Prepare data.
+ 834        field = np.copy(self.data)
+ 835        if self.scanModeFlags is not None:
+ 836            if self.scanModeFlags[3]:
+ 837                fieldsave = field.astype('f') # Casting makes a copy
+ 838                field[1::2,:] = fieldsave[1::2,::-1]
+ 839        fld = field.astype('f')
  840
- 841        # Add section 2 if present.
- 842        if isinstance(self.section2,bytes) and len(self.section2) > 0:
- 843            self._msg,self._pos = g2clib.grib2_addlocal(self._msg,self.section2)
- 844            self._sections.append(2)
- 845
- 846        # Add section 3.
- 847        self.section3[1] = self.nx * self.ny
- 848        self._msg,self._pos = g2clib.grib2_addgrid(self._msg,self.gridDefinitionSection,
- 849                                                   self.gridDefinitionTemplate,
- 850                                                   self._deflist)
- 851        self._sections.append(3)
- 852
- 853        # Prepare data.
- 854        field = np.copy(self.data)
- 855        if self.scanModeFlags is not None:
- 856            if self.scanModeFlags[3]:
- 857                fieldsave = field.astype('f') # Casting makes a copy
- 858                field[1::2,:] = fieldsave[1::2,::-1]
- 859        fld = field.astype('f')
- 860
- 861        # Prepare bitmap, if necessary
- 862        bitmapflag = self.bitMapFlag.value
- 863        if bitmapflag == 0:
- 864            bmap = np.ravel(np.where(np.isnan(fld),0,1)).astype(DEFAULT_NUMPY_INT)
- 865        else:
- 866            bmap = None
- 867
- 868        # Prepare optional coordinate list
- 869        if self._coordlist is not None:
- 870            crdlist = np.array(self._coordlist,'f')
- 871        else:
- 872            crdlist = None
+ 841        # Prepare bitmap, if necessary
+ 842        bitmapflag = self.bitMapFlag.value
+ 843        if bitmapflag == 0:
+ 844            bmap = np.ravel(np.where(np.isnan(fld),0,1)).astype(DEFAULT_NUMPY_INT)
+ 845        else:
+ 846            bmap = None
+ 847
+ 848        # Prepare optional coordinate list
+ 849        if self._coordlist is not None:
+ 850            crdlist = np.array(self._coordlist,'f')
+ 851        else:
+ 852            crdlist = None
+ 853
+ 854        # Prepare data for packing if nans are present
+ 855        fld = np.ravel(fld)
+ 856        if np.isnan(fld).any() and hasattr(self,'_missvalmap'):
+ 857            fld = np.where(self._missvalmap==1,self.priMissingValue,fld)
+ 858            fld = np.where(self._missvalmap==2,self.secMissingValue,fld)
+ 859
+ 860        # Add sections 4, 5, 6 (if present), and 7.
+ 861        self._msg,self._pos = g2clib.grib2_addfield(self._msg,self.pdtn,
+ 862                                                    self.productDefinitionTemplate,
+ 863                                                    crdlist,
+ 864                                                    self.drtn,
+ 865                                                    self.dataRepresentationTemplate,
+ 866                                                    fld,
+ 867                                                    bitmapflag,
+ 868                                                    bmap)
+ 869        self._sections.append(4)
+ 870        self._sections.append(5)
+ 871        if bmap is not None: self._sections.append(6)
+ 872        self._sections.append(7)
  873
- 874        # Prepare data for packing if nans are present
- 875        fld = np.ravel(fld)
- 876        if np.isnan(fld).any() and hasattr(self,'_missvalmap'):
- 877            fld = np.where(self._missvalmap==1,self.priMissingValue,fld)
- 878            fld = np.where(self._missvalmap==2,self.secMissingValue,fld)
+ 874        # Finalize GRIB2 message with section 8.
+ 875        self._msg, self._pos = g2clib.grib2_end(self._msg)
+ 876        self._sections.append(8)
+ 877        self.section0[-1] = len(self._msg)
+ 878
  879
- 880        # Add sections 4, 5, 6 (if present), and 7.
- 881        self._msg,self._pos = g2clib.grib2_addfield(self._msg,self.pdtn,
- 882                                                    self.productDefinitionTemplate,
- 883                                                    crdlist,
- 884                                                    self.drtn,
- 885                                                    self.dataRepresentationTemplate,
- 886                                                    fld,
- 887                                                    bitmapflag,
- 888                                                    bmap)
- 889        self._sections.append(4)
- 890        self._sections.append(5)
- 891        if bmap is not None: self._sections.append(6)
- 892        self._sections.append(7)
- 893
- 894        # Finalize GRIB2 message with section 8.
- 895        self._msg, self._pos = g2clib.grib2_end(self._msg)
- 896        self._sections.append(8)
- 897        self.section0[-1] = len(self._msg)
- 898
- 899
- 900    @property
- 901    def data(self) -> np.array:
- 902        """
- 903        Accessing the data attribute loads data into memmory
- 904        """
- 905        if not hasattr(self,'_auto_nans'): self._auto_nans = _AUTO_NANS
- 906        if hasattr(self,'_data'):
- 907            if self._auto_nans != _AUTO_NANS:
- 908                self._data = self._ondiskarray
- 909            if isinstance(self._data, Grib2MessageOnDiskArray):
- 910                self._ondiskarray = self._data
- 911                self._data = np.asarray(self._data)
- 912            return self._data
- 913        raise ValueError
+ 880    @property
+ 881    def data(self) -> np.array:
+ 882        """
+ 883        Accessing the data attribute loads data into memmory
+ 884        """
+ 885        if not hasattr(self,'_auto_nans'): self._auto_nans = _AUTO_NANS
+ 886        if hasattr(self,'_data'):
+ 887            if self._auto_nans != _AUTO_NANS:
+ 888                self._data = self._ondiskarray
+ 889            if isinstance(self._data, Grib2MessageOnDiskArray):
+ 890                self._ondiskarray = self._data
+ 891                self._data = np.asarray(self._data)
+ 892            return self._data
+ 893        raise ValueError
+ 894
+ 895    @data.setter
+ 896    def data(self, data):
+ 897        if not isinstance(data, np.ndarray):
+ 898            raise ValueError('Grib2Message data only supports numpy arrays')
+ 899        self._data = data
+ 900
+ 901
+ 902    def __getitem__(self, item):
+ 903        return self.data[item]
+ 904
+ 905
+ 906    def __setitem__(self, item):
+ 907        raise NotImplementedError('assignment of data not supported via setitem')
+ 908
+ 909
+ 910    def latlons(self, *args, **kwrgs):
+ 911        """Alias for `grib2io.Grib2Message.grid` method"""
+ 912        return self.grid(*args, **kwrgs)
+ 913
  914
- 915    @data.setter
- 916    def data(self, data):
- 917        if not isinstance(data, np.ndarray):
- 918            raise ValueError('Grib2Message data only supports numpy arrays')
- 919        self._data = data
- 920
+ 915    def grid(self, unrotate=True):
+ 916        """
+ 917        Return lats,lons (in degrees) of grid.
+ 918
+ 919        Currently can handle reg. lat/lon,cglobal Gaussian, mercator, stereographic, 
+ 920        lambert conformal, albers equal-area, space-view and azimuthal equidistant grids.
  921
- 922    def __getitem__(self, item):
- 923        return self.data[item]
- 924
- 925
- 926    def __setitem__(self, item):
- 927        raise NotImplementedError('assignment of data not supported via setitem')
- 928
- 929
- 930    def latlons(self, *args, **kwrgs):
- 931        """Alias for `grib2io.Grib2Message.grid` method"""
- 932        return self.grid(*args, **kwrgs)
- 933
- 934
- 935    def grid(self, unrotate=True):
- 936        """
- 937        Return lats,lons (in degrees) of grid.
- 938
- 939        Currently can handle reg. lat/lon,cglobal Gaussian, mercator, stereographic, 
- 940        lambert conformal, albers equal-area, space-view and azimuthal equidistant grids.
- 941
- 942        Parameters
- 943        ----------
- 944        **`unrotate : bool`**
- 945            If `True` [DEFAULT], and grid is rotated lat/lon, then unrotate the grid,
- 946            otherwise `False`, do not.
- 947
- 948        Returns
- 949        -------
- 950        **`lats, lons : numpy.ndarray`**
- 951            Returns two numpy.ndarrays with dtype=numpy.float32 of grid latitudes and
- 952            longitudes in units of degrees.
- 953        """
- 954        if self._sha1_section3 in _latlon_datastore.keys():
- 955            return (_latlon_datastore[self._sha1_section3]['latitude'],
- 956                    _latlon_datastore[self._sha1_section3]['longitude'])
- 957        gdtn = self.gridDefinitionTemplateNumber.value
- 958        gdtmpl = self.gridDefinitionTemplate
- 959        reggrid = self.gridDefinitionSection[2] == 0 # This means regular 2-d grid
- 960        if gdtn == 0:
- 961            # Regular lat/lon grid
- 962            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
- 963            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
- 964            dlon = self.gridlengthXDirection
- 965            dlat = self.gridlengthYDirection
- 966            if lon2 < lon1 and dlon < 0: lon1 = -lon1
- 967            lats = np.linspace(lat1,lat2,self.ny)
- 968            if reggrid:
- 969                lons = np.linspace(lon1,lon2,self.nx)
- 970            else:
- 971                lons = np.linspace(lon1,lon2,self.ny*2)
- 972            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
- 973        elif gdtn == 1: # Rotated Lat/Lon grid
- 974            pj = pyproj.Proj(self.projParameters)
- 975            lat1,lon1 = self.latitudeFirstGridpoint,self.longitudeFirstGridpoint
- 976            lat2,lon2 = self.latitudeLastGridpoint,self.longitudeLastGridpoint
- 977            if lon1 > 180.0: lon1 -= 360.0
- 978            if lon2 > 180.0: lon2 -= 360.0
- 979            lats = np.linspace(lat1,lat2,self.ny)
- 980            lons = np.linspace(lon1,lon2,self.nx)
- 981            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
- 982            if unrotate:
- 983                from grib2io.utils import rotated_grid
- 984                lats,lons = rotated_grid.unrotate(lats,lons,self.anglePoleRotation,
- 985                                                  self.latitudeSouthernPole,
- 986                                                  self.longitudeSouthernPole)
- 987        elif gdtn == 40: # Gaussian grid (only works for global!)
- 988            from grib2io.utils.gauss_grid import gaussian_latitudes
- 989            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
- 990            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
- 991            nlats = self.ny
- 992            if not reggrid: # Reduced Gaussian grid.
- 993                nlons = 2*nlats
- 994                dlon = 360./nlons
- 995            else:
- 996                nlons = self.nx
- 997                dlon = self.gridlengthXDirection
- 998            lons = np.linspace(lon1,lon2,nlons)
- 999            # Compute Gaussian lats (north to south)
-1000            lats = gaussian_latitudes(nlats)
-1001            if lat1 < lat2:  # reverse them if necessary
-1002                lats = lats[::-1]
-1003            lons,lats = np.meshgrid(lons,lats)
-1004        elif gdtn in {10,20,30,31,110}:
-1005            # Mercator, Lambert Conformal, Stereographic, Albers Equal Area, Azimuthal Equidistant
-1006            dx,dy = self.gridlengthXDirection, self.gridlengthYDirection
-1007            lon1,lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
-1008            pj = pyproj.Proj(self.projParameters)
-1009            llcrnrx, llcrnry = pj(lon1,lat1)
-1010            x = llcrnrx+dx*np.arange(self.nx)
-1011            y = llcrnry+dy*np.arange(self.ny)
-1012            x,y = np.meshgrid(x, y)
-1013            lons,lats = pj(x, y, inverse=True)
-1014        elif gdtn == 90:
-1015            # Satellite Projection
-1016            dx = self.gridlengthXDirection
-1017            dy = self.gridlengthYDirection
-1018            pj = pyproj.Proj(self.projParameters)
-1019            x = dx*np.indices((self.ny,self.nx),'f')[1,:,:]
-1020            x -= 0.5*x.max()
-1021            y = dy*np.indices((self.ny,self.nx),'f')[0,:,:]
-1022            y -= 0.5*y.max()
-1023            lons,lats = pj(x,y,inverse=True)
-1024            # Set lons,lats to 1.e30 where undefined
-1025            abslons = np.fabs(lons)
-1026            abslats = np.fabs(lats)
-1027            lons = np.where(abslons < 1.e20, lons, 1.e30)
-1028            lats = np.where(abslats < 1.e20, lats, 1.e30)
-1029        elif gdtn == 32769:
-1030            # Special NCEP Grid, Rotated Lat/Lon, Arakawa E-Grid (Non-Staggered)
-1031            from grib2io.utils import arakawa_rotated_grid
-1032            from grib2io.utils.rotated_grid import DEG2RAD
-1033            di, dj = 0.0, 0.0
-1034            do_180 = False
-1035            idir = 1 if self.scanModeFlags[0] == 0 else -1
-1036            jdir = -1 if self.scanModeFlags[1] == 0 else 1
-1037            grid_oriented = 0 if self.resolutionAndComponentFlags[4] == 0 else 1
-1038            do_rot = 1 if grid_oriented == 1 else 0
-1039            la1 = self.latitudeFirstGridpoint
-1040            lo1 = self.longitudeFirstGridpoint
-1041            clon = self.longitudeCenterGridpoint
-1042            clat = self.latitudeCenterGridpoint
-1043            lasp = clat - 90.0
-1044            losp = clon
-1045            llat, llon = arakawa_rotated_grid.ll2rot(la1,lo1,lasp,losp)
-1046            la2, lo2 = arakawa_rotated_grid.rot2ll(-llat,-llon,lasp,losp)
-1047            rlat = -llat
-1048            rlon = -llon
-1049            if self.nx == 1:
-1050                di = 0.0
-1051            elif idir == 1:
-1052                ti = rlon
-1053                while ti < llon:
-1054                    ti += 360.0
-1055                di = (ti - llon)/float(self.nx-1)
-1056            else:
-1057                ti = llon
-1058                while ti < rlon:
-1059                    ti += 360.0
-1060                di = (ti - rlon)/float(self.nx-1)
-1061            if self.ny == 1:
-1062               dj = 0.0
-1063            else:
-1064                dj = (rlat - llat)/float(self.ny-1)
-1065                if dj < 0.0:
-1066                    dj = -dj
-1067            if idir == 1:
-1068                if llon > rlon:
-1069                    llon -= 360.0
-1070                if llon < 0 and rlon > 0:
-1071                    do_180 = True
-1072            else:
-1073                if rlon > llon:
-1074                    rlon -= 360.0
-1075                if rlon < 0 and llon > 0:
-1076                    do_180 = True
-1077            xlat1d = llat + (np.arange(self.ny)*jdir*dj)
-1078            xlon1d = llon + (np.arange(self.nx)*idir*di)
-1079            xlons, xlats = np.meshgrid(xlon1d,xlat1d)
-1080            rot2ll_vectorized = np.vectorize(arakawa_rotated_grid.rot2ll)
-1081            lats, lons = rot2ll_vectorized(xlats,xlons,lasp,losp)
-1082            if do_180:
-1083                lons = np.where(lons>180.0,lons-360.0,lons)
-1084            vector_rotation_angles_vectorized = np.vectorize(arakawa_rotated_grid.vector_rotation_angles)
-1085            rots = vector_rotation_angles_vectorized(lats, lons, clat, losp, xlats)
-1086            del xlat1d, xlon1d, xlats, xlons
-1087        else:
-1088            raise ValueError('Unsupported grid')
-1089
-1090        _latlon_datastore[self._sha1_section3] = dict(latitude=lats,longitude=lons)
-1091        try:
-1092            _latlon_datastore[self._sha1_section3]['vector_rotation_angles'] = rots
-1093        except(NameError):
-1094            pass
-1095
-1096        return lats, lons
-1097
-1098
-1099    def map_keys(self):
-1100        """
-1101        Returns an unpacked data grid where integer grid values are replaced with
-1102        a string.in which the numeric value is a representation of.
-1103
-1104        These types of fields are cateogrical or classifications where data values 
-1105        do not represent an observable or predictable physical quantity. An example 
-1106        of such a field field would be [Dominant Precipitation Type -
-1107        DPTYPE](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-201.shtml)
-1108
-1109        Returns
-1110        -------
-1111        **`numpy.ndarray`** of string values per element.
-1112        """
-1113        hold_auto_nans = _AUTO_NANS
-1114        set_auto_nans(False)
-1115        if (np.all(self.section1[0:2]==[7,14]) and self.shortName == 'PWTHER') or \
-1116        (np.all(self.section1[0:2]==[8,65535]) and self.shortName == 'WX'):
-1117            keys = utils.decode_wx_strings(self.section2)
-1118            if hasattr(self,'priMissingValue') and self.priMissingValue not in [None,0]:
-1119                keys[int(self.priMissingValue)] = 'Missing'
-1120            if hasattr(self,'secMissingValue') and self.secMissingValue not in [None,0]:
-1121                keys[int(self.secMissingValue)] = 'Missing'
-1122            u,inv = np.unique(self.data,return_inverse=True)
-1123            fld = np.array([keys[x] for x in u])[inv].reshape(self.data.shape)
-1124        else:
-1125            # For data whose units are defined in a code table (i.e. classification or mask)
-1126            tblname = re.findall(r'\d\.\d+',self.units,re.IGNORECASE)[0]
-1127            fld = self.data.astype(np.int32).astype(str)
-1128            tbl = tables.get_table(tblname,expand=True)
-1129            for val in np.unique(fld):
-1130                fld = np.where(fld==val,tbl[val],fld)
-1131        set_auto_nans(hold_auto_nans)
-1132        return fld
-1133
-1134
-1135    def to_bytes(self, validate=True):
-1136        """
-1137        Return packed GRIB2 message in bytes format.
-1138
-1139        This will be Useful for exporting data in non-file formats. For example, 
-1140        can be used to output grib data directly to S3 using the boto3 client 
-1141        without the need to write a temporary file to upload first.
-1142
-1143        Parameters
-1144        ----------
-1145        **`validate : bool, optional`**
-1146            If `True` (DEFAULT), validates first/last four bytes for proper
-1147            formatting, else returns None. If `False`, message is output as is.
+ 922        Parameters
+ 923        ----------
+ 924        **`unrotate : bool`**
+ 925            If `True` [DEFAULT], and grid is rotated lat/lon, then unrotate the grid,
+ 926            otherwise `False`, do not.
+ 927
+ 928        Returns
+ 929        -------
+ 930        **`lats, lons : numpy.ndarray`**
+ 931            Returns two numpy.ndarrays with dtype=numpy.float32 of grid latitudes and
+ 932            longitudes in units of degrees.
+ 933        """
+ 934        if self._sha1_section3 in _latlon_datastore.keys():
+ 935            return (_latlon_datastore[self._sha1_section3]['latitude'],
+ 936                    _latlon_datastore[self._sha1_section3]['longitude'])
+ 937        gdtn = self.gridDefinitionTemplateNumber.value
+ 938        gdtmpl = self.gridDefinitionTemplate
+ 939        reggrid = self.gridDefinitionSection[2] == 0 # This means regular 2-d grid
+ 940        if gdtn == 0:
+ 941            # Regular lat/lon grid
+ 942            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
+ 943            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
+ 944            dlon = self.gridlengthXDirection
+ 945            dlat = self.gridlengthYDirection
+ 946            if lon2 < lon1 and dlon < 0: lon1 = -lon1
+ 947            lats = np.linspace(lat1,lat2,self.ny)
+ 948            if reggrid:
+ 949                lons = np.linspace(lon1,lon2,self.nx)
+ 950            else:
+ 951                lons = np.linspace(lon1,lon2,self.ny*2)
+ 952            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
+ 953        elif gdtn == 1: # Rotated Lat/Lon grid
+ 954            pj = pyproj.Proj(self.projParameters)
+ 955            lat1,lon1 = self.latitudeFirstGridpoint,self.longitudeFirstGridpoint
+ 956            lat2,lon2 = self.latitudeLastGridpoint,self.longitudeLastGridpoint
+ 957            if lon1 > 180.0: lon1 -= 360.0
+ 958            if lon2 > 180.0: lon2 -= 360.0
+ 959            lats = np.linspace(lat1,lat2,self.ny)
+ 960            lons = np.linspace(lon1,lon2,self.nx)
+ 961            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
+ 962            if unrotate:
+ 963                from grib2io.utils import rotated_grid
+ 964                lats,lons = rotated_grid.unrotate(lats,lons,self.anglePoleRotation,
+ 965                                                  self.latitudeSouthernPole,
+ 966                                                  self.longitudeSouthernPole)
+ 967        elif gdtn == 40: # Gaussian grid (only works for global!)
+ 968            from grib2io.utils.gauss_grid import gaussian_latitudes
+ 969            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
+ 970            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
+ 971            nlats = self.ny
+ 972            if not reggrid: # Reduced Gaussian grid.
+ 973                nlons = 2*nlats
+ 974                dlon = 360./nlons
+ 975            else:
+ 976                nlons = self.nx
+ 977                dlon = self.gridlengthXDirection
+ 978            lons = np.linspace(lon1,lon2,nlons)
+ 979            # Compute Gaussian lats (north to south)
+ 980            lats = gaussian_latitudes(nlats)
+ 981            if lat1 < lat2:  # reverse them if necessary
+ 982                lats = lats[::-1]
+ 983            lons,lats = np.meshgrid(lons,lats)
+ 984        elif gdtn in {10,20,30,31,110}:
+ 985            # Mercator, Lambert Conformal, Stereographic, Albers Equal Area, Azimuthal Equidistant
+ 986            dx,dy = self.gridlengthXDirection, self.gridlengthYDirection
+ 987            lon1,lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
+ 988            pj = pyproj.Proj(self.projParameters)
+ 989            llcrnrx, llcrnry = pj(lon1,lat1)
+ 990            x = llcrnrx+dx*np.arange(self.nx)
+ 991            y = llcrnry+dy*np.arange(self.ny)
+ 992            x,y = np.meshgrid(x, y)
+ 993            lons,lats = pj(x, y, inverse=True)
+ 994        elif gdtn == 90:
+ 995            # Satellite Projection
+ 996            dx = self.gridlengthXDirection
+ 997            dy = self.gridlengthYDirection
+ 998            pj = pyproj.Proj(self.projParameters)
+ 999            x = dx*np.indices((self.ny,self.nx),'f')[1,:,:]
+1000            x -= 0.5*x.max()
+1001            y = dy*np.indices((self.ny,self.nx),'f')[0,:,:]
+1002            y -= 0.5*y.max()
+1003            lons,lats = pj(x,y,inverse=True)
+1004            # Set lons,lats to 1.e30 where undefined
+1005            abslons = np.fabs(lons)
+1006            abslats = np.fabs(lats)
+1007            lons = np.where(abslons < 1.e20, lons, 1.e30)
+1008            lats = np.where(abslats < 1.e20, lats, 1.e30)
+1009        elif gdtn == 32769:
+1010            # Special NCEP Grid, Rotated Lat/Lon, Arakawa E-Grid (Non-Staggered)
+1011            from grib2io.utils import arakawa_rotated_grid
+1012            from grib2io.utils.rotated_grid import DEG2RAD
+1013            di, dj = 0.0, 0.0
+1014            do_180 = False
+1015            idir = 1 if self.scanModeFlags[0] == 0 else -1
+1016            jdir = -1 if self.scanModeFlags[1] == 0 else 1
+1017            grid_oriented = 0 if self.resolutionAndComponentFlags[4] == 0 else 1
+1018            do_rot = 1 if grid_oriented == 1 else 0
+1019            la1 = self.latitudeFirstGridpoint
+1020            lo1 = self.longitudeFirstGridpoint
+1021            clon = self.longitudeCenterGridpoint
+1022            clat = self.latitudeCenterGridpoint
+1023            lasp = clat - 90.0
+1024            losp = clon
+1025            llat, llon = arakawa_rotated_grid.ll2rot(la1,lo1,lasp,losp)
+1026            la2, lo2 = arakawa_rotated_grid.rot2ll(-llat,-llon,lasp,losp)
+1027            rlat = -llat
+1028            rlon = -llon
+1029            if self.nx == 1:
+1030                di = 0.0
+1031            elif idir == 1:
+1032                ti = rlon
+1033                while ti < llon:
+1034                    ti += 360.0
+1035                di = (ti - llon)/float(self.nx-1)
+1036            else:
+1037                ti = llon
+1038                while ti < rlon:
+1039                    ti += 360.0
+1040                di = (ti - rlon)/float(self.nx-1)
+1041            if self.ny == 1:
+1042               dj = 0.0
+1043            else:
+1044                dj = (rlat - llat)/float(self.ny-1)
+1045                if dj < 0.0:
+1046                    dj = -dj
+1047            if idir == 1:
+1048                if llon > rlon:
+1049                    llon -= 360.0
+1050                if llon < 0 and rlon > 0:
+1051                    do_180 = True
+1052            else:
+1053                if rlon > llon:
+1054                    rlon -= 360.0
+1055                if rlon < 0 and llon > 0:
+1056                    do_180 = True
+1057            xlat1d = llat + (np.arange(self.ny)*jdir*dj)
+1058            xlon1d = llon + (np.arange(self.nx)*idir*di)
+1059            xlons, xlats = np.meshgrid(xlon1d,xlat1d)
+1060            rot2ll_vectorized = np.vectorize(arakawa_rotated_grid.rot2ll)
+1061            lats, lons = rot2ll_vectorized(xlats,xlons,lasp,losp)
+1062            if do_180:
+1063                lons = np.where(lons>180.0,lons-360.0,lons)
+1064            vector_rotation_angles_vectorized = np.vectorize(arakawa_rotated_grid.vector_rotation_angles)
+1065            rots = vector_rotation_angles_vectorized(lats, lons, clat, losp, xlats)
+1066            del xlat1d, xlon1d, xlats, xlons
+1067        else:
+1068            raise ValueError('Unsupported grid')
+1069
+1070        _latlon_datastore[self._sha1_section3] = dict(latitude=lats,longitude=lons)
+1071        try:
+1072            _latlon_datastore[self._sha1_section3]['vector_rotation_angles'] = rots
+1073        except(NameError):
+1074            pass
+1075
+1076        return lats, lons
+1077
+1078
+1079    def map_keys(self):
+1080        """
+1081        Returns an unpacked data grid where integer grid values are replaced with
+1082        a string.in which the numeric value is a representation of.
+1083
+1084        These types of fields are cateogrical or classifications where data values 
+1085        do not represent an observable or predictable physical quantity. An example 
+1086        of such a field field would be [Dominant Precipitation Type -
+1087        DPTYPE](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-201.shtml)
+1088
+1089        Returns
+1090        -------
+1091        **`numpy.ndarray`** of string values per element.
+1092        """
+1093        hold_auto_nans = _AUTO_NANS
+1094        set_auto_nans(False)
+1095        if (np.all(self.section1[0:2]==[7,14]) and self.shortName == 'PWTHER') or \
+1096        (np.all(self.section1[0:2]==[8,65535]) and self.shortName == 'WX'):
+1097            keys = utils.decode_wx_strings(self.section2)
+1098            if hasattr(self,'priMissingValue') and self.priMissingValue not in [None,0]:
+1099                keys[int(self.priMissingValue)] = 'Missing'
+1100            if hasattr(self,'secMissingValue') and self.secMissingValue not in [None,0]:
+1101                keys[int(self.secMissingValue)] = 'Missing'
+1102            u,inv = np.unique(self.data,return_inverse=True)
+1103            fld = np.array([keys[x] for x in u])[inv].reshape(self.data.shape)
+1104        else:
+1105            # For data whose units are defined in a code table (i.e. classification or mask)
+1106            tblname = re.findall(r'\d\.\d+',self.units,re.IGNORECASE)[0]
+1107            fld = self.data.astype(np.int32).astype(str)
+1108            tbl = tables.get_table(tblname,expand=True)
+1109            for val in np.unique(fld):
+1110                fld = np.where(fld==val,tbl[val],fld)
+1111        set_auto_nans(hold_auto_nans)
+1112        return fld
+1113
+1114
+1115    def to_bytes(self, validate=True):
+1116        """
+1117        Return packed GRIB2 message in bytes format.
+1118
+1119        This will be Useful for exporting data in non-file formats. For example, 
+1120        can be used to output grib data directly to S3 using the boto3 client 
+1121        without the need to write a temporary file to upload first.
+1122
+1123        Parameters
+1124        ----------
+1125        **`validate : bool, optional`**
+1126            If `True` (DEFAULT), validates first/last four bytes for proper
+1127            formatting, else returns None. If `False`, message is output as is.
+1128
+1129        Returns
+1130        -------
+1131        Returns GRIB2 formatted message as bytes.
+1132        """
+1133        if validate:
+1134            if self._msg[0:4]+self._msg[-4:] == b'GRIB7777':
+1135                return self._msg
+1136            else:
+1137                return None
+1138        else:
+1139            return self._msg
+1140
+1141
+1142    def interpolate(self, method, grid_def_out, method_options=None):
+1143        """
+1144        Perform grid spatial interpolation via the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip).
+1145
+1146        **IMPORTANT:**  This interpolate method only supports scalar interpolation. If you
+1147        need to perform vector interpolation, use the module-level `grib2io.interpolate` function.
 1148
-1149        Returns
-1150        -------
-1151        Returns GRIB2 formatted message as bytes.
-1152        """
-1153        if validate:
-1154            if self._msg[0:4]+self._msg[-4:] == b'GRIB7777':
-1155                return self._msg
-1156            else:
-1157                return None
-1158        else:
-1159            return self._msg
-1160
-1161
-1162    def interpolate(self, method, grid_def_out, method_options=None):
-1163        """
-1164        Perform grid spatial interpolation via the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip).
-1165
-1166        **IMPORTANT:**  This interpolate method only supports scalar interpolation. If you
-1167        need to perform vector interpolation, use the module-level `grib2io.interpolate` function.
-1168
-1169        Parameters
-1170        ----------
-1171        **`method : int or str`**
-1172            Interpolate method to use. This can either be an integer or string using
-1173            the following mapping:
-1174
-1175        | Interpolate Scheme | Integer Value |
-1176        | :---:              | :---:         |
-1177        | 'bilinear'         | 0             |
-1178        | 'bicubic'          | 1             |
-1179        | 'neighbor'         | 2             |
-1180        | 'budget'           | 3             |
-1181        | 'spectral'         | 4             |
-1182        | 'neighbor-budget'  | 6             |
+1149        Parameters
+1150        ----------
+1151        **`method : int or str`**
+1152            Interpolate method to use. This can either be an integer or string using
+1153            the following mapping:
+1154
+1155        | Interpolate Scheme | Integer Value |
+1156        | :---:              | :---:         |
+1157        | 'bilinear'         | 0             |
+1158        | 'bicubic'          | 1             |
+1159        | 'neighbor'         | 2             |
+1160        | 'budget'           | 3             |
+1161        | 'spectral'         | 4             |
+1162        | 'neighbor-budget'  | 6             |
+1163
+1164        **`grid_def_out : grib2io.Grib2GridDef`**
+1165            Grib2GridDef object of the output grid.
+1166
+1167        **`method_options : list of ints, optional`**
+1168            Interpolation options. See the NCEPLIBS-ip doucmentation for
+1169            more information on how these are used.
+1170
+1171        Returns
+1172        -------
+1173        If interpolating to a grid, a new Grib2Message object is returned.  The GRIB2 metadata of
+1174        the new Grib2Message object is indentical to the input except where required to be different
+1175        because of the new grid specs.
+1176
+1177        If interpolating to station points, the interpolated data values are returned as a numpy.ndarray.
+1178        """
+1179        section0 = self.section0
+1180        section0[-1] = 0
+1181        gds = [0, grid_def_out.npoints, 0, 255, grid_def_out.gdtn]
+1182        section3 = np.concatenate((gds,grid_def_out.gdt))
 1183
-1184        **`grid_def_out : grib2io.Grib2GridDef`**
-1185            Grib2GridDef object of the output grid.
+1184        msg = Grib2Message(section0,self.section1,self.section2,section3,
+1185                           self.section4,self.section5,self.bitMapFlag.value)
 1186
-1187        **`method_options : list of ints, optional`**
-1188            Interpolation options. See the NCEPLIBS-ip doucmentation for
-1189            more information on how these are used.
-1190
-1191        Returns
-1192        -------
-1193        If interpolating to a grid, a new Grib2Message object is returned.  The GRIB2 metadata of
-1194        the new Grib2Message object is indentical to the input except where required to be different
-1195        because of the new grid specs.
-1196
-1197        If interpolating to station points, the interpolated data values are returned as a numpy.ndarray.
-1198        """
-1199        section0 = self.section0
-1200        section0[-1] = 0
-1201        gds = [0, grid_def_out.npoints, 0, 255, grid_def_out.gdtn]
-1202        section3 = np.concatenate((gds,grid_def_out.gdt))
-1203
-1204        msg = Grib2Message(section0,self.section1,self.section2,section3,
-1205                           self.section4,self.section5,self.bitMapFlag.value)
-1206
-1207        msg._msgnum = -1
-1208        msg._deflist = self._deflist
-1209        msg._coordlist = self._coordlist
-1210        shape = (msg.ny,msg.nx)
-1211        ndim = 2
-1212        if msg.typeOfValues == 0:
-1213            dtype = 'float32'
-1214        elif msg.typeOfValues == 1:
-1215            dtype = 'int32'
-1216        msg._data = interpolate(self.data,method,Grib2GridDef.from_section3(self.section3),grid_def_out,
-1217                                method_options=method_options).reshape(msg.ny,msg.nx)
-1218        return msg
+1187        msg._msgnum = -1
+1188        msg._deflist = self._deflist
+1189        msg._coordlist = self._coordlist
+1190        shape = (msg.ny,msg.nx)
+1191        ndim = 2
+1192        if msg.typeOfValues == 0:
+1193            dtype = 'float32'
+1194        elif msg.typeOfValues == 1:
+1195            dtype = 'int32'
+1196        msg._data = interpolate(self.data,method,Grib2GridDef.from_section3(self.section3),grid_def_out,
+1197                                method_options=method_options).reshape(msg.ny,msg.nx)
+1198        return msg
 
@@ -2959,10 +2943,10 @@

Returns

-
722    @property
-723    def gdtn(self):
-724        """Return Grid Definition Template Number"""
-725        return self.section3[4]
+            
702    @property
+703    def gdtn(self):
+704        """Return Grid Definition Template Number"""
+705        return self.section3[4]
 
@@ -2980,10 +2964,10 @@

Returns

-
728    @property
-729    def gdt(self):
-730        """Return Grid Definition Template"""
-731        return self.gridDefinitionTemplate
+            
708    @property
+709    def gdt(self):
+710        """Return Grid Definition Template"""
+711        return self.gridDefinitionTemplate
 
@@ -3001,10 +2985,10 @@

Returns

-
734    @property
-735    def pdtn(self):
-736        """Return Product Definition Template Number"""
-737        return self.section4[1]
+            
714    @property
+715    def pdtn(self):
+716        """Return Product Definition Template Number"""
+717        return self.section4[1]
 
@@ -3022,10 +3006,10 @@

Returns

-
740    @property
-741    def pdt(self):
-742        """Return Product Definition Template"""
-743        return self.productDefinitionTemplate
+            
720    @property
+721    def pdt(self):
+722        """Return Product Definition Template"""
+723        return self.productDefinitionTemplate
 
@@ -3043,10 +3027,10 @@

Returns

-
746    @property
-747    def drtn(self):
-748        """Return Data Representation Template Number"""
-749        return self.section5[1]
+            
726    @property
+727    def drtn(self):
+728        """Return Data Representation Template Number"""
+729        return self.section5[1]
 
@@ -3064,10 +3048,10 @@

Returns

-
752    @property
-753    def drt(self):
-754        """Return Data Representation Template"""
-755        return self.dataRepresentationTemplate
+            
732    @property
+733    def drt(self):
+734        """Return Data Representation Template"""
+735        return self.dataRepresentationTemplate
 
@@ -3085,10 +3069,10 @@

Returns

-
758    @property
-759    def pdy(self):
-760        """Return the PDY ('YYYYMMDD')"""
-761        return ''.join([str(i) for i in self.section1[5:8]])
+            
738    @property
+739    def pdy(self):
+740        """Return the PDY ('YYYYMMDD')"""
+741        return ''.join([str(i) for i in self.section1[5:8]])
 
@@ -3106,10 +3090,10 @@

Returns

-
764    @property
-765    def griddef(self):
-766        """Return a Grib2GridDef instance for a GRIB2 message"""
-767        return Grib2GridDef.from_section3(self.section3)
+            
744    @property
+745    def griddef(self):
+746        """Return a Grib2GridDef instance for a GRIB2 message"""
+747        return Grib2GridDef.from_section3(self.section3)
 
@@ -3129,44 +3113,44 @@

Returns

-
791    def attrs_by_section(self, sect, values=False):
-792        """
-793        Provide a tuple of attribute names for the given GRIB2 section.
-794
-795        Parameters
-796        ----------
-797        **`sect : int`**
-798            The GRIB2 section number.
-799
-800        **`values : bool, optional`**
-801            Optional (default is `False`) arugment to return attributes values.
-802
-803        Returns
-804        -------
-805        A List attribute names or Dict if `values = True`.
-806        """
-807        if sect in {0,1,6}:
-808            attrs = templates._section_attrs[sect]
-809        elif sect in {3,4,5}:
-810            def _find_class_index(n):
-811                _key = {3:'Grid', 4:'Product', 5:'Data'}
-812                for i,c in enumerate(self.__class__.__mro__):
-813                    if _key[n] in c.__name__:
-814                        return i
-815                else:
-816                    return []
-817            if sys.version_info.minor <= 8:
-818                attrs = templates._section_attrs[sect]+\
-819                        [a for a in dir(self.__class__.__mro__[_find_class_index(sect)]) if not a.startswith('_')]
-820            else:
-821                attrs = templates._section_attrs[sect]+\
-822                        self.__class__.__mro__[_find_class_index(sect)]._attrs
-823        else:
-824            attrs = []
-825        if values:
-826            return {k:getattr(self,k) for k in attrs}
-827        else:
-828            return attrs
+            
771    def attrs_by_section(self, sect, values=False):
+772        """
+773        Provide a tuple of attribute names for the given GRIB2 section.
+774
+775        Parameters
+776        ----------
+777        **`sect : int`**
+778            The GRIB2 section number.
+779
+780        **`values : bool, optional`**
+781            Optional (default is `False`) arugment to return attributes values.
+782
+783        Returns
+784        -------
+785        A List attribute names or Dict if `values = True`.
+786        """
+787        if sect in {0,1,6}:
+788            attrs = templates._section_attrs[sect]
+789        elif sect in {3,4,5}:
+790            def _find_class_index(n):
+791                _key = {3:'Grid', 4:'Product', 5:'Data'}
+792                for i,c in enumerate(self.__class__.__mro__):
+793                    if _key[n] in c.__name__:
+794                        return i
+795                else:
+796                    return []
+797            if sys.version_info.minor <= 8:
+798                attrs = templates._section_attrs[sect]+\
+799                        [a for a in dir(self.__class__.__mro__[_find_class_index(sect)]) if not a.startswith('_')]
+800            else:
+801                attrs = templates._section_attrs[sect]+\
+802                        self.__class__.__mro__[_find_class_index(sect)]._attrs
+803        else:
+804            attrs = []
+805        if values:
+806            return {k:getattr(self,k) for k in attrs}
+807        else:
+808            return attrs
 
@@ -3198,73 +3182,73 @@

Returns

-
831    def pack(self):
-832        """
-833        Packs GRIB2 section data into a binary message.  It is the user's responsibility
-834        to populate the GRIB2 section information with appropriate metadata.
-835        """
-836        # Create beginning of packed binary message with section 0 and 1 data.
-837        self._sections = []
-838        self._msg,self._pos = g2clib.grib2_create(self.indicatorSection[2:4],self.identificationSection)
-839        self._sections += [0,1]
+            
811    def pack(self):
+812        """
+813        Packs GRIB2 section data into a binary message.  It is the user's responsibility
+814        to populate the GRIB2 section information with appropriate metadata.
+815        """
+816        # Create beginning of packed binary message with section 0 and 1 data.
+817        self._sections = []
+818        self._msg,self._pos = g2clib.grib2_create(self.indicatorSection[2:4],self.identificationSection)
+819        self._sections += [0,1]
+820
+821        # Add section 2 if present.
+822        if isinstance(self.section2,bytes) and len(self.section2) > 0:
+823            self._msg,self._pos = g2clib.grib2_addlocal(self._msg,self.section2)
+824            self._sections.append(2)
+825
+826        # Add section 3.
+827        self.section3[1] = self.nx * self.ny
+828        self._msg,self._pos = g2clib.grib2_addgrid(self._msg,self.gridDefinitionSection,
+829                                                   self.gridDefinitionTemplate,
+830                                                   self._deflist)
+831        self._sections.append(3)
+832
+833        # Prepare data.
+834        field = np.copy(self.data)
+835        if self.scanModeFlags is not None:
+836            if self.scanModeFlags[3]:
+837                fieldsave = field.astype('f') # Casting makes a copy
+838                field[1::2,:] = fieldsave[1::2,::-1]
+839        fld = field.astype('f')
 840
-841        # Add section 2 if present.
-842        if isinstance(self.section2,bytes) and len(self.section2) > 0:
-843            self._msg,self._pos = g2clib.grib2_addlocal(self._msg,self.section2)
-844            self._sections.append(2)
-845
-846        # Add section 3.
-847        self.section3[1] = self.nx * self.ny
-848        self._msg,self._pos = g2clib.grib2_addgrid(self._msg,self.gridDefinitionSection,
-849                                                   self.gridDefinitionTemplate,
-850                                                   self._deflist)
-851        self._sections.append(3)
-852
-853        # Prepare data.
-854        field = np.copy(self.data)
-855        if self.scanModeFlags is not None:
-856            if self.scanModeFlags[3]:
-857                fieldsave = field.astype('f') # Casting makes a copy
-858                field[1::2,:] = fieldsave[1::2,::-1]
-859        fld = field.astype('f')
-860
-861        # Prepare bitmap, if necessary
-862        bitmapflag = self.bitMapFlag.value
-863        if bitmapflag == 0:
-864            bmap = np.ravel(np.where(np.isnan(fld),0,1)).astype(DEFAULT_NUMPY_INT)
-865        else:
-866            bmap = None
-867
-868        # Prepare optional coordinate list
-869        if self._coordlist is not None:
-870            crdlist = np.array(self._coordlist,'f')
-871        else:
-872            crdlist = None
+841        # Prepare bitmap, if necessary
+842        bitmapflag = self.bitMapFlag.value
+843        if bitmapflag == 0:
+844            bmap = np.ravel(np.where(np.isnan(fld),0,1)).astype(DEFAULT_NUMPY_INT)
+845        else:
+846            bmap = None
+847
+848        # Prepare optional coordinate list
+849        if self._coordlist is not None:
+850            crdlist = np.array(self._coordlist,'f')
+851        else:
+852            crdlist = None
+853
+854        # Prepare data for packing if nans are present
+855        fld = np.ravel(fld)
+856        if np.isnan(fld).any() and hasattr(self,'_missvalmap'):
+857            fld = np.where(self._missvalmap==1,self.priMissingValue,fld)
+858            fld = np.where(self._missvalmap==2,self.secMissingValue,fld)
+859
+860        # Add sections 4, 5, 6 (if present), and 7.
+861        self._msg,self._pos = g2clib.grib2_addfield(self._msg,self.pdtn,
+862                                                    self.productDefinitionTemplate,
+863                                                    crdlist,
+864                                                    self.drtn,
+865                                                    self.dataRepresentationTemplate,
+866                                                    fld,
+867                                                    bitmapflag,
+868                                                    bmap)
+869        self._sections.append(4)
+870        self._sections.append(5)
+871        if bmap is not None: self._sections.append(6)
+872        self._sections.append(7)
 873
-874        # Prepare data for packing if nans are present
-875        fld = np.ravel(fld)
-876        if np.isnan(fld).any() and hasattr(self,'_missvalmap'):
-877            fld = np.where(self._missvalmap==1,self.priMissingValue,fld)
-878            fld = np.where(self._missvalmap==2,self.secMissingValue,fld)
-879
-880        # Add sections 4, 5, 6 (if present), and 7.
-881        self._msg,self._pos = g2clib.grib2_addfield(self._msg,self.pdtn,
-882                                                    self.productDefinitionTemplate,
-883                                                    crdlist,
-884                                                    self.drtn,
-885                                                    self.dataRepresentationTemplate,
-886                                                    fld,
-887                                                    bitmapflag,
-888                                                    bmap)
-889        self._sections.append(4)
-890        self._sections.append(5)
-891        if bmap is not None: self._sections.append(6)
-892        self._sections.append(7)
-893
-894        # Finalize GRIB2 message with section 8.
-895        self._msg, self._pos = g2clib.grib2_end(self._msg)
-896        self._sections.append(8)
-897        self.section0[-1] = len(self._msg)
+874        # Finalize GRIB2 message with section 8.
+875        self._msg, self._pos = g2clib.grib2_end(self._msg)
+876        self._sections.append(8)
+877        self.section0[-1] = len(self._msg)
 
@@ -3283,20 +3267,20 @@

Returns

-
900    @property
-901    def data(self) -> np.array:
-902        """
-903        Accessing the data attribute loads data into memmory
-904        """
-905        if not hasattr(self,'_auto_nans'): self._auto_nans = _AUTO_NANS
-906        if hasattr(self,'_data'):
-907            if self._auto_nans != _AUTO_NANS:
-908                self._data = self._ondiskarray
-909            if isinstance(self._data, Grib2MessageOnDiskArray):
-910                self._ondiskarray = self._data
-911                self._data = np.asarray(self._data)
-912            return self._data
-913        raise ValueError
+            
880    @property
+881    def data(self) -> np.array:
+882        """
+883        Accessing the data attribute loads data into memmory
+884        """
+885        if not hasattr(self,'_auto_nans'): self._auto_nans = _AUTO_NANS
+886        if hasattr(self,'_data'):
+887            if self._auto_nans != _AUTO_NANS:
+888                self._data = self._ondiskarray
+889            if isinstance(self._data, Grib2MessageOnDiskArray):
+890                self._ondiskarray = self._data
+891                self._data = np.asarray(self._data)
+892            return self._data
+893        raise ValueError
 
@@ -3316,9 +3300,9 @@

Returns

-
930    def latlons(self, *args, **kwrgs):
-931        """Alias for `grib2io.Grib2Message.grid` method"""
-932        return self.grid(*args, **kwrgs)
+            
910    def latlons(self, *args, **kwrgs):
+911        """Alias for `grib2io.Grib2Message.grid` method"""
+912        return self.grid(*args, **kwrgs)
 
@@ -3338,168 +3322,168 @@

Returns

-
 935    def grid(self, unrotate=True):
- 936        """
- 937        Return lats,lons (in degrees) of grid.
- 938
- 939        Currently can handle reg. lat/lon,cglobal Gaussian, mercator, stereographic, 
- 940        lambert conformal, albers equal-area, space-view and azimuthal equidistant grids.
- 941
- 942        Parameters
- 943        ----------
- 944        **`unrotate : bool`**
- 945            If `True` [DEFAULT], and grid is rotated lat/lon, then unrotate the grid,
- 946            otherwise `False`, do not.
- 947
- 948        Returns
- 949        -------
- 950        **`lats, lons : numpy.ndarray`**
- 951            Returns two numpy.ndarrays with dtype=numpy.float32 of grid latitudes and
- 952            longitudes in units of degrees.
- 953        """
- 954        if self._sha1_section3 in _latlon_datastore.keys():
- 955            return (_latlon_datastore[self._sha1_section3]['latitude'],
- 956                    _latlon_datastore[self._sha1_section3]['longitude'])
- 957        gdtn = self.gridDefinitionTemplateNumber.value
- 958        gdtmpl = self.gridDefinitionTemplate
- 959        reggrid = self.gridDefinitionSection[2] == 0 # This means regular 2-d grid
- 960        if gdtn == 0:
- 961            # Regular lat/lon grid
- 962            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
- 963            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
- 964            dlon = self.gridlengthXDirection
- 965            dlat = self.gridlengthYDirection
- 966            if lon2 < lon1 and dlon < 0: lon1 = -lon1
- 967            lats = np.linspace(lat1,lat2,self.ny)
- 968            if reggrid:
- 969                lons = np.linspace(lon1,lon2,self.nx)
- 970            else:
- 971                lons = np.linspace(lon1,lon2,self.ny*2)
- 972            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
- 973        elif gdtn == 1: # Rotated Lat/Lon grid
- 974            pj = pyproj.Proj(self.projParameters)
- 975            lat1,lon1 = self.latitudeFirstGridpoint,self.longitudeFirstGridpoint
- 976            lat2,lon2 = self.latitudeLastGridpoint,self.longitudeLastGridpoint
- 977            if lon1 > 180.0: lon1 -= 360.0
- 978            if lon2 > 180.0: lon2 -= 360.0
- 979            lats = np.linspace(lat1,lat2,self.ny)
- 980            lons = np.linspace(lon1,lon2,self.nx)
- 981            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
- 982            if unrotate:
- 983                from grib2io.utils import rotated_grid
- 984                lats,lons = rotated_grid.unrotate(lats,lons,self.anglePoleRotation,
- 985                                                  self.latitudeSouthernPole,
- 986                                                  self.longitudeSouthernPole)
- 987        elif gdtn == 40: # Gaussian grid (only works for global!)
- 988            from grib2io.utils.gauss_grid import gaussian_latitudes
- 989            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
- 990            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
- 991            nlats = self.ny
- 992            if not reggrid: # Reduced Gaussian grid.
- 993                nlons = 2*nlats
- 994                dlon = 360./nlons
- 995            else:
- 996                nlons = self.nx
- 997                dlon = self.gridlengthXDirection
- 998            lons = np.linspace(lon1,lon2,nlons)
- 999            # Compute Gaussian lats (north to south)
-1000            lats = gaussian_latitudes(nlats)
-1001            if lat1 < lat2:  # reverse them if necessary
-1002                lats = lats[::-1]
-1003            lons,lats = np.meshgrid(lons,lats)
-1004        elif gdtn in {10,20,30,31,110}:
-1005            # Mercator, Lambert Conformal, Stereographic, Albers Equal Area, Azimuthal Equidistant
-1006            dx,dy = self.gridlengthXDirection, self.gridlengthYDirection
-1007            lon1,lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
-1008            pj = pyproj.Proj(self.projParameters)
-1009            llcrnrx, llcrnry = pj(lon1,lat1)
-1010            x = llcrnrx+dx*np.arange(self.nx)
-1011            y = llcrnry+dy*np.arange(self.ny)
-1012            x,y = np.meshgrid(x, y)
-1013            lons,lats = pj(x, y, inverse=True)
-1014        elif gdtn == 90:
-1015            # Satellite Projection
-1016            dx = self.gridlengthXDirection
-1017            dy = self.gridlengthYDirection
-1018            pj = pyproj.Proj(self.projParameters)
-1019            x = dx*np.indices((self.ny,self.nx),'f')[1,:,:]
-1020            x -= 0.5*x.max()
-1021            y = dy*np.indices((self.ny,self.nx),'f')[0,:,:]
-1022            y -= 0.5*y.max()
-1023            lons,lats = pj(x,y,inverse=True)
-1024            # Set lons,lats to 1.e30 where undefined
-1025            abslons = np.fabs(lons)
-1026            abslats = np.fabs(lats)
-1027            lons = np.where(abslons < 1.e20, lons, 1.e30)
-1028            lats = np.where(abslats < 1.e20, lats, 1.e30)
-1029        elif gdtn == 32769:
-1030            # Special NCEP Grid, Rotated Lat/Lon, Arakawa E-Grid (Non-Staggered)
-1031            from grib2io.utils import arakawa_rotated_grid
-1032            from grib2io.utils.rotated_grid import DEG2RAD
-1033            di, dj = 0.0, 0.0
-1034            do_180 = False
-1035            idir = 1 if self.scanModeFlags[0] == 0 else -1
-1036            jdir = -1 if self.scanModeFlags[1] == 0 else 1
-1037            grid_oriented = 0 if self.resolutionAndComponentFlags[4] == 0 else 1
-1038            do_rot = 1 if grid_oriented == 1 else 0
-1039            la1 = self.latitudeFirstGridpoint
-1040            lo1 = self.longitudeFirstGridpoint
-1041            clon = self.longitudeCenterGridpoint
-1042            clat = self.latitudeCenterGridpoint
-1043            lasp = clat - 90.0
-1044            losp = clon
-1045            llat, llon = arakawa_rotated_grid.ll2rot(la1,lo1,lasp,losp)
-1046            la2, lo2 = arakawa_rotated_grid.rot2ll(-llat,-llon,lasp,losp)
-1047            rlat = -llat
-1048            rlon = -llon
-1049            if self.nx == 1:
-1050                di = 0.0
-1051            elif idir == 1:
-1052                ti = rlon
-1053                while ti < llon:
-1054                    ti += 360.0
-1055                di = (ti - llon)/float(self.nx-1)
-1056            else:
-1057                ti = llon
-1058                while ti < rlon:
-1059                    ti += 360.0
-1060                di = (ti - rlon)/float(self.nx-1)
-1061            if self.ny == 1:
-1062               dj = 0.0
-1063            else:
-1064                dj = (rlat - llat)/float(self.ny-1)
-1065                if dj < 0.0:
-1066                    dj = -dj
-1067            if idir == 1:
-1068                if llon > rlon:
-1069                    llon -= 360.0
-1070                if llon < 0 and rlon > 0:
-1071                    do_180 = True
-1072            else:
-1073                if rlon > llon:
-1074                    rlon -= 360.0
-1075                if rlon < 0 and llon > 0:
-1076                    do_180 = True
-1077            xlat1d = llat + (np.arange(self.ny)*jdir*dj)
-1078            xlon1d = llon + (np.arange(self.nx)*idir*di)
-1079            xlons, xlats = np.meshgrid(xlon1d,xlat1d)
-1080            rot2ll_vectorized = np.vectorize(arakawa_rotated_grid.rot2ll)
-1081            lats, lons = rot2ll_vectorized(xlats,xlons,lasp,losp)
-1082            if do_180:
-1083                lons = np.where(lons>180.0,lons-360.0,lons)
-1084            vector_rotation_angles_vectorized = np.vectorize(arakawa_rotated_grid.vector_rotation_angles)
-1085            rots = vector_rotation_angles_vectorized(lats, lons, clat, losp, xlats)
-1086            del xlat1d, xlon1d, xlats, xlons
-1087        else:
-1088            raise ValueError('Unsupported grid')
-1089
-1090        _latlon_datastore[self._sha1_section3] = dict(latitude=lats,longitude=lons)
-1091        try:
-1092            _latlon_datastore[self._sha1_section3]['vector_rotation_angles'] = rots
-1093        except(NameError):
-1094            pass
-1095
-1096        return lats, lons
+            
 915    def grid(self, unrotate=True):
+ 916        """
+ 917        Return lats,lons (in degrees) of grid.
+ 918
+ 919        Currently can handle reg. lat/lon,cglobal Gaussian, mercator, stereographic, 
+ 920        lambert conformal, albers equal-area, space-view and azimuthal equidistant grids.
+ 921
+ 922        Parameters
+ 923        ----------
+ 924        **`unrotate : bool`**
+ 925            If `True` [DEFAULT], and grid is rotated lat/lon, then unrotate the grid,
+ 926            otherwise `False`, do not.
+ 927
+ 928        Returns
+ 929        -------
+ 930        **`lats, lons : numpy.ndarray`**
+ 931            Returns two numpy.ndarrays with dtype=numpy.float32 of grid latitudes and
+ 932            longitudes in units of degrees.
+ 933        """
+ 934        if self._sha1_section3 in _latlon_datastore.keys():
+ 935            return (_latlon_datastore[self._sha1_section3]['latitude'],
+ 936                    _latlon_datastore[self._sha1_section3]['longitude'])
+ 937        gdtn = self.gridDefinitionTemplateNumber.value
+ 938        gdtmpl = self.gridDefinitionTemplate
+ 939        reggrid = self.gridDefinitionSection[2] == 0 # This means regular 2-d grid
+ 940        if gdtn == 0:
+ 941            # Regular lat/lon grid
+ 942            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
+ 943            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
+ 944            dlon = self.gridlengthXDirection
+ 945            dlat = self.gridlengthYDirection
+ 946            if lon2 < lon1 and dlon < 0: lon1 = -lon1
+ 947            lats = np.linspace(lat1,lat2,self.ny)
+ 948            if reggrid:
+ 949                lons = np.linspace(lon1,lon2,self.nx)
+ 950            else:
+ 951                lons = np.linspace(lon1,lon2,self.ny*2)
+ 952            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
+ 953        elif gdtn == 1: # Rotated Lat/Lon grid
+ 954            pj = pyproj.Proj(self.projParameters)
+ 955            lat1,lon1 = self.latitudeFirstGridpoint,self.longitudeFirstGridpoint
+ 956            lat2,lon2 = self.latitudeLastGridpoint,self.longitudeLastGridpoint
+ 957            if lon1 > 180.0: lon1 -= 360.0
+ 958            if lon2 > 180.0: lon2 -= 360.0
+ 959            lats = np.linspace(lat1,lat2,self.ny)
+ 960            lons = np.linspace(lon1,lon2,self.nx)
+ 961            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
+ 962            if unrotate:
+ 963                from grib2io.utils import rotated_grid
+ 964                lats,lons = rotated_grid.unrotate(lats,lons,self.anglePoleRotation,
+ 965                                                  self.latitudeSouthernPole,
+ 966                                                  self.longitudeSouthernPole)
+ 967        elif gdtn == 40: # Gaussian grid (only works for global!)
+ 968            from grib2io.utils.gauss_grid import gaussian_latitudes
+ 969            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
+ 970            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
+ 971            nlats = self.ny
+ 972            if not reggrid: # Reduced Gaussian grid.
+ 973                nlons = 2*nlats
+ 974                dlon = 360./nlons
+ 975            else:
+ 976                nlons = self.nx
+ 977                dlon = self.gridlengthXDirection
+ 978            lons = np.linspace(lon1,lon2,nlons)
+ 979            # Compute Gaussian lats (north to south)
+ 980            lats = gaussian_latitudes(nlats)
+ 981            if lat1 < lat2:  # reverse them if necessary
+ 982                lats = lats[::-1]
+ 983            lons,lats = np.meshgrid(lons,lats)
+ 984        elif gdtn in {10,20,30,31,110}:
+ 985            # Mercator, Lambert Conformal, Stereographic, Albers Equal Area, Azimuthal Equidistant
+ 986            dx,dy = self.gridlengthXDirection, self.gridlengthYDirection
+ 987            lon1,lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
+ 988            pj = pyproj.Proj(self.projParameters)
+ 989            llcrnrx, llcrnry = pj(lon1,lat1)
+ 990            x = llcrnrx+dx*np.arange(self.nx)
+ 991            y = llcrnry+dy*np.arange(self.ny)
+ 992            x,y = np.meshgrid(x, y)
+ 993            lons,lats = pj(x, y, inverse=True)
+ 994        elif gdtn == 90:
+ 995            # Satellite Projection
+ 996            dx = self.gridlengthXDirection
+ 997            dy = self.gridlengthYDirection
+ 998            pj = pyproj.Proj(self.projParameters)
+ 999            x = dx*np.indices((self.ny,self.nx),'f')[1,:,:]
+1000            x -= 0.5*x.max()
+1001            y = dy*np.indices((self.ny,self.nx),'f')[0,:,:]
+1002            y -= 0.5*y.max()
+1003            lons,lats = pj(x,y,inverse=True)
+1004            # Set lons,lats to 1.e30 where undefined
+1005            abslons = np.fabs(lons)
+1006            abslats = np.fabs(lats)
+1007            lons = np.where(abslons < 1.e20, lons, 1.e30)
+1008            lats = np.where(abslats < 1.e20, lats, 1.e30)
+1009        elif gdtn == 32769:
+1010            # Special NCEP Grid, Rotated Lat/Lon, Arakawa E-Grid (Non-Staggered)
+1011            from grib2io.utils import arakawa_rotated_grid
+1012            from grib2io.utils.rotated_grid import DEG2RAD
+1013            di, dj = 0.0, 0.0
+1014            do_180 = False
+1015            idir = 1 if self.scanModeFlags[0] == 0 else -1
+1016            jdir = -1 if self.scanModeFlags[1] == 0 else 1
+1017            grid_oriented = 0 if self.resolutionAndComponentFlags[4] == 0 else 1
+1018            do_rot = 1 if grid_oriented == 1 else 0
+1019            la1 = self.latitudeFirstGridpoint
+1020            lo1 = self.longitudeFirstGridpoint
+1021            clon = self.longitudeCenterGridpoint
+1022            clat = self.latitudeCenterGridpoint
+1023            lasp = clat - 90.0
+1024            losp = clon
+1025            llat, llon = arakawa_rotated_grid.ll2rot(la1,lo1,lasp,losp)
+1026            la2, lo2 = arakawa_rotated_grid.rot2ll(-llat,-llon,lasp,losp)
+1027            rlat = -llat
+1028            rlon = -llon
+1029            if self.nx == 1:
+1030                di = 0.0
+1031            elif idir == 1:
+1032                ti = rlon
+1033                while ti < llon:
+1034                    ti += 360.0
+1035                di = (ti - llon)/float(self.nx-1)
+1036            else:
+1037                ti = llon
+1038                while ti < rlon:
+1039                    ti += 360.0
+1040                di = (ti - rlon)/float(self.nx-1)
+1041            if self.ny == 1:
+1042               dj = 0.0
+1043            else:
+1044                dj = (rlat - llat)/float(self.ny-1)
+1045                if dj < 0.0:
+1046                    dj = -dj
+1047            if idir == 1:
+1048                if llon > rlon:
+1049                    llon -= 360.0
+1050                if llon < 0 and rlon > 0:
+1051                    do_180 = True
+1052            else:
+1053                if rlon > llon:
+1054                    rlon -= 360.0
+1055                if rlon < 0 and llon > 0:
+1056                    do_180 = True
+1057            xlat1d = llat + (np.arange(self.ny)*jdir*dj)
+1058            xlon1d = llon + (np.arange(self.nx)*idir*di)
+1059            xlons, xlats = np.meshgrid(xlon1d,xlat1d)
+1060            rot2ll_vectorized = np.vectorize(arakawa_rotated_grid.rot2ll)
+1061            lats, lons = rot2ll_vectorized(xlats,xlons,lasp,losp)
+1062            if do_180:
+1063                lons = np.where(lons>180.0,lons-360.0,lons)
+1064            vector_rotation_angles_vectorized = np.vectorize(arakawa_rotated_grid.vector_rotation_angles)
+1065            rots = vector_rotation_angles_vectorized(lats, lons, clat, losp, xlats)
+1066            del xlat1d, xlon1d, xlats, xlons
+1067        else:
+1068            raise ValueError('Unsupported grid')
+1069
+1070        _latlon_datastore[self._sha1_section3] = dict(latitude=lats,longitude=lons)
+1071        try:
+1072            _latlon_datastore[self._sha1_section3]['vector_rotation_angles'] = rots
+1073        except(NameError):
+1074            pass
+1075
+1076        return lats, lons
 
@@ -3534,40 +3518,40 @@

Returns

-
1099    def map_keys(self):
-1100        """
-1101        Returns an unpacked data grid where integer grid values are replaced with
-1102        a string.in which the numeric value is a representation of.
-1103
-1104        These types of fields are cateogrical or classifications where data values 
-1105        do not represent an observable or predictable physical quantity. An example 
-1106        of such a field field would be [Dominant Precipitation Type -
-1107        DPTYPE](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-201.shtml)
-1108
-1109        Returns
-1110        -------
-1111        **`numpy.ndarray`** of string values per element.
-1112        """
-1113        hold_auto_nans = _AUTO_NANS
-1114        set_auto_nans(False)
-1115        if (np.all(self.section1[0:2]==[7,14]) and self.shortName == 'PWTHER') or \
-1116        (np.all(self.section1[0:2]==[8,65535]) and self.shortName == 'WX'):
-1117            keys = utils.decode_wx_strings(self.section2)
-1118            if hasattr(self,'priMissingValue') and self.priMissingValue not in [None,0]:
-1119                keys[int(self.priMissingValue)] = 'Missing'
-1120            if hasattr(self,'secMissingValue') and self.secMissingValue not in [None,0]:
-1121                keys[int(self.secMissingValue)] = 'Missing'
-1122            u,inv = np.unique(self.data,return_inverse=True)
-1123            fld = np.array([keys[x] for x in u])[inv].reshape(self.data.shape)
-1124        else:
-1125            # For data whose units are defined in a code table (i.e. classification or mask)
-1126            tblname = re.findall(r'\d\.\d+',self.units,re.IGNORECASE)[0]
-1127            fld = self.data.astype(np.int32).astype(str)
-1128            tbl = tables.get_table(tblname,expand=True)
-1129            for val in np.unique(fld):
-1130                fld = np.where(fld==val,tbl[val],fld)
-1131        set_auto_nans(hold_auto_nans)
-1132        return fld
+            
1079    def map_keys(self):
+1080        """
+1081        Returns an unpacked data grid where integer grid values are replaced with
+1082        a string.in which the numeric value is a representation of.
+1083
+1084        These types of fields are cateogrical or classifications where data values 
+1085        do not represent an observable or predictable physical quantity. An example 
+1086        of such a field field would be [Dominant Precipitation Type -
+1087        DPTYPE](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-201.shtml)
+1088
+1089        Returns
+1090        -------
+1091        **`numpy.ndarray`** of string values per element.
+1092        """
+1093        hold_auto_nans = _AUTO_NANS
+1094        set_auto_nans(False)
+1095        if (np.all(self.section1[0:2]==[7,14]) and self.shortName == 'PWTHER') or \
+1096        (np.all(self.section1[0:2]==[8,65535]) and self.shortName == 'WX'):
+1097            keys = utils.decode_wx_strings(self.section2)
+1098            if hasattr(self,'priMissingValue') and self.priMissingValue not in [None,0]:
+1099                keys[int(self.priMissingValue)] = 'Missing'
+1100            if hasattr(self,'secMissingValue') and self.secMissingValue not in [None,0]:
+1101                keys[int(self.secMissingValue)] = 'Missing'
+1102            u,inv = np.unique(self.data,return_inverse=True)
+1103            fld = np.array([keys[x] for x in u])[inv].reshape(self.data.shape)
+1104        else:
+1105            # For data whose units are defined in a code table (i.e. classification or mask)
+1106            tblname = re.findall(r'\d\.\d+',self.units,re.IGNORECASE)[0]
+1107            fld = self.data.astype(np.int32).astype(str)
+1108            tbl = tables.get_table(tblname,expand=True)
+1109            for val in np.unique(fld):
+1110                fld = np.where(fld==val,tbl[val],fld)
+1111        set_auto_nans(hold_auto_nans)
+1112        return fld
 
@@ -3597,31 +3581,31 @@

Returns

-
1135    def to_bytes(self, validate=True):
-1136        """
-1137        Return packed GRIB2 message in bytes format.
-1138
-1139        This will be Useful for exporting data in non-file formats. For example, 
-1140        can be used to output grib data directly to S3 using the boto3 client 
-1141        without the need to write a temporary file to upload first.
-1142
-1143        Parameters
-1144        ----------
-1145        **`validate : bool, optional`**
-1146            If `True` (DEFAULT), validates first/last four bytes for proper
-1147            formatting, else returns None. If `False`, message is output as is.
-1148
-1149        Returns
-1150        -------
-1151        Returns GRIB2 formatted message as bytes.
-1152        """
-1153        if validate:
-1154            if self._msg[0:4]+self._msg[-4:] == b'GRIB7777':
-1155                return self._msg
-1156            else:
-1157                return None
-1158        else:
-1159            return self._msg
+            
1115    def to_bytes(self, validate=True):
+1116        """
+1117        Return packed GRIB2 message in bytes format.
+1118
+1119        This will be Useful for exporting data in non-file formats. For example, 
+1120        can be used to output grib data directly to S3 using the boto3 client 
+1121        without the need to write a temporary file to upload first.
+1122
+1123        Parameters
+1124        ----------
+1125        **`validate : bool, optional`**
+1126            If `True` (DEFAULT), validates first/last four bytes for proper
+1127            formatting, else returns None. If `False`, message is output as is.
+1128
+1129        Returns
+1130        -------
+1131        Returns GRIB2 formatted message as bytes.
+1132        """
+1133        if validate:
+1134            if self._msg[0:4]+self._msg[-4:] == b'GRIB7777':
+1135                return self._msg
+1136            else:
+1137                return None
+1138        else:
+1139            return self._msg
 
@@ -3655,63 +3639,63 @@

Returns

-
1162    def interpolate(self, method, grid_def_out, method_options=None):
-1163        """
-1164        Perform grid spatial interpolation via the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip).
-1165
-1166        **IMPORTANT:**  This interpolate method only supports scalar interpolation. If you
-1167        need to perform vector interpolation, use the module-level `grib2io.interpolate` function.
-1168
-1169        Parameters
-1170        ----------
-1171        **`method : int or str`**
-1172            Interpolate method to use. This can either be an integer or string using
-1173            the following mapping:
-1174
-1175        | Interpolate Scheme | Integer Value |
-1176        | :---:              | :---:         |
-1177        | 'bilinear'         | 0             |
-1178        | 'bicubic'          | 1             |
-1179        | 'neighbor'         | 2             |
-1180        | 'budget'           | 3             |
-1181        | 'spectral'         | 4             |
-1182        | 'neighbor-budget'  | 6             |
+            
1142    def interpolate(self, method, grid_def_out, method_options=None):
+1143        """
+1144        Perform grid spatial interpolation via the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip).
+1145
+1146        **IMPORTANT:**  This interpolate method only supports scalar interpolation. If you
+1147        need to perform vector interpolation, use the module-level `grib2io.interpolate` function.
+1148
+1149        Parameters
+1150        ----------
+1151        **`method : int or str`**
+1152            Interpolate method to use. This can either be an integer or string using
+1153            the following mapping:
+1154
+1155        | Interpolate Scheme | Integer Value |
+1156        | :---:              | :---:         |
+1157        | 'bilinear'         | 0             |
+1158        | 'bicubic'          | 1             |
+1159        | 'neighbor'         | 2             |
+1160        | 'budget'           | 3             |
+1161        | 'spectral'         | 4             |
+1162        | 'neighbor-budget'  | 6             |
+1163
+1164        **`grid_def_out : grib2io.Grib2GridDef`**
+1165            Grib2GridDef object of the output grid.
+1166
+1167        **`method_options : list of ints, optional`**
+1168            Interpolation options. See the NCEPLIBS-ip doucmentation for
+1169            more information on how these are used.
+1170
+1171        Returns
+1172        -------
+1173        If interpolating to a grid, a new Grib2Message object is returned.  The GRIB2 metadata of
+1174        the new Grib2Message object is indentical to the input except where required to be different
+1175        because of the new grid specs.
+1176
+1177        If interpolating to station points, the interpolated data values are returned as a numpy.ndarray.
+1178        """
+1179        section0 = self.section0
+1180        section0[-1] = 0
+1181        gds = [0, grid_def_out.npoints, 0, 255, grid_def_out.gdtn]
+1182        section3 = np.concatenate((gds,grid_def_out.gdt))
 1183
-1184        **`grid_def_out : grib2io.Grib2GridDef`**
-1185            Grib2GridDef object of the output grid.
+1184        msg = Grib2Message(section0,self.section1,self.section2,section3,
+1185                           self.section4,self.section5,self.bitMapFlag.value)
 1186
-1187        **`method_options : list of ints, optional`**
-1188            Interpolation options. See the NCEPLIBS-ip doucmentation for
-1189            more information on how these are used.
-1190
-1191        Returns
-1192        -------
-1193        If interpolating to a grid, a new Grib2Message object is returned.  The GRIB2 metadata of
-1194        the new Grib2Message object is indentical to the input except where required to be different
-1195        because of the new grid specs.
-1196
-1197        If interpolating to station points, the interpolated data values are returned as a numpy.ndarray.
-1198        """
-1199        section0 = self.section0
-1200        section0[-1] = 0
-1201        gds = [0, grid_def_out.npoints, 0, 255, grid_def_out.gdtn]
-1202        section3 = np.concatenate((gds,grid_def_out.gdt))
-1203
-1204        msg = Grib2Message(section0,self.section1,self.section2,section3,
-1205                           self.section4,self.section5,self.bitMapFlag.value)
-1206
-1207        msg._msgnum = -1
-1208        msg._deflist = self._deflist
-1209        msg._coordlist = self._coordlist
-1210        shape = (msg.ny,msg.nx)
-1211        ndim = 2
-1212        if msg.typeOfValues == 0:
-1213            dtype = 'float32'
-1214        elif msg.typeOfValues == 1:
-1215            dtype = 'int32'
-1216        msg._data = interpolate(self.data,method,Grib2GridDef.from_section3(self.section3),grid_def_out,
-1217                                method_options=method_options).reshape(msg.ny,msg.nx)
-1218        return msg
+1187        msg._msgnum = -1
+1188        msg._deflist = self._deflist
+1189        msg._coordlist = self._coordlist
+1190        shape = (msg.ny,msg.nx)
+1191        ndim = 2
+1192        if msg.typeOfValues == 0:
+1193            dtype = 'float32'
+1194        elif msg.typeOfValues == 1:
+1195            dtype = 'int32'
+1196        msg._data = interpolate(self.data,method,Grib2GridDef.from_section3(self.section3),grid_def_out,
+1197                                method_options=method_options).reshape(msg.ny,msg.nx)
+1198        return msg
 
@@ -3817,115 +3801,115 @@

Returns

-
1354def interpolate(a, method, grid_def_in, grid_def_out, method_options=None):
-1355    """
-1356    This is the module-level interpolation function that interfaces with the grib2io_interp
-1357    component pakcage that interfaces to the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip).
-1358
-1359    Parameters
-1360    ----------
-1361
-1362    **`a : numpy.ndarray or tuple`**
-1363        Input data.  If `a` is a `numpy.ndarray`, scalar interpolation will be
-1364        performed.  If `a` is a `tuple`, then vector interpolation will be performed
-1365        with the assumption that u = a[0] and v = a[1] and are both `numpy.ndarray`.
-1366
-1367        These data are expected to be in 2-dimensional form with shape (ny, nx) or
-1368        3-dimensional (:, ny, nx) where the 1st dimension represents another spatial,
-1369        temporal, or classification (i.e. ensemble members) dimension. The function will
-1370        properly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into
-1371        the interpolation subroutines.
-1372
-1373    **`method : int or str`**
-1374        Interpolate method to use. This can either be an integer or string using
-1375        the following mapping:
-1376
-1377    | Interpolate Scheme | Integer Value |
-1378    | :---:              | :---:         |
-1379    | 'bilinear'         | 0             |
-1380    | 'bicubic'          | 1             |
-1381    | 'neighbor'         | 2             |
-1382    | 'budget'           | 3             |
-1383    | 'spectral'         | 4             |
-1384    | 'neighbor-budget'  | 6             |
-1385
-1386    **`grid_def_in : grib2io.Grib2GridDef`**
-1387        Grib2GridDef object for the input grid.
-1388
-1389    **`grid_def_out : grib2io.Grib2GridDef`**
-1390        Grib2GridDef object for the output grid or station points.
-1391
-1392    **`method_options : list of ints, optional`**
-1393        Interpolation options. See the NCEPLIBS-ip doucmentation for
-1394        more information on how these are used.
-1395
-1396    Returns
-1397    -------
-1398    Returns a `numpy.ndarray` when scalar interpolation is performed or
-1399    a `tuple` of `numpy.ndarray`s when vector interpolation is performed
-1400    with the assumptions that 0-index is the interpolated u and 1-index
-1401    is the interpolated v.
-1402    """
-1403    from grib2io_interp import interpolate
-1404
-1405    if isinstance(method,int) and method not in _interp_schemes.values():
-1406        raise ValueError('Invalid interpolation method.')
-1407    elif isinstance(method,str):
-1408        if method in _interp_schemes.keys():
-1409            method = _interp_schemes[method]
-1410        else:
-1411            raise ValueError('Invalid interpolation method.')
-1412
-1413    if method_options is None:
-1414        method_options = np.zeros((20),dtype=np.int32)
-1415        if method in {3,6}:
-1416            method_options[0:2] = -1
-1417
-1418    ni = grid_def_in.npoints
-1419    no = grid_def_out.npoints
-1420
-1421    # Adjust shape of input array(s)
-1422    a,newshp = _adjust_array_shape_for_interp(a,grid_def_in,grid_def_out)
-1423
-1424    # Set lats and lons if stations, else create array for grids.
-1425    if grid_def_out.gdtn == -1:
-1426        rlat = np.array(grid_def_out.lats,dtype=np.float32)
-1427        rlon = np.array(grid_def_out.lons,dtype=np.float32)
-1428    else:
-1429        rlat = np.zeros((no),dtype=np.float32)
-1430        rlon = np.zeros((no),dtype=np.float32)
-1431
-1432    # Call interpolation subroutines according to type of a.
-1433    if isinstance(a,np.ndarray):
-1434        # Scalar
-1435        ibi = np.zeros((a.shape[0]),dtype=np.int32)
-1436        li = np.zeros(a.shape,dtype=np.int32)
-1437        go = np.zeros((a.shape[0],no),dtype=np.float32)
-1438        no,ibo,lo,iret = interpolate.interpolate_scalar(method,method_options,
-1439                                                 grid_def_in.gdtn,grid_def_in.gdt,
-1440                                                 grid_def_out.gdtn,grid_def_out.gdt,
-1441                                                 ibi,li.T,a.T,go.T,rlat,rlon)
-1442        out = go.reshape(newshp)
-1443    elif isinstance(a,tuple):
-1444        # Vector
-1445        ibi = np.zeros((a[0].shape[0]),dtype=np.int32)
-1446        li = np.zeros(a[0].shape,dtype=np.int32)
-1447        uo = np.zeros((a[0].shape[0],no),dtype=np.float32)
-1448        vo = np.zeros((a[1].shape[0],no),dtype=np.float32)
-1449        crot = np.ones((no),dtype=np.float32)
-1450        srot = np.zeros((no),dtype=np.float32)
-1451        no,ibo,lo,iret = interpolate.interpolate_vector(method,method_options,
-1452                                                 grid_def_in.gdtn,grid_def_in.gdt,
-1453                                                 grid_def_out.gdtn,grid_def_out.gdt,
-1454                                                 ibi,li.T,a[0].T,a[1].T,uo.T,vo.T,
-1455                                                 rlat,rlon,crot,srot)
-1456        del crot
-1457        del srot
-1458        out = (uo.reshape(newshp),vo.reshape(newshp))
-1459
-1460    del rlat
-1461    del rlon
-1462    return out
+            
1334def interpolate(a, method, grid_def_in, grid_def_out, method_options=None):
+1335    """
+1336    This is the module-level interpolation function that interfaces with the grib2io_interp
+1337    component pakcage that interfaces to the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip).
+1338
+1339    Parameters
+1340    ----------
+1341
+1342    **`a : numpy.ndarray or tuple`**
+1343        Input data.  If `a` is a `numpy.ndarray`, scalar interpolation will be
+1344        performed.  If `a` is a `tuple`, then vector interpolation will be performed
+1345        with the assumption that u = a[0] and v = a[1] and are both `numpy.ndarray`.
+1346
+1347        These data are expected to be in 2-dimensional form with shape (ny, nx) or
+1348        3-dimensional (:, ny, nx) where the 1st dimension represents another spatial,
+1349        temporal, or classification (i.e. ensemble members) dimension. The function will
+1350        properly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into
+1351        the interpolation subroutines.
+1352
+1353    **`method : int or str`**
+1354        Interpolate method to use. This can either be an integer or string using
+1355        the following mapping:
+1356
+1357    | Interpolate Scheme | Integer Value |
+1358    | :---:              | :---:         |
+1359    | 'bilinear'         | 0             |
+1360    | 'bicubic'          | 1             |
+1361    | 'neighbor'         | 2             |
+1362    | 'budget'           | 3             |
+1363    | 'spectral'         | 4             |
+1364    | 'neighbor-budget'  | 6             |
+1365
+1366    **`grid_def_in : grib2io.Grib2GridDef`**
+1367        Grib2GridDef object for the input grid.
+1368
+1369    **`grid_def_out : grib2io.Grib2GridDef`**
+1370        Grib2GridDef object for the output grid or station points.
+1371
+1372    **`method_options : list of ints, optional`**
+1373        Interpolation options. See the NCEPLIBS-ip doucmentation for
+1374        more information on how these are used.
+1375
+1376    Returns
+1377    -------
+1378    Returns a `numpy.ndarray` when scalar interpolation is performed or
+1379    a `tuple` of `numpy.ndarray`s when vector interpolation is performed
+1380    with the assumptions that 0-index is the interpolated u and 1-index
+1381    is the interpolated v.
+1382    """
+1383    from grib2io_interp import interpolate
+1384
+1385    if isinstance(method,int) and method not in _interp_schemes.values():
+1386        raise ValueError('Invalid interpolation method.')
+1387    elif isinstance(method,str):
+1388        if method in _interp_schemes.keys():
+1389            method = _interp_schemes[method]
+1390        else:
+1391            raise ValueError('Invalid interpolation method.')
+1392
+1393    if method_options is None:
+1394        method_options = np.zeros((20),dtype=np.int32)
+1395        if method in {3,6}:
+1396            method_options[0:2] = -1
+1397
+1398    ni = grid_def_in.npoints
+1399    no = grid_def_out.npoints
+1400
+1401    # Adjust shape of input array(s)
+1402    a,newshp = _adjust_array_shape_for_interp(a,grid_def_in,grid_def_out)
+1403
+1404    # Set lats and lons if stations, else create array for grids.
+1405    if grid_def_out.gdtn == -1:
+1406        rlat = np.array(grid_def_out.lats,dtype=np.float32)
+1407        rlon = np.array(grid_def_out.lons,dtype=np.float32)
+1408    else:
+1409        rlat = np.zeros((no),dtype=np.float32)
+1410        rlon = np.zeros((no),dtype=np.float32)
+1411
+1412    # Call interpolation subroutines according to type of a.
+1413    if isinstance(a,np.ndarray):
+1414        # Scalar
+1415        ibi = np.zeros((a.shape[0]),dtype=np.int32)
+1416        li = np.zeros(a.shape,dtype=np.int32)
+1417        go = np.zeros((a.shape[0],no),dtype=np.float32)
+1418        no,ibo,lo,iret = interpolate.interpolate_scalar(method,method_options,
+1419                                                 grid_def_in.gdtn,grid_def_in.gdt,
+1420                                                 grid_def_out.gdtn,grid_def_out.gdt,
+1421                                                 ibi,li.T,a.T,go.T,rlat,rlon)
+1422        out = go.reshape(newshp)
+1423    elif isinstance(a,tuple):
+1424        # Vector
+1425        ibi = np.zeros((a[0].shape[0]),dtype=np.int32)
+1426        li = np.zeros(a[0].shape,dtype=np.int32)
+1427        uo = np.zeros((a[0].shape[0],no),dtype=np.float32)
+1428        vo = np.zeros((a[1].shape[0],no),dtype=np.float32)
+1429        crot = np.ones((no),dtype=np.float32)
+1430        srot = np.zeros((no),dtype=np.float32)
+1431        no,ibo,lo,iret = interpolate.interpolate_vector(method,method_options,
+1432                                                 grid_def_in.gdtn,grid_def_in.gdt,
+1433                                                 grid_def_out.gdtn,grid_def_out.gdt,
+1434                                                 ibi,li.T,a[0].T,a[1].T,uo.T,vo.T,
+1435                                                 rlat,rlon,crot,srot)
+1436        del crot
+1437        del srot
+1438        out = (uo.reshape(newshp),vo.reshape(newshp))
+1439
+1440    del rlat
+1441    del rlon
+1442    return out
 
@@ -4016,135 +4000,135 @@

Returns

-
1465def interpolate_to_stations(a, method, grid_def_in, lats, lons, method_options=None):
-1466    """
-1467    This is the module-level interpolation function **for interpolation to stations**
-1468    that interfaces with the grib2io_interp component pakcage that interfaces to
-1469    the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip). It supports
-1470    scalar and vector interpolation according to the type of object a.
-1471
-1472    Parameters
-1473    ----------
-1474    **`a : numpy.ndarray or tuple`**
-1475        Input data.  If `a` is a `numpy.ndarray`, scalar interpolation will be
-1476        performed.  If `a` is a `tuple`, then vector interpolation will be performed
-1477        with the assumption that u = a[0] and v = a[1] and are both `numpy.ndarray`.
-1478
-1479        These data are expected to be in 2-dimensional form with shape (ny, nx) or
-1480        3-dimensional (:, ny, nx) where the 1st dimension represents another spatial,
-1481        temporal, or classification (i.e. ensemble members) dimension. The function will
-1482        properly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into
-1483        the interpolation subroutines.
-1484
-1485    **`method : int or str`**
-1486        Interpolate method to use. This can either be an integer or string using
-1487        the following mapping:
-1488
-1489    | Interpolate Scheme | Integer Value |
-1490    | :---:              | :---:         |
-1491    | 'bilinear'         | 0             |
-1492    | 'bicubic'          | 1             |
-1493    | 'neighbor'         | 2             |
-1494    | 'budget'           | 3             |
-1495    | 'spectral'         | 4             |
-1496    | 'neighbor-budget'  | 6             |
-1497
-1498    **`grid_def_in : grib2io.Grib2GridDef`**
-1499        Grib2GridDef object for the input grid.
-1500
-1501    **`lats : numpy.ndarray or list`**
-1502        Latitudes for station points
-1503
-1504    **`lons : numpy.ndarray or list`**
-1505        Longitudes for station points
-1506
-1507    **`method_options : list of ints, optional`**
-1508        Interpolation options. See the NCEPLIBS-ip doucmentation for
-1509        more information on how these are used.
-1510
-1511    Returns
-1512    -------
-1513    Returns a `numpy.ndarray` when scalar interpolation is performed or
-1514    a `tuple` of `numpy.ndarray`s when vector interpolation is performed
-1515    with the assumptions that 0-index is the interpolated u and 1-index
-1516    is the interpolated v.
-1517    """
-1518    from grib2io_interp import interpolate
-1519
-1520    if isinstance(method,int) and method not in _interp_schemes.values():
-1521        raise ValueError('Invalid interpolation method.')
-1522    elif isinstance(method,str):
-1523        if method in _interp_schemes.keys():
-1524            method = _interp_schemes[method]
-1525        else:
-1526            raise ValueError('Invalid interpolation method.')
-1527
-1528    if method_options is None:
-1529        method_options = np.zeros((20),dtype=np.int32)
-1530        if method in {3,6}:
-1531            method_options[0:2] = -1
-1532
-1533    # Check lats and lons
-1534    if isinstance(lats,list):
-1535        nlats = len(lats)
-1536    elif isinstance(lats,np.ndarray) and len(lats.shape) == 1:
-1537        nlats = lats.shape[0]
-1538    else:
-1539        raise ValueError('Station latitudes must be a list or 1-D NumPy array.')
-1540    if isinstance(lons,list):
-1541        nlons = len(lons)
-1542    elif isinstance(lons,np.ndarray) and len(lons.shape) == 1:
-1543        nlons = lons.shape[0]
-1544    else:
-1545        raise ValueError('Station longitudes must be a list or 1-D NumPy array.')
-1546    if nlats != nlons:
-1547        raise ValueError('Station lats and lons must be same size.')
-1548
-1549    ni = grid_def_in.npoints
-1550    no = nlats
-1551
-1552    # Adjust shape of input array(s)
-1553    a,newshp = _adjust_array_shape_for_interp_stations(a,grid_def_in,no)
-1554
-1555    # Set lats and lons if stations
-1556    rlat = np.array(lats,dtype=np.float32)
-1557    rlon = np.array(lons,dtype=np.float32)
-1558
-1559    # Use gdtn = -1 for stations and an empty template array
-1560    gdtn = -1
-1561    gdt = np.zeros((200),dtype=np.int32)
-1562
-1563    # Call interpolation subroutines according to type of a.
-1564    if isinstance(a,np.ndarray):
-1565        # Scalar
-1566        ibi = np.zeros((a.shape[0]),dtype=np.int32)
-1567        li = np.zeros(a.shape,dtype=np.int32)
-1568        go = np.zeros((a.shape[0],no),dtype=np.float32)
-1569        no,ibo,lo,iret = interpolate.interpolate_scalar(method,method_options,
-1570                                                 grid_def_in.gdtn,grid_def_in.gdt,
-1571                                                 gdtn,gdt,
-1572                                                 ibi,li.T,a.T,go.T,rlat,rlon)
-1573        out = go.reshape(newshp)
-1574    elif isinstance(a,tuple):
-1575        # Vector
-1576        ibi = np.zeros((a[0].shape[0]),dtype=np.int32)
-1577        li = np.zeros(a[0].shape,dtype=np.int32)
-1578        uo = np.zeros((a[0].shape[0],no),dtype=np.float32)
-1579        vo = np.zeros((a[1].shape[0],no),dtype=np.float32)
-1580        crot = np.ones((no),dtype=np.float32)
-1581        srot = np.zeros((no),dtype=np.float32)
-1582        no,ibo,lo,iret = interpolate.interpolate_vector(method,method_options,
-1583                                                 grid_def_in.gdtn,grid_def_in.gdt,
-1584                                                 gdtn,gdt,
-1585                                                 ibi,li.T,a[0].T,a[1].T,uo.T,vo.T,
-1586                                                 rlat,rlon,crot,srot)
-1587        del crot
-1588        del srot
-1589        out = (uo.reshape(newshp),vo.reshape(newshp))
-1590
-1591    del rlat
-1592    del rlon
-1593    return out
+            
1445def interpolate_to_stations(a, method, grid_def_in, lats, lons, method_options=None):
+1446    """
+1447    This is the module-level interpolation function **for interpolation to stations**
+1448    that interfaces with the grib2io_interp component pakcage that interfaces to
+1449    the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip). It supports
+1450    scalar and vector interpolation according to the type of object a.
+1451
+1452    Parameters
+1453    ----------
+1454    **`a : numpy.ndarray or tuple`**
+1455        Input data.  If `a` is a `numpy.ndarray`, scalar interpolation will be
+1456        performed.  If `a` is a `tuple`, then vector interpolation will be performed
+1457        with the assumption that u = a[0] and v = a[1] and are both `numpy.ndarray`.
+1458
+1459        These data are expected to be in 2-dimensional form with shape (ny, nx) or
+1460        3-dimensional (:, ny, nx) where the 1st dimension represents another spatial,
+1461        temporal, or classification (i.e. ensemble members) dimension. The function will
+1462        properly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into
+1463        the interpolation subroutines.
+1464
+1465    **`method : int or str`**
+1466        Interpolate method to use. This can either be an integer or string using
+1467        the following mapping:
+1468
+1469    | Interpolate Scheme | Integer Value |
+1470    | :---:              | :---:         |
+1471    | 'bilinear'         | 0             |
+1472    | 'bicubic'          | 1             |
+1473    | 'neighbor'         | 2             |
+1474    | 'budget'           | 3             |
+1475    | 'spectral'         | 4             |
+1476    | 'neighbor-budget'  | 6             |
+1477
+1478    **`grid_def_in : grib2io.Grib2GridDef`**
+1479        Grib2GridDef object for the input grid.
+1480
+1481    **`lats : numpy.ndarray or list`**
+1482        Latitudes for station points
+1483
+1484    **`lons : numpy.ndarray or list`**
+1485        Longitudes for station points
+1486
+1487    **`method_options : list of ints, optional`**
+1488        Interpolation options. See the NCEPLIBS-ip doucmentation for
+1489        more information on how these are used.
+1490
+1491    Returns
+1492    -------
+1493    Returns a `numpy.ndarray` when scalar interpolation is performed or
+1494    a `tuple` of `numpy.ndarray`s when vector interpolation is performed
+1495    with the assumptions that 0-index is the interpolated u and 1-index
+1496    is the interpolated v.
+1497    """
+1498    from grib2io_interp import interpolate
+1499
+1500    if isinstance(method,int) and method not in _interp_schemes.values():
+1501        raise ValueError('Invalid interpolation method.')
+1502    elif isinstance(method,str):
+1503        if method in _interp_schemes.keys():
+1504            method = _interp_schemes[method]
+1505        else:
+1506            raise ValueError('Invalid interpolation method.')
+1507
+1508    if method_options is None:
+1509        method_options = np.zeros((20),dtype=np.int32)
+1510        if method in {3,6}:
+1511            method_options[0:2] = -1
+1512
+1513    # Check lats and lons
+1514    if isinstance(lats,list):
+1515        nlats = len(lats)
+1516    elif isinstance(lats,np.ndarray) and len(lats.shape) == 1:
+1517        nlats = lats.shape[0]
+1518    else:
+1519        raise ValueError('Station latitudes must be a list or 1-D NumPy array.')
+1520    if isinstance(lons,list):
+1521        nlons = len(lons)
+1522    elif isinstance(lons,np.ndarray) and len(lons.shape) == 1:
+1523        nlons = lons.shape[0]
+1524    else:
+1525        raise ValueError('Station longitudes must be a list or 1-D NumPy array.')
+1526    if nlats != nlons:
+1527        raise ValueError('Station lats and lons must be same size.')
+1528
+1529    ni = grid_def_in.npoints
+1530    no = nlats
+1531
+1532    # Adjust shape of input array(s)
+1533    a,newshp = _adjust_array_shape_for_interp_stations(a,grid_def_in,no)
+1534
+1535    # Set lats and lons if stations
+1536    rlat = np.array(lats,dtype=np.float32)
+1537    rlon = np.array(lons,dtype=np.float32)
+1538
+1539    # Use gdtn = -1 for stations and an empty template array
+1540    gdtn = -1
+1541    gdt = np.zeros((200),dtype=np.int32)
+1542
+1543    # Call interpolation subroutines according to type of a.
+1544    if isinstance(a,np.ndarray):
+1545        # Scalar
+1546        ibi = np.zeros((a.shape[0]),dtype=np.int32)
+1547        li = np.zeros(a.shape,dtype=np.int32)
+1548        go = np.zeros((a.shape[0],no),dtype=np.float32)
+1549        no,ibo,lo,iret = interpolate.interpolate_scalar(method,method_options,
+1550                                                 grid_def_in.gdtn,grid_def_in.gdt,
+1551                                                 gdtn,gdt,
+1552                                                 ibi,li.T,a.T,go.T,rlat,rlon)
+1553        out = go.reshape(newshp)
+1554    elif isinstance(a,tuple):
+1555        # Vector
+1556        ibi = np.zeros((a[0].shape[0]),dtype=np.int32)
+1557        li = np.zeros(a[0].shape,dtype=np.int32)
+1558        uo = np.zeros((a[0].shape[0],no),dtype=np.float32)
+1559        vo = np.zeros((a[1].shape[0],no),dtype=np.float32)
+1560        crot = np.ones((no),dtype=np.float32)
+1561        srot = np.zeros((no),dtype=np.float32)
+1562        no,ibo,lo,iret = interpolate.interpolate_vector(method,method_options,
+1563                                                 grid_def_in.gdtn,grid_def_in.gdt,
+1564                                                 gdtn,gdt,
+1565                                                 ibi,li.T,a[0].T,a[1].T,uo.T,vo.T,
+1566                                                 rlat,rlon,crot,srot)
+1567        del crot
+1568        del srot
+1569        out = (uo.reshape(newshp),vo.reshape(newshp))
+1570
+1571    del rlat
+1572    del rlon
+1573    return out
 
@@ -4241,36 +4225,36 @@

Returns

-
1596@dataclass
-1597class Grib2GridDef:
-1598    """
-1599    Class to hold GRIB2 Grid Definition Template Number and Template as
-1600    class attributes. This allows for cleaner looking code when passing these
-1601    metadata around.  For example, the `grib2io._Grib2Message.interpolate`
-1602    method and `grib2io.interpolate` function accepts these objects.
-1603    """
-1604    gdtn: int
-1605    gdt: np.array
-1606
-1607    @classmethod
-1608    def from_section3(cls, section3):
-1609        return cls(section3[4],section3[5:])
-1610
-1611    @property
-1612    def nx(self):
-1613        return self.gdt[7]
-1614
-1615    @property
-1616    def ny(self):
-1617        return self.gdt[8]
-1618
-1619    @property
-1620    def npoints(self):
-1621        return self.gdt[7] * self.gdt[8]
-1622
-1623    @property
-1624    def shape(self):
-1625        return (self.ny, self.nx)
+            
1576@dataclass
+1577class Grib2GridDef:
+1578    """
+1579    Class to hold GRIB2 Grid Definition Template Number and Template as
+1580    class attributes. This allows for cleaner looking code when passing these
+1581    metadata around.  For example, the `grib2io._Grib2Message.interpolate`
+1582    method and `grib2io.interpolate` function accepts these objects.
+1583    """
+1584    gdtn: int
+1585    gdt: np.array
+1586
+1587    @classmethod
+1588    def from_section3(cls, section3):
+1589        return cls(section3[4],section3[5:])
+1590
+1591    @property
+1592    def nx(self):
+1593        return self.gdt[7]
+1594
+1595    @property
+1596    def ny(self):
+1597        return self.gdt[8]
+1598
+1599    @property
+1600    def npoints(self):
+1601        return self.gdt[7] * self.gdt[8]
+1602
+1603    @property
+1604    def shape(self):
+1605        return (self.ny, self.nx)
 
@@ -4327,9 +4311,9 @@

Returns

-
1607    @classmethod
-1608    def from_section3(cls, section3):
-1609        return cls(section3[4],section3[5:])
+            
1587    @classmethod
+1588    def from_section3(cls, section3):
+1589        return cls(section3[4],section3[5:])
 
@@ -4345,9 +4329,9 @@

Returns

-
1611    @property
-1612    def nx(self):
-1613        return self.gdt[7]
+            
1591    @property
+1592    def nx(self):
+1593        return self.gdt[7]
 
@@ -4363,9 +4347,9 @@

Returns

-
1615    @property
-1616    def ny(self):
-1617        return self.gdt[8]
+            
1595    @property
+1596    def ny(self):
+1597        return self.gdt[8]
 
@@ -4381,9 +4365,9 @@

Returns

-
1619    @property
-1620    def npoints(self):
-1621        return self.gdt[7] * self.gdt[8]
+            
1599    @property
+1600    def npoints(self):
+1601        return self.gdt[7] * self.gdt[8]
 
@@ -4399,9 +4383,9 @@

Returns

-
1623    @property
-1624    def shape(self):
-1625        return (self.ny, self.nx)
+            
1603    @property
+1604    def shape(self):
+1605        return (self.ny, self.nx)
 
diff --git a/docs/grib2io/tables.html b/docs/grib2io/tables.html index 178acd5..24c09e5 100644 --- a/docs/grib2io/tables.html +++ b/docs/grib2io/tables.html @@ -3,7 +3,7 @@ - + grib2io.tables API documentation diff --git a/docs/grib2io/tables/originating_centers.html b/docs/grib2io/tables/originating_centers.html index ace94a3..897a39b 100644 --- a/docs/grib2io/tables/originating_centers.html +++ b/docs/grib2io/tables/originating_centers.html @@ -3,7 +3,7 @@ - + grib2io.tables.originating_centers API documentation diff --git a/docs/grib2io/tables/section0.html b/docs/grib2io/tables/section0.html index 49265ee..2eb0dc7 100644 --- a/docs/grib2io/tables/section0.html +++ b/docs/grib2io/tables/section0.html @@ -3,7 +3,7 @@ - + grib2io.tables.section0 API documentation diff --git a/docs/grib2io/tables/section1.html b/docs/grib2io/tables/section1.html index e3bbb4d..924e608 100644 --- a/docs/grib2io/tables/section1.html +++ b/docs/grib2io/tables/section1.html @@ -3,7 +3,7 @@ - + grib2io.tables.section1 API documentation diff --git a/docs/grib2io/tables/section3.html b/docs/grib2io/tables/section3.html index dca9ac5..7dbf6df 100644 --- a/docs/grib2io/tables/section3.html +++ b/docs/grib2io/tables/section3.html @@ -3,7 +3,7 @@ - + grib2io.tables.section3 API documentation diff --git a/docs/grib2io/tables/section4.html b/docs/grib2io/tables/section4.html index b517924..04c06d2 100644 --- a/docs/grib2io/tables/section4.html +++ b/docs/grib2io/tables/section4.html @@ -3,7 +3,7 @@ - + grib2io.tables.section4 API documentation diff --git a/docs/grib2io/tables/section4_discipline0.html b/docs/grib2io/tables/section4_discipline0.html index 04acfe0..c805722 100644 --- a/docs/grib2io/tables/section4_discipline0.html +++ b/docs/grib2io/tables/section4_discipline0.html @@ -3,7 +3,7 @@ - + grib2io.tables.section4_discipline0 API documentation diff --git a/docs/grib2io/tables/section4_discipline1.html b/docs/grib2io/tables/section4_discipline1.html index d5078f1..2f7b12a 100644 --- a/docs/grib2io/tables/section4_discipline1.html +++ b/docs/grib2io/tables/section4_discipline1.html @@ -3,7 +3,7 @@ - + grib2io.tables.section4_discipline1 API documentation diff --git a/docs/grib2io/tables/section4_discipline10.html b/docs/grib2io/tables/section4_discipline10.html index e2a4ec2..5db727c 100644 --- a/docs/grib2io/tables/section4_discipline10.html +++ b/docs/grib2io/tables/section4_discipline10.html @@ -3,7 +3,7 @@ - + grib2io.tables.section4_discipline10 API documentation diff --git a/docs/grib2io/tables/section4_discipline2.html b/docs/grib2io/tables/section4_discipline2.html index bc1fd60..9bd30e3 100644 --- a/docs/grib2io/tables/section4_discipline2.html +++ b/docs/grib2io/tables/section4_discipline2.html @@ -3,7 +3,7 @@ - + grib2io.tables.section4_discipline2 API documentation diff --git a/docs/grib2io/tables/section4_discipline20.html b/docs/grib2io/tables/section4_discipline20.html index 70e9a88..ad67e47 100644 --- a/docs/grib2io/tables/section4_discipline20.html +++ b/docs/grib2io/tables/section4_discipline20.html @@ -3,7 +3,7 @@ - + grib2io.tables.section4_discipline20 API documentation diff --git a/docs/grib2io/tables/section4_discipline209.html b/docs/grib2io/tables/section4_discipline209.html index 07a40b3..0ae0462 100644 --- a/docs/grib2io/tables/section4_discipline209.html +++ b/docs/grib2io/tables/section4_discipline209.html @@ -3,7 +3,7 @@ - + grib2io.tables.section4_discipline209 API documentation diff --git a/docs/grib2io/tables/section4_discipline3.html b/docs/grib2io/tables/section4_discipline3.html index 9dd65f7..657ef3e 100644 --- a/docs/grib2io/tables/section4_discipline3.html +++ b/docs/grib2io/tables/section4_discipline3.html @@ -3,7 +3,7 @@ - + grib2io.tables.section4_discipline3 API documentation diff --git a/docs/grib2io/tables/section4_discipline4.html b/docs/grib2io/tables/section4_discipline4.html index ca3c404..70e2311 100644 --- a/docs/grib2io/tables/section4_discipline4.html +++ b/docs/grib2io/tables/section4_discipline4.html @@ -3,7 +3,7 @@ - + grib2io.tables.section4_discipline4 API documentation diff --git a/docs/grib2io/tables/section5.html b/docs/grib2io/tables/section5.html index 30dd1f7..498b766 100644 --- a/docs/grib2io/tables/section5.html +++ b/docs/grib2io/tables/section5.html @@ -3,7 +3,7 @@ - + grib2io.tables.section5 API documentation diff --git a/docs/grib2io/tables/section6.html b/docs/grib2io/tables/section6.html index 248f8a6..18e413f 100644 --- a/docs/grib2io/tables/section6.html +++ b/docs/grib2io/tables/section6.html @@ -3,7 +3,7 @@ - + grib2io.tables.section6 API documentation diff --git a/docs/grib2io/templates.html b/docs/grib2io/templates.html index b12dd6c..ae81182 100644 --- a/docs/grib2io/templates.html +++ b/docs/grib2io/templates.html @@ -3,7 +3,7 @@ - + grib2io.templates API documentation diff --git a/docs/grib2io/utils.html b/docs/grib2io/utils.html index 14f7a32..8a4bbeb 100644 --- a/docs/grib2io/utils.html +++ b/docs/grib2io/utils.html @@ -3,7 +3,7 @@ - + grib2io.utils API documentation diff --git a/docs/grib2io/utils/arakawa_rotated_grid.html b/docs/grib2io/utils/arakawa_rotated_grid.html index 24c614e..eb5b28b 100644 --- a/docs/grib2io/utils/arakawa_rotated_grid.html +++ b/docs/grib2io/utils/arakawa_rotated_grid.html @@ -3,7 +3,7 @@ - + grib2io.utils.arakawa_rotated_grid API documentation diff --git a/docs/grib2io/utils/gauss_grid.html b/docs/grib2io/utils/gauss_grid.html index fb3bbe2..d6ac0a4 100644 --- a/docs/grib2io/utils/gauss_grid.html +++ b/docs/grib2io/utils/gauss_grid.html @@ -3,7 +3,7 @@ - + grib2io.utils.gauss_grid API documentation @@ -135,7 +135,7 @@

def - gaussian_latitudes(nlat): + gaussian_latitudes(): diff --git a/docs/grib2io/utils/rotated_grid.html b/docs/grib2io/utils/rotated_grid.html index 10e37f2..5a4ddce 100644 --- a/docs/grib2io/utils/rotated_grid.html +++ b/docs/grib2io/utils/rotated_grid.html @@ -3,7 +3,7 @@ - + grib2io.utils.rotated_grid API documentation diff --git a/docs/search.js b/docs/search.js index c5e37e0..99dc3e4 100644 --- a/docs/search.js +++ b/docs/search.js @@ -1,6 +1,6 @@ window.pdocSearch = (function(){ /** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();oIntroduction

\n\n

grib2io is a Python package that provides an interface to the NCEP GRIB2 C (g2c)\nlibrary for the purpose of reading and writing WMO GRIdded Binary, Edition 2 (GRIB2) messages. A physical file can contain one\nor more GRIB2 messages.

\n\n

GRIB2 file IO is performed directly in Python. The unpacking/packing of GRIB2 integer, coded metadata and data sections is performed\nby the g2c library functions via the g2clib Cython wrapper module. The decoding/encoding of GRIB2 metadata is translated into more\ndescriptive, plain language metadata by looking up the integer code values against the appropriate GRIB2 code tables. These code tables\nare a part of the grib2io module.

\n\n

Tutorials

\n\n

The following Jupyter Notebooks are available as tutorials:

\n\n\n"}, {"fullname": "grib2io.open", "modulename": "grib2io", "qualname": "open", "kind": "class", "doc": "

GRIB2 File Object.

\n\n

A physical file can contain one or more GRIB2 messages. When instantiated, class grib2io.open, \nthe file named filename is opened for reading (mode = 'r') and is automatically indexed.
\nThe indexing procedure reads some of the GRIB2 metadata for all GRIB2 Messages. A GRIB2 Message \nmay contain submessages whereby Section 2-7 can be repeated. grib2io accommodates for this by \nflattening any GRIB2 submessages into multiple individual messages.

\n\n

Attributes

\n\n

mode : str\n File IO mode of opening the file.

\n\n

name : str\n Full path name of the GRIB2 file.

\n\n

messages : int\n Count of GRIB2 Messages contained in the file.

\n\n

current_message : int\n Current position of the file in units of GRIB2 Messages.

\n\n

size : int\n Size of the file in units of bytes.

\n\n

closed : bool\n True is file handle is close; False otherwise.

\n\n

variables : tuple\n Tuple containing a unique list of variable short names (i.e. GRIB2 abbreviation names).

\n\n

levels : tuple\n Tuple containing a unique list of wgrib2-formatted level/layer strings.

\n"}, {"fullname": "grib2io.open.__init__", "modulename": "grib2io", "qualname": "open.__init__", "kind": "function", "doc": "

Initialize GRIB2 File object instance.

\n\n

Parameters

\n\n

filename : str\n File name containing GRIB2 messages.

\n\n

mode : str, optional\n File access mode where r opens the files for reading only; w opens the file for writing.

\n", "signature": "(filename, mode='r', **kwargs)"}, {"fullname": "grib2io.open.mode", "modulename": "grib2io", "qualname": "open.mode", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.name", "modulename": "grib2io", "qualname": "open.name", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.messages", "modulename": "grib2io", "qualname": "open.messages", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.current_message", "modulename": "grib2io", "qualname": "open.current_message", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.size", "modulename": "grib2io", "qualname": "open.size", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.closed", "modulename": "grib2io", "qualname": "open.closed", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.levels", "modulename": "grib2io", "qualname": "open.levels", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.variables", "modulename": "grib2io", "qualname": "open.variables", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.close", "modulename": "grib2io", "qualname": "open.close", "kind": "function", "doc": "

Close the file handle

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "grib2io.open.read", "modulename": "grib2io", "qualname": "open.read", "kind": "function", "doc": "

Read size amount of GRIB2 messages from the current position.

\n\n

If no argument is given, then size is None and all messages are returned from \nthe current position in the file. This read method follows the behavior of \nPython's builtin open() function, but whereas that operates on units of bytes, \nwe operate on units of GRIB2 messages.

\n\n

Parameters

\n\n

size : int, optional\n The number of GRIB2 messages to read from the current position. If no argument is\n give, the default value is None and remainder of the file is read.

\n\n

Returns

\n\n

Grib2Message object when size = 1 or a list of Grib2Messages when size > 1.

\n", "signature": "(self, size=None):", "funcdef": "def"}, {"fullname": "grib2io.open.seek", "modulename": "grib2io", "qualname": "open.seek", "kind": "function", "doc": "

Set the position within the file in units of GRIB2 messages.

\n\n

Parameters

\n\n

pos : int\n The GRIB2 Message number to set the file pointer to.

\n", "signature": "(self, pos):", "funcdef": "def"}, {"fullname": "grib2io.open.tell", "modulename": "grib2io", "qualname": "open.tell", "kind": "function", "doc": "

Returns the position of the file in units of GRIB2 Messages.

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "grib2io.open.select", "modulename": "grib2io", "qualname": "open.select", "kind": "function", "doc": "

Select GRIB2 messages by Grib2Message attributes.

\n", "signature": "(self, **kwargs):", "funcdef": "def"}, {"fullname": "grib2io.open.write", "modulename": "grib2io", "qualname": "open.write", "kind": "function", "doc": "

Writes GRIB2 message object to file.

\n\n

Parameters

\n\n

msg : Grib2Message or sequence of Grib2Messages\n GRIB2 message objects to write to file.

\n", "signature": "(self, msg):", "funcdef": "def"}, {"fullname": "grib2io.open.flush", "modulename": "grib2io", "qualname": "open.flush", "kind": "function", "doc": "

Flush the file object buffer.

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "grib2io.open.levels_by_var", "modulename": "grib2io", "qualname": "open.levels_by_var", "kind": "function", "doc": "

Return a list of level strings given a variable shortName.

\n\n

Parameters

\n\n

name : str\n Grib2Message variable shortName

\n\n

Returns

\n\n

A list of strings of unique level strings.

\n", "signature": "(self, name):", "funcdef": "def"}, {"fullname": "grib2io.open.vars_by_level", "modulename": "grib2io", "qualname": "open.vars_by_level", "kind": "function", "doc": "

Return a list of variable shortName strings given a level.

\n\n

Parameters

\n\n

level : str\n Grib2Message variable level

\n\n

Returns

\n\n

A list of strings of variable shortName strings.

\n", "signature": "(self, level):", "funcdef": "def"}, {"fullname": "grib2io.Grib2Message", "modulename": "grib2io", "qualname": "Grib2Message", "kind": "class", "doc": "

Creation class for a GRIB2 message.

\n"}, {"fullname": "grib2io.show_config", "modulename": "grib2io", "qualname": "show_config", "kind": "function", "doc": "

Print grib2io build configuration information.

\n", "signature": "():", "funcdef": "def"}, {"fullname": "grib2io.interpolate", "modulename": "grib2io", "qualname": "interpolate", "kind": "function", "doc": "

This is the module-level interpolation function that interfaces with the grib2io_interp\ncomponent pakcage that interfaces to the NCEPLIBS-ip library.

\n\n

Parameters

\n\n

a : numpy.ndarray or tuple\n Input data. If a is a numpy.ndarray, scalar interpolation will be\n performed. If a is a tuple, then vector interpolation will be performed\n with the assumption that u = a[0] and v = a[1] and are both numpy.ndarray.

\n\n
These data are expected to be in 2-dimensional form with shape (ny, nx) or\n3-dimensional (:, ny, nx) where the 1st dimension represents another spatial,\ntemporal, or classification (i.e. ensemble members) dimension. The function will\nproperly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into\nthe interpolation subroutines.\n
\n\n

method : int or str\n Interpolate method to use. This can either be an integer or string using\n the following mapping:

\n\n\n\n\n \n \n\n\n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n
Interpolate SchemeInteger Value
'bilinear'0
'bicubic'1
'neighbor'2
'budget'3
'spectral'4
'neighbor-budget'6
\n\n

grid_def_in : grib2io.Grib2GridDef\n Grib2GridDef object for the input grid.

\n\n

grid_def_out : grib2io.Grib2GridDef\n Grib2GridDef object for the output grid or station points.

\n\n

method_options : list of ints, optional\n Interpolation options. See the NCEPLIBS-ip doucmentation for\n more information on how these are used.

\n\n

Returns

\n\n

Returns a numpy.ndarray when scalar interpolation is performed or\na tuple of numpy.ndarrays when vector interpolation is performed\nwith the assumptions that 0-index is the interpolated u and 1-index\nis the interpolated v.

\n", "signature": "(a, method, grid_def_in, grid_def_out, method_options=None):", "funcdef": "def"}, {"fullname": "grib2io.interpolate_to_stations", "modulename": "grib2io", "qualname": "interpolate_to_stations", "kind": "function", "doc": "

This is the module-level interpolation function for interpolation to stations\nthat interfaces with the grib2io_interp component pakcage that interfaces to\nthe NCEPLIBS-ip library. It supports\nscalar and vector interpolation according to the type of object a.

\n\n

Parameters

\n\n

a : numpy.ndarray or tuple\n Input data. If a is a numpy.ndarray, scalar interpolation will be\n performed. If a is a tuple, then vector interpolation will be performed\n with the assumption that u = a[0] and v = a[1] and are both numpy.ndarray.

\n\n
These data are expected to be in 2-dimensional form with shape (ny, nx) or\n3-dimensional (:, ny, nx) where the 1st dimension represents another spatial,\ntemporal, or classification (i.e. ensemble members) dimension. The function will\nproperly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into\nthe interpolation subroutines.\n
\n\n

method : int or str\n Interpolate method to use. This can either be an integer or string using\n the following mapping:

\n\n\n\n\n \n \n\n\n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n
Interpolate SchemeInteger Value
'bilinear'0
'bicubic'1
'neighbor'2
'budget'3
'spectral'4
'neighbor-budget'6
\n\n

grid_def_in : grib2io.Grib2GridDef\n Grib2GridDef object for the input grid.

\n\n

lats : numpy.ndarray or list\n Latitudes for station points

\n\n

lons : numpy.ndarray or list\n Longitudes for station points

\n\n

method_options : list of ints, optional\n Interpolation options. See the NCEPLIBS-ip doucmentation for\n more information on how these are used.

\n\n

Returns

\n\n

Returns a numpy.ndarray when scalar interpolation is performed or\na tuple of numpy.ndarrays when vector interpolation is performed\nwith the assumptions that 0-index is the interpolated u and 1-index\nis the interpolated v.

\n", "signature": "(a, method, grid_def_in, lats, lons, method_options=None):", "funcdef": "def"}, {"fullname": "grib2io.Grib2GridDef", "modulename": "grib2io", "qualname": "Grib2GridDef", "kind": "class", "doc": "

Class to hold GRIB2 Grid Definition Template Number and Template as\nclass attributes. This allows for cleaner looking code when passing these\nmetadata around. For example, the grib2io._Grib2Message.interpolate\nmethod and grib2io.interpolate function accepts these objects.

\n"}, {"fullname": "grib2io.Grib2GridDef.__init__", "modulename": "grib2io", "qualname": "Grib2GridDef.__init__", "kind": "function", "doc": "

\n", "signature": "(gdtn: int, gdt: <built-in function array>)"}, {"fullname": "grib2io.Grib2GridDef.gdtn", "modulename": "grib2io", "qualname": "Grib2GridDef.gdtn", "kind": "variable", "doc": "

\n", "annotation": ": int"}, {"fullname": "grib2io.Grib2GridDef.gdt", "modulename": "grib2io", "qualname": "Grib2GridDef.gdt", "kind": "variable", "doc": "

\n", "annotation": ": <built-in function array>"}, {"fullname": "grib2io.Grib2GridDef.from_section3", "modulename": "grib2io", "qualname": "Grib2GridDef.from_section3", "kind": "function", "doc": "

\n", "signature": "(cls, section3):", "funcdef": "def"}, {"fullname": "grib2io.Grib2GridDef.nx", "modulename": "grib2io", "qualname": "Grib2GridDef.nx", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.Grib2GridDef.ny", "modulename": "grib2io", "qualname": "Grib2GridDef.ny", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.Grib2GridDef.npoints", "modulename": "grib2io", "qualname": "Grib2GridDef.npoints", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.Grib2GridDef.shape", "modulename": "grib2io", "qualname": "Grib2GridDef.shape", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.tables", "modulename": "grib2io.tables", "kind": "module", "doc": "

Functions for retreiving data from NCEP GRIB2 Tables.

\n"}, {"fullname": "grib2io.tables.GRIB2_DISCIPLINES", "modulename": "grib2io.tables", "qualname": "GRIB2_DISCIPLINES", "kind": "variable", "doc": "

\n", "default_value": "[0, 1, 2, 3, 4, 10, 20]"}, {"fullname": "grib2io.tables.get_table", "modulename": "grib2io.tables", "qualname": "get_table", "kind": "function", "doc": "

Return GRIB2 code table as a dictionary.

\n\n

Parameters

\n\n

table : str\n Code table number (e.g. '1.0'). NOTE: Code table '4.1' requires a 3rd value\n representing the product discipline (e.g. '4.1.0').

\n\n

expand : bool, optional\n If True, expand output dictionary where keys are a range.

\n\n

Returns

\n\n

Table as a dict.

\n", "signature": "(table, expand=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_value_from_table", "modulename": "grib2io.tables", "qualname": "get_value_from_table", "kind": "function", "doc": "

Return the definition given a GRIB2 code table.

\n\n

Parameters

\n\n

value : int or str\n Code table value.

\n\n

table : str\n Code table number.

\n\n

expand : bool, optional\n If True, expand output dictionary where keys are a range.

\n\n

Returns

\n\n

Table value or None if not found.

\n", "signature": "(value, table, expand=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_varinfo_from_table", "modulename": "grib2io.tables", "qualname": "get_varinfo_from_table", "kind": "function", "doc": "

Return the GRIB2 variable information given values of discipline,\nparmcat, and parmnum. NOTE: This functions allows for all arguments\nto be converted to a string type if arguments are integer.

\n\n

Parameters

\n\n

discipline : int or str\n Discipline code value of a GRIB2 message.

\n\n

parmcat : int or str\n Parameter Category value of a GRIB2 message.

\n\n

parmnum : int or str\n Parameter Number value of a GRIB2 message.

\n\n

isNDFD : bool, optional\n If True, signals function to try to get variable information from \n the supplemental NDFD tables.

\n\n

Returns

\n\n

list containing variable information. \"Unknown\" is given for item of\ninformation if variable is not found.\n - list[0] = full name\n - list[1] = units\n - list[2] = short name (abbreviated name)

\n", "signature": "(discipline, parmcat, parmnum, isNDFD=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_shortnames", "modulename": "grib2io.tables", "qualname": "get_shortnames", "kind": "function", "doc": "

Returns a list of variable shortNames given GRIB2 discipline, parameter\ncategory, and parameter number. If all 3 args are None, then shortNames\nfrom all disciplines, parameter categories, and numbers will be returned.

\n\n

Parameters

\n\n

discipline : int\n GRIB2 discipline code value.

\n\n

parmcat : int\n GRIB2 parameter category value.

\n\n

parmnum : int or str\n Parameter Number value of a GRIB2 message.

\n\n

Returns

\n\n

list of GRIB2 shortNames.

\n", "signature": "(discipline=None, parmcat=None, parmnum=None, isNDFD=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_metadata_from_shortname", "modulename": "grib2io.tables", "qualname": "get_metadata_from_shortname", "kind": "function", "doc": "

Provide GRIB2 variable metadata attributes given a GRIB2 shortName.

\n\n

Parameters

\n\n

shortname : str\n GRIB2 variable shortName.

\n\n

Returns

\n\n

list of dictionary items where each dictionary items contains the variable\nmetadata key:value pairs. NOTE: Some variable shortNames will exist in multiple\nparameter category/number tables according to the GRIB2 discipline.

\n", "signature": "(shortname):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_wgrib2_level_string", "modulename": "grib2io.tables", "qualname": "get_wgrib2_level_string", "kind": "function", "doc": "

Return a string that describes the level or layer of the GRIB2 message. The\nformat and language of the string is an exact replica of how wgrib2 produces\nthe level/layer string in its inventory output.

\n\n

Contents of wgrib2 source, Level.c,\nwere converted into a Python dictionary and stored in grib2io as table\n'wgrib2_level_string'.

\n\n

Parameters

\n\n

pdtn : int\n GRIB2 Product Definition Template Number

\n\n

pdt : list or array_like\n Sequence containing GRIB2 Product Definition Template (Section 4).

\n\n

Returns

\n\n

wgrib2-formatted level/layer string.

\n", "signature": "(pdtn, pdt):", "funcdef": "def"}, {"fullname": "grib2io.tables.originating_centers", "modulename": "grib2io.tables.originating_centers", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.originating_centers.table_originating_centers", "modulename": "grib2io.tables.originating_centers", "qualname": "table_originating_centers", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Melbourne (WMC)', '2': 'Melbourne (WMC)', '3': 'Melbourne (WMC)', '4': 'Moscow (WMC)', '5': 'Moscow (WMC)', '6': 'Moscow (WMC)', '7': 'US National Weather Service - NCEP (WMC)', '8': 'US National Weather Service - NWSTG (WMC)', '9': 'US National Weather Service - Other (WMC)', '10': 'Cairo (RSMC/RAFC)', '11': 'Cairo (RSMC/RAFC)', '12': 'Dakar (RSMC/RAFC)', '13': 'Dakar (RSMC/RAFC)', '14': 'Nairobi (RSMC/RAFC)', '15': 'Nairobi (RSMC/RAFC)', '16': 'Casablanca (RSMC)', '17': 'Tunis (RSMC)', '18': 'Tunis-Casablanca (RSMC)', '19': 'Tunis-Casablanca (RSMC)', '20': 'Las Palmas (RAFC)', '21': 'Algiers (RSMC)', '22': 'ACMAD', '23': 'Mozambique (NMC)', '24': 'Pretoria (RSMC)', '25': 'La Reunion (RSMC)', '26': 'Khabarovsk (RSMC)', '27': 'Khabarovsk (RSMC)', '28': 'New Delhi (RSMC/RAFC)', '29': 'New Delhi (RSMC/RAFC)', '30': 'Novosibirsk (RSMC)', '31': 'Novosibirsk (RSMC)', '32': 'Tashkent (RSMC)', '33': 'Jeddah (RSMC)', '34': 'Tokyo (RSMC), Japanese Meteorological Agency', '35': 'Tokyo (RSMC), Japanese Meteorological Agency', '36': 'Bankok', '37': 'Ulan Bator', '38': 'Beijing (RSMC)', '39': 'Beijing (RSMC)', '40': 'Seoul', '41': 'Buenos Aires (RSMC/RAFC)', '42': 'Buenos Aires (RSMC/RAFC)', '43': 'Brasilia (RSMC/RAFC)', '44': 'Brasilia (RSMC/RAFC)', '45': 'Santiago', '46': 'Brazilian Space Agency - INPE', '47': 'Columbia (NMC)', '48': 'Ecuador (NMC)', '49': 'Peru (NMC)', '50': 'Venezuela (NMC)', '51': 'Miami (RSMC/RAFC)', '52': 'Miami (RSMC), National Hurricane Center', '53': 'Canadian Meteorological Service - Montreal (RSMC)', '54': 'Canadian Meteorological Service - Montreal (RSMC)', '55': 'San Francisco', '56': 'ARINC Center', '57': 'US Air Force - Air Force Global Weather Center', '58': 'Fleet Numerical Meteorology and Oceanography Center,Monterey,CA,USA', '59': 'The NOAA Forecast Systems Lab, Boulder, CO, USA', '60': 'National Center for Atmospheric Research (NCAR), Boulder, CO', '61': 'Service ARGOS - Landover, MD, USA', '62': 'US Naval Oceanographic Office', '63': 'International Research Institude for Climate and Society', '64': 'Honolulu', '65': 'Darwin (RSMC)', '66': 'Darwin (RSMC)', '67': 'Melbourne (RSMC)', '68': 'Reserved', '69': 'Wellington (RSMC/RAFC)', '70': 'Wellington (RSMC/RAFC)', '71': 'Nadi (RSMC)', '72': 'Singapore', '73': 'Malaysia (NMC)', '74': 'U.K. Met Office - Exeter (RSMC)', '75': 'U.K. Met Office - Exeter (RSMC)', '76': 'Moscow (RSMC/RAFC)', '77': 'Reserved', '78': 'Offenbach (RSMC)', '79': 'Offenbach (RSMC)', '80': 'Rome (RSMC)', '81': 'Rome (RSMC)', '82': 'Norrkoping', '83': 'Norrkoping', '84': 'French Weather Service - Toulouse', '85': 'French Weather Service - Toulouse', '86': 'Helsinki', '87': 'Belgrade', '88': 'Oslo', '89': 'Prague', '90': 'Episkopi', '91': 'Ankara', '92': 'Frankfurt/Main (RAFC)', '93': 'London (WAFC)', '94': 'Copenhagen', '95': 'Rota', '96': 'Athens', '97': 'European Space Agency (ESA)', '98': 'European Center for Medium-Range Weather Forecasts (RSMC)', '99': 'De Bilt, Netherlands', '100': 'Brazzaville', '101': 'Abidjan', '102': 'Libyan Arab Jamahiriya (NMC)', '103': 'Madagascar (NMC)', '104': 'Mauritius (NMC)', '105': 'Niger (NMC)', '106': 'Seychelles (NMC)', '107': 'Uganda (NMC)', '108': 'United Republic of Tanzania (NMC)', '109': 'Zimbabwe (NMC)', '110': 'Hong-Kong', '111': 'Afghanistan (NMC)', '112': 'Bahrain (NMC)', '113': 'Bangladesh (NMC)', '114': 'Bhutan (NMC)', '115': 'Cambodia (NMC)', '116': 'Democratic Peoples Republic of Korea (NMC)', '117': 'Islamic Republic of Iran (NMC)', '118': 'Iraq (NMC)', '119': 'Kazakhstan (NMC)', '120': 'Kuwait (NMC)', '121': 'Kyrgyz Republic (NMC)', '122': 'Lao Peoples Democratic Republic (NMC)', '123': 'Macao, China', '124': 'Maldives (NMC)', '125': 'Myanmar (NMC)', '126': 'Nepal (NMC)', '127': 'Oman (NMC)', '128': 'Pakistan (NMC)', '129': 'Qatar (NMC)', '130': 'Yemen (NMC)', '131': 'Sri Lanka (NMC)', '132': 'Tajikistan (NMC)', '133': 'Turkmenistan (NMC)', '134': 'United Arab Emirates (NMC)', '135': 'Uzbekistan (NMC)', '136': 'Viet Nam (NMC)', '137-139': 'Reserved', '140': 'Bolivia (NMC)', '141': 'Guyana (NMC)', '142': 'Paraguay (NMC)', '143': 'Suriname (NMC)', '144': 'Uruguay (NMC)', '145': 'French Guyana', '146': 'Brazilian Navy Hydrographic Center', '147': 'National Commission on Space Activities - Argentina', '148': 'Brazilian Department of Airspace Control - DECEA', '149': 'Reserved', '150': 'Antigua and Barbuda (NMC)', '151': 'Bahamas (NMC)', '152': 'Barbados (NMC)', '153': 'Belize (NMC)', '154': 'British Caribbean Territories Center', '155': 'San Jose', '156': 'Cuba (NMC)', '157': 'Dominica (NMC)', '158': 'Dominican Republic (NMC)', '159': 'El Salvador (NMC)', '160': 'US NOAA/NESDIS', '161': 'US NOAA Office of Oceanic and Atmospheric Research', '162': 'Guatemala (NMC)', '163': 'Haiti (NMC)', '164': 'Honduras (NMC)', '165': 'Jamaica (NMC)', '166': 'Mexico City', '167': 'Netherlands Antilles and Aruba (NMC)', '168': 'Nicaragua (NMC)', '169': 'Panama (NMC)', '170': 'Saint Lucia (NMC)', '171': 'Trinidad and Tobago (NMC)', '172': 'French Departments in RA IV', '173': 'US National Aeronautics and Space Administration (NASA)', '174': 'Integrated System Data Management/Marine Environmental Data Service (ISDM/MEDS) - Canada', '175': 'Reserved', '176': 'US Cooperative Institude for Meteorological Satellite Studies', '177-189': 'Reserved', '190': 'Cook Islands (NMC)', '191': 'French Polynesia (NMC)', '192': 'Tonga (NMC)', '193': 'Vanuatu (NMC)', '194': 'Brunei (NMC)', '195': 'Indonesia (NMC)', '196': 'Kiribati (NMC)', '197': 'Federated States of Micronesia (NMC)', '198': 'New Caledonia (NMC)', '199': 'Niue', '200': 'Papua New Guinea (NMC)', '201': 'Philippines (NMC)', '202': 'Samoa (NMC)', '203': 'Solomon Islands (NMC)', '204': 'Narional Institude of Water and Atmospheric Research - New Zealand', '205-209': 'Reserved', '210': 'Frascati (ESA/ESRIN)', '211': 'Lanion', '212': 'Lisbon', '213': 'Reykjavik', '214': 'Madrid', '215': 'Zurich', '216': 'Service ARGOS - Toulouse', '217': 'Bratislava', '218': 'Budapest', '219': 'Ljubljana', '220': 'Warsaw', '221': 'Zagreb', '222': 'Albania (NMC)', '223': 'Armenia (NMC)', '224': 'Austria (NMC)', '225': 'Azerbaijan (NMC)', '226': 'Belarus (NMC)', '227': 'Belgium (NMC)', '228': 'Bosnia and Herzegovina (NMC)', '229': 'Bulgaria (NMC)', '230': 'Cyprus (NMC)', '231': 'Estonia (NMC)', '232': 'Georgia (NMC)', '233': 'Dublin', '234': 'Israel (NMC)', '235': 'Jordan (NMC)', '236': 'Latvia (NMC)', '237': 'Lebanon (NMC)', '238': 'Lithuania (NMC)', '239': 'Luxembourg', '240': 'Malta (NMC)', '241': 'Monaco', '242': 'Romania (NMC)', '243': 'Syrian Arab Republic (NMC)', '244': 'The former Yugoslav Republic of Macedonia (NMC)', '245': 'Ukraine (NMC)', '246': 'Republic of Moldova (NMC)', '247': 'Operational Programme for the Exchange of Weather RAdar Information (OPERA) - EUMETNET', '248-249': 'Reserved', '250': 'COnsortium for Small scale MOdelling (COSMO)', '251-253': 'Reserved', '254': 'EUMETSAT Operations Center', '255': 'Missing Value'}"}, {"fullname": "grib2io.tables.originating_centers.table_originating_subcenters", "modulename": "grib2io.tables.originating_centers", "qualname": "table_originating_subcenters", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'NCEP Re-Analysis Project', '2': 'NCEP Ensemble Products', '3': 'NCEP Central Operations', '4': 'Environmental Modeling Center', '5': 'Weather Prediction Center', '6': 'Ocean Prediction Center', '7': 'Climate Prediction Center', '8': 'Aviation Weather Center', '9': 'Storm Prediction Center', '10': 'National Hurricane Center', '11': 'NWS Techniques Development Laboratory', '12': 'NESDIS Office of Research and Applications', '13': 'Federal Aviation Administration', '14': 'NWS Meteorological Development Laboratory', '15': 'North American Regional Reanalysis Project', '16': 'Space Weather Prediction Center', '17': 'ESRL Global Systems Division'}"}, {"fullname": "grib2io.tables.originating_centers.table_generating_process", "modulename": "grib2io.tables.originating_centers", "qualname": "table_generating_process", "kind": "variable", "doc": "

\n", "default_value": "{'0-1': 'Reserved', '2': 'Ultra Violet Index Model', '3': 'NCEP/ARL Transport and Dispersion Model', '4': 'NCEP/ARL Smoke Model', '5': 'Satellite Derived Precipitation and temperatures, from IR (See PDS Octet 41 ... for specific satellite ID)', '6': 'NCEP/ARL Dust Model', '7-9': 'Reserved', '10': 'Global Wind-Wave Forecast Model', '11': 'Global Multi-Grid Wave Model (Static Grids)', '12': 'Probabilistic Storm Surge (P-Surge)', '13': 'Hurricane Multi-Grid Wave Model', '14': 'Extra-tropical Storm Surge Atlantic Domain', '15': 'Nearshore Wave Prediction System (NWPS)', '16': 'Extra-Tropical Storm Surge (ETSS)', '17': 'Extra-tropical Storm Surge Pacific Domain', '18': 'Probabilistic Extra-Tropical Storm Surge (P-ETSS)', '19': 'Reserved', '20': 'Extra-tropical Storm Surge Micronesia Domain', '21': 'Extra-tropical Storm Surge Atlantic Domain (3D)', '22': 'Extra-tropical Storm Surge Pacific Domain (3D)', '23': 'Extra-tropical Storm Surge Micronesia Domain (3D)', '24': 'Reserved', '25': 'Snow Cover Analysis', '26-29': 'Reserved', '30': 'Forecaster generated field', '31': 'Value added post processed field', '32-41': 'Reserved', '42': 'Global Optimum Interpolation Analysis (GOI) from GFS model', '43': 'Global Optimum Interpolation Analysis (GOI) from "Final" run', '44': 'Sea Surface Temperature Analysis', '45': 'Coastal Ocean Circulation Model', '46': 'HYCOM - Global', '47': 'HYCOM - North Pacific basin', '48': 'HYCOM - North Atlantic basin', '49': 'Ozone Analysis from TIROS Observations', '50-51': 'Reserved', '52': 'Ozone Analysis from Nimbus 7 Observations', '53-63': 'Reserved', '64': 'Regional Optimum Interpolation Analysis (ROI)', '65-67': 'Reserved', '68': '80 wave triangular, 18-layer Spectral model from GFS model', '69': '80 wave triangular, 18 layer Spectral model from "Medium Range Forecast" run', '70': 'Quasi-Lagrangian Hurricane Model (QLM)', '71': 'Hurricane Weather Research and Forecasting (HWRF)', '72': 'Hurricane Non-Hydrostatic Multiscale Model on the B Grid (HNMMB)', '73': 'Fog Forecast model - Ocean Prod. Center', '74': 'Gulf of Mexico Wind/Wave', '75': 'Gulf of Alaska Wind/Wave', '76': 'Bias corrected Medium Range Forecast', '77': '126 wave triangular, 28 layer Spectral model from GFS model', '78': '126 wave triangular, 28 layer Spectral model from "Medium Range Forecast" run', '79': 'Reserved', '80': '62 wave triangular, 28 layer Spectral model from "Medium Range Forecast" run', '81': 'Analysis from GFS (Global Forecast System)', '82': 'Analysis from GDAS (Global Data Assimilation System)', '83': 'High Resolution Rapid Refresh (HRRR)', '84': 'MESO NAM Model (currently 12 km)', '85': 'Real Time Ocean Forecast System (RTOFS)', '86': 'Early Hurricane Wind Speed Probability Model', '87': 'CAC Ensemble Forecasts from Spectral (ENSMB)', '88': 'NOAA Wave Watch III (NWW3) Ocean Wave Model', '89': 'Non-hydrostatic Meso Model (NMM) (Currently 8 km)', '90': '62 wave triangular, 28 layer spectral model extension of the "Medium Range Forecast" run', '91': '62 wave triangular, 28 layer spectral model extension of the GFS model', '92': '62 wave triangular, 28 layer spectral model run from the "Medium Range Forecast" final analysis', '93': '62 wave triangular, 28 layer spectral model run from the T62 GDAS analysis of the "Medium Range Forecast" run', '94': 'T170/L42 Global Spectral Model from MRF run', '95': 'T126/L42 Global Spectral Model from MRF run', '96': 'Global Forecast System Model T1534 - Forecast hours 00-384 T574 - Forecast hours 00-192 T190 - Forecast hours 204-384', '97': 'Reserved', '98': 'Climate Forecast System Model -- Atmospheric model (GFS) coupled to a multi level ocean model . Currently GFS spectral model at T62, 64 levels coupled to 40 level MOM3 ocean model.', '99': 'Miscellaneous Test ID', '100': 'Miscellaneous Test ID', '101': 'Conventional Observation Re-Analysis (CORE)', '102-103': 'Reserved', '104': 'National Blend GRIB', '105': 'Rapid Refresh (RAP)', '106': 'Reserved', '107': 'Global Ensemble Forecast System (GEFS)', '108': 'Localized Aviation MOS Program (LAMP)', '109': 'Real Time Mesoscale Analysis (RTMA)', '110': 'NAM Model - 15km version', '111': 'NAM model, generic resolution (Used in SREF processing)', '112': 'WRF-NMM model, generic resolution (Used in various runs) NMM=Nondydrostatic Mesoscale Model (NCEP)', '113': 'Products from NCEP SREF processing', '114': 'NAEFS Products from joined NCEP, CMC global ensembles', '115': 'Downscaled GFS from NAM eXtension', '116': 'WRF-EM model, generic resolution (Used in various runs) EM - Eulerian Mass-core (NCAR - aka Advanced Research WRF)', '117': 'NEMS GFS Aerosol Component', '118': 'UnRestricted Mesoscale Analysis (URMA)', '119': 'WAM (Whole Atmosphere Model)', '120': 'Ice Concentration Analysis', '121': 'Western North Atlantic Regional Wave Model', '122': 'Alaska Waters Regional Wave Model', '123': 'North Atlantic Hurricane Wave Model', '124': 'Eastern North Pacific Regional Wave Model', '125': 'North Pacific Hurricane Wave Model', '126': 'Sea Ice Forecast Model', '127': 'Lake Ice Forecast Model', '128': 'Global Ocean Forecast Model', '129': 'Global Ocean Data Analysis System (GODAS)', '130': 'Merge of fields from the RUC, NAM, and Spectral Model', '131': 'Great Lakes Wave Model', '132': 'High Resolution Ensemble Forecast (HREF)', '133': 'Great Lakes Short Range Wave Model', '134': 'Rapid Refresh Forecast System (RRFS)', '135': 'Hurricane Analysis and Forecast System (HAFS)', '136-139': 'Reserved', '140': 'North American Regional Reanalysis (NARR)', '141': 'Land Data Assimilation and Forecast System', '142-149': 'Reserved', '150': 'NWS River Forecast System (NWSRFS)', '151': 'NWS Flash Flood Guidance System (NWSFFGS)', '152': 'WSR-88D Stage II Precipitation Analysis', '153': 'WSR-88D Stage III Precipitation Analysis', '154-179': 'Reserved', '180': 'Quantitative Precipitation Forecast generated by NCEP', '181': 'River Forecast Center Quantitative Precipitation Forecast mosaic generated by NCEP', '182': 'River Forecast Center Quantitative Precipitation estimate mosaic generated by NCEP', '183': 'NDFD product generated by NCEP/HPC', '184': 'Climatological Calibrated Precipitation Analysis (CCPA)', '185-189': 'Reserved', '190': 'National Convective Weather Diagnostic generated by NCEP/AWC', '191': 'Current Icing Potential automated product genterated by NCEP/AWC', '192': 'Analysis product from NCEP/AWC', '193': 'Forecast product from NCEP/AWC', '194': 'Reserved', '195': 'Climate Data Assimilation System 2 (CDAS2)', '196': 'Climate Data Assimilation System 2 (CDAS2) - used for regeneration runs', '197': 'Climate Data Assimilation System (CDAS)', '198': 'Climate Data Assimilation System (CDAS) - used for regeneration runs', '199': 'Climate Forecast System Reanalysis (CFSR) -- Atmospheric model (GFS) coupled to a multi level ocean, land and seaice model. GFS spectral model at T382, 64 levels coupled to 40 level MOM4 ocean model.', '200': 'CPC Manual Forecast Product', '201': 'CPC Automated Product', '202-209': 'Reserved', '210': 'EPA Air Quality Forecast - Currently North East US domain', '211': 'EPA Air Quality Forecast - Currently Eastern US domain', '212-214': 'Reserved', '215': 'SPC Manual Forecast Product', '216-219': 'Reserved', '220': 'NCEP/OPC automated product', '221-230': 'Reserved for WPC products', '231-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section0", "modulename": "grib2io.tables.section0", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section0.table_0_0", "modulename": "grib2io.tables.section0", "qualname": "table_0_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Meteorological Products', '1': 'Hydrological Products', '2': 'Land Surface Products', '3': 'Satellite Remote Sensing Products', '4': 'Space Weather Products', '5-9': 'Reserved', '10': 'Oceanographic Products', '11-19': 'Reserved', '20': 'Health and Socioeconomic Impacts', '21-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1", "modulename": "grib2io.tables.section1", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section1.table_1_0", "modulename": "grib2io.tables.section1", "qualname": "table_1_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Experimental', '1': 'Version Implemented on 7 November 2001', '2': 'Version Implemented on 4 November 2003', '3': 'Version Implemented on 2 November 2005', '4': 'Version Implemented on 7 November 2007', '5': 'Version Implemented on 4 November 2009', '6': 'Version Implemented on 15 September 2010', '7': 'Version Implemented on 4 May 2011', '8': 'Version Implemented on 8 November 2011', '9': 'Version Implemented on 2 May 2012', '10': 'Version Implemented on 7 November 2012', '11': 'Version Implemented on 8 May 2013', '12': 'Version Implemented on 14 November 2013', '13': 'Version Implemented on 7 May 2014', '14': 'Version Implemented on 5 November 2014', '16': 'Version Implemented on 11 November 2015', '17': 'Version Implemented on 4 May 2016', '18': 'Version Implemented on 2 November 2016', '19': 'Version Implemented on 3 May 2017', '20': 'Version Implemented on 8 November 2017', '21': 'Version Implemented on 2 May 2018', '22': 'Version Implemented on 7 November 2018', '23': 'Version Implemented on 15 May 2019', '24': 'Version Implemented on 06 November 2019', '25': 'Version Implemented on 06 May 2020', '26': 'Version Implemented on 16 November 2020', '27': 'Version Implemented on 16 June 2021', '28': 'Version Implemented on 15 November 2021', '29': 'Version Implemented on 15 May 2022', '30': 'Version Implemented on 15 November 2022', '31': 'Version Implemented on 15 June 2023', '32': 'Version Implemented on 30 November 2023', '33': 'Pre-operational to be implemented by next amendment', '34-254': 'Future Version', '255': 'Missing"'}"}, {"fullname": "grib2io.tables.section1.table_1_1", "modulename": "grib2io.tables.section1", "qualname": "table_1_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Local tables not used. Only table entries and templates from the current master table are valid.', '1-254': 'Number of local table version used.', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_2", "modulename": "grib2io.tables.section1", "qualname": "table_1_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Analysis', '1': 'Start of Forecast', '2': 'Verifying Time of Forecast', '3': 'Observation Time', '4': 'Local Time', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_3", "modulename": "grib2io.tables.section1", "qualname": "table_1_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Operational Products', '1': 'Operational Test Products', '2': 'Research Products', '3': 'Re-Analysis Products', '4': 'THORPEX Interactive Grand Global Ensemble (TIGGE)', '5': 'THORPEX Interactive Grand Global Ensemble (TIGGE) test', '6': 'S2S Operational Products', '7': 'S2S Test Products', '8': 'Uncertainties in ensembles of regional reanalysis project (UERRA)', '9': 'Uncertainties in ensembles of regional reanalysis project (UERRA) Test', '10': 'Copernicus Regional Reanalysis', '11': 'Copernicus Regional Reanalysis Test', '12': 'Destination Earth', '13': 'Destination Earth test', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_4", "modulename": "grib2io.tables.section1", "qualname": "table_1_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Analysis Products', '1': 'Forecast Products', '2': 'Analysis and Forecast Products', '3': 'Control Forecast Products', '4': 'Perturbed Forecast Products', '5': 'Control and Perturbed Forecast Products', '6': 'Processed Satellite Observations', '7': 'Processed Radar Observations', '8': 'Event Probability', '9-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Experimental Products', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_5", "modulename": "grib2io.tables.section1", "qualname": "table_1_5", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Calendar Definition', '1': 'Paleontological Offset', '2': 'Calendar Definition and Paleontological Offset', '3-32767': 'Reserved', '32768-65534': 'Reserved for Local Use', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_6", "modulename": "grib2io.tables.section1", "qualname": "table_1_6", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Gregorian', '1': '360-day', '2': '365-day', '3': 'Proleptic Gregorian', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section3", "modulename": "grib2io.tables.section3", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section3.table_3_0", "modulename": "grib2io.tables.section3", "qualname": "table_3_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Specified in Code Table 3.1', '1': 'Predetermined Grid Definition - Defined by Originating Center', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'A grid definition does not apply to this product.'}"}, {"fullname": "grib2io.tables.section3.table_3_1", "modulename": "grib2io.tables.section3", "qualname": "table_3_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Latitude/Longitude', '1': 'Rotated Latitude/Longitude', '2': 'Stretched Latitude/Longitude', '3': 'Rotated and Stretched Latitude/Longitude', '4': 'Variable Resolution Latitude/longitude ', '5': 'Variable Resolution Rotated Latitude/longitude ', '6-9': 'Reserved', '10': 'Mercator', '11': 'Reserved', '12': 'Transverse Mercator ', '13': 'Mercator with modelling subdomains definition ', '14-19': 'Reserved', '20': 'Polar Stereographic Projection (Can be North or South)', '21-22': 'Reserved', '23': 'Polar Stereographic with modelling subdomains definition ', '24-29': 'Reserved', '30': 'Lambert Conformal (Can be Secant, Tangent, Conical, or Bipolar)', '31': 'Albers Equal Area', '32': 'Reserved', '33': 'Lambert conformal with modelling subdomains definition ', '34-39': 'Reserved', '40': 'Gaussian Latitude/Longitude', '41': 'Rotated Gaussian Latitude/Longitude', '42': 'Stretched Gaussian Latitude/Longitude', '43': 'Rotated and Stretched Gaussian Latitude/Longitude', '44-49': 'Reserved', '50': 'Spherical Harmonic Coefficients', '51': 'Rotated Spherical Harmonic Coefficients', '52': 'Stretched Spherical Harmonic Coefficients', '53': 'Rotated and Stretched Spherical Harmonic Coefficients', '54-59': 'Reserved', '60': 'Cubed-Sphere Gnomonic ', '61': 'Spectral Mercator with modelling subdomains definition ', '62': 'Spectral Polar Stereographic with modelling subdomains definition ', '63': 'Spectral Lambert conformal with modelling subdomains definition ', '64-89': 'Reserved', '90': 'Space View Perspective or Orthographic', '91-99': 'Reserved', '100': 'Triangular Grid Based on an Icosahedron', '101': 'General Unstructured Grid (see Template 3.101)', '102-109': 'Reserved', '110': 'Equatorial Azimuthal Equidistant Projection', '111-119': 'Reserved', '120': 'Azimuth-Range Projection', '121-139': 'Reserved', '140': 'Lambert Azimuthal Equal Area Projection ', '141-149': 'Reserved', '150': 'Hierarchical Equal Area isoLatitude Pixelization grid (HEALPix)', '151-203': 'Reserved', '204': 'Curvilinear Orthogonal Grids', '205-999': 'Reserved', '1000': 'Cross Section Grid with Points Equally Spaced on the Horizontal', '1001-1099': 'Reserved', '1100': 'Hovmoller Diagram with Points Equally Spaced on the Horizontal', '1101-1199': 'Reserved', '1200': 'Time Section Grid', '1201-32767': 'Reserved', '32768-65534': 'Reserved for Local Use', '32768': 'Rotated Latitude/Longitude (Arakawa Staggeblack E-Grid)', '32769': 'Rotated Latitude/Longitude (Arakawa Non-E Staggeblack Grid)', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section3.table_3_2", "modulename": "grib2io.tables.section3", "qualname": "table_3_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Earth assumed spherical with radius = 6,367,470.0 m', '1': 'Earth assumed spherical with radius specified (in m) by data producer', '2': 'Earth assumed oblate spheriod with size as determined by IAU in 1965 (major axis = 6,378,160.0 m, minor axis = 6,356,775.0 m, f = 1/297.0)', '3': 'Earth assumed oblate spheriod with major and minor axes specified (in km) by data producer', '4': 'Earth assumed oblate spheriod as defined in IAG-GRS80 model (major axis = 6,378,137.0 m, minor axis = 6,356,752.314 m, f = 1/298.257222101)', '5': 'Earth assumed represented by WGS84 (as used by ICAO since 1998) (Uses IAG-GRS80 as a basis)', '6': 'Earth assumed spherical with radius = 6,371,229.0 m', '7': 'Earth assumed oblate spheroid with major and minor axes specified (in m) by data producer', '8': 'Earth model assumed spherical with radius 6,371,200 m, but the horizontal datum of the resulting Latitude/Longitude field is the WGS84 reference frame', '9': 'Earth represented by the OSGB 1936 Datum, using the Airy_1830 Spheroid, the Greenwich meridian as 0 Longitude, the Newlyn datum as mean sea level, 0 height.', '10': 'Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992".', '11': 'Sun assumed spherical with radius = 695 990 000 m (Allen, C.W., Astrophysical Quantities, 3rd ed.; Athlone: London, 1976) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W., Coordinate systems for solar image data, Astron. Astrophys. 2006, 449, 791-803)', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section3.table_3_11", "modulename": "grib2io.tables.section3", "qualname": "table_3_11", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'There is no appended list', '1': 'Numbers define number of points corresponding to full coordinate circles (i.e. parallels). Coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition may not be reached in all rows.', '2': 'Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition which are present in each row.', '3': 'Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scale by 106) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the "scanning mode flag" (bit no. 2)', '4-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section3.table_earth_params", "modulename": "grib2io.tables.section3", "qualname": "table_earth_params", "kind": "variable", "doc": "

\n", "default_value": "{'0': {'shape': 'spherical', 'radius': 6367470.0}, '1': {'shape': 'spherical', 'radius': None}, '2': {'shape': 'oblateSpheriod', 'major_axis': 6378160.0, 'minor_axis': 6356775.0, 'flattening': 0.003367003367003367}, '3': {'shape': 'oblateSpheriod', 'major_axis': None, 'minor_axis': None, 'flattening': None}, '4': {'shape': 'oblateSpheriod', 'major_axis': 6378137.0, 'minor_axis': 6356752.314, 'flattening': 0.003352810681182319}, '5': {'shape': 'ellipsoid', 'major_axis': 6378137.0, 'minor_axis': 6356752.3142, 'flattening': 0.003352810681182319}, '6': {'shape': 'spherical', 'radius': 6371229.0}, '7': {'shape': 'oblateSpheriod', 'major_axis': None, 'minor_axis': None, 'flattening': None}, '8': {'shape': 'spherical', 'radius': 6371200.0}, '9': {'shape': 'unknown', 'radius': None}, '10': {'shape': 'unknown', 'radius': None}, '11': {'shape': 'unknown', 'radius': None}, '12': {'shape': 'unknown', 'radius': None}, '13': {'shape': 'unknown', 'radius': None}, '14': {'shape': 'unknown', 'radius': None}, '15': {'shape': 'unknown', 'radius': None}, '16': {'shape': 'unknown', 'radius': None}, '17': {'shape': 'unknown', 'radius': None}, '18': {'shape': 'unknown', 'radius': None}, '19': {'shape': 'unknown', 'radius': None}, '20': {'shape': 'unknown', 'radius': None}, '21': {'shape': 'unknown', 'radius': None}, '22': {'shape': 'unknown', 'radius': None}, '23': {'shape': 'unknown', 'radius': None}, '24': {'shape': 'unknown', 'radius': None}, '25': {'shape': 'unknown', 'radius': None}, '26': {'shape': 'unknown', 'radius': None}, '27': {'shape': 'unknown', 'radius': None}, '28': {'shape': 'unknown', 'radius': None}, '29': {'shape': 'unknown', 'radius': None}, '30': {'shape': 'unknown', 'radius': None}, '31': {'shape': 'unknown', 'radius': None}, '32': {'shape': 'unknown', 'radius': None}, '33': {'shape': 'unknown', 'radius': None}, '34': {'shape': 'unknown', 'radius': None}, '35': {'shape': 'unknown', 'radius': None}, '36': {'shape': 'unknown', 'radius': None}, '37': {'shape': 'unknown', 'radius': None}, '38': {'shape': 'unknown', 'radius': None}, '39': {'shape': 'unknown', 'radius': None}, '40': {'shape': 'unknown', 'radius': None}, '41': {'shape': 'unknown', 'radius': None}, '42': {'shape': 'unknown', 'radius': None}, '43': {'shape': 'unknown', 'radius': None}, '44': {'shape': 'unknown', 'radius': None}, '45': {'shape': 'unknown', 'radius': None}, '46': {'shape': 'unknown', 'radius': None}, '47': {'shape': 'unknown', 'radius': None}, '48': {'shape': 'unknown', 'radius': None}, '49': {'shape': 'unknown', 'radius': None}, '50': {'shape': 'unknown', 'radius': None}, '51': {'shape': 'unknown', 'radius': None}, '52': {'shape': 'unknown', 'radius': None}, '53': {'shape': 'unknown', 'radius': None}, '54': {'shape': 'unknown', 'radius': None}, '55': {'shape': 'unknown', 'radius': None}, '56': {'shape': 'unknown', 'radius': None}, '57': {'shape': 'unknown', 'radius': None}, '58': {'shape': 'unknown', 'radius': None}, '59': {'shape': 'unknown', 'radius': None}, '60': {'shape': 'unknown', 'radius': None}, '61': {'shape': 'unknown', 'radius': None}, '62': {'shape': 'unknown', 'radius': None}, '63': {'shape': 'unknown', 'radius': None}, '64': {'shape': 'unknown', 'radius': None}, '65': {'shape': 'unknown', 'radius': None}, '66': {'shape': 'unknown', 'radius': None}, '67': {'shape': 'unknown', 'radius': None}, '68': {'shape': 'unknown', 'radius': None}, '69': {'shape': 'unknown', 'radius': None}, '70': {'shape': 'unknown', 'radius': None}, '71': {'shape': 'unknown', 'radius': None}, '72': {'shape': 'unknown', 'radius': None}, '73': {'shape': 'unknown', 'radius': None}, '74': {'shape': 'unknown', 'radius': None}, '75': {'shape': 'unknown', 'radius': None}, '76': {'shape': 'unknown', 'radius': None}, '77': {'shape': 'unknown', 'radius': None}, '78': {'shape': 'unknown', 'radius': None}, '79': {'shape': 'unknown', 'radius': None}, '80': {'shape': 'unknown', 'radius': None}, '81': {'shape': 'unknown', 'radius': None}, '82': {'shape': 'unknown', 'radius': None}, '83': {'shape': 'unknown', 'radius': None}, '84': {'shape': 'unknown', 'radius': None}, '85': {'shape': 'unknown', 'radius': None}, '86': {'shape': 'unknown', 'radius': None}, '87': {'shape': 'unknown', 'radius': None}, '88': {'shape': 'unknown', 'radius': None}, '89': {'shape': 'unknown', 'radius': None}, '90': {'shape': 'unknown', 'radius': None}, '91': {'shape': 'unknown', 'radius': None}, '92': {'shape': 'unknown', 'radius': None}, '93': {'shape': 'unknown', 'radius': None}, '94': {'shape': 'unknown', 'radius': None}, '95': {'shape': 'unknown', 'radius': None}, '96': {'shape': 'unknown', 'radius': None}, '97': {'shape': 'unknown', 'radius': None}, '98': {'shape': 'unknown', 'radius': None}, '99': {'shape': 'unknown', 'radius': None}, '100': {'shape': 'unknown', 'radius': None}, '101': {'shape': 'unknown', 'radius': None}, '102': {'shape': 'unknown', 'radius': None}, '103': {'shape': 'unknown', 'radius': None}, '104': {'shape': 'unknown', 'radius': None}, '105': {'shape': 'unknown', 'radius': None}, '106': {'shape': 'unknown', 'radius': None}, '107': {'shape': 'unknown', 'radius': None}, '108': {'shape': 'unknown', 'radius': None}, '109': {'shape': 'unknown', 'radius': None}, '110': {'shape': 'unknown', 'radius': None}, '111': {'shape': 'unknown', 'radius': None}, '112': {'shape': 'unknown', 'radius': None}, '113': {'shape': 'unknown', 'radius': None}, '114': {'shape': 'unknown', 'radius': None}, '115': {'shape': 'unknown', 'radius': None}, '116': {'shape': 'unknown', 'radius': None}, '117': {'shape': 'unknown', 'radius': None}, '118': {'shape': 'unknown', 'radius': None}, '119': {'shape': 'unknown', 'radius': None}, '120': {'shape': 'unknown', 'radius': None}, '121': {'shape': 'unknown', 'radius': None}, '122': {'shape': 'unknown', 'radius': None}, '123': {'shape': 'unknown', 'radius': None}, '124': {'shape': 'unknown', 'radius': None}, '125': {'shape': 'unknown', 'radius': None}, '126': {'shape': 'unknown', 'radius': None}, '127': {'shape': 'unknown', 'radius': None}, '128': {'shape': 'unknown', 'radius': None}, '129': {'shape': 'unknown', 'radius': None}, '130': {'shape': 'unknown', 'radius': None}, '131': {'shape': 'unknown', 'radius': None}, '132': {'shape': 'unknown', 'radius': None}, '133': {'shape': 'unknown', 'radius': None}, '134': {'shape': 'unknown', 'radius': None}, '135': {'shape': 'unknown', 'radius': None}, '136': {'shape': 'unknown', 'radius': None}, '137': {'shape': 'unknown', 'radius': None}, '138': {'shape': 'unknown', 'radius': None}, '139': {'shape': 'unknown', 'radius': None}, '140': {'shape': 'unknown', 'radius': None}, '141': {'shape': 'unknown', 'radius': None}, '142': {'shape': 'unknown', 'radius': None}, '143': {'shape': 'unknown', 'radius': None}, '144': {'shape': 'unknown', 'radius': None}, '145': {'shape': 'unknown', 'radius': None}, '146': {'shape': 'unknown', 'radius': None}, '147': {'shape': 'unknown', 'radius': None}, '148': {'shape': 'unknown', 'radius': None}, '149': {'shape': 'unknown', 'radius': None}, '150': {'shape': 'unknown', 'radius': None}, '151': {'shape': 'unknown', 'radius': None}, '152': {'shape': 'unknown', 'radius': None}, '153': {'shape': 'unknown', 'radius': None}, '154': {'shape': 'unknown', 'radius': None}, '155': {'shape': 'unknown', 'radius': None}, '156': {'shape': 'unknown', 'radius': None}, '157': {'shape': 'unknown', 'radius': None}, '158': {'shape': 'unknown', 'radius': None}, '159': {'shape': 'unknown', 'radius': None}, '160': {'shape': 'unknown', 'radius': None}, '161': {'shape': 'unknown', 'radius': None}, '162': {'shape': 'unknown', 'radius': None}, '163': {'shape': 'unknown', 'radius': None}, '164': {'shape': 'unknown', 'radius': None}, '165': {'shape': 'unknown', 'radius': None}, '166': {'shape': 'unknown', 'radius': None}, '167': {'shape': 'unknown', 'radius': None}, '168': {'shape': 'unknown', 'radius': None}, '169': {'shape': 'unknown', 'radius': None}, '170': {'shape': 'unknown', 'radius': None}, '171': {'shape': 'unknown', 'radius': None}, '172': {'shape': 'unknown', 'radius': None}, '173': {'shape': 'unknown', 'radius': None}, '174': {'shape': 'unknown', 'radius': None}, '175': {'shape': 'unknown', 'radius': None}, '176': {'shape': 'unknown', 'radius': None}, '177': {'shape': 'unknown', 'radius': None}, '178': {'shape': 'unknown', 'radius': None}, '179': {'shape': 'unknown', 'radius': None}, '180': {'shape': 'unknown', 'radius': None}, '181': {'shape': 'unknown', 'radius': None}, '182': {'shape': 'unknown', 'radius': None}, '183': {'shape': 'unknown', 'radius': None}, '184': {'shape': 'unknown', 'radius': None}, '185': {'shape': 'unknown', 'radius': None}, '186': {'shape': 'unknown', 'radius': None}, '187': {'shape': 'unknown', 'radius': None}, '188': {'shape': 'unknown', 'radius': None}, '189': {'shape': 'unknown', 'radius': None}, '190': {'shape': 'unknown', 'radius': None}, '191': {'shape': 'unknown', 'radius': None}, '192': {'shape': 'unknown', 'radius': None}, '193': {'shape': 'unknown', 'radius': None}, '194': {'shape': 'unknown', 'radius': None}, '195': {'shape': 'unknown', 'radius': None}, '196': {'shape': 'unknown', 'radius': None}, '197': {'shape': 'unknown', 'radius': None}, '198': {'shape': 'unknown', 'radius': None}, '199': {'shape': 'unknown', 'radius': None}, '200': {'shape': 'unknown', 'radius': None}, '201': {'shape': 'unknown', 'radius': None}, '202': {'shape': 'unknown', 'radius': None}, '203': {'shape': 'unknown', 'radius': None}, '204': {'shape': 'unknown', 'radius': None}, '205': {'shape': 'unknown', 'radius': None}, '206': {'shape': 'unknown', 'radius': None}, '207': {'shape': 'unknown', 'radius': None}, '208': {'shape': 'unknown', 'radius': None}, '209': {'shape': 'unknown', 'radius': None}, '210': {'shape': 'unknown', 'radius': None}, '211': {'shape': 'unknown', 'radius': None}, '212': {'shape': 'unknown', 'radius': None}, '213': {'shape': 'unknown', 'radius': None}, '214': {'shape': 'unknown', 'radius': None}, '215': {'shape': 'unknown', 'radius': None}, '216': {'shape': 'unknown', 'radius': None}, '217': {'shape': 'unknown', 'radius': None}, '218': {'shape': 'unknown', 'radius': None}, '219': {'shape': 'unknown', 'radius': None}, '220': {'shape': 'unknown', 'radius': None}, '221': {'shape': 'unknown', 'radius': None}, '222': {'shape': 'unknown', 'radius': None}, '223': {'shape': 'unknown', 'radius': None}, '224': {'shape': 'unknown', 'radius': None}, '225': {'shape': 'unknown', 'radius': None}, '226': {'shape': 'unknown', 'radius': None}, '227': {'shape': 'unknown', 'radius': None}, '228': {'shape': 'unknown', 'radius': None}, '229': {'shape': 'unknown', 'radius': None}, '230': {'shape': 'unknown', 'radius': None}, '231': {'shape': 'unknown', 'radius': None}, '232': {'shape': 'unknown', 'radius': None}, '233': {'shape': 'unknown', 'radius': None}, '234': {'shape': 'unknown', 'radius': None}, '235': {'shape': 'unknown', 'radius': None}, '236': {'shape': 'unknown', 'radius': None}, '237': {'shape': 'unknown', 'radius': None}, '238': {'shape': 'unknown', 'radius': None}, '239': {'shape': 'unknown', 'radius': None}, '240': {'shape': 'unknown', 'radius': None}, '241': {'shape': 'unknown', 'radius': None}, '242': {'shape': 'unknown', 'radius': None}, '243': {'shape': 'unknown', 'radius': None}, '244': {'shape': 'unknown', 'radius': None}, '245': {'shape': 'unknown', 'radius': None}, '246': {'shape': 'unknown', 'radius': None}, '247': {'shape': 'unknown', 'radius': None}, '248': {'shape': 'unknown', 'radius': None}, '249': {'shape': 'unknown', 'radius': None}, '250': {'shape': 'unknown', 'radius': None}, '251': {'shape': 'unknown', 'radius': None}, '252': {'shape': 'unknown', 'radius': None}, '253': {'shape': 'unknown', 'radius': None}, '254': {'shape': 'unknown', 'radius': None}, '255': {'shape': 'unknown', 'radius': None}}"}, {"fullname": "grib2io.tables.section4", "modulename": "grib2io.tables.section4", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4.table_4_1_0", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Temperature', '1': 'Moisture', '2': 'Momentum', '3': 'Mass', '4': 'Short-wave radiation', '5': 'Long-wave radiation', '6': 'Cloud', '7': 'Thermodynamic Stability indicies', '8': 'Kinematic Stability indicies', '9': 'Temperature Probabilities*', '10': 'Moisture Probabilities*', '11': 'Momentum Probabilities*', '12': 'Mass Probabilities*', '13': 'Aerosols', '14': 'Trace gases', '15': 'Radar', '16': 'Forecast Radar Imagery', '17': 'Electrodynamics', '18': 'Nuclear/radiology', '19': 'Physical atmospheric properties', '20': 'Atmospheric chemical Constituents', '21': 'Thermodynamic Properties', '22-189': 'Reserved', '190': 'CCITT IA5 string', '191': 'Miscellaneous', '192-254': 'Reserved for Local Use', '192': 'Covariance', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_1", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Hydrology basic products', '1': 'Hydrology probabilities', '2': 'Inland water and sediment properties', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_2", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Vegetation/Biomass', '1': 'Agricultural/Aquacultural Special Products', '2': 'Transportation-related Products', '3': 'Soil Products', '4': 'Fire Weather Products', '5': 'Land Surface Products', '6': 'Urban areas', '7-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_3", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Image format products', '1': 'Quantitative products', '2': 'Cloud Properties', '3': 'Flight Rules Conditions', '4': 'Volcanic Ash', '5': 'Sea-surface Temperature', '6': 'Solar Radiation', '7-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Forecast Satellite Imagery', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_4", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Temperature', '1': 'Momentum', '2': 'Charged Particle Mass and Number', '3': 'Electric and Magnetic Fields', '4': 'Energetic Particles', '5': 'Waves', '6': 'Solar Electromagnetic Emissions', '7': 'Terrestrial Electromagnetic Emissions', '8': 'Imagery', '9': 'Ion-Neutral Coupling', '10': 'Space Weather Indices', '11-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_10", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_10", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Waves', '1': 'Currents', '2': 'Ice', '3': 'Surface Properties', '4': 'Sub-surface Properties', '5-190': 'Reserved', '191': 'Miscellaneous', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_20", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_20", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Health Indicators', '1': 'Epidemiology', '2': 'Socioeconomic indicators', '3': 'Renewable energy sector', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_0", "modulename": "grib2io.tables.section4", "qualname": "table_4_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.0)', '1': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.1)', '2': 'Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time. (see Template 4.2)', '3': 'Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.3)', '4': 'Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.4)', '5': 'Probability forecasts at a horizontal level or in a horizontal layer at a point in time. (see Template 4.5)', '6': 'Percentile forecasts at a horizontal level or in a horizontal layer at a point in time. (see Template 4.6)', '7': 'Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time. (see Template 4.7)', '8': 'Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.8)', '9': 'Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.9)', '10': 'Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.10)', '11': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.11)', '12': 'Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.12)', '13': 'Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.13)', '14': 'Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.14)', '15': 'Average, accumulation, extreme values or other statistically-processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.15)', '16-19': 'Reserved', '20': 'Radar product (see Template 4.20)', '21-29': 'Reserved', '30': 'Satellite product (see Template 4.30) NOTE: This template is deprecated. Template 4.31 should be used instead.', '31': 'Satellite product (see Template 4.31)', '32': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulate (synthetic) satellite data (see Template 4.32)', '33': 'Individual Ensemble Forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data (see Template 4.33)', '34': 'Individual Ensemble Forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data(see Template 4.34)', '35': 'Satellite product with or without associated quality values (see Template 4.35)', '36-39': 'Reserved', '40': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents. (see Template 4.40)', '41': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents. (see Template 4.41)', '42': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents. (see Template 4.42)', '43': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for atmospheric chemical constituents. (see Template 4.43)', '44': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol. (see Template 4.44)', '45': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for aerosol. (see Template 4.45)', '46': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol. (see Template 4.46)', '47': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for aerosol. (see Template 4.47)', '48': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol. (see Template 4.48)', '49': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol. (see Template 4.49)', '50': 'Reserved', '51': 'Categorical forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.51)', '52': 'Reserved', '53': 'Partitioned parameters at a horizontal level or horizontal layer at a point in time. (see Template 4.53)', '54': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters. (see Template 4.54)', '55': 'Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time (see Template 4.55)', '56': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (DEPRECATED) (see Template 4.56)', '57': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function (see Template 4.57)', '58': 'Individual Ensemble Forecast, Control and Perturbed, at a horizontal level or in a horizontal layer at a point in time interval for Atmospheric Chemical Constituents based on a distribution function (see Template 4.58)', '59': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56 - See Template 4.59)', '60': 'Individual Ensemble Reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.60)', '61': 'Individual Ensemble Reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval (see Template 4.61)', '62': 'Average, Accumulation and/or Extreme values or other Statistically-processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time (see Template 4.62)', '63': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles (see Template 4.63)', '64-66': 'Reserved', '67': 'Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function (see Template 4.67)', '68': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function. (see Template 4.68)', '69': 'Reserved', '70': 'Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.70)', '71': 'Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.71)', '72': 'Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.72)', '73': 'Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.73)', '74-75': 'Reserved', '76': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink. (see Template 4.76)', '77': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink. (see Template 4.77)', '78': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink. (see Template 4.78)', '79': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink. (see Template 4.79)', '80': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink. (see Template 4.80)', '81': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink. (see Template 4.81)', '82': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink. (see Template 4.82)', '83': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink. (see Template 4.83)', '84': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink. (see Template 4.84)', '85': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol. (see Template 4.85)', '86': 'Quantile forecasts at a horizontal level or in a horizontal layer at a point in time. (see Template 4.86)', '87': 'Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.87)', '88': 'Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.88)', '89-90': 'Reserved', '91': 'Categorical forecast at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.91)', '92': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.92)', '93': 'Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.93)', '94': 'Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.94)', '95': 'Average, accumulation, extreme values or other statiscally processed value at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.95)', '96': 'Average, accumulation, extreme values or other statistically processed values of an individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.96)', '97': 'Average, accumulation, extreme values or other statistically processed values of post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.97)', '98': 'Average, accumulation, extreme values or other statistically processed values of a post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.98)', '99': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions (see Template 4.99)', '100': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions (see Template 4.100)', '101': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae (see Template 4.101)', '102': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae (see Template 4.102)', '103': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for waves selected by period range (see Template 4.103)', '104': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for waves selected by period range (see Template 4.104)', '105': 'Anomalies, significance and other derived products from an analysis or forecast in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.105)', '106': 'Anomalies, significance and other derived products from an individual ensemble forecast, control and perturbed in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.106)', '107': 'Anomalies, significance and other derived products from derived forecasts based on all ensemble members in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.107)', '108': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for generic optical products (see Template 4.108)', '109': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for generic optical products (see Template 4.109)', '110': 'Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for generic optical products (see Template 4.110)', '111': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for generic optical products (see Template 4.111)', '112': 'Anomalies, significance and other derived products as probability forecasts in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.112)', '113-253': 'Reserved', '254': 'CCITT IA5 character string (see Template 4.254)', '255-999': 'Reserved', '1000': 'Cross-section of analysis and forecast at a point in time. (see Template 4.1000)', '1001': 'Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time. (see Template 4.1001)', '1002': 'Cross-section of analysis and forecast, averaged or otherwise statistically-processed over latitude or longitude. (see Template 4.1002)', '1003-1099': 'Reserved', '1100': 'Hovmoller-type grid with no averaging or other statistical processing (see Template 4.1100)', '1101': 'Hovmoller-type grid with averaging or other statistical processing (see Template 4.1101)', '1102-32767': 'Reserved', '32768-65534': 'Reserved for Local Use', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_3", "modulename": "grib2io.tables.section4", "qualname": "table_4_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Analysis', '1': 'Initialization', '2': 'Forecast', '3': 'Bias Corrected Forecast', '4': 'Ensemble Forecast', '5': 'Probability Forecast', '6': 'Forecast Error', '7': 'Analysis Error', '8': 'Observation', '9': 'Climatological', '10': 'Probability-Weighted Forecast', '11': 'Bias-Corrected Ensemble Forecast', '12': 'Post-processed Analysis (See Note)', '13': 'Post-processed Forecast (See Note)', '14': 'Nowcast', '15': 'Hindcast', '16': 'Physical Retrieval', '17': 'Regression Analysis', '18': 'Difference Between Two Forecasts', '19': 'First guess', '20': 'Analysis increment', '21': 'Initialization increment for analysis', '22-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Forecast Confidence Indicator', '193': 'Probability-matched Mean', '194': 'Neighborhood Probability', '195': 'Bias-Corrected and Downscaled Ensemble Forecast', '196': 'Perturbed Analysis for Ensemble Initialization', '197': 'Ensemble Agreement Scale Probability', '198': 'Post-Processed Deterministic-Expert-Weighted Forecast', '199': 'Ensemble Forecast Based on Counting', '200': 'Local Probability-matched Mean', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_4", "modulename": "grib2io.tables.section4", "qualname": "table_4_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Minute', '1': 'Hour', '2': 'Day', '3': 'Month', '4': 'Year', '5': 'Decade (10 Years)', '6': 'Normal (30 Years)', '7': 'Century (100 Years)', '8': 'Reserved', '9': 'Reserved', '10': '3 Hours', '11': '6 Hours', '12': '12 Hours', '13': 'Second', '14-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_5", "modulename": "grib2io.tables.section4", "qualname": "table_4_5", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Reserved', 'unknown'], '1': ['Ground or Water Surface', 'unknown'], '2': ['Cloud Base Level', 'unknown'], '3': ['Level of Cloud Tops', 'unknown'], '4': ['Level of 0o C Isotherm', 'unknown'], '5': ['Level of Adiabatic Condensation Lifted from the Surface', 'unknown'], '6': ['Maximum Wind Level', 'unknown'], '7': ['Tropopause', 'unknown'], '8': ['Nominal Top of the Atmosphere', 'unknown'], '9': ['Sea Bottom', 'unknown'], '10': ['Entire Atmosphere', 'unknown'], '11': ['Cumulonimbus Base (CB)', 'm'], '12': ['Cumulonimbus Top (CT)', 'm'], '13': ['Lowest level where vertically integrated cloud cover exceeds the specified percentage (cloud base for a given percentage cloud cover)', '%'], '14': ['Level of free convection (LFC)', 'unknown'], '15': ['Convection condensation level (CCL)', 'unknown'], '16': ['Level of neutral buoyancy or equilibrium (LNB)', 'unknown'], '17': ['Departure level of the most unstable parcel of air (MUDL)', 'unknown'], '18': ['Departure level of a mixed layer parcel of air with specified layer depth', 'Pa'], '19': ['Reserved', 'unknown'], '20': ['Isothermal Level', 'K'], '21': ['Lowest level where mass density exceeds the specified value (base for a given threshold of mass density)', 'kg m-3'], '22': ['Highest level where mass density exceeds the specified value (top for a given threshold of mass density)', 'kg m-3'], '23': ['Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration', 'Bq m-3'], '24': ['Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration)', 'Bq m-3'], '25': ['Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity)', 'dBZ'], '26': ['Convective cloud layer base', 'm'], '27': ['Convective cloud layer top', 'm'], '28-29': ['Reserved', 'unknown'], '30': ['Specified radius from the centre of the Sun', 'm'], '31': ['Solar photosphere', 'unknown'], '32': ['Ionospheric D-region level', 'unknown'], '33': ['Ionospheric E-region level', 'unknown'], '34': ['Ionospheric F1-region level', 'unknown'], '35': ['Ionospheric F2-region level', 'unknown'], '36-99': ['Reserved', 'unknown'], '100': ['Isobaric Surface', 'Pa'], '101': ['Mean Sea Level', 'unknown'], '102': ['Specific Altitude Above Mean Sea Level', 'm'], '103': ['Specified Height Level Above Ground', 'm'], '104': ['Sigma Level', 'unknown'], '105': ['Hybrid Level', 'unknown'], '106': ['Depth Below Land Surface', 'm'], '107': ['Isentropic (theta) Level', 'K'], '108': ['Level at Specified Pressure Difference from Ground to Level', 'Pa'], '109': ['Potential Vorticity Surface', 'K m2 kg-1 s-1'], '110': ['Reserved', 'unknown'], '111': ['Eta Level', 'unknown'], '112': ['Reserved', 'unknown'], '113': ['Logarithmic Hybrid Level', 'unknown'], '114': ['Snow Level', 'Numeric'], '115': ['Sigma height level', 'unknown'], '116': ['Reserved', 'unknown'], '117': ['Mixed Layer Depth', 'm'], '118': ['Hybrid Height Level', 'unknown'], '119': ['Hybrid Pressure Level', 'unknown'], '120-149': ['Reserved', 'unknown'], '150': ['Generalized Vertical Height Coordinate', 'unknown'], '151': ['Soil level', 'Numeric'], '152': ['Sea-ice level,(see Note 8)', 'Numeric'], '153-159': ['Reserved', 'unknown'], '160': ['Depth Below Sea Level', 'm'], '161': ['Depth Below Water Surface', 'm'], '162': ['Lake or River Bottom', 'unknown'], '163': ['Bottom Of Sediment Layer', 'unknown'], '164': ['Bottom Of Thermally Active Sediment Layer', 'unknown'], '165': ['Bottom Of Sediment Layer Penetrated By Thermal Wave', 'unknown'], '166': ['Mixing Layer', 'unknown'], '167': ['Bottom of Root Zone', 'unknown'], '168': ['Ocean Model Level', 'Numeric'], '169': ['Ocean level defined by water density (sigma-theta) difference from near-surface to level', 'kg m-3'], '170': ['Ocean level defined by water potential temperature difference from near-surface to level', 'K'], '171': ['Ocean level defined by vertical eddy diffusivity difference from near-surface to level', 'm2 s-1'], '172': ['Ocean level defined by water density (rho) difference from near-surface to level (*Tentatively accepted)', 'kg m-3'], '173': ['Top of Snow Over Sea Ice on Sea, Lake or River', 'unknown'], '174': ['Top Surface of Ice on Sea, Lake or River', 'unknown'], '175': ['Top Surface of Ice, under Snow, on Sea, Lake or River', 'unknown'], '176': ['Bottom Surface (underside) Ice on Sea, Lake or River', 'unknown'], '177': ['Deep Soil (of indefinite depth)', 'unknown'], '178': ['Reserved', 'unknown'], '179': ['Top Surface of Glacier Ice and Inland Ice', 'unknown'], '180': ['Deep Inland or Glacier Ice (of indefinite depth)', 'unknown'], '181': ['Grid Tile Land Fraction as a Model Surface', 'unknown'], '182': ['Grid Tile Water Fraction as a Model Surface', 'unknown'], '183': ['Grid Tile Ice Fraction on Sea, Lake or River as a Model Surface', 'unknown'], '184': ['Grid Tile Glacier Ice and Inland Ice Fraction as a Model Surface', 'unknown'], '185': ['Roof Level', 'unknown'], '186': ['Wall level', 'unknown'], '187': ['Road Level', 'unknown'], '188': ['Melt pond Top Surface', 'unknown'], '189': ['Melt Pond Bottom Surface', 'unknown'], '190-191': ['Reserved', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown'], '200': ['Entire atmosphere (considered as a single layer)', 'unknown'], '201': ['Entire ocean (considered as a single layer)', 'unknown'], '204': ['Highest tropospheric freezing level', 'unknown'], '206': ['Grid scale cloud bottom level', 'unknown'], '207': ['Grid scale cloud top level', 'unknown'], '209': ['Boundary layer cloud bottom level', 'unknown'], '210': ['Boundary layer cloud top level', 'unknown'], '211': ['Boundary layer cloud layer', 'unknown'], '212': ['Low cloud bottom level', 'unknown'], '213': ['Low cloud top level', 'unknown'], '214': ['Low cloud layer', 'unknown'], '215': ['Cloud ceiling', 'unknown'], '216': ['Effective Layer Top Level', 'm'], '217': ['Effective Layer Bottom Level', 'm'], '218': ['Effective Layer', 'm'], '220': ['Planetary Boundary Layer', 'unknown'], '221': ['Layer Between Two Hybrid Levels', 'unknown'], '222': ['Middle cloud bottom level', 'unknown'], '223': ['Middle cloud top level', 'unknown'], '224': ['Middle cloud layer', 'unknown'], '232': ['High cloud bottom level', 'unknown'], '233': ['High cloud top level', 'unknown'], '234': ['High cloud layer', 'unknown'], '235': ['Ocean Isotherm Level (1/10 \u00b0 C)', 'unknown'], '236': ['Layer between two depths below ocean surface', 'unknown'], '237': ['Bottom of Ocean Mixed Layer (m)', 'unknown'], '238': ['Bottom of Ocean Isothermal Layer (m)', 'unknown'], '239': ['Layer Ocean Surface and 26C Ocean Isothermal Level', 'unknown'], '240': ['Ocean Mixed Layer', 'unknown'], '241': ['Ordered Sequence of Data', 'unknown'], '242': ['Convective cloud bottom level', 'unknown'], '243': ['Convective cloud top level', 'unknown'], '244': ['Convective cloud layer', 'unknown'], '245': ['Lowest level of the wet bulb zero', 'unknown'], '246': ['Maximum equivalent potential temperature level', 'unknown'], '247': ['Equilibrium level', 'unknown'], '248': ['Shallow convective cloud bottom level', 'unknown'], '249': ['Shallow convective cloud top level', 'unknown'], '251': ['Deep convective cloud bottom level', 'unknown'], '252': ['Deep convective cloud top level', 'unknown'], '253': ['Lowest bottom level of supercooled liquid water layer', 'unknown'], '254': ['Highest top level of supercooled liquid water layer', 'unknown'], '255': ['Missing', 'unknown']}"}, {"fullname": "grib2io.tables.section4.table_4_6", "modulename": "grib2io.tables.section4", "qualname": "table_4_6", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Unperturbed High-Resolution Control Forecast', '1': 'Unperturbed Low-Resolution Control Forecast', '2': 'Negatively Perturbed Forecast', '3': 'Positively Perturbed Forecast', '4': 'Multi-Model Forecast', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Perturbed Ensemble Member', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_7", "modulename": "grib2io.tables.section4", "qualname": "table_4_7", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Unweighted Mean of All Members', '1': 'Weighted Mean of All Members', '2': 'Standard Deviation with respect to Cluster Mean', '3': 'Standard Deviation with respect to Cluster Mean, Normalized', '4': 'Spread of All Members', '5': 'Large Anomaly Index of All Members', '6': 'Unweighted Mean of the Cluster Members', '7': 'Interquartile Range (Range between the 25th and 75th quantile)', '8': 'Minimum Of All Ensemble Members', '9': 'Maximum Of All Ensemble Members', '10-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Unweighted Mode of All Members', '193': 'Percentile value (10%) of All Members', '194': 'Percentile value (50%) of All Members', '195': 'Percentile value (90%) of All Members', '196': 'Statistically decided weights for each ensemble member', '197': 'Climate Percentile (percentile values from climate distribution)', '198': 'Deviation of Ensemble Mean from Daily Climatology', '199': 'Extreme Forecast Index', '200': 'Equally Weighted Mean', '201': 'Percentile value (5%) of All Members', '202': 'Percentile value (25%) of All Members', '203': 'Percentile value (75%) of All Members', '204': 'Percentile value (95%) of All Members', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_8", "modulename": "grib2io.tables.section4", "qualname": "table_4_8", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Anomoly Correlation', '1': 'Root Mean Square', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_9", "modulename": "grib2io.tables.section4", "qualname": "table_4_9", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Probability of event below lower limit', '1': 'Probability of event above upper limit', '2': 'Probability of event between upper and lower limits (the range includes lower limit but no the upper limit)', '3': 'Probability of event above lower limit', '4': 'Probability of event below upper limit', '5': 'Probability of event equal to lower limit', '6': 'Probability of event in above normal category (see Notes 1 and 2)', '9-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_10", "modulename": "grib2io.tables.section4", "qualname": "table_4_10", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Average', '1': 'Accumulation', '2': 'Maximum', '3': 'Minimum', '4': 'Difference (value at the end of the time range minus value at the beginning)', '5': 'Root Mean Square', '6': 'Standard Deviation', '7': 'Covariance (temporal variance)', '8': 'Difference ( value at the beginning of the time range minus value at the end)', '9': 'Ratio', '10': 'Standardized Anomaly', '11': 'Summation', '12': 'Return period', '13-99': 'Reserved', '100': 'Severity', '101': 'Mode', '102-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Climatological Mean Value: multiple year averages of quantities which are themselves means over some period of time (P2) less than a year. The reference time (R) indicates the date and time of the start of a period of time, given by R to R + P2, over which a mean is formed; N indicates the number of such period-means that are averaged together to form the climatological value, assuming that the N period-mean fields are separated by one year. The reference time indicates the start of the N-year climatology. N is given in octets 22-23 of the PDS. If P1 = 0 then the data averaged in the basic interval P2 are assumed to be continuous, i.e., all available data are simply averaged together. If P1 = 1 (the units of time - octet 18, code table 4 - are not relevant here) then the data averaged together in the basic interval P2 are valid only at the time (hour, minute) given in the reference time, for all the days included in the P2 period. The units of P2 are given by the contents of octet 18 and Table 4.', '193': 'Average of N forecasts (or initialized analyses); each product has forecast period of P1 (P1=0 for initialized analyses); products have reference times at intervals of P2, beginning at the given reference time.', '194': 'Average of N uninitialized analyses, starting at reference time, at intervals of P2.', '195': 'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 24-hour intervals. Number in Ave = number of forecasts used.', '196': 'Average of successive forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at (P2 - P1) intervals. Number in Ave = number of forecasts used', '197': 'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 24-hour intervals. Number in Ave = number of forecast used', '198': 'Average of successive forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at (P2 - P1) intervals. Number in Ave = number of forecasts used', '199': 'Climatological Average of N analyses, each a year apart, starting from initial time R and for the period from R+P1 to R+P2.', '200': 'Climatological Average of N forecasts, each a year apart, starting from initial time R and for the period from R+P1 to R+P2.', '201': 'Climatological Root Mean Square difference between N forecasts and their verifying analyses, each a year apart, starting with initial time R and for the period from R+P1 to R+P2.', '202': 'Climatological Standard Deviation of N forecasts from the mean of the same N forecasts, for forecasts one year apart. The first forecast starts wtih initial time R and is for the period from R+P1 to R+P2.', '203': 'Climatological Standard Deviation of N analyses from the mean of the same N analyses, for analyses one year apart. The first analyses is valid for period R+P1 to R+P2.', '204': 'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 6-hour intervals. Number in Ave = number of forecast used', '205': 'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 6-hour intervals. Number in Ave = number of forecast used', '206': 'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 12-hour intervals. Number in Ave = number of forecast used', '207': 'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 12-hour intervals. Number in Ave = number of forecast used', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_11", "modulename": "grib2io.tables.section4", "qualname": "table_4_11", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Successive times processed have same forecast time, start time of forecast is incremented.', '2': 'Successive times processed have same start time of forecast, forecast time is incremented.', '3': 'Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant.', '4': 'Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant.', '5': 'Floating subinterval of time between forecast time and end of overall time interval.(see Note 1)', '6-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_12", "modulename": "grib2io.tables.section4", "qualname": "table_4_12", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Mainteunknownce Mode', '1': 'Clear Air', '2': 'Precipitation', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_13", "modulename": "grib2io.tables.section4", "qualname": "table_4_13", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No Quality Control Applied', '1': 'Quality Control Applied', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_14", "modulename": "grib2io.tables.section4", "qualname": "table_4_14", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No Clutter Filter Used', '1': 'Clutter Filter Used', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_15", "modulename": "grib2io.tables.section4", "qualname": "table_4_15", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Data is calculated directly from the source grid with no interpolation', '1': 'Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '2': 'Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '3': 'Using the value from the source grid grid-point which is nearest to the nominal grid-point', '4': 'Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '5': 'Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '6': 'Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '7-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_91", "modulename": "grib2io.tables.section4", "qualname": "table_4_91", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Smaller than first limit', '1': 'Greater than second limit', '2': 'Between first and second limit. The range includes the first limit but not the second limit.', '3': 'Greater than first limit', '4': 'Smaller than second limit', '5': 'Smaller or equal first limit', '6': 'Greater or equal second limit', '7': 'Between first and second limit. The range includes the first limit and the second limit.', '8': 'Greater or equal first limit', '9': 'Smaller or equal second limit', '10': 'Between first and second limit. The range includes the second limit but not the first limit.', '11': 'Equal to first limit', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_201", "modulename": "grib2io.tables.section4", "qualname": "table_4_201", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Rain', '2': 'Thunderstorm', '3': 'Freezing Rain', '4': 'Mixed/Ice', '5': 'Snow', '6': 'Wet Snow', '7': 'Mixture of Rain and Snow', '8': 'Ice Pellets', '9': 'Graupel', '10': 'Hail', '11': 'Drizzle', '12': 'Freezing Drizzle', '13-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_202", "modulename": "grib2io.tables.section4", "qualname": "table_4_202", "kind": "variable", "doc": "

\n", "default_value": "{'0-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_203", "modulename": "grib2io.tables.section4", "qualname": "table_4_203", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Clear', '1': 'Cumulonimbus', '2': 'Stratus', '3': 'Stratocumulus', '4': 'Cumulus', '5': 'Altostratus', '6': 'Nimbostratus', '7': 'Altocumulus', '8': 'Cirrostratus', '9': 'Cirrorcumulus', '10': 'Cirrus', '11': 'Cumulonimbus - ground-based fog beneath the lowest layer', '12': 'Stratus - ground-based fog beneath the lowest layer', '13': 'Stratocumulus - ground-based fog beneath the lowest layer', '14': 'Cumulus - ground-based fog beneath the lowest layer', '15': 'Altostratus - ground-based fog beneath the lowest layer', '16': 'Nimbostratus - ground-based fog beneath the lowest layer', '17': 'Altocumulus - ground-based fog beneath the lowest layer', '18': 'Cirrostratus - ground-based fog beneath the lowest layer', '19': 'Cirrorcumulus - ground-based fog beneath the lowest layer', '20': 'Cirrus - ground-based fog beneath the lowest layer', '21-190': 'Reserved', '191': 'Unknown', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_204", "modulename": "grib2io.tables.section4", "qualname": "table_4_204", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Isolated (1-2%)', '2': 'Few (3-5%)', '3': 'Scattered (16-45%)', '4': 'Numerous (>45%)', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_205", "modulename": "grib2io.tables.section4", "qualname": "table_4_205", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Aerosol not present', '1': 'Aerosol present', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_206", "modulename": "grib2io.tables.section4", "qualname": "table_4_206", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Not Present', '1': 'Present', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_207", "modulename": "grib2io.tables.section4", "qualname": "table_4_207", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Light', '2': 'Moderate', '3': 'Severe', '4': 'Trace', '5': 'Heavy', '6-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_208", "modulename": "grib2io.tables.section4", "qualname": "table_4_208", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Light', '2': 'Moderate', '3': 'Severe', '4': 'Extreme', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_209", "modulename": "grib2io.tables.section4", "qualname": "table_4_209", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Stable', '2': 'Mechanically-Driven Turbulence', '3': 'Force Convection', '4': 'Free Convection', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_210", "modulename": "grib2io.tables.section4", "qualname": "table_4_210", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Contrail Not Present', '1': 'Contrail Present', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_211", "modulename": "grib2io.tables.section4", "qualname": "table_4_211", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Low Bypass', '1': 'High Bypass', '2': 'Non-Bypass', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_212", "modulename": "grib2io.tables.section4", "qualname": "table_4_212", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Urban Land', '2': 'Agricultural', '3': 'Range Land', '4': 'Deciduous Forest', '5': 'Coniferous Forest', '6': 'Forest/Wetland', '7': 'Water', '8': 'Wetlands', '9': 'Desert', '10': 'Tundra', '11': 'Ice', '12': 'Tropical Forest', '13': 'Savannah', '14-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_213", "modulename": "grib2io.tables.section4", "qualname": "table_4_213", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Sand', '2': 'Loamy Sand', '3': 'Sandy Loam', '4': 'Silt Loam', '5': 'Organic', '6': 'Sandy Clay Loam', '7': 'Silt Clay Loam', '8': 'Clay Loam', '9': 'Sandy Clay', '10': 'Silty Clay', '11': 'Clay', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_215", "modulename": "grib2io.tables.section4", "qualname": "table_4_215", "kind": "variable", "doc": "

\n", "default_value": "{'0-49': 'Reserved', '50': 'No-Snow/No-Cloud', '51-99': 'Reserved', '100': 'Clouds', '101-249': 'Reserved', '250': 'Snow', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_216", "modulename": "grib2io.tables.section4", "qualname": "table_4_216", "kind": "variable", "doc": "

\n", "default_value": "{'0-90': 'Elevation in increments of 100 m', '91-253': 'Reserved', '254': 'Clouds', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_217", "modulename": "grib2io.tables.section4", "qualname": "table_4_217", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Clear over water', '1': 'Clear over land', '2': 'Cloud', '3': 'No data', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_218", "modulename": "grib2io.tables.section4", "qualname": "table_4_218", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No Scene Identified', '1': 'Green Needle-Leafed Forest', '2': 'Green Broad-Leafed Forest', '3': 'Deciduous Needle-Leafed Forest', '4': 'Deciduous Broad-Leafed Forest', '5': 'Deciduous Mixed Forest', '6': 'Closed Shrub-Land', '7': 'Open Shrub-Land', '8': 'Woody Savannah', '9': 'Savannah', '10': 'Grassland', '11': 'Permanent Wetland', '12': 'Cropland', '13': 'Urban', '14': 'Vegetation / Crops', '15': 'Permanent Snow / Ice', '16': 'Barren Desert', '17': 'Water Bodies', '18': 'Tundra', '19': 'Warm Liquid Water Cloud', '20': 'Supercooled Liquid Water Cloud', '21': 'Mixed Phase Cloud', '22': 'Optically Thin Ice Cloud', '23': 'Optically Thick Ice Cloud', '24': 'Multi-Layeblack Cloud', '25-96': 'Reserved', '97': 'Snow / Ice on Land', '98': 'Snow / Ice on Water', '99': 'Sun-Glint', '100': 'General Cloud', '101': 'Low Cloud / Fog / Stratus', '102': 'Low Cloud / Stratocumulus', '103': 'Low Cloud / Unknown Type', '104': 'Medium Cloud / Nimbostratus', '105': 'Medium Cloud / Altostratus', '106': 'Medium Cloud / Unknown Type', '107': 'High Cloud / Cumulus', '108': 'High Cloud / Cirrus', '109': 'High Cloud / Unknown Type', '110': 'Unknown Cloud Type', '111': 'Single layer water cloud', '112': 'Single layer ice cloud', '113-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_222", "modulename": "grib2io.tables.section4", "qualname": "table_4_222", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No', '1': 'Yes', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_223", "modulename": "grib2io.tables.section4", "qualname": "table_4_223", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No Fire Detected', '1': 'Possible Fire Detected', '2': 'Probable Fire Detected', '3': 'Missing', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_224", "modulename": "grib2io.tables.section4", "qualname": "table_4_224", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No Risk Area', '1': 'Reserved', '2': 'General Thunderstorm Risk Area', '3': 'Reserved', '4': 'Slight Risk Area', '5': 'Reserved', '6': 'Moderate Risk Area', '7': 'Reserved', '8': 'High Risk Area', '9-10': 'Reserved', '11': 'Dry Thunderstorm (Dry Lightning) Risk Area', '12-13': 'Reserved', '14': 'Critical Risk Area', '15-17': 'Reserved', '18': 'Extreamly Critical Risk Area', '19-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_227", "modulename": "grib2io.tables.section4", "qualname": "table_4_227", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'General', '2': 'Convective', '3': 'Stratiform', '4': 'Freezing', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_228", "modulename": "grib2io.tables.section4", "qualname": "table_4_228", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Trace', '2': 'Light', '3': 'Moderate', '4': 'Severe', '6-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_233", "modulename": "grib2io.tables.section4", "qualname": "table_4_233", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Ozone', 'O3'], '1': ['Water Vapour', 'H2O'], '2': ['Methane', 'CH4'], '3': ['Carbon Dioxide', 'CO2'], '4': ['Carbon Monoxide', 'CO'], '5': ['Nitrogen Dioxide', 'NO2'], '6': ['Nitrous Oxide', 'N2O'], '7': ['Formaldehyde', 'HCHO'], '8': ['Sulphur Dioxide', 'SO2'], '9': ['Ammonia', 'NH3'], '10': ['Ammonium', 'NH4+'], '11': ['Nitrogen Monoxide', 'NO'], '12': ['Atomic Oxygen', 'O'], '13': ['Nitrate Radical', 'NO3'], '14': ['Hydroperoxyl Radical', 'HO2'], '15': ['Dinitrogen Pentoxide', 'H2O5'], '16': ['Nitrous Acid', 'HONO'], '17': ['Nitric Acid', 'HNO3'], '18': ['Peroxynitric Acid', 'HO2NO2'], '19': ['Hydrogen Peroxide', 'H2O2'], '20': ['Molecular Hydrogen', 'H'], '21': ['Atomic Nitrogen', 'N'], '22': ['Sulphate', 'SO42-'], '23': ['Radon', 'Rn'], '24': ['Elemental Mercury', 'Hg(O)'], '25': ['Divalent Mercury', 'Hg2+'], '26': ['Atomic Chlorine', 'Cl'], '27': ['Chlorine Monoxide', 'ClO'], '28': ['Dichlorine Peroxide', 'Cl2O2'], '29': ['Hypochlorous Acid', 'HClO'], '30': ['Chlorine Nitrate', 'ClONO2'], '31': ['Chlorine Dioxide', 'ClO2'], '32': ['Atomic Bromide', 'Br'], '33': ['Bromine Monoxide', 'BrO'], '34': ['Bromine Chloride', 'BrCl'], '35': ['Hydrogen Bromide', 'HBr'], '36': ['Hypobromous Acid', 'HBrO'], '37': ['Bromine Nitrate', 'BrONO2'], '38': ['Oxygen', 'O2'], '39-9999': ['Reserved', 'unknown'], '10000': ['Hydroxyl Radical', 'OH'], '10001': ['Methyl Peroxy Radical', 'CH3O2'], '10002': ['Methyl Hydroperoxide', 'CH3O2H'], '10003': ['Reserved', 'unknown'], '10004': ['Methanol', 'CH3OH'], '10005': ['Formic Acid', 'CH3OOH'], '10006': ['Hydrogen Cyanide', 'HCN'], '10007': ['Aceto Nitrile', 'CH3CN'], '10008': ['Ethane', 'C2H6'], '10009': ['Ethene (= Ethylene)', 'C2H4'], '10010': ['Ethyne (= Acetylene)', 'C2H2'], '10011': ['Ethanol', 'C2H5OH'], '10012': ['Acetic Acid', 'C2H5OOH'], '10013': ['Peroxyacetyl Nitrate', 'CH3C(O)OONO2'], '10014': ['Propane', 'C3H8'], '10015': ['Propene', 'C3H6'], '10016': ['Butanes', 'C4H10'], '10017': ['Isoprene', 'C5H10'], '10018': ['Alpha Pinene', 'C10H16'], '10019': ['Beta Pinene', 'C10H16'], '10020': ['Limonene', 'C10H16'], '10021': ['Benzene', 'C6H6'], '10022': ['Toluene', 'C7H8'], '10023': ['Xylene', 'C8H10'], '10024-10499': ['Reserved', 'unknown'], '10500': ['Dimethyl Sulphide', 'CH3SCH3'], '10501-20000': ['Reserved', 'unknown'], '20001': ['Hydrogen Chloride', 'HCL'], '20002': ['CFC-11', 'unknown'], '20003': ['CFC-12', 'unknown'], '20004': ['CFC-113', 'unknown'], '20005': ['CFC-113a', 'unknown'], '20006': ['CFC-114', 'unknown'], '20007': ['CFC-115', 'unknown'], '20008': ['HCFC-22', 'unknown'], '20009': ['HCFC-141b', 'unknown'], '20010': ['HCFC-142b', 'unknown'], '20011': ['Halon-1202', 'unknown'], '20012': ['Halon-1211', 'unknown'], '20013': ['Halon-1301', 'unknown'], '20014': ['Halon-2402', 'unknown'], '20015': ['Methyl Chloride (HCC-40)', 'unknown'], '20016': ['Carbon Tetrachloride (HCC-10)', 'unknown'], '20017': ['HCC-140a', 'CH3CCl3'], '20018': ['Methyl Bromide (HBC-40B1)', 'unknown'], '20019': ['Hexachlorocyclohexane (HCH)', 'unknown'], '20020': ['Alpha Hexachlorocyclohexane', 'unknown'], '20021': ['Hexachlorobiphenyl (PCB-153)', 'unknown'], '20022-29999': ['Reserved', 'unknown'], '30000': ['Radioactive Pollutant (Tracer, defined by originating centre)', 'unknown'], '30001-50000': ['Reserved', 'unknown'], '60000': ['HOx Radical (OH+HO2)', 'unknown'], '60001': ['Total Inorganic and Organic Peroxy Radicals (HO2+RO2)', 'RO2'], '60002': ['Passive Ozone', 'unknown'], '60003': ['NOx Expressed As Nitrogen', 'NOx'], '60004': ['All Nitrogen Oxides (NOy) Expressed As Nitrogen', 'NOy'], '60005': ['Total Inorganic Chlorine', 'Clx'], '60006': ['Total Inorganic Bromine', 'Brx'], '60007': ['Total Inorganic Chlorine Except HCl, ClONO2: ClOx', 'unknown'], '60008': ['Total Inorganic Bromine Except Hbr, BrONO2:BrOx', 'unknown'], '60009': ['Lumped Alkanes', 'unknown'], '60010': ['Lumped Alkenes', 'unknown'], '60011': ['Lumped Aromatic Coumpounds', 'unknown'], '60012': ['Lumped Terpenes', 'unknown'], '60013': ['Non-Methane Volatile Organic Compounds Expressed as Carbon', 'NMVOC'], '60014': ['Anthropogenic Non-Methane Volatile Organic Compounds Expressed as Carbon', 'aNMVOC'], '60015': ['Biogenic Non-Methane Volatile Organic Compounds Expressed as Carbon', 'bNMVOC'], '60016': ['Lumped Oxygenated Hydrocarbons', 'OVOC'], '60017-61999': ['Reserved', 'unknown'], '62000': ['Total Aerosol', 'unknown'], '62001': ['Dust Dry', 'unknown'], '62002': ['water In Ambient', 'unknown'], '62003': ['Ammonium Dry', 'unknown'], '62004': ['Nitrate Dry', 'unknown'], '62005': ['Nitric Acid Trihydrate', 'unknown'], '62006': ['Sulphate Dry', 'unknown'], '62007': ['Mercury Dry', 'unknown'], '62008': ['Sea Salt Dry', 'unknown'], '62009': ['Black Carbon Dry', 'unknown'], '62010': ['Particulate Organic Matter Dry', 'unknown'], '62011': ['Primary Particulate Organic Matter Dry', 'unknown'], '62012': ['Secondary Particulate Organic Matter Dry', 'unknown'], '62013': ['Black carbon hydrophilic dry', 'unknown'], '62014': ['Black carbon hydrophobic dry', 'unknown'], '62015': ['Particulate organic matter hydrophilic dry', 'unknown'], '62016': ['Particulate organic matter hydrophobic dry', 'unknown'], '62017': ['Nitrate hydrophilic dry', 'unknown'], '62018': ['Nitrate hydrophobic dry', 'unknown'], '62019': ['Reserved', 'unknown'], '62020': ['Smoke - high absorption', 'unknown'], '62021': ['Smoke - low absorption', 'unknown'], '62022': ['Aerosol - high absorption', 'unknown'], '62023': ['Aerosol - low absorption', 'unknown'], '62024': ['Reserved', 'unknown'], '62025': ['Volcanic ash', 'unknown'], '62036': ['Brown Carbon Dry', 'unknown'], '62037-65534': ['Reserved', 'unknown'], '65535': ['Missing', 'unknown']}"}, {"fullname": "grib2io.tables.section4.table_4_234", "modulename": "grib2io.tables.section4", "qualname": "table_4_234", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Crops, mixed farming', '2': 'Short grass', '3': 'Evergreen needleleaf trees', '4': 'Deciduous needleleaf trees', '5': 'Deciduous broadleaf trees', '6': 'Evergreen broadleaf trees', '7': 'Tall grass', '8': 'Desert', '9': 'Tundra', '10': 'Irrigated corps', '11': 'Semidesert', '12': 'Ice caps and glaciers', '13': 'Bogs and marshes', '14': 'Inland water', '15': 'Ocean', '16': 'Evergreen shrubs', '17': 'Deciduous shrubs', '18': 'Mixed forest', '19': 'Interrupted forest', '20': 'Water and land mixtures', '21-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_235", "modulename": "grib2io.tables.section4", "qualname": "table_4_235", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Total Wave Spectrum (combined wind waves and swell)', '1': 'Generalized Partition', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_236", "modulename": "grib2io.tables.section4", "qualname": "table_4_236", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Coarse', '2': 'Medium', '3': 'Medium-fine', '4': 'Fine', '5': 'Very-fine', '6': 'Organic', '7': 'Tropical-organic', '8-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_238", "modulename": "grib2io.tables.section4", "qualname": "table_4_238", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Aviation', '2': 'Lightning', '3': 'Biogenic Sources', '4': 'Anthropogenic sources', '5': 'Wild fires', '6': 'Natural sources', '7': 'Bio-fuel', '8': 'Volcanoes', '9': 'Fossil-fuel', '10': 'Wetlands', '11': 'Oceans', '12': 'Elevated anthropogenic sources', '13': 'Surface anthropogenic sources', '14': 'Agriculture livestock', '15': 'Agriculture soils', '16': 'Agriculture waste burning', '17': 'Agriculture (all)', '18': 'Residential, commercial and other combustion', '19': 'Power generation', '20': 'Super power stations', '21': 'Fugitives', '22': 'Industrial process', '23': 'Solvents', '24': 'Ships', '25': 'Wastes', '26': 'Road transportation', '27': 'Off-road transportation', '28-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_239", "modulename": "grib2io.tables.section4", "qualname": "table_4_239", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Bog', '2': 'Drained', '3': 'Fen', '4': 'Floodplain', '5': 'Mangrove', '6': 'Marsh', '7': 'Rice', '8': 'Riverine', '9': 'Salt Marsh', '10': 'Swamp', '11': 'Upland', '12': 'Wet tundra', '13-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_243", "modulename": "grib2io.tables.section4", "qualname": "table_4_243", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Evergreen broadleaved forest', '2': 'Deciduous broadleaved closed forest', '3': 'Deciduous broadleaved open forest', '4': 'Evergreen needle-leaf forest', '5': 'Deciduous needle-leaf forest', '6': 'Mixed leaf trees', '7': 'Fresh water flooded trees', '8': 'Saline water flooded trees', '9': 'Mosaic tree/natural vegetation', '10': 'Burnt tree cover', '11': 'Evergreen shurbs closed-open', '12': 'Deciduous shurbs closed-open', '13': 'Herbaceous vegetation closed-open', '14': 'Sparse herbaceous or grass', '15': 'Flooded shurbs or herbaceous', '16': 'Cultivated and managed areas', '17': 'Mosaic crop/tree/natural vegetation', '18': 'Mosaic crop/shrub/grass', '19': 'Bare areas', '20': 'Water', '21': 'Snow and ice', '22': 'Artificial surface', '23': 'Ocean', '24': 'Irrigated croplands', '25': 'Rain fed croplands', '26': 'Mosaic cropland (50-70%)-vegetation (20-50%)', '27': 'Mosaic vegetation (50-70%)-cropland (20-50%)', '28': 'Closed broadleaved evergreen forest', '29': 'Closed needle-leaved evergreen forest', '30': 'Open needle-leaved deciduous forest', '31': 'Mixed broadleaved and needle-leave forest', '32': 'Mosaic shrubland (50-70%)-grassland (20-50%)', '33': 'Mosaic grassland (50-70%)-shrubland (20-50%)', '34': 'Closed to open shrubland', '35': 'Sparse vegetation', '36': 'Closed to open forest regularly flooded', '37': 'Closed forest or shrubland permanently flooded', '38': 'Closed to open grassland regularly flooded', '39': 'Undefined', '40-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_244", "modulename": "grib2io.tables.section4", "qualname": "table_4_244", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No Quality Information Available', '1': 'Failed', '2': 'Passed', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_246", "modulename": "grib2io.tables.section4", "qualname": "table_4_246", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No thunderstorm occurrence', '1': 'Weak thunderstorm', '2': 'Moderate thunderstorm', '3': 'Severe thunderstorm', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_247", "modulename": "grib2io.tables.section4", "qualname": "table_4_247", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No precipitation occurrence', '1': 'Light precipitation', '2': 'Moderate precipitation', '3': 'Heavy precipitation', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_248", "modulename": "grib2io.tables.section4", "qualname": "table_4_248", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Nearest forecast or analysis time to specified local time', '1': 'Interpolated to be valid at the specified local time', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_249", "modulename": "grib2io.tables.section4", "qualname": "table_4_249", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Showers', '2': 'Intermittent', '3': 'Continuous', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_250", "modulename": "grib2io.tables.section4", "qualname": "table_4_250", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'South-West', '2': 'South', '3': 'South-East', '4': 'West', '5': 'No direction', '6': 'East', '7': 'North-West', '8': 'North', '9': 'North-East', '10-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_251", "modulename": "grib2io.tables.section4", "qualname": "table_4_251", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Undefined Sequence', '1': 'Geometric sequence,(see Note 1)', '2': 'Arithmetic sequence,(see Note 2)', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_scale_time_hours", "modulename": "grib2io.tables.section4", "qualname": "table_scale_time_hours", "kind": "variable", "doc": "

\n", "default_value": "{'0': 60.0, '1': 1.0, '2': 0.041666666666666664, '3': 0.001388888888888889, '4': 0.00011415525114155251, '5': 1.1415525114155251e-05, '6': 3.80517503805175e-06, '7': 1.1415525114155251e-06, '8': 1.0, '9': 1.0, '10': 3.0, '11': 6.0, '12': 12.0, '13': 3600.0, '14-255': 1.0}"}, {"fullname": "grib2io.tables.section4.table_wgrib2_level_string", "modulename": "grib2io.tables.section4", "qualname": "table_wgrib2_level_string", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['reserved', 'reserved'], '1': ['surface', 'reserved'], '2': ['cloud base', 'reserved'], '3': ['cloud top', 'reserved'], '4': ['0C isotherm', 'reserved'], '5': ['level of adiabatic condensation from sfc', 'reserved'], '6': ['max wind', 'reserved'], '7': ['tropopause', 'reserved'], '8': ['top of atmosphere', 'reserved'], '9': ['sea bottom', 'reserved'], '10': ['entire atmosphere', 'reserved'], '11': ['cumulonimbus base', 'reserved'], '12': ['cumulonimbus top', 'reserved'], '13': ['lowest level %g%% integrated cloud cover', 'reserved'], '14': ['level of free convection', 'reserved'], '15': ['convection condensation level', 'reserved'], '16': ['level of neutral buoyancy', 'reserved'], '17': ['reserved', 'reserved'], '18': ['reserved', 'reserved'], '19': ['reserved', 'reserved'], '20': ['%g K level', 'reserved'], '21': ['lowest level > %g kg/m^3', 'reserved'], '22': ['highest level > %g kg/m^3', 'reserved'], '23': ['lowest level > %g Bq/m^3', 'reserved'], '24': ['highest level > %g Bg/m^3', 'reserved'], '25': ['reserved', 'reserved'], '26': ['reserved', 'reserved'], '27': ['reserved', 'reserved'], '28': ['reserved', 'reserved'], '29': ['reserved', 'reserved'], '30': ['reserved', 'reserved'], '31': ['reserved', 'reserved'], '32': ['reserved', 'reserved'], '33': ['reserved', 'reserved'], '34': ['reserved', 'reserved'], '35': ['reserved', 'reserved'], '36': ['reserved', 'reserved'], '37': ['reserved', 'reserved'], '38': ['reserved', 'reserved'], '39': ['reserved', 'reserved'], '40': ['reserved', 'reserved'], '41': ['reserved', 'reserved'], '42': ['reserved', 'reserved'], '43': ['reserved', 'reserved'], '44': ['reserved', 'reserved'], '45': ['reserved', 'reserved'], '46': ['reserved', 'reserved'], '47': ['reserved', 'reserved'], '48': ['reserved', 'reserved'], '49': ['reserved', 'reserved'], '50': ['reserved', 'reserved'], '51': ['reserved', 'reserved'], '52': ['reserved', 'reserved'], '53': ['reserved', 'reserved'], '54': ['reserved', 'reserved'], '55': ['reserved', 'reserved'], '56': ['reserved', 'reserved'], '57': ['reserved', 'reserved'], '58': ['reserved', 'reserved'], '59': ['reserved', 'reserved'], '60': ['reserved', 'reserved'], '61': ['reserved', 'reserved'], '62': ['reserved', 'reserved'], '63': ['reserved', 'reserved'], '64': ['reserved', 'reserved'], '65': ['reserved', 'reserved'], '66': ['reserved', 'reserved'], '67': ['reserved', 'reserved'], '68': ['reserved', 'reserved'], '69': ['reserved', 'reserved'], '70': ['reserved', 'reserved'], '71': ['reserved', 'reserved'], '72': ['reserved', 'reserved'], '73': ['reserved', 'reserved'], '74': ['reserved', 'reserved'], '75': ['reserved', 'reserved'], '76': ['reserved', 'reserved'], '77': ['reserved', 'reserved'], '78': ['reserved', 'reserved'], '79': ['reserved', 'reserved'], '80': ['reserved', 'reserved'], '81': ['reserved', 'reserved'], '82': ['reserved', 'reserved'], '83': ['reserved', 'reserved'], '84': ['reserved', 'reserved'], '85': ['reserved', 'reserved'], '86': ['reserved', 'reserved'], '87': ['reserved', 'reserved'], '88': ['reserved', 'reserved'], '89': ['reserved', 'reserved'], '90': ['reserved', 'reserved'], '91': ['reserved', 'reserved'], '92': ['reserved', 'reserved'], '93': ['reserved', 'reserved'], '94': ['reserved', 'reserved'], '95': ['reserved', 'reserved'], '96': ['reserved', 'reserved'], '97': ['reserved', 'reserved'], '98': ['reserved', 'reserved'], '99': ['reserved', 'reserved'], '100': ['%g mb', '%g-%g mb'], '101': ['mean sea level', 'reserved'], '102': ['%g m above mean sea level', '%g-%g m above mean sea level'], '103': ['%g m above ground', '%g-%g m above ground'], '104': ['%g sigma level', '%g-%g sigma layer'], '105': ['%g hybrid level', '%g-%g hybrid layer'], '106': ['%g m underground', '%g-%g m underground'], '107': ['%g K isentropic level', '%g-%g K isentropic layer'], '108': ['%g mb above ground', '%g-%g mb above ground'], '109': ['PV=%g (Km^2/kg/s) surface', 'reserved'], '110': ['reserved', 'reserved'], '111': ['%g Eta level', '%g-%g Eta layer'], '112': ['reserved', 'reserved'], '113': ['%g logarithmic hybrid level', 'reserved'], '114': ['snow level', 'reserved'], '115': ['%g sigma height level', '%g-%g sigma heigh layer'], '116': ['reserved', 'reserved'], '117': ['mixed layer depth', 'reserved'], '118': ['%g hybrid height level', '%g-%g hybrid height layer'], '119': ['%g hybrid pressure level', '%g-%g hybrid pressure layer'], '120': ['reserved', 'reserved'], '121': ['reserved', 'reserved'], '122': ['reserved', 'reserved'], '123': ['reserved', 'reserved'], '124': ['reserved', 'reserved'], '125': ['reserved', 'reserved'], '126': ['reserved', 'reserved'], '127': ['reserved', 'reserved'], '128': ['reserved', 'reserved'], '129': ['reserved', 'reserved'], '130': ['reserved', 'reserved'], '131': ['reserved', 'reserved'], '132': ['reserved', 'reserved'], '133': ['reserved', 'reserved'], '134': ['reserved', 'reserved'], '135': ['reserved', 'reserved'], '136': ['reserved', 'reserved'], '137': ['reserved', 'reserved'], '138': ['reserved', 'reserved'], '139': ['reserved', 'reserved'], '140': ['reserved', 'reserved'], '141': ['reserved', 'reserved'], '142': ['reserved', 'reserved'], '143': ['reserved', 'reserved'], '144': ['reserved', 'reserved'], '145': ['reserved', 'reserved'], '146': ['reserved', 'reserved'], '147': ['reserved', 'reserved'], '148': ['reserved', 'reserved'], '149': ['reserved', 'reserved'], '150': ['%g generalized vertical height coordinate', 'reserved'], '151': ['soil level %g', 'reserved'], '152': ['reserved', 'reserved'], '153': ['reserved', 'reserved'], '154': ['reserved', 'reserved'], '155': ['reserved', 'reserved'], '156': ['reserved', 'reserved'], '157': ['reserved', 'reserved'], '158': ['reserved', 'reserved'], '159': ['reserved', 'reserved'], '160': ['%g m below sea level', '%g-%g m below sea level'], '161': ['%g m below water surface', '%g-%g m ocean layer'], '162': ['lake or river bottom', 'reserved'], '163': ['bottom of sediment layer', 'reserved'], '164': ['bottom of thermally active sediment layer', 'reserved'], '165': ['bottom of sediment layer penetrated by thermal wave', 'reserved'], '166': ['maxing layer', 'reserved'], '167': ['bottom of root zone', 'reserved'], '168': ['reserved', 'reserved'], '169': ['reserved', 'reserved'], '170': ['reserved', 'reserved'], '171': ['reserved', 'reserved'], '172': ['reserved', 'reserved'], '173': ['reserved', 'reserved'], '174': ['top surface of ice on sea, lake or river', 'reserved'], '175': ['top surface of ice, und snow on sea, lake or river', 'reserved'], '176': ['bottom surface ice on sea, lake or river', 'reserved'], '177': ['deep soil', 'reserved'], '178': ['reserved', 'reserved'], '179': ['top surface of glacier ice and inland ice', 'reserved'], '180': ['deep inland or glacier ice', 'reserved'], '181': ['grid tile land fraction as a model surface', 'reserved'], '182': ['grid tile water fraction as a model surface', 'reserved'], '183': ['grid tile ice fraction on sea, lake or river as a model surface', 'reserved'], '184': ['grid tile glacier ice and inland ice fraction as a model surface', 'reserved'], '185': ['reserved', 'reserved'], '186': ['reserved', 'reserved'], '187': ['reserved', 'reserved'], '188': ['reserved', 'reserved'], '189': ['reserved', 'reserved'], '190': ['reserved', 'reserved'], '191': ['reserved', 'reserved'], '192': ['reserved', 'reserved'], '193': ['reserved', 'reserved'], '194': ['reserved', 'reserved'], '195': ['reserved', 'reserved'], '196': ['reserved', 'reserved'], '197': ['reserved', 'reserved'], '198': ['reserved', 'reserved'], '199': ['reserved', 'reserved'], '200': ['entire atmosphere (considered as a single layer)', 'reserved'], '201': ['entire ocean (considered as a single layer)', 'reserved'], '202': ['reserved', 'reserved'], '203': ['reserved', 'reserved'], '204': ['highest tropospheric freezing level', 'reserved'], '205': ['reserved', 'reserved'], '206': ['grid scale cloud bottom level', 'reserved'], '207': ['grid scale cloud top level', 'reserved'], '208': ['reserved', 'reserved'], '209': ['boundary layer cloud bottom level', 'reserved'], '210': ['boundary layer cloud top level', 'reserved'], '211': ['boundary layer cloud layer', 'reserved'], '212': ['low cloud bottom level', 'reserved'], '213': ['low cloud top level', 'reserved'], '214': ['low cloud layer', 'reserved'], '215': ['cloud ceiling', 'reserved'], '216': ['reserved', 'reserved'], '217': ['reserved', 'reserved'], '218': ['reserved', 'reserved'], '219': ['reserved', 'reserved'], '220': ['planetary boundary layer', 'reserved'], '221': ['layer between two hybrid levels', 'reserved'], '222': ['middle cloud bottom level', 'reserved'], '223': ['middle cloud top level', 'reserved'], '224': ['middle cloud layer', 'reserved'], '225': ['reserved', 'reserved'], '226': ['reserved', 'reserved'], '227': ['reserved', 'reserved'], '228': ['reserved', 'reserved'], '229': ['reserved', 'reserved'], '230': ['reserved', 'reserved'], '231': ['reserved', 'reserved'], '232': ['high cloud bottom level', 'reserved'], '233': ['high cloud top level', 'reserved'], '234': ['high cloud layer', 'reserved'], '235': ['%gC ocean isotherm', '%g-%gC ocean isotherm layer'], '236': ['layer between two depths below ocean surface', '%g-%g m ocean layer'], '237': ['bottom of ocean mixed layer', 'reserved'], '238': ['bottom of ocean isothermal layer', 'reserved'], '239': ['layer ocean surface and 26C ocean isothermal level', 'reserved'], '240': ['ocean mixed layer', 'reserved'], '241': ['%g in sequence', 'reserved'], '242': ['convective cloud bottom level', 'reserved'], '243': ['convective cloud top level', 'reserved'], '244': ['convective cloud layer', 'reserved'], '245': ['lowest level of the wet bulb zero', 'reserved'], '246': ['maximum equivalent potential temperature level', 'reserved'], '247': ['equilibrium level', 'reserved'], '248': ['shallow convective cloud bottom level', 'reserved'], '249': ['shallow convective cloud top level', 'reserved'], '250': ['reserved', 'reserved'], '251': ['deep convective cloud bottom level', 'reserved'], '252': ['deep convective cloud top level', 'reserved'], '253': ['lowest bottom level of supercooled liquid water layer', 'reserved'], '254': ['highest top level of supercooled liquid water layer', 'reserved'], '255': ['missing', 'reserved']}"}, {"fullname": "grib2io.tables.section4_discipline0", "modulename": "grib2io.tables.section4_discipline0", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_0", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Temperature', 'K', 'TMP'], '1': ['Virtual Temperature', 'K', 'VTMP'], '2': ['Potential Temperature', 'K', 'POT'], '3': ['Pseudo-Adiabatic Potential Temperature (or Equivalent Potential Temperature)', 'K', 'EPOT'], '4': ['Maximum Temperature', 'K', 'TMAX'], '5': ['Minimum Temperature', 'K', 'TMIN'], '6': ['Dew Point Temperature', 'K', 'DPT'], '7': ['Dew Point Depression (or Deficit)', 'K', 'DEPR'], '8': ['Lapse Rate', 'K m-1', 'LAPR'], '9': ['Temperature Anomaly', 'K', 'TMPA'], '10': ['Latent Heat Net Flux', 'W m-2', 'LHTFL'], '11': ['Sensible Heat Net Flux', 'W m-2', 'SHTFL'], '12': ['Heat Index', 'K', 'HEATX'], '13': ['Wind Chill Factor', 'K', 'WCF'], '14': ['Minimum Dew Point Depression', 'K', 'MINDPD'], '15': ['Virtual Potential Temperature', 'K', 'VPTMP'], '16': ['Snow Phase Change Heat Flux', 'W m-2', 'SNOHF'], '17': ['Skin Temperature', 'K', 'SKINT'], '18': ['Snow Temperature (top of snow)', 'K', 'SNOT'], '19': ['Turbulent Transfer Coefficient for Heat', 'Numeric', 'TTCHT'], '20': ['Turbulent Diffusion Coefficient for Heat', 'm2s-1', 'TDCHT'], '21': ['Apparent Temperature', 'K', 'APTMP'], '22': ['Temperature Tendency due to Short-Wave Radiation', 'K s-1', 'TTSWR'], '23': ['Temperature Tendency due to Long-Wave Radiation', 'K s-1', 'TTLWR'], '24': ['Temperature Tendency due to Short-Wave Radiation, Clear Sky', 'K s-1', 'TTSWRCS'], '25': ['Temperature Tendency due to Long-Wave Radiation, Clear Sky', 'K s-1', 'TTLWRCS'], '26': ['Temperature Tendency due to parameterizations', 'K s-1', 'TTPARM'], '27': ['Wet Bulb Temperature', 'K', 'WETBT'], '28': ['Unbalanced Component of Temperature', 'K', 'UCTMP'], '29': ['Temperature Advection', 'K s-1', 'TMPADV'], '30': ['Latent Heat Net Flux Due to Evaporation', 'W m-2', 'LHFLXE'], '31': ['Latent Heat Net Flux Due to Sublimation', 'W m-2', 'LHFLXS'], '32': ['Wet-Bulb Potential Temperature', 'K', 'WETBPT'], '33-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Snow Phase Change Heat Flux', 'W m-2', 'SNOHF'], '193': ['Temperature Tendency by All Radiation', 'K s-1', 'TTRAD'], '194': ['Relative Error Variance', 'unknown', 'REV'], '195': ['Large Scale Condensate Heating Rate', 'K s-1', 'LRGHR'], '196': ['Deep Convective Heating Rate', 'K s-1', 'CNVHR'], '197': ['Total Downward Heat Flux at Surface', 'W m-2', 'THFLX'], '198': ['Temperature Tendency by All Physics', 'K s-1', 'TTDIA'], '199': ['Temperature Tendency by Non-radiation Physics', 'K s-1', 'TTPHY'], '200': ['Standard Dev. of IR Temp. over 1x1 deg. area', 'K', 'TSD1D'], '201': ['Shallow Convective Heating Rate', 'K s-1', 'SHAHR'], '202': ['Vertical Diffusion Heating rate', 'K s-1', 'VDFHR'], '203': ['Potential Temperature at Top of Viscous Sublayer', 'K', 'THZ0'], '204': ['Tropical Cyclone Heat Potential', 'J m-2 K', 'TCHP'], '205': ['Effective Layer (EL) Temperature', 'C', 'ELMELT'], '206': ['Wet Bulb Globe Temperature', 'K', 'WETGLBT'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_1", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Specific Humidity', 'kg kg-1', 'SPFH'], '1': ['Relative Humidity', '%', 'RH'], '2': ['Humidity Mixing Ratio', 'kg kg-1', 'MIXR'], '3': ['Precipitable Water', 'kg m-2', 'PWAT'], '4': ['Vapour Pressure', 'Pa', 'VAPP'], '5': ['Saturation Deficit', 'Pa', 'SATD'], '6': ['Evaporation', 'kg m-2', 'EVP'], '7': ['Precipitation Rate', 'kg m-2 s-1', 'PRATE'], '8': ['Total Precipitation', 'kg m-2', 'APCP'], '9': ['Large-Scale Precipitation (non-convective)', 'kg m-2', 'NCPCP'], '10': ['Convective Precipitation', 'kg m-2', 'ACPCP'], '11': ['Snow Depth', 'm', 'SNOD'], '12': ['Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'SRWEQ'], '13': ['Water Equivalent of Accumulated Snow Depth', 'kg m-2', 'WEASD'], '14': ['Convective Snow', 'kg m-2', 'SNOC'], '15': ['Large-Scale Snow', 'kg m-2', 'SNOL'], '16': ['Snow Melt', 'kg m-2', 'SNOM'], '17': ['Snow Age', 'day', 'SNOAG'], '18': ['Absolute Humidity', 'kg m-3', 'ABSH'], '19': ['Precipitation Type', 'See Table 4.201', 'PTYPE'], '20': ['Integrated Liquid Water', 'kg m-2', 'ILIQW'], '21': ['Condensate', 'kg kg-1', 'TCOND'], '22': ['Cloud Mixing Ratio', 'kg kg-1', 'CLMR'], '23': ['Ice Water Mixing Ratio', 'kg kg-1', 'ICMR'], '24': ['Rain Mixing Ratio', 'kg kg-1', 'RWMR'], '25': ['Snow Mixing Ratio', 'kg kg-1', 'SNMR'], '26': ['Horizontal Moisture Convergence', 'kg kg-1 s-1', 'MCONV'], '27': ['Maximum Relative Humidity', '%', 'MAXRH'], '28': ['Maximum Absolute Humidity', 'kg m-3', 'MAXAH'], '29': ['Total Snowfall', 'm', 'ASNOW'], '30': ['Precipitable Water Category', 'See Table 4.202', 'PWCAT'], '31': ['Hail', 'm', 'HAIL'], '32': ['Graupel', 'kg kg-1', 'GRLE'], '33': ['Categorical Rain', 'Code table 4.222', 'CRAIN'], '34': ['Categorical Freezing Rain', 'Code table 4.222', 'CFRZR'], '35': ['Categorical Ice Pellets', 'Code table 4.222', 'CICEP'], '36': ['Categorical Snow', 'Code table 4.222', 'CSNOW'], '37': ['Convective Precipitation Rate', 'kg m-2 s-1', 'CPRAT'], '38': ['Horizontal Moisture Divergence', 'kg kg-1 s-1', 'MDIVER'], '39': ['Percent frozen precipitation', '%', 'CPOFP'], '40': ['Potential Evaporation', 'kg m-2', 'PEVAP'], '41': ['Potential Evaporation Rate', 'W m-2', 'PEVPR'], '42': ['Snow Cover', '%', 'SNOWC'], '43': ['Rain Fraction of Total Cloud Water', 'Proportion', 'FRAIN'], '44': ['Rime Factor', 'Numeric', 'RIME'], '45': ['Total Column Integrated Rain', 'kg m-2', 'TCOLR'], '46': ['Total Column Integrated Snow', 'kg m-2', 'TCOLS'], '47': ['Large Scale Water Precipitation (Non-Convective)', 'kg m-2', 'LSWP'], '48': ['Convective Water Precipitation', 'kg m-2', 'CWP'], '49': ['Total Water Precipitation', 'kg m-2', 'TWATP'], '50': ['Total Snow Precipitation', 'kg m-2', 'TSNOWP'], '51': ['Total Column Water (Vertically integrated total water (vapour+cloud water/ice)', 'kg m-2', 'TCWAT'], '52': ['Total Precipitation Rate', 'kg m-2 s-1', 'TPRATE'], '53': ['Total Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'TSRWE'], '54': ['Large Scale Precipitation Rate', 'kg m-2 s-1', 'LSPRATE'], '55': ['Convective Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'CSRWE'], '56': ['Large Scale Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'LSSRWE'], '57': ['Total Snowfall Rate', 'm s-1', 'TSRATE'], '58': ['Convective Snowfall Rate', 'm s-1', 'CSRATE'], '59': ['Large Scale Snowfall Rate', 'm s-1', 'LSSRATE'], '60': ['Snow Depth Water Equivalent', 'kg m-2', 'SDWE'], '61': ['Snow Density', 'kg m-3', 'SDEN'], '62': ['Snow Evaporation', 'kg m-2', 'SEVAP'], '63': ['Reserved', 'unknown', 'unknown'], '64': ['Total Column Integrated Water Vapour', 'kg m-2', 'TCIWV'], '65': ['Rain Precipitation Rate', 'kg m-2 s-1', 'RPRATE'], '66': ['Snow Precipitation Rate', 'kg m-2 s-1', 'SPRATE'], '67': ['Freezing Rain Precipitation Rate', 'kg m-2 s-1', 'FPRATE'], '68': ['Ice Pellets Precipitation Rate', 'kg m-2 s-1', 'IPRATE'], '69': ['Total Column Integrate Cloud Water', 'kg m-2', 'TCOLW'], '70': ['Total Column Integrate Cloud Ice', 'kg m-2', 'TCOLI'], '71': ['Hail Mixing Ratio', 'kg kg-1', 'HAILMXR'], '72': ['Total Column Integrate Hail', 'kg m-2', 'TCOLH'], '73': ['Hail Prepitation Rate', 'kg m-2 s-1', 'HAILPR'], '74': ['Total Column Integrate Graupel', 'kg m-2', 'TCOLG'], '75': ['Graupel (Snow Pellets) Prepitation Rate', 'kg m-2 s-1', 'GPRATE'], '76': ['Convective Rain Rate', 'kg m-2 s-1', 'CRRATE'], '77': ['Large Scale Rain Rate', 'kg m-2 s-1', 'LSRRATE'], '78': ['Total Column Integrate Water (All components including precipitation)', 'kg m-2', 'TCOLWA'], '79': ['Evaporation Rate', 'kg m-2 s-1', 'EVARATE'], '80': ['Total Condensate', 'kg kg-1', 'TOTCON'], '81': ['Total Column-Integrate Condensate', 'kg m-2', 'TCICON'], '82': ['Cloud Ice Mixing Ratio', 'kg kg-1', 'CIMIXR'], '83': ['Specific Cloud Liquid Water Content', 'kg kg-1', 'SCLLWC'], '84': ['Specific Cloud Ice Water Content', 'kg kg-1', 'SCLIWC'], '85': ['Specific Rain Water Content', 'kg kg-1', 'SRAINW'], '86': ['Specific Snow Water Content', 'kg kg-1', 'SSNOWW'], '87': ['Stratiform Precipitation Rate', 'kg m-2 s-1', 'STRPRATE'], '88': ['Categorical Convective Precipitation', 'Code table 4.222', 'CATCP'], '89': ['Reserved', 'unknown', 'unknown'], '90': ['Total Kinematic Moisture Flux', 'kg kg-1 m s-1', 'TKMFLX'], '91': ['U-component (zonal) Kinematic Moisture Flux', 'kg kg-1 m s-1', 'UKMFLX'], '92': ['V-component (meridional) Kinematic Moisture Flux', 'kg kg-1 m s-1', 'VKMFLX'], '93': ['Relative Humidity With Respect to Water', '%', 'RHWATER'], '94': ['Relative Humidity With Respect to Ice', '%', 'RHICE'], '95': ['Freezing or Frozen Precipitation Rate', 'kg m-2 s-1', 'FZPRATE'], '96': ['Mass Density of Rain', 'kg m-3', 'MASSDR'], '97': ['Mass Density of Snow', 'kg m-3', 'MASSDS'], '98': ['Mass Density of Graupel', 'kg m-3', 'MASSDG'], '99': ['Mass Density of Hail', 'kg m-3', 'MASSDH'], '100': ['Specific Number Concentration of Rain', 'kg-1', 'SPNCR'], '101': ['Specific Number Concentration of Snow', 'kg-1', 'SPNCS'], '102': ['Specific Number Concentration of Graupel', 'kg-1', 'SPNCG'], '103': ['Specific Number Concentration of Hail', 'kg-1', 'SPNCH'], '104': ['Number Density of Rain', 'm-3', 'NUMDR'], '105': ['Number Density of Snow', 'm-3', 'NUMDS'], '106': ['Number Density of Graupel', 'm-3', 'NUMDG'], '107': ['Number Density of Hail', 'm-3', 'NUMDH'], '108': ['Specific Humidity Tendency due to Parameterizations', 'kg kg-1 s-1', 'SHTPRM'], '109': ['Mass Density of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Volume of Air', 'kg m-3', 'MDLWHVA'], '110': ['Specific Mass of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Mass of Moist Air', 'kg kg-1', 'SMLWHMA'], '111': ['Mass Mixing Ratio of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Mass of Dry Air', 'kg kg-1', 'MMLWHDA'], '112': ['Mass Density of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Volume of Air', 'kg m-3', 'MDLWGVA'], '113': ['Specific Mass of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Mass of Moist Air', 'kg kg-1', 'SMLWGMA'], '114': ['Mass Mixing Ratio of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Mass of Dry Air', 'kg kg-1', 'MMLWGDA'], '115': ['Mass Density of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Volume of Air', 'kg m-3', 'MDLWSVA'], '116': ['Specific Mass of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Mass of Moist Air', 'kg kg-1', 'SMLWSMA'], '117': ['Mass Mixing Ratio of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Mass of Dry Air', 'kg kg-1', 'MMLWSDA'], '118': ['Unbalanced Component of Specific Humidity', 'kg kg-1', 'UNCSH'], '119': ['Unbalanced Component of Specific Cloud Liquid Water content', 'kg kg-1', 'UCSCLW'], '120': ['Unbalanced Component of Specific Cloud Ice Water content', 'kg kg-1', 'UCSCIW'], '121': ['Fraction of Snow Cover', 'Proportion', 'FSNOWC'], '122': ['Precipitation intensity index', 'See Table 4.247', 'PIIDX'], '123': ['Domiunknownt precipitation type', 'See Table 4.201', 'DPTYPE'], '124': ['Presence of showers', 'See Table 4.222', 'PSHOW'], '125': ['Presence of blowing snow', 'See Table 4.222', 'PBSNOW'], '126': ['Presence of blizzard', 'See Table 4.222', 'PBLIZZ'], '127': ['Ice pellets (non-water equivalent) precipitation rate', 'm s-1', 'ICEP'], '128': ['Total solid precipitation rate', 'kg m-2 s-1', 'TSPRATE'], '129': ['Effective Radius of Cloud Water', 'm', 'EFRCWAT'], '130': ['Effective Radius of Rain', 'm', 'EFRRAIN'], '131': ['Effective Radius of Cloud Ice', 'm', 'EFRCICE'], '132': ['Effective Radius of Snow', 'm', 'EFRSNOW'], '133': ['Effective Radius of Graupel', 'm', 'EFRGRL'], '134': ['Effective Radius of Hail', 'm', 'EFRHAIL'], '135': ['Effective Radius of Subgrid Liquid Clouds', 'm', 'EFRSLC'], '136': ['Effective Radius of Subgrid Ice Clouds', 'm', 'EFRSICEC'], '137': ['Effective Aspect Ratio of Rain', 'unknown', 'EFARRAIN'], '138': ['Effective Aspect Ratio of Cloud Ice', 'unknown', 'EFARCICE'], '139': ['Effective Aspect Ratio of Snow', 'unknown', 'EFARSNOW'], '140': ['Effective Aspect Ratio of Graupel', 'unknown', 'EFARGRL'], '141': ['Effective Aspect Ratio of Hail', 'unknown', 'EFARHAIL'], '142': ['Effective Aspect Ratio of Subgrid Ice Clouds', 'unknown', 'EFARSIC'], '143': ['Potential evaporation rate', 'kg m-2 s-1', 'PERATE'], '144': ['Specific rain water content (convective)', 'kg kg-1', 'SRWATERC'], '145': ['Specific snow water content (convective)', 'kg kg-1', 'SSNOWWC'], '146': ['Cloud ice precipitation rate', 'kg m-2 s-1', 'CICEPR'], '147': ['Character of precipitation', 'See Table 4.249', 'CHPRECIP'], '148': ['Snow evaporation rate', 'kg m-2 s-1', 'SNOWERAT'], '149': ['Cloud water mixing ratio', 'kg kg-1', 'CWATERMR'], '150': ['Column integrated eastward water vapour mass flux', 'kg m-1s-1', 'CEWVMF'], '151': ['Column integrated northward water vapour mass flux', 'kg m-1s-1', 'CNWVMF'], '152': ['Column integrated eastward cloud liquid water mass flux', 'kg m-1s-1', 'CECLWMF'], '153': ['Column integrated northward cloud liquid water mass flux', 'kg m-1s-1', 'CNCLWMF'], '154': ['Column integrated eastward cloud ice mass flux', 'kg m-1s-1', 'CECIMF'], '155': ['Column integrated northward cloud ice mass flux', 'kg m-1s-1', 'CNCIMF'], '156': ['Column integrated eastward rain mass flux', 'kg m-1s-1', 'CERMF'], '157': ['Column integrated northward rain mass flux', 'kg m-1s-1', 'CNRMF'], '158': ['Column integrated eastward snow mass flux', 'kg m-1s-1', 'CEFMF'], '159': ['Column integrated northward snow mass flux', 'kg m-1s-1', 'CNSMF'], '160': ['Column integrated divergence of water vapour mass flux', 'kg m-1s-1', 'CDWFMF'], '161': ['Column integrated divergence of cloud liquid water mass flux', 'kg m-1s-1', 'CDCLWMF'], '162': ['Column integrated divergence of cloud ice mass flux', 'kg m-1s-1', 'CDCIMF'], '163': ['Column integrated divergence of rain mass flux', 'kg m-1s-1', 'CDRMF'], '164': ['Column integrated divergence of snow mass flux', 'kg m-1s-1', 'CDSMF'], '165': ['Column integrated divergence of total water mass flux', 'kg m-1s-1', 'CDTWMF'], '166': ['Column integrated water vapour flux', 'kg m-1s-1', 'CWVF'], '167': ['Total column supercooled liquid water', 'kg m-2', 'TCSLW'], '168': ['Saturation specific humidity with respect to water', 'kg m-3', 'SSPFHW'], '169': ['Total column integrated saturation specific humidity with respect to water', 'kg m-2', 'TCISSPFHW'], '170-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Categorical Rain', 'Code table 4.222', 'CRAIN'], '193': ['Categorical Freezing Rain', 'Code table 4.222', 'CFRZR'], '194': ['Categorical Ice Pellets', 'Code table 4.222', 'CICEP'], '195': ['Categorical Snow', 'Code table 4.222', 'CSNOW'], '196': ['Convective Precipitation Rate', 'kg m-2 s-1', 'CPRAT'], '197': ['Horizontal Moisture Divergence', 'kg kg-1 s-1', 'MDIV'], '198': ['Minimum Relative Humidity', '%', 'MINRH'], '199': ['Potential Evaporation', 'kg m-2', 'PEVAP'], '200': ['Potential Evaporation Rate', 'W m-2', 'PEVPR'], '201': ['Snow Cover', '%', 'SNOWC'], '202': ['Rain Fraction of Total Liquid Water', 'non-dim', 'FRAIN'], '203': ['Rime Factor', 'non-dim', 'RIME'], '204': ['Total Column Integrated Rain', 'kg m-2', 'TCOLR'], '205': ['Total Column Integrated Snow', 'kg m-2', 'TCOLS'], '206': ['Total Icing Potential Diagnostic', 'non-dim', 'TIPD'], '207': ['Number concentration for ice particles', 'non-dim', 'NCIP'], '208': ['Snow temperature', 'K', 'SNOT'], '209': ['Total column-integrated supercooled liquid water', 'kg m-2', 'TCLSW'], '210': ['Total column-integrated melting ice', 'kg m-2', 'TCOLM'], '211': ['Evaporation - Precipitation', 'cm/day', 'EMNP'], '212': ['Sublimation (evaporation from snow)', 'W m-2', 'SBSNO'], '213': ['Deep Convective Moistening Rate', 'kg kg-1 s-1', 'CNVMR'], '214': ['Shallow Convective Moistening Rate', 'kg kg-1 s-1', 'SHAMR'], '215': ['Vertical Diffusion Moistening Rate', 'kg kg-1 s-1', 'VDFMR'], '216': ['Condensation Pressure of Parcali Lifted From Indicate Surface', 'Pa', 'CONDP'], '217': ['Large scale moistening rate', 'kg kg-1 s-1', 'LRGMR'], '218': ['Specific humidity at top of viscous sublayer', 'kg kg-1', 'QZ0'], '219': ['Maximum specific humidity at 2m', 'kg kg-1', 'QMAX'], '220': ['Minimum specific humidity at 2m', 'kg kg-1', 'QMIN'], '221': ['Liquid precipitation (Rainfall)', 'kg m-2', 'ARAIN'], '222': ['Snow temperature, depth-avg', 'K', 'SNOWT'], '223': ['Total precipitation (nearest grid point)', 'kg m-2', 'APCPN'], '224': ['Convective precipitation (nearest grid point)', 'kg m-2', 'ACPCPN'], '225': ['Freezing Rain', 'kg m-2', 'FRZR'], '226': ['Predominant Weather (see Local Use Note A)', 'Numeric', 'PWTHER'], '227': ['Frozen Rain', 'kg m-2', 'FROZR'], '228': ['Flat Ice Accumulation (FRAM)', 'kg m-2', 'FICEAC'], '229': ['Line Ice Accumulation (FRAM)', 'kg m-2', 'LICEAC'], '230': ['Sleet Accumulation', 'kg m-2', 'SLACC'], '231': ['Precipitation Potential Index', '%', 'PPINDX'], '232': ['Probability Cloud Ice Present', '%', 'PROBCIP'], '233': ['Snow Liquid ratio', 'kg kg-1', 'SNOWLR'], '234': ['Precipitation Duration', 'hour', 'PCPDUR'], '235': ['Cloud Liquid Mixing Ratio', 'kg kg-1', 'CLLMR'], '236-240': ['Reserved', 'unknown', 'unknown'], '241': ['Total Snow', 'kg m-2', 'TSNOW'], '242': ['Relative Humidity with Respect to Precipitable Water', '%', 'RHPW'], '245': ['Hourly Maximum of Column Vertical Integrated Graupel on Entire Atmosphere', 'kg m-2', 'MAXVIG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_2", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Wind Direction (from which blowing)', '\u00b0', 'WDIR'], '1': ['Wind Speed', 'm s-1', 'WIND'], '2': ['U-Component of Wind', 'm s-1', 'UGRD'], '3': ['V-Component of Wind', 'm s-1', 'VGRD'], '4': ['Stream Function', 'm2 s-1', 'STRM'], '5': ['Velocity Potential', 'm2 s-1', 'VPOT'], '6': ['Montgomery Stream Function', 'm2 s-2', 'MNTSF'], '7': ['Sigma Coordinate Vertical Velocity', 's-1', 'SGCVV'], '8': ['Vertical Velocity (Pressure)', 'Pa s-1', 'VVEL'], '9': ['Vertical Velocity (Geometric)', 'm s-1', 'DZDT'], '10': ['Absolute Vorticity', 's-1', 'ABSV'], '11': ['Absolute Divergence', 's-1', 'ABSD'], '12': ['Relative Vorticity', 's-1', 'RELV'], '13': ['Relative Divergence', 's-1', 'RELD'], '14': ['Potential Vorticity', 'K m2 kg-1 s-1', 'PVORT'], '15': ['Vertical U-Component Shear', 's-1', 'VUCSH'], '16': ['Vertical V-Component Shear', 's-1', 'VVCSH'], '17': ['Momentum Flux, U-Component', 'N m-2', 'UFLX'], '18': ['Momentum Flux, V-Component', 'N m-2', 'VFLX'], '19': ['Wind Mixing Energy', 'J', 'WMIXE'], '20': ['Boundary Layer Dissipation', 'W m-2', 'BLYDP'], '21': ['Maximum Wind Speed', 'm s-1', 'MAXGUST'], '22': ['Wind Speed (Gust)', 'm s-1', 'GUST'], '23': ['U-Component of Wind (Gust)', 'm s-1', 'UGUST'], '24': ['V-Component of Wind (Gust)', 'm s-1', 'VGUST'], '25': ['Vertical Speed Shear', 's-1', 'VWSH'], '26': ['Horizontal Momentum Flux', 'N m-2', 'MFLX'], '27': ['U-Component Storm Motion', 'm s-1', 'USTM'], '28': ['V-Component Storm Motion', 'm s-1', 'VSTM'], '29': ['Drag Coefficient', 'Numeric', 'CD'], '30': ['Frictional Velocity', 'm s-1', 'FRICV'], '31': ['Turbulent Diffusion Coefficient for Momentum', 'm2 s-1', 'TDCMOM'], '32': ['Eta Coordinate Vertical Velocity', 's-1', 'ETACVV'], '33': ['Wind Fetch', 'm', 'WINDF'], '34': ['Normal Wind Component', 'm s-1', 'NWIND'], '35': ['Tangential Wind Component', 'm s-1', 'TWIND'], '36': ['Amplitude Function for Rossby Wave Envelope for Meridional Wind', 'm s-1', 'AFRWE'], '37': ['Northward Turbulent Surface Stress', 'N m-2 s', 'NTSS'], '38': ['Eastward Turbulent Surface Stress', 'N m-2 s', 'ETSS'], '39': ['Eastward Wind Tendency Due to Parameterizations', 'm s-2', 'EWTPARM'], '40': ['Northward Wind Tendency Due to Parameterizations', 'm s-2', 'NWTPARM'], '41': ['U-Component of Geostrophic Wind', 'm s-1', 'UGWIND'], '42': ['V-Component of Geostrophic Wind', 'm s-1', 'VGWIND'], '43': ['Geostrophic Wind Direction', '\u00b0', 'GEOWD'], '44': ['Geostrophic Wind Speed', 'm s-1', 'GEOWS'], '45': ['Unbalanced Component of Divergence', 's-1', 'UNDIV'], '46': ['Vorticity Advection', 's-2', 'VORTADV'], '47': ['Surface roughness for heat,(see Note 5)', 'm', 'SFRHEAT'], '48': ['Surface roughness for moisture,(see Note 6)', 'm', 'SFRMOIST'], '49': ['Wind stress', 'N m-2', 'WINDSTR'], '50': ['Eastward wind stress', 'N m-2', 'EWINDSTR'], '51': ['Northward wind stress', 'N m-2', 'NWINDSTR'], '52': ['u-component of wind stress', 'N m-2', 'UWINDSTR'], '53': ['v-component of wind stress', 'N m-2', 'VWINDSTR'], '54': ['Natural logarithm of surface roughness length for heat', 'm', 'NLSRLH'], '55': ['Natural logarithm of surface roughness length for moisture', 'm', 'NLSRLM'], '56': ['u-component of neutral wind', 'm s-1', 'UNWIND'], '57': ['v-component of neutral wind', 'm s-1', 'VNWIND'], '58': ['Magnitude of turbulent surface stress', 'N m-2', 'TSFCSTR'], '59': ['Vertical divergence', 's-1', 'VDIV'], '60': ['Drag thermal coefficient', 'Numeric', 'DTC'], '61': ['Drag evaporation coefficient', 'Numeric', 'DEC'], '62': ['Eastward turbulent surface stress', 'N m-2', 'EASTTSS'], '63': ['Northward turbulent surface stress', 'N m-2', 'NRTHTSS'], '64': ['Eastward turbulent surface stress due to orographic form drag', 'N m-2', 'EASTTSSOD'], '65': ['Northward turbulent surface stress due to orographic form drag', 'N m-2', 'NRTHTSSOD'], '66': ['Eastward turbulent surface stress due to surface roughness', 'N m-2', 'EASTTSSSR'], '67': ['Northward turbulent surface stress due to surface roughness', 'N m-2', 'NRTHTSSSR'], '68-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Vertical Speed Shear', 's-1', 'VWSH'], '193': ['Horizontal Momentum Flux', 'N m-2', 'MFLX'], '194': ['U-Component Storm Motion', 'm s-1', 'USTM'], '195': ['V-Component Storm Motion', 'm s-1', 'VSTM'], '196': ['Drag Coefficient', 'non-dim', 'CD'], '197': ['Frictional Velocity', 'm s-1', 'FRICV'], '198': ['Latitude of U Wind Component of Velocity', 'deg', 'LAUV'], '199': ['Longitude of U Wind Component of Velocity', 'deg', 'LOUV'], '200': ['Latitude of V Wind Component of Velocity', 'deg', 'LAVV'], '201': ['Longitude of V Wind Component of Velocity', 'deg', 'LOVV'], '202': ['Latitude of Presure Point', 'deg', 'LAPP'], '203': ['Longitude of Presure Point', 'deg', 'LOPP'], '204': ['Vertical Eddy Diffusivity Heat exchange', 'm2 s-1', 'VEDH'], '205': ['Covariance between Meridional and Zonal Components of the wind.', 'm2 s-2', 'COVMZ'], '206': ['Covariance between Temperature and Zonal Components of the wind.', 'K*m s-1', 'COVTZ'], '207': ['Covariance between Temperature and Meridional Components of the wind.', 'K*m s-1', 'COVTM'], '208': ['Vertical Diffusion Zonal Acceleration', 'm s-2', 'VDFUA'], '209': ['Vertical Diffusion Meridional Acceleration', 'm s-2', 'VDFVA'], '210': ['Gravity wave drag zonal acceleration', 'm s-2', 'GWDU'], '211': ['Gravity wave drag meridional acceleration', 'm s-2', 'GWDV'], '212': ['Convective zonal momentum mixing acceleration', 'm s-2', 'CNVU'], '213': ['Convective meridional momentum mixing acceleration', 'm s-2', 'CNVV'], '214': ['Tendency of vertical velocity', 'm s-2', 'WTEND'], '215': ['Omega (Dp/Dt) divide by density', 'K', 'OMGALF'], '216': ['Convective Gravity wave drag zonal acceleration', 'm s-2', 'CNGWDU'], '217': ['Convective Gravity wave drag meridional acceleration', 'm s-2', 'CNGWDV'], '218': ['Velocity Point Model Surface', 'unknown', 'LMV'], '219': ['Potential Vorticity (Mass-Weighted)', '1/s/m', 'PVMWW'], '220': ['Hourly Maximum of Upward Vertical Velocity', 'm s-1', 'MAXUVV'], '221': ['Hourly Maximum of Downward Vertical Velocity', 'm s-1', 'MAXDVV'], '222': ['U Component of Hourly Maximum 10m Wind Speed', 'm s-1', 'MAXUW'], '223': ['V Component of Hourly Maximum 10m Wind Speed', 'm s-1', 'MAXVW'], '224': ['Ventilation Rate', 'm2 s-1', 'VRATE'], '225': ['Transport Wind Speed', 'm s-1', 'TRWSPD'], '226': ['Transport Wind Direction', 'Deg', 'TRWDIR'], '227': ['Earliest Reasonable Arrival Time (10% exceedance)', 's', 'TOA10'], '228': ['Most Likely Arrival Time (50% exceedance)', 's', 'TOA50'], '229': ['Most Likely Departure Time (50% exceedance)', 's', 'TOD50'], '230': ['Latest Reasonable Departure Time (90% exceedance)', 's', 'TOD90'], '231': ['Tropical Wind Direction', '\u00b0', 'TPWDIR'], '232': ['Tropical Wind Speed', 'm s-1', 'TPWSPD'], '233': ['Inflow Based (ESFC) to 50% EL Shear Magnitude', 'kt', 'ESHR'], '234': ['U Component Inflow Based to 50% EL Shear Vector', 'kt', 'UESH'], '235': ['V Component Inflow Based to 50% EL Shear Vector', 'kt', 'VESH'], '236': ['U Component Bunkers Effective Right Motion', 'kt', 'UEID'], '237': ['V Component Bunkers Effective Right Motion', 'kt', 'VEID'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_3", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Pressure', 'Pa', 'PRES'], '1': ['Pressure Reduced to MSL', 'Pa', 'PRMSL'], '2': ['Pressure Tendency', 'Pa s-1', 'PTEND'], '3': ['ICAO Standard Atmosphere Reference Height', 'm', 'ICAHT'], '4': ['Geopotential', 'm2 s-2', 'GP'], '5': ['Geopotential Height', 'gpm', 'HGT'], '6': ['Geometric Height', 'm', 'DIST'], '7': ['Standard Deviation of Height', 'm', 'HSTDV'], '8': ['Pressure Anomaly', 'Pa', 'PRESA'], '9': ['Geopotential Height Anomaly', 'gpm', 'GPA'], '10': ['Density', 'kg m-3', 'DEN'], '11': ['Altimeter Setting', 'Pa', 'ALTS'], '12': ['Thickness', 'm', 'THICK'], '13': ['Pressure Altitude', 'm', 'PRESALT'], '14': ['Density Altitude', 'm', 'DENALT'], '15': ['5-Wave Geopotential Height', 'gpm', '5WAVH'], '16': ['Zonal Flux of Gravity Wave Stress', 'N m-2', 'U-GWD'], '17': ['Meridional Flux of Gravity Wave Stress', 'N m-2', 'V-GWD'], '18': ['Planetary Boundary Layer Height', 'm', 'HPBL'], '19': ['5-Wave Geopotential Height Anomaly', 'gpm', '5WAVA'], '20': ['Standard Deviation of Sub-Grid Scale Orography', 'm', 'SDSGSO'], '21': ['Angle of Sub-Grid Scale Orography', 'rad', 'AOSGSO'], '22': ['Slope of Sub-Grid Scale Orography', 'Numeric', 'SSGSO'], '23': ['Gravity Wave Dissipation', 'W m-2', 'GWD'], '24': ['Anisotropy of Sub-Grid Scale Orography', 'Numeric', 'ASGSO'], '25': ['Natural Logarithm of Pressure in Pa', 'Numeric', 'NLPRES'], '26': ['Exner Pressure', 'Numeric', 'EXPRES'], '27': ['Updraught Mass Flux', 'kg m-2 s-1', 'UMFLX'], '28': ['Downdraught Mass Flux', 'kg m-2 s-1', 'DMFLX'], '29': ['Updraught Detrainment Rate', 'kg m-3 s-1', 'UDRATE'], '30': ['Downdraught Detrainment Rate', 'kg m-3 s-1', 'DDRATE'], '31': ['Unbalanced Component of Logarithm of Surface Pressure', '-', 'UCLSPRS'], '32': ['Saturation water vapour pressure', 'Pa', 'SWATERVP'], '33': ['Geometric altitude above mean sea level', 'm', 'GAMSL'], '34': ['Geometric height above ground level', 'm', 'GHAGRD'], '35': ['Column integrated divergence of total mass flux', 'kg m-2 s-1', 'CDTMF'], '36': ['Column integrated eastward total mass flux', 'kg m-2 s-1', 'CETMF'], '37': ['Column integrated northward total mass flux', 'kg m-2 s-1', 'CNTMF'], '38': ['Standard deviation of filtered subgrid orography', 'm', 'SDFSO'], '39': ['Column integrated mass of atmosphere', 'kg m-2 s-1', 'CMATMOS'], '40': ['Column integrated eastward geopotential flux', 'W m-1', 'CEGFLUX'], '41': ['Column integrated northward geopotential flux', 'W m-1', 'CNGFLUX'], '42': ['Column integrated divergence of water geopotential flux', 'W m-2', 'CDWGFLUX'], '43': ['Column integrated divergence of geopotential flux', 'W m-2', 'CDGFLUX'], '44': ['Height of zero-degree wet-bulb temperature', 'm', 'HWBT'], '45': ['Height of one-degree wet-bulb temperature', 'm', 'WOBT'], '46': ['Pressure departure from hydrostatic state', 'Pa', 'PRESDHS'], '47-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['MSLP (Eta model reduction)', 'Pa', 'MSLET'], '193': ['5-Wave Geopotential Height', 'gpm', '5WAVH'], '194': ['Zonal Flux of Gravity Wave Stress', 'N m-2', 'U-GWD'], '195': ['Meridional Flux of Gravity Wave Stress', 'N m-2', 'V-GWD'], '196': ['Planetary Boundary Layer Height', 'm', 'HPBL'], '197': ['5-Wave Geopotential Height Anomaly', 'gpm', '5WAVA'], '198': ['MSLP (MAPS System Reduction)', 'Pa', 'MSLMA'], '199': ['3-hr pressure tendency (Std. Atmos. Reduction)', 'Pa s-1', 'TSLSA'], '200': ['Pressure of level from which parcel was lifted', 'Pa', 'PLPL'], '201': ['X-gradient of Log Pressure', 'm-1', 'LPSX'], '202': ['Y-gradient of Log Pressure', 'm-1', 'LPSY'], '203': ['X-gradient of Height', 'm-1', 'HGTX'], '204': ['Y-gradient of Height', 'm-1', 'HGTY'], '205': ['Layer Thickness', 'm', 'LAYTH'], '206': ['Natural Log of Surface Pressure', 'ln (kPa)', 'NLGSP'], '207': ['Convective updraft mass flux', 'kg m-2 s-1', 'CNVUMF'], '208': ['Convective downdraft mass flux', 'kg m-2 s-1', 'CNVDMF'], '209': ['Convective detrainment mass flux', 'kg m-2 s-1', 'CNVDEMF'], '210': ['Mass Point Model Surface', 'unknown', 'LMH'], '211': ['Geopotential Height (nearest grid point)', 'gpm', 'HGTN'], '212': ['Pressure (nearest grid point)', 'Pa', 'PRESN'], '213': ['Orographic Convexity', 'unknown', 'ORCONV'], '214': ['Orographic Asymmetry, W Component', 'unknown', 'ORASW'], '215': ['Orographic Asymmetry, S Component', 'unknown', 'ORASS'], '216': ['Orographic Asymmetry, SW Component', 'unknown', 'ORASSW'], '217': ['Orographic Asymmetry, NW Component', 'unknown', 'ORASNW'], '218': ['Orographic Length Scale, W Component', 'unknown', 'ORLSW'], '219': ['Orographic Length Scale, S Component', 'unknown', 'ORLSS'], '220': ['Orographic Length Scale, SW Component', 'unknown', 'ORLSSW'], '221': ['Orographic Length Scale, NW Component', 'unknown', 'ORLSNW'], '222': ['Effective Surface Height', 'm', 'EFSH'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_4", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Net Short-Wave Radiation Flux (Surface)', 'W m-2', 'NSWRS'], '1': ['Net Short-Wave Radiation Flux (Top of Atmosphere)', 'W m-2', 'NSWRT'], '2': ['Short-Wave Radiation Flux', 'W m-2', 'SWAVR'], '3': ['Global Radiation Flux', 'W m-2', 'GRAD'], '4': ['Brightness Temperature', 'K', 'BRTMP'], '5': ['Radiance (with respect to wave number)', 'W m-1 sr-1', 'LWRAD'], '6': ['Radiance (with respect to wavelength)', 'W m-3 sr-1', 'SWRAD'], '7': ['Downward Short-Wave Radiation Flux', 'W m-2', 'DSWRF'], '8': ['Upward Short-Wave Radiation Flux', 'W m-2', 'USWRF'], '9': ['Net Short Wave Radiation Flux', 'W m-2', 'NSWRF'], '10': ['Photosynthetically Active Radiation', 'W m-2', 'PHOTAR'], '11': ['Net Short-Wave Radiation Flux, Clear Sky', 'W m-2', 'NSWRFCS'], '12': ['Downward UV Radiation', 'W m-2', 'DWUVR'], '13': ['Direct Short Wave Radiation Flux', 'W m-2', 'DSWRFLX'], '14': ['Diffuse Short Wave Radiation Flux', 'W m-2', 'DIFSWRF'], '15': ['Upward UV radiation emitted/reflected from the Earths surface', 'W m-2', 'UVVEARTH'], '16-49': ['Reserved', 'unknown', 'unknown'], '50': ['UV Index (Under Clear Sky)', 'Numeric', 'UVIUCS'], '51': ['UV Index', 'Numeric', 'UVI'], '52': ['Downward Short-Wave Radiation Flux, Clear Sky', 'W m-2', 'DSWRFCS'], '53': ['Upward Short-Wave Radiation Flux, Clear Sky', 'W m-2', 'USWRFCS'], '54': ['Direct normal short-wave radiation flux,(see Note 3)', 'W m-2', 'DNSWRFLX'], '55': ['UV visible albedo for diffuse radiation', '%', 'UVALBDIF'], '56': ['UV visible albedo for direct radiation', '%', 'UVALBDIR'], '57': ['UV visible albedo for direct radiation, geometric component', '%', 'UBALBDIRG'], '58': ['UV visible albedo for direct radiation, isotropic component', '%', 'UVALBDIRI'], '59': ['UV visible albedo for direct radiation, volumetric component', '%', 'UVBDIRV'], '60': ['Photosynthetically active radiation flux, clear sky', 'W m-2', 'PHOARFCS'], '61': ['Direct short-wave radiation flux, clear sky', 'W m-2', 'DSWRFLXCS'], '62-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Downward Short-Wave Radiation Flux', 'W m-2', 'DSWRF'], '193': ['Upward Short-Wave Radiation Flux', 'W m-2', 'USWRF'], '194': ['UV-B Downward Solar Flux', 'W m-2', 'DUVB'], '195': ['Clear sky UV-B Downward Solar Flux', 'W m-2', 'CDUVB'], '196': ['Clear Sky Downward Solar Flux', 'W m-2', 'CSDSF'], '197': ['Solar Radiative Heating Rate', 'K s-1', 'SWHR'], '198': ['Clear Sky Upward Solar Flux', 'W m-2', 'CSUSF'], '199': ['Cloud Forcing Net Solar Flux', 'W m-2', 'CFNSF'], '200': ['Visible Beam Downward Solar Flux', 'W m-2', 'VBDSF'], '201': ['Visible Diffuse Downward Solar Flux', 'W m-2', 'VDDSF'], '202': ['Near IR Beam Downward Solar Flux', 'W m-2', 'NBDSF'], '203': ['Near IR Diffuse Downward Solar Flux', 'W m-2', 'NDDSF'], '204': ['Downward Total Radiation Flux', 'W m-2', 'DTRF'], '205': ['Upward Total Radiation Flux', 'W m-2', 'UTRF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_5", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_5", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Net Long-Wave Radiation Flux (Surface)', 'W m-2', 'NLWRS'], '1': ['Net Long-Wave Radiation Flux (Top of Atmosphere)', 'W m-2', 'NLWRT'], '2': ['Long-Wave Radiation Flux', 'W m-2', 'LWAVR'], '3': ['Downward Long-Wave Rad. Flux', 'W m-2', 'DLWRF'], '4': ['Upward Long-Wave Rad. Flux', 'W m-2', 'ULWRF'], '5': ['Net Long-Wave Radiation Flux', 'W m-2', 'NLWRF'], '6': ['Net Long-Wave Radiation Flux, Clear Sky', 'W m-2', 'NLWRCS'], '7': ['Brightness Temperature', 'K', 'BRTEMP'], '8': ['Downward Long-Wave Radiation Flux, Clear Sky', 'W m-2', 'DLWRFCS'], '9': ['Near IR albedo for diffuse radiation', '%', 'NIRALBDIF'], '10': ['Near IR albedo for direct radiation', '%', 'NIRALBDIR'], '11': ['Near IR albedo for direct radiation, geometric component', '%', 'NIRALBDIRG'], '12': ['Near IR albedo for direct radiation, isotropic component', '%', 'NIRALBDIRI'], '13': ['Near IR albedo for direct radiation, volumetric component', '%', 'NIRALBDIRV'], '14-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Downward Long-Wave Rad. Flux', 'W m-2', 'DLWRF'], '193': ['Upward Long-Wave Rad. Flux', 'W m-2', 'ULWRF'], '194': ['Long-Wave Radiative Heating Rate', 'K s-1', 'LWHR'], '195': ['Clear Sky Upward Long Wave Flux', 'W m-2', 'CSULF'], '196': ['Clear Sky Downward Long Wave Flux', 'W m-2', 'CSDLF'], '197': ['Cloud Forcing Net Long Wave Flux', 'W m-2', 'CFNLF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_6", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_6", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Cloud Ice', 'kg m-2', 'CICE'], '1': ['Total Cloud Cover', '%', 'TCDC'], '2': ['Convective Cloud Cover', '%', 'CDCON'], '3': ['Low Cloud Cover', '%', 'LCDC'], '4': ['Medium Cloud Cover', '%', 'MCDC'], '5': ['High Cloud Cover', '%', 'HCDC'], '6': ['Cloud Water', 'kg m-2', 'CWAT'], '7': ['Cloud Amount', '%', 'CDCA'], '8': ['Cloud Type', 'See Table 4.203', 'CDCT'], '9': ['Thunderstorm Maximum Tops', 'm', 'TMAXT'], '10': ['Thunderstorm Coverage', 'See Table 4.204', 'THUNC'], '11': ['Cloud Base', 'm', 'CDCB'], '12': ['Cloud Top', 'm', 'CDCTOP'], '13': ['Ceiling', 'm', 'CEIL'], '14': ['Non-Convective Cloud Cover', '%', 'CDLYR'], '15': ['Cloud Work Function', 'J kg-1', 'CWORK'], '16': ['Convective Cloud Efficiency', 'Proportion', 'CUEFI'], '17': ['Total Condensate', 'kg kg-1', 'TCONDO'], '18': ['Total Column-Integrated Cloud Water', 'kg m-2', 'TCOLWO'], '19': ['Total Column-Integrated Cloud Ice', 'kg m-2', 'TCOLIO'], '20': ['Total Column-Integrated Condensate', 'kg m-2', 'TCOLC'], '21': ['Ice fraction of total condensate', 'Proportion', 'FICE'], '22': ['Cloud Cover', '%', 'CDCC'], '23': ['Cloud Ice Mixing Ratio', 'kg kg-1', 'CDCIMR'], '24': ['Sunshine', 'Numeric', 'SUNS'], '25': ['Horizontal Extent of Cumulonimbus (CB)', '%', 'CBHE'], '26': ['Height of Convective Cloud Base', 'm', 'HCONCB'], '27': ['Height of Convective Cloud Top', 'm', 'HCONCT'], '28': ['Number Concentration of Cloud Droplets', 'kg-1', 'NCONCD'], '29': ['Number Concentration of Cloud Ice', 'kg-1', 'NCCICE'], '30': ['Number Density of Cloud Droplets', 'm-3', 'NDENCD'], '31': ['Number Density of Cloud Ice', 'm-3', 'NDCICE'], '32': ['Fraction of Cloud Cover', 'Numeric', 'FRACCC'], '33': ['Sunshine Duration', 's', 'SUNSD'], '34': ['Surface Long Wave Effective Total Cloudiness', 'Numeric', 'SLWTC'], '35': ['Surface Short Wave Effective Total Cloudiness', 'Numeric', 'SSWTC'], '36': ['Fraction of Stratiform Precipitation Cover', 'Proportion', 'FSTRPC'], '37': ['Fraction of Convective Precipitation Cover', 'Proportion', 'FCONPC'], '38': ['Mass Density of Cloud Droplets', 'kg m-3', 'MASSDCD'], '39': ['Mass Density of Cloud Ice', 'kg m-3', 'MASSDCI'], '40': ['Mass Density of Convective Cloud Water Droplets', 'kg m-3', 'MDCCWD'], '41-46': ['Reserved', 'unknown', 'unknown'], '47': ['Volume Fraction of Cloud Water Droplets', 'Numeric', 'VFRCWD'], '48': ['Volume Fraction of Cloud Ice Particles', 'Numeric', 'VFRCICE'], '49': ['Volume Fraction of Cloud (Ice and/or Water)', 'Numeric', 'VFRCIW'], '50': ['Fog', '%', 'FOG'], '51': ['Sunshine Duration Fraction', 'Proportion', 'SUNFRAC'], '52-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Non-Convective Cloud Cover', '%', 'CDLYR'], '193': ['Cloud Work Function', 'J kg-1', 'CWORK'], '194': ['Convective Cloud Efficiency', 'non-dim', 'CUEFI'], '195': ['Total Condensate', 'kg kg-1', 'TCOND'], '196': ['Total Column-Integrated Cloud Water', 'kg m-2', 'TCOLW'], '197': ['Total Column-Integrated Cloud Ice', 'kg m-2', 'TCOLI'], '198': ['Total Column-Integrated Condensate', 'kg m-2', 'TCOLC'], '199': ['Ice fraction of total condensate', 'non-dim', 'FICE'], '200': ['Convective Cloud Mass Flux', 'Pa s-1', 'MFLUX'], '201': ['Sunshine Duration', 's', 'SUNSD'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_7", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_7", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Parcel Lifted Index (to 500 hPa)', 'K', 'PLI'], '1': ['Best Lifted Index (to 500 hPa)', 'K', 'BLI'], '2': ['K Index', 'K', 'KX'], '3': ['KO Index', 'K', 'KOX'], '4': ['Total Totals Index', 'K', 'TOTALX'], '5': ['Sweat Index', 'Numeric', 'SX'], '6': ['Convective Available Potential Energy', 'J kg-1', 'CAPE'], '7': ['Convective Inhibition', 'J kg-1', 'CIN'], '8': ['Storm Relative Helicity', 'm2 s-2', 'HLCY'], '9': ['Energy Helicity Index', 'Numeric', 'EHLX'], '10': ['Surface Lifted Index', 'K', 'LFT X'], '11': ['Best (4 layer) Lifted Index', 'K', '4LFTX'], '12': ['Richardson Number', 'Numeric', 'RI'], '13': ['Showalter Index', 'K', 'SHWINX'], '14': ['Reserved', 'unknown', 'unknown'], '15': ['Updraft Helicity', 'm2 s-2', 'UPHL'], '16': ['Bulk Richardson Number', 'Numeric', 'BLKRN'], '17': ['Gradient Richardson Number', 'Numeric', 'GRDRN'], '18': ['Flux Richardson Number', 'Numeric', 'FLXRN'], '19': ['Convective Available Potential Energy Shear', 'm2 s-2', 'CONAPES'], '20': ['Thunderstorm intensity index', 'See Table 4.246', 'TIIDEX'], '21-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Surface Lifted Index', 'K', 'LFT X'], '193': ['Best (4 layer) Lifted Index', 'K', '4LFTX'], '194': ['Richardson Number', 'Numeric', 'RI'], '195': ['Convective Weather Detection Index', 'unknown', 'CWDI'], '196': ['Ultra Violet Index', 'W m-2', 'UVI'], '197': ['Updraft Helicity', 'm2 s-2', 'UPHL'], '198': ['Leaf Area Index', 'Numeric', 'LAI'], '199': ['Hourly Maximum of Updraft Helicity', 'm2 s-2', 'MXUPHL'], '200': ['Hourly Minimum of Updraft Helicity', 'm2 s-2', 'MNUPHL'], '201': ['Bourgoiun Negative Energy Layer (surface to freezing level)', 'J kg-1', 'BNEGELAY'], '202': ['Bourgoiun Positive Energy Layer (2k ft AGL to 400 hPa)', 'J kg-1', 'BPOSELAY'], '203': ['Downdraft CAPE', 'J kg-1', 'DCAPE'], '204': ['Effective Storm Relative Helicity', 'm2 s-2', 'EFHL'], '205': ['Enhanced Stretching Potential', 'Numeric', 'ESP'], '206': ['Critical Angle', 'Degree', 'CANGLE'], '207': ['Effective Surface Helicity', 'm2 s-2', 'E3KH'], '208': ['Significant Tornado Parameter with CIN-Effective Layer', 'numeric', 'STPC'], '209': ['Significant Hail Parameter', 'numeric', 'SIGH'], '210': ['Supercell Composite Parameter-Effective Layer', 'numeric', 'SCCP'], '211': ['Significant Tornado parameter-Fixed Layer', 'numeric', 'SIGT'], '212': ['Mixed Layer (100 mb) Virtual LFC', 'numeric', 'MLFC'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_13", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_13", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Aerosol Type', 'See Table 4.205', 'AEROT'], '1-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Particulate matter (coarse)', '\u00b5g m-3', 'PMTC'], '193': ['Particulate matter (fine)', '\u00b5g m-3', 'PMTF'], '194': ['Particulate matter (fine)', 'log10 (\u00b5g m-3)', 'LPMTF'], '195': ['Integrated column particulate matter (fine)', 'log10 (\u00b5g m-3)', 'LIPMF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_14", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_14", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Total Ozone', 'DU', 'TOZNE'], '1': ['Ozone Mixing Ratio', 'kg kg-1', 'O3MR'], '2': ['Total Column Integrated Ozone', 'DU', 'TCIOZ'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Ozone Mixing Ratio', 'kg kg-1', 'O3MR'], '193': ['Ozone Concentration', 'ppb', 'OZCON'], '194': ['Categorical Ozone Concentration', 'Non-Dim', 'OZCAT'], '195': ['Ozone Vertical Diffusion', 'kg kg-1 s-1', 'VDFOZ'], '196': ['Ozone Production', 'kg kg-1 s-1', 'POZ'], '197': ['Ozone Tendency', 'kg kg-1 s-1', 'TOZ'], '198': ['Ozone Production from Temperature Term', 'kg kg-1 s-1', 'POZT'], '199': ['Ozone Production from Column Ozone Term', 'kg kg-1 s-1', 'POZO'], '200': ['Ozone Daily Max from 1-hour Average', 'ppbV', 'OZMAX1'], '201': ['Ozone Daily Max from 8-hour Average', 'ppbV', 'OZMAX8'], '202': ['PM 2.5 Daily Max from 1-hour Average', '\u03bcg m-3', 'PDMAX1'], '203': ['PM 2.5 Daily Max from 24-hour Average', '\u03bcg m-3', 'PDMAX24'], '204': ['Acetaldehyde & Higher Aldehydes', 'ppbV', 'ALD2'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_15", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_15", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Base Spectrum Width', 'm s-1', 'BSWID'], '1': ['Base Reflectivity', 'dB', 'BREF'], '2': ['Base Radial Velocity', 'm s-1', 'BRVEL'], '3': ['Vertically-Integrated Liquid Water', 'kg m-2', 'VIL'], '4': ['Layer Maximum Base Reflectivity', 'dB', 'LMAXBR'], '5': ['Precipitation', 'kg m-2', 'PREC'], '6': ['Radar Spectra (1)', 'unknown', 'RDSP1'], '7': ['Radar Spectra (2)', 'unknown', 'RDSP2'], '8': ['Radar Spectra (3)', 'unknown', 'RDSP3'], '9': ['Reflectivity of Cloud Droplets', 'dB', 'RFCD'], '10': ['Reflectivity of Cloud Ice', 'dB', 'RFCI'], '11': ['Reflectivity of Snow', 'dB', 'RFSNOW'], '12': ['Reflectivity of Rain', 'dB', 'RFRAIN'], '13': ['Reflectivity of Graupel', 'dB', 'RFGRPL'], '14': ['Reflectivity of Hail', 'dB', 'RFHAIL'], '15': ['Hybrid Scan Reflectivity', 'dB', 'HSR'], '16': ['Hybrid Scan Reflectivity Height', 'm', 'HSRHT'], '17-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_16", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_16", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Equivalent radar reflectivity factor for rain', 'm m6 m-3', 'REFZR'], '1': ['Equivalent radar reflectivity factor for snow', 'm m6 m-3', 'REFZI'], '2': ['Equivalent radar reflectivity factor for parameterized convection', 'm m6 m-3', 'REFZC'], '3': ['Echo Top', 'm', 'RETOP'], '4': ['Reflectivity', 'dB', 'REFD'], '5': ['Composite reflectivity', 'dB', 'REFC'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Equivalent radar reflectivity factor for rain', 'm m6 m-3', 'REFZR'], '193': ['Equivalent radar reflectivity factor for snow', 'm m6 m-3', 'REFZI'], '194': ['Equivalent radar reflectivity factor for parameterized convection', 'm m6 m-3', 'REFZC'], '195': ['Reflectivity', 'dB', 'REFD'], '196': ['Composite reflectivity', 'dB', 'REFC'], '197': ['Echo Top', 'm', 'RETOP'], '198': ['Hourly Maximum of Simulated Reflectivity', 'dB', 'MAXREF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_17", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_17", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Lightning Strike Density', 'm-2 s-1', 'LTNGSD'], '1': ['Lightning Potential Index (LPI)', 'J kg-1', 'LTPINX'], '2': ['Cloud-to-Ground Lightning Flash Density', 'km-2 day-1', 'CDGDLTFD'], '3': ['Cloud-to-Cloud Lightning Flash Density', 'km-2 day-1', 'CDCDLTFD'], '4': ['Total Lightning Flash Density', 'km-2 day-1', 'TLGTFD'], '5': ['Subgrid-scale lightning potential index', 'J kg-1', 'SLNGPIDX'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Lightning', 'non-dim', 'LTNG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_18", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_18", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Air Concentration of Caesium 137', 'Bq m-3', 'ACCES'], '1': ['Air Concentration of Iodine 131', 'Bq m-3', 'ACIOD'], '2': ['Air Concentration of Radioactive Pollutant', 'Bq m-3', 'ACRADP'], '3': ['Ground Deposition of Caesium 137', 'Bq m-2', 'GDCES'], '4': ['Ground Deposition of Iodine 131', 'Bq m-2', 'GDIOD'], '5': ['Ground Deposition of Radioactive Pollutant', 'Bq m-2', 'GDRADP'], '6': ['Time Integrated Air Concentration of Cesium Pollutant', 'Bq s m-3', 'TIACCP'], '7': ['Time Integrated Air Concentration of Iodine Pollutant', 'Bq s m-3', 'TIACIP'], '8': ['Time Integrated Air Concentration of Radioactive Pollutant', 'Bq s m-3', 'TIACRP'], '9': ['Reserved', 'unknown', 'unknown'], '10': ['Air Concentration', 'Bq m-3', 'AIRCON'], '11': ['Wet Deposition', 'Bq m-2', 'WETDEP'], '12': ['Dry Deposition', 'Bq m-2', 'DRYDEP'], '13': ['Total Deposition (Wet + Dry)', 'Bq m-2', 'TOTLWD'], '14': ['Specific Activity Concentration', 'Bq kg-1', 'SACON'], '15': ['Maximum of Air Concentration in Layer', 'Bq m-3', 'MAXACON'], '16': ['Height of Maximum of Air Concentration', 'm', 'HMXACON'], '17': ['Column-Integrated Air Concentration', 'Bq m-2', 'CIAIRC'], '18': ['Column-Averaged Air Concentration in Layer', 'Bq m-3', 'CAACL'], '19-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_19", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_19", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Visibility', 'm', 'VIS'], '1': ['Albedo', '%', 'ALBDO'], '2': ['Thunderstorm Probability', '%', 'TSTM'], '3': ['Mixed Layer Depth', 'm', 'MIXHT'], '4': ['Volcanic Ash', 'See Table 4.206', 'VOLASH'], '5': ['Icing Top', 'm', 'ICIT'], '6': ['Icing Base', 'm', 'ICIB'], '7': ['Icing', 'See Table 4.207', 'ICI'], '8': ['Turbulence Top', 'm', 'TURBT'], '9': ['Turbulence Base', 'm', 'TURBB'], '10': ['Turbulence', 'See Table 4.208', 'TURB'], '11': ['Turbulent Kinetic Energy', 'J kg-1', 'TKE'], '12': ['Planetary Boundary Layer Regime', 'See Table 4.209', 'PBLREG'], '13': ['Contrail Intensity', 'See Table 4.210', 'CONTI'], '14': ['Contrail Engine Type', 'See Table 4.211', 'CONTET'], '15': ['Contrail Top', 'm', 'CONTT'], '16': ['Contrail Base', 'm', 'CONTB'], '17': ['Maximum Snow Albedo', '%', 'MXSALB'], '18': ['Snow-Free Albedo', '%', 'SNFALB'], '19': ['Snow Albedo', '%', 'SALBD'], '20': ['Icing', '%', 'ICIP'], '21': ['In-Cloud Turbulence', '%', 'CTP'], '22': ['Clear Air Turbulence (CAT)', '%', 'CAT'], '23': ['Supercooled Large Droplet Probability', '%', 'SLDP'], '24': ['Convective Turbulent Kinetic Energy', 'J kg-1', 'CONTKE'], '25': ['Weather', 'See Table 4.225', 'WIWW'], '26': ['Convective Outlook', 'See Table 4.224', 'CONVO'], '27': ['Icing Scenario', 'See Table 4.227', 'ICESC'], '28': ['Mountain Wave Turbulence (Eddy Dissipation Rate)', 'm2/3 s-1', 'MWTURB'], '29': ['Clear Air Turbulence (CAT) (Eddy Dissipation Rate)', 'm2/3 s-1', 'CATEDR'], '30': ['Eddy Dissipation Parameter', 'm2/3 s-1', 'EDPARM'], '31': ['Maximum of Eddy Dissipation Parameter in Layer', 'm2/3 s-1', 'MXEDPRM'], '32': ['Highest Freezing Level', 'm', 'HIFREL'], '33': ['Visibility Through Liquid Fog', 'm', 'VISLFOG'], '34': ['Visibility Through Ice Fog', 'm', 'VISIFOG'], '35': ['Visibility Through Blowing Snow', 'm', 'VISBSN'], '36': ['Presence of Snow Squalls', 'See Table 4.222', 'PSNOWS'], '37': ['Icing Severity', 'See Table 4.228', 'ICESEV'], '38': ['Sky transparency index', 'See Table 4.214', 'SKYIDX'], '39': ['Seeing index', 'See Table 4.214', 'SEEINDEX'], '40': ['Snow level', 'm', 'SNOWLVL'], '41': ['Duct base height', 'm', 'DBHEIGHT'], '42': ['Trapping layer base height', 'm', 'TLBHEIGHT'], '43': ['Trapping layer top height', 'm', 'TLTHEIGHT'], '44': ['Mean vertical gradient of refractivity inside trapping layer', 'm-1', 'MEANVGRTL'], '45': ['Minimum vertical gradient of refractivity inside trapping layer', 'm-1', 'MINVGRTL'], '46': ['Net radiation flux', 'W m-2', 'NETRADFLUX'], '47': ['Global irradiance on tilted surfaces', 'W m-2', 'GLIRRTS'], '48': ['Top of persistent contrails', 'm', 'PCONTT'], '49': ['Base of persistent contrails', 'm', 'PCONTB'], '50': ['Convectively-induced turbulence (CIT) (eddy dissipation rate)', 'm2/3 s-1', 'CITEDR'], '51-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Maximum Snow Albedo', '%', 'MXSALB'], '193': ['Snow-Free Albedo', '%', 'SNFALB'], '194': ['Slight risk convective outlook', 'categorical', 'SRCONO'], '195': ['Moderate risk convective outlook', 'categorical', 'MRCONO'], '196': ['High risk convective outlook', 'categorical', 'HRCONO'], '197': ['Tornado probability', '%', 'TORPROB'], '198': ['Hail probability', '%', 'HAILPROB'], '199': ['Wind probability', '%', 'WINDPROB'], '200': ['Significant Tornado probability', '%', 'STORPROB'], '201': ['Significant Hail probability', '%', 'SHAILPRO'], '202': ['Significant Wind probability', '%', 'SWINDPRO'], '203': ['Categorical Thunderstorm', 'Code table 4.222', 'TSTMC'], '204': ['Number of mixed layers next to surface', 'integer', 'MIXLY'], '205': ['Flight Category', 'unknown', 'FLGHT'], '206': ['Confidence - Ceiling', 'unknown', 'CICEL'], '207': ['Confidence - Visibility', 'unknown', 'CIVIS'], '208': ['Confidence - Flight Category', 'unknown', 'CIFLT'], '209': ['Low-Level aviation interest', 'unknown', 'LAVNI'], '210': ['High-Level aviation interest', 'unknown', 'HAVNI'], '211': ['Visible, Black Sky Albedo', '%', 'SBSALB'], '212': ['Visible, White Sky Albedo', '%', 'SWSALB'], '213': ['Near IR, Black Sky Albedo', '%', 'NBSALB'], '214': ['Near IR, White Sky Albedo', '%', 'NWSALB'], '215': ['Total Probability of Severe Thunderstorms (Days 2,3)', '%', 'PRSVR'], '216': ['Total Probability of Extreme Severe Thunderstorms (Days 2,3)', '%', 'PRSIGSVR'], '217': ['Supercooled Large Droplet (SLD) Icing', 'See Table 4.207', 'SIPD'], '218': ['Radiative emissivity', 'unknown', 'EPSR'], '219': ['Turbulence Potential Forecast Index', 'unknown', 'TPFI'], '220': ['Categorical Severe Thunderstorm', 'Code table 4.222', 'SVRTS'], '221': ['Probability of Convection', '%', 'PROCON'], '222': ['Convection Potential', 'Code table 4.222', 'CONVP'], '223-231': ['Reserved', 'unknown', 'unknown'], '232': ['Volcanic Ash Forecast Transport and Dispersion', 'log10 (kg m-3)', 'VAFTD'], '233': ['Icing probability', 'non-dim', 'ICPRB'], '234': ['Icing Severity', 'non-dim', 'ICSEV'], '235': ['Joint Fire Weather Probability', '%', 'JFWPRB'], '236': ['Snow Level', 'm', 'SNOWLVL'], '237': ['Dry Thunderstorm Probability', '%', 'DRYTPROB'], '238': ['Ellrod Index', 'unknown', 'ELLINX'], '239': ['Craven-Wiedenfeld Aggregate Severe Parameter', 'Numeric', 'CWASP'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_20", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_20", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Mass Density (Concentration)', 'kg m-3', 'MASSDEN'], '1': ['Column-Integrated Mass Density', 'kg m-2', 'COLMD'], '2': ['Mass Mixing Ratio (Mass Fraction in Air)', 'kg kg-1', 'MASSMR'], '3': ['Atmosphere Emission Mass Flux', 'kg m-2s-1', 'AEMFLX'], '4': ['Atmosphere Net Production Mass Flux', 'kg m-2s-1', 'ANPMFLX'], '5': ['Atmosphere Net Production And Emision Mass Flux', 'kg m-2s-1', 'ANPEMFLX'], '6': ['Surface Dry Deposition Mass Flux', 'kg m-2s-1', 'SDDMFLX'], '7': ['Surface Wet Deposition Mass Flux', 'kg m-2s-1', 'SWDMFLX'], '8': ['Atmosphere Re-Emission Mass Flux', 'kg m-2s-1', 'AREMFLX'], '9': ['Wet Deposition by Large-Scale Precipitation Mass Flux', 'kg m-2s-1', 'WLSMFLX'], '10': ['Wet Deposition by Convective Precipitation Mass Flux', 'kg m-2s-1', 'WDCPMFLX'], '11': ['Sedimentation Mass Flux', 'kg m-2s-1', 'SEDMFLX'], '12': ['Dry Deposition Mass Flux', 'kg m-2s-1', 'DDMFLX'], '13': ['Transfer From Hydrophobic to Hydrophilic', 'kg kg-1s-1', 'TRANHH'], '14': ['Transfer From SO2 (Sulphur Dioxide) to SO4 (Sulphate)', 'kg kg-1s-1', 'TRSDS'], '15': ['Dry deposition velocity', 'm s-1', 'DDVEL'], '16': ['Mass mixing ratio with respect to dry air', 'kg kg-1', 'MSSRDRYA'], '17': ['Mass mixing ratio with respect to wet air', 'kg kg-1', 'MSSRWETA'], '18': ['Potential of hydrogen (pH)', 'pH', 'POTHPH'], '19-49': ['Reserved', 'unknown', 'unknown'], '50': ['Amount in Atmosphere', 'mol', 'AIA'], '51': ['Concentration In Air', 'mol m-3', 'CONAIR'], '52': ['Volume Mixing Ratio (Fraction in Air)', 'mol mol-1', 'VMXR'], '53': ['Chemical Gross Production Rate of Concentration', 'mol m-3s-1', 'CGPRC'], '54': ['Chemical Gross Destruction Rate of Concentration', 'mol m-3s-1', 'CGDRC'], '55': ['Surface Flux', 'mol m-2s-1', 'SFLUX'], '56': ['Changes Of Amount in Atmosphere', 'mol s-1', 'COAIA'], '57': ['Total Yearly Average Burden of The Atmosphere>', 'mol', 'TYABA'], '58': ['Total Yearly Average Atmospheric Loss', 'mol s-1', 'TYAAL'], '59': ['Aerosol Number Concentration', 'm-3', 'ANCON'], '60': ['Aerosol Specific Number Concentration', 'kg-1', 'ASNCON'], '61': ['Maximum of Mass Density', 'kg m-3', 'MXMASSD'], '62': ['Height of Mass Density', 'm', 'HGTMD'], '63': ['Column-Averaged Mass Density in Layer', 'kg m-3', 'CAVEMDL'], '64': ['Mole fraction with respect to dry air', 'mol mol-1', 'MOLRDRYA'], '65': ['Mole fraction with respect to wet air', 'mol mol-1', 'MOLRWETA'], '66': ['Column-integrated in-cloud scavenging rate by precipitation', 'kg m-2 s-1', 'CINCLDSP'], '67': ['Column-integrated below-cloud scavenging rate by precipitation', 'kg m-2 s-1', 'CBLCLDSP'], '68': ['Column-integrated release rate from evaporating precipitation', 'kg m-2 s-1', 'CIRELREP'], '69': ['Column-integrated in-cloud scavenging rate by large-scale precipitation', 'kg m-2 s-1', 'CINCSLSP'], '70': ['Column-integrated below-cloud scavenging rate by large-scale precipitation', 'kg m-2 s-1', 'CBECSLSP'], '71': ['Column-integrated release rate from evaporating large-scale precipitation', 'kg m-2 s-1', 'CRERELSP'], '72': ['Column-integrated in-cloud scavenging rate by convective precipitation', 'kg m-2 s-1', 'CINCSRCP'], '73': ['Column-integrated below-cloud scavenging rate by convective precipitation', 'kg m-2 s-1', 'CBLCSRCP'], '74': ['Column-integrated release rate from evaporating convective precipitation', 'kg m-2 s-1', 'CIRERECP'], '75': ['Wildfire flux', 'kg m-2 s-1', 'WFIREFLX'], '76': ['Emission Rate', 'kg kg-1 s-1', 'EMISFLX'], '77': ['Surface Emission flux', 'kg m-2 s-1', 'SFCEFLX'], '78': ['Column integrated eastward mass flux', 'kg m-2 s-1', 'CEMF'], '79': ['Column integrated northward mass flux', 'kg m-2 s-1', 'CNMF'], '80': ['Column integrated divergence of mass flux', 'kg m-2 s-1', 'CDIVMF'], '81': ['Column integrated net source', 'kg m-2 s-1', 'CDNETS'], '82-99': ['Reserved', 'unknown', 'unknown'], '100': ['Surface Area Density (Aerosol)', 'm-1', 'SADEN'], '101': ['Vertical Visual Range', 'm', 'ATMTK'], '102': ['Aerosol Optical Thickness', 'Numeric', 'AOTK'], '103': ['Single Scattering Albedo', 'Numeric', 'SSALBK'], '104': ['Asymmetry Factor', 'Numeric', 'ASYSFK'], '105': ['Aerosol Extinction Coefficient', 'm-1', 'AECOEF'], '106': ['Aerosol Absorption Coefficient', 'm-1', 'AACOEF'], '107': ['Aerosol Lidar Backscatter from Satellite', 'm-1sr-1', 'ALBSAT'], '108': ['Aerosol Lidar Backscatter from the Ground', 'm-1sr-1', 'ALBGRD'], '109': ['Aerosol Lidar Extinction from Satellite', 'm-1', 'ALESAT'], '110': ['Aerosol Lidar Extinction from the Ground', 'm-1', 'ALEGRD'], '111': ['Angstrom Exponent', 'Numeric', 'ANGSTEXP'], '112': ['Scattering Aerosol Optical Thickness', 'Numeric', 'SCTAOTK'], '113-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_190", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_190", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Arbitrary Text String', 'CCITTIA5', 'ATEXT'], '1-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_191", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_191", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Seconds prior to initial reference time (defined in Section 1)', 's', 'TSEC'], '1': ['Geographical Latitude', '\u00b0 N', 'GEOLAT'], '2': ['Geographical Longitude', '\u00b0 E', 'GEOLON'], '3': ['Days Since Last Observation', 'd', 'DSLOBS'], '4': ['Tropical cyclone density track', 'Numeric', 'TCDTRACK'], '5-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Latitude (-90 to 90)', '\u00b0', 'NLAT'], '193': ['East Longitude (0 to 360)', '\u00b0', 'ELON'], '194': ['Seconds prior to initial reference time', 's', 'RTSEC'], '195': ['Model Layer number (From bottom up)', 'unknown', 'MLYNO'], '196': ['Latitude (nearest neighbor) (-90 to 90)', '\u00b0', 'NLATN'], '197': ['East Longitude (nearest neighbor) (0 to 360)', '\u00b0', 'ELONN'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_192", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_192", "kind": "variable", "doc": "

\n", "default_value": "{'1': ['Covariance between zonal and meridional components of the wind. Defined as [uv]-[u][v], where "[]" indicates the mean over the indicated time span.', 'm2/s2', 'COVMZ'], '2': ['Covariance between zonal component of the wind and temperature. Defined as [uT]-[u][T], where "[]" indicates the mean over the indicated time span.', 'K*m/s', 'COVTZ'], '3': ['Covariance between meridional component of the wind and temperature. Defined as [vT]-[v][T], where "[]" indicates the mean over the indicated time span.', 'K*m/s', 'COVTM'], '4': ['Covariance between temperature and vertical component of the wind. Defined as [wT]-[w][T], where "[]" indicates the mean over the indicated time span.', 'K*m/s', 'COVTW'], '5': ['Covariance between zonal and zonal components of the wind. Defined as [uu]-[u][u], where "[]" indicates the mean over the indicated time span.', 'm2/s2', 'COVZZ'], '6': ['Covariance between meridional and meridional components of the wind. Defined as [vv]-[v][v], where "[]" indicates the mean over the indicated time span.', 'm2/s2', 'COVMM'], '7': ['Covariance between specific humidity and zonal components of the wind. Defined as [uq]-[u][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*m/s', 'COVQZ'], '8': ['Covariance between specific humidity and meridional components of the wind. Defined as [vq]-[v][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*m/s', 'COVQM'], '9': ['Covariance between temperature and vertical components of the wind. Defined as [\u03a9T]-[\u03a9][T], where "[]" indicates the mean over the indicated time span.', 'K*Pa/s', 'COVTVV'], '10': ['Covariance between specific humidity and vertical components of the wind. Defined as [\u03a9q]-[\u03a9][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*Pa/s', 'COVQVV'], '11': ['Covariance between surface pressure and surface pressure. Defined as [Psfc]-[Psfc][Psfc], where "[]" indicates the mean over the indicated time span.', 'Pa*Pa', 'COVPSPS'], '12': ['Covariance between specific humidity and specific humidy. Defined as [qq]-[q][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*kg/kg', 'COVQQ'], '13': ['Covariance between vertical and vertical components of the wind. Defined as [\u03a9\u03a9]-[\u03a9][\u03a9], where "[]" indicates the mean over the indicated time span.', 'Pa2/s2', 'COVVVVV'], '14': ['Covariance between temperature and temperature. Defined as [TT]-[T][T], where "[]" indicates the mean over the indicated time span.', 'K*K', 'COVTT'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_0_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_0_ndfd", "kind": "variable", "doc": "

\n", "default_value": "{'193': ['Apparent Temperature', 'K', 'APPT']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_1_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_1_ndfd", "kind": "variable", "doc": "

\n", "default_value": "{'192': ['Weather Information', 'WxInfo', 'WX']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_19_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_19_ndfd", "kind": "variable", "doc": "

\n", "default_value": "{'194': ['Convective Hazard Outlook', 'categorical', 'CONVOUTLOOK'], '197': ['Probability of Tornado', '%', 'PTORNADO'], '198': ['Probability of Hail', '%', 'PHAIL'], '199': ['Probability of Damaging Wind', '%', 'PWIND'], '200': ['Probability of Extreme Tornado', '%', 'PXTRMTORN'], '201': ['Probability of Extreme Hail', '%', 'PXTRMHAIL'], '202': ['Probability of Extreme Wind', '%', 'PXTRMWIND'], '215': ['Total Probability of Severe Thunderstorms', '%', 'TOTALSVRPROB'], '216': ['Total Probability of Extreme Severe Thunderstorms', '%', 'TOTALXTRMPROB'], '217': ['Watch Warning Advisory', 'WxInfo', 'WWA']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_192_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_192_ndfd", "kind": "variable", "doc": "

\n", "default_value": "{'192': ['Critical Fire Weather', '', 'FIREWX'], '194': ['Dry Lightning', '', 'DRYLIGHTNING']}"}, {"fullname": "grib2io.tables.section4_discipline1", "modulename": "grib2io.tables.section4_discipline1", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline1.table_4_2_1_0", "modulename": "grib2io.tables.section4_discipline1", "qualname": "table_4_2_1_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Flash Flood Guidance (Encoded as an accumulation over a floating subinterval of time between the reference time and valid time)', 'kg m-2', 'FFLDG'], '1': ['Flash Flood Runoff (Encoded as an accumulation over a floating subinterval of time)', 'kg m-2', 'FFLDRO'], '2': ['Remotely Sensed Snow Cover', 'See Table 4.215', 'RSSC'], '3': ['Elevation of Snow Covered Terrain', 'See Table 4.216', 'ESCT'], '4': ['Snow Water Equivalent Percent of Normal', '%', 'SWEPON'], '5': ['Baseflow-Groundwater Runoff', 'kg m-2', 'BGRUN'], '6': ['Storm Surface Runoff', 'kg m-2', 'SSRUN'], '7': ['Discharge from Rivers or Streams', 'm3 s-1', 'DISRS'], '8': ['Group Water Upper Storage', 'kg m-2', 'GWUPS'], '9': ['Group Water Lower Storage', 'kg m-2', 'GWLOWS'], '10': ['Side Flow into River Channel', 'm3 s-1 m-1', 'SFLORC'], '11': ['River Storage of Water', 'm3', 'RVERSW'], '12': ['Flood Plain Storage of Water', 'm3', 'FLDPSW'], '13': ['Depth of Water on Soil Surface', 'kg m-2', 'DEPWSS'], '14': ['Upstream Accumulated Precipitation', 'kg m-2', 'UPAPCP'], '15': ['Upstream Accumulated Snow Melt', 'kg m-2', 'UPASM'], '16': ['Percolation Rate', 'kg m-2 s-1', 'PERRATE'], '17-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Baseflow-Groundwater Runoff', 'kg m-2', 'BGRUN'], '193': ['Storm Surface Runoff', 'kg m-2', 'SSRUN'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline1.table_4_2_1_1", "modulename": "grib2io.tables.section4_discipline1", "qualname": "table_4_2_1_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Conditional percent precipitation amount fractile for an overall period (encoded as an accumulation)', 'kg m-2', 'CPPOP'], '1': ['Percent Precipitation in a sub-period of an overall period (encoded as a percent accumulation over the sub-period)', '%', 'PPOSP'], '2': ['Probability of 0.01 inch of precipitation (POP)', '%', 'POP'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Probability of Freezing Precipitation', '%', 'CPOZP'], '193': ['Percent of Frozen Precipitation', '%', 'CPOFP'], '194': ['Probability of precipitation exceeding flash flood guidance values', '%', 'PPFFG'], '195': ['Probability of Wetting Rain, exceeding in 0.10" in a given time period', '%', 'CWR'], '196': ['Binary Probability of precipitation exceeding average recurrence intervals (ARI)', 'see Code table 4.222', 'QPFARI'], '197': ['Binary Probability of precipitation exceeding flash flood guidance values', 'see Code table 4.222', 'QPFFFG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline1.table_4_2_1_2", "modulename": "grib2io.tables.section4_discipline1", "qualname": "table_4_2_1_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Water Depth', 'm', 'WDPTHIL'], '1': ['Water Temperature', 'K', 'WTMPIL'], '2': ['Water Fraction', 'Proportion', 'WFRACT'], '3': ['Sediment Thickness', 'm', 'SEDTK'], '4': ['Sediment Temperature', 'K', 'SEDTMP'], '5': ['Ice Thickness', 'm', 'ICTKIL'], '6': ['Ice Temperature', 'K', 'ICETIL'], '7': ['Ice Cover', 'Proportion', 'ICECIL'], '8': ['Land Cover (0=water, 1=land)', 'Proportion', 'LANDIL'], '9': ['Shape Factor with Respect to Salinity Profile', 'unknown', 'SFSAL'], '10': ['Shape Factor with Respect to Temperature Profile in Thermocline', 'unknown', 'SFTMP'], '11': ['Attenuation Coefficient of Water with Respect to Solar Radiation', 'm-1', 'ACWSR'], '12': ['Salinity', 'kg kg-1', 'SALTIL'], '13': ['Cross Sectional Area of Flow in Channel', 'm2', 'CSAFC'], '14': ['Snow temperature', 'K', 'LNDSNOWT'], '15': ['Lake depth', 'm', 'LDEPTH'], '16': ['River depth', 'm', 'RDEPTH'], '17-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10", "modulename": "grib2io.tables.section4_discipline10", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_0", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Wave Spectra (1)', '-', 'WVSP1'], '1': ['Wave Spectra (2)', '-', 'WVSP2'], '2': ['Wave Spectra (3)', '-', 'WVSP3'], '3': ['Significant Height of Combined Wind Waves and Swell', 'm', 'HTSGW'], '4': ['Direction of Wind Waves', 'degree true', 'WVDIR'], '5': ['Significant Height of Wind Waves', 'm', 'WVHGT'], '6': ['Mean Period of Wind Waves', 's', 'WVPER'], '7': ['Direction of Swell Waves', 'degree true', 'SWDIR'], '8': ['Significant Height of Swell Waves', 'm', 'SWELL'], '9': ['Mean Period of Swell Waves', 's', 'SWPER'], '10': ['Primary Wave Direction', 'degree true', 'DIRPW'], '11': ['Primary Wave Mean Period', 's', 'PERPW'], '12': ['Secondary Wave Direction', 'degree true', 'DIRSW'], '13': ['Secondary Wave Mean Period', 's', 'PERSW'], '14': ['Direction of Combined Wind Waves and Swell', 'degree true', 'WWSDIR'], '15': ['Mean Period of Combined Wind Waves and Swell', 's', 'MWSPER'], '16': ['Coefficient of Drag With Waves', '-', 'CDWW'], '17': ['Friction Velocity', 'm s-1', 'FRICVW'], '18': ['Wave Stress', 'N m-2', 'WSTR'], '19': ['Normalised Waves Stress', '-', 'NWSTR'], '20': ['Mean Square Slope of Waves', '-', 'MSSW'], '21': ['U-component Surface Stokes Drift', 'm s-1', 'USSD'], '22': ['V-component Surface Stokes Drift', 'm s-1', 'VSSD'], '23': ['Period of Maximum Individual Wave Height', 's', 'PMAXWH'], '24': ['Maximum Individual Wave Height', 'm', 'MAXWH'], '25': ['Inverse Mean Wave Frequency', 's', 'IMWF'], '26': ['Inverse Mean Frequency of The Wind Waves', 's', 'IMFWW'], '27': ['Inverse Mean Frequency of The Total Swell', 's', 'IMFTSW'], '28': ['Mean Zero-Crossing Wave Period', 's', 'MZWPER'], '29': ['Mean Zero-Crossing Period of The Wind Waves', 's', 'MZPWW'], '30': ['Mean Zero-Crossing Period of The Total Swell', 's', 'MZPTSW'], '31': ['Wave Directional Width', '-', 'WDIRW'], '32': ['Directional Width of The Wind Waves', '-', 'DIRWWW'], '33': ['Directional Width of The Total Swell', '-', 'DIRWTS'], '34': ['Peak Wave Period', 's', 'PWPER'], '35': ['Peak Period of The Wind Waves', 's', 'PPERWW'], '36': ['Peak Period of The Total Swell', 's', 'PPERTS'], '37': ['Altimeter Wave Height', 'm', 'ALTWH'], '38': ['Altimeter Corrected Wave Height', 'm', 'ALCWH'], '39': ['Altimeter Range Relative Correction', '-', 'ALRRC'], '40': ['10 Metre Neutral Wind Speed Over Waves', 'm s-1', 'MNWSOW'], '41': ['10 Metre Wind Direction Over Waves', 'degree true', 'MWDIRW'], '42': ['Wave Engery Spectrum', 'm-2 s rad-1', 'WESP'], '43': ['Kurtosis of The Sea Surface Elevation Due to Waves', '-', 'KSSEW'], '44': ['Benjamin-Feir Index', '-', 'BENINX'], '45': ['Spectral Peakedness Factor', 's-1', 'SPFTR'], '46': ['Peak wave direction', '&deg', 'PWAVEDIR'], '47': ['Significant wave height of first swell partition', 'm', 'SWHFSWEL'], '48': ['Significant wave height of second swell partition', 'm', 'SWHSSWEL'], '49': ['Significant wave height of third swell partition', 'm', 'SWHTSWEL'], '50': ['Mean wave period of first swell partition', 's', 'MWPFSWEL'], '51': ['Mean wave period of second swell partition', 's', 'MWPSSWEL'], '52': ['Mean wave period of third swell partition', 's', 'MWPTSWEL'], '53': ['Mean wave direction of first swell partition', '&deg', 'MWDFSWEL'], '54': ['Mean wave direction of second swell partition', '&deg', 'MWDSSWEL'], '55': ['Mean wave direction of third swell partition', '&deg', 'MWDTSWEL'], '56': ['Wave directional width of first swell partition', '-', 'WDWFSWEL'], '57': ['Wave directional width of second swell partition', '-', 'WDWSSWEL'], '58': ['Wave directional width of third swell partition', '-', 'WDWTSWEL'], '59': ['Wave frequency width of first swell partition', '-', 'WFWFSWEL'], '60': ['Wave frequency width of second swell partition', '-', 'WFWSSWEL'], '61': ['Wave frequency width of third swell partition', '-', 'WFWTSWEL'], '62': ['Wave frequency width', '-', 'WAVEFREW'], '63': ['Frequency width of wind waves', '-', 'FREWWW'], '64': ['Frequency width of total swell', '-', 'FREWTSW'], '65': ['Peak Wave Period of First Swell Partition', 's', 'PWPFSPAR'], '66': ['Peak Wave Period of Second Swell Partition', 's', 'PWPSSPAR'], '67': ['Peak Wave Period of Third Swell Partition', 's', 'PWPTSPAR'], '68': ['Peak Wave Direction of First Swell Partition', 'degree true', 'PWDFSPAR'], '69': ['Peak Wave Direction of Second Swell Partition', 'degree true', 'PWDSSPAR'], '70': ['Peak Wave Direction of Third Swell Partition', 'degree true', 'PWDTSPAR'], '71': ['Peak Direction of Wind Waves', 'degree true', 'PDWWAVE'], '72': ['Peak Direction of Total Swell', 'degree true', 'PDTSWELL'], '73': ['Whitecap Fraction', 'fraction', 'WCAPFRAC'], '74': ['Mean Direction of Total Swell', 'degree', 'MDTSWEL'], '75': ['Mean Direction of Wind Waves', 'degree', 'MDWWAVE'], '76': ['Charnock', 'Numeric', 'CHNCK'], '77': ['Wave Spectral Skewness', 'Numeric', 'WAVESPSK'], '78': ['Wave Energy Flux Magnitude', 'W m-1', 'WAVEFMAG'], '79': ['Wave Energy Flux Mean Direction', 'degree true', 'WAVEFDIR'], '80': ['Raio of Wave Angular and Frequency width', 'Numeric', 'RWAVEAFW'], '81': ['Free Convective Velocity over the Oceans', 'm s-1', 'FCVOCEAN'], '82': ['Air Density over the Oceans', 'kg m-3', 'AIRDENOC'], '83': ['Normalized Energy Flux into Waves', 'Numeric', 'NEFW'], '84': ['Normalized Stress into Ocean', 'Numeric', 'NSOCEAN'], '85': ['Normalized Energy Flux into Ocean', 'Numeric', 'NEFOCEAN'], '86': ['Surface Elevation Variance due to Waves (over all frequencies and directions)', 'm2 s rad-1', 'SEVWAVE'], '87': ['Wave Induced Mean Se Level Correction', 'm', 'WAVEMSLC'], '88': ['Spectral Width Index', 'Numeric', 'SPECWI'], '89': ['Number of Events in Freak Wave Statistics', 'Numeric', 'EFWS'], '90': ['U-Component of Surface Momentum Flux into Ocean', 'N m-2', 'USMFO'], '91': ['U-Component of Surface Momentum Flux into Ocean', 'N m-2', 'VSMFO'], '92': ['Wave Turbulent Energy Flux into Ocean', 'W m-2', 'WAVETEFO'], '93': ['Envelop maximum individual wave height', 'm', 'EMIWAVE'], '94': ['Time domain maximum individual crest height', 'm', 'TDMCREST'], '95': ['Time domain maximum individual wave height', 'm', 'TDMWAVE'], '96': ['Space time maximum individual crest height', 'm', 'STMCREST'], '97': ['Space time maximum individual wave height', 'm', 'STMWAVE'], '98-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Wave Steepness', 'proportion', 'WSTP'], '193': ['Wave Length', 'unknown', 'WLENG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_1", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Current Direction', 'degree True', 'DIRC'], '1': ['Current Speed', 'm s-1', 'SPC'], '2': ['U-Component of Current', 'm s-1', 'UOGRD'], '3': ['V-Component of Current', 'm s-1', 'VOGRD'], '4': ['Rip Current Occurrence Probability', '%', 'RIPCOP'], '5': ['Eastward Current', 'm s-1', 'EASTCUR'], '6': ['Northward Current', 'm s-1', 'NRTHCUR'], '7-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Ocean Mixed Layer U Velocity', 'm s-1', 'OMLU'], '193': ['Ocean Mixed Layer V Velocity', 'm s-1', 'OMLV'], '194': ['Barotropic U velocity', 'm s-1', 'UBARO'], '195': ['Barotropic V velocity', 'm s-1', 'VBARO'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_2", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Ice Cover', 'Proportion', 'ICEC'], '1': ['Ice Thickness', 'm', 'ICETK'], '2': ['Direction of Ice Drift', 'degree True', 'DICED'], '3': ['Speed of Ice Drift', 'm s-1', 'SICED'], '4': ['U-Component of Ice Drift', 'm s-1', 'UICE'], '5': ['V-Component of Ice Drift', 'm s-1', 'VICE'], '6': ['Ice Growth Rate', 'm s-1', 'ICEG'], '7': ['Ice Divergence', 's-1', 'ICED'], '8': ['Ice Temperature', 'K', 'ICETMP'], '9': ['Module of Ice Internal Pressure', 'Pa m', 'ICEPRS'], '10': ['Zonal Vector Component of Vertically Integrated Ice Internal Pressure', 'Pa m', 'ZVCICEP'], '11': ['Meridional Vector Component of Vertically Integrated Ice Internal Pressure', 'Pa m', 'MVCICEP'], '12': ['Compressive Ice Strength', 'N m-1', 'CICES'], '13': ['Snow Temperature (over sea ice)', 'K', 'SNOWTSI'], '14': ['Albedo', 'Numeric', 'ALBDOICE'], '15': ['Sea Ice Volume per Unit Area', 'm3m-2', 'SICEVOL'], '16': ['Snow Volume Over Sea Ice per Unit Area', 'm3m-2', 'SNVOLSI'], '17': ['Sea Ice Heat Content', 'J m-2', 'SICEHC'], '18': ['Snow over Sea Ice Heat Content', 'J m-2', 'SNCEHC'], '19': ['Ice Freeboard Thickness', 'm', 'ICEFTHCK'], '20': ['Ice Melt Pond Fraction', 'fraction', 'ICEMPF'], '21': ['Ice Melt Pond Depth', 'm', 'ICEMPD'], '22': ['Ice Melt Pond Volume per Unit Area', 'm3m-2', 'ICEMPV'], '23': ['Sea Ice Fraction Tendency due to Parameterization', 's-1', 'SIFTP'], '24': ['x-component of ice drift', 'm s-1', 'XICE'], '25': ['y-component of ice drift', 'm s-1', 'YICE'], '26': ['Reserved', 'unknown', 'unknown'], '27': ['Freezing/melting potential (Tentatively accepted)', 'W m-2', 'FRZMLTPOT'], '28': ['Melt onset date (Tentatively accepted)', 'Numeric', 'MLTDATE'], '29': ['Freeze onset date (Tentatively accepted)', 'Numeric', 'FRZDATE'], '30-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_3", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Water Temperature', 'K', 'WTMP'], '1': ['Deviation of Sea Level from Mean', 'm', 'DSLM'], '2': ['Heat Exchange Coefficient', 'unknown', 'CH'], '3': ['Practical Salinity', 'Numeric', 'PRACTSAL'], '4': ['Downward Heat Flux', 'W m-2', 'DWHFLUX'], '5': ['Eastward Surface Stress', 'N m-2', 'EASTWSS'], '6': ['Northward surface stress', 'N m-2', 'NORTHWSS'], '7': ['x-component Surface Stress', 'N m-2', 'XCOMPSS'], '8': ['y-component Surface Stress', 'N m-2', 'YCOMPSS'], '9': ['Thermosteric Change in Sea Surface Height', 'm', 'THERCSSH'], '10': ['Halosteric Change in Sea Surface Height', 'm', 'HALOCSSH'], '11': ['Steric Change in Sea Surface Height', 'm', 'STERCSSH'], '12': ['Sea Salt Flux', 'kg m-2s-1', 'SEASFLUX'], '13': ['Net upward water flux', 'kg m-2s-1', 'NETUPWFLUX'], '14': ['Eastward surface water velocity', 'm s-1', 'ESURFWVEL'], '15': ['Northward surface water velocity', 'm s-1', 'NSURFWVEL'], '16': ['x-component of surface water velocity', 'm s-1', 'XSURFWVEL'], '17': ['y-component of surface water velocity', 'm s-1', 'YSURFWVEL'], '18': ['Heat flux correction', 'W m-2', 'HFLUXCOR'], '19': ['Sea surface height tendency due to parameterization', 'm s-1', 'SSHGTPARM'], '20': ['Deviation of sea level from mean with inverse barometer correction', 'm', 'DSLIBARCOR'], '21': ['Salinity', 'kg kg-1', 'SALIN'], '22-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Hurricane Storm Surge', 'm', 'SURGE'], '193': ['Extra Tropical Storm Surge', 'm', 'ETSRG'], '194': ['Ocean Surface Elevation Relative to Geoid', 'm', 'ELEV'], '195': ['Sea Surface Height Relative to Geoid', 'm', 'SSHG'], '196': ['Ocean Mixed Layer Potential Density (Reference 2000m)', 'kg m-3', 'P2OMLT'], '197': ['Net Air-Ocean Heat Flux', 'W m-2', 'AOHFLX'], '198': ['Assimilative Heat Flux', 'W m-2', 'ASHFL'], '199': ['Surface Temperature Trend', 'degree per day', 'SSTT'], '200': ['Surface Salinity Trend', 'psu per day', 'SSST'], '201': ['Kinetic Energy', 'J kg-1', 'KENG'], '202': ['Salt Flux', 'kg m-2s-1', 'SLTFL'], '203': ['Heat Exchange Coefficient', 'unknown', 'LCH'], '204': ['Freezing Spray', 'unknown', 'FRZSPR'], '205': ['Total Water Level Accounting for Tide, Wind and Waves', 'm', 'TWLWAV'], '206': ['Total Water Level Increase due to Waves', 'm', 'RUNUP'], '207': ['Mean Increase in Water Level due to Waves', 'm', 'SETUP'], '208': ['Time-varying Increase in Water Level due to Waves', 'm', 'SWASH'], '209': ['Total Water Level Above Dune Toe', 'm', 'TWLDT'], '210': ['Total Water Level Above Dune Crest', 'm', 'TWLDC'], '211-241': ['Reserved', 'unknown', 'unknown'], '242': ['20% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG20'], '243': ['30% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG30'], '244': ['40% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG40'], '245': ['50% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG50'], '246': ['60% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG60'], '247': ['70% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG70'], '248': ['80% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG80'], '249': ['90% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG90'], '250': ['Extra Tropical Storm Surge Combined Surge and Tide', 'm', 'ETCWL'], '251': ['Tide', 'm', 'TIDE'], '252': ['Erosion Occurrence Probability', '%', 'EROSNP'], '253': ['Overwash Occurrence Probability', '%', 'OWASHP'], '254': ['Reserved', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_4", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Main Thermocline Depth', 'm', 'MTHD'], '1': ['Main Thermocline Anomaly', 'm', 'MTHA'], '2': ['Transient Thermocline Depth', 'm', 'TTHDP'], '3': ['Salinity', 'kg kg-1', 'SALTY'], '4': ['Ocean Vertical Heat Diffusivity', 'm2 s-1', 'OVHD'], '5': ['Ocean Vertical Salt Diffusivity', 'm2 s-1', 'OVSD'], '6': ['Ocean Vertical Momentum Diffusivity', 'm2 s-1', 'OVMD'], '7': ['Bathymetry', 'm', 'BATHY'], '8-10': ['Reserved', 'unknown', 'unknown'], '11': ['Shape Factor With Respect To Salinity Profile', 'unknown', 'SFSALP'], '12': ['Shape Factor With Respect To Temperature Profile In Thermocline', 'unknown', 'SFTMPP'], '13': ['Attenuation Coefficient Of Water With Respect to Solar Radiation', 'm-1', 'ACWSRD'], '14': ['Water Depth', 'm', 'WDEPTH'], '15': ['Water Temperature', 'K', 'WTMPSS'], '16': ['Water Density (rho)', 'kg m-3', 'WATERDEN'], '17': ['Water Density Anomaly (sigma)', 'kg m-3', 'WATDENA'], '18': ['Water potential temperature (theta)', 'K', 'WATPTEMP'], '19': ['Water potential density (rho theta)', 'kg m-3', 'WATPDEN'], '20': ['Water potential density anomaly (sigma theta)', 'kg m-3', 'WATPDENA'], '21': ['Practical Salinity', 'psu (numeric)', 'PRTSAL'], '22': ['Water Column-integrated Heat Content', 'J m-2', 'WCHEATC'], '23': ['Eastward Water Velocity', 'm s-1', 'EASTWVEL'], '24': ['Northward Water Velocity', 'm s-1', 'NRTHWVEL'], '25': ['X-Component Water Velocity', 'm s-1', 'XCOMPWV'], '26': ['Y-Component Water Velocity', 'm s-1', 'YCOMPWV'], '27': ['Upward Water Velocity', 'm s-1', 'UPWWVEL'], '28': ['Vertical Eddy Diffusivity', 'm2 s-1', 'VEDDYDIF'], '29': ['Bottom Pressure Equivalent Height', 'm', 'BPEH'], '30': ['Fresh Water Flux into Sea Water from Rivers', 'kg m-2s-1', 'FWFSW'], '31': ['Fresh Water Flux Correction', 'kg m-2s-1', 'FWFC'], '32': ['Virtual Salt Flux into Sea Water', 'g kg-1 m-2s-1', 'VSFSW'], '33': ['Virtual Salt Flux Correction', 'g kg -1 m-2s-1', 'VSFC'], '34': ['Sea Water Temperature Tendency due to Newtonian Relaxation', 'K s-1', 'SWTTNR'], '35': ['Sea Water Salinity Tendency due to Newtonian Relaxation', 'g kg -1s-1', 'SWSTNR'], '36': ['Sea Water Temperature Tendency due to Parameterization', 'K s-1', 'SWTTP'], '37': ['Sea Water Salinity Tendency due to Parameterization', 'g kg -1s-1', 'SWSTP'], '38': ['Eastward Sea Water Velocity Tendency Due To Parameterization', 'm s-2', 'ESWVP'], '39': ['Northward Sea Water Velocity Tendency Due To Parameterization', 'm s-2', 'NSWVP'], '40': ['Sea Water Temperature Tendency Due to Direct Bias Correction', 'K s-1', 'SWTTBC'], '41': ['Sea Water Salinity Tendency due to Direct Bias Correction', 'g kg -1s-1', 'SWSTBC'], '42': ['Sea water meridional volume transport', 'm 3 m -2 s -1', 'SEAMVT'], '43': ['Sea water zonal volume transport', 'm 3 m -2 s -1', 'SEAZVT'], '44': ['Sea water column integrated meridional volume transport', 'm 3 m -2 s -1', 'SEACMVT'], '45': ['Sea water column integrated zonal volume transport', 'm 3 m -2 s -1', 'SEACZVT'], '46': ['Sea water meridional mass transport', 'kg m -2 s -1', 'SEAMMT'], '47': ['Sea water zonal mass transport', 'kg m -2 s -1', 'SEAZMT'], '48': ['Sea water column integrated meridional mass transport', 'kg m -2 s -1', 'SEACMMT'], '49': ['Sea water column integrated zonal mass transport', 'kg m -2 s -1', 'SEACZMT'], '50': ['Sea water column integrated practical salinity', 'g kg-1 m', 'SEACPSALT'], '51': ['Sea water column integrated salinity', 'kg kg-1 m', 'SEACSALT'], '52-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['3-D Temperature', '\u00b0 c', 'WTMPC'], '193': ['3-D Salinity', 'psu', 'SALIN'], '194': ['Barotropic Kinectic Energy', 'J kg-1', 'BKENG'], '195': ['Geometric Depth Below Sea Surface', 'm', 'DBSS'], '196': ['Interface Depths', 'm', 'INTFD'], '197': ['Ocean Heat Content', 'J m-2', 'OHC'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_191", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_191", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Seconds Prior To Initial Reference Time (Defined In Section 1)', 's', 'IRTSEC'], '1': ['Meridional Overturning Stream Function', 'm3 s-1', 'MOSF'], '2': ['Reserved', 'unknown', 'unknown'], '3': ['Days Since Last Observation', 'd', 'DSLOBSO'], '4': ['Barotropic Stream Function', 'm3 s-1', 'BARDSF'], '5-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2", "modulename": "grib2io.tables.section4_discipline2", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_0", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Land Cover (0=sea, 1=land)', 'Proportion', 'LAND'], '1': ['Surface Roughness', 'm', 'SFCR'], '2': ['Soil Temperature (Parameter Deprecated, see Note 3)', 'K', 'TSOIL'], '3': ['Soil Moisture Content (Parameter Deprecated, see Note 1)', 'unknown', 'unknown'], '4': ['Vegetation', '%', 'VEG'], '5': ['Water Runoff', 'kg m-2', 'WATR'], '6': ['Evapotranspiration', 'kg-2 s-1', 'EVAPT'], '7': ['Model Terrain Height', 'm', 'MTERH'], '8': ['Land Use', 'See Table 4.212', 'LANDU'], '9': ['Volumetric Soil Moisture Content', 'Proportion', 'SOILW'], '10': ['Ground Heat Flux', 'W m-2', 'GFLUX'], '11': ['Moisture Availability', '%', 'MSTAV'], '12': ['Exchange Coefficient', 'kg m-2 s-1', 'SFEXC'], '13': ['Plant Canopy Surface Water', 'kg m-2', 'CNWAT'], '14': ['Blackadars Mixing Length Scale', 'm', 'BMIXL'], '15': ['Canopy Conductance', 'm s-1', 'CCOND'], '16': ['Minimal Stomatal Resistance', 's m-1', 'RSMIN'], '17': ['Wilting Point (Parameter Deprecated, see Note 1)', 'Proportion', 'WILT'], '18': ['Solar parameter in canopy conductance', 'Proportion', 'RCS'], '19': ['Temperature parameter in canopy', 'Proportion', 'RCT'], '20': ['Humidity parameter in canopy conductance', 'Proportion', 'RCQ'], '21': ['Soil moisture parameter in canopy conductance', 'Proportion', 'RCSOL'], '22': ['Soil Moisture (Parameter Deprecated, See Note 3)', 'unknown', 'unknown'], '23': ['Column-Integrated Soil Water (Parameter Deprecated, See Note 3)', 'kg m-2', 'CISOILW'], '24': ['Heat Flux', 'W m-2', 'HFLUX'], '25': ['Volumetric Soil Moisture', 'm3 m-3', 'VSOILM'], '26': ['Wilting Point', 'kg m-3', 'WILT'], '27': ['Volumetric Wilting Point', 'm3 m-3', 'VWILTP'], '28': ['Leaf Area Index', 'Numeric', 'LEAINX'], '29': ['Evergreen Forest Cover', 'Proportion', 'EVGFC'], '30': ['Deciduous Forest Cover', 'Proportion', 'DECFC'], '31': ['Normalized Differential Vegetation Index (NDVI)', 'Numeric', 'NDVINX'], '32': ['Root Depth of Vegetation', 'm', 'RDVEG'], '33': ['Water Runoff and Drainage', 'kg m-2', 'WROD'], '34': ['Surface Water Runoff', 'kg m-2', 'SFCWRO'], '35': ['Tile Class', 'See Table 4.243', 'TCLASS'], '36': ['Tile Fraction', 'Proportion', 'TFRCT'], '37': ['Tile Percentage', '%', 'TPERCT'], '38': ['Soil Volumetric Ice Content (Water Equivalent)', 'm3 m-3', 'SOILVIC'], '39': ['Evapotranspiration Rate', 'kg m-2 s-1', 'EVAPTRAT'], '40': ['Potential Evapotranspiration Rate', 'kg m-2 s-1', 'PEVAPTRAT'], '41': ['Snow Melt Rate', 'kg m-2 s-1', 'SMRATE'], '42': ['Water Runoff and Drainage Rate', 'kg m-2 s-1', 'WRDRATE'], '43': ['Drainage direction', 'See Table 4.250', 'DRAINDIR'], '44': ['Upstream Area', 'm2', 'UPSAREA'], '45': ['Wetland Cover', 'Proportion', 'WETCOV'], '46': ['Wetland Type', 'See Table 4.239', 'WETTYPE'], '47': ['Irrigation Cover', 'Proportion', 'IRRCOV'], '48': ['C4 Crop Cover', 'Proportion', 'CROPCOV'], '49': ['C4 Grass Cover', 'Proportion', 'GRASSCOV'], '50': ['Skin Resovoir Content', 'kg m-2', 'SKINRC'], '51': ['Surface Runoff Rate', 'kg m-2 s-1', 'SURFRATE'], '52': ['Subsurface Runoff Rate', 'kg m-2 s-1', 'SUBSRATE'], '53': ['Low-Vegetation Cover', 'Proportion', 'LOVEGCOV'], '54': ['High-Vegetation Cover', 'Proportion', 'HIVEGCOV'], '55': ['Leaf Area Index (Low-Vegetation)', 'm2 m-2', 'LAILO'], '56': ['Leaf Area Index (High-Vegetation)', 'm2 m-2', 'LAIHI'], '57': ['Type of Low-Vegetation', 'See Table 4.234', 'TYPLOVEG'], '58': ['Type of High-Vegetation', 'See Table 4.234', 'TYPHIVEG'], '59': ['Net Ecosystem Exchange Flux', 'kg-2 s-1', 'NECOFLUX'], '60': ['Gross Primary Production Flux', 'kg-2 s-1', 'GROSSFLUX'], '61': ['Ecosystem Respiration Flux', 'kg-2 s-1', 'ECORFLUX'], '62': ['Emissivity', 'Proportion', 'EMISS'], '63': ['Canopy air temperature', 'K', 'CANTMP'], '64-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Volumetric Soil Moisture Content', 'Fraction', 'SOILW'], '193': ['Ground Heat Flux', 'W m-2', 'GFLUX'], '194': ['Moisture Availability', '%', 'MSTAV'], '195': ['Exchange Coefficient', '(kg m-3) (m s-1)', 'SFEXC'], '196': ['Plant Canopy Surface Water', 'kg m-2', 'CNWAT'], '197': ['Blackadar\u2019s Mixing Length Scale', 'm', 'BMIXL'], '198': ['Vegetation Type', 'Integer (0-13)', 'VGTYP'], '199': ['Canopy Conductance', 'm s-1', 'CCOND'], '200': ['Minimal Stomatal Resistance', 's m-1', 'RSMIN'], '201': ['Wilting Point', 'Fraction', 'WILT'], '202': ['Solar parameter in canopy conductance', 'Fraction', 'RCS'], '203': ['Temperature parameter in canopy conductance', 'Fraction', 'RCT'], '204': ['Humidity parameter in canopy conductance', 'Fraction', 'RCQ'], '205': ['Soil moisture parameter in canopy conductance', 'Fraction', 'RCSOL'], '206': ['Rate of water dropping from canopy to ground', 'unknown', 'RDRIP'], '207': ['Ice-free water surface', '%', 'ICWAT'], '208': ['Surface exchange coefficients for T and Q divided by delta z', 'm s-1', 'AKHS'], '209': ['Surface exchange coefficients for U and V divided by delta z', 'm s-1', 'AKMS'], '210': ['Vegetation canopy temperature', 'K', 'VEGT'], '211': ['Surface water storage', 'kg m-2', 'SSTOR'], '212': ['Liquid soil moisture content (non-frozen)', 'kg m-2', 'LSOIL'], '213': ['Open water evaporation (standing water)', 'W m-2', 'EWATR'], '214': ['Groundwater recharge', 'kg m-2', 'GWREC'], '215': ['Flood plain recharge', 'kg m-2', 'QREC'], '216': ['Roughness length for heat', 'm', 'SFCRH'], '217': ['Normalized Difference Vegetation Index', 'unknown', 'NDVI'], '218': ['Land-sea coverage (nearest neighbor) [land=1,sea=0]', 'unknown', 'LANDN'], '219': ['Asymptotic mixing length scale', 'm', 'AMIXL'], '220': ['Water vapor added by precip assimilation', 'kg m-2', 'WVINC'], '221': ['Water condensate added by precip assimilation', 'kg m-2', 'WCINC'], '222': ['Water Vapor Flux Convergance (Vertical Int)', 'kg m-2', 'WVCONV'], '223': ['Water Condensate Flux Convergance (Vertical Int)', 'kg m-2', 'WCCONV'], '224': ['Water Vapor Zonal Flux (Vertical Int)', 'kg m-2', 'WVUFLX'], '225': ['Water Vapor Meridional Flux (Vertical Int)', 'kg m-2', 'WVVFLX'], '226': ['Water Condensate Zonal Flux (Vertical Int)', 'kg m-2', 'WCUFLX'], '227': ['Water Condensate Meridional Flux (Vertical Int)', 'kg m-2', 'WCVFLX'], '228': ['Aerodynamic conductance', 'm s-1', 'ACOND'], '229': ['Canopy water evaporation', 'W m-2', 'EVCW'], '230': ['Transpiration', 'W m-2', 'TRANS'], '231': ['Seasonally Minimum Green Vegetation Fraction (over 1-year period)', '%', 'VEGMIN'], '232': ['Seasonally Maximum Green Vegetation Fraction (over 1-year period)', '%', 'VEGMAX'], '233': ['Land Fraction', 'Fraction', 'LANDFRC'], '234': ['Lake Fraction', 'Fraction', 'LAKEFRC'], '235': ['Precipitation Advected Heat Flux', 'W m-2', 'PAHFLX'], '236': ['Water Storage in Aquifer', 'kg m-2', 'WATERSA'], '237': ['Evaporation of Intercepted Water', 'kg m-2', 'EIWATER'], '238': ['Plant Transpiration', 'kg m-2', 'PLANTTR'], '239': ['Soil Surface Evaporation', 'kg m-2', 'SOILSE'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_1", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_1", "kind": "variable", "doc": "

\n", "default_value": "{'0-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Cold Advisory for Newborn Livestock', 'unknown', 'CANL'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_3", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Soil Type', 'See Table 4.213', 'SOTYP'], '1': ['Upper Layer Soil Temperature', 'K', 'UPLST'], '2': ['Upper Layer Soil Moisture', 'kg m-3', 'UPLSM'], '3': ['Lower Layer Soil Moisture', 'kg m-3', 'LOWLSM'], '4': ['Bottom Layer Soil Temperature', 'K', 'BOTLST'], '5': ['Liquid Volumetric Soil Moisture(non-frozen)', 'Proportion', 'SOILL'], '6': ['Number of Soil Layers in Root Zone', 'Numeric', 'RLYRS'], '7': ['Transpiration Stress-onset (soil moisture)', 'Proportion', 'SMREF'], '8': ['Direct Evaporation Cease (soil moisture)', 'Proportion', 'SMDRY'], '9': ['Soil Porosity', 'Proportion', 'POROS'], '10': ['Liquid Volumetric Soil Moisture (Non-Frozen)', 'm3 m-3', 'LIQVSM'], '11': ['Volumetric Transpiration Stree-Onset(Soil Moisture)', 'm3 m-3', 'VOLTSO'], '12': ['Transpiration Stree-Onset(Soil Moisture)', 'kg m-3', 'TRANSO'], '13': ['Volumetric Direct Evaporation Cease(Soil Moisture)', 'm3 m-3', 'VOLDEC'], '14': ['Direct Evaporation Cease(Soil Moisture)', 'kg m-3', 'DIREC'], '15': ['Soil Porosity', 'm3 m-3', 'SOILP'], '16': ['Volumetric Saturation Of Soil Moisture', 'm3 m-3', 'VSOSM'], '17': ['Saturation Of Soil Moisture', 'kg m-3', 'SATOSM'], '18': ['Soil Temperature', 'K', 'SOILTMP'], '19': ['Soil Moisture', 'kg m-3', 'SOILMOI'], '20': ['Column-Integrated Soil Moisture', 'kg m-2', 'CISOILM'], '21': ['Soil Ice', 'kg m-3', 'SOILICE'], '22': ['Column-Integrated Soil Ice', 'kg m-2', 'CISICE'], '23': ['Liquid Water in Snow Pack', 'kg m-2', 'LWSNWP'], '24': ['Frost Index', 'kg day-1', 'FRSTINX'], '25': ['Snow Depth at Elevation Bands', 'kg m-2', 'SNWDEB'], '26': ['Soil Heat Flux', 'W m-2', 'SHFLX'], '27': ['Soil Depth', 'm', 'SOILDEP'], '28': ['Snow Temperature', 'K', 'SNOWTMP'], '29': ['Ice Temperature', 'K', 'ICETMP'], '30': ['Soil wetness index', 'Numeric', 'SWET'], '31-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Liquid Volumetric Soil Moisture (non Frozen)', 'Proportion', 'SOILL'], '193': ['Number of Soil Layers in Root Zone', 'non-dim', 'RLYRS'], '194': ['Surface Slope Type', 'Index', 'SLTYP'], '195': ['Transpiration Stress-onset (soil moisture)', 'Proportion', 'SMREF'], '196': ['Direct Evaporation Cease (soil moisture)', 'Proportion', 'SMDRY'], '197': ['Soil Porosity', 'Proportion', 'POROS'], '198': ['Direct Evaporation from Bare Soil', 'W m-2', 'EVBS'], '199': ['Land Surface Precipitation Accumulation', 'kg m-2', 'LSPA'], '200': ['Bare Soil Surface Skin temperature', 'K', 'BARET'], '201': ['Average Surface Skin Temperature', 'K', 'AVSFT'], '202': ['Effective Radiative Skin Temperature', 'K', 'RADT'], '203': ['Field Capacity', 'Fraction', 'FLDCP'], '204': ['Soil Moisture Availability In The Top Soil Layer', '%', 'MSTAV'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_4", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Fire Outlook', 'See Table 4.224', 'FIREOLK'], '1': ['Fire Outlook Due to Dry Thunderstorm', 'See Table 4.224', 'FIREODT'], '2': ['Haines Index', 'Numeric', 'HINDEX'], '3': ['Fire Burned Area', '%', 'FBAREA'], '4': ['Fosberg Index', 'Numeric', 'FOSINDX'], '5': ['Fire Weath Index (Canadian Forest Service)', 'Numeric', 'FWINX'], '6': ['Fine Fuel Moisture Code (Canadian Forest Service)', 'Numeric', 'FFMCODE'], '7': ['Duff Moisture Code (Canadian Forest Service)', 'Numeric', 'DUFMCODE'], '8': ['Drought Code (Canadian Forest Service)', 'Numeric', 'DRTCODE'], '9': ['Initial Fire Spread Index (Canadian Forest Service)', 'Numeric', 'INFSINX'], '10': ['Fire Build Up Index (Canadian Forest Service)', 'Numeric', 'FBUPINX'], '11': ['Fire Daily Severity Rating (Canadian Forest Service)', 'Numeric', 'FDSRTE'], '12': ['Keetch-Byram Drought Index', 'Numeric', 'KRIDX'], '13': ['Drought Factor (as defined by the Australian forest service)', 'Numeric', 'DRFACT'], '14': ['Rate of Spread (as defined by the Australian forest service)', 'm s-1', 'RATESPRD'], '15': ['Fire Danger index (as defined by the Australian forest service)', 'Numeric', 'FIREDIDX'], '16': ['Spread component (as defined by the US Forest Service National Fire Danger Rating System)', 'Numeric', 'SPRDCOMP'], '17': ['Burning Index (as defined by the Australian forest service)', 'Numeric', 'BURNIDX'], '18': ['Ignition Component (as defined by the Australian forest service)', '%', 'IGNCOMP'], '19': ['Energy Release Component (as defined by the Australian forest service)', 'J m-2', 'ENRELCOM'], '20': ['Burning Area', '%', 'BURNAREA'], '21': ['Burnable Area', '%', 'BURNABAREA'], '22': ['Unburnable Area', '%', 'UNBURNAREA'], '23': ['Fuel Load', 'kg m-2', 'FUELLOAD'], '24': ['Combustion Completeness', '%', 'COMBCO'], '25': ['Fuel Moisture Content', 'kg kg-1', 'FUELMC'], '26': ['Wildfire Potential (as defined by NOAA Global Systems Laboratory)', 'Numeric', 'WFIREPOT'], '27': ['Live leaf fuel load', 'kg m-2', 'LLFL'], '28': ['Live wood fuel load', 'kg m-2', 'LWFL'], '29': ['Dead leaf fuel load', 'kg m-2', 'DLFL'], '30': ['Dead wood fuel load', 'kg m-2', 'DWFL'], '31': ['Live fuel moisture content', 'kg kg-1', 'LFMC'], '32': ['Fine dead leaf moisture content', 'kg kg-1', 'FDLMC'], '33': ['Dense dead leaf moisture content', 'kg kg-1', 'DDLMC'], '34': ['Fine dead wood moisture content', 'kg kg-1', 'FDWMC'], '35': ['Dense dead wood moisture content', 'kg kg-1', 'DDWMC'], '36': ['Fire radiative power\\t(Tentatively accpeted)', 'W', 'FRADPOW'], '37-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_5", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_5", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Glacier Cover', 'Proportion', 'GLACCOV'], '1': ['Glacier Temperature', 'K', 'GLACTMP'], '2-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline20", "modulename": "grib2io.tables.section4_discipline20", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline20.table_4_2_20_0", "modulename": "grib2io.tables.section4_discipline20", "qualname": "table_4_2_20_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Universal Thermal Climate Index', 'K', 'UTHCIDX'], '1': ['Mean Radiant Temperature', 'K', 'MEANRTMP'], '2': ['Wet-bulb Globe Temperature (see Note)', 'K', 'WETBGTMP'], '3': ['Globe Temperature (see Note)', 'K', 'GLOBETMP'], '4': ['Humidex', 'K', 'HUMIDX'], '5': ['Effective Temperature', 'K', 'EFFTEMP'], '6': ['Normal Effective Temperature', 'K', 'NOREFTMP'], '7': ['Standard Effective Temperature', 'K', 'STDEFTMP'], '8': ['Physiological Equivalent Temperature', 'K', 'PEQUTMP'], '9-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline20.table_4_2_20_1", "modulename": "grib2io.tables.section4_discipline20", "qualname": "table_4_2_20_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Malaria Cases', 'Fraction', 'MALACASE'], '1': ['Malaria Circumsporozoite Protein Rate', 'Fraction', 'MACPRATE'], '2': ['Plasmodium Falciparum Entomological Inoculation Rate', 'Bites per day per person', 'PFEIRATE'], '3': ['Human Bite Rate by Anopheles Vectors', 'Bites per day per person', 'HBRATEAV'], '4': ['Malaria Immunity', 'Fraction', 'MALAIMM'], '5': ['Falciparum Parasite Rates', 'Fraction', 'FALPRATE'], '6': ['Detectable Falciparum Parasite Ratio (after day 10)', 'Fraction', 'DFPRATIO'], '7': ['Anopheles Vector to Host Ratio', 'Fraction', 'AVHRATIO'], '8': ['Anopheles Vector Number', 'Number m-2', 'AVECTNUM'], '9': ['Fraction of Malarial Vector Reproductive Habitat', 'Fraction', 'FMALVRH'], '10-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline20.table_4_2_20_2", "modulename": "grib2io.tables.section4_discipline20", "qualname": "table_4_2_20_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Population Density', 'Person m-2', 'POPDEN'], '1-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline209", "modulename": "grib2io.tables.section4_discipline209", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_2", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['CG Average Lightning Density 1-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_001min_AvgDensity'], '1': ['CG Average Lightning Density 5-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_005min_AvgDensity'], '2': ['CG Average Lightning Density 15-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_015min_AvgDensity'], '3': ['CG Average Lightning Density 30-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_030min_AvgDensity'], '5': ['Lightning Probability 0-30 minutes - NLDN', '%', 'LightningProbabilityNext30minGrid'], '6': ['Lightning Probability 0-30 minutes - NLDN', '%', 'LightningProbabilityNext60minGrid'], '7': ['Rapid lightning increases and decreases ', 'non-dim', 'LightningJumpGrid'], '8': ['Rapid lightning increases and decreases over 5-minutes ', 'non-dim', 'LightningJumpGrid_Max_005min']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_3", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Azimuth Shear 0-2km AGL', '0.001/s', 'MergedAzShear0to2kmAGL'], '1': ['Azimuth Shear 3-6km AGL', '0.001/s', 'MergedAzShear3to6kmAGL'], '2': ['Rotation Track 0-2km AGL 30-min', '0.001/s', 'RotationTrack30min'], '3': ['Rotation Track 0-2km AGL 60-min', '0.001/s', 'RotationTrack60min'], '4': ['Rotation Track 0-2km AGL 120-min', '0.001/s', 'RotationTrack120min'], '5': ['Rotation Track 0-2km AGL 240-min', '0.001/s', 'RotationTrack240min'], '6': ['Rotation Track 0-2km AGL 360-min', '0.001/s', 'RotationTrack360min'], '7': ['Rotation Track 0-2km AGL 1440-min', '0.001/s', 'RotationTrack1440min'], '14': ['Rotation Track 3-6km AGL 30-min', '0.001/s', 'RotationTrackML30min'], '15': ['Rotation Track 3-6km AGL 60-min', '0.001/s', 'RotationTrackML60min'], '16': ['Rotation Track 3-6km AGL 120-min', '0.001/s', 'RotationTrackML120min'], '17': ['Rotation Track 3-6km AGL 240-min', '0.001/s', 'RotationTrackML240min'], '18': ['Rotation Track 3-6km AGL 360-min', '0.001/s', 'RotationTrackML360min'], '19': ['Rotation Track 3-6km AGL 1440-min', '0.001/s', 'RotationTrackML1440min'], '26': ['Severe Hail Index', 'index', 'SHI'], '27': ['Prob of Severe Hail', '%', 'POSH'], '28': ['Maximum Estimated Size of Hail (MESH)', 'mm', 'MESH'], '29': ['MESH Hail Swath 30-min', 'mm', 'MESHMax30min'], '30': ['MESH Hail Swath 60-min', 'mm', 'MESHMax60min'], '31': ['MESH Hail Swath 120-min', 'mm', 'MESHMax120min'], '32': ['MESH Hail Swath 240-min', 'mm', 'MESHMax240min'], '33': ['MESH Hail Swath 360-min', 'mm', 'MESHMax360min'], '34': ['MESH Hail Swath 1440-min', 'mm', 'MESHMax1440min'], '37': ['VIL Swath 120-min', 'kg/m^2', 'VIL_Max_120min'], '40': ['VIL Swath 1440-min', 'kg/m^2', 'VIL_Max_1440min'], '41': ['Vertically Integrated Liquid', 'kg/m^2', 'VIL'], '42': ['Vertically Integrated Liquid Density', 'g/m^3', 'VIL_Density'], '43': ['Vertically Integrated Ice', 'kg/m^2', 'VII'], '44': ['Echo Top - 18 dBZ', 'km MSL', 'EchoTop_18'], '45': ['Echo Top - 30 dBZ', 'km MSL', 'EchoTop_30'], '46': ['Echo Top - 50 dBZ', 'km MSL', 'EchoTop_50'], '47': ['Echo Top - 60 dBZ', 'km MSL', 'EchoTop_60'], '48': ['Thickness [50 dBZ top - (-20C)]', 'km', 'H50AboveM20C'], '49': ['Thickness [50 dBZ top - 0C]', 'km', 'H50Above0C'], '50': ['Thickness [60 dBZ top - (-20C)]', 'km', 'H60AboveM20C'], '51': ['Thickness [60 dBZ top - 0C]', 'km', 'H60Above0C'], '52': ['Isothermal Reflectivity at 0C', 'dBZ', 'Reflectivity_0C'], '53': ['Isothermal Reflectivity at -5C', 'dBZ', 'Reflectivity_-5C'], '54': ['Isothermal Reflectivity at -10C', 'dBZ', 'Reflectivity_-10C'], '55': ['Isothermal Reflectivity at -15C', 'dBZ', 'Reflectivity_-15C'], '56': ['Isothermal Reflectivity at -20C', 'dBZ', 'Reflectivity_-20C'], '57': ['ReflectivityAtLowestAltitude resampled from 1 to 5km resolution', 'dBZ', 'ReflectivityAtLowestAltitude5km'], '58': ['Non Quality Controlled Reflectivity At Lowest Altitude', 'dBZ', 'MergedReflectivityAtLowestAltitude']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_6", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_6", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Surface Precipitation Type (Convective, Stratiform, Tropical, Hail, Snow)', 'flag', 'PrecipFlag'], '1': ['Radar Precipitation Rate', 'mm/hr', 'PrecipRate'], '2': ['Radar precipitation accumulation 1-hour', 'mm', 'RadarOnly_QPE_01H'], '3': ['Radar precipitation accumulation 3-hour', 'mm', 'RadarOnly_QPE_03H'], '4': ['Radar precipitation accumulation 6-hour', 'mm', 'RadarOnly_QPE_06H'], '5': ['Radar precipitation accumulation 12-hour', 'mm', 'RadarOnly_QPE_12H'], '6': ['Radar precipitation accumulation 24-hour', 'mm', 'RadarOnly_QPE_24H'], '7': ['Radar precipitation accumulation 48-hour', 'mm', 'RadarOnly_QPE_48H'], '8': ['Radar precipitation accumulation 72-hour', 'mm', 'RadarOnly_QPE_72H'], '30': ['Multi-sensor accumulation 1-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_01H_Pass1'], '31': ['Multi-sensor accumulation 3-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_03H_Pass1'], '32': ['Multi-sensor accumulation 6-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_06H_Pass1'], '33': ['Multi-sensor accumulation 12-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_12H_Pass1'], '34': ['Multi-sensor accumulation 24-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_24H_Pass1'], '35': ['Multi-sensor accumulation 48-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_48H_Pass1'], '36': ['Multi-sensor accumulation 72-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_72H_Pass1'], '37': ['Multi-sensor accumulation 1-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_01H_Pass2'], '38': ['Multi-sensor accumulation 3-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_03H_Pass2'], '39': ['Multi-sensor accumulation 6-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_06H_Pass2'], '40': ['Multi-sensor accumulation 12-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_12H_Pass2'], '41': ['Multi-sensor accumulation 24-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_24H_Pass2'], '42': ['Multi-sensor accumulation 48-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_48H_Pass2'], '43': ['Multi-sensor accumulation 72-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_72H_Pass2'], '44': ['Method IDs for blended single and dual-pol derived precip rates ', 'flag', 'SyntheticPrecipRateID'], '45': ['Radar precipitation accumulation 15-minute', 'mm', 'RadarOnly_QPE_15M'], '46': ['Radar precipitation accumulation since 12Z', 'mm', 'RadarOnly_QPE_Since12Z']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_7", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_7", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Model Surface temperature', 'C', 'Model_SurfaceTemp'], '1': ['Model Surface wet bulb temperature', 'C', 'Model_WetBulbTemp'], '2': ['Probability of warm rain', '%', 'WarmRainProbability'], '3': ['Model Freezing Level Height', 'm MSL', 'Model_0degC_Height'], '4': ['Brightband Top Height', 'm AGL', 'BrightBandTopHeight'], '5': ['Brightband Bottom Height', 'm AGL', 'BrightBandBottomHeight']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_8", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_8", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Radar Quality Index', 'non-dim', 'RadarQualityIndex'], '1': ['Gauge Influence Index for 1-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_01H_Pass1'], '2': ['Gauge Influence Index for 3-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_03H_Pass1'], '3': ['Gauge Influence Index for 6-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_06H_Pass1'], '4': ['Gauge Influence Index for 12-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_12H_Pass1'], '5': ['Gauge Influence Index for 24-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_24H_Pass1'], '6': ['Gauge Influence Index for 48-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_48H_Pass1'], '7': ['Gauge Influence Index for 72-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_72H_Pass1'], '8': ['Seamless Hybrid Scan Reflectivity with VPR correction', 'dBZ', 'SeamlessHSR'], '9': ['Height of Seamless Hybrid Scan Reflectivity', 'km AGL', 'SeamlessHSRHeight'], '10': ['Radar 1-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_01H'], '11': ['Radar 3-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_03H'], '12': ['Radar 6-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_06H'], '13': ['Radar 12-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_12H'], '14': ['Radar 24-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_24H'], '15': ['Radar 48-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_48H'], '16': ['Radar 72-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_72H'], '17': ['Gauge Influence Index for 1-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_01H_Pass2'], '18': ['Gauge Influence Index for 3-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_03H_Pass2'], '19': ['Gauge Influence Index for 6-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_06H_Pass2'], '20': ['Gauge Influence Index for 12-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_12H_Pass2'], '21': ['Gauge Influence Index for 24-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_24H_Pass2'], '22': ['Gauge Influence Index for 48-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_48H_Pass2'], '23': ['Gauge Influence Index for 72-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_72H_Pass2']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_9", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_9", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['3D Reflectivty Mosaic - 33 CAPPIS (500-19000m)', 'dBZ', 'MergedReflectivityQC'], '3': ['3D RhoHV Mosaic - 33 CAPPIS (500-19000m)', 'non-dim', 'MergedRhoHV'], '4': ['3D Zdr Mosaic - 33 CAPPIS (500-19000m)', 'dB', 'MergedZdr']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_10", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_10", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Composite Reflectivity Mosaic (optimal method) resampled from 1 to 5km', 'dBZ', 'MergedReflectivityQCComposite5km'], '1': ['Height of Composite Reflectivity Mosaic (optimal method)', 'm MSL', 'HeightCompositeReflectivity'], '2': ['Low-Level Composite Reflectivity Mosaic (0-4km)', 'dBZ', 'LowLevelCompositeReflectivity'], '3': ['Height of Low-Level Composite Reflectivity Mosaic (0-4km)', 'm MSL', 'HeightLowLevelCompositeReflectivity'], '4': ['Layer Composite Reflectivity Mosaic 0-24kft (low altitude)', 'dBZ', 'LayerCompositeReflectivity_Low'], '5': ['Layer Composite Reflectivity Mosaic 24-60 kft (highest altitude)', 'dBZ', 'LayerCompositeReflectivity_High'], '6': ['Layer Composite Reflectivity Mosaic 33-60 kft (super high altitude)', 'dBZ', 'LayerCompositeReflectivity_Super'], '7': ['Composite Reflectivity Hourly Maximum', 'dBZ', 'CREF_1HR_MAX'], '9': ['Layer Composite Reflectivity Mosaic (2-4.5km) (for ANC)', 'dBZ', 'LayerCompositeReflectivity_ANC'], '10': ['Base Reflectivity Hourly Maximum', 'dBZ', 'BREF_1HR_MAX']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_11", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_11", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Base Reflectivity Mosaic (optimal method)', 'dBZ', 'MergedBaseReflectivityQC'], '1': ['Raw Composite Reflectivity Mosaic (max ref)', 'dBZ', 'MergedReflectivityComposite'], '2': ['Composite Reflectivity Mosaic (max ref)', 'dBZ', 'MergedReflectivityQComposite'], '3': ['Raw Base Reflectivity Mosaic (optimal method)', 'dBZ', 'MergedBaseReflectivity']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_12", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_12", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['FLASH QPE-CREST Unit Streamflow', 'm^3/s/km^2', 'FLASH_CREST_MAXUNITSTREAMFLOW'], '1': ['FLASH QPE-CREST Streamflow', 'm^3/s', 'FLASH_CREST_MAXSTREAMFLOW'], '2': ['FLASH QPE-CREST Soil Saturation', '%', 'FLASH_CREST_MAXSOILSAT'], '4': ['FLASH QPE-SAC Unit Streamflow', 'm^3/s/km^2', 'FLASH_SAC_MAXUNITSTREAMFLOW'], '5': ['FLASH QPE-SAC Streamflow', 'm^3/s', 'FLASH_SAC_MAXSTREAMFLOW'], '6': ['FLASH QPE-SAC Soil Saturation', '%', 'FLASH_SAC_MAXSOILSAT'], '14': ['FLASH QPE Average Recurrence Interval 30-min', 'years', 'FLASH_QPE_ARI30M'], '15': ['FLASH QPE Average Recurrence Interval 01H', 'years', 'FLASH_QPE_ARI01H'], '16': ['FLASH QPE Average Recurrence Interval 03H', 'years', 'FLASH_QPE_ARI03H'], '17': ['FLASH QPE Average Recurrence Interval 06H', 'years', 'FLASH_QPE_ARI06H'], '18': ['FLASH QPE Average Recurrence Interval 12H', 'years', 'FLASH_QPE_ARI12H'], '19': ['FLASH QPE Average Recurrence Interval 24H', 'years', 'FLASH_QPE_ARI24H'], '20': ['FLASH QPE Average Recurrence Interval Maximum', 'years', 'FLASH_QPE_ARIMAX'], '26': ['FLASH QPE-to-FFG Ratio 01H', 'non-dim', 'FLASH_QPE_FFG01H'], '27': ['FLASH QPE-to-FFG Ratio 03H', 'non-dim', 'FLASH_QPE_FFG03H'], '28': ['FLASH QPE-to-FFG Ratio 06H', 'non-dim', 'FLASH_QPE_FFG06H'], '29': ['FLASH QPE-to-FFG Ratio Maximum', 'non-dim', 'FLASH_QPE_FFGMAX'], '39': ['FLASH QPE-Hydrophobic Unit Streamflow', 'm^3/s/km^2', 'FLASH_HP_MAXUNITSTREAMFLOW'], '40': ['FLASH QPE-Hydrophobic Streamflow', 'm^3/s', 'FLASH_HP_MAXSTREAMFLOW']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_13", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_13", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Likelihood of convection over the next 01H', 'non-dim', 'ANC_ConvectiveLikelihood'], '1': ['01H reflectivity forecast', 'dBZ', 'ANC_FinalForecast']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_14", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_14", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Level III High Resolution Enhanced Echo Top mosaic', 'kft', 'LVL3_HREET'], '1': ['Level III High Resouion VIL mosaic', 'kg/m^2', 'LVL3_HighResVIL']}"}, {"fullname": "grib2io.tables.section4_discipline3", "modulename": "grib2io.tables.section4_discipline3", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_0", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Scaled Radiance', 'Numeric', 'SRAD'], '1': ['Scaled Albedo', 'Numeric', 'SALBEDO'], '2': ['Scaled Brightness Temperature', 'Numeric', 'SBTMP'], '3': ['Scaled Precipitable Water', 'Numeric', 'SPWAT'], '4': ['Scaled Lifted Index', 'Numeric', 'SLFTI'], '5': ['Scaled Cloud Top Pressure', 'Numeric', 'SCTPRES'], '6': ['Scaled Skin Temperature', 'Numeric', 'SSTMP'], '7': ['Cloud Mask', 'See Table 4.217', 'CLOUDM'], '8': ['Pixel scene type', 'See Table 4.218', 'PIXST'], '9': ['Fire Detection Indicator', 'See Table 4.223', 'FIREDI'], '10-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_1", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Estimated Precipitation', 'kg m-2', 'ESTP'], '1': ['Instantaneous Rain Rate', 'kg m-2 s-1', 'IRRATE'], '2': ['Cloud Top Height', 'm', 'CTOPH'], '3': ['Cloud Top Height Quality Indicator', 'Code table 4.219', 'CTOPHQI'], '4': ['Estimated u-Component of Wind', 'm s-1', 'ESTUGRD'], '5': ['Estimated v-Component of Wind', 'm s-1', 'ESTVGRD'], '6': ['Number Of Pixels Used', 'Numeric', 'NPIXU'], '7': ['Solar Zenith Angle', '\u00b0', 'SOLZA'], '8': ['Relative Azimuth Angle', '\u00b0', 'RAZA'], '9': ['Reflectance in 0.6 Micron Channel', '%', 'RFL06'], '10': ['Reflectance in 0.8 Micron Channel', '%', 'RFL08'], '11': ['Reflectance in 1.6 Micron Channel', '%', 'RFL16'], '12': ['Reflectance in 3.9 Micron Channel', '%', 'RFL39'], '13': ['Atmospheric Divergence', 's-1', 'ATMDIV'], '14': ['Cloudy Brightness Temperature', 'K', 'CBTMP'], '15': ['Clear Sky Brightness Temperature', 'K', 'CSBTMP'], '16': ['Cloudy Radiance (with respect to wave number)', 'W m-1 sr-1', 'CLDRAD'], '17': ['Clear Sky Radiance (with respect to wave number)', 'W m-1 sr-1', 'CSKYRAD'], '18': ['Reserved', 'unknown', 'unknown'], '19': ['Wind Speed', 'm s-1', 'WINDS'], '20': ['Aerosol Optical Thickness at 0.635 \u00b5m', 'unknown', 'AOT06'], '21': ['Aerosol Optical Thickness at 0.810 \u00b5m', 'unknown', 'AOT08'], '22': ['Aerosol Optical Thickness at 1.640 \u00b5m', 'unknown', 'AOT16'], '23': ['Angstrom Coefficient', 'unknown', 'ANGCOE'], '24-26': ['Reserved', 'unknown', 'unknown'], '27': ['Bidirectional Reflecance Factor', 'Numeric', 'BRFLF'], '28': ['Brightness Temperature', 'K', 'SPBRT'], '29': ['Scaled Radiance', 'Numeric', 'SCRAD'], '30': ['Reflectance in 0.4 Micron Channel', '%', 'RFL04'], '31': ['Cloudy reflectance', '%', 'CLDREF'], '32': ['Clear reflectance', '%', 'CLRREF'], '33-97': ['Reserved', 'unknown', 'unknown'], '98': ['Correlation coefficient between MPE rain rates for the co-located IR data and the microwave data rain rates', 'Numeric', 'CCMPEMRR'], '99': ['Standard deviation between MPE rain rates for the co-located IR data and the microwave data rain rates', 'Numeric', 'SDMPEMRR'], '100-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Scatterometer Estimated U Wind Component', 'm s-1', 'USCT'], '193': ['Scatterometer Estimated V Wind Component', 'm s-1', 'VSCT'], '194': ['Scatterometer Wind Quality', 'unknown', 'SWQI'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_2", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Clear Sky Probability', '%', 'CSKPROB'], '1': ['Cloud Top Temperature', 'K', 'CTOPTMP'], '2': ['Cloud Top Pressure', 'Pa', 'CTOPRES'], '3': ['Cloud Type', 'See Table 4.218', 'CLDTYPE'], '4': ['Cloud Phase', 'See Table 4.218', 'CLDPHAS'], '5': ['Cloud Optical Depth', 'Numeric', 'CLDODEP'], '6': ['Cloud Particle Effective Radius', 'm', 'CLDPER'], '7': ['Cloud Liquid Water Path', 'kg m-2', 'CLDLWP'], '8': ['Cloud Ice Water Path', 'kg m-2', 'CLDIWP'], '9': ['Cloud Albedo', 'Numeric', 'CLDALB'], '10': ['Cloud Emissivity', 'Numeric', 'CLDEMISS'], '11': ['Effective Absorption Optical Depth Ratio', 'Numeric', 'EAODR'], '12-29': ['Reserved', 'unknown', 'unknown'], '30': ['Measurement cost', 'Numeric', 'MEACST'], '41-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_3", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Probability of Encountering Marginal Visual Flight Rules Conditions', '%', 'PBMVFRC'], '1': ['Probability of Encountering Low Instrument Flight Rules Conditions', '%', 'PBLIFRC'], '2': ['Probability of Encountering Instrument Flight Rules Conditions', '%', 'PBINFRC'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_4", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Volcanic Ash Probability', '%', 'VOLAPROB'], '1': ['Volcanic Ash Cloud Top Temperature', 'K', 'VOLACDTT'], '2': ['Volcanic Ash Cloud Top Pressure', 'Pa', 'VOLACDTP'], '3': ['Volcanic Ash Cloud Top Height', 'm', 'VOLACDTH'], '4': ['Volcanic Ash Cloud Emissity', 'Numeric', 'VOLACDEM'], '5': ['Volcanic Ash Effective Absorption Depth Ratio', 'Numeric', 'VOLAEADR'], '6': ['Volcanic Ash Cloud Optical Depth', 'Numeric', 'VOLACDOD'], '7': ['Volcanic Ash Column Density', 'kg m-2', 'VOLACDEN'], '8': ['Volcanic Ash Particle Effective Radius', 'm', 'VOLAPER'], '9-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_5", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_5", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Interface Sea-Surface Temperature', 'K', 'ISSTMP'], '1': ['Skin Sea-Surface Temperature', 'K', 'SKSSTMP'], '2': ['Sub-Skin Sea-Surface Temperature', 'K', 'SSKSSTMP'], '3': ['Foundation Sea-Surface Temperature', 'K', 'FDNSSTMP'], '4': ['Estimated bias between Sea-Surface Temperature and Standard', 'K', 'EBSSTSTD'], '5': ['Estimated bias Standard Deviation between Sea-Surface Temperature and Standard', 'K', 'EBSDSSTS'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_6", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_6", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Global Solar Irradiance', 'W m-2', 'GSOLIRR'], '1': ['Global Solar Exposure', 'J m-2', 'GSOLEXP'], '2': ['Direct Solar Irradiance', 'W m-2', 'DIRSOLIR'], '3': ['Direct Solar Exposure', 'J m-2', 'DIRSOLEX'], '4': ['Diffuse Solar Irradiance', 'W m-2', 'DIFSOLIR'], '5': ['Diffuse Solar Exposure', 'J m-2', 'DIFSOLEX'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_192", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_192", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Simulated Brightness Temperature for GOES 12, Channel 2', 'K', 'SBT122'], '1': ['Simulated Brightness Temperature for GOES 12, Channel 3', 'K', 'SBT123'], '2': ['Simulated Brightness Temperature for GOES 12, Channel 4', 'K', 'SBT124'], '3': ['Simulated Brightness Temperature for GOES 12, Channel 6', 'K', 'SBT126'], '4': ['Simulated Brightness Counts for GOES 12, Channel 3', 'Byte', 'SBC123'], '5': ['Simulated Brightness Counts for GOES 12, Channel 4', 'Byte', 'SBC124'], '6': ['Simulated Brightness Temperature for GOES 11, Channel 2', 'K', 'SBT112'], '7': ['Simulated Brightness Temperature for GOES 11, Channel 3', 'K', 'SBT113'], '8': ['Simulated Brightness Temperature for GOES 11, Channel 4', 'K', 'SBT114'], '9': ['Simulated Brightness Temperature for GOES 11, Channel 5', 'K', 'SBT115'], '10': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 9', 'K', 'AMSRE9'], '11': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 10', 'K', 'AMSRE10'], '12': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 11', 'K', 'AMSRE11'], '13': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 12', 'K', 'AMSRE12'], '14': ['Simulated Reflectance Factor for ABI GOES-16, Band-1', 'unknown', 'SRFA161'], '15': ['Simulated Reflectance Factor for ABI GOES-16, Band-2', 'unknown', 'SRFA162'], '16': ['Simulated Reflectance Factor for ABI GOES-16, Band-3', 'unknown', 'SRFA163'], '17': ['Simulated Reflectance Factor for ABI GOES-16, Band-4', 'unknown', 'SRFA164'], '18': ['Simulated Reflectance Factor for ABI GOES-16, Band-5', 'unknown', 'SRFA165'], '19': ['Simulated Reflectance Factor for ABI GOES-16, Band-6', 'unknown', 'SRFA166'], '20': ['Simulated Brightness Temperature for ABI GOES-16, Band-7', 'K', 'SBTA167'], '21': ['Simulated Brightness Temperature for ABI GOES-16, Band-8', 'K', 'SBTA168'], '22': ['Simulated Brightness Temperature for ABI GOES-16, Band-9', 'K', 'SBTA169'], '23': ['Simulated Brightness Temperature for ABI GOES-16, Band-10', 'K', 'SBTA1610'], '24': ['Simulated Brightness Temperature for ABI GOES-16, Band-11', 'K', 'SBTA1611'], '25': ['Simulated Brightness Temperature for ABI GOES-16, Band-12', 'K', 'SBTA1612'], '26': ['Simulated Brightness Temperature for ABI GOES-16, Band-13', 'K', 'SBTA1613'], '27': ['Simulated Brightness Temperature for ABI GOES-16, Band-14', 'K', 'SBTA1614'], '28': ['Simulated Brightness Temperature for ABI GOES-16, Band-15', 'K', 'SBTA1615'], '29': ['Simulated Brightness Temperature for ABI GOES-16, Band-16', 'K', 'SBTA1616'], '30': ['Simulated Reflectance Factor for ABI GOES-17, Band-1', 'unknown', 'SRFA171'], '31': ['Simulated Reflectance Factor for ABI GOES-17, Band-2', 'unknown', 'SRFA172'], '32': ['Simulated Reflectance Factor for ABI GOES-17, Band-3', 'unknown', 'SRFA173'], '33': ['Simulated Reflectance Factor for ABI GOES-17, Band-4', 'unknown', 'SRFA174'], '34': ['Simulated Reflectance Factor for ABI GOES-17, Band-5', 'unknown', 'SRFA175'], '35': ['Simulated Reflectance Factor for ABI GOES-17, Band-6', 'unknown', 'SRFA176'], '36': ['Simulated Brightness Temperature for ABI GOES-17, Band-7', 'K', 'SBTA177'], '37': ['Simulated Brightness Temperature for ABI GOES-17, Band-8', 'K', 'SBTA178'], '38': ['Simulated Brightness Temperature for ABI GOES-17, Band-9', 'K', 'SBTA179'], '39': ['Simulated Brightness Temperature for ABI GOES-17, Band-10', 'K', 'SBTA1710'], '40': ['Simulated Brightness Temperature for ABI GOES-17, Band-11', 'K', 'SBTA1711'], '41': ['Simulated Brightness Temperature for ABI GOES-17, Band-12', 'K', 'SBTA1712'], '42': ['Simulated Brightness Temperature for ABI GOES-17, Band-13', 'K', 'SBTA1713'], '43': ['Simulated Brightness Temperature for ABI GOES-17, Band-14', 'K', 'SBTA1714'], '44': ['Simulated Brightness Temperature for ABI GOES-17, Band-15', 'K', 'SBTA1715'], '45': ['Simulated Brightness Temperature for ABI GOES-17, Band-16', 'K', 'SBTA1716'], '46': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-1', 'unknown', 'SRFAGR1'], '47': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-2', 'unknown', 'SRFAGR2'], '48': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-3', 'unknown', 'SRFAGR3'], '49': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-4', 'unknown', 'SRFAGR4'], '50': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-5', 'unknown', 'SRFAGR5'], '51': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-6', 'unknown', 'SRFAGR6'], '52': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-7', 'unknown', 'SBTAGR7'], '53': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-8', 'unknown', 'SBTAGR8'], '54': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-9', 'unknown', 'SBTAGR9'], '55': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-10', 'unknown', 'SBTAGR10'], '56': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-11', 'unknown', 'SBTAGR11'], '57': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-12', 'unknown', 'SBTAGR12'], '58': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-13', 'unknown', 'SBTAGR13'], '59': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-14', 'unknown', 'SBTAGR14'], '60': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-15', 'unknown', 'SBTAGR15'], '61': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-16', 'unknown', 'SBTAGR16'], '62': ['Simulated Brightness Temperature for SSMIS-F17, Channel 15', 'K', 'SSMS1715'], '63': ['Simulated Brightness Temperature for SSMIS-F17, Channel 16', 'K', 'SSMS1716'], '64': ['Simulated Brightness Temperature for SSMIS-F17, Channel 17', 'K', 'SSMS1717'], '65': ['Simulated Brightness Temperature for SSMIS-F17, Channel 18', 'K', 'SSMS1718'], '66': ['Simulated Brightness Temperature for Himawari-8, Band-7', 'K', 'SBTAHI7'], '67': ['Simulated Brightness Temperature for Himawari-8, Band-8', 'K', 'SBTAHI8'], '68': ['Simulated Brightness Temperature for Himawari-8, Band-9', 'K', 'SBTAHI9'], '69': ['Simulated Brightness Temperature for Himawari-8, Band-10', 'K', 'SBTAHI10'], '70': ['Simulated Brightness Temperature for Himawari-8, Band-11', 'K', 'SBTAHI11'], '71': ['Simulated Brightness Temperature for Himawari-8, Band-12', 'K', 'SBTAHI12'], '72': ['Simulated Brightness Temperature for Himawari-8, Band-13', 'K', 'SBTAHI13'], '73': ['Simulated Brightness Temperature for Himawari-8, Band-14', 'K', 'SBTAHI14'], '74': ['Simulated Brightness Temperature for Himawari-8, Band-15', 'K', 'SBTAHI15'], '75': ['Simulated Brightness Temperature for Himawari-8, Band-16', 'K', 'SBTAHI16'], '76': ['Simulated Brightness Temperature for ABI GOES-18, Band-7', 'K', 'SBTA187'], '77': ['Simulated Brightness Temperature for ABI GOES-18, Band-8', 'K', 'SBTA188'], '78': ['Simulated Brightness Temperature for ABI GOES-18, Band-9', 'K', 'SBTA189'], '79': ['Simulated Brightness Temperature for ABI GOES-18, Band-10', 'K', 'SBTA1810'], '80': ['Simulated Brightness Temperature for ABI GOES-18, Band-11', 'K', 'SBTA1811'], '81': ['Simulated Brightness Temperature for ABI GOES-18, Band-12', 'K', 'SBTA1812'], '82': ['Simulated Brightness Temperature for ABI GOES-18, Band-13', 'K', 'SBTA1813'], '83': ['Simulated Brightness Temperature for ABI GOES-18, Band-14', 'K', 'SBTA1814'], '84': ['Simulated Brightness Temperature for ABI GOES-18, Band-15', 'K', 'SBTA1815'], '85': ['Simulated Brightness Temperature for ABI GOES-18, Band-16', 'K', 'SBTA1816'], '86-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4", "modulename": "grib2io.tables.section4_discipline4", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_0", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Temperature', 'K', 'TMPSWP'], '1': ['Electron Temperature', 'K', 'ELECTMP'], '2': ['Proton Temperature', 'K', 'PROTTMP'], '3': ['Ion Temperature', 'K', 'IONTMP'], '4': ['Parallel Temperature', 'K', 'PRATMP'], '5': ['Perpendicular Temperature', 'K', 'PRPTMP'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_1", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Velocity Magnitude (Speed)', 'm s-1', 'SPEED'], '1': ['1st Vector Component of Velocity (Coordinate system dependent)', 'm s-1', 'VEL1'], '2': ['2nd Vector Component of Velocity (Coordinate system dependent)', 'm s-1', 'VEL2'], '3': ['3rd Vector Component of Velocity (Coordinate system dependent)', 'm s-1', 'VEL3'], '4-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_2", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Particle Number Density', 'm-3', 'PLSMDEN'], '1': ['Electron Density', 'm-3', 'ELCDEN'], '2': ['Proton Density', 'm-3', 'PROTDEN'], '3': ['Ion Density', 'm-3', 'IONDEN'], '4': ['Vertical Total Electron Content', 'TECU', 'VTEC'], '5': ['HF Absorption Frequency', 'Hz', 'ABSFRQ'], '6': ['HF Absorption', 'dB', 'ABSRB'], '7': ['Spread F', 'm', 'SPRDF'], '8': ['hF', 'm', 'HPRIMF'], '9': ['Critical Frequency', 'Hz', 'CRTFRQ'], '10': ['Maximal Usable Frequency (MUF)', 'Hz', 'MAXUFZ'], '11': ['Peak Height (hm)', 'm', 'PEAKH'], '12': ['Peak Density', 'm-3', 'PEAKDEN'], '13': ['Equivalent Slab Thickness (tau)', 'km', 'EQSLABT'], '14-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_3", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Magnetic Field Magnitude', 'T', 'BTOT'], '1': ['1st Vector Component of Magnetic Field', 'T', 'BVEC1'], '2': ['2nd Vector Component of Magnetic Field', 'T', 'BVEC2'], '3': ['3rd Vector Component of Magnetic Field', 'T', 'BVEC3'], '4': ['Electric Field Magnitude', 'V m-1', 'ETOT'], '5': ['1st Vector Component of Electric Field', 'V m-1', 'EVEC1'], '6': ['2nd Vector Component of Electric Field', 'V m-1', 'EVEC2'], '7': ['3rd Vector Component of Electric Field', 'V m-1', 'EVEC3'], '8-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_4", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Proton Flux (Differential)', '(m2 s sr eV)-1', 'DIFPFLUX'], '1': ['Proton Flux (Integral)', '(m2 s sr)-1', 'INTPFLUX'], '2': ['Electron Flux (Differential)', '(m2 s sr eV)-1', 'DIFEFLUX'], '3': ['Electron Flux (Integral)', '(m2 s sr)-1', 'INTEFLUX'], '4': ['Heavy Ion Flux (Differential)', '(m2 s sr eV / nuc)-1', 'DIFIFLUX'], '5': ['Heavy Ion Flux (iIntegral)', '(m2 s sr)-1', 'INTIFLUX'], '6': ['Cosmic Ray Neutron Flux', 'h-1', 'NTRNFLUX'], '7-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_5", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_5", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Amplitude', 'rad', 'AMPL'], '1': ['Phase', 'rad', 'PHASE'], '2': ['Frequency', 'Hz', 'FREQ'], '3': ['Wavelength', 'm', 'WAVELGTH'], '4-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_6", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_6", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Integrated Solar Irradiance', 'W m-2', 'TSI'], '1': ['Solar X-ray Flux (XRS Long)', 'W m-2', 'XLONG'], '2': ['Solar X-ray Flux (XRS Short)', 'W m-2', 'XSHRT'], '3': ['Solar EUV Irradiance', 'W m-2', 'EUVIRR'], '4': ['Solar Spectral Irradiance', 'W m-2 nm-1', 'SPECIRR'], '5': ['F10.7', 'W m-2 Hz-1', 'F107'], '6': ['Solar Radio Emissions', 'W m-2 Hz-1', 'SOLRF'], '7-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_7", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_7", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Limb Intensity', 'J m-2 s-1', 'LMBINT'], '1': ['Disk Intensity', 'J m-2 s-1', 'DSKINT'], '2': ['Disk Intensity Day', 'J m-2 s-1', 'DSKDAY'], '3': ['Disk Intensity Night', 'J m-2 s-1', 'DSKNGT'], '4-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_8", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_8", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['X-Ray Radiance', 'W sr-1 m-2', 'XRAYRAD'], '1': ['EUV Radiance', 'W sr-1 m-2', 'EUVRAD'], '2': ['H-Alpha Radiance', 'W sr-1 m-2', 'HARAD'], '3': ['White Light Radiance', 'W sr-1 m-2', 'WHTRAD'], '4': ['CaII-K Radiance', 'W sr-1 m-2', 'CAIIRAD'], '5': ['White Light Coronagraph Radiance', 'W sr-1 m-2', 'WHTCOR'], '6': ['Heliospheric Radiance', 'W sr-1 m-2', 'HELCOR'], '7': ['Thematic Mask', 'Numeric', 'MASK'], '8': ['Solar Induced Chlorophyll Fluorscence', 'W sr-1 m-2', 'SICFL'], '9-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_9", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_9", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Pedersen Conductivity', 'S m-1', 'SIGPED'], '1': ['Hall Conductivity', 'S m-1', 'SIGHAL'], '2': ['Parallel Conductivity', 'S m-1', 'SIGPAR'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section5", "modulename": "grib2io.tables.section5", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section5.table_5_0", "modulename": "grib2io.tables.section5", "qualname": "table_5_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Grid Point Data - Simple Packing (see Template 5.0)', '1': 'Matrix Value at Grid Point - Simple Packing (see Template 5.1)', '2': 'Grid Point Data - Complex Packing (see Template 5.2)', '3': 'Grid Point Data - Complex Packing and Spatial Differencing (see Template 5.3)', '4': 'Grid Point Data - IEEE Floating Point Data (see Template 5.4)', '5-39': 'Reserved', '40': 'Grid point data - JPEG 2000 code stream format (see Template 5.40)', '41': 'Grid point data - Portable Network Graphics (PNG) (see Template 5.41)', '42': 'Grid point data - CCSDS recommended lossless compression (see Template 5.42)', '43-49': 'Reserved', '50': 'Spectral Data - Simple Packing (see Template 5.50)', '51': 'Spectral Data - Complex Packing (see Template 5.51)', '52': 'Reserved', '53': 'Spectral data for limited area models - complex packing (see Template 5.53)', '54-60': 'Reserved', '61': 'Grid Point Data - Simple Packing With Logarithm Pre-processing (see Template 5.61)', '62-199': 'Reserved', '200': 'Run Length Packing With Level Values (see Template 5.200)', '201-49151': 'Reserved', '49152-65534': 'Reserved for Local Use', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_1", "modulename": "grib2io.tables.section5", "qualname": "table_5_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Floating Point', '1': 'Integer', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_2", "modulename": "grib2io.tables.section5", "qualname": "table_5_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Explicit Coordinate Values Set', '1': 'Linear Coordinates f(1) = C1 f(n) = f(n-1) + C2', '2-10': 'Reserved', '11': 'Geometric Coordinates f(1) = C1 f(n) = C2 x f(n-1)', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_3", "modulename": "grib2io.tables.section5", "qualname": "table_5_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Direction Degrees True', '2': 'Frequency (s-1)', '3': 'Radial Number (2pi/lamda) (m-1)', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_4", "modulename": "grib2io.tables.section5", "qualname": "table_5_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Row by Row Splitting', '1': 'General Group Splitting', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_5", "modulename": "grib2io.tables.section5", "qualname": "table_5_5", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No explicit missing values included within the data values', '1': 'Primary missing values included within the data values', '2': 'Primary and secondary missing values included within the data values', '3-191': 'Reserved', '192-254': 'Reserved for Local Use'}"}, {"fullname": "grib2io.tables.section5.table_5_6", "modulename": "grib2io.tables.section5", "qualname": "table_5_6", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'First-Order Spatial Differencing', '2': 'Second-Order Spatial Differencing', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_7", "modulename": "grib2io.tables.section5", "qualname": "table_5_7", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'IEEE 32-bit (I=4 in Section 7)', '2': 'IEEE 64-bit (I=8 in Section 7)', '3': 'IEEE 128-bit (I=16 in Section 7)', '4-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_40", "modulename": "grib2io.tables.section5", "qualname": "table_5_40", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Lossless', '1': 'Lossy', '2-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section6", "modulename": "grib2io.tables.section6", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section6.table_6_0", "modulename": "grib2io.tables.section6", "qualname": "table_6_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'A bit map applies to this product and is specified in this section.', '1-253': 'A bit map pre-determined by the orginating/generating center applies to this product and is not specified in this section.', '254': 'A bit map previously defined in the same GRIB2 message applies to this product.', '255': 'A bit map does not apply to this product.'}"}, {"fullname": "grib2io.templates", "modulename": "grib2io.templates", "kind": "module", "doc": "

GRIB2 section templates classes and metadata descriptor classes

\n"}, {"fullname": "grib2io.templates.Grib2Metadata", "modulename": "grib2io.templates", "qualname": "Grib2Metadata", "kind": "class", "doc": "

Class to hold GRIB2 metadata both as numeric code value as stored in\nGRIB2 and its plain langauge definition.

\n\n

Attributes

\n\n

value : int\n GRIB2 metadata integer code value.

\n\n

table : str, optional\n GRIB2 table to lookup the value. Default is None.

\n\n

definition : str\n Plain language description of numeric metadata.

\n"}, {"fullname": "grib2io.templates.Grib2Metadata.__init__", "modulename": "grib2io.templates", "qualname": "Grib2Metadata.__init__", "kind": "function", "doc": "

\n", "signature": "(value, table=None)"}, {"fullname": "grib2io.templates.Grib2Metadata.value", "modulename": "grib2io.templates", "qualname": "Grib2Metadata.value", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.templates.Grib2Metadata.table", "modulename": "grib2io.templates", "qualname": "Grib2Metadata.table", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.templates.Grib2Metadata.definition", "modulename": "grib2io.templates", "qualname": "Grib2Metadata.definition", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.templates.Grib2Metadata.show_table", "modulename": "grib2io.templates", "qualname": "Grib2Metadata.show_table", "kind": "function", "doc": "

Provide the table related to this metadata.

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "grib2io.templates.IndicatorSection", "modulename": "grib2io.templates", "qualname": "IndicatorSection", "kind": "class", "doc": "

GRIB2 Indicator Section (0)

\n"}, {"fullname": "grib2io.templates.Discipline", "modulename": "grib2io.templates", "qualname": "Discipline", "kind": "class", "doc": "

Discipline

\n"}, {"fullname": "grib2io.templates.IdentificationSection", "modulename": "grib2io.templates", "qualname": "IdentificationSection", "kind": "class", "doc": "

GRIB2 Section 1, Identification Section

\n"}, {"fullname": "grib2io.templates.OriginatingCenter", "modulename": "grib2io.templates", "qualname": "OriginatingCenter", "kind": "class", "doc": "

Originating Center

\n"}, {"fullname": "grib2io.templates.OriginatingSubCenter", "modulename": "grib2io.templates", "qualname": "OriginatingSubCenter", "kind": "class", "doc": "

Originating SubCenter

\n"}, {"fullname": "grib2io.templates.MasterTableInfo", "modulename": "grib2io.templates", "qualname": "MasterTableInfo", "kind": "class", "doc": "

GRIB2 Master Table Version

\n"}, {"fullname": "grib2io.templates.LocalTableInfo", "modulename": "grib2io.templates", "qualname": "LocalTableInfo", "kind": "class", "doc": "

GRIB2 Local Tables Version Number

\n"}, {"fullname": "grib2io.templates.SignificanceOfReferenceTime", "modulename": "grib2io.templates", "qualname": "SignificanceOfReferenceTime", "kind": "class", "doc": "

Significance of Reference Time

\n"}, {"fullname": "grib2io.templates.Year", "modulename": "grib2io.templates", "qualname": "Year", "kind": "class", "doc": "

Year of reference time

\n"}, {"fullname": "grib2io.templates.Month", "modulename": "grib2io.templates", "qualname": "Month", "kind": "class", "doc": "

Month of reference time

\n"}, {"fullname": "grib2io.templates.Day", "modulename": "grib2io.templates", "qualname": "Day", "kind": "class", "doc": "

Day of reference time

\n"}, {"fullname": "grib2io.templates.Hour", "modulename": "grib2io.templates", "qualname": "Hour", "kind": "class", "doc": "

Hour of reference time

\n"}, {"fullname": "grib2io.templates.Minute", "modulename": "grib2io.templates", "qualname": "Minute", "kind": "class", "doc": "

Minute of reference time

\n"}, {"fullname": "grib2io.templates.Second", "modulename": "grib2io.templates", "qualname": "Second", "kind": "class", "doc": "

Second of reference time

\n"}, {"fullname": "grib2io.templates.RefDate", "modulename": "grib2io.templates", "qualname": "RefDate", "kind": "class", "doc": "

Reference Date. NOTE: This is a datetime.datetime object.

\n"}, {"fullname": "grib2io.templates.ProductionStatus", "modulename": "grib2io.templates", "qualname": "ProductionStatus", "kind": "class", "doc": "

Production Status of Processed Data

\n"}, {"fullname": "grib2io.templates.TypeOfData", "modulename": "grib2io.templates", "qualname": "TypeOfData", "kind": "class", "doc": "

Type of Processed Data in this GRIB message

\n"}, {"fullname": "grib2io.templates.GridDefinitionSection", "modulename": "grib2io.templates", "qualname": "GridDefinitionSection", "kind": "class", "doc": "

GRIB2 Section 3, Grid Definition Section

\n"}, {"fullname": "grib2io.templates.SourceOfGridDefinition", "modulename": "grib2io.templates", "qualname": "SourceOfGridDefinition", "kind": "class", "doc": "

Source of Grid Definition

\n"}, {"fullname": "grib2io.templates.NumberOfDataPoints", "modulename": "grib2io.templates", "qualname": "NumberOfDataPoints", "kind": "class", "doc": "

Number of Data Points

\n"}, {"fullname": "grib2io.templates.InterpretationOfListOfNumbers", "modulename": "grib2io.templates", "qualname": "InterpretationOfListOfNumbers", "kind": "class", "doc": "

Interpretation of List of Numbers

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplateNumber", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplateNumber", "kind": "class", "doc": "

Grid Definition Template Number

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate", "kind": "class", "doc": "

Grid definition template

\n"}, {"fullname": "grib2io.templates.EarthParams", "modulename": "grib2io.templates", "qualname": "EarthParams", "kind": "class", "doc": "

Metadata about the shape of the Earth

\n"}, {"fullname": "grib2io.templates.DxSign", "modulename": "grib2io.templates", "qualname": "DxSign", "kind": "class", "doc": "

Sign of Grid Length in X-Direction

\n"}, {"fullname": "grib2io.templates.DySign", "modulename": "grib2io.templates", "qualname": "DySign", "kind": "class", "doc": "

Sign of Grid Length in Y-Direction

\n"}, {"fullname": "grib2io.templates.LLScaleFactor", "modulename": "grib2io.templates", "qualname": "LLScaleFactor", "kind": "class", "doc": "

Scale Factor for Lats/Lons

\n"}, {"fullname": "grib2io.templates.LLDivisor", "modulename": "grib2io.templates", "qualname": "LLDivisor", "kind": "class", "doc": "

Divisor Value for scaling Lats/Lons

\n"}, {"fullname": "grib2io.templates.XYDivisor", "modulename": "grib2io.templates", "qualname": "XYDivisor", "kind": "class", "doc": "

Divisor Value for scaling grid lengths

\n"}, {"fullname": "grib2io.templates.ShapeOfEarth", "modulename": "grib2io.templates", "qualname": "ShapeOfEarth", "kind": "class", "doc": "

Shape of the Reference System

\n"}, {"fullname": "grib2io.templates.EarthShape", "modulename": "grib2io.templates", "qualname": "EarthShape", "kind": "class", "doc": "

Description of the shape of the Earth

\n"}, {"fullname": "grib2io.templates.EarthRadius", "modulename": "grib2io.templates", "qualname": "EarthRadius", "kind": "class", "doc": "

Radius of the Earth (Assumes \"spherical\")

\n"}, {"fullname": "grib2io.templates.EarthMajorAxis", "modulename": "grib2io.templates", "qualname": "EarthMajorAxis", "kind": "class", "doc": "

Major Axis of the Earth (Assumes \"oblate spheroid\" or \"ellipsoid\")

\n"}, {"fullname": "grib2io.templates.EarthMinorAxis", "modulename": "grib2io.templates", "qualname": "EarthMinorAxis", "kind": "class", "doc": "

Minor Axis of the Earth (Assumes \"oblate spheroid\" or \"ellipsoid\")

\n"}, {"fullname": "grib2io.templates.Nx", "modulename": "grib2io.templates", "qualname": "Nx", "kind": "class", "doc": "

Number of grid points in the X-direction (generally East-West)

\n"}, {"fullname": "grib2io.templates.Ny", "modulename": "grib2io.templates", "qualname": "Ny", "kind": "class", "doc": "

Number of grid points in the Y-direction (generally North-South)

\n"}, {"fullname": "grib2io.templates.ScanModeFlags", "modulename": "grib2io.templates", "qualname": "ScanModeFlags", "kind": "class", "doc": "

Scanning Mode

\n"}, {"fullname": "grib2io.templates.ResolutionAndComponentFlags", "modulename": "grib2io.templates", "qualname": "ResolutionAndComponentFlags", "kind": "class", "doc": "

Resolution and Component Flags

\n"}, {"fullname": "grib2io.templates.LatitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "LatitudeFirstGridpoint", "kind": "class", "doc": "

Latitude of first gridpoint

\n"}, {"fullname": "grib2io.templates.LongitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "LongitudeFirstGridpoint", "kind": "class", "doc": "

Longitude of first gridpoint

\n"}, {"fullname": "grib2io.templates.LatitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "LatitudeLastGridpoint", "kind": "class", "doc": "

Latitude of last gridpoint

\n"}, {"fullname": "grib2io.templates.LongitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "LongitudeLastGridpoint", "kind": "class", "doc": "

Longitude of last gridpoint

\n"}, {"fullname": "grib2io.templates.LatitudeCenterGridpoint", "modulename": "grib2io.templates", "qualname": "LatitudeCenterGridpoint", "kind": "class", "doc": "

Latitude of center gridpoint

\n"}, {"fullname": "grib2io.templates.LongitudeCenterGridpoint", "modulename": "grib2io.templates", "qualname": "LongitudeCenterGridpoint", "kind": "class", "doc": "

Longitude of center gridpoint

\n"}, {"fullname": "grib2io.templates.GridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridlengthXDirection", "kind": "class", "doc": "

Grid lenth in the X-Direction

\n"}, {"fullname": "grib2io.templates.GridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridlengthYDirection", "kind": "class", "doc": "

Grid lenth in the Y-Direction

\n"}, {"fullname": "grib2io.templates.NumberOfParallels", "modulename": "grib2io.templates", "qualname": "NumberOfParallels", "kind": "class", "doc": "

Number of parallels between a pole and the equator

\n"}, {"fullname": "grib2io.templates.LatitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "LatitudeSouthernPole", "kind": "class", "doc": "

Latitude of the Southern Pole for a Rotated Lat/Lon Grid

\n"}, {"fullname": "grib2io.templates.LongitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "LongitudeSouthernPole", "kind": "class", "doc": "

Longitude of the Southern Pole for a Rotated Lat/Lon Grid

\n"}, {"fullname": "grib2io.templates.AnglePoleRotation", "modulename": "grib2io.templates", "qualname": "AnglePoleRotation", "kind": "class", "doc": "

Angle of Pole Rotation for a Rotated Lat/Lon Grid

\n"}, {"fullname": "grib2io.templates.LatitudeTrueScale", "modulename": "grib2io.templates", "qualname": "LatitudeTrueScale", "kind": "class", "doc": "

Latitude at which grid lengths are specified

\n"}, {"fullname": "grib2io.templates.GridOrientation", "modulename": "grib2io.templates", "qualname": "GridOrientation", "kind": "class", "doc": "

Longitude at which the grid is oriented

\n"}, {"fullname": "grib2io.templates.ProjectionCenterFlag", "modulename": "grib2io.templates", "qualname": "ProjectionCenterFlag", "kind": "class", "doc": "

Projection Center

\n"}, {"fullname": "grib2io.templates.StandardLatitude1", "modulename": "grib2io.templates", "qualname": "StandardLatitude1", "kind": "class", "doc": "

First Standard Latitude (from the pole at which the secant cone cuts the sphere)

\n"}, {"fullname": "grib2io.templates.StandardLatitude2", "modulename": "grib2io.templates", "qualname": "StandardLatitude2", "kind": "class", "doc": "

Second Standard Latitude (from the pole at which the secant cone cuts the sphere)

\n"}, {"fullname": "grib2io.templates.SpectralFunctionParameters", "modulename": "grib2io.templates", "qualname": "SpectralFunctionParameters", "kind": "class", "doc": "

Spectral Function Parameters

\n"}, {"fullname": "grib2io.templates.ProjParameters", "modulename": "grib2io.templates", "qualname": "ProjParameters", "kind": "class", "doc": "

PROJ Parameters to define the reference system

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate0", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate0", "kind": "class", "doc": "

Grid Definition Template 0

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate0.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate0.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate0.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate0.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate0.latitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate0.latitudeLastGridpoint", "kind": "variable", "doc": "

Latitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate0.longitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate0.longitudeLastGridpoint", "kind": "variable", "doc": "

Longitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate0.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate0.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate0.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate0.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1", "kind": "class", "doc": "

Grid Definition Template 1

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.latitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.latitudeLastGridpoint", "kind": "variable", "doc": "

Latitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.longitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.longitudeLastGridpoint", "kind": "variable", "doc": "

Longitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.latitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.latitudeSouthernPole", "kind": "variable", "doc": "

Latitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.longitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.longitudeSouthernPole", "kind": "variable", "doc": "

Longitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.anglePoleRotation", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.anglePoleRotation", "kind": "variable", "doc": "

Angle of Pole Rotation for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10", "kind": "class", "doc": "

Grid Definition Template 10

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.latitudeTrueScale", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.latitudeTrueScale", "kind": "variable", "doc": "

Latitude at which grid lengths are specified

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.latitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.latitudeLastGridpoint", "kind": "variable", "doc": "

Latitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.longitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.longitudeLastGridpoint", "kind": "variable", "doc": "

Longitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.gridOrientation", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.gridOrientation", "kind": "variable", "doc": "

Longitude at which the grid is oriented

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.projParameters", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.projParameters", "kind": "variable", "doc": "

PROJ Parameters to define the reference system

\n", "annotation": ": dict"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20", "kind": "class", "doc": "

Grid Definition Template 20

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.latitudeTrueScale", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.latitudeTrueScale", "kind": "variable", "doc": "

Latitude at which grid lengths are specified

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.gridOrientation", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.gridOrientation", "kind": "variable", "doc": "

Longitude at which the grid is oriented

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.projectionCenterFlag", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.projectionCenterFlag", "kind": "variable", "doc": "

Projection Center

\n", "annotation": ": list"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.projParameters", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.projParameters", "kind": "variable", "doc": "

PROJ Parameters to define the reference system

\n", "annotation": ": dict"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30", "kind": "class", "doc": "

Grid Definition Template 30

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.latitudeTrueScale", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.latitudeTrueScale", "kind": "variable", "doc": "

Latitude at which grid lengths are specified

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.gridOrientation", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.gridOrientation", "kind": "variable", "doc": "

Longitude at which the grid is oriented

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.projectionCenterFlag", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.projectionCenterFlag", "kind": "variable", "doc": "

Projection Center

\n", "annotation": ": list"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.standardLatitude1", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.standardLatitude1", "kind": "variable", "doc": "

First Standard Latitude (from the pole at which the secant cone cuts the sphere)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.standardLatitude2", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.standardLatitude2", "kind": "variable", "doc": "

Second Standard Latitude (from the pole at which the secant cone cuts the sphere)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.latitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.latitudeSouthernPole", "kind": "variable", "doc": "

Latitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.longitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.longitudeSouthernPole", "kind": "variable", "doc": "

Longitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.projParameters", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.projParameters", "kind": "variable", "doc": "

PROJ Parameters to define the reference system

\n", "annotation": ": dict"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31", "kind": "class", "doc": "

Grid Definition Template 31

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.latitudeTrueScale", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.latitudeTrueScale", "kind": "variable", "doc": "

Latitude at which grid lengths are specified

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.gridOrientation", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.gridOrientation", "kind": "variable", "doc": "

Longitude at which the grid is oriented

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.projectionCenterFlag", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.projectionCenterFlag", "kind": "variable", "doc": "

Projection Center

\n", "annotation": ": list"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.standardLatitude1", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.standardLatitude1", "kind": "variable", "doc": "

First Standard Latitude (from the pole at which the secant cone cuts the sphere)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.standardLatitude2", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.standardLatitude2", "kind": "variable", "doc": "

Second Standard Latitude (from the pole at which the secant cone cuts the sphere)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.latitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.latitudeSouthernPole", "kind": "variable", "doc": "

Latitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.longitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.longitudeSouthernPole", "kind": "variable", "doc": "

Longitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40", "kind": "class", "doc": "

Grid Definition Template 40

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40.latitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40.latitudeLastGridpoint", "kind": "variable", "doc": "

Latitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40.longitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40.longitudeLastGridpoint", "kind": "variable", "doc": "

Longitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40.numberOfParallels", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40.numberOfParallels", "kind": "variable", "doc": "

Number of parallels between a pole and the equator

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41", "kind": "class", "doc": "

Grid Definition Template 41

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.latitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.latitudeLastGridpoint", "kind": "variable", "doc": "

Latitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.longitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.longitudeLastGridpoint", "kind": "variable", "doc": "

Longitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.numberOfParallels", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.numberOfParallels", "kind": "variable", "doc": "

Number of parallels between a pole and the equator

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.latitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.latitudeSouthernPole", "kind": "variable", "doc": "

Latitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.longitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.longitudeSouthernPole", "kind": "variable", "doc": "

Longitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.anglePoleRotation", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.anglePoleRotation", "kind": "variable", "doc": "

Angle of Pole Rotation for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate50", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate50", "kind": "class", "doc": "

Grid Definition Template 50

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate50.spectralFunctionParameters", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate50.spectralFunctionParameters", "kind": "variable", "doc": "

Spectral Function Parameters

\n", "annotation": ": list"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32768", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32768", "kind": "class", "doc": "

Grid Definition Template 32768

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32768.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32768.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32768.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32768.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32768.latitudeCenterGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32768.latitudeCenterGridpoint", "kind": "variable", "doc": "

Latitude of center gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32768.longitudeCenterGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32768.longitudeCenterGridpoint", "kind": "variable", "doc": "

Longitude of center gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32768.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32768.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32768.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32768.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769", "kind": "class", "doc": "

Grid Definition Template 32769

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.latitudeCenterGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.latitudeCenterGridpoint", "kind": "variable", "doc": "

Latitude of center gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.longitudeCenterGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.longitudeCenterGridpoint", "kind": "variable", "doc": "

Longitude of center gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.latitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.latitudeLastGridpoint", "kind": "variable", "doc": "

Latitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.longitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.longitudeLastGridpoint", "kind": "variable", "doc": "

Longitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.gdt_class_by_gdtn", "modulename": "grib2io.templates", "qualname": "gdt_class_by_gdtn", "kind": "function", "doc": "

Provides a Grid Definition Template class via the template number

\n\n

Parameters

\n\n

gdtn : int\n Grid definition template number.

\n\n

Returns

\n\n

Grid definition template class object (not an instance).

\n", "signature": "(gdtn):", "funcdef": "def"}, {"fullname": "grib2io.templates.ProductDefinitionTemplateNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplateNumber", "kind": "class", "doc": "

Product Definition Template Number

\n"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate", "kind": "class", "doc": "

Product Definition Template

\n"}, {"fullname": "grib2io.templates.ParameterCategory", "modulename": "grib2io.templates", "qualname": "ParameterCategory", "kind": "class", "doc": "

Parameter Category

\n"}, {"fullname": "grib2io.templates.ParameterNumber", "modulename": "grib2io.templates", "qualname": "ParameterNumber", "kind": "class", "doc": "

Parameter Number

\n"}, {"fullname": "grib2io.templates.VarInfo", "modulename": "grib2io.templates", "qualname": "VarInfo", "kind": "class", "doc": "

Variable Information. These are the metadata returned for a specific variable according\nto discipline, parameter category, and parameter number.

\n"}, {"fullname": "grib2io.templates.FullName", "modulename": "grib2io.templates", "qualname": "FullName", "kind": "class", "doc": "

Full name of the Variable

\n"}, {"fullname": "grib2io.templates.Units", "modulename": "grib2io.templates", "qualname": "Units", "kind": "class", "doc": "

Units of the Variable

\n"}, {"fullname": "grib2io.templates.ShortName", "modulename": "grib2io.templates", "qualname": "ShortName", "kind": "class", "doc": "

Short name of the variable (i.e. the variable abbreviation)

\n"}, {"fullname": "grib2io.templates.TypeOfGeneratingProcess", "modulename": "grib2io.templates", "qualname": "TypeOfGeneratingProcess", "kind": "class", "doc": "

Type of Generating Process

\n"}, {"fullname": "grib2io.templates.BackgroundGeneratingProcessIdentifier", "modulename": "grib2io.templates", "qualname": "BackgroundGeneratingProcessIdentifier", "kind": "class", "doc": "

Background Generating Process Identifier

\n"}, {"fullname": "grib2io.templates.GeneratingProcess", "modulename": "grib2io.templates", "qualname": "GeneratingProcess", "kind": "class", "doc": "

Generating Process

\n"}, {"fullname": "grib2io.templates.HoursAfterDataCutoff", "modulename": "grib2io.templates", "qualname": "HoursAfterDataCutoff", "kind": "class", "doc": "

Hours of observational data cutoff after reference time

\n"}, {"fullname": "grib2io.templates.MinutesAfterDataCutoff", "modulename": "grib2io.templates", "qualname": "MinutesAfterDataCutoff", "kind": "class", "doc": "

Minutes of observational data cutoff after reference time

\n"}, {"fullname": "grib2io.templates.UnitOfForecastTime", "modulename": "grib2io.templates", "qualname": "UnitOfForecastTime", "kind": "class", "doc": "

Units of Forecast Time

\n"}, {"fullname": "grib2io.templates.ValueOfForecastTime", "modulename": "grib2io.templates", "qualname": "ValueOfForecastTime", "kind": "class", "doc": "

Value of forecast time in units defined by UnitofForecastTime

\n"}, {"fullname": "grib2io.templates.LeadTime", "modulename": "grib2io.templates", "qualname": "LeadTime", "kind": "class", "doc": "

Forecast Lead Time. NOTE: This is a datetime.timedelta object.

\n"}, {"fullname": "grib2io.templates.FixedSfc1Info", "modulename": "grib2io.templates", "qualname": "FixedSfc1Info", "kind": "class", "doc": "

Information of the first fixed surface via table 4.5

\n"}, {"fullname": "grib2io.templates.FixedSfc2Info", "modulename": "grib2io.templates", "qualname": "FixedSfc2Info", "kind": "class", "doc": "

Information of the seconds fixed surface via table 4.5

\n"}, {"fullname": "grib2io.templates.TypeOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "TypeOfFirstFixedSurface", "kind": "class", "doc": "

Type of First Fixed Surface

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfFirstFixedSurface", "kind": "class", "doc": "

Scale Factor of First Fixed Surface

\n"}, {"fullname": "grib2io.templates.ScaledValueOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ScaledValueOfFirstFixedSurface", "kind": "class", "doc": "

Scaled Value Of First Fixed Surface

\n"}, {"fullname": "grib2io.templates.UnitOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "UnitOfFirstFixedSurface", "kind": "class", "doc": "

Units of First Fixed Surface

\n"}, {"fullname": "grib2io.templates.ValueOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ValueOfFirstFixedSurface", "kind": "class", "doc": "

Value of First Fixed Surface

\n"}, {"fullname": "grib2io.templates.TypeOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "TypeOfSecondFixedSurface", "kind": "class", "doc": "

Type of Second Fixed Surface

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfSecondFixedSurface", "kind": "class", "doc": "

Scale Factor of Second Fixed Surface

\n"}, {"fullname": "grib2io.templates.ScaledValueOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ScaledValueOfSecondFixedSurface", "kind": "class", "doc": "

Scaled Value Of Second Fixed Surface

\n"}, {"fullname": "grib2io.templates.UnitOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "UnitOfSecondFixedSurface", "kind": "class", "doc": "

Units of Second Fixed Surface

\n"}, {"fullname": "grib2io.templates.ValueOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ValueOfSecondFixedSurface", "kind": "class", "doc": "

Value of Second Fixed Surface

\n"}, {"fullname": "grib2io.templates.Level", "modulename": "grib2io.templates", "qualname": "Level", "kind": "class", "doc": "

Level (same as provided by wgrib2)

\n"}, {"fullname": "grib2io.templates.TypeOfEnsembleForecast", "modulename": "grib2io.templates", "qualname": "TypeOfEnsembleForecast", "kind": "class", "doc": "

Type of Ensemble Forecast

\n"}, {"fullname": "grib2io.templates.PerturbationNumber", "modulename": "grib2io.templates", "qualname": "PerturbationNumber", "kind": "class", "doc": "

Ensemble Perturbation Number

\n"}, {"fullname": "grib2io.templates.NumberOfEnsembleForecasts", "modulename": "grib2io.templates", "qualname": "NumberOfEnsembleForecasts", "kind": "class", "doc": "

Total Number of Ensemble Forecasts

\n"}, {"fullname": "grib2io.templates.TypeOfDerivedForecast", "modulename": "grib2io.templates", "qualname": "TypeOfDerivedForecast", "kind": "class", "doc": "

Type of Derived Forecast

\n"}, {"fullname": "grib2io.templates.ForecastProbabilityNumber", "modulename": "grib2io.templates", "qualname": "ForecastProbabilityNumber", "kind": "class", "doc": "

Forecast Probability Number

\n"}, {"fullname": "grib2io.templates.TotalNumberOfForecastProbabilities", "modulename": "grib2io.templates", "qualname": "TotalNumberOfForecastProbabilities", "kind": "class", "doc": "

Total Number of Forecast Probabilities

\n"}, {"fullname": "grib2io.templates.TypeOfProbability", "modulename": "grib2io.templates", "qualname": "TypeOfProbability", "kind": "class", "doc": "

Type of Probability

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfThresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfThresholdLowerLimit", "kind": "class", "doc": "

Scale Factor of Threshold Lower Limit

\n"}, {"fullname": "grib2io.templates.ScaledValueOfThresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ScaledValueOfThresholdLowerLimit", "kind": "class", "doc": "

Scaled Value of Threshold Lower Limit

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfThresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfThresholdUpperLimit", "kind": "class", "doc": "

Scale Factor of Threshold Upper Limit

\n"}, {"fullname": "grib2io.templates.ScaledValueOfThresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ScaledValueOfThresholdUpperLimit", "kind": "class", "doc": "

Scaled Value of Threshold Upper Limit

\n"}, {"fullname": "grib2io.templates.ThresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ThresholdLowerLimit", "kind": "class", "doc": "

Threshold Lower Limit

\n"}, {"fullname": "grib2io.templates.ThresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ThresholdUpperLimit", "kind": "class", "doc": "

Threshold Upper Limit

\n"}, {"fullname": "grib2io.templates.Threshold", "modulename": "grib2io.templates", "qualname": "Threshold", "kind": "class", "doc": "

Threshold string (same as wgrib2)

\n"}, {"fullname": "grib2io.templates.PercentileValue", "modulename": "grib2io.templates", "qualname": "PercentileValue", "kind": "class", "doc": "

Percentile Value

\n"}, {"fullname": "grib2io.templates.YearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "YearOfEndOfTimePeriod", "kind": "class", "doc": "

Year of End of Forecast Time Period

\n"}, {"fullname": "grib2io.templates.MonthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "MonthOfEndOfTimePeriod", "kind": "class", "doc": "

Month Year of End of Forecast Time Period

\n"}, {"fullname": "grib2io.templates.DayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "DayOfEndOfTimePeriod", "kind": "class", "doc": "

Day Year of End of Forecast Time Period

\n"}, {"fullname": "grib2io.templates.HourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "HourOfEndOfTimePeriod", "kind": "class", "doc": "

Hour Year of End of Forecast Time Period

\n"}, {"fullname": "grib2io.templates.MinuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "MinuteOfEndOfTimePeriod", "kind": "class", "doc": "

Minute Year of End of Forecast Time Period

\n"}, {"fullname": "grib2io.templates.SecondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "SecondOfEndOfTimePeriod", "kind": "class", "doc": "

Second Year of End of Forecast Time Period

\n"}, {"fullname": "grib2io.templates.Duration", "modulename": "grib2io.templates", "qualname": "Duration", "kind": "class", "doc": "

Duration of time period. NOTE: This is a datetime.timedelta object.

\n"}, {"fullname": "grib2io.templates.ValidDate", "modulename": "grib2io.templates", "qualname": "ValidDate", "kind": "class", "doc": "

Valid Date of the forecast. NOTE: This is a datetime.datetime object.

\n"}, {"fullname": "grib2io.templates.NumberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "NumberOfTimeRanges", "kind": "class", "doc": "

Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field

\n"}, {"fullname": "grib2io.templates.NumberOfMissingValues", "modulename": "grib2io.templates", "qualname": "NumberOfMissingValues", "kind": "class", "doc": "

Total number of data values missing in statistical process

\n"}, {"fullname": "grib2io.templates.StatisticalProcess", "modulename": "grib2io.templates", "qualname": "StatisticalProcess", "kind": "class", "doc": "

Statistical Process

\n"}, {"fullname": "grib2io.templates.TypeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "TypeOfTimeIncrementOfStatisticalProcess", "kind": "class", "doc": "

Type of Time Increment of Statistical Process

\n"}, {"fullname": "grib2io.templates.UnitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "UnitOfTimeRangeOfStatisticalProcess", "kind": "class", "doc": "

Unit of Time Range of Statistical Process

\n"}, {"fullname": "grib2io.templates.TimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "TimeRangeOfStatisticalProcess", "kind": "class", "doc": "

Time Range of Statistical Process

\n"}, {"fullname": "grib2io.templates.UnitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "UnitOfTimeRangeOfSuccessiveFields", "kind": "class", "doc": "

Unit of Time Range of Successive Fields

\n"}, {"fullname": "grib2io.templates.TimeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "TimeIncrementOfSuccessiveFields", "kind": "class", "doc": "

Time Increment of Successive Fields

\n"}, {"fullname": "grib2io.templates.TypeOfStatisticalProcessing", "modulename": "grib2io.templates", "qualname": "TypeOfStatisticalProcessing", "kind": "class", "doc": "

Type of Statistical Processing

\n"}, {"fullname": "grib2io.templates.NumberOfDataPointsForSpatialProcessing", "modulename": "grib2io.templates", "qualname": "NumberOfDataPointsForSpatialProcessing", "kind": "class", "doc": "

Number of Data Points for Spatial Processing

\n"}, {"fullname": "grib2io.templates.TypeOfAerosol", "modulename": "grib2io.templates", "qualname": "TypeOfAerosol", "kind": "class", "doc": "

Type of Aerosol

\n"}, {"fullname": "grib2io.templates.TypeOfIntervalForAerosolSize", "modulename": "grib2io.templates", "qualname": "TypeOfIntervalForAerosolSize", "kind": "class", "doc": "

Type of Interval for Aerosol Size

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfFirstSize", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfFirstSize", "kind": "class", "doc": "

Scale Factor of First Size

\n"}, {"fullname": "grib2io.templates.ScaledValueOfFirstSize", "modulename": "grib2io.templates", "qualname": "ScaledValueOfFirstSize", "kind": "class", "doc": "

Scaled Value of First Size

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfSecondSize", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfSecondSize", "kind": "class", "doc": "

Scale Factor of Second Size

\n"}, {"fullname": "grib2io.templates.ScaledValueOfSecondSize", "modulename": "grib2io.templates", "qualname": "ScaledValueOfSecondSize", "kind": "class", "doc": "

Scaled Value of Second Size

\n"}, {"fullname": "grib2io.templates.TypeOfIntervalForAerosolWavelength", "modulename": "grib2io.templates", "qualname": "TypeOfIntervalForAerosolWavelength", "kind": "class", "doc": "

Type of Interval for Aerosol Wavelength

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfFirstWavelength", "kind": "class", "doc": "

Scale Factor of First Wavelength

\n"}, {"fullname": "grib2io.templates.ScaledValueOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ScaledValueOfFirstWavelength", "kind": "class", "doc": "

Scaled Value of First Wavelength

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfSecondWavelength", "kind": "class", "doc": "

Scale Factor of Second Wavelength

\n"}, {"fullname": "grib2io.templates.ScaledValueOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ScaledValueOfSecondWavelength", "kind": "class", "doc": "

Scaled Value of Second Wavelength

\n"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0", "kind": "class", "doc": "

Product Definition Template 0

\n"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.parameterCategory", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.parameterCategory", "kind": "variable", "doc": "

Parameter Category

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.parameterNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.parameterNumber", "kind": "variable", "doc": "

Parameter Number

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.typeOfGeneratingProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.typeOfGeneratingProcess", "kind": "variable", "doc": "

Type of Generating Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.generatingProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.generatingProcess", "kind": "variable", "doc": "

Generating Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.backgroundGeneratingProcessIdentifier", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.backgroundGeneratingProcessIdentifier", "kind": "variable", "doc": "

Background Generating Process Identifier

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.hoursAfterDataCutoff", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.hoursAfterDataCutoff", "kind": "variable", "doc": "

Hours of observational data cutoff after reference time

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.minutesAfterDataCutoff", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.minutesAfterDataCutoff", "kind": "variable", "doc": "

Minutes of observational data cutoff after reference time

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.unitOfForecastTime", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.unitOfForecastTime", "kind": "variable", "doc": "

Units of Forecast Time

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.valueOfForecastTime", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.valueOfForecastTime", "kind": "variable", "doc": "

Value of forecast time in units defined by UnitofForecastTime

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.typeOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.typeOfFirstFixedSurface", "kind": "variable", "doc": "

Type of First Fixed Surface

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaleFactorOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaleFactorOfFirstFixedSurface", "kind": "variable", "doc": "

Scale Factor of First Fixed Surface

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaledValueOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaledValueOfFirstFixedSurface", "kind": "variable", "doc": "

Scaled Value Of First Fixed Surface

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.typeOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.typeOfSecondFixedSurface", "kind": "variable", "doc": "

Type of Second Fixed Surface

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaleFactorOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaleFactorOfSecondFixedSurface", "kind": "variable", "doc": "

Scale Factor of Second Fixed Surface

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaledValueOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaledValueOfSecondFixedSurface", "kind": "variable", "doc": "

Scaled Value Of Second Fixed Surface

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate1", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate1", "kind": "class", "doc": "

Product Definition Template 1

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate1.typeOfEnsembleForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate1.typeOfEnsembleForecast", "kind": "variable", "doc": "

Type of Ensemble Forecast

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate1.perturbationNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate1.perturbationNumber", "kind": "variable", "doc": "

Ensemble Perturbation Number

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate1.numberOfEnsembleForecasts", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate1.numberOfEnsembleForecasts", "kind": "variable", "doc": "

Total Number of Ensemble Forecasts

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate2", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate2", "kind": "class", "doc": "

Product Definition Template 2

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate2.typeOfDerivedForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate2.typeOfDerivedForecast", "kind": "variable", "doc": "

Type of Derived Forecast

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate2.numberOfEnsembleForecasts", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate2.numberOfEnsembleForecasts", "kind": "variable", "doc": "

Total Number of Ensemble Forecasts

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5", "kind": "class", "doc": "

Product Definition Template 5

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.forecastProbabilityNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.forecastProbabilityNumber", "kind": "variable", "doc": "

Forecast Probability Number

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.totalNumberOfForecastProbabilities", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.totalNumberOfForecastProbabilities", "kind": "variable", "doc": "

Total Number of Forecast Probabilities

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.typeOfProbability", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.typeOfProbability", "kind": "variable", "doc": "

Type of Probability

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.scaleFactorOfThresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.scaleFactorOfThresholdLowerLimit", "kind": "variable", "doc": "

Scale Factor of Threshold Lower Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.scaledValueOfThresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.scaledValueOfThresholdLowerLimit", "kind": "variable", "doc": "

Scaled Value of Threshold Lower Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.scaleFactorOfThresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.scaleFactorOfThresholdUpperLimit", "kind": "variable", "doc": "

Scale Factor of Threshold Upper Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.scaledValueOfThresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.scaledValueOfThresholdUpperLimit", "kind": "variable", "doc": "

Scaled Value of Threshold Upper Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.thresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.thresholdLowerLimit", "kind": "variable", "doc": "

Threshold Lower Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.thresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.thresholdUpperLimit", "kind": "variable", "doc": "

Threshold Upper Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.threshold", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.threshold", "kind": "variable", "doc": "

Threshold string (same as wgrib2)

\n", "annotation": ": str"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate6", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate6", "kind": "class", "doc": "

Product Definition Template 6

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate6.percentileValue", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate6.percentileValue", "kind": "variable", "doc": "

Percentile Value

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8", "kind": "class", "doc": "

Product Definition Template 8

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.yearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.yearOfEndOfTimePeriod", "kind": "variable", "doc": "

Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.monthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.monthOfEndOfTimePeriod", "kind": "variable", "doc": "

Month Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.dayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.dayOfEndOfTimePeriod", "kind": "variable", "doc": "

Day Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.hourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.hourOfEndOfTimePeriod", "kind": "variable", "doc": "

Hour Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.minuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.minuteOfEndOfTimePeriod", "kind": "variable", "doc": "

Minute Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.secondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.secondOfEndOfTimePeriod", "kind": "variable", "doc": "

Second Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.numberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.numberOfTimeRanges", "kind": "variable", "doc": "

Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.numberOfMissingValues", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.numberOfMissingValues", "kind": "variable", "doc": "

Total number of data values missing in statistical process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.statisticalProcess", "kind": "variable", "doc": "

Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "

Type of Time Increment of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Unit of Time Range of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Time Range of Statistical Process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "

Unit of Time Range of Successive Fields

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "

Time Increment of Successive Fields

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9", "kind": "class", "doc": "

Product Definition Template 9

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.forecastProbabilityNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.forecastProbabilityNumber", "kind": "variable", "doc": "

Forecast Probability Number

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.totalNumberOfForecastProbabilities", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.totalNumberOfForecastProbabilities", "kind": "variable", "doc": "

Total Number of Forecast Probabilities

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.typeOfProbability", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.typeOfProbability", "kind": "variable", "doc": "

Type of Probability

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.scaleFactorOfThresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.scaleFactorOfThresholdLowerLimit", "kind": "variable", "doc": "

Scale Factor of Threshold Lower Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.scaledValueOfThresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.scaledValueOfThresholdLowerLimit", "kind": "variable", "doc": "

Scaled Value of Threshold Lower Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.scaleFactorOfThresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.scaleFactorOfThresholdUpperLimit", "kind": "variable", "doc": "

Scale Factor of Threshold Upper Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.scaledValueOfThresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.scaledValueOfThresholdUpperLimit", "kind": "variable", "doc": "

Scaled Value of Threshold Upper Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.thresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.thresholdLowerLimit", "kind": "variable", "doc": "

Threshold Lower Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.thresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.thresholdUpperLimit", "kind": "variable", "doc": "

Threshold Upper Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.threshold", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.threshold", "kind": "variable", "doc": "

Threshold string (same as wgrib2)

\n", "annotation": ": str"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.yearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.yearOfEndOfTimePeriod", "kind": "variable", "doc": "

Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.monthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.monthOfEndOfTimePeriod", "kind": "variable", "doc": "

Month Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.dayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.dayOfEndOfTimePeriod", "kind": "variable", "doc": "

Day Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.hourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.hourOfEndOfTimePeriod", "kind": "variable", "doc": "

Hour Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.minuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.minuteOfEndOfTimePeriod", "kind": "variable", "doc": "

Minute Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.secondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.secondOfEndOfTimePeriod", "kind": "variable", "doc": "

Second Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.numberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.numberOfTimeRanges", "kind": "variable", "doc": "

Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.numberOfMissingValues", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.numberOfMissingValues", "kind": "variable", "doc": "

Total number of data values missing in statistical process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.statisticalProcess", "kind": "variable", "doc": "

Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "

Type of Time Increment of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Unit of Time Range of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Time Range of Statistical Process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "

Unit of Time Range of Successive Fields

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "

Time Increment of Successive Fields

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10", "kind": "class", "doc": "

Product Definition Template 10

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.percentileValue", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.percentileValue", "kind": "variable", "doc": "

Percentile Value

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.yearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.yearOfEndOfTimePeriod", "kind": "variable", "doc": "

Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.monthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.monthOfEndOfTimePeriod", "kind": "variable", "doc": "

Month Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.dayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.dayOfEndOfTimePeriod", "kind": "variable", "doc": "

Day Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.hourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.hourOfEndOfTimePeriod", "kind": "variable", "doc": "

Hour Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.minuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.minuteOfEndOfTimePeriod", "kind": "variable", "doc": "

Minute Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.secondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.secondOfEndOfTimePeriod", "kind": "variable", "doc": "

Second Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.numberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.numberOfTimeRanges", "kind": "variable", "doc": "

Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.numberOfMissingValues", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.numberOfMissingValues", "kind": "variable", "doc": "

Total number of data values missing in statistical process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.statisticalProcess", "kind": "variable", "doc": "

Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "

Type of Time Increment of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Unit of Time Range of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Time Range of Statistical Process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "

Unit of Time Range of Successive Fields

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "

Time Increment of Successive Fields

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11", "kind": "class", "doc": "

Product Definition Template 11

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.typeOfEnsembleForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.typeOfEnsembleForecast", "kind": "variable", "doc": "

Type of Ensemble Forecast

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.perturbationNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.perturbationNumber", "kind": "variable", "doc": "

Ensemble Perturbation Number

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.numberOfEnsembleForecasts", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.numberOfEnsembleForecasts", "kind": "variable", "doc": "

Total Number of Ensemble Forecasts

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.yearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.yearOfEndOfTimePeriod", "kind": "variable", "doc": "

Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.monthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.monthOfEndOfTimePeriod", "kind": "variable", "doc": "

Month Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.dayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.dayOfEndOfTimePeriod", "kind": "variable", "doc": "

Day Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.hourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.hourOfEndOfTimePeriod", "kind": "variable", "doc": "

Hour Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.minuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.minuteOfEndOfTimePeriod", "kind": "variable", "doc": "

Minute Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.secondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.secondOfEndOfTimePeriod", "kind": "variable", "doc": "

Second Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.numberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.numberOfTimeRanges", "kind": "variable", "doc": "

Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.numberOfMissingValues", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.numberOfMissingValues", "kind": "variable", "doc": "

Total number of data values missing in statistical process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.statisticalProcess", "kind": "variable", "doc": "

Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "

Type of Time Increment of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Unit of Time Range of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Time Range of Statistical Process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "

Unit of Time Range of Successive Fields

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "

Time Increment of Successive Fields

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12", "kind": "class", "doc": "

Product Definition Template 12

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.typeOfDerivedForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.typeOfDerivedForecast", "kind": "variable", "doc": "

Type of Derived Forecast

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.numberOfEnsembleForecasts", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.numberOfEnsembleForecasts", "kind": "variable", "doc": "

Total Number of Ensemble Forecasts

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.yearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.yearOfEndOfTimePeriod", "kind": "variable", "doc": "

Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.monthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.monthOfEndOfTimePeriod", "kind": "variable", "doc": "

Month Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.dayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.dayOfEndOfTimePeriod", "kind": "variable", "doc": "

Day Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.hourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.hourOfEndOfTimePeriod", "kind": "variable", "doc": "

Hour Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.minuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.minuteOfEndOfTimePeriod", "kind": "variable", "doc": "

Minute Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.secondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.secondOfEndOfTimePeriod", "kind": "variable", "doc": "

Second Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.numberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.numberOfTimeRanges", "kind": "variable", "doc": "

Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.numberOfMissingValues", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.numberOfMissingValues", "kind": "variable", "doc": "

Total number of data values missing in statistical process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.statisticalProcess", "kind": "variable", "doc": "

Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "

Type of Time Increment of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Unit of Time Range of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Time Range of Statistical Process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "

Unit of Time Range of Successive Fields

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "

Time Increment of Successive Fields

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15", "kind": "class", "doc": "

Product Definition Template 15

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15.statisticalProcess", "kind": "variable", "doc": "

Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15.typeOfStatisticalProcessing", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15.typeOfStatisticalProcessing", "kind": "variable", "doc": "

Type of Statistical Processing

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15.numberOfDataPointsForSpatialProcessing", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15.numberOfDataPointsForSpatialProcessing", "kind": "variable", "doc": "

Number of Data Points for Spatial Processing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48", "kind": "class", "doc": "

Product Definition Template 48

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.typeOfAerosol", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.typeOfAerosol", "kind": "variable", "doc": "

Type of Aerosol

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.typeOfIntervalForAerosolSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.typeOfIntervalForAerosolSize", "kind": "variable", "doc": "

Type of Interval for Aerosol Size

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfFirstSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfFirstSize", "kind": "variable", "doc": "

Scale Factor of First Size

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfFirstSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfFirstSize", "kind": "variable", "doc": "

Scaled Value of First Size

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfSecondSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfSecondSize", "kind": "variable", "doc": "

Scale Factor of Second Size

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfSecondSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfSecondSize", "kind": "variable", "doc": "

Scaled Value of Second Size

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.typeOfIntervalForAerosolWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.typeOfIntervalForAerosolWavelength", "kind": "variable", "doc": "

Type of Interval for Aerosol Wavelength

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfFirstWavelength", "kind": "variable", "doc": "

Scale Factor of First Wavelength

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfFirstWavelength", "kind": "variable", "doc": "

Scaled Value of First Wavelength

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfSecondWavelength", "kind": "variable", "doc": "

Scale Factor of Second Wavelength

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfSecondWavelength", "kind": "variable", "doc": "

Scaled Value of Second Wavelength

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.pdt_class_by_pdtn", "modulename": "grib2io.templates", "qualname": "pdt_class_by_pdtn", "kind": "function", "doc": "

Provides a Product Definition Template class via the template number

\n\n

Parameters

\n\n

pdtn : int\n Product definition template number.

\n\n

Returns

\n\n

Product definition template class object (not an instance).

\n", "signature": "(pdtn):", "funcdef": "def"}, {"fullname": "grib2io.templates.NumberOfPackedValues", "modulename": "grib2io.templates", "qualname": "NumberOfPackedValues", "kind": "class", "doc": "

Number of Packed Values

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplateNumber", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplateNumber", "kind": "class", "doc": "

Data Representation Template Number

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate", "kind": "class", "doc": "

Data Representation Template

\n"}, {"fullname": "grib2io.templates.RefValue", "modulename": "grib2io.templates", "qualname": "RefValue", "kind": "class", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n"}, {"fullname": "grib2io.templates.BinScaleFactor", "modulename": "grib2io.templates", "qualname": "BinScaleFactor", "kind": "class", "doc": "

Binary Scale Factor

\n"}, {"fullname": "grib2io.templates.DecScaleFactor", "modulename": "grib2io.templates", "qualname": "DecScaleFactor", "kind": "class", "doc": "

Decimal Scale Factor

\n"}, {"fullname": "grib2io.templates.NBitsPacking", "modulename": "grib2io.templates", "qualname": "NBitsPacking", "kind": "class", "doc": "

Minimum number of bits for packing

\n"}, {"fullname": "grib2io.templates.TypeOfValues", "modulename": "grib2io.templates", "qualname": "TypeOfValues", "kind": "class", "doc": "

Type of Original Field Values

\n"}, {"fullname": "grib2io.templates.GroupSplittingMethod", "modulename": "grib2io.templates", "qualname": "GroupSplittingMethod", "kind": "class", "doc": "

Group Splitting Method

\n"}, {"fullname": "grib2io.templates.TypeOfMissingValueManagement", "modulename": "grib2io.templates", "qualname": "TypeOfMissingValueManagement", "kind": "class", "doc": "

Type of Missing Value Management

\n"}, {"fullname": "grib2io.templates.PriMissingValue", "modulename": "grib2io.templates", "qualname": "PriMissingValue", "kind": "class", "doc": "

Primary Missing Value

\n"}, {"fullname": "grib2io.templates.SecMissingValue", "modulename": "grib2io.templates", "qualname": "SecMissingValue", "kind": "class", "doc": "

Secondary Missing Value

\n"}, {"fullname": "grib2io.templates.NGroups", "modulename": "grib2io.templates", "qualname": "NGroups", "kind": "class", "doc": "

Number of Groups

\n"}, {"fullname": "grib2io.templates.RefGroupWidth", "modulename": "grib2io.templates", "qualname": "RefGroupWidth", "kind": "class", "doc": "

Reference Group Width

\n"}, {"fullname": "grib2io.templates.NBitsGroupWidth", "modulename": "grib2io.templates", "qualname": "NBitsGroupWidth", "kind": "class", "doc": "

Number of bits for Group Width

\n"}, {"fullname": "grib2io.templates.RefGroupLength", "modulename": "grib2io.templates", "qualname": "RefGroupLength", "kind": "class", "doc": "

Reference Group Length

\n"}, {"fullname": "grib2io.templates.GroupLengthIncrement", "modulename": "grib2io.templates", "qualname": "GroupLengthIncrement", "kind": "class", "doc": "

Group Length Increment

\n"}, {"fullname": "grib2io.templates.LengthOfLastGroup", "modulename": "grib2io.templates", "qualname": "LengthOfLastGroup", "kind": "class", "doc": "

Length of Last Group

\n"}, {"fullname": "grib2io.templates.NBitsScaledGroupLength", "modulename": "grib2io.templates", "qualname": "NBitsScaledGroupLength", "kind": "class", "doc": "

Number of bits of Scaled Group Length

\n"}, {"fullname": "grib2io.templates.SpatialDifferenceOrder", "modulename": "grib2io.templates", "qualname": "SpatialDifferenceOrder", "kind": "class", "doc": "

Spatial Difference Order

\n"}, {"fullname": "grib2io.templates.NBytesSpatialDifference", "modulename": "grib2io.templates", "qualname": "NBytesSpatialDifference", "kind": "class", "doc": "

Number of bytes for Spatial Differencing

\n"}, {"fullname": "grib2io.templates.Precision", "modulename": "grib2io.templates", "qualname": "Precision", "kind": "class", "doc": "

Precision for IEEE Floating Point Data

\n"}, {"fullname": "grib2io.templates.TypeOfCompression", "modulename": "grib2io.templates", "qualname": "TypeOfCompression", "kind": "class", "doc": "

Type of Compression

\n"}, {"fullname": "grib2io.templates.TargetCompressionRatio", "modulename": "grib2io.templates", "qualname": "TargetCompressionRatio", "kind": "class", "doc": "

Target Compression Ratio

\n"}, {"fullname": "grib2io.templates.RealOfCoefficient", "modulename": "grib2io.templates", "qualname": "RealOfCoefficient", "kind": "class", "doc": "

Real of Coefficient

\n"}, {"fullname": "grib2io.templates.CompressionOptionsMask", "modulename": "grib2io.templates", "qualname": "CompressionOptionsMask", "kind": "class", "doc": "

Compression Options Mask for AEC/CCSDS

\n"}, {"fullname": "grib2io.templates.BlockSize", "modulename": "grib2io.templates", "qualname": "BlockSize", "kind": "class", "doc": "

Block Size for AEC/CCSDS

\n"}, {"fullname": "grib2io.templates.RefSampleInterval", "modulename": "grib2io.templates", "qualname": "RefSampleInterval", "kind": "class", "doc": "

Reference Sample Interval for AEC/CCSDS

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate0", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate0", "kind": "class", "doc": "

Data Representation Template 0

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate0.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate0.refValue", "kind": "variable", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate0.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate0.binScaleFactor", "kind": "variable", "doc": "

Binary Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate0.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate0.decScaleFactor", "kind": "variable", "doc": "

Decimal Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate0.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate0.nBitsPacking", "kind": "variable", "doc": "

Minimum number of bits for packing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2", "kind": "class", "doc": "

Data Representation Template 2

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.refValue", "kind": "variable", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.binScaleFactor", "kind": "variable", "doc": "

Binary Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.decScaleFactor", "kind": "variable", "doc": "

Decimal Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.nBitsPacking", "kind": "variable", "doc": "

Minimum number of bits for packing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.groupSplittingMethod", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.groupSplittingMethod", "kind": "variable", "doc": "

Group Splitting Method

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.typeOfMissingValueManagement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.typeOfMissingValueManagement", "kind": "variable", "doc": "

Type of Missing Value Management

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.priMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.priMissingValue", "kind": "variable", "doc": "

Primary Missing Value

\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.secMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.secMissingValue", "kind": "variable", "doc": "

Secondary Missing Value

\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.nGroups", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.nGroups", "kind": "variable", "doc": "

Number of Groups

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.refGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.refGroupWidth", "kind": "variable", "doc": "

Reference Group Width

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.nBitsGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.nBitsGroupWidth", "kind": "variable", "doc": "

Number of bits for Group Width

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.refGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.refGroupLength", "kind": "variable", "doc": "

Reference Group Length

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.groupLengthIncrement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.groupLengthIncrement", "kind": "variable", "doc": "

Group Length Increment

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.lengthOfLastGroup", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.lengthOfLastGroup", "kind": "variable", "doc": "

Length of Last Group

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.nBitsScaledGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.nBitsScaledGroupLength", "kind": "variable", "doc": "

Number of bits of Scaled Group Length

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3", "kind": "class", "doc": "

Data Representation Template 3

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.refValue", "kind": "variable", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.binScaleFactor", "kind": "variable", "doc": "

Binary Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.decScaleFactor", "kind": "variable", "doc": "

Decimal Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nBitsPacking", "kind": "variable", "doc": "

Minimum number of bits for packing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.groupSplittingMethod", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.groupSplittingMethod", "kind": "variable", "doc": "

Group Splitting Method

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.typeOfMissingValueManagement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.typeOfMissingValueManagement", "kind": "variable", "doc": "

Type of Missing Value Management

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.priMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.priMissingValue", "kind": "variable", "doc": "

Primary Missing Value

\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.secMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.secMissingValue", "kind": "variable", "doc": "

Secondary Missing Value

\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nGroups", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nGroups", "kind": "variable", "doc": "

Number of Groups

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.refGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.refGroupWidth", "kind": "variable", "doc": "

Reference Group Width

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nBitsGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nBitsGroupWidth", "kind": "variable", "doc": "

Number of bits for Group Width

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.refGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.refGroupLength", "kind": "variable", "doc": "

Reference Group Length

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.groupLengthIncrement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.groupLengthIncrement", "kind": "variable", "doc": "

Group Length Increment

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.lengthOfLastGroup", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.lengthOfLastGroup", "kind": "variable", "doc": "

Length of Last Group

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nBitsScaledGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nBitsScaledGroupLength", "kind": "variable", "doc": "

Number of bits of Scaled Group Length

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.spatialDifferenceOrder", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.spatialDifferenceOrder", "kind": "variable", "doc": "

Spatial Difference Order

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nBytesSpatialDifference", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nBytesSpatialDifference", "kind": "variable", "doc": "

Number of bytes for Spatial Differencing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate4", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate4", "kind": "class", "doc": "

Data Representation Template 4

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate4.precision", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate4.precision", "kind": "variable", "doc": "

Precision for IEEE Floating Point Data

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40", "kind": "class", "doc": "

Data Representation Template 40

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40.refValue", "kind": "variable", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40.binScaleFactor", "kind": "variable", "doc": "

Binary Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40.decScaleFactor", "kind": "variable", "doc": "

Decimal Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40.nBitsPacking", "kind": "variable", "doc": "

Minimum number of bits for packing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40.typeOfCompression", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40.typeOfCompression", "kind": "variable", "doc": "

Type of Compression

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40.targetCompressionRatio", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40.targetCompressionRatio", "kind": "variable", "doc": "

Target Compression Ratio

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41", "kind": "class", "doc": "

Data Representation Template 41

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.refValue", "kind": "variable", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.binScaleFactor", "kind": "variable", "doc": "

Binary Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.decScaleFactor", "kind": "variable", "doc": "

Decimal Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.nBitsPacking", "kind": "variable", "doc": "

Minimum number of bits for packing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42", "kind": "class", "doc": "

Data Representation Template 42

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.refValue", "kind": "variable", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.binScaleFactor", "kind": "variable", "doc": "

Binary Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.decScaleFactor", "kind": "variable", "doc": "

Decimal Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.nBitsPacking", "kind": "variable", "doc": "

Minimum number of bits for packing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.compressionOptionsMask", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.compressionOptionsMask", "kind": "variable", "doc": "

Compression Options Mask for AEC/CCSDS

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.blockSize", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.blockSize", "kind": "variable", "doc": "

Block Size for AEC/CCSDS

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.refSampleInterval", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.refSampleInterval", "kind": "variable", "doc": "

Reference Sample Interval for AEC/CCSDS

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50", "kind": "class", "doc": "

Data Representation Template 50

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.refValue", "kind": "variable", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.binScaleFactor", "kind": "variable", "doc": "

Binary Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.decScaleFactor", "kind": "variable", "doc": "

Decimal Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.nBitsPacking", "kind": "variable", "doc": "

Minimum number of bits for packing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.realOfCoefficient", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.realOfCoefficient", "kind": "variable", "doc": "

Real of Coefficient

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.drt_class_by_drtn", "modulename": "grib2io.templates", "qualname": "drt_class_by_drtn", "kind": "function", "doc": "

Provides a Data Representation Template class via the template number

\n\n

Parameters

\n\n

drtn : int\n Data Representation template number.

\n\n

Returns

\n\n

Data Representation template class object (not an instance).

\n", "signature": "(drtn):", "funcdef": "def"}, {"fullname": "grib2io.utils", "modulename": "grib2io.utils", "kind": "module", "doc": "

Collection of utility functions to assist in the encoding and decoding\nof GRIB2 Messages.

\n"}, {"fullname": "grib2io.utils.int2bin", "modulename": "grib2io.utils", "qualname": "int2bin", "kind": "function", "doc": "

Convert integer to binary string or list

\n\n

Parameters

\n\n

i : int\n Integer value to convert to binary representation.

\n\n

nbits : int, optional\n Number of bits to return. Valid values are 8 [DEFAULT], 16, 32, and 64.

\n\n

output : type\n Return data as str [DEFAULT] or list (list of ints).

\n\n

Returns

\n\n

str or list (list of ints) of binary representation of the integer value.

\n", "signature": "(i, nbits=8, output=<class 'str'>):", "funcdef": "def"}, {"fullname": "grib2io.utils.ieee_float_to_int", "modulename": "grib2io.utils", "qualname": "ieee_float_to_int", "kind": "function", "doc": "

Convert an IEEE 32-bit float to a 32-bit integer.

\n\n

Parameters

\n\n

f : float\n Floating-point value.

\n\n

Returns

\n\n

numpy.int32 representation of an IEEE 32-bit float.

\n", "signature": "(f):", "funcdef": "def"}, {"fullname": "grib2io.utils.ieee_int_to_float", "modulename": "grib2io.utils", "qualname": "ieee_int_to_float", "kind": "function", "doc": "

Convert a 32-bit integer to an IEEE 32-bit float.

\n\n

Parameters

\n\n

i : int\n Integer value.

\n\n

Returns

\n\n

numpy.float32 representation of a 32-bit int.

\n", "signature": "(i):", "funcdef": "def"}, {"fullname": "grib2io.utils.get_leadtime", "modulename": "grib2io.utils", "qualname": "get_leadtime", "kind": "function", "doc": "

Computes lead time as a datetime.timedelta object using information from\nGRIB2 Identification Section (Section 1), Product Definition Template\nNumber, and Product Definition Template (Section 4).

\n\n

Parameters

\n\n

idsec : list or array_like\n Seqeunce containing GRIB2 Identification Section (Section 1).

\n\n

pdtn : int\n GRIB2 Product Definition Template Number

\n\n

pdt : list or array_like\n Seqeunce containing GRIB2 Product Definition Template (Section 4).

\n\n

Returns

\n\n

datetime.timedelta object representing the lead time of the GRIB2 message.

\n", "signature": "(idsec, pdtn, pdt):", "funcdef": "def"}, {"fullname": "grib2io.utils.get_duration", "modulename": "grib2io.utils", "qualname": "get_duration", "kind": "function", "doc": "

Computes a time duration as a datetime.timedelta using information from\nProduct Definition Template Number, and Product Definition Template (Section 4).

\n\n

Parameters

\n\n

pdtn : int\n GRIB2 Product Definition Template Number

\n\n

pdt : list or array_like\n Sequence containing GRIB2 Product Definition Template (Section 4).

\n\n

Returns

\n\n

datetime.timedelta object representing the time duration of the GRIB2 message.

\n", "signature": "(pdtn, pdt):", "funcdef": "def"}, {"fullname": "grib2io.utils.decode_wx_strings", "modulename": "grib2io.utils", "qualname": "decode_wx_strings", "kind": "function", "doc": "

Decode GRIB2 Local Use Section to obtain NDFD/MDL Weather Strings. The\ndecode procedure is defined here.

\n\n

Parameters

\n\n

lus : bytes\n GRIB2 Local Use Section containing NDFD weather strings.

\n\n

Returns

\n\n

dict of NDFD/MDL weather strings. Keys are an integer value that represent \nthe sequential order of the key in the packed local use section and the value is \nthe weather key.

\n", "signature": "(lus):", "funcdef": "def"}, {"fullname": "grib2io.utils.get_wgrib2_prob_string", "modulename": "grib2io.utils", "qualname": "get_wgrib2_prob_string", "kind": "function", "doc": "

Return a wgrib2-formatted string explaining probabilistic\nthreshold informaiton. Logic from wgrib2 source, Prob.c,\nis replicated here.

\n\n

Parameters

\n\n

probtype : int\n Type of probability (Code Table 4.9).

\n\n

sfacl : int\n Scale factor of lower limit.

\n\n

svall : int\n Scaled value of lower limit.

\n\n

sfacu : int\n Scale factor of upper limit.

\n\n

svalu : int\n Scaled value of upper limit.

\n\n

Returns

\n\n

wgrib2-formatted string of probability threshold.

\n", "signature": "(probtype, sfacl, svall, sfacu, svalu):", "funcdef": "def"}, {"fullname": "grib2io.utils.arakawa_rotated_grid", "modulename": "grib2io.utils.arakawa_rotated_grid", "kind": "module", "doc": "

Functions for handling an Arakawa Rotated Lat/Lon Grids.

\n\n

This grid is not often used, but is currently used for the NCEP/RAP using\nGRIB2 Grid Definition Template 32769

\n\n

These functions are adapted from the NCAR Command Language (ncl),\nfrom NcGRIB2.c

\n"}, {"fullname": "grib2io.utils.arakawa_rotated_grid.DEG2RAD", "modulename": "grib2io.utils.arakawa_rotated_grid", "qualname": "DEG2RAD", "kind": "variable", "doc": "

\n", "default_value": "0.017453292519943295"}, {"fullname": "grib2io.utils.arakawa_rotated_grid.RAD2DEG", "modulename": "grib2io.utils.arakawa_rotated_grid", "qualname": "RAD2DEG", "kind": "variable", "doc": "

\n", "default_value": "57.29577951308232"}, {"fullname": "grib2io.utils.arakawa_rotated_grid.ll2rot", "modulename": "grib2io.utils.arakawa_rotated_grid", "qualname": "ll2rot", "kind": "function", "doc": "

Rotate a latitude/longitude pair.

\n\n

Parameters

\n\n

latin: float\n Latitudes in units of degrees.

\n\n

lonin: float\n Longitudes in units of degrees.

\n\n

latpole: float\n Latitude of Pole.

\n\n

lonpole: float\n Longitude of Pole.

\n\n

Returns

\n\n

tlat, tlons\n Returns two floats of rotated latitude and longitude in units of degrees.

\n", "signature": "(latin, lonin, latpole, lonpole):", "funcdef": "def"}, {"fullname": "grib2io.utils.arakawa_rotated_grid.rot2ll", "modulename": "grib2io.utils.arakawa_rotated_grid", "qualname": "rot2ll", "kind": "function", "doc": "

Unrotate a latitude/longitude pair.

\n\n

Parameters

\n\n

latin: float\n Latitudes in units of degrees.

\n\n

lonin: float\n Longitudes in units of degrees.

\n\n

latpole: float\n Latitude of Pole.

\n\n

lonpole: float\n Longitude of Pole.

\n\n

Returns

\n\n

tlat, tlons\n Returns two floats of unrotated latitude and longitude in units of degrees.

\n", "signature": "(latin, lonin, latpole, lonpole):", "funcdef": "def"}, {"fullname": "grib2io.utils.arakawa_rotated_grid.vector_rotation_angles", "modulename": "grib2io.utils.arakawa_rotated_grid", "qualname": "vector_rotation_angles", "kind": "function", "doc": "

Generate a rotation angle value that can be applied to a vector quantity to\nmake it Earth-oriented.

\n\n

Parameters

\n\n

tlat: float\n True latitude in units of degrees.

\n\n

**tlon**:float`\n True longitude in units of degrees..

\n\n

clat: float\n Latitude of center grid point in units of degrees.

\n\n

losp: float\n Longitude of the southern pole in units of degrees.

\n\n

xlat: float\n Latitude of the rotated grid in units of degrees.

\n\n

Returns

\n\n

rot : float\n Rotation angle in units of radians.

\n", "signature": "(tlat, tlon, clat, losp, xlat):", "funcdef": "def"}, {"fullname": "grib2io.utils.gauss_grid", "modulename": "grib2io.utils.gauss_grid", "kind": "module", "doc": "

Tools for working with Gaussian grids.

\n\n

Adopted from: https://gist.github.com/ajdawson/b64d24dfac618b91974f

\n"}, {"fullname": "grib2io.utils.gauss_grid.gaussian_latitudes", "modulename": "grib2io.utils.gauss_grid", "qualname": "gaussian_latitudes", "kind": "function", "doc": "

Construct latitudes for a Gaussian grid.

\n\n

Parameters

\n\n

nlat : int\n The number of latitudes in the Gaussian grid.

\n\n

Returns

\n\n

numpy.ndarray of latitudes (in degrees) with a length of nlat.

\n", "signature": "(nlat):", "funcdef": "def"}, {"fullname": "grib2io.utils.rotated_grid", "modulename": "grib2io.utils.rotated_grid", "kind": "module", "doc": "

Tools for working with Rotated Lat/Lon Grids.

\n"}, {"fullname": "grib2io.utils.rotated_grid.RAD2DEG", "modulename": "grib2io.utils.rotated_grid", "qualname": "RAD2DEG", "kind": "variable", "doc": "

\n", "default_value": "57.29577951308232"}, {"fullname": "grib2io.utils.rotated_grid.DEG2RAD", "modulename": "grib2io.utils.rotated_grid", "qualname": "DEG2RAD", "kind": "variable", "doc": "

\n", "default_value": "0.017453292519943295"}, {"fullname": "grib2io.utils.rotated_grid.rotate", "modulename": "grib2io.utils.rotated_grid", "qualname": "rotate", "kind": "function", "doc": "

Perform grid rotation. This function is adapted from ECMWF's ecCodes library\nvoid function, rotate().

\n\n

https://github.com/ecmwf/eccodes/blob/develop/src/grib_geography.cc

\n\n

Parameters

\n\n

latin : float or array_like\n Latitudes in units of degrees.

\n\n

lonin : float or array_like\n Longitudes in units of degrees.

\n\n

aor : float\n Angle of rotation as defined in GRIB2 GDTN 4.1.

\n\n

splat : float\n Latitude of South Pole as defined in GRIB2 GDTN 4.1.

\n\n

splon : float\n Longitude of South Pole as defined in GRIB2 GDTN 4.1.

\n\n

Returns

\n\n

lats, lons : numpy.ndarray\n numpy.ndarrays with dtype=numpy.float32 of grid latitudes and\n longitudes in units of degrees.

\n", "signature": "(latin, lonin, aor, splat, splon):", "funcdef": "def"}, {"fullname": "grib2io.utils.rotated_grid.unrotate", "modulename": "grib2io.utils.rotated_grid", "qualname": "unrotate", "kind": "function", "doc": "

Perform grid un-rotation. This function is adapted from ECMWF's ecCodes library\nvoid function, unrotate().

\n\n

https://github.com/ecmwf/eccodes/blob/develop/src/grib_geography.cc

\n\n

Parameters

\n\n

latin : float or array_like\n Latitudes in units of degrees.

\n\n

lonin : float or array_like\n Longitudes in units of degrees.

\n\n

aor : float\n Angle of rotation as defined in GRIB2 GDTN 4.1.

\n\n

splat : float\n Latitude of South Pole as defined in GRIB2 GDTN 4.1.

\n\n

splon : float\n Longitude of South Pole as defined in GRIB2 GDTN 4.1.

\n\n

Returns

\n\n

lats, lons : numpy.ndarray\n numpy.ndarrays with dtype=numpy.float32 of grid latitudes and\n longitudes in units of degrees.

\n", "signature": "(latin, lonin, aor, splat, splon):", "funcdef": "def"}]; + /** pdoc search index */const docs = [{"fullname": "grib2io", "modulename": "grib2io", "kind": "module", "doc": "

Introduction

\n\n

grib2io is a Python package that provides an interface to the NCEP GRIB2 C (g2c)\nlibrary for the purpose of reading and writing WMO GRIdded Binary, Edition 2 (GRIB2) messages. A physical file can contain one\nor more GRIB2 messages.

\n\n

GRIB2 file IO is performed directly in Python. The unpacking/packing of GRIB2 integer, coded metadata and data sections is performed\nby the g2c library functions via the g2clib Cython wrapper module. The decoding/encoding of GRIB2 metadata is translated into more\ndescriptive, plain language metadata by looking up the integer code values against the appropriate GRIB2 code tables. These code tables\nare a part of the grib2io module.

\n\n

Tutorials

\n\n

The following Jupyter Notebooks are available as tutorials:

\n\n\n"}, {"fullname": "grib2io.open", "modulename": "grib2io", "qualname": "open", "kind": "class", "doc": "

GRIB2 File Object.

\n\n

A physical file can contain one or more GRIB2 messages. When instantiated, class grib2io.open, \nthe file named filename is opened for reading (mode = 'r') and is automatically indexed.
\nThe indexing procedure reads some of the GRIB2 metadata for all GRIB2 Messages. A GRIB2 Message \nmay contain submessages whereby Section 2-7 can be repeated. grib2io accommodates for this by \nflattening any GRIB2 submessages into multiple individual messages.

\n\n

It is important to note that GRIB2 files from some Meteorological agencies contain other data\nthan GRIB2 messages. GRIB2 files from NWS NDFD and NAVGEM have text-based \"header\" data and\nfiles from ECMWF can contain GRIB1 and GRIB2 messages. grib2io checks for these and safely\nignores them.

\n\n

Attributes

\n\n

mode : str\n File IO mode of opening the file.

\n\n

name : str\n Full path name of the GRIB2 file.

\n\n

messages : int\n Count of GRIB2 Messages contained in the file.

\n\n

current_message : int\n Current position of the file in units of GRIB2 Messages.

\n\n

size : int\n Size of the file in units of bytes.

\n\n

closed : bool\n True is file handle is close; False otherwise.

\n\n

variables : tuple\n Tuple containing a unique list of variable short names (i.e. GRIB2 abbreviation names).

\n\n

levels : tuple\n Tuple containing a unique list of wgrib2-formatted level/layer strings.

\n"}, {"fullname": "grib2io.open.__init__", "modulename": "grib2io", "qualname": "open.__init__", "kind": "function", "doc": "

Initialize GRIB2 File object instance.

\n\n

Parameters

\n\n

filename : str\n File name containing GRIB2 messages.

\n\n

mode : str, optional\n File access mode where r opens the files for reading only; w opens the file for writing.

\n", "signature": "(filename, mode='r', **kwargs)"}, {"fullname": "grib2io.open.mode", "modulename": "grib2io", "qualname": "open.mode", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.name", "modulename": "grib2io", "qualname": "open.name", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.messages", "modulename": "grib2io", "qualname": "open.messages", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.current_message", "modulename": "grib2io", "qualname": "open.current_message", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.size", "modulename": "grib2io", "qualname": "open.size", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.closed", "modulename": "grib2io", "qualname": "open.closed", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.levels", "modulename": "grib2io", "qualname": "open.levels", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.variables", "modulename": "grib2io", "qualname": "open.variables", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.close", "modulename": "grib2io", "qualname": "open.close", "kind": "function", "doc": "

Close the file handle

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "grib2io.open.read", "modulename": "grib2io", "qualname": "open.read", "kind": "function", "doc": "

Read size amount of GRIB2 messages from the current position.

\n\n

If no argument is given, then size is None and all messages are returned from \nthe current position in the file. This read method follows the behavior of \nPython's builtin open() function, but whereas that operates on units of bytes, \nwe operate on units of GRIB2 messages.

\n\n

Parameters

\n\n

size : int, optional\n The number of GRIB2 messages to read from the current position. If no argument is\n give, the default value is None and remainder of the file is read.

\n\n

Returns

\n\n

Grib2Message object when size = 1 or a list of Grib2Messages when size > 1.

\n", "signature": "(self, size=None):", "funcdef": "def"}, {"fullname": "grib2io.open.seek", "modulename": "grib2io", "qualname": "open.seek", "kind": "function", "doc": "

Set the position within the file in units of GRIB2 messages.

\n\n

Parameters

\n\n

pos : int\n The GRIB2 Message number to set the file pointer to.

\n", "signature": "(self, pos):", "funcdef": "def"}, {"fullname": "grib2io.open.tell", "modulename": "grib2io", "qualname": "open.tell", "kind": "function", "doc": "

Returns the position of the file in units of GRIB2 Messages.

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "grib2io.open.select", "modulename": "grib2io", "qualname": "open.select", "kind": "function", "doc": "

Select GRIB2 messages by Grib2Message attributes.

\n", "signature": "(self, **kwargs):", "funcdef": "def"}, {"fullname": "grib2io.open.write", "modulename": "grib2io", "qualname": "open.write", "kind": "function", "doc": "

Writes GRIB2 message object to file.

\n\n

Parameters

\n\n

msg : Grib2Message or sequence of Grib2Messages\n GRIB2 message objects to write to file.

\n", "signature": "(self, msg):", "funcdef": "def"}, {"fullname": "grib2io.open.flush", "modulename": "grib2io", "qualname": "open.flush", "kind": "function", "doc": "

Flush the file object buffer.

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "grib2io.open.levels_by_var", "modulename": "grib2io", "qualname": "open.levels_by_var", "kind": "function", "doc": "

Return a list of level strings given a variable shortName.

\n\n

Parameters

\n\n

name : str\n Grib2Message variable shortName

\n\n

Returns

\n\n

A list of strings of unique level strings.

\n", "signature": "(self, name):", "funcdef": "def"}, {"fullname": "grib2io.open.vars_by_level", "modulename": "grib2io", "qualname": "open.vars_by_level", "kind": "function", "doc": "

Return a list of variable shortName strings given a level.

\n\n

Parameters

\n\n

level : str\n Grib2Message variable level

\n\n

Returns

\n\n

A list of strings of variable shortName strings.

\n", "signature": "(self, level):", "funcdef": "def"}, {"fullname": "grib2io.Grib2Message", "modulename": "grib2io", "qualname": "Grib2Message", "kind": "class", "doc": "

Creation class for a GRIB2 message.

\n"}, {"fullname": "grib2io.show_config", "modulename": "grib2io", "qualname": "show_config", "kind": "function", "doc": "

Print grib2io build configuration information.

\n", "signature": "():", "funcdef": "def"}, {"fullname": "grib2io.interpolate", "modulename": "grib2io", "qualname": "interpolate", "kind": "function", "doc": "

This is the module-level interpolation function that interfaces with the grib2io_interp\ncomponent pakcage that interfaces to the NCEPLIBS-ip library.

\n\n

Parameters

\n\n

a : numpy.ndarray or tuple\n Input data. If a is a numpy.ndarray, scalar interpolation will be\n performed. If a is a tuple, then vector interpolation will be performed\n with the assumption that u = a[0] and v = a[1] and are both numpy.ndarray.

\n\n
These data are expected to be in 2-dimensional form with shape (ny, nx) or\n3-dimensional (:, ny, nx) where the 1st dimension represents another spatial,\ntemporal, or classification (i.e. ensemble members) dimension. The function will\nproperly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into\nthe interpolation subroutines.\n
\n\n

method : int or str\n Interpolate method to use. This can either be an integer or string using\n the following mapping:

\n\n\n\n\n \n \n\n\n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n
Interpolate SchemeInteger Value
'bilinear'0
'bicubic'1
'neighbor'2
'budget'3
'spectral'4
'neighbor-budget'6
\n\n

grid_def_in : grib2io.Grib2GridDef\n Grib2GridDef object for the input grid.

\n\n

grid_def_out : grib2io.Grib2GridDef\n Grib2GridDef object for the output grid or station points.

\n\n

method_options : list of ints, optional\n Interpolation options. See the NCEPLIBS-ip doucmentation for\n more information on how these are used.

\n\n

Returns

\n\n

Returns a numpy.ndarray when scalar interpolation is performed or\na tuple of numpy.ndarrays when vector interpolation is performed\nwith the assumptions that 0-index is the interpolated u and 1-index\nis the interpolated v.

\n", "signature": "(a, method, grid_def_in, grid_def_out, method_options=None):", "funcdef": "def"}, {"fullname": "grib2io.interpolate_to_stations", "modulename": "grib2io", "qualname": "interpolate_to_stations", "kind": "function", "doc": "

This is the module-level interpolation function for interpolation to stations\nthat interfaces with the grib2io_interp component pakcage that interfaces to\nthe NCEPLIBS-ip library. It supports\nscalar and vector interpolation according to the type of object a.

\n\n

Parameters

\n\n

a : numpy.ndarray or tuple\n Input data. If a is a numpy.ndarray, scalar interpolation will be\n performed. If a is a tuple, then vector interpolation will be performed\n with the assumption that u = a[0] and v = a[1] and are both numpy.ndarray.

\n\n
These data are expected to be in 2-dimensional form with shape (ny, nx) or\n3-dimensional (:, ny, nx) where the 1st dimension represents another spatial,\ntemporal, or classification (i.e. ensemble members) dimension. The function will\nproperly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into\nthe interpolation subroutines.\n
\n\n

method : int or str\n Interpolate method to use. This can either be an integer or string using\n the following mapping:

\n\n\n\n\n \n \n\n\n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n
Interpolate SchemeInteger Value
'bilinear'0
'bicubic'1
'neighbor'2
'budget'3
'spectral'4
'neighbor-budget'6
\n\n

grid_def_in : grib2io.Grib2GridDef\n Grib2GridDef object for the input grid.

\n\n

lats : numpy.ndarray or list\n Latitudes for station points

\n\n

lons : numpy.ndarray or list\n Longitudes for station points

\n\n

method_options : list of ints, optional\n Interpolation options. See the NCEPLIBS-ip doucmentation for\n more information on how these are used.

\n\n

Returns

\n\n

Returns a numpy.ndarray when scalar interpolation is performed or\na tuple of numpy.ndarrays when vector interpolation is performed\nwith the assumptions that 0-index is the interpolated u and 1-index\nis the interpolated v.

\n", "signature": "(a, method, grid_def_in, lats, lons, method_options=None):", "funcdef": "def"}, {"fullname": "grib2io.Grib2GridDef", "modulename": "grib2io", "qualname": "Grib2GridDef", "kind": "class", "doc": "

Class to hold GRIB2 Grid Definition Template Number and Template as\nclass attributes. This allows for cleaner looking code when passing these\nmetadata around. For example, the grib2io._Grib2Message.interpolate\nmethod and grib2io.interpolate function accepts these objects.

\n"}, {"fullname": "grib2io.Grib2GridDef.__init__", "modulename": "grib2io", "qualname": "Grib2GridDef.__init__", "kind": "function", "doc": "

\n", "signature": "(gdtn: int, gdt: <built-in function array>)"}, {"fullname": "grib2io.Grib2GridDef.gdtn", "modulename": "grib2io", "qualname": "Grib2GridDef.gdtn", "kind": "variable", "doc": "

\n", "annotation": ": int"}, {"fullname": "grib2io.Grib2GridDef.gdt", "modulename": "grib2io", "qualname": "Grib2GridDef.gdt", "kind": "variable", "doc": "

\n", "annotation": ": <built-in function array>"}, {"fullname": "grib2io.Grib2GridDef.from_section3", "modulename": "grib2io", "qualname": "Grib2GridDef.from_section3", "kind": "function", "doc": "

\n", "signature": "(cls, section3):", "funcdef": "def"}, {"fullname": "grib2io.Grib2GridDef.nx", "modulename": "grib2io", "qualname": "Grib2GridDef.nx", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.Grib2GridDef.ny", "modulename": "grib2io", "qualname": "Grib2GridDef.ny", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.Grib2GridDef.npoints", "modulename": "grib2io", "qualname": "Grib2GridDef.npoints", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.Grib2GridDef.shape", "modulename": "grib2io", "qualname": "Grib2GridDef.shape", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.tables", "modulename": "grib2io.tables", "kind": "module", "doc": "

Functions for retreiving data from NCEP GRIB2 Tables.

\n"}, {"fullname": "grib2io.tables.GRIB2_DISCIPLINES", "modulename": "grib2io.tables", "qualname": "GRIB2_DISCIPLINES", "kind": "variable", "doc": "

\n", "default_value": "[0, 1, 2, 3, 4, 10, 20]"}, {"fullname": "grib2io.tables.get_table", "modulename": "grib2io.tables", "qualname": "get_table", "kind": "function", "doc": "

Return GRIB2 code table as a dictionary.

\n\n

Parameters

\n\n

table : str\n Code table number (e.g. '1.0'). NOTE: Code table '4.1' requires a 3rd value\n representing the product discipline (e.g. '4.1.0').

\n\n

expand : bool, optional\n If True, expand output dictionary where keys are a range.

\n\n

Returns

\n\n

Table as a dict.

\n", "signature": "(table, expand=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_value_from_table", "modulename": "grib2io.tables", "qualname": "get_value_from_table", "kind": "function", "doc": "

Return the definition given a GRIB2 code table.

\n\n

Parameters

\n\n

value : int or str\n Code table value.

\n\n

table : str\n Code table number.

\n\n

expand : bool, optional\n If True, expand output dictionary where keys are a range.

\n\n

Returns

\n\n

Table value or None if not found.

\n", "signature": "(value, table, expand=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_varinfo_from_table", "modulename": "grib2io.tables", "qualname": "get_varinfo_from_table", "kind": "function", "doc": "

Return the GRIB2 variable information given values of discipline,\nparmcat, and parmnum. NOTE: This functions allows for all arguments\nto be converted to a string type if arguments are integer.

\n\n

Parameters

\n\n

discipline : int or str\n Discipline code value of a GRIB2 message.

\n\n

parmcat : int or str\n Parameter Category value of a GRIB2 message.

\n\n

parmnum : int or str\n Parameter Number value of a GRIB2 message.

\n\n

isNDFD : bool, optional\n If True, signals function to try to get variable information from \n the supplemental NDFD tables.

\n\n

Returns

\n\n

list containing variable information. \"Unknown\" is given for item of\ninformation if variable is not found.\n - list[0] = full name\n - list[1] = units\n - list[2] = short name (abbreviated name)

\n", "signature": "(discipline, parmcat, parmnum, isNDFD=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_shortnames", "modulename": "grib2io.tables", "qualname": "get_shortnames", "kind": "function", "doc": "

Returns a list of variable shortNames given GRIB2 discipline, parameter\ncategory, and parameter number. If all 3 args are None, then shortNames\nfrom all disciplines, parameter categories, and numbers will be returned.

\n\n

Parameters

\n\n

discipline : int\n GRIB2 discipline code value.

\n\n

parmcat : int\n GRIB2 parameter category value.

\n\n

parmnum : int or str\n Parameter Number value of a GRIB2 message.

\n\n

Returns

\n\n

list of GRIB2 shortNames.

\n", "signature": "(discipline=None, parmcat=None, parmnum=None, isNDFD=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_metadata_from_shortname", "modulename": "grib2io.tables", "qualname": "get_metadata_from_shortname", "kind": "function", "doc": "

Provide GRIB2 variable metadata attributes given a GRIB2 shortName.

\n\n

Parameters

\n\n

shortname : str\n GRIB2 variable shortName.

\n\n

Returns

\n\n

list of dictionary items where each dictionary items contains the variable\nmetadata key:value pairs. NOTE: Some variable shortNames will exist in multiple\nparameter category/number tables according to the GRIB2 discipline.

\n", "signature": "(shortname):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_wgrib2_level_string", "modulename": "grib2io.tables", "qualname": "get_wgrib2_level_string", "kind": "function", "doc": "

Return a string that describes the level or layer of the GRIB2 message. The\nformat and language of the string is an exact replica of how wgrib2 produces\nthe level/layer string in its inventory output.

\n\n

Contents of wgrib2 source, Level.c,\nwere converted into a Python dictionary and stored in grib2io as table\n'wgrib2_level_string'.

\n\n

Parameters

\n\n

pdtn : int\n GRIB2 Product Definition Template Number

\n\n

pdt : list or array_like\n Sequence containing GRIB2 Product Definition Template (Section 4).

\n\n

Returns

\n\n

wgrib2-formatted level/layer string.

\n", "signature": "(pdtn, pdt):", "funcdef": "def"}, {"fullname": "grib2io.tables.originating_centers", "modulename": "grib2io.tables.originating_centers", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.originating_centers.table_originating_centers", "modulename": "grib2io.tables.originating_centers", "qualname": "table_originating_centers", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Melbourne (WMC)', '2': 'Melbourne (WMC)', '3': 'Melbourne (WMC)', '4': 'Moscow (WMC)', '5': 'Moscow (WMC)', '6': 'Moscow (WMC)', '7': 'US National Weather Service - NCEP (WMC)', '8': 'US National Weather Service - NWSTG (WMC)', '9': 'US National Weather Service - Other (WMC)', '10': 'Cairo (RSMC/RAFC)', '11': 'Cairo (RSMC/RAFC)', '12': 'Dakar (RSMC/RAFC)', '13': 'Dakar (RSMC/RAFC)', '14': 'Nairobi (RSMC/RAFC)', '15': 'Nairobi (RSMC/RAFC)', '16': 'Casablanca (RSMC)', '17': 'Tunis (RSMC)', '18': 'Tunis-Casablanca (RSMC)', '19': 'Tunis-Casablanca (RSMC)', '20': 'Las Palmas (RAFC)', '21': 'Algiers (RSMC)', '22': 'ACMAD', '23': 'Mozambique (NMC)', '24': 'Pretoria (RSMC)', '25': 'La Reunion (RSMC)', '26': 'Khabarovsk (RSMC)', '27': 'Khabarovsk (RSMC)', '28': 'New Delhi (RSMC/RAFC)', '29': 'New Delhi (RSMC/RAFC)', '30': 'Novosibirsk (RSMC)', '31': 'Novosibirsk (RSMC)', '32': 'Tashkent (RSMC)', '33': 'Jeddah (RSMC)', '34': 'Tokyo (RSMC), Japanese Meteorological Agency', '35': 'Tokyo (RSMC), Japanese Meteorological Agency', '36': 'Bankok', '37': 'Ulan Bator', '38': 'Beijing (RSMC)', '39': 'Beijing (RSMC)', '40': 'Seoul', '41': 'Buenos Aires (RSMC/RAFC)', '42': 'Buenos Aires (RSMC/RAFC)', '43': 'Brasilia (RSMC/RAFC)', '44': 'Brasilia (RSMC/RAFC)', '45': 'Santiago', '46': 'Brazilian Space Agency - INPE', '47': 'Columbia (NMC)', '48': 'Ecuador (NMC)', '49': 'Peru (NMC)', '50': 'Venezuela (NMC)', '51': 'Miami (RSMC/RAFC)', '52': 'Miami (RSMC), National Hurricane Center', '53': 'Canadian Meteorological Service - Montreal (RSMC)', '54': 'Canadian Meteorological Service - Montreal (RSMC)', '55': 'San Francisco', '56': 'ARINC Center', '57': 'US Air Force - Air Force Global Weather Center', '58': 'Fleet Numerical Meteorology and Oceanography Center,Monterey,CA,USA', '59': 'The NOAA Forecast Systems Lab, Boulder, CO, USA', '60': 'National Center for Atmospheric Research (NCAR), Boulder, CO', '61': 'Service ARGOS - Landover, MD, USA', '62': 'US Naval Oceanographic Office', '63': 'International Research Institude for Climate and Society', '64': 'Honolulu', '65': 'Darwin (RSMC)', '66': 'Darwin (RSMC)', '67': 'Melbourne (RSMC)', '68': 'Reserved', '69': 'Wellington (RSMC/RAFC)', '70': 'Wellington (RSMC/RAFC)', '71': 'Nadi (RSMC)', '72': 'Singapore', '73': 'Malaysia (NMC)', '74': 'U.K. Met Office - Exeter (RSMC)', '75': 'U.K. Met Office - Exeter (RSMC)', '76': 'Moscow (RSMC/RAFC)', '77': 'Reserved', '78': 'Offenbach (RSMC)', '79': 'Offenbach (RSMC)', '80': 'Rome (RSMC)', '81': 'Rome (RSMC)', '82': 'Norrkoping', '83': 'Norrkoping', '84': 'French Weather Service - Toulouse', '85': 'French Weather Service - Toulouse', '86': 'Helsinki', '87': 'Belgrade', '88': 'Oslo', '89': 'Prague', '90': 'Episkopi', '91': 'Ankara', '92': 'Frankfurt/Main (RAFC)', '93': 'London (WAFC)', '94': 'Copenhagen', '95': 'Rota', '96': 'Athens', '97': 'European Space Agency (ESA)', '98': 'European Center for Medium-Range Weather Forecasts (RSMC)', '99': 'De Bilt, Netherlands', '100': 'Brazzaville', '101': 'Abidjan', '102': 'Libyan Arab Jamahiriya (NMC)', '103': 'Madagascar (NMC)', '104': 'Mauritius (NMC)', '105': 'Niger (NMC)', '106': 'Seychelles (NMC)', '107': 'Uganda (NMC)', '108': 'United Republic of Tanzania (NMC)', '109': 'Zimbabwe (NMC)', '110': 'Hong-Kong', '111': 'Afghanistan (NMC)', '112': 'Bahrain (NMC)', '113': 'Bangladesh (NMC)', '114': 'Bhutan (NMC)', '115': 'Cambodia (NMC)', '116': 'Democratic Peoples Republic of Korea (NMC)', '117': 'Islamic Republic of Iran (NMC)', '118': 'Iraq (NMC)', '119': 'Kazakhstan (NMC)', '120': 'Kuwait (NMC)', '121': 'Kyrgyz Republic (NMC)', '122': 'Lao Peoples Democratic Republic (NMC)', '123': 'Macao, China', '124': 'Maldives (NMC)', '125': 'Myanmar (NMC)', '126': 'Nepal (NMC)', '127': 'Oman (NMC)', '128': 'Pakistan (NMC)', '129': 'Qatar (NMC)', '130': 'Yemen (NMC)', '131': 'Sri Lanka (NMC)', '132': 'Tajikistan (NMC)', '133': 'Turkmenistan (NMC)', '134': 'United Arab Emirates (NMC)', '135': 'Uzbekistan (NMC)', '136': 'Viet Nam (NMC)', '137-139': 'Reserved', '140': 'Bolivia (NMC)', '141': 'Guyana (NMC)', '142': 'Paraguay (NMC)', '143': 'Suriname (NMC)', '144': 'Uruguay (NMC)', '145': 'French Guyana', '146': 'Brazilian Navy Hydrographic Center', '147': 'National Commission on Space Activities - Argentina', '148': 'Brazilian Department of Airspace Control - DECEA', '149': 'Reserved', '150': 'Antigua and Barbuda (NMC)', '151': 'Bahamas (NMC)', '152': 'Barbados (NMC)', '153': 'Belize (NMC)', '154': 'British Caribbean Territories Center', '155': 'San Jose', '156': 'Cuba (NMC)', '157': 'Dominica (NMC)', '158': 'Dominican Republic (NMC)', '159': 'El Salvador (NMC)', '160': 'US NOAA/NESDIS', '161': 'US NOAA Office of Oceanic and Atmospheric Research', '162': 'Guatemala (NMC)', '163': 'Haiti (NMC)', '164': 'Honduras (NMC)', '165': 'Jamaica (NMC)', '166': 'Mexico City', '167': 'Netherlands Antilles and Aruba (NMC)', '168': 'Nicaragua (NMC)', '169': 'Panama (NMC)', '170': 'Saint Lucia (NMC)', '171': 'Trinidad and Tobago (NMC)', '172': 'French Departments in RA IV', '173': 'US National Aeronautics and Space Administration (NASA)', '174': 'Integrated System Data Management/Marine Environmental Data Service (ISDM/MEDS) - Canada', '175': 'Reserved', '176': 'US Cooperative Institude for Meteorological Satellite Studies', '177-189': 'Reserved', '190': 'Cook Islands (NMC)', '191': 'French Polynesia (NMC)', '192': 'Tonga (NMC)', '193': 'Vanuatu (NMC)', '194': 'Brunei (NMC)', '195': 'Indonesia (NMC)', '196': 'Kiribati (NMC)', '197': 'Federated States of Micronesia (NMC)', '198': 'New Caledonia (NMC)', '199': 'Niue', '200': 'Papua New Guinea (NMC)', '201': 'Philippines (NMC)', '202': 'Samoa (NMC)', '203': 'Solomon Islands (NMC)', '204': 'Narional Institude of Water and Atmospheric Research - New Zealand', '205-209': 'Reserved', '210': 'Frascati (ESA/ESRIN)', '211': 'Lanion', '212': 'Lisbon', '213': 'Reykjavik', '214': 'Madrid', '215': 'Zurich', '216': 'Service ARGOS - Toulouse', '217': 'Bratislava', '218': 'Budapest', '219': 'Ljubljana', '220': 'Warsaw', '221': 'Zagreb', '222': 'Albania (NMC)', '223': 'Armenia (NMC)', '224': 'Austria (NMC)', '225': 'Azerbaijan (NMC)', '226': 'Belarus (NMC)', '227': 'Belgium (NMC)', '228': 'Bosnia and Herzegovina (NMC)', '229': 'Bulgaria (NMC)', '230': 'Cyprus (NMC)', '231': 'Estonia (NMC)', '232': 'Georgia (NMC)', '233': 'Dublin', '234': 'Israel (NMC)', '235': 'Jordan (NMC)', '236': 'Latvia (NMC)', '237': 'Lebanon (NMC)', '238': 'Lithuania (NMC)', '239': 'Luxembourg', '240': 'Malta (NMC)', '241': 'Monaco', '242': 'Romania (NMC)', '243': 'Syrian Arab Republic (NMC)', '244': 'The former Yugoslav Republic of Macedonia (NMC)', '245': 'Ukraine (NMC)', '246': 'Republic of Moldova (NMC)', '247': 'Operational Programme for the Exchange of Weather RAdar Information (OPERA) - EUMETNET', '248-249': 'Reserved', '250': 'COnsortium for Small scale MOdelling (COSMO)', '251-253': 'Reserved', '254': 'EUMETSAT Operations Center', '255': 'Missing Value'}"}, {"fullname": "grib2io.tables.originating_centers.table_originating_subcenters", "modulename": "grib2io.tables.originating_centers", "qualname": "table_originating_subcenters", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'NCEP Re-Analysis Project', '2': 'NCEP Ensemble Products', '3': 'NCEP Central Operations', '4': 'Environmental Modeling Center', '5': 'Weather Prediction Center', '6': 'Ocean Prediction Center', '7': 'Climate Prediction Center', '8': 'Aviation Weather Center', '9': 'Storm Prediction Center', '10': 'National Hurricane Center', '11': 'NWS Techniques Development Laboratory', '12': 'NESDIS Office of Research and Applications', '13': 'Federal Aviation Administration', '14': 'NWS Meteorological Development Laboratory', '15': 'North American Regional Reanalysis Project', '16': 'Space Weather Prediction Center', '17': 'ESRL Global Systems Division'}"}, {"fullname": "grib2io.tables.originating_centers.table_generating_process", "modulename": "grib2io.tables.originating_centers", "qualname": "table_generating_process", "kind": "variable", "doc": "

\n", "default_value": "{'0-1': 'Reserved', '2': 'Ultra Violet Index Model', '3': 'NCEP/ARL Transport and Dispersion Model', '4': 'NCEP/ARL Smoke Model', '5': 'Satellite Derived Precipitation and temperatures, from IR (See PDS Octet 41 ... for specific satellite ID)', '6': 'NCEP/ARL Dust Model', '7-9': 'Reserved', '10': 'Global Wind-Wave Forecast Model', '11': 'Global Multi-Grid Wave Model (Static Grids)', '12': 'Probabilistic Storm Surge (P-Surge)', '13': 'Hurricane Multi-Grid Wave Model', '14': 'Extra-tropical Storm Surge Atlantic Domain', '15': 'Nearshore Wave Prediction System (NWPS)', '16': 'Extra-Tropical Storm Surge (ETSS)', '17': 'Extra-tropical Storm Surge Pacific Domain', '18': 'Probabilistic Extra-Tropical Storm Surge (P-ETSS)', '19': 'Reserved', '20': 'Extra-tropical Storm Surge Micronesia Domain', '21': 'Extra-tropical Storm Surge Atlantic Domain (3D)', '22': 'Extra-tropical Storm Surge Pacific Domain (3D)', '23': 'Extra-tropical Storm Surge Micronesia Domain (3D)', '24': 'Reserved', '25': 'Snow Cover Analysis', '26-29': 'Reserved', '30': 'Forecaster generated field', '31': 'Value added post processed field', '32-41': 'Reserved', '42': 'Global Optimum Interpolation Analysis (GOI) from GFS model', '43': 'Global Optimum Interpolation Analysis (GOI) from "Final" run', '44': 'Sea Surface Temperature Analysis', '45': 'Coastal Ocean Circulation Model', '46': 'HYCOM - Global', '47': 'HYCOM - North Pacific basin', '48': 'HYCOM - North Atlantic basin', '49': 'Ozone Analysis from TIROS Observations', '50-51': 'Reserved', '52': 'Ozone Analysis from Nimbus 7 Observations', '53-63': 'Reserved', '64': 'Regional Optimum Interpolation Analysis (ROI)', '65-67': 'Reserved', '68': '80 wave triangular, 18-layer Spectral model from GFS model', '69': '80 wave triangular, 18 layer Spectral model from "Medium Range Forecast" run', '70': 'Quasi-Lagrangian Hurricane Model (QLM)', '71': 'Hurricane Weather Research and Forecasting (HWRF)', '72': 'Hurricane Non-Hydrostatic Multiscale Model on the B Grid (HNMMB)', '73': 'Fog Forecast model - Ocean Prod. Center', '74': 'Gulf of Mexico Wind/Wave', '75': 'Gulf of Alaska Wind/Wave', '76': 'Bias corrected Medium Range Forecast', '77': '126 wave triangular, 28 layer Spectral model from GFS model', '78': '126 wave triangular, 28 layer Spectral model from "Medium Range Forecast" run', '79': 'Reserved', '80': '62 wave triangular, 28 layer Spectral model from "Medium Range Forecast" run', '81': 'Analysis from GFS (Global Forecast System)', '82': 'Analysis from GDAS (Global Data Assimilation System)', '83': 'High Resolution Rapid Refresh (HRRR)', '84': 'MESO NAM Model (currently 12 km)', '85': 'Real Time Ocean Forecast System (RTOFS)', '86': 'Early Hurricane Wind Speed Probability Model', '87': 'CAC Ensemble Forecasts from Spectral (ENSMB)', '88': 'NOAA Wave Watch III (NWW3) Ocean Wave Model', '89': 'Non-hydrostatic Meso Model (NMM) (Currently 8 km)', '90': '62 wave triangular, 28 layer spectral model extension of the "Medium Range Forecast" run', '91': '62 wave triangular, 28 layer spectral model extension of the GFS model', '92': '62 wave triangular, 28 layer spectral model run from the "Medium Range Forecast" final analysis', '93': '62 wave triangular, 28 layer spectral model run from the T62 GDAS analysis of the "Medium Range Forecast" run', '94': 'T170/L42 Global Spectral Model from MRF run', '95': 'T126/L42 Global Spectral Model from MRF run', '96': 'Global Forecast System Model T1534 - Forecast hours 00-384 T574 - Forecast hours 00-192 T190 - Forecast hours 204-384', '97': 'Reserved', '98': 'Climate Forecast System Model -- Atmospheric model (GFS) coupled to a multi level ocean model . Currently GFS spectral model at T62, 64 levels coupled to 40 level MOM3 ocean model.', '99': 'Miscellaneous Test ID', '100': 'Miscellaneous Test ID', '101': 'Conventional Observation Re-Analysis (CORE)', '102-103': 'Reserved', '104': 'National Blend GRIB', '105': 'Rapid Refresh (RAP)', '106': 'Reserved', '107': 'Global Ensemble Forecast System (GEFS)', '108': 'Localized Aviation MOS Program (LAMP)', '109': 'Real Time Mesoscale Analysis (RTMA)', '110': 'NAM Model - 15km version', '111': 'NAM model, generic resolution (Used in SREF processing)', '112': 'WRF-NMM model, generic resolution (Used in various runs) NMM=Nondydrostatic Mesoscale Model (NCEP)', '113': 'Products from NCEP SREF processing', '114': 'NAEFS Products from joined NCEP, CMC global ensembles', '115': 'Downscaled GFS from NAM eXtension', '116': 'WRF-EM model, generic resolution (Used in various runs) EM - Eulerian Mass-core (NCAR - aka Advanced Research WRF)', '117': 'NEMS GFS Aerosol Component', '118': 'UnRestricted Mesoscale Analysis (URMA)', '119': 'WAM (Whole Atmosphere Model)', '120': 'Ice Concentration Analysis', '121': 'Western North Atlantic Regional Wave Model', '122': 'Alaska Waters Regional Wave Model', '123': 'North Atlantic Hurricane Wave Model', '124': 'Eastern North Pacific Regional Wave Model', '125': 'North Pacific Hurricane Wave Model', '126': 'Sea Ice Forecast Model', '127': 'Lake Ice Forecast Model', '128': 'Global Ocean Forecast Model', '129': 'Global Ocean Data Analysis System (GODAS)', '130': 'Merge of fields from the RUC, NAM, and Spectral Model', '131': 'Great Lakes Wave Model', '132': 'High Resolution Ensemble Forecast (HREF)', '133': 'Great Lakes Short Range Wave Model', '134': 'Rapid Refresh Forecast System (RRFS)', '135': 'Hurricane Analysis and Forecast System (HAFS)', '136-139': 'Reserved', '140': 'North American Regional Reanalysis (NARR)', '141': 'Land Data Assimilation and Forecast System', '142-149': 'Reserved', '150': 'NWS River Forecast System (NWSRFS)', '151': 'NWS Flash Flood Guidance System (NWSFFGS)', '152': 'WSR-88D Stage II Precipitation Analysis', '153': 'WSR-88D Stage III Precipitation Analysis', '154-179': 'Reserved', '180': 'Quantitative Precipitation Forecast generated by NCEP', '181': 'River Forecast Center Quantitative Precipitation Forecast mosaic generated by NCEP', '182': 'River Forecast Center Quantitative Precipitation estimate mosaic generated by NCEP', '183': 'NDFD product generated by NCEP/HPC', '184': 'Climatological Calibrated Precipitation Analysis (CCPA)', '185-189': 'Reserved', '190': 'National Convective Weather Diagnostic generated by NCEP/AWC', '191': 'Current Icing Potential automated product genterated by NCEP/AWC', '192': 'Analysis product from NCEP/AWC', '193': 'Forecast product from NCEP/AWC', '194': 'Reserved', '195': 'Climate Data Assimilation System 2 (CDAS2)', '196': 'Climate Data Assimilation System 2 (CDAS2) - used for regeneration runs', '197': 'Climate Data Assimilation System (CDAS)', '198': 'Climate Data Assimilation System (CDAS) - used for regeneration runs', '199': 'Climate Forecast System Reanalysis (CFSR) -- Atmospheric model (GFS) coupled to a multi level ocean, land and seaice model. GFS spectral model at T382, 64 levels coupled to 40 level MOM4 ocean model.', '200': 'CPC Manual Forecast Product', '201': 'CPC Automated Product', '202-209': 'Reserved', '210': 'EPA Air Quality Forecast - Currently North East US domain', '211': 'EPA Air Quality Forecast - Currently Eastern US domain', '212-214': 'Reserved', '215': 'SPC Manual Forecast Product', '216-219': 'Reserved', '220': 'NCEP/OPC automated product', '221-230': 'Reserved for WPC products', '231-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section0", "modulename": "grib2io.tables.section0", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section0.table_0_0", "modulename": "grib2io.tables.section0", "qualname": "table_0_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Meteorological Products', '1': 'Hydrological Products', '2': 'Land Surface Products', '3': 'Satellite Remote Sensing Products', '4': 'Space Weather Products', '5-9': 'Reserved', '10': 'Oceanographic Products', '11-19': 'Reserved', '20': 'Health and Socioeconomic Impacts', '21-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1", "modulename": "grib2io.tables.section1", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section1.table_1_0", "modulename": "grib2io.tables.section1", "qualname": "table_1_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Experimental', '1': 'Version Implemented on 7 November 2001', '2': 'Version Implemented on 4 November 2003', '3': 'Version Implemented on 2 November 2005', '4': 'Version Implemented on 7 November 2007', '5': 'Version Implemented on 4 November 2009', '6': 'Version Implemented on 15 September 2010', '7': 'Version Implemented on 4 May 2011', '8': 'Version Implemented on 8 November 2011', '9': 'Version Implemented on 2 May 2012', '10': 'Version Implemented on 7 November 2012', '11': 'Version Implemented on 8 May 2013', '12': 'Version Implemented on 14 November 2013', '13': 'Version Implemented on 7 May 2014', '14': 'Version Implemented on 5 November 2014', '16': 'Version Implemented on 11 November 2015', '17': 'Version Implemented on 4 May 2016', '18': 'Version Implemented on 2 November 2016', '19': 'Version Implemented on 3 May 2017', '20': 'Version Implemented on 8 November 2017', '21': 'Version Implemented on 2 May 2018', '22': 'Version Implemented on 7 November 2018', '23': 'Version Implemented on 15 May 2019', '24': 'Version Implemented on 06 November 2019', '25': 'Version Implemented on 06 May 2020', '26': 'Version Implemented on 16 November 2020', '27': 'Version Implemented on 16 June 2021', '28': 'Version Implemented on 15 November 2021', '29': 'Version Implemented on 15 May 2022', '30': 'Version Implemented on 15 November 2022', '31': 'Version Implemented on 15 June 2023', '32': 'Version Implemented on 30 November 2023', '33': 'Pre-operational to be implemented by next amendment', '34-254': 'Future Version', '255': 'Missing"'}"}, {"fullname": "grib2io.tables.section1.table_1_1", "modulename": "grib2io.tables.section1", "qualname": "table_1_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Local tables not used. Only table entries and templates from the current master table are valid.', '1-254': 'Number of local table version used.', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_2", "modulename": "grib2io.tables.section1", "qualname": "table_1_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Analysis', '1': 'Start of Forecast', '2': 'Verifying Time of Forecast', '3': 'Observation Time', '4': 'Local Time', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_3", "modulename": "grib2io.tables.section1", "qualname": "table_1_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Operational Products', '1': 'Operational Test Products', '2': 'Research Products', '3': 'Re-Analysis Products', '4': 'THORPEX Interactive Grand Global Ensemble (TIGGE)', '5': 'THORPEX Interactive Grand Global Ensemble (TIGGE) test', '6': 'S2S Operational Products', '7': 'S2S Test Products', '8': 'Uncertainties in ensembles of regional reanalysis project (UERRA)', '9': 'Uncertainties in ensembles of regional reanalysis project (UERRA) Test', '10': 'Copernicus Regional Reanalysis', '11': 'Copernicus Regional Reanalysis Test', '12': 'Destination Earth', '13': 'Destination Earth test', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_4", "modulename": "grib2io.tables.section1", "qualname": "table_1_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Analysis Products', '1': 'Forecast Products', '2': 'Analysis and Forecast Products', '3': 'Control Forecast Products', '4': 'Perturbed Forecast Products', '5': 'Control and Perturbed Forecast Products', '6': 'Processed Satellite Observations', '7': 'Processed Radar Observations', '8': 'Event Probability', '9-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Experimental Products', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_5", "modulename": "grib2io.tables.section1", "qualname": "table_1_5", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Calendar Definition', '1': 'Paleontological Offset', '2': 'Calendar Definition and Paleontological Offset', '3-32767': 'Reserved', '32768-65534': 'Reserved for Local Use', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_6", "modulename": "grib2io.tables.section1", "qualname": "table_1_6", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Gregorian', '1': '360-day', '2': '365-day', '3': 'Proleptic Gregorian', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section3", "modulename": "grib2io.tables.section3", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section3.table_3_0", "modulename": "grib2io.tables.section3", "qualname": "table_3_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Specified in Code Table 3.1', '1': 'Predetermined Grid Definition - Defined by Originating Center', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'A grid definition does not apply to this product.'}"}, {"fullname": "grib2io.tables.section3.table_3_1", "modulename": "grib2io.tables.section3", "qualname": "table_3_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Latitude/Longitude', '1': 'Rotated Latitude/Longitude', '2': 'Stretched Latitude/Longitude', '3': 'Rotated and Stretched Latitude/Longitude', '4': 'Variable Resolution Latitude/longitude ', '5': 'Variable Resolution Rotated Latitude/longitude ', '6-9': 'Reserved', '10': 'Mercator', '11': 'Reserved', '12': 'Transverse Mercator ', '13': 'Mercator with modelling subdomains definition ', '14-19': 'Reserved', '20': 'Polar Stereographic Projection (Can be North or South)', '21-22': 'Reserved', '23': 'Polar Stereographic with modelling subdomains definition ', '24-29': 'Reserved', '30': 'Lambert Conformal (Can be Secant, Tangent, Conical, or Bipolar)', '31': 'Albers Equal Area', '32': 'Reserved', '33': 'Lambert conformal with modelling subdomains definition ', '34-39': 'Reserved', '40': 'Gaussian Latitude/Longitude', '41': 'Rotated Gaussian Latitude/Longitude', '42': 'Stretched Gaussian Latitude/Longitude', '43': 'Rotated and Stretched Gaussian Latitude/Longitude', '44-49': 'Reserved', '50': 'Spherical Harmonic Coefficients', '51': 'Rotated Spherical Harmonic Coefficients', '52': 'Stretched Spherical Harmonic Coefficients', '53': 'Rotated and Stretched Spherical Harmonic Coefficients', '54-59': 'Reserved', '60': 'Cubed-Sphere Gnomonic ', '61': 'Spectral Mercator with modelling subdomains definition ', '62': 'Spectral Polar Stereographic with modelling subdomains definition ', '63': 'Spectral Lambert conformal with modelling subdomains definition ', '64-89': 'Reserved', '90': 'Space View Perspective or Orthographic', '91-99': 'Reserved', '100': 'Triangular Grid Based on an Icosahedron', '101': 'General Unstructured Grid (see Template 3.101)', '102-109': 'Reserved', '110': 'Equatorial Azimuthal Equidistant Projection', '111-119': 'Reserved', '120': 'Azimuth-Range Projection', '121-139': 'Reserved', '140': 'Lambert Azimuthal Equal Area Projection ', '141-149': 'Reserved', '150': 'Hierarchical Equal Area isoLatitude Pixelization grid (HEALPix)', '151-203': 'Reserved', '204': 'Curvilinear Orthogonal Grids', '205-999': 'Reserved', '1000': 'Cross Section Grid with Points Equally Spaced on the Horizontal', '1001-1099': 'Reserved', '1100': 'Hovmoller Diagram with Points Equally Spaced on the Horizontal', '1101-1199': 'Reserved', '1200': 'Time Section Grid', '1201-32767': 'Reserved', '32768-65534': 'Reserved for Local Use', '32768': 'Rotated Latitude/Longitude (Arakawa Staggeblack E-Grid)', '32769': 'Rotated Latitude/Longitude (Arakawa Non-E Staggeblack Grid)', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section3.table_3_2", "modulename": "grib2io.tables.section3", "qualname": "table_3_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Earth assumed spherical with radius = 6,367,470.0 m', '1': 'Earth assumed spherical with radius specified (in m) by data producer', '2': 'Earth assumed oblate spheriod with size as determined by IAU in 1965 (major axis = 6,378,160.0 m, minor axis = 6,356,775.0 m, f = 1/297.0)', '3': 'Earth assumed oblate spheriod with major and minor axes specified (in km) by data producer', '4': 'Earth assumed oblate spheriod as defined in IAG-GRS80 model (major axis = 6,378,137.0 m, minor axis = 6,356,752.314 m, f = 1/298.257222101)', '5': 'Earth assumed represented by WGS84 (as used by ICAO since 1998) (Uses IAG-GRS80 as a basis)', '6': 'Earth assumed spherical with radius = 6,371,229.0 m', '7': 'Earth assumed oblate spheroid with major and minor axes specified (in m) by data producer', '8': 'Earth model assumed spherical with radius 6,371,200 m, but the horizontal datum of the resulting Latitude/Longitude field is the WGS84 reference frame', '9': 'Earth represented by the OSGB 1936 Datum, using the Airy_1830 Spheroid, the Greenwich meridian as 0 Longitude, the Newlyn datum as mean sea level, 0 height.', '10': 'Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992".', '11': 'Sun assumed spherical with radius = 695 990 000 m (Allen, C.W., Astrophysical Quantities, 3rd ed.; Athlone: London, 1976) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W., Coordinate systems for solar image data, Astron. Astrophys. 2006, 449, 791-803)', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section3.table_3_11", "modulename": "grib2io.tables.section3", "qualname": "table_3_11", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'There is no appended list', '1': 'Numbers define number of points corresponding to full coordinate circles (i.e. parallels). Coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition may not be reached in all rows.', '2': 'Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition which are present in each row.', '3': 'Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scale by 106) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the "scanning mode flag" (bit no. 2)', '4-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section3.table_earth_params", "modulename": "grib2io.tables.section3", "qualname": "table_earth_params", "kind": "variable", "doc": "

\n", "default_value": "{'0': {'shape': 'spherical', 'radius': 6367470.0}, '1': {'shape': 'spherical', 'radius': None}, '2': {'shape': 'oblateSpheriod', 'major_axis': 6378160.0, 'minor_axis': 6356775.0, 'flattening': 0.003367003367003367}, '3': {'shape': 'oblateSpheriod', 'major_axis': None, 'minor_axis': None, 'flattening': None}, '4': {'shape': 'oblateSpheriod', 'major_axis': 6378137.0, 'minor_axis': 6356752.314, 'flattening': 0.003352810681182319}, '5': {'shape': 'ellipsoid', 'major_axis': 6378137.0, 'minor_axis': 6356752.3142, 'flattening': 0.003352810681182319}, '6': {'shape': 'spherical', 'radius': 6371229.0}, '7': {'shape': 'oblateSpheriod', 'major_axis': None, 'minor_axis': None, 'flattening': None}, '8': {'shape': 'spherical', 'radius': 6371200.0}, '9': {'shape': 'unknown', 'radius': None}, '10': {'shape': 'unknown', 'radius': None}, '11': {'shape': 'unknown', 'radius': None}, '12': {'shape': 'unknown', 'radius': None}, '13': {'shape': 'unknown', 'radius': None}, '14': {'shape': 'unknown', 'radius': None}, '15': {'shape': 'unknown', 'radius': None}, '16': {'shape': 'unknown', 'radius': None}, '17': {'shape': 'unknown', 'radius': None}, '18': {'shape': 'unknown', 'radius': None}, '19': {'shape': 'unknown', 'radius': None}, '20': {'shape': 'unknown', 'radius': None}, '21': {'shape': 'unknown', 'radius': None}, '22': {'shape': 'unknown', 'radius': None}, '23': {'shape': 'unknown', 'radius': None}, '24': {'shape': 'unknown', 'radius': None}, '25': {'shape': 'unknown', 'radius': None}, '26': {'shape': 'unknown', 'radius': None}, '27': {'shape': 'unknown', 'radius': None}, '28': {'shape': 'unknown', 'radius': None}, '29': {'shape': 'unknown', 'radius': None}, '30': {'shape': 'unknown', 'radius': None}, '31': {'shape': 'unknown', 'radius': None}, '32': {'shape': 'unknown', 'radius': None}, '33': {'shape': 'unknown', 'radius': None}, '34': {'shape': 'unknown', 'radius': None}, '35': {'shape': 'unknown', 'radius': None}, '36': {'shape': 'unknown', 'radius': None}, '37': {'shape': 'unknown', 'radius': None}, '38': {'shape': 'unknown', 'radius': None}, '39': {'shape': 'unknown', 'radius': None}, '40': {'shape': 'unknown', 'radius': None}, '41': {'shape': 'unknown', 'radius': None}, '42': {'shape': 'unknown', 'radius': None}, '43': {'shape': 'unknown', 'radius': None}, '44': {'shape': 'unknown', 'radius': None}, '45': {'shape': 'unknown', 'radius': None}, '46': {'shape': 'unknown', 'radius': None}, '47': {'shape': 'unknown', 'radius': None}, '48': {'shape': 'unknown', 'radius': None}, '49': {'shape': 'unknown', 'radius': None}, '50': {'shape': 'unknown', 'radius': None}, '51': {'shape': 'unknown', 'radius': None}, '52': {'shape': 'unknown', 'radius': None}, '53': {'shape': 'unknown', 'radius': None}, '54': {'shape': 'unknown', 'radius': None}, '55': {'shape': 'unknown', 'radius': None}, '56': {'shape': 'unknown', 'radius': None}, '57': {'shape': 'unknown', 'radius': None}, '58': {'shape': 'unknown', 'radius': None}, '59': {'shape': 'unknown', 'radius': None}, '60': {'shape': 'unknown', 'radius': None}, '61': {'shape': 'unknown', 'radius': None}, '62': {'shape': 'unknown', 'radius': None}, '63': {'shape': 'unknown', 'radius': None}, '64': {'shape': 'unknown', 'radius': None}, '65': {'shape': 'unknown', 'radius': None}, '66': {'shape': 'unknown', 'radius': None}, '67': {'shape': 'unknown', 'radius': None}, '68': {'shape': 'unknown', 'radius': None}, '69': {'shape': 'unknown', 'radius': None}, '70': {'shape': 'unknown', 'radius': None}, '71': {'shape': 'unknown', 'radius': None}, '72': {'shape': 'unknown', 'radius': None}, '73': {'shape': 'unknown', 'radius': None}, '74': {'shape': 'unknown', 'radius': None}, '75': {'shape': 'unknown', 'radius': None}, '76': {'shape': 'unknown', 'radius': None}, '77': {'shape': 'unknown', 'radius': None}, '78': {'shape': 'unknown', 'radius': None}, '79': {'shape': 'unknown', 'radius': None}, '80': {'shape': 'unknown', 'radius': None}, '81': {'shape': 'unknown', 'radius': None}, '82': {'shape': 'unknown', 'radius': None}, '83': {'shape': 'unknown', 'radius': None}, '84': {'shape': 'unknown', 'radius': None}, '85': {'shape': 'unknown', 'radius': None}, '86': {'shape': 'unknown', 'radius': None}, '87': {'shape': 'unknown', 'radius': None}, '88': {'shape': 'unknown', 'radius': None}, '89': {'shape': 'unknown', 'radius': None}, '90': {'shape': 'unknown', 'radius': None}, '91': {'shape': 'unknown', 'radius': None}, '92': {'shape': 'unknown', 'radius': None}, '93': {'shape': 'unknown', 'radius': None}, '94': {'shape': 'unknown', 'radius': None}, '95': {'shape': 'unknown', 'radius': None}, '96': {'shape': 'unknown', 'radius': None}, '97': {'shape': 'unknown', 'radius': None}, '98': {'shape': 'unknown', 'radius': None}, '99': {'shape': 'unknown', 'radius': None}, '100': {'shape': 'unknown', 'radius': None}, '101': {'shape': 'unknown', 'radius': None}, '102': {'shape': 'unknown', 'radius': None}, '103': {'shape': 'unknown', 'radius': None}, '104': {'shape': 'unknown', 'radius': None}, '105': {'shape': 'unknown', 'radius': None}, '106': {'shape': 'unknown', 'radius': None}, '107': {'shape': 'unknown', 'radius': None}, '108': {'shape': 'unknown', 'radius': None}, '109': {'shape': 'unknown', 'radius': None}, '110': {'shape': 'unknown', 'radius': None}, '111': {'shape': 'unknown', 'radius': None}, '112': {'shape': 'unknown', 'radius': None}, '113': {'shape': 'unknown', 'radius': None}, '114': {'shape': 'unknown', 'radius': None}, '115': {'shape': 'unknown', 'radius': None}, '116': {'shape': 'unknown', 'radius': None}, '117': {'shape': 'unknown', 'radius': None}, '118': {'shape': 'unknown', 'radius': None}, '119': {'shape': 'unknown', 'radius': None}, '120': {'shape': 'unknown', 'radius': None}, '121': {'shape': 'unknown', 'radius': None}, '122': {'shape': 'unknown', 'radius': None}, '123': {'shape': 'unknown', 'radius': None}, '124': {'shape': 'unknown', 'radius': None}, '125': {'shape': 'unknown', 'radius': None}, '126': {'shape': 'unknown', 'radius': None}, '127': {'shape': 'unknown', 'radius': None}, '128': {'shape': 'unknown', 'radius': None}, '129': {'shape': 'unknown', 'radius': None}, '130': {'shape': 'unknown', 'radius': None}, '131': {'shape': 'unknown', 'radius': None}, '132': {'shape': 'unknown', 'radius': None}, '133': {'shape': 'unknown', 'radius': None}, '134': {'shape': 'unknown', 'radius': None}, '135': {'shape': 'unknown', 'radius': None}, '136': {'shape': 'unknown', 'radius': None}, '137': {'shape': 'unknown', 'radius': None}, '138': {'shape': 'unknown', 'radius': None}, '139': {'shape': 'unknown', 'radius': None}, '140': {'shape': 'unknown', 'radius': None}, '141': {'shape': 'unknown', 'radius': None}, '142': {'shape': 'unknown', 'radius': None}, '143': {'shape': 'unknown', 'radius': None}, '144': {'shape': 'unknown', 'radius': None}, '145': {'shape': 'unknown', 'radius': None}, '146': {'shape': 'unknown', 'radius': None}, '147': {'shape': 'unknown', 'radius': None}, '148': {'shape': 'unknown', 'radius': None}, '149': {'shape': 'unknown', 'radius': None}, '150': {'shape': 'unknown', 'radius': None}, '151': {'shape': 'unknown', 'radius': None}, '152': {'shape': 'unknown', 'radius': None}, '153': {'shape': 'unknown', 'radius': None}, '154': {'shape': 'unknown', 'radius': None}, '155': {'shape': 'unknown', 'radius': None}, '156': {'shape': 'unknown', 'radius': None}, '157': {'shape': 'unknown', 'radius': None}, '158': {'shape': 'unknown', 'radius': None}, '159': {'shape': 'unknown', 'radius': None}, '160': {'shape': 'unknown', 'radius': None}, '161': {'shape': 'unknown', 'radius': None}, '162': {'shape': 'unknown', 'radius': None}, '163': {'shape': 'unknown', 'radius': None}, '164': {'shape': 'unknown', 'radius': None}, '165': {'shape': 'unknown', 'radius': None}, '166': {'shape': 'unknown', 'radius': None}, '167': {'shape': 'unknown', 'radius': None}, '168': {'shape': 'unknown', 'radius': None}, '169': {'shape': 'unknown', 'radius': None}, '170': {'shape': 'unknown', 'radius': None}, '171': {'shape': 'unknown', 'radius': None}, '172': {'shape': 'unknown', 'radius': None}, '173': {'shape': 'unknown', 'radius': None}, '174': {'shape': 'unknown', 'radius': None}, '175': {'shape': 'unknown', 'radius': None}, '176': {'shape': 'unknown', 'radius': None}, '177': {'shape': 'unknown', 'radius': None}, '178': {'shape': 'unknown', 'radius': None}, '179': {'shape': 'unknown', 'radius': None}, '180': {'shape': 'unknown', 'radius': None}, '181': {'shape': 'unknown', 'radius': None}, '182': {'shape': 'unknown', 'radius': None}, '183': {'shape': 'unknown', 'radius': None}, '184': {'shape': 'unknown', 'radius': None}, '185': {'shape': 'unknown', 'radius': None}, '186': {'shape': 'unknown', 'radius': None}, '187': {'shape': 'unknown', 'radius': None}, '188': {'shape': 'unknown', 'radius': None}, '189': {'shape': 'unknown', 'radius': None}, '190': {'shape': 'unknown', 'radius': None}, '191': {'shape': 'unknown', 'radius': None}, '192': {'shape': 'unknown', 'radius': None}, '193': {'shape': 'unknown', 'radius': None}, '194': {'shape': 'unknown', 'radius': None}, '195': {'shape': 'unknown', 'radius': None}, '196': {'shape': 'unknown', 'radius': None}, '197': {'shape': 'unknown', 'radius': None}, '198': {'shape': 'unknown', 'radius': None}, '199': {'shape': 'unknown', 'radius': None}, '200': {'shape': 'unknown', 'radius': None}, '201': {'shape': 'unknown', 'radius': None}, '202': {'shape': 'unknown', 'radius': None}, '203': {'shape': 'unknown', 'radius': None}, '204': {'shape': 'unknown', 'radius': None}, '205': {'shape': 'unknown', 'radius': None}, '206': {'shape': 'unknown', 'radius': None}, '207': {'shape': 'unknown', 'radius': None}, '208': {'shape': 'unknown', 'radius': None}, '209': {'shape': 'unknown', 'radius': None}, '210': {'shape': 'unknown', 'radius': None}, '211': {'shape': 'unknown', 'radius': None}, '212': {'shape': 'unknown', 'radius': None}, '213': {'shape': 'unknown', 'radius': None}, '214': {'shape': 'unknown', 'radius': None}, '215': {'shape': 'unknown', 'radius': None}, '216': {'shape': 'unknown', 'radius': None}, '217': {'shape': 'unknown', 'radius': None}, '218': {'shape': 'unknown', 'radius': None}, '219': {'shape': 'unknown', 'radius': None}, '220': {'shape': 'unknown', 'radius': None}, '221': {'shape': 'unknown', 'radius': None}, '222': {'shape': 'unknown', 'radius': None}, '223': {'shape': 'unknown', 'radius': None}, '224': {'shape': 'unknown', 'radius': None}, '225': {'shape': 'unknown', 'radius': None}, '226': {'shape': 'unknown', 'radius': None}, '227': {'shape': 'unknown', 'radius': None}, '228': {'shape': 'unknown', 'radius': None}, '229': {'shape': 'unknown', 'radius': None}, '230': {'shape': 'unknown', 'radius': None}, '231': {'shape': 'unknown', 'radius': None}, '232': {'shape': 'unknown', 'radius': None}, '233': {'shape': 'unknown', 'radius': None}, '234': {'shape': 'unknown', 'radius': None}, '235': {'shape': 'unknown', 'radius': None}, '236': {'shape': 'unknown', 'radius': None}, '237': {'shape': 'unknown', 'radius': None}, '238': {'shape': 'unknown', 'radius': None}, '239': {'shape': 'unknown', 'radius': None}, '240': {'shape': 'unknown', 'radius': None}, '241': {'shape': 'unknown', 'radius': None}, '242': {'shape': 'unknown', 'radius': None}, '243': {'shape': 'unknown', 'radius': None}, '244': {'shape': 'unknown', 'radius': None}, '245': {'shape': 'unknown', 'radius': None}, '246': {'shape': 'unknown', 'radius': None}, '247': {'shape': 'unknown', 'radius': None}, '248': {'shape': 'unknown', 'radius': None}, '249': {'shape': 'unknown', 'radius': None}, '250': {'shape': 'unknown', 'radius': None}, '251': {'shape': 'unknown', 'radius': None}, '252': {'shape': 'unknown', 'radius': None}, '253': {'shape': 'unknown', 'radius': None}, '254': {'shape': 'unknown', 'radius': None}, '255': {'shape': 'unknown', 'radius': None}}"}, {"fullname": "grib2io.tables.section4", "modulename": "grib2io.tables.section4", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4.table_4_1_0", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Temperature', '1': 'Moisture', '2': 'Momentum', '3': 'Mass', '4': 'Short-wave radiation', '5': 'Long-wave radiation', '6': 'Cloud', '7': 'Thermodynamic Stability indicies', '8': 'Kinematic Stability indicies', '9': 'Temperature Probabilities*', '10': 'Moisture Probabilities*', '11': 'Momentum Probabilities*', '12': 'Mass Probabilities*', '13': 'Aerosols', '14': 'Trace gases', '15': 'Radar', '16': 'Forecast Radar Imagery', '17': 'Electrodynamics', '18': 'Nuclear/radiology', '19': 'Physical atmospheric properties', '20': 'Atmospheric chemical Constituents', '21': 'Thermodynamic Properties', '22-189': 'Reserved', '190': 'CCITT IA5 string', '191': 'Miscellaneous', '192-254': 'Reserved for Local Use', '192': 'Covariance', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_1", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Hydrology basic products', '1': 'Hydrology probabilities', '2': 'Inland water and sediment properties', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_2", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Vegetation/Biomass', '1': 'Agricultural/Aquacultural Special Products', '2': 'Transportation-related Products', '3': 'Soil Products', '4': 'Fire Weather Products', '5': 'Land Surface Products', '6': 'Urban areas', '7-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_3", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Image format products', '1': 'Quantitative products', '2': 'Cloud Properties', '3': 'Flight Rules Conditions', '4': 'Volcanic Ash', '5': 'Sea-surface Temperature', '6': 'Solar Radiation', '7-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Forecast Satellite Imagery', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_4", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Temperature', '1': 'Momentum', '2': 'Charged Particle Mass and Number', '3': 'Electric and Magnetic Fields', '4': 'Energetic Particles', '5': 'Waves', '6': 'Solar Electromagnetic Emissions', '7': 'Terrestrial Electromagnetic Emissions', '8': 'Imagery', '9': 'Ion-Neutral Coupling', '10': 'Space Weather Indices', '11-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_10", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_10", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Waves', '1': 'Currents', '2': 'Ice', '3': 'Surface Properties', '4': 'Sub-surface Properties', '5-190': 'Reserved', '191': 'Miscellaneous', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_20", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_20", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Health Indicators', '1': 'Epidemiology', '2': 'Socioeconomic indicators', '3': 'Renewable energy sector', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_0", "modulename": "grib2io.tables.section4", "qualname": "table_4_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.0)', '1': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.1)', '2': 'Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time. (see Template 4.2)', '3': 'Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.3)', '4': 'Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.4)', '5': 'Probability forecasts at a horizontal level or in a horizontal layer at a point in time. (see Template 4.5)', '6': 'Percentile forecasts at a horizontal level or in a horizontal layer at a point in time. (see Template 4.6)', '7': 'Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time. (see Template 4.7)', '8': 'Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.8)', '9': 'Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.9)', '10': 'Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.10)', '11': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.11)', '12': 'Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.12)', '13': 'Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.13)', '14': 'Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.14)', '15': 'Average, accumulation, extreme values or other statistically-processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.15)', '16-19': 'Reserved', '20': 'Radar product (see Template 4.20)', '21-29': 'Reserved', '30': 'Satellite product (see Template 4.30) NOTE: This template is deprecated. Template 4.31 should be used instead.', '31': 'Satellite product (see Template 4.31)', '32': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulate (synthetic) satellite data (see Template 4.32)', '33': 'Individual Ensemble Forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data (see Template 4.33)', '34': 'Individual Ensemble Forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data(see Template 4.34)', '35': 'Satellite product with or without associated quality values (see Template 4.35)', '36-39': 'Reserved', '40': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents. (see Template 4.40)', '41': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents. (see Template 4.41)', '42': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents. (see Template 4.42)', '43': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for atmospheric chemical constituents. (see Template 4.43)', '44': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol. (see Template 4.44)', '45': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for aerosol. (see Template 4.45)', '46': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol. (see Template 4.46)', '47': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for aerosol. (see Template 4.47)', '48': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol. (see Template 4.48)', '49': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol. (see Template 4.49)', '50': 'Reserved', '51': 'Categorical forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.51)', '52': 'Reserved', '53': 'Partitioned parameters at a horizontal level or horizontal layer at a point in time. (see Template 4.53)', '54': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters. (see Template 4.54)', '55': 'Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time (see Template 4.55)', '56': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (DEPRECATED) (see Template 4.56)', '57': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function (see Template 4.57)', '58': 'Individual Ensemble Forecast, Control and Perturbed, at a horizontal level or in a horizontal layer at a point in time interval for Atmospheric Chemical Constituents based on a distribution function (see Template 4.58)', '59': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56 - See Template 4.59)', '60': 'Individual Ensemble Reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.60)', '61': 'Individual Ensemble Reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval (see Template 4.61)', '62': 'Average, Accumulation and/or Extreme values or other Statistically-processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time (see Template 4.62)', '63': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles (see Template 4.63)', '64-66': 'Reserved', '67': 'Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function (see Template 4.67)', '68': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function. (see Template 4.68)', '69': 'Reserved', '70': 'Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.70)', '71': 'Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.71)', '72': 'Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.72)', '73': 'Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.73)', '74-75': 'Reserved', '76': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink. (see Template 4.76)', '77': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink. (see Template 4.77)', '78': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink. (see Template 4.78)', '79': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink. (see Template 4.79)', '80': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink. (see Template 4.80)', '81': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink. (see Template 4.81)', '82': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink. (see Template 4.82)', '83': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink. (see Template 4.83)', '84': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink. (see Template 4.84)', '85': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol. (see Template 4.85)', '86': 'Quantile forecasts at a horizontal level or in a horizontal layer at a point in time. (see Template 4.86)', '87': 'Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.87)', '88': 'Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.88)', '89-90': 'Reserved', '91': 'Categorical forecast at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.91)', '92': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.92)', '93': 'Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.93)', '94': 'Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.94)', '95': 'Average, accumulation, extreme values or other statiscally processed value at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.95)', '96': 'Average, accumulation, extreme values or other statistically processed values of an individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.96)', '97': 'Average, accumulation, extreme values or other statistically processed values of post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.97)', '98': 'Average, accumulation, extreme values or other statistically processed values of a post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.98)', '99': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions (see Template 4.99)', '100': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions (see Template 4.100)', '101': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae (see Template 4.101)', '102': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae (see Template 4.102)', '103': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for waves selected by period range (see Template 4.103)', '104': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for waves selected by period range (see Template 4.104)', '105': 'Anomalies, significance and other derived products from an analysis or forecast in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.105)', '106': 'Anomalies, significance and other derived products from an individual ensemble forecast, control and perturbed in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.106)', '107': 'Anomalies, significance and other derived products from derived forecasts based on all ensemble members in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.107)', '108': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for generic optical products (see Template 4.108)', '109': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for generic optical products (see Template 4.109)', '110': 'Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for generic optical products (see Template 4.110)', '111': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for generic optical products (see Template 4.111)', '112': 'Anomalies, significance and other derived products as probability forecasts in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.112)', '113-253': 'Reserved', '254': 'CCITT IA5 character string (see Template 4.254)', '255-999': 'Reserved', '1000': 'Cross-section of analysis and forecast at a point in time. (see Template 4.1000)', '1001': 'Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time. (see Template 4.1001)', '1002': 'Cross-section of analysis and forecast, averaged or otherwise statistically-processed over latitude or longitude. (see Template 4.1002)', '1003-1099': 'Reserved', '1100': 'Hovmoller-type grid with no averaging or other statistical processing (see Template 4.1100)', '1101': 'Hovmoller-type grid with averaging or other statistical processing (see Template 4.1101)', '1102-32767': 'Reserved', '32768-65534': 'Reserved for Local Use', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_3", "modulename": "grib2io.tables.section4", "qualname": "table_4_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Analysis', '1': 'Initialization', '2': 'Forecast', '3': 'Bias Corrected Forecast', '4': 'Ensemble Forecast', '5': 'Probability Forecast', '6': 'Forecast Error', '7': 'Analysis Error', '8': 'Observation', '9': 'Climatological', '10': 'Probability-Weighted Forecast', '11': 'Bias-Corrected Ensemble Forecast', '12': 'Post-processed Analysis (See Note)', '13': 'Post-processed Forecast (See Note)', '14': 'Nowcast', '15': 'Hindcast', '16': 'Physical Retrieval', '17': 'Regression Analysis', '18': 'Difference Between Two Forecasts', '19': 'First guess', '20': 'Analysis increment', '21': 'Initialization increment for analysis', '22-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Forecast Confidence Indicator', '193': 'Probability-matched Mean', '194': 'Neighborhood Probability', '195': 'Bias-Corrected and Downscaled Ensemble Forecast', '196': 'Perturbed Analysis for Ensemble Initialization', '197': 'Ensemble Agreement Scale Probability', '198': 'Post-Processed Deterministic-Expert-Weighted Forecast', '199': 'Ensemble Forecast Based on Counting', '200': 'Local Probability-matched Mean', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_4", "modulename": "grib2io.tables.section4", "qualname": "table_4_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Minute', '1': 'Hour', '2': 'Day', '3': 'Month', '4': 'Year', '5': 'Decade (10 Years)', '6': 'Normal (30 Years)', '7': 'Century (100 Years)', '8': 'Reserved', '9': 'Reserved', '10': '3 Hours', '11': '6 Hours', '12': '12 Hours', '13': 'Second', '14-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_5", "modulename": "grib2io.tables.section4", "qualname": "table_4_5", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Reserved', 'unknown'], '1': ['Ground or Water Surface', 'unknown'], '2': ['Cloud Base Level', 'unknown'], '3': ['Level of Cloud Tops', 'unknown'], '4': ['Level of 0o C Isotherm', 'unknown'], '5': ['Level of Adiabatic Condensation Lifted from the Surface', 'unknown'], '6': ['Maximum Wind Level', 'unknown'], '7': ['Tropopause', 'unknown'], '8': ['Nominal Top of the Atmosphere', 'unknown'], '9': ['Sea Bottom', 'unknown'], '10': ['Entire Atmosphere', 'unknown'], '11': ['Cumulonimbus Base (CB)', 'm'], '12': ['Cumulonimbus Top (CT)', 'm'], '13': ['Lowest level where vertically integrated cloud cover exceeds the specified percentage (cloud base for a given percentage cloud cover)', '%'], '14': ['Level of free convection (LFC)', 'unknown'], '15': ['Convection condensation level (CCL)', 'unknown'], '16': ['Level of neutral buoyancy or equilibrium (LNB)', 'unknown'], '17': ['Departure level of the most unstable parcel of air (MUDL)', 'unknown'], '18': ['Departure level of a mixed layer parcel of air with specified layer depth', 'Pa'], '19': ['Reserved', 'unknown'], '20': ['Isothermal Level', 'K'], '21': ['Lowest level where mass density exceeds the specified value (base for a given threshold of mass density)', 'kg m-3'], '22': ['Highest level where mass density exceeds the specified value (top for a given threshold of mass density)', 'kg m-3'], '23': ['Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration', 'Bq m-3'], '24': ['Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration)', 'Bq m-3'], '25': ['Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity)', 'dBZ'], '26': ['Convective cloud layer base', 'm'], '27': ['Convective cloud layer top', 'm'], '28-29': ['Reserved', 'unknown'], '30': ['Specified radius from the centre of the Sun', 'm'], '31': ['Solar photosphere', 'unknown'], '32': ['Ionospheric D-region level', 'unknown'], '33': ['Ionospheric E-region level', 'unknown'], '34': ['Ionospheric F1-region level', 'unknown'], '35': ['Ionospheric F2-region level', 'unknown'], '36-99': ['Reserved', 'unknown'], '100': ['Isobaric Surface', 'Pa'], '101': ['Mean Sea Level', 'unknown'], '102': ['Specific Altitude Above Mean Sea Level', 'm'], '103': ['Specified Height Level Above Ground', 'm'], '104': ['Sigma Level', 'unknown'], '105': ['Hybrid Level', 'unknown'], '106': ['Depth Below Land Surface', 'm'], '107': ['Isentropic (theta) Level', 'K'], '108': ['Level at Specified Pressure Difference from Ground to Level', 'Pa'], '109': ['Potential Vorticity Surface', 'K m2 kg-1 s-1'], '110': ['Reserved', 'unknown'], '111': ['Eta Level', 'unknown'], '112': ['Reserved', 'unknown'], '113': ['Logarithmic Hybrid Level', 'unknown'], '114': ['Snow Level', 'Numeric'], '115': ['Sigma height level', 'unknown'], '116': ['Reserved', 'unknown'], '117': ['Mixed Layer Depth', 'm'], '118': ['Hybrid Height Level', 'unknown'], '119': ['Hybrid Pressure Level', 'unknown'], '120-149': ['Reserved', 'unknown'], '150': ['Generalized Vertical Height Coordinate', 'unknown'], '151': ['Soil level', 'Numeric'], '152': ['Sea-ice level,(see Note 8)', 'Numeric'], '153-159': ['Reserved', 'unknown'], '160': ['Depth Below Sea Level', 'm'], '161': ['Depth Below Water Surface', 'm'], '162': ['Lake or River Bottom', 'unknown'], '163': ['Bottom Of Sediment Layer', 'unknown'], '164': ['Bottom Of Thermally Active Sediment Layer', 'unknown'], '165': ['Bottom Of Sediment Layer Penetrated By Thermal Wave', 'unknown'], '166': ['Mixing Layer', 'unknown'], '167': ['Bottom of Root Zone', 'unknown'], '168': ['Ocean Model Level', 'Numeric'], '169': ['Ocean level defined by water density (sigma-theta) difference from near-surface to level', 'kg m-3'], '170': ['Ocean level defined by water potential temperature difference from near-surface to level', 'K'], '171': ['Ocean level defined by vertical eddy diffusivity difference from near-surface to level', 'm2 s-1'], '172': ['Ocean level defined by water density (rho) difference from near-surface to level (*Tentatively accepted)', 'kg m-3'], '173': ['Top of Snow Over Sea Ice on Sea, Lake or River', 'unknown'], '174': ['Top Surface of Ice on Sea, Lake or River', 'unknown'], '175': ['Top Surface of Ice, under Snow, on Sea, Lake or River', 'unknown'], '176': ['Bottom Surface (underside) Ice on Sea, Lake or River', 'unknown'], '177': ['Deep Soil (of indefinite depth)', 'unknown'], '178': ['Reserved', 'unknown'], '179': ['Top Surface of Glacier Ice and Inland Ice', 'unknown'], '180': ['Deep Inland or Glacier Ice (of indefinite depth)', 'unknown'], '181': ['Grid Tile Land Fraction as a Model Surface', 'unknown'], '182': ['Grid Tile Water Fraction as a Model Surface', 'unknown'], '183': ['Grid Tile Ice Fraction on Sea, Lake or River as a Model Surface', 'unknown'], '184': ['Grid Tile Glacier Ice and Inland Ice Fraction as a Model Surface', 'unknown'], '185': ['Roof Level', 'unknown'], '186': ['Wall level', 'unknown'], '187': ['Road Level', 'unknown'], '188': ['Melt pond Top Surface', 'unknown'], '189': ['Melt Pond Bottom Surface', 'unknown'], '190-191': ['Reserved', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown'], '200': ['Entire atmosphere (considered as a single layer)', 'unknown'], '201': ['Entire ocean (considered as a single layer)', 'unknown'], '204': ['Highest tropospheric freezing level', 'unknown'], '206': ['Grid scale cloud bottom level', 'unknown'], '207': ['Grid scale cloud top level', 'unknown'], '209': ['Boundary layer cloud bottom level', 'unknown'], '210': ['Boundary layer cloud top level', 'unknown'], '211': ['Boundary layer cloud layer', 'unknown'], '212': ['Low cloud bottom level', 'unknown'], '213': ['Low cloud top level', 'unknown'], '214': ['Low cloud layer', 'unknown'], '215': ['Cloud ceiling', 'unknown'], '216': ['Effective Layer Top Level', 'm'], '217': ['Effective Layer Bottom Level', 'm'], '218': ['Effective Layer', 'm'], '220': ['Planetary Boundary Layer', 'unknown'], '221': ['Layer Between Two Hybrid Levels', 'unknown'], '222': ['Middle cloud bottom level', 'unknown'], '223': ['Middle cloud top level', 'unknown'], '224': ['Middle cloud layer', 'unknown'], '232': ['High cloud bottom level', 'unknown'], '233': ['High cloud top level', 'unknown'], '234': ['High cloud layer', 'unknown'], '235': ['Ocean Isotherm Level (1/10 \u00b0 C)', 'unknown'], '236': ['Layer between two depths below ocean surface', 'unknown'], '237': ['Bottom of Ocean Mixed Layer (m)', 'unknown'], '238': ['Bottom of Ocean Isothermal Layer (m)', 'unknown'], '239': ['Layer Ocean Surface and 26C Ocean Isothermal Level', 'unknown'], '240': ['Ocean Mixed Layer', 'unknown'], '241': ['Ordered Sequence of Data', 'unknown'], '242': ['Convective cloud bottom level', 'unknown'], '243': ['Convective cloud top level', 'unknown'], '244': ['Convective cloud layer', 'unknown'], '245': ['Lowest level of the wet bulb zero', 'unknown'], '246': ['Maximum equivalent potential temperature level', 'unknown'], '247': ['Equilibrium level', 'unknown'], '248': ['Shallow convective cloud bottom level', 'unknown'], '249': ['Shallow convective cloud top level', 'unknown'], '251': ['Deep convective cloud bottom level', 'unknown'], '252': ['Deep convective cloud top level', 'unknown'], '253': ['Lowest bottom level of supercooled liquid water layer', 'unknown'], '254': ['Highest top level of supercooled liquid water layer', 'unknown'], '255': ['Missing', 'unknown']}"}, {"fullname": "grib2io.tables.section4.table_4_6", "modulename": "grib2io.tables.section4", "qualname": "table_4_6", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Unperturbed High-Resolution Control Forecast', '1': 'Unperturbed Low-Resolution Control Forecast', '2': 'Negatively Perturbed Forecast', '3': 'Positively Perturbed Forecast', '4': 'Multi-Model Forecast', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Perturbed Ensemble Member', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_7", "modulename": "grib2io.tables.section4", "qualname": "table_4_7", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Unweighted Mean of All Members', '1': 'Weighted Mean of All Members', '2': 'Standard Deviation with respect to Cluster Mean', '3': 'Standard Deviation with respect to Cluster Mean, Normalized', '4': 'Spread of All Members', '5': 'Large Anomaly Index of All Members', '6': 'Unweighted Mean of the Cluster Members', '7': 'Interquartile Range (Range between the 25th and 75th quantile)', '8': 'Minimum Of All Ensemble Members', '9': 'Maximum Of All Ensemble Members', '10-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Unweighted Mode of All Members', '193': 'Percentile value (10%) of All Members', '194': 'Percentile value (50%) of All Members', '195': 'Percentile value (90%) of All Members', '196': 'Statistically decided weights for each ensemble member', '197': 'Climate Percentile (percentile values from climate distribution)', '198': 'Deviation of Ensemble Mean from Daily Climatology', '199': 'Extreme Forecast Index', '200': 'Equally Weighted Mean', '201': 'Percentile value (5%) of All Members', '202': 'Percentile value (25%) of All Members', '203': 'Percentile value (75%) of All Members', '204': 'Percentile value (95%) of All Members', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_8", "modulename": "grib2io.tables.section4", "qualname": "table_4_8", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Anomoly Correlation', '1': 'Root Mean Square', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_9", "modulename": "grib2io.tables.section4", "qualname": "table_4_9", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Probability of event below lower limit', '1': 'Probability of event above upper limit', '2': 'Probability of event between upper and lower limits (the range includes lower limit but no the upper limit)', '3': 'Probability of event above lower limit', '4': 'Probability of event below upper limit', '5': 'Probability of event equal to lower limit', '6': 'Probability of event in above normal category (see Notes 1 and 2)', '9-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_10", "modulename": "grib2io.tables.section4", "qualname": "table_4_10", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Average', '1': 'Accumulation', '2': 'Maximum', '3': 'Minimum', '4': 'Difference (value at the end of the time range minus value at the beginning)', '5': 'Root Mean Square', '6': 'Standard Deviation', '7': 'Covariance (temporal variance)', '8': 'Difference ( value at the beginning of the time range minus value at the end)', '9': 'Ratio', '10': 'Standardized Anomaly', '11': 'Summation', '12': 'Return period', '13-99': 'Reserved', '100': 'Severity', '101': 'Mode', '102-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Climatological Mean Value: multiple year averages of quantities which are themselves means over some period of time (P2) less than a year. The reference time (R) indicates the date and time of the start of a period of time, given by R to R + P2, over which a mean is formed; N indicates the number of such period-means that are averaged together to form the climatological value, assuming that the N period-mean fields are separated by one year. The reference time indicates the start of the N-year climatology. N is given in octets 22-23 of the PDS. If P1 = 0 then the data averaged in the basic interval P2 are assumed to be continuous, i.e., all available data are simply averaged together. If P1 = 1 (the units of time - octet 18, code table 4 - are not relevant here) then the data averaged together in the basic interval P2 are valid only at the time (hour, minute) given in the reference time, for all the days included in the P2 period. The units of P2 are given by the contents of octet 18 and Table 4.', '193': 'Average of N forecasts (or initialized analyses); each product has forecast period of P1 (P1=0 for initialized analyses); products have reference times at intervals of P2, beginning at the given reference time.', '194': 'Average of N uninitialized analyses, starting at reference time, at intervals of P2.', '195': 'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 24-hour intervals. Number in Ave = number of forecasts used.', '196': 'Average of successive forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at (P2 - P1) intervals. Number in Ave = number of forecasts used', '197': 'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 24-hour intervals. Number in Ave = number of forecast used', '198': 'Average of successive forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at (P2 - P1) intervals. Number in Ave = number of forecasts used', '199': 'Climatological Average of N analyses, each a year apart, starting from initial time R and for the period from R+P1 to R+P2.', '200': 'Climatological Average of N forecasts, each a year apart, starting from initial time R and for the period from R+P1 to R+P2.', '201': 'Climatological Root Mean Square difference between N forecasts and their verifying analyses, each a year apart, starting with initial time R and for the period from R+P1 to R+P2.', '202': 'Climatological Standard Deviation of N forecasts from the mean of the same N forecasts, for forecasts one year apart. The first forecast starts wtih initial time R and is for the period from R+P1 to R+P2.', '203': 'Climatological Standard Deviation of N analyses from the mean of the same N analyses, for analyses one year apart. The first analyses is valid for period R+P1 to R+P2.', '204': 'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 6-hour intervals. Number in Ave = number of forecast used', '205': 'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 6-hour intervals. Number in Ave = number of forecast used', '206': 'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 12-hour intervals. Number in Ave = number of forecast used', '207': 'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 12-hour intervals. Number in Ave = number of forecast used', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_11", "modulename": "grib2io.tables.section4", "qualname": "table_4_11", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Successive times processed have same forecast time, start time of forecast is incremented.', '2': 'Successive times processed have same start time of forecast, forecast time is incremented.', '3': 'Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant.', '4': 'Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant.', '5': 'Floating subinterval of time between forecast time and end of overall time interval.(see Note 1)', '6-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_12", "modulename": "grib2io.tables.section4", "qualname": "table_4_12", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Mainteunknownce Mode', '1': 'Clear Air', '2': 'Precipitation', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_13", "modulename": "grib2io.tables.section4", "qualname": "table_4_13", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No Quality Control Applied', '1': 'Quality Control Applied', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_14", "modulename": "grib2io.tables.section4", "qualname": "table_4_14", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No Clutter Filter Used', '1': 'Clutter Filter Used', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_15", "modulename": "grib2io.tables.section4", "qualname": "table_4_15", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Data is calculated directly from the source grid with no interpolation', '1': 'Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '2': 'Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '3': 'Using the value from the source grid grid-point which is nearest to the nominal grid-point', '4': 'Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '5': 'Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '6': 'Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '7-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_91", "modulename": "grib2io.tables.section4", "qualname": "table_4_91", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Smaller than first limit', '1': 'Greater than second limit', '2': 'Between first and second limit. The range includes the first limit but not the second limit.', '3': 'Greater than first limit', '4': 'Smaller than second limit', '5': 'Smaller or equal first limit', '6': 'Greater or equal second limit', '7': 'Between first and second limit. The range includes the first limit and the second limit.', '8': 'Greater or equal first limit', '9': 'Smaller or equal second limit', '10': 'Between first and second limit. The range includes the second limit but not the first limit.', '11': 'Equal to first limit', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_201", "modulename": "grib2io.tables.section4", "qualname": "table_4_201", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Rain', '2': 'Thunderstorm', '3': 'Freezing Rain', '4': 'Mixed/Ice', '5': 'Snow', '6': 'Wet Snow', '7': 'Mixture of Rain and Snow', '8': 'Ice Pellets', '9': 'Graupel', '10': 'Hail', '11': 'Drizzle', '12': 'Freezing Drizzle', '13-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_202", "modulename": "grib2io.tables.section4", "qualname": "table_4_202", "kind": "variable", "doc": "

\n", "default_value": "{'0-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_203", "modulename": "grib2io.tables.section4", "qualname": "table_4_203", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Clear', '1': 'Cumulonimbus', '2': 'Stratus', '3': 'Stratocumulus', '4': 'Cumulus', '5': 'Altostratus', '6': 'Nimbostratus', '7': 'Altocumulus', '8': 'Cirrostratus', '9': 'Cirrorcumulus', '10': 'Cirrus', '11': 'Cumulonimbus - ground-based fog beneath the lowest layer', '12': 'Stratus - ground-based fog beneath the lowest layer', '13': 'Stratocumulus - ground-based fog beneath the lowest layer', '14': 'Cumulus - ground-based fog beneath the lowest layer', '15': 'Altostratus - ground-based fog beneath the lowest layer', '16': 'Nimbostratus - ground-based fog beneath the lowest layer', '17': 'Altocumulus - ground-based fog beneath the lowest layer', '18': 'Cirrostratus - ground-based fog beneath the lowest layer', '19': 'Cirrorcumulus - ground-based fog beneath the lowest layer', '20': 'Cirrus - ground-based fog beneath the lowest layer', '21-190': 'Reserved', '191': 'Unknown', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_204", "modulename": "grib2io.tables.section4", "qualname": "table_4_204", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Isolated (1-2%)', '2': 'Few (3-5%)', '3': 'Scattered (16-45%)', '4': 'Numerous (>45%)', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_205", "modulename": "grib2io.tables.section4", "qualname": "table_4_205", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Aerosol not present', '1': 'Aerosol present', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_206", "modulename": "grib2io.tables.section4", "qualname": "table_4_206", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Not Present', '1': 'Present', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_207", "modulename": "grib2io.tables.section4", "qualname": "table_4_207", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Light', '2': 'Moderate', '3': 'Severe', '4': 'Trace', '5': 'Heavy', '6-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_208", "modulename": "grib2io.tables.section4", "qualname": "table_4_208", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Light', '2': 'Moderate', '3': 'Severe', '4': 'Extreme', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_209", "modulename": "grib2io.tables.section4", "qualname": "table_4_209", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Stable', '2': 'Mechanically-Driven Turbulence', '3': 'Force Convection', '4': 'Free Convection', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_210", "modulename": "grib2io.tables.section4", "qualname": "table_4_210", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Contrail Not Present', '1': 'Contrail Present', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_211", "modulename": "grib2io.tables.section4", "qualname": "table_4_211", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Low Bypass', '1': 'High Bypass', '2': 'Non-Bypass', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_212", "modulename": "grib2io.tables.section4", "qualname": "table_4_212", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Urban Land', '2': 'Agricultural', '3': 'Range Land', '4': 'Deciduous Forest', '5': 'Coniferous Forest', '6': 'Forest/Wetland', '7': 'Water', '8': 'Wetlands', '9': 'Desert', '10': 'Tundra', '11': 'Ice', '12': 'Tropical Forest', '13': 'Savannah', '14-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_213", "modulename": "grib2io.tables.section4", "qualname": "table_4_213", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Sand', '2': 'Loamy Sand', '3': 'Sandy Loam', '4': 'Silt Loam', '5': 'Organic', '6': 'Sandy Clay Loam', '7': 'Silt Clay Loam', '8': 'Clay Loam', '9': 'Sandy Clay', '10': 'Silty Clay', '11': 'Clay', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_215", "modulename": "grib2io.tables.section4", "qualname": "table_4_215", "kind": "variable", "doc": "

\n", "default_value": "{'0-49': 'Reserved', '50': 'No-Snow/No-Cloud', '51-99': 'Reserved', '100': 'Clouds', '101-249': 'Reserved', '250': 'Snow', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_216", "modulename": "grib2io.tables.section4", "qualname": "table_4_216", "kind": "variable", "doc": "

\n", "default_value": "{'0-90': 'Elevation in increments of 100 m', '91-253': 'Reserved', '254': 'Clouds', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_217", "modulename": "grib2io.tables.section4", "qualname": "table_4_217", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Clear over water', '1': 'Clear over land', '2': 'Cloud', '3': 'No data', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_218", "modulename": "grib2io.tables.section4", "qualname": "table_4_218", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No Scene Identified', '1': 'Green Needle-Leafed Forest', '2': 'Green Broad-Leafed Forest', '3': 'Deciduous Needle-Leafed Forest', '4': 'Deciduous Broad-Leafed Forest', '5': 'Deciduous Mixed Forest', '6': 'Closed Shrub-Land', '7': 'Open Shrub-Land', '8': 'Woody Savannah', '9': 'Savannah', '10': 'Grassland', '11': 'Permanent Wetland', '12': 'Cropland', '13': 'Urban', '14': 'Vegetation / Crops', '15': 'Permanent Snow / Ice', '16': 'Barren Desert', '17': 'Water Bodies', '18': 'Tundra', '19': 'Warm Liquid Water Cloud', '20': 'Supercooled Liquid Water Cloud', '21': 'Mixed Phase Cloud', '22': 'Optically Thin Ice Cloud', '23': 'Optically Thick Ice Cloud', '24': 'Multi-Layeblack Cloud', '25-96': 'Reserved', '97': 'Snow / Ice on Land', '98': 'Snow / Ice on Water', '99': 'Sun-Glint', '100': 'General Cloud', '101': 'Low Cloud / Fog / Stratus', '102': 'Low Cloud / Stratocumulus', '103': 'Low Cloud / Unknown Type', '104': 'Medium Cloud / Nimbostratus', '105': 'Medium Cloud / Altostratus', '106': 'Medium Cloud / Unknown Type', '107': 'High Cloud / Cumulus', '108': 'High Cloud / Cirrus', '109': 'High Cloud / Unknown Type', '110': 'Unknown Cloud Type', '111': 'Single layer water cloud', '112': 'Single layer ice cloud', '113-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_222", "modulename": "grib2io.tables.section4", "qualname": "table_4_222", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No', '1': 'Yes', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_223", "modulename": "grib2io.tables.section4", "qualname": "table_4_223", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No Fire Detected', '1': 'Possible Fire Detected', '2': 'Probable Fire Detected', '3': 'Missing', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_224", "modulename": "grib2io.tables.section4", "qualname": "table_4_224", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No Risk Area', '1': 'Reserved', '2': 'General Thunderstorm Risk Area', '3': 'Reserved', '4': 'Slight Risk Area', '5': 'Reserved', '6': 'Moderate Risk Area', '7': 'Reserved', '8': 'High Risk Area', '9-10': 'Reserved', '11': 'Dry Thunderstorm (Dry Lightning) Risk Area', '12-13': 'Reserved', '14': 'Critical Risk Area', '15-17': 'Reserved', '18': 'Extreamly Critical Risk Area', '19-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_227", "modulename": "grib2io.tables.section4", "qualname": "table_4_227", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'General', '2': 'Convective', '3': 'Stratiform', '4': 'Freezing', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_228", "modulename": "grib2io.tables.section4", "qualname": "table_4_228", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Trace', '2': 'Light', '3': 'Moderate', '4': 'Severe', '6-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_233", "modulename": "grib2io.tables.section4", "qualname": "table_4_233", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Ozone', 'O3'], '1': ['Water Vapour', 'H2O'], '2': ['Methane', 'CH4'], '3': ['Carbon Dioxide', 'CO2'], '4': ['Carbon Monoxide', 'CO'], '5': ['Nitrogen Dioxide', 'NO2'], '6': ['Nitrous Oxide', 'N2O'], '7': ['Formaldehyde', 'HCHO'], '8': ['Sulphur Dioxide', 'SO2'], '9': ['Ammonia', 'NH3'], '10': ['Ammonium', 'NH4+'], '11': ['Nitrogen Monoxide', 'NO'], '12': ['Atomic Oxygen', 'O'], '13': ['Nitrate Radical', 'NO3'], '14': ['Hydroperoxyl Radical', 'HO2'], '15': ['Dinitrogen Pentoxide', 'H2O5'], '16': ['Nitrous Acid', 'HONO'], '17': ['Nitric Acid', 'HNO3'], '18': ['Peroxynitric Acid', 'HO2NO2'], '19': ['Hydrogen Peroxide', 'H2O2'], '20': ['Molecular Hydrogen', 'H'], '21': ['Atomic Nitrogen', 'N'], '22': ['Sulphate', 'SO42-'], '23': ['Radon', 'Rn'], '24': ['Elemental Mercury', 'Hg(O)'], '25': ['Divalent Mercury', 'Hg2+'], '26': ['Atomic Chlorine', 'Cl'], '27': ['Chlorine Monoxide', 'ClO'], '28': ['Dichlorine Peroxide', 'Cl2O2'], '29': ['Hypochlorous Acid', 'HClO'], '30': ['Chlorine Nitrate', 'ClONO2'], '31': ['Chlorine Dioxide', 'ClO2'], '32': ['Atomic Bromide', 'Br'], '33': ['Bromine Monoxide', 'BrO'], '34': ['Bromine Chloride', 'BrCl'], '35': ['Hydrogen Bromide', 'HBr'], '36': ['Hypobromous Acid', 'HBrO'], '37': ['Bromine Nitrate', 'BrONO2'], '38': ['Oxygen', 'O2'], '39-9999': ['Reserved', 'unknown'], '10000': ['Hydroxyl Radical', 'OH'], '10001': ['Methyl Peroxy Radical', 'CH3O2'], '10002': ['Methyl Hydroperoxide', 'CH3O2H'], '10003': ['Reserved', 'unknown'], '10004': ['Methanol', 'CH3OH'], '10005': ['Formic Acid', 'CH3OOH'], '10006': ['Hydrogen Cyanide', 'HCN'], '10007': ['Aceto Nitrile', 'CH3CN'], '10008': ['Ethane', 'C2H6'], '10009': ['Ethene (= Ethylene)', 'C2H4'], '10010': ['Ethyne (= Acetylene)', 'C2H2'], '10011': ['Ethanol', 'C2H5OH'], '10012': ['Acetic Acid', 'C2H5OOH'], '10013': ['Peroxyacetyl Nitrate', 'CH3C(O)OONO2'], '10014': ['Propane', 'C3H8'], '10015': ['Propene', 'C3H6'], '10016': ['Butanes', 'C4H10'], '10017': ['Isoprene', 'C5H10'], '10018': ['Alpha Pinene', 'C10H16'], '10019': ['Beta Pinene', 'C10H16'], '10020': ['Limonene', 'C10H16'], '10021': ['Benzene', 'C6H6'], '10022': ['Toluene', 'C7H8'], '10023': ['Xylene', 'C8H10'], '10024-10499': ['Reserved', 'unknown'], '10500': ['Dimethyl Sulphide', 'CH3SCH3'], '10501-20000': ['Reserved', 'unknown'], '20001': ['Hydrogen Chloride', 'HCL'], '20002': ['CFC-11', 'unknown'], '20003': ['CFC-12', 'unknown'], '20004': ['CFC-113', 'unknown'], '20005': ['CFC-113a', 'unknown'], '20006': ['CFC-114', 'unknown'], '20007': ['CFC-115', 'unknown'], '20008': ['HCFC-22', 'unknown'], '20009': ['HCFC-141b', 'unknown'], '20010': ['HCFC-142b', 'unknown'], '20011': ['Halon-1202', 'unknown'], '20012': ['Halon-1211', 'unknown'], '20013': ['Halon-1301', 'unknown'], '20014': ['Halon-2402', 'unknown'], '20015': ['Methyl Chloride (HCC-40)', 'unknown'], '20016': ['Carbon Tetrachloride (HCC-10)', 'unknown'], '20017': ['HCC-140a', 'CH3CCl3'], '20018': ['Methyl Bromide (HBC-40B1)', 'unknown'], '20019': ['Hexachlorocyclohexane (HCH)', 'unknown'], '20020': ['Alpha Hexachlorocyclohexane', 'unknown'], '20021': ['Hexachlorobiphenyl (PCB-153)', 'unknown'], '20022-29999': ['Reserved', 'unknown'], '30000': ['Radioactive Pollutant (Tracer, defined by originating centre)', 'unknown'], '30001-50000': ['Reserved', 'unknown'], '60000': ['HOx Radical (OH+HO2)', 'unknown'], '60001': ['Total Inorganic and Organic Peroxy Radicals (HO2+RO2)', 'RO2'], '60002': ['Passive Ozone', 'unknown'], '60003': ['NOx Expressed As Nitrogen', 'NOx'], '60004': ['All Nitrogen Oxides (NOy) Expressed As Nitrogen', 'NOy'], '60005': ['Total Inorganic Chlorine', 'Clx'], '60006': ['Total Inorganic Bromine', 'Brx'], '60007': ['Total Inorganic Chlorine Except HCl, ClONO2: ClOx', 'unknown'], '60008': ['Total Inorganic Bromine Except Hbr, BrONO2:BrOx', 'unknown'], '60009': ['Lumped Alkanes', 'unknown'], '60010': ['Lumped Alkenes', 'unknown'], '60011': ['Lumped Aromatic Coumpounds', 'unknown'], '60012': ['Lumped Terpenes', 'unknown'], '60013': ['Non-Methane Volatile Organic Compounds Expressed as Carbon', 'NMVOC'], '60014': ['Anthropogenic Non-Methane Volatile Organic Compounds Expressed as Carbon', 'aNMVOC'], '60015': ['Biogenic Non-Methane Volatile Organic Compounds Expressed as Carbon', 'bNMVOC'], '60016': ['Lumped Oxygenated Hydrocarbons', 'OVOC'], '60017-61999': ['Reserved', 'unknown'], '62000': ['Total Aerosol', 'unknown'], '62001': ['Dust Dry', 'unknown'], '62002': ['water In Ambient', 'unknown'], '62003': ['Ammonium Dry', 'unknown'], '62004': ['Nitrate Dry', 'unknown'], '62005': ['Nitric Acid Trihydrate', 'unknown'], '62006': ['Sulphate Dry', 'unknown'], '62007': ['Mercury Dry', 'unknown'], '62008': ['Sea Salt Dry', 'unknown'], '62009': ['Black Carbon Dry', 'unknown'], '62010': ['Particulate Organic Matter Dry', 'unknown'], '62011': ['Primary Particulate Organic Matter Dry', 'unknown'], '62012': ['Secondary Particulate Organic Matter Dry', 'unknown'], '62013': ['Black carbon hydrophilic dry', 'unknown'], '62014': ['Black carbon hydrophobic dry', 'unknown'], '62015': ['Particulate organic matter hydrophilic dry', 'unknown'], '62016': ['Particulate organic matter hydrophobic dry', 'unknown'], '62017': ['Nitrate hydrophilic dry', 'unknown'], '62018': ['Nitrate hydrophobic dry', 'unknown'], '62019': ['Reserved', 'unknown'], '62020': ['Smoke - high absorption', 'unknown'], '62021': ['Smoke - low absorption', 'unknown'], '62022': ['Aerosol - high absorption', 'unknown'], '62023': ['Aerosol - low absorption', 'unknown'], '62024': ['Reserved', 'unknown'], '62025': ['Volcanic ash', 'unknown'], '62036': ['Brown Carbon Dry', 'unknown'], '62037-65534': ['Reserved', 'unknown'], '65535': ['Missing', 'unknown']}"}, {"fullname": "grib2io.tables.section4.table_4_234", "modulename": "grib2io.tables.section4", "qualname": "table_4_234", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Crops, mixed farming', '2': 'Short grass', '3': 'Evergreen needleleaf trees', '4': 'Deciduous needleleaf trees', '5': 'Deciduous broadleaf trees', '6': 'Evergreen broadleaf trees', '7': 'Tall grass', '8': 'Desert', '9': 'Tundra', '10': 'Irrigated corps', '11': 'Semidesert', '12': 'Ice caps and glaciers', '13': 'Bogs and marshes', '14': 'Inland water', '15': 'Ocean', '16': 'Evergreen shrubs', '17': 'Deciduous shrubs', '18': 'Mixed forest', '19': 'Interrupted forest', '20': 'Water and land mixtures', '21-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_235", "modulename": "grib2io.tables.section4", "qualname": "table_4_235", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Total Wave Spectrum (combined wind waves and swell)', '1': 'Generalized Partition', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_236", "modulename": "grib2io.tables.section4", "qualname": "table_4_236", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Coarse', '2': 'Medium', '3': 'Medium-fine', '4': 'Fine', '5': 'Very-fine', '6': 'Organic', '7': 'Tropical-organic', '8-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_238", "modulename": "grib2io.tables.section4", "qualname": "table_4_238", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Aviation', '2': 'Lightning', '3': 'Biogenic Sources', '4': 'Anthropogenic sources', '5': 'Wild fires', '6': 'Natural sources', '7': 'Bio-fuel', '8': 'Volcanoes', '9': 'Fossil-fuel', '10': 'Wetlands', '11': 'Oceans', '12': 'Elevated anthropogenic sources', '13': 'Surface anthropogenic sources', '14': 'Agriculture livestock', '15': 'Agriculture soils', '16': 'Agriculture waste burning', '17': 'Agriculture (all)', '18': 'Residential, commercial and other combustion', '19': 'Power generation', '20': 'Super power stations', '21': 'Fugitives', '22': 'Industrial process', '23': 'Solvents', '24': 'Ships', '25': 'Wastes', '26': 'Road transportation', '27': 'Off-road transportation', '28-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_239", "modulename": "grib2io.tables.section4", "qualname": "table_4_239", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Bog', '2': 'Drained', '3': 'Fen', '4': 'Floodplain', '5': 'Mangrove', '6': 'Marsh', '7': 'Rice', '8': 'Riverine', '9': 'Salt Marsh', '10': 'Swamp', '11': 'Upland', '12': 'Wet tundra', '13-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_243", "modulename": "grib2io.tables.section4", "qualname": "table_4_243", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Evergreen broadleaved forest', '2': 'Deciduous broadleaved closed forest', '3': 'Deciduous broadleaved open forest', '4': 'Evergreen needle-leaf forest', '5': 'Deciduous needle-leaf forest', '6': 'Mixed leaf trees', '7': 'Fresh water flooded trees', '8': 'Saline water flooded trees', '9': 'Mosaic tree/natural vegetation', '10': 'Burnt tree cover', '11': 'Evergreen shurbs closed-open', '12': 'Deciduous shurbs closed-open', '13': 'Herbaceous vegetation closed-open', '14': 'Sparse herbaceous or grass', '15': 'Flooded shurbs or herbaceous', '16': 'Cultivated and managed areas', '17': 'Mosaic crop/tree/natural vegetation', '18': 'Mosaic crop/shrub/grass', '19': 'Bare areas', '20': 'Water', '21': 'Snow and ice', '22': 'Artificial surface', '23': 'Ocean', '24': 'Irrigated croplands', '25': 'Rain fed croplands', '26': 'Mosaic cropland (50-70%)-vegetation (20-50%)', '27': 'Mosaic vegetation (50-70%)-cropland (20-50%)', '28': 'Closed broadleaved evergreen forest', '29': 'Closed needle-leaved evergreen forest', '30': 'Open needle-leaved deciduous forest', '31': 'Mixed broadleaved and needle-leave forest', '32': 'Mosaic shrubland (50-70%)-grassland (20-50%)', '33': 'Mosaic grassland (50-70%)-shrubland (20-50%)', '34': 'Closed to open shrubland', '35': 'Sparse vegetation', '36': 'Closed to open forest regularly flooded', '37': 'Closed forest or shrubland permanently flooded', '38': 'Closed to open grassland regularly flooded', '39': 'Undefined', '40-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_244", "modulename": "grib2io.tables.section4", "qualname": "table_4_244", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No Quality Information Available', '1': 'Failed', '2': 'Passed', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_246", "modulename": "grib2io.tables.section4", "qualname": "table_4_246", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No thunderstorm occurrence', '1': 'Weak thunderstorm', '2': 'Moderate thunderstorm', '3': 'Severe thunderstorm', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_247", "modulename": "grib2io.tables.section4", "qualname": "table_4_247", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No precipitation occurrence', '1': 'Light precipitation', '2': 'Moderate precipitation', '3': 'Heavy precipitation', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_248", "modulename": "grib2io.tables.section4", "qualname": "table_4_248", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Nearest forecast or analysis time to specified local time', '1': 'Interpolated to be valid at the specified local time', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_249", "modulename": "grib2io.tables.section4", "qualname": "table_4_249", "kind": "variable", "doc": "

\n", "default_value": "{'1': 'Showers', '2': 'Intermittent', '3': 'Continuous', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_250", "modulename": "grib2io.tables.section4", "qualname": "table_4_250", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'South-West', '2': 'South', '3': 'South-East', '4': 'West', '5': 'No direction', '6': 'East', '7': 'North-West', '8': 'North', '9': 'North-East', '10-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_251", "modulename": "grib2io.tables.section4", "qualname": "table_4_251", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Undefined Sequence', '1': 'Geometric sequence,(see Note 1)', '2': 'Arithmetic sequence,(see Note 2)', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_scale_time_hours", "modulename": "grib2io.tables.section4", "qualname": "table_scale_time_hours", "kind": "variable", "doc": "

\n", "default_value": "{'0': 60.0, '1': 1.0, '2': 0.041666666666666664, '3': 0.001388888888888889, '4': 0.00011415525114155251, '5': 1.1415525114155251e-05, '6': 3.80517503805175e-06, '7': 1.1415525114155251e-06, '8': 1.0, '9': 1.0, '10': 3.0, '11': 6.0, '12': 12.0, '13': 3600.0, '14-255': 1.0}"}, {"fullname": "grib2io.tables.section4.table_wgrib2_level_string", "modulename": "grib2io.tables.section4", "qualname": "table_wgrib2_level_string", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['reserved', 'reserved'], '1': ['surface', 'reserved'], '2': ['cloud base', 'reserved'], '3': ['cloud top', 'reserved'], '4': ['0C isotherm', 'reserved'], '5': ['level of adiabatic condensation from sfc', 'reserved'], '6': ['max wind', 'reserved'], '7': ['tropopause', 'reserved'], '8': ['top of atmosphere', 'reserved'], '9': ['sea bottom', 'reserved'], '10': ['entire atmosphere', 'reserved'], '11': ['cumulonimbus base', 'reserved'], '12': ['cumulonimbus top', 'reserved'], '13': ['lowest level %g%% integrated cloud cover', 'reserved'], '14': ['level of free convection', 'reserved'], '15': ['convection condensation level', 'reserved'], '16': ['level of neutral buoyancy', 'reserved'], '17': ['reserved', 'reserved'], '18': ['reserved', 'reserved'], '19': ['reserved', 'reserved'], '20': ['%g K level', 'reserved'], '21': ['lowest level > %g kg/m^3', 'reserved'], '22': ['highest level > %g kg/m^3', 'reserved'], '23': ['lowest level > %g Bq/m^3', 'reserved'], '24': ['highest level > %g Bg/m^3', 'reserved'], '25': ['reserved', 'reserved'], '26': ['reserved', 'reserved'], '27': ['reserved', 'reserved'], '28': ['reserved', 'reserved'], '29': ['reserved', 'reserved'], '30': ['reserved', 'reserved'], '31': ['reserved', 'reserved'], '32': ['reserved', 'reserved'], '33': ['reserved', 'reserved'], '34': ['reserved', 'reserved'], '35': ['reserved', 'reserved'], '36': ['reserved', 'reserved'], '37': ['reserved', 'reserved'], '38': ['reserved', 'reserved'], '39': ['reserved', 'reserved'], '40': ['reserved', 'reserved'], '41': ['reserved', 'reserved'], '42': ['reserved', 'reserved'], '43': ['reserved', 'reserved'], '44': ['reserved', 'reserved'], '45': ['reserved', 'reserved'], '46': ['reserved', 'reserved'], '47': ['reserved', 'reserved'], '48': ['reserved', 'reserved'], '49': ['reserved', 'reserved'], '50': ['reserved', 'reserved'], '51': ['reserved', 'reserved'], '52': ['reserved', 'reserved'], '53': ['reserved', 'reserved'], '54': ['reserved', 'reserved'], '55': ['reserved', 'reserved'], '56': ['reserved', 'reserved'], '57': ['reserved', 'reserved'], '58': ['reserved', 'reserved'], '59': ['reserved', 'reserved'], '60': ['reserved', 'reserved'], '61': ['reserved', 'reserved'], '62': ['reserved', 'reserved'], '63': ['reserved', 'reserved'], '64': ['reserved', 'reserved'], '65': ['reserved', 'reserved'], '66': ['reserved', 'reserved'], '67': ['reserved', 'reserved'], '68': ['reserved', 'reserved'], '69': ['reserved', 'reserved'], '70': ['reserved', 'reserved'], '71': ['reserved', 'reserved'], '72': ['reserved', 'reserved'], '73': ['reserved', 'reserved'], '74': ['reserved', 'reserved'], '75': ['reserved', 'reserved'], '76': ['reserved', 'reserved'], '77': ['reserved', 'reserved'], '78': ['reserved', 'reserved'], '79': ['reserved', 'reserved'], '80': ['reserved', 'reserved'], '81': ['reserved', 'reserved'], '82': ['reserved', 'reserved'], '83': ['reserved', 'reserved'], '84': ['reserved', 'reserved'], '85': ['reserved', 'reserved'], '86': ['reserved', 'reserved'], '87': ['reserved', 'reserved'], '88': ['reserved', 'reserved'], '89': ['reserved', 'reserved'], '90': ['reserved', 'reserved'], '91': ['reserved', 'reserved'], '92': ['reserved', 'reserved'], '93': ['reserved', 'reserved'], '94': ['reserved', 'reserved'], '95': ['reserved', 'reserved'], '96': ['reserved', 'reserved'], '97': ['reserved', 'reserved'], '98': ['reserved', 'reserved'], '99': ['reserved', 'reserved'], '100': ['%g mb', '%g-%g mb'], '101': ['mean sea level', 'reserved'], '102': ['%g m above mean sea level', '%g-%g m above mean sea level'], '103': ['%g m above ground', '%g-%g m above ground'], '104': ['%g sigma level', '%g-%g sigma layer'], '105': ['%g hybrid level', '%g-%g hybrid layer'], '106': ['%g m underground', '%g-%g m underground'], '107': ['%g K isentropic level', '%g-%g K isentropic layer'], '108': ['%g mb above ground', '%g-%g mb above ground'], '109': ['PV=%g (Km^2/kg/s) surface', 'reserved'], '110': ['reserved', 'reserved'], '111': ['%g Eta level', '%g-%g Eta layer'], '112': ['reserved', 'reserved'], '113': ['%g logarithmic hybrid level', 'reserved'], '114': ['snow level', 'reserved'], '115': ['%g sigma height level', '%g-%g sigma heigh layer'], '116': ['reserved', 'reserved'], '117': ['mixed layer depth', 'reserved'], '118': ['%g hybrid height level', '%g-%g hybrid height layer'], '119': ['%g hybrid pressure level', '%g-%g hybrid pressure layer'], '120': ['reserved', 'reserved'], '121': ['reserved', 'reserved'], '122': ['reserved', 'reserved'], '123': ['reserved', 'reserved'], '124': ['reserved', 'reserved'], '125': ['reserved', 'reserved'], '126': ['reserved', 'reserved'], '127': ['reserved', 'reserved'], '128': ['reserved', 'reserved'], '129': ['reserved', 'reserved'], '130': ['reserved', 'reserved'], '131': ['reserved', 'reserved'], '132': ['reserved', 'reserved'], '133': ['reserved', 'reserved'], '134': ['reserved', 'reserved'], '135': ['reserved', 'reserved'], '136': ['reserved', 'reserved'], '137': ['reserved', 'reserved'], '138': ['reserved', 'reserved'], '139': ['reserved', 'reserved'], '140': ['reserved', 'reserved'], '141': ['reserved', 'reserved'], '142': ['reserved', 'reserved'], '143': ['reserved', 'reserved'], '144': ['reserved', 'reserved'], '145': ['reserved', 'reserved'], '146': ['reserved', 'reserved'], '147': ['reserved', 'reserved'], '148': ['reserved', 'reserved'], '149': ['reserved', 'reserved'], '150': ['%g generalized vertical height coordinate', 'reserved'], '151': ['soil level %g', 'reserved'], '152': ['reserved', 'reserved'], '153': ['reserved', 'reserved'], '154': ['reserved', 'reserved'], '155': ['reserved', 'reserved'], '156': ['reserved', 'reserved'], '157': ['reserved', 'reserved'], '158': ['reserved', 'reserved'], '159': ['reserved', 'reserved'], '160': ['%g m below sea level', '%g-%g m below sea level'], '161': ['%g m below water surface', '%g-%g m ocean layer'], '162': ['lake or river bottom', 'reserved'], '163': ['bottom of sediment layer', 'reserved'], '164': ['bottom of thermally active sediment layer', 'reserved'], '165': ['bottom of sediment layer penetrated by thermal wave', 'reserved'], '166': ['maxing layer', 'reserved'], '167': ['bottom of root zone', 'reserved'], '168': ['reserved', 'reserved'], '169': ['reserved', 'reserved'], '170': ['reserved', 'reserved'], '171': ['reserved', 'reserved'], '172': ['reserved', 'reserved'], '173': ['reserved', 'reserved'], '174': ['top surface of ice on sea, lake or river', 'reserved'], '175': ['top surface of ice, und snow on sea, lake or river', 'reserved'], '176': ['bottom surface ice on sea, lake or river', 'reserved'], '177': ['deep soil', 'reserved'], '178': ['reserved', 'reserved'], '179': ['top surface of glacier ice and inland ice', 'reserved'], '180': ['deep inland or glacier ice', 'reserved'], '181': ['grid tile land fraction as a model surface', 'reserved'], '182': ['grid tile water fraction as a model surface', 'reserved'], '183': ['grid tile ice fraction on sea, lake or river as a model surface', 'reserved'], '184': ['grid tile glacier ice and inland ice fraction as a model surface', 'reserved'], '185': ['reserved', 'reserved'], '186': ['reserved', 'reserved'], '187': ['reserved', 'reserved'], '188': ['reserved', 'reserved'], '189': ['reserved', 'reserved'], '190': ['reserved', 'reserved'], '191': ['reserved', 'reserved'], '192': ['reserved', 'reserved'], '193': ['reserved', 'reserved'], '194': ['reserved', 'reserved'], '195': ['reserved', 'reserved'], '196': ['reserved', 'reserved'], '197': ['reserved', 'reserved'], '198': ['reserved', 'reserved'], '199': ['reserved', 'reserved'], '200': ['entire atmosphere (considered as a single layer)', 'reserved'], '201': ['entire ocean (considered as a single layer)', 'reserved'], '202': ['reserved', 'reserved'], '203': ['reserved', 'reserved'], '204': ['highest tropospheric freezing level', 'reserved'], '205': ['reserved', 'reserved'], '206': ['grid scale cloud bottom level', 'reserved'], '207': ['grid scale cloud top level', 'reserved'], '208': ['reserved', 'reserved'], '209': ['boundary layer cloud bottom level', 'reserved'], '210': ['boundary layer cloud top level', 'reserved'], '211': ['boundary layer cloud layer', 'reserved'], '212': ['low cloud bottom level', 'reserved'], '213': ['low cloud top level', 'reserved'], '214': ['low cloud layer', 'reserved'], '215': ['cloud ceiling', 'reserved'], '216': ['reserved', 'reserved'], '217': ['reserved', 'reserved'], '218': ['reserved', 'reserved'], '219': ['reserved', 'reserved'], '220': ['planetary boundary layer', 'reserved'], '221': ['layer between two hybrid levels', 'reserved'], '222': ['middle cloud bottom level', 'reserved'], '223': ['middle cloud top level', 'reserved'], '224': ['middle cloud layer', 'reserved'], '225': ['reserved', 'reserved'], '226': ['reserved', 'reserved'], '227': ['reserved', 'reserved'], '228': ['reserved', 'reserved'], '229': ['reserved', 'reserved'], '230': ['reserved', 'reserved'], '231': ['reserved', 'reserved'], '232': ['high cloud bottom level', 'reserved'], '233': ['high cloud top level', 'reserved'], '234': ['high cloud layer', 'reserved'], '235': ['%gC ocean isotherm', '%g-%gC ocean isotherm layer'], '236': ['layer between two depths below ocean surface', '%g-%g m ocean layer'], '237': ['bottom of ocean mixed layer', 'reserved'], '238': ['bottom of ocean isothermal layer', 'reserved'], '239': ['layer ocean surface and 26C ocean isothermal level', 'reserved'], '240': ['ocean mixed layer', 'reserved'], '241': ['%g in sequence', 'reserved'], '242': ['convective cloud bottom level', 'reserved'], '243': ['convective cloud top level', 'reserved'], '244': ['convective cloud layer', 'reserved'], '245': ['lowest level of the wet bulb zero', 'reserved'], '246': ['maximum equivalent potential temperature level', 'reserved'], '247': ['equilibrium level', 'reserved'], '248': ['shallow convective cloud bottom level', 'reserved'], '249': ['shallow convective cloud top level', 'reserved'], '250': ['reserved', 'reserved'], '251': ['deep convective cloud bottom level', 'reserved'], '252': ['deep convective cloud top level', 'reserved'], '253': ['lowest bottom level of supercooled liquid water layer', 'reserved'], '254': ['highest top level of supercooled liquid water layer', 'reserved'], '255': ['missing', 'reserved']}"}, {"fullname": "grib2io.tables.section4_discipline0", "modulename": "grib2io.tables.section4_discipline0", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_0", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Temperature', 'K', 'TMP'], '1': ['Virtual Temperature', 'K', 'VTMP'], '2': ['Potential Temperature', 'K', 'POT'], '3': ['Pseudo-Adiabatic Potential Temperature (or Equivalent Potential Temperature)', 'K', 'EPOT'], '4': ['Maximum Temperature', 'K', 'TMAX'], '5': ['Minimum Temperature', 'K', 'TMIN'], '6': ['Dew Point Temperature', 'K', 'DPT'], '7': ['Dew Point Depression (or Deficit)', 'K', 'DEPR'], '8': ['Lapse Rate', 'K m-1', 'LAPR'], '9': ['Temperature Anomaly', 'K', 'TMPA'], '10': ['Latent Heat Net Flux', 'W m-2', 'LHTFL'], '11': ['Sensible Heat Net Flux', 'W m-2', 'SHTFL'], '12': ['Heat Index', 'K', 'HEATX'], '13': ['Wind Chill Factor', 'K', 'WCF'], '14': ['Minimum Dew Point Depression', 'K', 'MINDPD'], '15': ['Virtual Potential Temperature', 'K', 'VPTMP'], '16': ['Snow Phase Change Heat Flux', 'W m-2', 'SNOHF'], '17': ['Skin Temperature', 'K', 'SKINT'], '18': ['Snow Temperature (top of snow)', 'K', 'SNOT'], '19': ['Turbulent Transfer Coefficient for Heat', 'Numeric', 'TTCHT'], '20': ['Turbulent Diffusion Coefficient for Heat', 'm2s-1', 'TDCHT'], '21': ['Apparent Temperature', 'K', 'APTMP'], '22': ['Temperature Tendency due to Short-Wave Radiation', 'K s-1', 'TTSWR'], '23': ['Temperature Tendency due to Long-Wave Radiation', 'K s-1', 'TTLWR'], '24': ['Temperature Tendency due to Short-Wave Radiation, Clear Sky', 'K s-1', 'TTSWRCS'], '25': ['Temperature Tendency due to Long-Wave Radiation, Clear Sky', 'K s-1', 'TTLWRCS'], '26': ['Temperature Tendency due to parameterizations', 'K s-1', 'TTPARM'], '27': ['Wet Bulb Temperature', 'K', 'WETBT'], '28': ['Unbalanced Component of Temperature', 'K', 'UCTMP'], '29': ['Temperature Advection', 'K s-1', 'TMPADV'], '30': ['Latent Heat Net Flux Due to Evaporation', 'W m-2', 'LHFLXE'], '31': ['Latent Heat Net Flux Due to Sublimation', 'W m-2', 'LHFLXS'], '32': ['Wet-Bulb Potential Temperature', 'K', 'WETBPT'], '33-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Snow Phase Change Heat Flux', 'W m-2', 'SNOHF'], '193': ['Temperature Tendency by All Radiation', 'K s-1', 'TTRAD'], '194': ['Relative Error Variance', 'unknown', 'REV'], '195': ['Large Scale Condensate Heating Rate', 'K s-1', 'LRGHR'], '196': ['Deep Convective Heating Rate', 'K s-1', 'CNVHR'], '197': ['Total Downward Heat Flux at Surface', 'W m-2', 'THFLX'], '198': ['Temperature Tendency by All Physics', 'K s-1', 'TTDIA'], '199': ['Temperature Tendency by Non-radiation Physics', 'K s-1', 'TTPHY'], '200': ['Standard Dev. of IR Temp. over 1x1 deg. area', 'K', 'TSD1D'], '201': ['Shallow Convective Heating Rate', 'K s-1', 'SHAHR'], '202': ['Vertical Diffusion Heating rate', 'K s-1', 'VDFHR'], '203': ['Potential Temperature at Top of Viscous Sublayer', 'K', 'THZ0'], '204': ['Tropical Cyclone Heat Potential', 'J m-2 K', 'TCHP'], '205': ['Effective Layer (EL) Temperature', 'C', 'ELMELT'], '206': ['Wet Bulb Globe Temperature', 'K', 'WETGLBT'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_1", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Specific Humidity', 'kg kg-1', 'SPFH'], '1': ['Relative Humidity', '%', 'RH'], '2': ['Humidity Mixing Ratio', 'kg kg-1', 'MIXR'], '3': ['Precipitable Water', 'kg m-2', 'PWAT'], '4': ['Vapour Pressure', 'Pa', 'VAPP'], '5': ['Saturation Deficit', 'Pa', 'SATD'], '6': ['Evaporation', 'kg m-2', 'EVP'], '7': ['Precipitation Rate', 'kg m-2 s-1', 'PRATE'], '8': ['Total Precipitation', 'kg m-2', 'APCP'], '9': ['Large-Scale Precipitation (non-convective)', 'kg m-2', 'NCPCP'], '10': ['Convective Precipitation', 'kg m-2', 'ACPCP'], '11': ['Snow Depth', 'm', 'SNOD'], '12': ['Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'SRWEQ'], '13': ['Water Equivalent of Accumulated Snow Depth', 'kg m-2', 'WEASD'], '14': ['Convective Snow', 'kg m-2', 'SNOC'], '15': ['Large-Scale Snow', 'kg m-2', 'SNOL'], '16': ['Snow Melt', 'kg m-2', 'SNOM'], '17': ['Snow Age', 'day', 'SNOAG'], '18': ['Absolute Humidity', 'kg m-3', 'ABSH'], '19': ['Precipitation Type', 'See Table 4.201', 'PTYPE'], '20': ['Integrated Liquid Water', 'kg m-2', 'ILIQW'], '21': ['Condensate', 'kg kg-1', 'TCOND'], '22': ['Cloud Mixing Ratio', 'kg kg-1', 'CLMR'], '23': ['Ice Water Mixing Ratio', 'kg kg-1', 'ICMR'], '24': ['Rain Mixing Ratio', 'kg kg-1', 'RWMR'], '25': ['Snow Mixing Ratio', 'kg kg-1', 'SNMR'], '26': ['Horizontal Moisture Convergence', 'kg kg-1 s-1', 'MCONV'], '27': ['Maximum Relative Humidity', '%', 'MAXRH'], '28': ['Maximum Absolute Humidity', 'kg m-3', 'MAXAH'], '29': ['Total Snowfall', 'm', 'ASNOW'], '30': ['Precipitable Water Category', 'See Table 4.202', 'PWCAT'], '31': ['Hail', 'm', 'HAIL'], '32': ['Graupel', 'kg kg-1', 'GRLE'], '33': ['Categorical Rain', 'Code table 4.222', 'CRAIN'], '34': ['Categorical Freezing Rain', 'Code table 4.222', 'CFRZR'], '35': ['Categorical Ice Pellets', 'Code table 4.222', 'CICEP'], '36': ['Categorical Snow', 'Code table 4.222', 'CSNOW'], '37': ['Convective Precipitation Rate', 'kg m-2 s-1', 'CPRAT'], '38': ['Horizontal Moisture Divergence', 'kg kg-1 s-1', 'MDIVER'], '39': ['Percent frozen precipitation', '%', 'CPOFP'], '40': ['Potential Evaporation', 'kg m-2', 'PEVAP'], '41': ['Potential Evaporation Rate', 'W m-2', 'PEVPR'], '42': ['Snow Cover', '%', 'SNOWC'], '43': ['Rain Fraction of Total Cloud Water', 'Proportion', 'FRAIN'], '44': ['Rime Factor', 'Numeric', 'RIME'], '45': ['Total Column Integrated Rain', 'kg m-2', 'TCOLR'], '46': ['Total Column Integrated Snow', 'kg m-2', 'TCOLS'], '47': ['Large Scale Water Precipitation (Non-Convective)', 'kg m-2', 'LSWP'], '48': ['Convective Water Precipitation', 'kg m-2', 'CWP'], '49': ['Total Water Precipitation', 'kg m-2', 'TWATP'], '50': ['Total Snow Precipitation', 'kg m-2', 'TSNOWP'], '51': ['Total Column Water (Vertically integrated total water (vapour+cloud water/ice)', 'kg m-2', 'TCWAT'], '52': ['Total Precipitation Rate', 'kg m-2 s-1', 'TPRATE'], '53': ['Total Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'TSRWE'], '54': ['Large Scale Precipitation Rate', 'kg m-2 s-1', 'LSPRATE'], '55': ['Convective Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'CSRWE'], '56': ['Large Scale Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'LSSRWE'], '57': ['Total Snowfall Rate', 'm s-1', 'TSRATE'], '58': ['Convective Snowfall Rate', 'm s-1', 'CSRATE'], '59': ['Large Scale Snowfall Rate', 'm s-1', 'LSSRATE'], '60': ['Snow Depth Water Equivalent', 'kg m-2', 'SDWE'], '61': ['Snow Density', 'kg m-3', 'SDEN'], '62': ['Snow Evaporation', 'kg m-2', 'SEVAP'], '63': ['Reserved', 'unknown', 'unknown'], '64': ['Total Column Integrated Water Vapour', 'kg m-2', 'TCIWV'], '65': ['Rain Precipitation Rate', 'kg m-2 s-1', 'RPRATE'], '66': ['Snow Precipitation Rate', 'kg m-2 s-1', 'SPRATE'], '67': ['Freezing Rain Precipitation Rate', 'kg m-2 s-1', 'FPRATE'], '68': ['Ice Pellets Precipitation Rate', 'kg m-2 s-1', 'IPRATE'], '69': ['Total Column Integrate Cloud Water', 'kg m-2', 'TCOLW'], '70': ['Total Column Integrate Cloud Ice', 'kg m-2', 'TCOLI'], '71': ['Hail Mixing Ratio', 'kg kg-1', 'HAILMXR'], '72': ['Total Column Integrate Hail', 'kg m-2', 'TCOLH'], '73': ['Hail Prepitation Rate', 'kg m-2 s-1', 'HAILPR'], '74': ['Total Column Integrate Graupel', 'kg m-2', 'TCOLG'], '75': ['Graupel (Snow Pellets) Prepitation Rate', 'kg m-2 s-1', 'GPRATE'], '76': ['Convective Rain Rate', 'kg m-2 s-1', 'CRRATE'], '77': ['Large Scale Rain Rate', 'kg m-2 s-1', 'LSRRATE'], '78': ['Total Column Integrate Water (All components including precipitation)', 'kg m-2', 'TCOLWA'], '79': ['Evaporation Rate', 'kg m-2 s-1', 'EVARATE'], '80': ['Total Condensate', 'kg kg-1', 'TOTCON'], '81': ['Total Column-Integrate Condensate', 'kg m-2', 'TCICON'], '82': ['Cloud Ice Mixing Ratio', 'kg kg-1', 'CIMIXR'], '83': ['Specific Cloud Liquid Water Content', 'kg kg-1', 'SCLLWC'], '84': ['Specific Cloud Ice Water Content', 'kg kg-1', 'SCLIWC'], '85': ['Specific Rain Water Content', 'kg kg-1', 'SRAINW'], '86': ['Specific Snow Water Content', 'kg kg-1', 'SSNOWW'], '87': ['Stratiform Precipitation Rate', 'kg m-2 s-1', 'STRPRATE'], '88': ['Categorical Convective Precipitation', 'Code table 4.222', 'CATCP'], '89': ['Reserved', 'unknown', 'unknown'], '90': ['Total Kinematic Moisture Flux', 'kg kg-1 m s-1', 'TKMFLX'], '91': ['U-component (zonal) Kinematic Moisture Flux', 'kg kg-1 m s-1', 'UKMFLX'], '92': ['V-component (meridional) Kinematic Moisture Flux', 'kg kg-1 m s-1', 'VKMFLX'], '93': ['Relative Humidity With Respect to Water', '%', 'RHWATER'], '94': ['Relative Humidity With Respect to Ice', '%', 'RHICE'], '95': ['Freezing or Frozen Precipitation Rate', 'kg m-2 s-1', 'FZPRATE'], '96': ['Mass Density of Rain', 'kg m-3', 'MASSDR'], '97': ['Mass Density of Snow', 'kg m-3', 'MASSDS'], '98': ['Mass Density of Graupel', 'kg m-3', 'MASSDG'], '99': ['Mass Density of Hail', 'kg m-3', 'MASSDH'], '100': ['Specific Number Concentration of Rain', 'kg-1', 'SPNCR'], '101': ['Specific Number Concentration of Snow', 'kg-1', 'SPNCS'], '102': ['Specific Number Concentration of Graupel', 'kg-1', 'SPNCG'], '103': ['Specific Number Concentration of Hail', 'kg-1', 'SPNCH'], '104': ['Number Density of Rain', 'm-3', 'NUMDR'], '105': ['Number Density of Snow', 'm-3', 'NUMDS'], '106': ['Number Density of Graupel', 'm-3', 'NUMDG'], '107': ['Number Density of Hail', 'm-3', 'NUMDH'], '108': ['Specific Humidity Tendency due to Parameterizations', 'kg kg-1 s-1', 'SHTPRM'], '109': ['Mass Density of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Volume of Air', 'kg m-3', 'MDLWHVA'], '110': ['Specific Mass of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Mass of Moist Air', 'kg kg-1', 'SMLWHMA'], '111': ['Mass Mixing Ratio of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Mass of Dry Air', 'kg kg-1', 'MMLWHDA'], '112': ['Mass Density of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Volume of Air', 'kg m-3', 'MDLWGVA'], '113': ['Specific Mass of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Mass of Moist Air', 'kg kg-1', 'SMLWGMA'], '114': ['Mass Mixing Ratio of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Mass of Dry Air', 'kg kg-1', 'MMLWGDA'], '115': ['Mass Density of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Volume of Air', 'kg m-3', 'MDLWSVA'], '116': ['Specific Mass of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Mass of Moist Air', 'kg kg-1', 'SMLWSMA'], '117': ['Mass Mixing Ratio of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Mass of Dry Air', 'kg kg-1', 'MMLWSDA'], '118': ['Unbalanced Component of Specific Humidity', 'kg kg-1', 'UNCSH'], '119': ['Unbalanced Component of Specific Cloud Liquid Water content', 'kg kg-1', 'UCSCLW'], '120': ['Unbalanced Component of Specific Cloud Ice Water content', 'kg kg-1', 'UCSCIW'], '121': ['Fraction of Snow Cover', 'Proportion', 'FSNOWC'], '122': ['Precipitation intensity index', 'See Table 4.247', 'PIIDX'], '123': ['Domiunknownt precipitation type', 'See Table 4.201', 'DPTYPE'], '124': ['Presence of showers', 'See Table 4.222', 'PSHOW'], '125': ['Presence of blowing snow', 'See Table 4.222', 'PBSNOW'], '126': ['Presence of blizzard', 'See Table 4.222', 'PBLIZZ'], '127': ['Ice pellets (non-water equivalent) precipitation rate', 'm s-1', 'ICEP'], '128': ['Total solid precipitation rate', 'kg m-2 s-1', 'TSPRATE'], '129': ['Effective Radius of Cloud Water', 'm', 'EFRCWAT'], '130': ['Effective Radius of Rain', 'm', 'EFRRAIN'], '131': ['Effective Radius of Cloud Ice', 'm', 'EFRCICE'], '132': ['Effective Radius of Snow', 'm', 'EFRSNOW'], '133': ['Effective Radius of Graupel', 'm', 'EFRGRL'], '134': ['Effective Radius of Hail', 'm', 'EFRHAIL'], '135': ['Effective Radius of Subgrid Liquid Clouds', 'm', 'EFRSLC'], '136': ['Effective Radius of Subgrid Ice Clouds', 'm', 'EFRSICEC'], '137': ['Effective Aspect Ratio of Rain', 'unknown', 'EFARRAIN'], '138': ['Effective Aspect Ratio of Cloud Ice', 'unknown', 'EFARCICE'], '139': ['Effective Aspect Ratio of Snow', 'unknown', 'EFARSNOW'], '140': ['Effective Aspect Ratio of Graupel', 'unknown', 'EFARGRL'], '141': ['Effective Aspect Ratio of Hail', 'unknown', 'EFARHAIL'], '142': ['Effective Aspect Ratio of Subgrid Ice Clouds', 'unknown', 'EFARSIC'], '143': ['Potential evaporation rate', 'kg m-2 s-1', 'PERATE'], '144': ['Specific rain water content (convective)', 'kg kg-1', 'SRWATERC'], '145': ['Specific snow water content (convective)', 'kg kg-1', 'SSNOWWC'], '146': ['Cloud ice precipitation rate', 'kg m-2 s-1', 'CICEPR'], '147': ['Character of precipitation', 'See Table 4.249', 'CHPRECIP'], '148': ['Snow evaporation rate', 'kg m-2 s-1', 'SNOWERAT'], '149': ['Cloud water mixing ratio', 'kg kg-1', 'CWATERMR'], '150': ['Column integrated eastward water vapour mass flux', 'kg m-1s-1', 'CEWVMF'], '151': ['Column integrated northward water vapour mass flux', 'kg m-1s-1', 'CNWVMF'], '152': ['Column integrated eastward cloud liquid water mass flux', 'kg m-1s-1', 'CECLWMF'], '153': ['Column integrated northward cloud liquid water mass flux', 'kg m-1s-1', 'CNCLWMF'], '154': ['Column integrated eastward cloud ice mass flux', 'kg m-1s-1', 'CECIMF'], '155': ['Column integrated northward cloud ice mass flux', 'kg m-1s-1', 'CNCIMF'], '156': ['Column integrated eastward rain mass flux', 'kg m-1s-1', 'CERMF'], '157': ['Column integrated northward rain mass flux', 'kg m-1s-1', 'CNRMF'], '158': ['Column integrated eastward snow mass flux', 'kg m-1s-1', 'CEFMF'], '159': ['Column integrated northward snow mass flux', 'kg m-1s-1', 'CNSMF'], '160': ['Column integrated divergence of water vapour mass flux', 'kg m-1s-1', 'CDWFMF'], '161': ['Column integrated divergence of cloud liquid water mass flux', 'kg m-1s-1', 'CDCLWMF'], '162': ['Column integrated divergence of cloud ice mass flux', 'kg m-1s-1', 'CDCIMF'], '163': ['Column integrated divergence of rain mass flux', 'kg m-1s-1', 'CDRMF'], '164': ['Column integrated divergence of snow mass flux', 'kg m-1s-1', 'CDSMF'], '165': ['Column integrated divergence of total water mass flux', 'kg m-1s-1', 'CDTWMF'], '166': ['Column integrated water vapour flux', 'kg m-1s-1', 'CWVF'], '167': ['Total column supercooled liquid water', 'kg m-2', 'TCSLW'], '168': ['Saturation specific humidity with respect to water', 'kg m-3', 'SSPFHW'], '169': ['Total column integrated saturation specific humidity with respect to water', 'kg m-2', 'TCISSPFHW'], '170-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Categorical Rain', 'Code table 4.222', 'CRAIN'], '193': ['Categorical Freezing Rain', 'Code table 4.222', 'CFRZR'], '194': ['Categorical Ice Pellets', 'Code table 4.222', 'CICEP'], '195': ['Categorical Snow', 'Code table 4.222', 'CSNOW'], '196': ['Convective Precipitation Rate', 'kg m-2 s-1', 'CPRAT'], '197': ['Horizontal Moisture Divergence', 'kg kg-1 s-1', 'MDIV'], '198': ['Minimum Relative Humidity', '%', 'MINRH'], '199': ['Potential Evaporation', 'kg m-2', 'PEVAP'], '200': ['Potential Evaporation Rate', 'W m-2', 'PEVPR'], '201': ['Snow Cover', '%', 'SNOWC'], '202': ['Rain Fraction of Total Liquid Water', 'non-dim', 'FRAIN'], '203': ['Rime Factor', 'non-dim', 'RIME'], '204': ['Total Column Integrated Rain', 'kg m-2', 'TCOLR'], '205': ['Total Column Integrated Snow', 'kg m-2', 'TCOLS'], '206': ['Total Icing Potential Diagnostic', 'non-dim', 'TIPD'], '207': ['Number concentration for ice particles', 'non-dim', 'NCIP'], '208': ['Snow temperature', 'K', 'SNOT'], '209': ['Total column-integrated supercooled liquid water', 'kg m-2', 'TCLSW'], '210': ['Total column-integrated melting ice', 'kg m-2', 'TCOLM'], '211': ['Evaporation - Precipitation', 'cm/day', 'EMNP'], '212': ['Sublimation (evaporation from snow)', 'W m-2', 'SBSNO'], '213': ['Deep Convective Moistening Rate', 'kg kg-1 s-1', 'CNVMR'], '214': ['Shallow Convective Moistening Rate', 'kg kg-1 s-1', 'SHAMR'], '215': ['Vertical Diffusion Moistening Rate', 'kg kg-1 s-1', 'VDFMR'], '216': ['Condensation Pressure of Parcali Lifted From Indicate Surface', 'Pa', 'CONDP'], '217': ['Large scale moistening rate', 'kg kg-1 s-1', 'LRGMR'], '218': ['Specific humidity at top of viscous sublayer', 'kg kg-1', 'QZ0'], '219': ['Maximum specific humidity at 2m', 'kg kg-1', 'QMAX'], '220': ['Minimum specific humidity at 2m', 'kg kg-1', 'QMIN'], '221': ['Liquid precipitation (Rainfall)', 'kg m-2', 'ARAIN'], '222': ['Snow temperature, depth-avg', 'K', 'SNOWT'], '223': ['Total precipitation (nearest grid point)', 'kg m-2', 'APCPN'], '224': ['Convective precipitation (nearest grid point)', 'kg m-2', 'ACPCPN'], '225': ['Freezing Rain', 'kg m-2', 'FRZR'], '226': ['Predominant Weather (see Local Use Note A)', 'Numeric', 'PWTHER'], '227': ['Frozen Rain', 'kg m-2', 'FROZR'], '228': ['Flat Ice Accumulation (FRAM)', 'kg m-2', 'FICEAC'], '229': ['Line Ice Accumulation (FRAM)', 'kg m-2', 'LICEAC'], '230': ['Sleet Accumulation', 'kg m-2', 'SLACC'], '231': ['Precipitation Potential Index', '%', 'PPINDX'], '232': ['Probability Cloud Ice Present', '%', 'PROBCIP'], '233': ['Snow Liquid ratio', 'kg kg-1', 'SNOWLR'], '234': ['Precipitation Duration', 'hour', 'PCPDUR'], '235': ['Cloud Liquid Mixing Ratio', 'kg kg-1', 'CLLMR'], '236-240': ['Reserved', 'unknown', 'unknown'], '241': ['Total Snow', 'kg m-2', 'TSNOW'], '242': ['Relative Humidity with Respect to Precipitable Water', '%', 'RHPW'], '245': ['Hourly Maximum of Column Vertical Integrated Graupel on Entire Atmosphere', 'kg m-2', 'MAXVIG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_2", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Wind Direction (from which blowing)', '\u00b0', 'WDIR'], '1': ['Wind Speed', 'm s-1', 'WIND'], '2': ['U-Component of Wind', 'm s-1', 'UGRD'], '3': ['V-Component of Wind', 'm s-1', 'VGRD'], '4': ['Stream Function', 'm2 s-1', 'STRM'], '5': ['Velocity Potential', 'm2 s-1', 'VPOT'], '6': ['Montgomery Stream Function', 'm2 s-2', 'MNTSF'], '7': ['Sigma Coordinate Vertical Velocity', 's-1', 'SGCVV'], '8': ['Vertical Velocity (Pressure)', 'Pa s-1', 'VVEL'], '9': ['Vertical Velocity (Geometric)', 'm s-1', 'DZDT'], '10': ['Absolute Vorticity', 's-1', 'ABSV'], '11': ['Absolute Divergence', 's-1', 'ABSD'], '12': ['Relative Vorticity', 's-1', 'RELV'], '13': ['Relative Divergence', 's-1', 'RELD'], '14': ['Potential Vorticity', 'K m2 kg-1 s-1', 'PVORT'], '15': ['Vertical U-Component Shear', 's-1', 'VUCSH'], '16': ['Vertical V-Component Shear', 's-1', 'VVCSH'], '17': ['Momentum Flux, U-Component', 'N m-2', 'UFLX'], '18': ['Momentum Flux, V-Component', 'N m-2', 'VFLX'], '19': ['Wind Mixing Energy', 'J', 'WMIXE'], '20': ['Boundary Layer Dissipation', 'W m-2', 'BLYDP'], '21': ['Maximum Wind Speed', 'm s-1', 'MAXGUST'], '22': ['Wind Speed (Gust)', 'm s-1', 'GUST'], '23': ['U-Component of Wind (Gust)', 'm s-1', 'UGUST'], '24': ['V-Component of Wind (Gust)', 'm s-1', 'VGUST'], '25': ['Vertical Speed Shear', 's-1', 'VWSH'], '26': ['Horizontal Momentum Flux', 'N m-2', 'MFLX'], '27': ['U-Component Storm Motion', 'm s-1', 'USTM'], '28': ['V-Component Storm Motion', 'm s-1', 'VSTM'], '29': ['Drag Coefficient', 'Numeric', 'CD'], '30': ['Frictional Velocity', 'm s-1', 'FRICV'], '31': ['Turbulent Diffusion Coefficient for Momentum', 'm2 s-1', 'TDCMOM'], '32': ['Eta Coordinate Vertical Velocity', 's-1', 'ETACVV'], '33': ['Wind Fetch', 'm', 'WINDF'], '34': ['Normal Wind Component', 'm s-1', 'NWIND'], '35': ['Tangential Wind Component', 'm s-1', 'TWIND'], '36': ['Amplitude Function for Rossby Wave Envelope for Meridional Wind', 'm s-1', 'AFRWE'], '37': ['Northward Turbulent Surface Stress', 'N m-2 s', 'NTSS'], '38': ['Eastward Turbulent Surface Stress', 'N m-2 s', 'ETSS'], '39': ['Eastward Wind Tendency Due to Parameterizations', 'm s-2', 'EWTPARM'], '40': ['Northward Wind Tendency Due to Parameterizations', 'm s-2', 'NWTPARM'], '41': ['U-Component of Geostrophic Wind', 'm s-1', 'UGWIND'], '42': ['V-Component of Geostrophic Wind', 'm s-1', 'VGWIND'], '43': ['Geostrophic Wind Direction', '\u00b0', 'GEOWD'], '44': ['Geostrophic Wind Speed', 'm s-1', 'GEOWS'], '45': ['Unbalanced Component of Divergence', 's-1', 'UNDIV'], '46': ['Vorticity Advection', 's-2', 'VORTADV'], '47': ['Surface roughness for heat,(see Note 5)', 'm', 'SFRHEAT'], '48': ['Surface roughness for moisture,(see Note 6)', 'm', 'SFRMOIST'], '49': ['Wind stress', 'N m-2', 'WINDSTR'], '50': ['Eastward wind stress', 'N m-2', 'EWINDSTR'], '51': ['Northward wind stress', 'N m-2', 'NWINDSTR'], '52': ['u-component of wind stress', 'N m-2', 'UWINDSTR'], '53': ['v-component of wind stress', 'N m-2', 'VWINDSTR'], '54': ['Natural logarithm of surface roughness length for heat', 'm', 'NLSRLH'], '55': ['Natural logarithm of surface roughness length for moisture', 'm', 'NLSRLM'], '56': ['u-component of neutral wind', 'm s-1', 'UNWIND'], '57': ['v-component of neutral wind', 'm s-1', 'VNWIND'], '58': ['Magnitude of turbulent surface stress', 'N m-2', 'TSFCSTR'], '59': ['Vertical divergence', 's-1', 'VDIV'], '60': ['Drag thermal coefficient', 'Numeric', 'DTC'], '61': ['Drag evaporation coefficient', 'Numeric', 'DEC'], '62': ['Eastward turbulent surface stress', 'N m-2', 'EASTTSS'], '63': ['Northward turbulent surface stress', 'N m-2', 'NRTHTSS'], '64': ['Eastward turbulent surface stress due to orographic form drag', 'N m-2', 'EASTTSSOD'], '65': ['Northward turbulent surface stress due to orographic form drag', 'N m-2', 'NRTHTSSOD'], '66': ['Eastward turbulent surface stress due to surface roughness', 'N m-2', 'EASTTSSSR'], '67': ['Northward turbulent surface stress due to surface roughness', 'N m-2', 'NRTHTSSSR'], '68-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Vertical Speed Shear', 's-1', 'VWSH'], '193': ['Horizontal Momentum Flux', 'N m-2', 'MFLX'], '194': ['U-Component Storm Motion', 'm s-1', 'USTM'], '195': ['V-Component Storm Motion', 'm s-1', 'VSTM'], '196': ['Drag Coefficient', 'non-dim', 'CD'], '197': ['Frictional Velocity', 'm s-1', 'FRICV'], '198': ['Latitude of U Wind Component of Velocity', 'deg', 'LAUV'], '199': ['Longitude of U Wind Component of Velocity', 'deg', 'LOUV'], '200': ['Latitude of V Wind Component of Velocity', 'deg', 'LAVV'], '201': ['Longitude of V Wind Component of Velocity', 'deg', 'LOVV'], '202': ['Latitude of Presure Point', 'deg', 'LAPP'], '203': ['Longitude of Presure Point', 'deg', 'LOPP'], '204': ['Vertical Eddy Diffusivity Heat exchange', 'm2 s-1', 'VEDH'], '205': ['Covariance between Meridional and Zonal Components of the wind.', 'm2 s-2', 'COVMZ'], '206': ['Covariance between Temperature and Zonal Components of the wind.', 'K*m s-1', 'COVTZ'], '207': ['Covariance between Temperature and Meridional Components of the wind.', 'K*m s-1', 'COVTM'], '208': ['Vertical Diffusion Zonal Acceleration', 'm s-2', 'VDFUA'], '209': ['Vertical Diffusion Meridional Acceleration', 'm s-2', 'VDFVA'], '210': ['Gravity wave drag zonal acceleration', 'm s-2', 'GWDU'], '211': ['Gravity wave drag meridional acceleration', 'm s-2', 'GWDV'], '212': ['Convective zonal momentum mixing acceleration', 'm s-2', 'CNVU'], '213': ['Convective meridional momentum mixing acceleration', 'm s-2', 'CNVV'], '214': ['Tendency of vertical velocity', 'm s-2', 'WTEND'], '215': ['Omega (Dp/Dt) divide by density', 'K', 'OMGALF'], '216': ['Convective Gravity wave drag zonal acceleration', 'm s-2', 'CNGWDU'], '217': ['Convective Gravity wave drag meridional acceleration', 'm s-2', 'CNGWDV'], '218': ['Velocity Point Model Surface', 'unknown', 'LMV'], '219': ['Potential Vorticity (Mass-Weighted)', '1/s/m', 'PVMWW'], '220': ['Hourly Maximum of Upward Vertical Velocity', 'm s-1', 'MAXUVV'], '221': ['Hourly Maximum of Downward Vertical Velocity', 'm s-1', 'MAXDVV'], '222': ['U Component of Hourly Maximum 10m Wind Speed', 'm s-1', 'MAXUW'], '223': ['V Component of Hourly Maximum 10m Wind Speed', 'm s-1', 'MAXVW'], '224': ['Ventilation Rate', 'm2 s-1', 'VRATE'], '225': ['Transport Wind Speed', 'm s-1', 'TRWSPD'], '226': ['Transport Wind Direction', 'Deg', 'TRWDIR'], '227': ['Earliest Reasonable Arrival Time (10% exceedance)', 's', 'TOA10'], '228': ['Most Likely Arrival Time (50% exceedance)', 's', 'TOA50'], '229': ['Most Likely Departure Time (50% exceedance)', 's', 'TOD50'], '230': ['Latest Reasonable Departure Time (90% exceedance)', 's', 'TOD90'], '231': ['Tropical Wind Direction', '\u00b0', 'TPWDIR'], '232': ['Tropical Wind Speed', 'm s-1', 'TPWSPD'], '233': ['Inflow Based (ESFC) to 50% EL Shear Magnitude', 'kt', 'ESHR'], '234': ['U Component Inflow Based to 50% EL Shear Vector', 'kt', 'UESH'], '235': ['V Component Inflow Based to 50% EL Shear Vector', 'kt', 'VESH'], '236': ['U Component Bunkers Effective Right Motion', 'kt', 'UEID'], '237': ['V Component Bunkers Effective Right Motion', 'kt', 'VEID'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_3", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Pressure', 'Pa', 'PRES'], '1': ['Pressure Reduced to MSL', 'Pa', 'PRMSL'], '2': ['Pressure Tendency', 'Pa s-1', 'PTEND'], '3': ['ICAO Standard Atmosphere Reference Height', 'm', 'ICAHT'], '4': ['Geopotential', 'm2 s-2', 'GP'], '5': ['Geopotential Height', 'gpm', 'HGT'], '6': ['Geometric Height', 'm', 'DIST'], '7': ['Standard Deviation of Height', 'm', 'HSTDV'], '8': ['Pressure Anomaly', 'Pa', 'PRESA'], '9': ['Geopotential Height Anomaly', 'gpm', 'GPA'], '10': ['Density', 'kg m-3', 'DEN'], '11': ['Altimeter Setting', 'Pa', 'ALTS'], '12': ['Thickness', 'm', 'THICK'], '13': ['Pressure Altitude', 'm', 'PRESALT'], '14': ['Density Altitude', 'm', 'DENALT'], '15': ['5-Wave Geopotential Height', 'gpm', '5WAVH'], '16': ['Zonal Flux of Gravity Wave Stress', 'N m-2', 'U-GWD'], '17': ['Meridional Flux of Gravity Wave Stress', 'N m-2', 'V-GWD'], '18': ['Planetary Boundary Layer Height', 'm', 'HPBL'], '19': ['5-Wave Geopotential Height Anomaly', 'gpm', '5WAVA'], '20': ['Standard Deviation of Sub-Grid Scale Orography', 'm', 'SDSGSO'], '21': ['Angle of Sub-Grid Scale Orography', 'rad', 'AOSGSO'], '22': ['Slope of Sub-Grid Scale Orography', 'Numeric', 'SSGSO'], '23': ['Gravity Wave Dissipation', 'W m-2', 'GWD'], '24': ['Anisotropy of Sub-Grid Scale Orography', 'Numeric', 'ASGSO'], '25': ['Natural Logarithm of Pressure in Pa', 'Numeric', 'NLPRES'], '26': ['Exner Pressure', 'Numeric', 'EXPRES'], '27': ['Updraught Mass Flux', 'kg m-2 s-1', 'UMFLX'], '28': ['Downdraught Mass Flux', 'kg m-2 s-1', 'DMFLX'], '29': ['Updraught Detrainment Rate', 'kg m-3 s-1', 'UDRATE'], '30': ['Downdraught Detrainment Rate', 'kg m-3 s-1', 'DDRATE'], '31': ['Unbalanced Component of Logarithm of Surface Pressure', '-', 'UCLSPRS'], '32': ['Saturation water vapour pressure', 'Pa', 'SWATERVP'], '33': ['Geometric altitude above mean sea level', 'm', 'GAMSL'], '34': ['Geometric height above ground level', 'm', 'GHAGRD'], '35': ['Column integrated divergence of total mass flux', 'kg m-2 s-1', 'CDTMF'], '36': ['Column integrated eastward total mass flux', 'kg m-2 s-1', 'CETMF'], '37': ['Column integrated northward total mass flux', 'kg m-2 s-1', 'CNTMF'], '38': ['Standard deviation of filtered subgrid orography', 'm', 'SDFSO'], '39': ['Column integrated mass of atmosphere', 'kg m-2 s-1', 'CMATMOS'], '40': ['Column integrated eastward geopotential flux', 'W m-1', 'CEGFLUX'], '41': ['Column integrated northward geopotential flux', 'W m-1', 'CNGFLUX'], '42': ['Column integrated divergence of water geopotential flux', 'W m-2', 'CDWGFLUX'], '43': ['Column integrated divergence of geopotential flux', 'W m-2', 'CDGFLUX'], '44': ['Height of zero-degree wet-bulb temperature', 'm', 'HWBT'], '45': ['Height of one-degree wet-bulb temperature', 'm', 'WOBT'], '46': ['Pressure departure from hydrostatic state', 'Pa', 'PRESDHS'], '47-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['MSLP (Eta model reduction)', 'Pa', 'MSLET'], '193': ['5-Wave Geopotential Height', 'gpm', '5WAVH'], '194': ['Zonal Flux of Gravity Wave Stress', 'N m-2', 'U-GWD'], '195': ['Meridional Flux of Gravity Wave Stress', 'N m-2', 'V-GWD'], '196': ['Planetary Boundary Layer Height', 'm', 'HPBL'], '197': ['5-Wave Geopotential Height Anomaly', 'gpm', '5WAVA'], '198': ['MSLP (MAPS System Reduction)', 'Pa', 'MSLMA'], '199': ['3-hr pressure tendency (Std. Atmos. Reduction)', 'Pa s-1', 'TSLSA'], '200': ['Pressure of level from which parcel was lifted', 'Pa', 'PLPL'], '201': ['X-gradient of Log Pressure', 'm-1', 'LPSX'], '202': ['Y-gradient of Log Pressure', 'm-1', 'LPSY'], '203': ['X-gradient of Height', 'm-1', 'HGTX'], '204': ['Y-gradient of Height', 'm-1', 'HGTY'], '205': ['Layer Thickness', 'm', 'LAYTH'], '206': ['Natural Log of Surface Pressure', 'ln (kPa)', 'NLGSP'], '207': ['Convective updraft mass flux', 'kg m-2 s-1', 'CNVUMF'], '208': ['Convective downdraft mass flux', 'kg m-2 s-1', 'CNVDMF'], '209': ['Convective detrainment mass flux', 'kg m-2 s-1', 'CNVDEMF'], '210': ['Mass Point Model Surface', 'unknown', 'LMH'], '211': ['Geopotential Height (nearest grid point)', 'gpm', 'HGTN'], '212': ['Pressure (nearest grid point)', 'Pa', 'PRESN'], '213': ['Orographic Convexity', 'unknown', 'ORCONV'], '214': ['Orographic Asymmetry, W Component', 'unknown', 'ORASW'], '215': ['Orographic Asymmetry, S Component', 'unknown', 'ORASS'], '216': ['Orographic Asymmetry, SW Component', 'unknown', 'ORASSW'], '217': ['Orographic Asymmetry, NW Component', 'unknown', 'ORASNW'], '218': ['Orographic Length Scale, W Component', 'unknown', 'ORLSW'], '219': ['Orographic Length Scale, S Component', 'unknown', 'ORLSS'], '220': ['Orographic Length Scale, SW Component', 'unknown', 'ORLSSW'], '221': ['Orographic Length Scale, NW Component', 'unknown', 'ORLSNW'], '222': ['Effective Surface Height', 'm', 'EFSH'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_4", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Net Short-Wave Radiation Flux (Surface)', 'W m-2', 'NSWRS'], '1': ['Net Short-Wave Radiation Flux (Top of Atmosphere)', 'W m-2', 'NSWRT'], '2': ['Short-Wave Radiation Flux', 'W m-2', 'SWAVR'], '3': ['Global Radiation Flux', 'W m-2', 'GRAD'], '4': ['Brightness Temperature', 'K', 'BRTMP'], '5': ['Radiance (with respect to wave number)', 'W m-1 sr-1', 'LWRAD'], '6': ['Radiance (with respect to wavelength)', 'W m-3 sr-1', 'SWRAD'], '7': ['Downward Short-Wave Radiation Flux', 'W m-2', 'DSWRF'], '8': ['Upward Short-Wave Radiation Flux', 'W m-2', 'USWRF'], '9': ['Net Short Wave Radiation Flux', 'W m-2', 'NSWRF'], '10': ['Photosynthetically Active Radiation', 'W m-2', 'PHOTAR'], '11': ['Net Short-Wave Radiation Flux, Clear Sky', 'W m-2', 'NSWRFCS'], '12': ['Downward UV Radiation', 'W m-2', 'DWUVR'], '13': ['Direct Short Wave Radiation Flux', 'W m-2', 'DSWRFLX'], '14': ['Diffuse Short Wave Radiation Flux', 'W m-2', 'DIFSWRF'], '15': ['Upward UV radiation emitted/reflected from the Earths surface', 'W m-2', 'UVVEARTH'], '16-49': ['Reserved', 'unknown', 'unknown'], '50': ['UV Index (Under Clear Sky)', 'Numeric', 'UVIUCS'], '51': ['UV Index', 'Numeric', 'UVI'], '52': ['Downward Short-Wave Radiation Flux, Clear Sky', 'W m-2', 'DSWRFCS'], '53': ['Upward Short-Wave Radiation Flux, Clear Sky', 'W m-2', 'USWRFCS'], '54': ['Direct normal short-wave radiation flux,(see Note 3)', 'W m-2', 'DNSWRFLX'], '55': ['UV visible albedo for diffuse radiation', '%', 'UVALBDIF'], '56': ['UV visible albedo for direct radiation', '%', 'UVALBDIR'], '57': ['UV visible albedo for direct radiation, geometric component', '%', 'UBALBDIRG'], '58': ['UV visible albedo for direct radiation, isotropic component', '%', 'UVALBDIRI'], '59': ['UV visible albedo for direct radiation, volumetric component', '%', 'UVBDIRV'], '60': ['Photosynthetically active radiation flux, clear sky', 'W m-2', 'PHOARFCS'], '61': ['Direct short-wave radiation flux, clear sky', 'W m-2', 'DSWRFLXCS'], '62-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Downward Short-Wave Radiation Flux', 'W m-2', 'DSWRF'], '193': ['Upward Short-Wave Radiation Flux', 'W m-2', 'USWRF'], '194': ['UV-B Downward Solar Flux', 'W m-2', 'DUVB'], '195': ['Clear sky UV-B Downward Solar Flux', 'W m-2', 'CDUVB'], '196': ['Clear Sky Downward Solar Flux', 'W m-2', 'CSDSF'], '197': ['Solar Radiative Heating Rate', 'K s-1', 'SWHR'], '198': ['Clear Sky Upward Solar Flux', 'W m-2', 'CSUSF'], '199': ['Cloud Forcing Net Solar Flux', 'W m-2', 'CFNSF'], '200': ['Visible Beam Downward Solar Flux', 'W m-2', 'VBDSF'], '201': ['Visible Diffuse Downward Solar Flux', 'W m-2', 'VDDSF'], '202': ['Near IR Beam Downward Solar Flux', 'W m-2', 'NBDSF'], '203': ['Near IR Diffuse Downward Solar Flux', 'W m-2', 'NDDSF'], '204': ['Downward Total Radiation Flux', 'W m-2', 'DTRF'], '205': ['Upward Total Radiation Flux', 'W m-2', 'UTRF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_5", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_5", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Net Long-Wave Radiation Flux (Surface)', 'W m-2', 'NLWRS'], '1': ['Net Long-Wave Radiation Flux (Top of Atmosphere)', 'W m-2', 'NLWRT'], '2': ['Long-Wave Radiation Flux', 'W m-2', 'LWAVR'], '3': ['Downward Long-Wave Rad. Flux', 'W m-2', 'DLWRF'], '4': ['Upward Long-Wave Rad. Flux', 'W m-2', 'ULWRF'], '5': ['Net Long-Wave Radiation Flux', 'W m-2', 'NLWRF'], '6': ['Net Long-Wave Radiation Flux, Clear Sky', 'W m-2', 'NLWRCS'], '7': ['Brightness Temperature', 'K', 'BRTEMP'], '8': ['Downward Long-Wave Radiation Flux, Clear Sky', 'W m-2', 'DLWRFCS'], '9': ['Near IR albedo for diffuse radiation', '%', 'NIRALBDIF'], '10': ['Near IR albedo for direct radiation', '%', 'NIRALBDIR'], '11': ['Near IR albedo for direct radiation, geometric component', '%', 'NIRALBDIRG'], '12': ['Near IR albedo for direct radiation, isotropic component', '%', 'NIRALBDIRI'], '13': ['Near IR albedo for direct radiation, volumetric component', '%', 'NIRALBDIRV'], '14-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Downward Long-Wave Rad. Flux', 'W m-2', 'DLWRF'], '193': ['Upward Long-Wave Rad. Flux', 'W m-2', 'ULWRF'], '194': ['Long-Wave Radiative Heating Rate', 'K s-1', 'LWHR'], '195': ['Clear Sky Upward Long Wave Flux', 'W m-2', 'CSULF'], '196': ['Clear Sky Downward Long Wave Flux', 'W m-2', 'CSDLF'], '197': ['Cloud Forcing Net Long Wave Flux', 'W m-2', 'CFNLF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_6", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_6", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Cloud Ice', 'kg m-2', 'CICE'], '1': ['Total Cloud Cover', '%', 'TCDC'], '2': ['Convective Cloud Cover', '%', 'CDCON'], '3': ['Low Cloud Cover', '%', 'LCDC'], '4': ['Medium Cloud Cover', '%', 'MCDC'], '5': ['High Cloud Cover', '%', 'HCDC'], '6': ['Cloud Water', 'kg m-2', 'CWAT'], '7': ['Cloud Amount', '%', 'CDCA'], '8': ['Cloud Type', 'See Table 4.203', 'CDCT'], '9': ['Thunderstorm Maximum Tops', 'm', 'TMAXT'], '10': ['Thunderstorm Coverage', 'See Table 4.204', 'THUNC'], '11': ['Cloud Base', 'm', 'CDCB'], '12': ['Cloud Top', 'm', 'CDCTOP'], '13': ['Ceiling', 'm', 'CEIL'], '14': ['Non-Convective Cloud Cover', '%', 'CDLYR'], '15': ['Cloud Work Function', 'J kg-1', 'CWORK'], '16': ['Convective Cloud Efficiency', 'Proportion', 'CUEFI'], '17': ['Total Condensate', 'kg kg-1', 'TCONDO'], '18': ['Total Column-Integrated Cloud Water', 'kg m-2', 'TCOLWO'], '19': ['Total Column-Integrated Cloud Ice', 'kg m-2', 'TCOLIO'], '20': ['Total Column-Integrated Condensate', 'kg m-2', 'TCOLC'], '21': ['Ice fraction of total condensate', 'Proportion', 'FICE'], '22': ['Cloud Cover', '%', 'CDCC'], '23': ['Cloud Ice Mixing Ratio', 'kg kg-1', 'CDCIMR'], '24': ['Sunshine', 'Numeric', 'SUNS'], '25': ['Horizontal Extent of Cumulonimbus (CB)', '%', 'CBHE'], '26': ['Height of Convective Cloud Base', 'm', 'HCONCB'], '27': ['Height of Convective Cloud Top', 'm', 'HCONCT'], '28': ['Number Concentration of Cloud Droplets', 'kg-1', 'NCONCD'], '29': ['Number Concentration of Cloud Ice', 'kg-1', 'NCCICE'], '30': ['Number Density of Cloud Droplets', 'm-3', 'NDENCD'], '31': ['Number Density of Cloud Ice', 'm-3', 'NDCICE'], '32': ['Fraction of Cloud Cover', 'Numeric', 'FRACCC'], '33': ['Sunshine Duration', 's', 'SUNSD'], '34': ['Surface Long Wave Effective Total Cloudiness', 'Numeric', 'SLWTC'], '35': ['Surface Short Wave Effective Total Cloudiness', 'Numeric', 'SSWTC'], '36': ['Fraction of Stratiform Precipitation Cover', 'Proportion', 'FSTRPC'], '37': ['Fraction of Convective Precipitation Cover', 'Proportion', 'FCONPC'], '38': ['Mass Density of Cloud Droplets', 'kg m-3', 'MASSDCD'], '39': ['Mass Density of Cloud Ice', 'kg m-3', 'MASSDCI'], '40': ['Mass Density of Convective Cloud Water Droplets', 'kg m-3', 'MDCCWD'], '41-46': ['Reserved', 'unknown', 'unknown'], '47': ['Volume Fraction of Cloud Water Droplets', 'Numeric', 'VFRCWD'], '48': ['Volume Fraction of Cloud Ice Particles', 'Numeric', 'VFRCICE'], '49': ['Volume Fraction of Cloud (Ice and/or Water)', 'Numeric', 'VFRCIW'], '50': ['Fog', '%', 'FOG'], '51': ['Sunshine Duration Fraction', 'Proportion', 'SUNFRAC'], '52-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Non-Convective Cloud Cover', '%', 'CDLYR'], '193': ['Cloud Work Function', 'J kg-1', 'CWORK'], '194': ['Convective Cloud Efficiency', 'non-dim', 'CUEFI'], '195': ['Total Condensate', 'kg kg-1', 'TCOND'], '196': ['Total Column-Integrated Cloud Water', 'kg m-2', 'TCOLW'], '197': ['Total Column-Integrated Cloud Ice', 'kg m-2', 'TCOLI'], '198': ['Total Column-Integrated Condensate', 'kg m-2', 'TCOLC'], '199': ['Ice fraction of total condensate', 'non-dim', 'FICE'], '200': ['Convective Cloud Mass Flux', 'Pa s-1', 'MFLUX'], '201': ['Sunshine Duration', 's', 'SUNSD'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_7", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_7", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Parcel Lifted Index (to 500 hPa)', 'K', 'PLI'], '1': ['Best Lifted Index (to 500 hPa)', 'K', 'BLI'], '2': ['K Index', 'K', 'KX'], '3': ['KO Index', 'K', 'KOX'], '4': ['Total Totals Index', 'K', 'TOTALX'], '5': ['Sweat Index', 'Numeric', 'SX'], '6': ['Convective Available Potential Energy', 'J kg-1', 'CAPE'], '7': ['Convective Inhibition', 'J kg-1', 'CIN'], '8': ['Storm Relative Helicity', 'm2 s-2', 'HLCY'], '9': ['Energy Helicity Index', 'Numeric', 'EHLX'], '10': ['Surface Lifted Index', 'K', 'LFT X'], '11': ['Best (4 layer) Lifted Index', 'K', '4LFTX'], '12': ['Richardson Number', 'Numeric', 'RI'], '13': ['Showalter Index', 'K', 'SHWINX'], '14': ['Reserved', 'unknown', 'unknown'], '15': ['Updraft Helicity', 'm2 s-2', 'UPHL'], '16': ['Bulk Richardson Number', 'Numeric', 'BLKRN'], '17': ['Gradient Richardson Number', 'Numeric', 'GRDRN'], '18': ['Flux Richardson Number', 'Numeric', 'FLXRN'], '19': ['Convective Available Potential Energy Shear', 'm2 s-2', 'CONAPES'], '20': ['Thunderstorm intensity index', 'See Table 4.246', 'TIIDEX'], '21-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Surface Lifted Index', 'K', 'LFT X'], '193': ['Best (4 layer) Lifted Index', 'K', '4LFTX'], '194': ['Richardson Number', 'Numeric', 'RI'], '195': ['Convective Weather Detection Index', 'unknown', 'CWDI'], '196': ['Ultra Violet Index', 'W m-2', 'UVI'], '197': ['Updraft Helicity', 'm2 s-2', 'UPHL'], '198': ['Leaf Area Index', 'Numeric', 'LAI'], '199': ['Hourly Maximum of Updraft Helicity', 'm2 s-2', 'MXUPHL'], '200': ['Hourly Minimum of Updraft Helicity', 'm2 s-2', 'MNUPHL'], '201': ['Bourgoiun Negative Energy Layer (surface to freezing level)', 'J kg-1', 'BNEGELAY'], '202': ['Bourgoiun Positive Energy Layer (2k ft AGL to 400 hPa)', 'J kg-1', 'BPOSELAY'], '203': ['Downdraft CAPE', 'J kg-1', 'DCAPE'], '204': ['Effective Storm Relative Helicity', 'm2 s-2', 'EFHL'], '205': ['Enhanced Stretching Potential', 'Numeric', 'ESP'], '206': ['Critical Angle', 'Degree', 'CANGLE'], '207': ['Effective Surface Helicity', 'm2 s-2', 'E3KH'], '208': ['Significant Tornado Parameter with CIN-Effective Layer', 'numeric', 'STPC'], '209': ['Significant Hail Parameter', 'numeric', 'SIGH'], '210': ['Supercell Composite Parameter-Effective Layer', 'numeric', 'SCCP'], '211': ['Significant Tornado parameter-Fixed Layer', 'numeric', 'SIGT'], '212': ['Mixed Layer (100 mb) Virtual LFC', 'numeric', 'MLFC'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_13", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_13", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Aerosol Type', 'See Table 4.205', 'AEROT'], '1-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Particulate matter (coarse)', '\u00b5g m-3', 'PMTC'], '193': ['Particulate matter (fine)', '\u00b5g m-3', 'PMTF'], '194': ['Particulate matter (fine)', 'log10 (\u00b5g m-3)', 'LPMTF'], '195': ['Integrated column particulate matter (fine)', 'log10 (\u00b5g m-3)', 'LIPMF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_14", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_14", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Total Ozone', 'DU', 'TOZNE'], '1': ['Ozone Mixing Ratio', 'kg kg-1', 'O3MR'], '2': ['Total Column Integrated Ozone', 'DU', 'TCIOZ'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Ozone Mixing Ratio', 'kg kg-1', 'O3MR'], '193': ['Ozone Concentration', 'ppb', 'OZCON'], '194': ['Categorical Ozone Concentration', 'Non-Dim', 'OZCAT'], '195': ['Ozone Vertical Diffusion', 'kg kg-1 s-1', 'VDFOZ'], '196': ['Ozone Production', 'kg kg-1 s-1', 'POZ'], '197': ['Ozone Tendency', 'kg kg-1 s-1', 'TOZ'], '198': ['Ozone Production from Temperature Term', 'kg kg-1 s-1', 'POZT'], '199': ['Ozone Production from Column Ozone Term', 'kg kg-1 s-1', 'POZO'], '200': ['Ozone Daily Max from 1-hour Average', 'ppbV', 'OZMAX1'], '201': ['Ozone Daily Max from 8-hour Average', 'ppbV', 'OZMAX8'], '202': ['PM 2.5 Daily Max from 1-hour Average', '\u03bcg m-3', 'PDMAX1'], '203': ['PM 2.5 Daily Max from 24-hour Average', '\u03bcg m-3', 'PDMAX24'], '204': ['Acetaldehyde & Higher Aldehydes', 'ppbV', 'ALD2'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_15", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_15", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Base Spectrum Width', 'm s-1', 'BSWID'], '1': ['Base Reflectivity', 'dB', 'BREF'], '2': ['Base Radial Velocity', 'm s-1', 'BRVEL'], '3': ['Vertically-Integrated Liquid Water', 'kg m-2', 'VIL'], '4': ['Layer Maximum Base Reflectivity', 'dB', 'LMAXBR'], '5': ['Precipitation', 'kg m-2', 'PREC'], '6': ['Radar Spectra (1)', 'unknown', 'RDSP1'], '7': ['Radar Spectra (2)', 'unknown', 'RDSP2'], '8': ['Radar Spectra (3)', 'unknown', 'RDSP3'], '9': ['Reflectivity of Cloud Droplets', 'dB', 'RFCD'], '10': ['Reflectivity of Cloud Ice', 'dB', 'RFCI'], '11': ['Reflectivity of Snow', 'dB', 'RFSNOW'], '12': ['Reflectivity of Rain', 'dB', 'RFRAIN'], '13': ['Reflectivity of Graupel', 'dB', 'RFGRPL'], '14': ['Reflectivity of Hail', 'dB', 'RFHAIL'], '15': ['Hybrid Scan Reflectivity', 'dB', 'HSR'], '16': ['Hybrid Scan Reflectivity Height', 'm', 'HSRHT'], '17-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_16", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_16", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Equivalent radar reflectivity factor for rain', 'm m6 m-3', 'REFZR'], '1': ['Equivalent radar reflectivity factor for snow', 'm m6 m-3', 'REFZI'], '2': ['Equivalent radar reflectivity factor for parameterized convection', 'm m6 m-3', 'REFZC'], '3': ['Echo Top', 'm', 'RETOP'], '4': ['Reflectivity', 'dB', 'REFD'], '5': ['Composite reflectivity', 'dB', 'REFC'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Equivalent radar reflectivity factor for rain', 'm m6 m-3', 'REFZR'], '193': ['Equivalent radar reflectivity factor for snow', 'm m6 m-3', 'REFZI'], '194': ['Equivalent radar reflectivity factor for parameterized convection', 'm m6 m-3', 'REFZC'], '195': ['Reflectivity', 'dB', 'REFD'], '196': ['Composite reflectivity', 'dB', 'REFC'], '197': ['Echo Top', 'm', 'RETOP'], '198': ['Hourly Maximum of Simulated Reflectivity', 'dB', 'MAXREF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_17", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_17", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Lightning Strike Density', 'm-2 s-1', 'LTNGSD'], '1': ['Lightning Potential Index (LPI)', 'J kg-1', 'LTPINX'], '2': ['Cloud-to-Ground Lightning Flash Density', 'km-2 day-1', 'CDGDLTFD'], '3': ['Cloud-to-Cloud Lightning Flash Density', 'km-2 day-1', 'CDCDLTFD'], '4': ['Total Lightning Flash Density', 'km-2 day-1', 'TLGTFD'], '5': ['Subgrid-scale lightning potential index', 'J kg-1', 'SLNGPIDX'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Lightning', 'non-dim', 'LTNG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_18", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_18", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Air Concentration of Caesium 137', 'Bq m-3', 'ACCES'], '1': ['Air Concentration of Iodine 131', 'Bq m-3', 'ACIOD'], '2': ['Air Concentration of Radioactive Pollutant', 'Bq m-3', 'ACRADP'], '3': ['Ground Deposition of Caesium 137', 'Bq m-2', 'GDCES'], '4': ['Ground Deposition of Iodine 131', 'Bq m-2', 'GDIOD'], '5': ['Ground Deposition of Radioactive Pollutant', 'Bq m-2', 'GDRADP'], '6': ['Time Integrated Air Concentration of Cesium Pollutant', 'Bq s m-3', 'TIACCP'], '7': ['Time Integrated Air Concentration of Iodine Pollutant', 'Bq s m-3', 'TIACIP'], '8': ['Time Integrated Air Concentration of Radioactive Pollutant', 'Bq s m-3', 'TIACRP'], '9': ['Reserved', 'unknown', 'unknown'], '10': ['Air Concentration', 'Bq m-3', 'AIRCON'], '11': ['Wet Deposition', 'Bq m-2', 'WETDEP'], '12': ['Dry Deposition', 'Bq m-2', 'DRYDEP'], '13': ['Total Deposition (Wet + Dry)', 'Bq m-2', 'TOTLWD'], '14': ['Specific Activity Concentration', 'Bq kg-1', 'SACON'], '15': ['Maximum of Air Concentration in Layer', 'Bq m-3', 'MAXACON'], '16': ['Height of Maximum of Air Concentration', 'm', 'HMXACON'], '17': ['Column-Integrated Air Concentration', 'Bq m-2', 'CIAIRC'], '18': ['Column-Averaged Air Concentration in Layer', 'Bq m-3', 'CAACL'], '19-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_19", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_19", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Visibility', 'm', 'VIS'], '1': ['Albedo', '%', 'ALBDO'], '2': ['Thunderstorm Probability', '%', 'TSTM'], '3': ['Mixed Layer Depth', 'm', 'MIXHT'], '4': ['Volcanic Ash', 'See Table 4.206', 'VOLASH'], '5': ['Icing Top', 'm', 'ICIT'], '6': ['Icing Base', 'm', 'ICIB'], '7': ['Icing', 'See Table 4.207', 'ICI'], '8': ['Turbulence Top', 'm', 'TURBT'], '9': ['Turbulence Base', 'm', 'TURBB'], '10': ['Turbulence', 'See Table 4.208', 'TURB'], '11': ['Turbulent Kinetic Energy', 'J kg-1', 'TKE'], '12': ['Planetary Boundary Layer Regime', 'See Table 4.209', 'PBLREG'], '13': ['Contrail Intensity', 'See Table 4.210', 'CONTI'], '14': ['Contrail Engine Type', 'See Table 4.211', 'CONTET'], '15': ['Contrail Top', 'm', 'CONTT'], '16': ['Contrail Base', 'm', 'CONTB'], '17': ['Maximum Snow Albedo', '%', 'MXSALB'], '18': ['Snow-Free Albedo', '%', 'SNFALB'], '19': ['Snow Albedo', '%', 'SALBD'], '20': ['Icing', '%', 'ICIP'], '21': ['In-Cloud Turbulence', '%', 'CTP'], '22': ['Clear Air Turbulence (CAT)', '%', 'CAT'], '23': ['Supercooled Large Droplet Probability', '%', 'SLDP'], '24': ['Convective Turbulent Kinetic Energy', 'J kg-1', 'CONTKE'], '25': ['Weather', 'See Table 4.225', 'WIWW'], '26': ['Convective Outlook', 'See Table 4.224', 'CONVO'], '27': ['Icing Scenario', 'See Table 4.227', 'ICESC'], '28': ['Mountain Wave Turbulence (Eddy Dissipation Rate)', 'm2/3 s-1', 'MWTURB'], '29': ['Clear Air Turbulence (CAT) (Eddy Dissipation Rate)', 'm2/3 s-1', 'CATEDR'], '30': ['Eddy Dissipation Parameter', 'm2/3 s-1', 'EDPARM'], '31': ['Maximum of Eddy Dissipation Parameter in Layer', 'm2/3 s-1', 'MXEDPRM'], '32': ['Highest Freezing Level', 'm', 'HIFREL'], '33': ['Visibility Through Liquid Fog', 'm', 'VISLFOG'], '34': ['Visibility Through Ice Fog', 'm', 'VISIFOG'], '35': ['Visibility Through Blowing Snow', 'm', 'VISBSN'], '36': ['Presence of Snow Squalls', 'See Table 4.222', 'PSNOWS'], '37': ['Icing Severity', 'See Table 4.228', 'ICESEV'], '38': ['Sky transparency index', 'See Table 4.214', 'SKYIDX'], '39': ['Seeing index', 'See Table 4.214', 'SEEINDEX'], '40': ['Snow level', 'm', 'SNOWLVL'], '41': ['Duct base height', 'm', 'DBHEIGHT'], '42': ['Trapping layer base height', 'm', 'TLBHEIGHT'], '43': ['Trapping layer top height', 'm', 'TLTHEIGHT'], '44': ['Mean vertical gradient of refractivity inside trapping layer', 'm-1', 'MEANVGRTL'], '45': ['Minimum vertical gradient of refractivity inside trapping layer', 'm-1', 'MINVGRTL'], '46': ['Net radiation flux', 'W m-2', 'NETRADFLUX'], '47': ['Global irradiance on tilted surfaces', 'W m-2', 'GLIRRTS'], '48': ['Top of persistent contrails', 'm', 'PCONTT'], '49': ['Base of persistent contrails', 'm', 'PCONTB'], '50': ['Convectively-induced turbulence (CIT) (eddy dissipation rate)', 'm2/3 s-1', 'CITEDR'], '51-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Maximum Snow Albedo', '%', 'MXSALB'], '193': ['Snow-Free Albedo', '%', 'SNFALB'], '194': ['Slight risk convective outlook', 'categorical', 'SRCONO'], '195': ['Moderate risk convective outlook', 'categorical', 'MRCONO'], '196': ['High risk convective outlook', 'categorical', 'HRCONO'], '197': ['Tornado probability', '%', 'TORPROB'], '198': ['Hail probability', '%', 'HAILPROB'], '199': ['Wind probability', '%', 'WINDPROB'], '200': ['Significant Tornado probability', '%', 'STORPROB'], '201': ['Significant Hail probability', '%', 'SHAILPRO'], '202': ['Significant Wind probability', '%', 'SWINDPRO'], '203': ['Categorical Thunderstorm', 'Code table 4.222', 'TSTMC'], '204': ['Number of mixed layers next to surface', 'integer', 'MIXLY'], '205': ['Flight Category', 'unknown', 'FLGHT'], '206': ['Confidence - Ceiling', 'unknown', 'CICEL'], '207': ['Confidence - Visibility', 'unknown', 'CIVIS'], '208': ['Confidence - Flight Category', 'unknown', 'CIFLT'], '209': ['Low-Level aviation interest', 'unknown', 'LAVNI'], '210': ['High-Level aviation interest', 'unknown', 'HAVNI'], '211': ['Visible, Black Sky Albedo', '%', 'SBSALB'], '212': ['Visible, White Sky Albedo', '%', 'SWSALB'], '213': ['Near IR, Black Sky Albedo', '%', 'NBSALB'], '214': ['Near IR, White Sky Albedo', '%', 'NWSALB'], '215': ['Total Probability of Severe Thunderstorms (Days 2,3)', '%', 'PRSVR'], '216': ['Total Probability of Extreme Severe Thunderstorms (Days 2,3)', '%', 'PRSIGSVR'], '217': ['Supercooled Large Droplet (SLD) Icing', 'See Table 4.207', 'SIPD'], '218': ['Radiative emissivity', 'unknown', 'EPSR'], '219': ['Turbulence Potential Forecast Index', 'unknown', 'TPFI'], '220': ['Categorical Severe Thunderstorm', 'Code table 4.222', 'SVRTS'], '221': ['Probability of Convection', '%', 'PROCON'], '222': ['Convection Potential', 'Code table 4.222', 'CONVP'], '223-231': ['Reserved', 'unknown', 'unknown'], '232': ['Volcanic Ash Forecast Transport and Dispersion', 'log10 (kg m-3)', 'VAFTD'], '233': ['Icing probability', 'non-dim', 'ICPRB'], '234': ['Icing Severity', 'non-dim', 'ICSEV'], '235': ['Joint Fire Weather Probability', '%', 'JFWPRB'], '236': ['Snow Level', 'm', 'SNOWLVL'], '237': ['Dry Thunderstorm Probability', '%', 'DRYTPROB'], '238': ['Ellrod Index', 'unknown', 'ELLINX'], '239': ['Craven-Wiedenfeld Aggregate Severe Parameter', 'Numeric', 'CWASP'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_20", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_20", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Mass Density (Concentration)', 'kg m-3', 'MASSDEN'], '1': ['Column-Integrated Mass Density', 'kg m-2', 'COLMD'], '2': ['Mass Mixing Ratio (Mass Fraction in Air)', 'kg kg-1', 'MASSMR'], '3': ['Atmosphere Emission Mass Flux', 'kg m-2s-1', 'AEMFLX'], '4': ['Atmosphere Net Production Mass Flux', 'kg m-2s-1', 'ANPMFLX'], '5': ['Atmosphere Net Production And Emision Mass Flux', 'kg m-2s-1', 'ANPEMFLX'], '6': ['Surface Dry Deposition Mass Flux', 'kg m-2s-1', 'SDDMFLX'], '7': ['Surface Wet Deposition Mass Flux', 'kg m-2s-1', 'SWDMFLX'], '8': ['Atmosphere Re-Emission Mass Flux', 'kg m-2s-1', 'AREMFLX'], '9': ['Wet Deposition by Large-Scale Precipitation Mass Flux', 'kg m-2s-1', 'WLSMFLX'], '10': ['Wet Deposition by Convective Precipitation Mass Flux', 'kg m-2s-1', 'WDCPMFLX'], '11': ['Sedimentation Mass Flux', 'kg m-2s-1', 'SEDMFLX'], '12': ['Dry Deposition Mass Flux', 'kg m-2s-1', 'DDMFLX'], '13': ['Transfer From Hydrophobic to Hydrophilic', 'kg kg-1s-1', 'TRANHH'], '14': ['Transfer From SO2 (Sulphur Dioxide) to SO4 (Sulphate)', 'kg kg-1s-1', 'TRSDS'], '15': ['Dry deposition velocity', 'm s-1', 'DDVEL'], '16': ['Mass mixing ratio with respect to dry air', 'kg kg-1', 'MSSRDRYA'], '17': ['Mass mixing ratio with respect to wet air', 'kg kg-1', 'MSSRWETA'], '18': ['Potential of hydrogen (pH)', 'pH', 'POTHPH'], '19-49': ['Reserved', 'unknown', 'unknown'], '50': ['Amount in Atmosphere', 'mol', 'AIA'], '51': ['Concentration In Air', 'mol m-3', 'CONAIR'], '52': ['Volume Mixing Ratio (Fraction in Air)', 'mol mol-1', 'VMXR'], '53': ['Chemical Gross Production Rate of Concentration', 'mol m-3s-1', 'CGPRC'], '54': ['Chemical Gross Destruction Rate of Concentration', 'mol m-3s-1', 'CGDRC'], '55': ['Surface Flux', 'mol m-2s-1', 'SFLUX'], '56': ['Changes Of Amount in Atmosphere', 'mol s-1', 'COAIA'], '57': ['Total Yearly Average Burden of The Atmosphere>', 'mol', 'TYABA'], '58': ['Total Yearly Average Atmospheric Loss', 'mol s-1', 'TYAAL'], '59': ['Aerosol Number Concentration', 'm-3', 'ANCON'], '60': ['Aerosol Specific Number Concentration', 'kg-1', 'ASNCON'], '61': ['Maximum of Mass Density', 'kg m-3', 'MXMASSD'], '62': ['Height of Mass Density', 'm', 'HGTMD'], '63': ['Column-Averaged Mass Density in Layer', 'kg m-3', 'CAVEMDL'], '64': ['Mole fraction with respect to dry air', 'mol mol-1', 'MOLRDRYA'], '65': ['Mole fraction with respect to wet air', 'mol mol-1', 'MOLRWETA'], '66': ['Column-integrated in-cloud scavenging rate by precipitation', 'kg m-2 s-1', 'CINCLDSP'], '67': ['Column-integrated below-cloud scavenging rate by precipitation', 'kg m-2 s-1', 'CBLCLDSP'], '68': ['Column-integrated release rate from evaporating precipitation', 'kg m-2 s-1', 'CIRELREP'], '69': ['Column-integrated in-cloud scavenging rate by large-scale precipitation', 'kg m-2 s-1', 'CINCSLSP'], '70': ['Column-integrated below-cloud scavenging rate by large-scale precipitation', 'kg m-2 s-1', 'CBECSLSP'], '71': ['Column-integrated release rate from evaporating large-scale precipitation', 'kg m-2 s-1', 'CRERELSP'], '72': ['Column-integrated in-cloud scavenging rate by convective precipitation', 'kg m-2 s-1', 'CINCSRCP'], '73': ['Column-integrated below-cloud scavenging rate by convective precipitation', 'kg m-2 s-1', 'CBLCSRCP'], '74': ['Column-integrated release rate from evaporating convective precipitation', 'kg m-2 s-1', 'CIRERECP'], '75': ['Wildfire flux', 'kg m-2 s-1', 'WFIREFLX'], '76': ['Emission Rate', 'kg kg-1 s-1', 'EMISFLX'], '77': ['Surface Emission flux', 'kg m-2 s-1', 'SFCEFLX'], '78': ['Column integrated eastward mass flux', 'kg m-2 s-1', 'CEMF'], '79': ['Column integrated northward mass flux', 'kg m-2 s-1', 'CNMF'], '80': ['Column integrated divergence of mass flux', 'kg m-2 s-1', 'CDIVMF'], '81': ['Column integrated net source', 'kg m-2 s-1', 'CDNETS'], '82-99': ['Reserved', 'unknown', 'unknown'], '100': ['Surface Area Density (Aerosol)', 'm-1', 'SADEN'], '101': ['Vertical Visual Range', 'm', 'ATMTK'], '102': ['Aerosol Optical Thickness', 'Numeric', 'AOTK'], '103': ['Single Scattering Albedo', 'Numeric', 'SSALBK'], '104': ['Asymmetry Factor', 'Numeric', 'ASYSFK'], '105': ['Aerosol Extinction Coefficient', 'm-1', 'AECOEF'], '106': ['Aerosol Absorption Coefficient', 'm-1', 'AACOEF'], '107': ['Aerosol Lidar Backscatter from Satellite', 'm-1sr-1', 'ALBSAT'], '108': ['Aerosol Lidar Backscatter from the Ground', 'm-1sr-1', 'ALBGRD'], '109': ['Aerosol Lidar Extinction from Satellite', 'm-1', 'ALESAT'], '110': ['Aerosol Lidar Extinction from the Ground', 'm-1', 'ALEGRD'], '111': ['Angstrom Exponent', 'Numeric', 'ANGSTEXP'], '112': ['Scattering Aerosol Optical Thickness', 'Numeric', 'SCTAOTK'], '113-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_190", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_190", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Arbitrary Text String', 'CCITTIA5', 'ATEXT'], '1-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_191", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_191", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Seconds prior to initial reference time (defined in Section 1)', 's', 'TSEC'], '1': ['Geographical Latitude', '\u00b0 N', 'GEOLAT'], '2': ['Geographical Longitude', '\u00b0 E', 'GEOLON'], '3': ['Days Since Last Observation', 'd', 'DSLOBS'], '4': ['Tropical cyclone density track', 'Numeric', 'TCDTRACK'], '5-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Latitude (-90 to 90)', '\u00b0', 'NLAT'], '193': ['East Longitude (0 to 360)', '\u00b0', 'ELON'], '194': ['Seconds prior to initial reference time', 's', 'RTSEC'], '195': ['Model Layer number (From bottom up)', 'unknown', 'MLYNO'], '196': ['Latitude (nearest neighbor) (-90 to 90)', '\u00b0', 'NLATN'], '197': ['East Longitude (nearest neighbor) (0 to 360)', '\u00b0', 'ELONN'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_192", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_192", "kind": "variable", "doc": "

\n", "default_value": "{'1': ['Covariance between zonal and meridional components of the wind. Defined as [uv]-[u][v], where "[]" indicates the mean over the indicated time span.', 'm2/s2', 'COVMZ'], '2': ['Covariance between zonal component of the wind and temperature. Defined as [uT]-[u][T], where "[]" indicates the mean over the indicated time span.', 'K*m/s', 'COVTZ'], '3': ['Covariance between meridional component of the wind and temperature. Defined as [vT]-[v][T], where "[]" indicates the mean over the indicated time span.', 'K*m/s', 'COVTM'], '4': ['Covariance between temperature and vertical component of the wind. Defined as [wT]-[w][T], where "[]" indicates the mean over the indicated time span.', 'K*m/s', 'COVTW'], '5': ['Covariance between zonal and zonal components of the wind. Defined as [uu]-[u][u], where "[]" indicates the mean over the indicated time span.', 'm2/s2', 'COVZZ'], '6': ['Covariance between meridional and meridional components of the wind. Defined as [vv]-[v][v], where "[]" indicates the mean over the indicated time span.', 'm2/s2', 'COVMM'], '7': ['Covariance between specific humidity and zonal components of the wind. Defined as [uq]-[u][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*m/s', 'COVQZ'], '8': ['Covariance between specific humidity and meridional components of the wind. Defined as [vq]-[v][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*m/s', 'COVQM'], '9': ['Covariance between temperature and vertical components of the wind. Defined as [\u03a9T]-[\u03a9][T], where "[]" indicates the mean over the indicated time span.', 'K*Pa/s', 'COVTVV'], '10': ['Covariance between specific humidity and vertical components of the wind. Defined as [\u03a9q]-[\u03a9][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*Pa/s', 'COVQVV'], '11': ['Covariance between surface pressure and surface pressure. Defined as [Psfc]-[Psfc][Psfc], where "[]" indicates the mean over the indicated time span.', 'Pa*Pa', 'COVPSPS'], '12': ['Covariance between specific humidity and specific humidy. Defined as [qq]-[q][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*kg/kg', 'COVQQ'], '13': ['Covariance between vertical and vertical components of the wind. Defined as [\u03a9\u03a9]-[\u03a9][\u03a9], where "[]" indicates the mean over the indicated time span.', 'Pa2/s2', 'COVVVVV'], '14': ['Covariance between temperature and temperature. Defined as [TT]-[T][T], where "[]" indicates the mean over the indicated time span.', 'K*K', 'COVTT'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_0_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_0_ndfd", "kind": "variable", "doc": "

\n", "default_value": "{'193': ['Apparent Temperature', 'K', 'APPT']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_1_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_1_ndfd", "kind": "variable", "doc": "

\n", "default_value": "{'192': ['Weather Information', 'WxInfo', 'WX']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_19_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_19_ndfd", "kind": "variable", "doc": "

\n", "default_value": "{'194': ['Convective Hazard Outlook', 'categorical', 'CONVOUTLOOK'], '197': ['Probability of Tornado', '%', 'PTORNADO'], '198': ['Probability of Hail', '%', 'PHAIL'], '199': ['Probability of Damaging Wind', '%', 'PWIND'], '200': ['Probability of Extreme Tornado', '%', 'PXTRMTORN'], '201': ['Probability of Extreme Hail', '%', 'PXTRMHAIL'], '202': ['Probability of Extreme Wind', '%', 'PXTRMWIND'], '215': ['Total Probability of Severe Thunderstorms', '%', 'TOTALSVRPROB'], '216': ['Total Probability of Extreme Severe Thunderstorms', '%', 'TOTALXTRMPROB'], '217': ['Watch Warning Advisory', 'WxInfo', 'WWA']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_192_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_192_ndfd", "kind": "variable", "doc": "

\n", "default_value": "{'192': ['Critical Fire Weather', '', 'FIREWX'], '194': ['Dry Lightning', '', 'DRYLIGHTNING']}"}, {"fullname": "grib2io.tables.section4_discipline1", "modulename": "grib2io.tables.section4_discipline1", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline1.table_4_2_1_0", "modulename": "grib2io.tables.section4_discipline1", "qualname": "table_4_2_1_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Flash Flood Guidance (Encoded as an accumulation over a floating subinterval of time between the reference time and valid time)', 'kg m-2', 'FFLDG'], '1': ['Flash Flood Runoff (Encoded as an accumulation over a floating subinterval of time)', 'kg m-2', 'FFLDRO'], '2': ['Remotely Sensed Snow Cover', 'See Table 4.215', 'RSSC'], '3': ['Elevation of Snow Covered Terrain', 'See Table 4.216', 'ESCT'], '4': ['Snow Water Equivalent Percent of Normal', '%', 'SWEPON'], '5': ['Baseflow-Groundwater Runoff', 'kg m-2', 'BGRUN'], '6': ['Storm Surface Runoff', 'kg m-2', 'SSRUN'], '7': ['Discharge from Rivers or Streams', 'm3 s-1', 'DISRS'], '8': ['Group Water Upper Storage', 'kg m-2', 'GWUPS'], '9': ['Group Water Lower Storage', 'kg m-2', 'GWLOWS'], '10': ['Side Flow into River Channel', 'm3 s-1 m-1', 'SFLORC'], '11': ['River Storage of Water', 'm3', 'RVERSW'], '12': ['Flood Plain Storage of Water', 'm3', 'FLDPSW'], '13': ['Depth of Water on Soil Surface', 'kg m-2', 'DEPWSS'], '14': ['Upstream Accumulated Precipitation', 'kg m-2', 'UPAPCP'], '15': ['Upstream Accumulated Snow Melt', 'kg m-2', 'UPASM'], '16': ['Percolation Rate', 'kg m-2 s-1', 'PERRATE'], '17-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Baseflow-Groundwater Runoff', 'kg m-2', 'BGRUN'], '193': ['Storm Surface Runoff', 'kg m-2', 'SSRUN'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline1.table_4_2_1_1", "modulename": "grib2io.tables.section4_discipline1", "qualname": "table_4_2_1_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Conditional percent precipitation amount fractile for an overall period (encoded as an accumulation)', 'kg m-2', 'CPPOP'], '1': ['Percent Precipitation in a sub-period of an overall period (encoded as a percent accumulation over the sub-period)', '%', 'PPOSP'], '2': ['Probability of 0.01 inch of precipitation (POP)', '%', 'POP'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Probability of Freezing Precipitation', '%', 'CPOZP'], '193': ['Percent of Frozen Precipitation', '%', 'CPOFP'], '194': ['Probability of precipitation exceeding flash flood guidance values', '%', 'PPFFG'], '195': ['Probability of Wetting Rain, exceeding in 0.10" in a given time period', '%', 'CWR'], '196': ['Binary Probability of precipitation exceeding average recurrence intervals (ARI)', 'see Code table 4.222', 'QPFARI'], '197': ['Binary Probability of precipitation exceeding flash flood guidance values', 'see Code table 4.222', 'QPFFFG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline1.table_4_2_1_2", "modulename": "grib2io.tables.section4_discipline1", "qualname": "table_4_2_1_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Water Depth', 'm', 'WDPTHIL'], '1': ['Water Temperature', 'K', 'WTMPIL'], '2': ['Water Fraction', 'Proportion', 'WFRACT'], '3': ['Sediment Thickness', 'm', 'SEDTK'], '4': ['Sediment Temperature', 'K', 'SEDTMP'], '5': ['Ice Thickness', 'm', 'ICTKIL'], '6': ['Ice Temperature', 'K', 'ICETIL'], '7': ['Ice Cover', 'Proportion', 'ICECIL'], '8': ['Land Cover (0=water, 1=land)', 'Proportion', 'LANDIL'], '9': ['Shape Factor with Respect to Salinity Profile', 'unknown', 'SFSAL'], '10': ['Shape Factor with Respect to Temperature Profile in Thermocline', 'unknown', 'SFTMP'], '11': ['Attenuation Coefficient of Water with Respect to Solar Radiation', 'm-1', 'ACWSR'], '12': ['Salinity', 'kg kg-1', 'SALTIL'], '13': ['Cross Sectional Area of Flow in Channel', 'm2', 'CSAFC'], '14': ['Snow temperature', 'K', 'LNDSNOWT'], '15': ['Lake depth', 'm', 'LDEPTH'], '16': ['River depth', 'm', 'RDEPTH'], '17-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10", "modulename": "grib2io.tables.section4_discipline10", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_0", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Wave Spectra (1)', '-', 'WVSP1'], '1': ['Wave Spectra (2)', '-', 'WVSP2'], '2': ['Wave Spectra (3)', '-', 'WVSP3'], '3': ['Significant Height of Combined Wind Waves and Swell', 'm', 'HTSGW'], '4': ['Direction of Wind Waves', 'degree true', 'WVDIR'], '5': ['Significant Height of Wind Waves', 'm', 'WVHGT'], '6': ['Mean Period of Wind Waves', 's', 'WVPER'], '7': ['Direction of Swell Waves', 'degree true', 'SWDIR'], '8': ['Significant Height of Swell Waves', 'm', 'SWELL'], '9': ['Mean Period of Swell Waves', 's', 'SWPER'], '10': ['Primary Wave Direction', 'degree true', 'DIRPW'], '11': ['Primary Wave Mean Period', 's', 'PERPW'], '12': ['Secondary Wave Direction', 'degree true', 'DIRSW'], '13': ['Secondary Wave Mean Period', 's', 'PERSW'], '14': ['Direction of Combined Wind Waves and Swell', 'degree true', 'WWSDIR'], '15': ['Mean Period of Combined Wind Waves and Swell', 's', 'MWSPER'], '16': ['Coefficient of Drag With Waves', '-', 'CDWW'], '17': ['Friction Velocity', 'm s-1', 'FRICVW'], '18': ['Wave Stress', 'N m-2', 'WSTR'], '19': ['Normalised Waves Stress', '-', 'NWSTR'], '20': ['Mean Square Slope of Waves', '-', 'MSSW'], '21': ['U-component Surface Stokes Drift', 'm s-1', 'USSD'], '22': ['V-component Surface Stokes Drift', 'm s-1', 'VSSD'], '23': ['Period of Maximum Individual Wave Height', 's', 'PMAXWH'], '24': ['Maximum Individual Wave Height', 'm', 'MAXWH'], '25': ['Inverse Mean Wave Frequency', 's', 'IMWF'], '26': ['Inverse Mean Frequency of The Wind Waves', 's', 'IMFWW'], '27': ['Inverse Mean Frequency of The Total Swell', 's', 'IMFTSW'], '28': ['Mean Zero-Crossing Wave Period', 's', 'MZWPER'], '29': ['Mean Zero-Crossing Period of The Wind Waves', 's', 'MZPWW'], '30': ['Mean Zero-Crossing Period of The Total Swell', 's', 'MZPTSW'], '31': ['Wave Directional Width', '-', 'WDIRW'], '32': ['Directional Width of The Wind Waves', '-', 'DIRWWW'], '33': ['Directional Width of The Total Swell', '-', 'DIRWTS'], '34': ['Peak Wave Period', 's', 'PWPER'], '35': ['Peak Period of The Wind Waves', 's', 'PPERWW'], '36': ['Peak Period of The Total Swell', 's', 'PPERTS'], '37': ['Altimeter Wave Height', 'm', 'ALTWH'], '38': ['Altimeter Corrected Wave Height', 'm', 'ALCWH'], '39': ['Altimeter Range Relative Correction', '-', 'ALRRC'], '40': ['10 Metre Neutral Wind Speed Over Waves', 'm s-1', 'MNWSOW'], '41': ['10 Metre Wind Direction Over Waves', 'degree true', 'MWDIRW'], '42': ['Wave Engery Spectrum', 'm-2 s rad-1', 'WESP'], '43': ['Kurtosis of The Sea Surface Elevation Due to Waves', '-', 'KSSEW'], '44': ['Benjamin-Feir Index', '-', 'BENINX'], '45': ['Spectral Peakedness Factor', 's-1', 'SPFTR'], '46': ['Peak wave direction', '&deg', 'PWAVEDIR'], '47': ['Significant wave height of first swell partition', 'm', 'SWHFSWEL'], '48': ['Significant wave height of second swell partition', 'm', 'SWHSSWEL'], '49': ['Significant wave height of third swell partition', 'm', 'SWHTSWEL'], '50': ['Mean wave period of first swell partition', 's', 'MWPFSWEL'], '51': ['Mean wave period of second swell partition', 's', 'MWPSSWEL'], '52': ['Mean wave period of third swell partition', 's', 'MWPTSWEL'], '53': ['Mean wave direction of first swell partition', '&deg', 'MWDFSWEL'], '54': ['Mean wave direction of second swell partition', '&deg', 'MWDSSWEL'], '55': ['Mean wave direction of third swell partition', '&deg', 'MWDTSWEL'], '56': ['Wave directional width of first swell partition', '-', 'WDWFSWEL'], '57': ['Wave directional width of second swell partition', '-', 'WDWSSWEL'], '58': ['Wave directional width of third swell partition', '-', 'WDWTSWEL'], '59': ['Wave frequency width of first swell partition', '-', 'WFWFSWEL'], '60': ['Wave frequency width of second swell partition', '-', 'WFWSSWEL'], '61': ['Wave frequency width of third swell partition', '-', 'WFWTSWEL'], '62': ['Wave frequency width', '-', 'WAVEFREW'], '63': ['Frequency width of wind waves', '-', 'FREWWW'], '64': ['Frequency width of total swell', '-', 'FREWTSW'], '65': ['Peak Wave Period of First Swell Partition', 's', 'PWPFSPAR'], '66': ['Peak Wave Period of Second Swell Partition', 's', 'PWPSSPAR'], '67': ['Peak Wave Period of Third Swell Partition', 's', 'PWPTSPAR'], '68': ['Peak Wave Direction of First Swell Partition', 'degree true', 'PWDFSPAR'], '69': ['Peak Wave Direction of Second Swell Partition', 'degree true', 'PWDSSPAR'], '70': ['Peak Wave Direction of Third Swell Partition', 'degree true', 'PWDTSPAR'], '71': ['Peak Direction of Wind Waves', 'degree true', 'PDWWAVE'], '72': ['Peak Direction of Total Swell', 'degree true', 'PDTSWELL'], '73': ['Whitecap Fraction', 'fraction', 'WCAPFRAC'], '74': ['Mean Direction of Total Swell', 'degree', 'MDTSWEL'], '75': ['Mean Direction of Wind Waves', 'degree', 'MDWWAVE'], '76': ['Charnock', 'Numeric', 'CHNCK'], '77': ['Wave Spectral Skewness', 'Numeric', 'WAVESPSK'], '78': ['Wave Energy Flux Magnitude', 'W m-1', 'WAVEFMAG'], '79': ['Wave Energy Flux Mean Direction', 'degree true', 'WAVEFDIR'], '80': ['Raio of Wave Angular and Frequency width', 'Numeric', 'RWAVEAFW'], '81': ['Free Convective Velocity over the Oceans', 'm s-1', 'FCVOCEAN'], '82': ['Air Density over the Oceans', 'kg m-3', 'AIRDENOC'], '83': ['Normalized Energy Flux into Waves', 'Numeric', 'NEFW'], '84': ['Normalized Stress into Ocean', 'Numeric', 'NSOCEAN'], '85': ['Normalized Energy Flux into Ocean', 'Numeric', 'NEFOCEAN'], '86': ['Surface Elevation Variance due to Waves (over all frequencies and directions)', 'm2 s rad-1', 'SEVWAVE'], '87': ['Wave Induced Mean Se Level Correction', 'm', 'WAVEMSLC'], '88': ['Spectral Width Index', 'Numeric', 'SPECWI'], '89': ['Number of Events in Freak Wave Statistics', 'Numeric', 'EFWS'], '90': ['U-Component of Surface Momentum Flux into Ocean', 'N m-2', 'USMFO'], '91': ['U-Component of Surface Momentum Flux into Ocean', 'N m-2', 'VSMFO'], '92': ['Wave Turbulent Energy Flux into Ocean', 'W m-2', 'WAVETEFO'], '93': ['Envelop maximum individual wave height', 'm', 'EMIWAVE'], '94': ['Time domain maximum individual crest height', 'm', 'TDMCREST'], '95': ['Time domain maximum individual wave height', 'm', 'TDMWAVE'], '96': ['Space time maximum individual crest height', 'm', 'STMCREST'], '97': ['Space time maximum individual wave height', 'm', 'STMWAVE'], '98-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Wave Steepness', 'proportion', 'WSTP'], '193': ['Wave Length', 'unknown', 'WLENG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_1", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Current Direction', 'degree True', 'DIRC'], '1': ['Current Speed', 'm s-1', 'SPC'], '2': ['U-Component of Current', 'm s-1', 'UOGRD'], '3': ['V-Component of Current', 'm s-1', 'VOGRD'], '4': ['Rip Current Occurrence Probability', '%', 'RIPCOP'], '5': ['Eastward Current', 'm s-1', 'EASTCUR'], '6': ['Northward Current', 'm s-1', 'NRTHCUR'], '7-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Ocean Mixed Layer U Velocity', 'm s-1', 'OMLU'], '193': ['Ocean Mixed Layer V Velocity', 'm s-1', 'OMLV'], '194': ['Barotropic U velocity', 'm s-1', 'UBARO'], '195': ['Barotropic V velocity', 'm s-1', 'VBARO'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_2", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Ice Cover', 'Proportion', 'ICEC'], '1': ['Ice Thickness', 'm', 'ICETK'], '2': ['Direction of Ice Drift', 'degree True', 'DICED'], '3': ['Speed of Ice Drift', 'm s-1', 'SICED'], '4': ['U-Component of Ice Drift', 'm s-1', 'UICE'], '5': ['V-Component of Ice Drift', 'm s-1', 'VICE'], '6': ['Ice Growth Rate', 'm s-1', 'ICEG'], '7': ['Ice Divergence', 's-1', 'ICED'], '8': ['Ice Temperature', 'K', 'ICETMP'], '9': ['Module of Ice Internal Pressure', 'Pa m', 'ICEPRS'], '10': ['Zonal Vector Component of Vertically Integrated Ice Internal Pressure', 'Pa m', 'ZVCICEP'], '11': ['Meridional Vector Component of Vertically Integrated Ice Internal Pressure', 'Pa m', 'MVCICEP'], '12': ['Compressive Ice Strength', 'N m-1', 'CICES'], '13': ['Snow Temperature (over sea ice)', 'K', 'SNOWTSI'], '14': ['Albedo', 'Numeric', 'ALBDOICE'], '15': ['Sea Ice Volume per Unit Area', 'm3m-2', 'SICEVOL'], '16': ['Snow Volume Over Sea Ice per Unit Area', 'm3m-2', 'SNVOLSI'], '17': ['Sea Ice Heat Content', 'J m-2', 'SICEHC'], '18': ['Snow over Sea Ice Heat Content', 'J m-2', 'SNCEHC'], '19': ['Ice Freeboard Thickness', 'm', 'ICEFTHCK'], '20': ['Ice Melt Pond Fraction', 'fraction', 'ICEMPF'], '21': ['Ice Melt Pond Depth', 'm', 'ICEMPD'], '22': ['Ice Melt Pond Volume per Unit Area', 'm3m-2', 'ICEMPV'], '23': ['Sea Ice Fraction Tendency due to Parameterization', 's-1', 'SIFTP'], '24': ['x-component of ice drift', 'm s-1', 'XICE'], '25': ['y-component of ice drift', 'm s-1', 'YICE'], '26': ['Reserved', 'unknown', 'unknown'], '27': ['Freezing/melting potential (Tentatively accepted)', 'W m-2', 'FRZMLTPOT'], '28': ['Melt onset date (Tentatively accepted)', 'Numeric', 'MLTDATE'], '29': ['Freeze onset date (Tentatively accepted)', 'Numeric', 'FRZDATE'], '30-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_3", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Water Temperature', 'K', 'WTMP'], '1': ['Deviation of Sea Level from Mean', 'm', 'DSLM'], '2': ['Heat Exchange Coefficient', 'unknown', 'CH'], '3': ['Practical Salinity', 'Numeric', 'PRACTSAL'], '4': ['Downward Heat Flux', 'W m-2', 'DWHFLUX'], '5': ['Eastward Surface Stress', 'N m-2', 'EASTWSS'], '6': ['Northward surface stress', 'N m-2', 'NORTHWSS'], '7': ['x-component Surface Stress', 'N m-2', 'XCOMPSS'], '8': ['y-component Surface Stress', 'N m-2', 'YCOMPSS'], '9': ['Thermosteric Change in Sea Surface Height', 'm', 'THERCSSH'], '10': ['Halosteric Change in Sea Surface Height', 'm', 'HALOCSSH'], '11': ['Steric Change in Sea Surface Height', 'm', 'STERCSSH'], '12': ['Sea Salt Flux', 'kg m-2s-1', 'SEASFLUX'], '13': ['Net upward water flux', 'kg m-2s-1', 'NETUPWFLUX'], '14': ['Eastward surface water velocity', 'm s-1', 'ESURFWVEL'], '15': ['Northward surface water velocity', 'm s-1', 'NSURFWVEL'], '16': ['x-component of surface water velocity', 'm s-1', 'XSURFWVEL'], '17': ['y-component of surface water velocity', 'm s-1', 'YSURFWVEL'], '18': ['Heat flux correction', 'W m-2', 'HFLUXCOR'], '19': ['Sea surface height tendency due to parameterization', 'm s-1', 'SSHGTPARM'], '20': ['Deviation of sea level from mean with inverse barometer correction', 'm', 'DSLIBARCOR'], '21': ['Salinity', 'kg kg-1', 'SALIN'], '22-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Hurricane Storm Surge', 'm', 'SURGE'], '193': ['Extra Tropical Storm Surge', 'm', 'ETSRG'], '194': ['Ocean Surface Elevation Relative to Geoid', 'm', 'ELEV'], '195': ['Sea Surface Height Relative to Geoid', 'm', 'SSHG'], '196': ['Ocean Mixed Layer Potential Density (Reference 2000m)', 'kg m-3', 'P2OMLT'], '197': ['Net Air-Ocean Heat Flux', 'W m-2', 'AOHFLX'], '198': ['Assimilative Heat Flux', 'W m-2', 'ASHFL'], '199': ['Surface Temperature Trend', 'degree per day', 'SSTT'], '200': ['Surface Salinity Trend', 'psu per day', 'SSST'], '201': ['Kinetic Energy', 'J kg-1', 'KENG'], '202': ['Salt Flux', 'kg m-2s-1', 'SLTFL'], '203': ['Heat Exchange Coefficient', 'unknown', 'LCH'], '204': ['Freezing Spray', 'unknown', 'FRZSPR'], '205': ['Total Water Level Accounting for Tide, Wind and Waves', 'm', 'TWLWAV'], '206': ['Total Water Level Increase due to Waves', 'm', 'RUNUP'], '207': ['Mean Increase in Water Level due to Waves', 'm', 'SETUP'], '208': ['Time-varying Increase in Water Level due to Waves', 'm', 'SWASH'], '209': ['Total Water Level Above Dune Toe', 'm', 'TWLDT'], '210': ['Total Water Level Above Dune Crest', 'm', 'TWLDC'], '211-241': ['Reserved', 'unknown', 'unknown'], '242': ['20% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG20'], '243': ['30% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG30'], '244': ['40% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG40'], '245': ['50% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG50'], '246': ['60% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG60'], '247': ['70% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG70'], '248': ['80% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG80'], '249': ['90% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG90'], '250': ['Extra Tropical Storm Surge Combined Surge and Tide', 'm', 'ETCWL'], '251': ['Tide', 'm', 'TIDE'], '252': ['Erosion Occurrence Probability', '%', 'EROSNP'], '253': ['Overwash Occurrence Probability', '%', 'OWASHP'], '254': ['Reserved', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_4", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Main Thermocline Depth', 'm', 'MTHD'], '1': ['Main Thermocline Anomaly', 'm', 'MTHA'], '2': ['Transient Thermocline Depth', 'm', 'TTHDP'], '3': ['Salinity', 'kg kg-1', 'SALTY'], '4': ['Ocean Vertical Heat Diffusivity', 'm2 s-1', 'OVHD'], '5': ['Ocean Vertical Salt Diffusivity', 'm2 s-1', 'OVSD'], '6': ['Ocean Vertical Momentum Diffusivity', 'm2 s-1', 'OVMD'], '7': ['Bathymetry', 'm', 'BATHY'], '8-10': ['Reserved', 'unknown', 'unknown'], '11': ['Shape Factor With Respect To Salinity Profile', 'unknown', 'SFSALP'], '12': ['Shape Factor With Respect To Temperature Profile In Thermocline', 'unknown', 'SFTMPP'], '13': ['Attenuation Coefficient Of Water With Respect to Solar Radiation', 'm-1', 'ACWSRD'], '14': ['Water Depth', 'm', 'WDEPTH'], '15': ['Water Temperature', 'K', 'WTMPSS'], '16': ['Water Density (rho)', 'kg m-3', 'WATERDEN'], '17': ['Water Density Anomaly (sigma)', 'kg m-3', 'WATDENA'], '18': ['Water potential temperature (theta)', 'K', 'WATPTEMP'], '19': ['Water potential density (rho theta)', 'kg m-3', 'WATPDEN'], '20': ['Water potential density anomaly (sigma theta)', 'kg m-3', 'WATPDENA'], '21': ['Practical Salinity', 'psu (numeric)', 'PRTSAL'], '22': ['Water Column-integrated Heat Content', 'J m-2', 'WCHEATC'], '23': ['Eastward Water Velocity', 'm s-1', 'EASTWVEL'], '24': ['Northward Water Velocity', 'm s-1', 'NRTHWVEL'], '25': ['X-Component Water Velocity', 'm s-1', 'XCOMPWV'], '26': ['Y-Component Water Velocity', 'm s-1', 'YCOMPWV'], '27': ['Upward Water Velocity', 'm s-1', 'UPWWVEL'], '28': ['Vertical Eddy Diffusivity', 'm2 s-1', 'VEDDYDIF'], '29': ['Bottom Pressure Equivalent Height', 'm', 'BPEH'], '30': ['Fresh Water Flux into Sea Water from Rivers', 'kg m-2s-1', 'FWFSW'], '31': ['Fresh Water Flux Correction', 'kg m-2s-1', 'FWFC'], '32': ['Virtual Salt Flux into Sea Water', 'g kg-1 m-2s-1', 'VSFSW'], '33': ['Virtual Salt Flux Correction', 'g kg -1 m-2s-1', 'VSFC'], '34': ['Sea Water Temperature Tendency due to Newtonian Relaxation', 'K s-1', 'SWTTNR'], '35': ['Sea Water Salinity Tendency due to Newtonian Relaxation', 'g kg -1s-1', 'SWSTNR'], '36': ['Sea Water Temperature Tendency due to Parameterization', 'K s-1', 'SWTTP'], '37': ['Sea Water Salinity Tendency due to Parameterization', 'g kg -1s-1', 'SWSTP'], '38': ['Eastward Sea Water Velocity Tendency Due To Parameterization', 'm s-2', 'ESWVP'], '39': ['Northward Sea Water Velocity Tendency Due To Parameterization', 'm s-2', 'NSWVP'], '40': ['Sea Water Temperature Tendency Due to Direct Bias Correction', 'K s-1', 'SWTTBC'], '41': ['Sea Water Salinity Tendency due to Direct Bias Correction', 'g kg -1s-1', 'SWSTBC'], '42': ['Sea water meridional volume transport', 'm 3 m -2 s -1', 'SEAMVT'], '43': ['Sea water zonal volume transport', 'm 3 m -2 s -1', 'SEAZVT'], '44': ['Sea water column integrated meridional volume transport', 'm 3 m -2 s -1', 'SEACMVT'], '45': ['Sea water column integrated zonal volume transport', 'm 3 m -2 s -1', 'SEACZVT'], '46': ['Sea water meridional mass transport', 'kg m -2 s -1', 'SEAMMT'], '47': ['Sea water zonal mass transport', 'kg m -2 s -1', 'SEAZMT'], '48': ['Sea water column integrated meridional mass transport', 'kg m -2 s -1', 'SEACMMT'], '49': ['Sea water column integrated zonal mass transport', 'kg m -2 s -1', 'SEACZMT'], '50': ['Sea water column integrated practical salinity', 'g kg-1 m', 'SEACPSALT'], '51': ['Sea water column integrated salinity', 'kg kg-1 m', 'SEACSALT'], '52-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['3-D Temperature', '\u00b0 c', 'WTMPC'], '193': ['3-D Salinity', 'psu', 'SALIN'], '194': ['Barotropic Kinectic Energy', 'J kg-1', 'BKENG'], '195': ['Geometric Depth Below Sea Surface', 'm', 'DBSS'], '196': ['Interface Depths', 'm', 'INTFD'], '197': ['Ocean Heat Content', 'J m-2', 'OHC'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_191", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_191", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Seconds Prior To Initial Reference Time (Defined In Section 1)', 's', 'IRTSEC'], '1': ['Meridional Overturning Stream Function', 'm3 s-1', 'MOSF'], '2': ['Reserved', 'unknown', 'unknown'], '3': ['Days Since Last Observation', 'd', 'DSLOBSO'], '4': ['Barotropic Stream Function', 'm3 s-1', 'BARDSF'], '5-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2", "modulename": "grib2io.tables.section4_discipline2", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_0", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Land Cover (0=sea, 1=land)', 'Proportion', 'LAND'], '1': ['Surface Roughness', 'm', 'SFCR'], '2': ['Soil Temperature (Parameter Deprecated, see Note 3)', 'K', 'TSOIL'], '3': ['Soil Moisture Content (Parameter Deprecated, see Note 1)', 'unknown', 'unknown'], '4': ['Vegetation', '%', 'VEG'], '5': ['Water Runoff', 'kg m-2', 'WATR'], '6': ['Evapotranspiration', 'kg-2 s-1', 'EVAPT'], '7': ['Model Terrain Height', 'm', 'MTERH'], '8': ['Land Use', 'See Table 4.212', 'LANDU'], '9': ['Volumetric Soil Moisture Content', 'Proportion', 'SOILW'], '10': ['Ground Heat Flux', 'W m-2', 'GFLUX'], '11': ['Moisture Availability', '%', 'MSTAV'], '12': ['Exchange Coefficient', 'kg m-2 s-1', 'SFEXC'], '13': ['Plant Canopy Surface Water', 'kg m-2', 'CNWAT'], '14': ['Blackadars Mixing Length Scale', 'm', 'BMIXL'], '15': ['Canopy Conductance', 'm s-1', 'CCOND'], '16': ['Minimal Stomatal Resistance', 's m-1', 'RSMIN'], '17': ['Wilting Point (Parameter Deprecated, see Note 1)', 'Proportion', 'WILT'], '18': ['Solar parameter in canopy conductance', 'Proportion', 'RCS'], '19': ['Temperature parameter in canopy', 'Proportion', 'RCT'], '20': ['Humidity parameter in canopy conductance', 'Proportion', 'RCQ'], '21': ['Soil moisture parameter in canopy conductance', 'Proportion', 'RCSOL'], '22': ['Soil Moisture (Parameter Deprecated, See Note 3)', 'unknown', 'unknown'], '23': ['Column-Integrated Soil Water (Parameter Deprecated, See Note 3)', 'kg m-2', 'CISOILW'], '24': ['Heat Flux', 'W m-2', 'HFLUX'], '25': ['Volumetric Soil Moisture', 'm3 m-3', 'VSOILM'], '26': ['Wilting Point', 'kg m-3', 'WILT'], '27': ['Volumetric Wilting Point', 'm3 m-3', 'VWILTP'], '28': ['Leaf Area Index', 'Numeric', 'LEAINX'], '29': ['Evergreen Forest Cover', 'Proportion', 'EVGFC'], '30': ['Deciduous Forest Cover', 'Proportion', 'DECFC'], '31': ['Normalized Differential Vegetation Index (NDVI)', 'Numeric', 'NDVINX'], '32': ['Root Depth of Vegetation', 'm', 'RDVEG'], '33': ['Water Runoff and Drainage', 'kg m-2', 'WROD'], '34': ['Surface Water Runoff', 'kg m-2', 'SFCWRO'], '35': ['Tile Class', 'See Table 4.243', 'TCLASS'], '36': ['Tile Fraction', 'Proportion', 'TFRCT'], '37': ['Tile Percentage', '%', 'TPERCT'], '38': ['Soil Volumetric Ice Content (Water Equivalent)', 'm3 m-3', 'SOILVIC'], '39': ['Evapotranspiration Rate', 'kg m-2 s-1', 'EVAPTRAT'], '40': ['Potential Evapotranspiration Rate', 'kg m-2 s-1', 'PEVAPTRAT'], '41': ['Snow Melt Rate', 'kg m-2 s-1', 'SMRATE'], '42': ['Water Runoff and Drainage Rate', 'kg m-2 s-1', 'WRDRATE'], '43': ['Drainage direction', 'See Table 4.250', 'DRAINDIR'], '44': ['Upstream Area', 'm2', 'UPSAREA'], '45': ['Wetland Cover', 'Proportion', 'WETCOV'], '46': ['Wetland Type', 'See Table 4.239', 'WETTYPE'], '47': ['Irrigation Cover', 'Proportion', 'IRRCOV'], '48': ['C4 Crop Cover', 'Proportion', 'CROPCOV'], '49': ['C4 Grass Cover', 'Proportion', 'GRASSCOV'], '50': ['Skin Resovoir Content', 'kg m-2', 'SKINRC'], '51': ['Surface Runoff Rate', 'kg m-2 s-1', 'SURFRATE'], '52': ['Subsurface Runoff Rate', 'kg m-2 s-1', 'SUBSRATE'], '53': ['Low-Vegetation Cover', 'Proportion', 'LOVEGCOV'], '54': ['High-Vegetation Cover', 'Proportion', 'HIVEGCOV'], '55': ['Leaf Area Index (Low-Vegetation)', 'm2 m-2', 'LAILO'], '56': ['Leaf Area Index (High-Vegetation)', 'm2 m-2', 'LAIHI'], '57': ['Type of Low-Vegetation', 'See Table 4.234', 'TYPLOVEG'], '58': ['Type of High-Vegetation', 'See Table 4.234', 'TYPHIVEG'], '59': ['Net Ecosystem Exchange Flux', 'kg-2 s-1', 'NECOFLUX'], '60': ['Gross Primary Production Flux', 'kg-2 s-1', 'GROSSFLUX'], '61': ['Ecosystem Respiration Flux', 'kg-2 s-1', 'ECORFLUX'], '62': ['Emissivity', 'Proportion', 'EMISS'], '63': ['Canopy air temperature', 'K', 'CANTMP'], '64-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Volumetric Soil Moisture Content', 'Fraction', 'SOILW'], '193': ['Ground Heat Flux', 'W m-2', 'GFLUX'], '194': ['Moisture Availability', '%', 'MSTAV'], '195': ['Exchange Coefficient', '(kg m-3) (m s-1)', 'SFEXC'], '196': ['Plant Canopy Surface Water', 'kg m-2', 'CNWAT'], '197': ['Blackadar\u2019s Mixing Length Scale', 'm', 'BMIXL'], '198': ['Vegetation Type', 'Integer (0-13)', 'VGTYP'], '199': ['Canopy Conductance', 'm s-1', 'CCOND'], '200': ['Minimal Stomatal Resistance', 's m-1', 'RSMIN'], '201': ['Wilting Point', 'Fraction', 'WILT'], '202': ['Solar parameter in canopy conductance', 'Fraction', 'RCS'], '203': ['Temperature parameter in canopy conductance', 'Fraction', 'RCT'], '204': ['Humidity parameter in canopy conductance', 'Fraction', 'RCQ'], '205': ['Soil moisture parameter in canopy conductance', 'Fraction', 'RCSOL'], '206': ['Rate of water dropping from canopy to ground', 'unknown', 'RDRIP'], '207': ['Ice-free water surface', '%', 'ICWAT'], '208': ['Surface exchange coefficients for T and Q divided by delta z', 'm s-1', 'AKHS'], '209': ['Surface exchange coefficients for U and V divided by delta z', 'm s-1', 'AKMS'], '210': ['Vegetation canopy temperature', 'K', 'VEGT'], '211': ['Surface water storage', 'kg m-2', 'SSTOR'], '212': ['Liquid soil moisture content (non-frozen)', 'kg m-2', 'LSOIL'], '213': ['Open water evaporation (standing water)', 'W m-2', 'EWATR'], '214': ['Groundwater recharge', 'kg m-2', 'GWREC'], '215': ['Flood plain recharge', 'kg m-2', 'QREC'], '216': ['Roughness length for heat', 'm', 'SFCRH'], '217': ['Normalized Difference Vegetation Index', 'unknown', 'NDVI'], '218': ['Land-sea coverage (nearest neighbor) [land=1,sea=0]', 'unknown', 'LANDN'], '219': ['Asymptotic mixing length scale', 'm', 'AMIXL'], '220': ['Water vapor added by precip assimilation', 'kg m-2', 'WVINC'], '221': ['Water condensate added by precip assimilation', 'kg m-2', 'WCINC'], '222': ['Water Vapor Flux Convergance (Vertical Int)', 'kg m-2', 'WVCONV'], '223': ['Water Condensate Flux Convergance (Vertical Int)', 'kg m-2', 'WCCONV'], '224': ['Water Vapor Zonal Flux (Vertical Int)', 'kg m-2', 'WVUFLX'], '225': ['Water Vapor Meridional Flux (Vertical Int)', 'kg m-2', 'WVVFLX'], '226': ['Water Condensate Zonal Flux (Vertical Int)', 'kg m-2', 'WCUFLX'], '227': ['Water Condensate Meridional Flux (Vertical Int)', 'kg m-2', 'WCVFLX'], '228': ['Aerodynamic conductance', 'm s-1', 'ACOND'], '229': ['Canopy water evaporation', 'W m-2', 'EVCW'], '230': ['Transpiration', 'W m-2', 'TRANS'], '231': ['Seasonally Minimum Green Vegetation Fraction (over 1-year period)', '%', 'VEGMIN'], '232': ['Seasonally Maximum Green Vegetation Fraction (over 1-year period)', '%', 'VEGMAX'], '233': ['Land Fraction', 'Fraction', 'LANDFRC'], '234': ['Lake Fraction', 'Fraction', 'LAKEFRC'], '235': ['Precipitation Advected Heat Flux', 'W m-2', 'PAHFLX'], '236': ['Water Storage in Aquifer', 'kg m-2', 'WATERSA'], '237': ['Evaporation of Intercepted Water', 'kg m-2', 'EIWATER'], '238': ['Plant Transpiration', 'kg m-2', 'PLANTTR'], '239': ['Soil Surface Evaporation', 'kg m-2', 'SOILSE'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_1", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_1", "kind": "variable", "doc": "

\n", "default_value": "{'0-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Cold Advisory for Newborn Livestock', 'unknown', 'CANL'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_3", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Soil Type', 'See Table 4.213', 'SOTYP'], '1': ['Upper Layer Soil Temperature', 'K', 'UPLST'], '2': ['Upper Layer Soil Moisture', 'kg m-3', 'UPLSM'], '3': ['Lower Layer Soil Moisture', 'kg m-3', 'LOWLSM'], '4': ['Bottom Layer Soil Temperature', 'K', 'BOTLST'], '5': ['Liquid Volumetric Soil Moisture(non-frozen)', 'Proportion', 'SOILL'], '6': ['Number of Soil Layers in Root Zone', 'Numeric', 'RLYRS'], '7': ['Transpiration Stress-onset (soil moisture)', 'Proportion', 'SMREF'], '8': ['Direct Evaporation Cease (soil moisture)', 'Proportion', 'SMDRY'], '9': ['Soil Porosity', 'Proportion', 'POROS'], '10': ['Liquid Volumetric Soil Moisture (Non-Frozen)', 'm3 m-3', 'LIQVSM'], '11': ['Volumetric Transpiration Stree-Onset(Soil Moisture)', 'm3 m-3', 'VOLTSO'], '12': ['Transpiration Stree-Onset(Soil Moisture)', 'kg m-3', 'TRANSO'], '13': ['Volumetric Direct Evaporation Cease(Soil Moisture)', 'm3 m-3', 'VOLDEC'], '14': ['Direct Evaporation Cease(Soil Moisture)', 'kg m-3', 'DIREC'], '15': ['Soil Porosity', 'm3 m-3', 'SOILP'], '16': ['Volumetric Saturation Of Soil Moisture', 'm3 m-3', 'VSOSM'], '17': ['Saturation Of Soil Moisture', 'kg m-3', 'SATOSM'], '18': ['Soil Temperature', 'K', 'SOILTMP'], '19': ['Soil Moisture', 'kg m-3', 'SOILMOI'], '20': ['Column-Integrated Soil Moisture', 'kg m-2', 'CISOILM'], '21': ['Soil Ice', 'kg m-3', 'SOILICE'], '22': ['Column-Integrated Soil Ice', 'kg m-2', 'CISICE'], '23': ['Liquid Water in Snow Pack', 'kg m-2', 'LWSNWP'], '24': ['Frost Index', 'kg day-1', 'FRSTINX'], '25': ['Snow Depth at Elevation Bands', 'kg m-2', 'SNWDEB'], '26': ['Soil Heat Flux', 'W m-2', 'SHFLX'], '27': ['Soil Depth', 'm', 'SOILDEP'], '28': ['Snow Temperature', 'K', 'SNOWTMP'], '29': ['Ice Temperature', 'K', 'ICETMP'], '30': ['Soil wetness index', 'Numeric', 'SWET'], '31-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Liquid Volumetric Soil Moisture (non Frozen)', 'Proportion', 'SOILL'], '193': ['Number of Soil Layers in Root Zone', 'non-dim', 'RLYRS'], '194': ['Surface Slope Type', 'Index', 'SLTYP'], '195': ['Transpiration Stress-onset (soil moisture)', 'Proportion', 'SMREF'], '196': ['Direct Evaporation Cease (soil moisture)', 'Proportion', 'SMDRY'], '197': ['Soil Porosity', 'Proportion', 'POROS'], '198': ['Direct Evaporation from Bare Soil', 'W m-2', 'EVBS'], '199': ['Land Surface Precipitation Accumulation', 'kg m-2', 'LSPA'], '200': ['Bare Soil Surface Skin temperature', 'K', 'BARET'], '201': ['Average Surface Skin Temperature', 'K', 'AVSFT'], '202': ['Effective Radiative Skin Temperature', 'K', 'RADT'], '203': ['Field Capacity', 'Fraction', 'FLDCP'], '204': ['Soil Moisture Availability In The Top Soil Layer', '%', 'MSTAV'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_4", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Fire Outlook', 'See Table 4.224', 'FIREOLK'], '1': ['Fire Outlook Due to Dry Thunderstorm', 'See Table 4.224', 'FIREODT'], '2': ['Haines Index', 'Numeric', 'HINDEX'], '3': ['Fire Burned Area', '%', 'FBAREA'], '4': ['Fosberg Index', 'Numeric', 'FOSINDX'], '5': ['Fire Weath Index (Canadian Forest Service)', 'Numeric', 'FWINX'], '6': ['Fine Fuel Moisture Code (Canadian Forest Service)', 'Numeric', 'FFMCODE'], '7': ['Duff Moisture Code (Canadian Forest Service)', 'Numeric', 'DUFMCODE'], '8': ['Drought Code (Canadian Forest Service)', 'Numeric', 'DRTCODE'], '9': ['Initial Fire Spread Index (Canadian Forest Service)', 'Numeric', 'INFSINX'], '10': ['Fire Build Up Index (Canadian Forest Service)', 'Numeric', 'FBUPINX'], '11': ['Fire Daily Severity Rating (Canadian Forest Service)', 'Numeric', 'FDSRTE'], '12': ['Keetch-Byram Drought Index', 'Numeric', 'KRIDX'], '13': ['Drought Factor (as defined by the Australian forest service)', 'Numeric', 'DRFACT'], '14': ['Rate of Spread (as defined by the Australian forest service)', 'm s-1', 'RATESPRD'], '15': ['Fire Danger index (as defined by the Australian forest service)', 'Numeric', 'FIREDIDX'], '16': ['Spread component (as defined by the US Forest Service National Fire Danger Rating System)', 'Numeric', 'SPRDCOMP'], '17': ['Burning Index (as defined by the Australian forest service)', 'Numeric', 'BURNIDX'], '18': ['Ignition Component (as defined by the Australian forest service)', '%', 'IGNCOMP'], '19': ['Energy Release Component (as defined by the Australian forest service)', 'J m-2', 'ENRELCOM'], '20': ['Burning Area', '%', 'BURNAREA'], '21': ['Burnable Area', '%', 'BURNABAREA'], '22': ['Unburnable Area', '%', 'UNBURNAREA'], '23': ['Fuel Load', 'kg m-2', 'FUELLOAD'], '24': ['Combustion Completeness', '%', 'COMBCO'], '25': ['Fuel Moisture Content', 'kg kg-1', 'FUELMC'], '26': ['Wildfire Potential (as defined by NOAA Global Systems Laboratory)', 'Numeric', 'WFIREPOT'], '27': ['Live leaf fuel load', 'kg m-2', 'LLFL'], '28': ['Live wood fuel load', 'kg m-2', 'LWFL'], '29': ['Dead leaf fuel load', 'kg m-2', 'DLFL'], '30': ['Dead wood fuel load', 'kg m-2', 'DWFL'], '31': ['Live fuel moisture content', 'kg kg-1', 'LFMC'], '32': ['Fine dead leaf moisture content', 'kg kg-1', 'FDLMC'], '33': ['Dense dead leaf moisture content', 'kg kg-1', 'DDLMC'], '34': ['Fine dead wood moisture content', 'kg kg-1', 'FDWMC'], '35': ['Dense dead wood moisture content', 'kg kg-1', 'DDWMC'], '36': ['Fire radiative power\\t(Tentatively accpeted)', 'W', 'FRADPOW'], '37-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_5", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_5", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Glacier Cover', 'Proportion', 'GLACCOV'], '1': ['Glacier Temperature', 'K', 'GLACTMP'], '2-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline20", "modulename": "grib2io.tables.section4_discipline20", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline20.table_4_2_20_0", "modulename": "grib2io.tables.section4_discipline20", "qualname": "table_4_2_20_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Universal Thermal Climate Index', 'K', 'UTHCIDX'], '1': ['Mean Radiant Temperature', 'K', 'MEANRTMP'], '2': ['Wet-bulb Globe Temperature (see Note)', 'K', 'WETBGTMP'], '3': ['Globe Temperature (see Note)', 'K', 'GLOBETMP'], '4': ['Humidex', 'K', 'HUMIDX'], '5': ['Effective Temperature', 'K', 'EFFTEMP'], '6': ['Normal Effective Temperature', 'K', 'NOREFTMP'], '7': ['Standard Effective Temperature', 'K', 'STDEFTMP'], '8': ['Physiological Equivalent Temperature', 'K', 'PEQUTMP'], '9-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline20.table_4_2_20_1", "modulename": "grib2io.tables.section4_discipline20", "qualname": "table_4_2_20_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Malaria Cases', 'Fraction', 'MALACASE'], '1': ['Malaria Circumsporozoite Protein Rate', 'Fraction', 'MACPRATE'], '2': ['Plasmodium Falciparum Entomological Inoculation Rate', 'Bites per day per person', 'PFEIRATE'], '3': ['Human Bite Rate by Anopheles Vectors', 'Bites per day per person', 'HBRATEAV'], '4': ['Malaria Immunity', 'Fraction', 'MALAIMM'], '5': ['Falciparum Parasite Rates', 'Fraction', 'FALPRATE'], '6': ['Detectable Falciparum Parasite Ratio (after day 10)', 'Fraction', 'DFPRATIO'], '7': ['Anopheles Vector to Host Ratio', 'Fraction', 'AVHRATIO'], '8': ['Anopheles Vector Number', 'Number m-2', 'AVECTNUM'], '9': ['Fraction of Malarial Vector Reproductive Habitat', 'Fraction', 'FMALVRH'], '10-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline20.table_4_2_20_2", "modulename": "grib2io.tables.section4_discipline20", "qualname": "table_4_2_20_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Population Density', 'Person m-2', 'POPDEN'], '1-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline209", "modulename": "grib2io.tables.section4_discipline209", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_2", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['CG Average Lightning Density 1-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_001min_AvgDensity'], '1': ['CG Average Lightning Density 5-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_005min_AvgDensity'], '2': ['CG Average Lightning Density 15-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_015min_AvgDensity'], '3': ['CG Average Lightning Density 30-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_030min_AvgDensity'], '5': ['Lightning Probability 0-30 minutes - NLDN', '%', 'LightningProbabilityNext30minGrid'], '6': ['Lightning Probability 0-30 minutes - NLDN', '%', 'LightningProbabilityNext60minGrid'], '7': ['Rapid lightning increases and decreases ', 'non-dim', 'LightningJumpGrid'], '8': ['Rapid lightning increases and decreases over 5-minutes ', 'non-dim', 'LightningJumpGrid_Max_005min']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_3", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Azimuth Shear 0-2km AGL', '0.001/s', 'MergedAzShear0to2kmAGL'], '1': ['Azimuth Shear 3-6km AGL', '0.001/s', 'MergedAzShear3to6kmAGL'], '2': ['Rotation Track 0-2km AGL 30-min', '0.001/s', 'RotationTrack30min'], '3': ['Rotation Track 0-2km AGL 60-min', '0.001/s', 'RotationTrack60min'], '4': ['Rotation Track 0-2km AGL 120-min', '0.001/s', 'RotationTrack120min'], '5': ['Rotation Track 0-2km AGL 240-min', '0.001/s', 'RotationTrack240min'], '6': ['Rotation Track 0-2km AGL 360-min', '0.001/s', 'RotationTrack360min'], '7': ['Rotation Track 0-2km AGL 1440-min', '0.001/s', 'RotationTrack1440min'], '14': ['Rotation Track 3-6km AGL 30-min', '0.001/s', 'RotationTrackML30min'], '15': ['Rotation Track 3-6km AGL 60-min', '0.001/s', 'RotationTrackML60min'], '16': ['Rotation Track 3-6km AGL 120-min', '0.001/s', 'RotationTrackML120min'], '17': ['Rotation Track 3-6km AGL 240-min', '0.001/s', 'RotationTrackML240min'], '18': ['Rotation Track 3-6km AGL 360-min', '0.001/s', 'RotationTrackML360min'], '19': ['Rotation Track 3-6km AGL 1440-min', '0.001/s', 'RotationTrackML1440min'], '26': ['Severe Hail Index', 'index', 'SHI'], '27': ['Prob of Severe Hail', '%', 'POSH'], '28': ['Maximum Estimated Size of Hail (MESH)', 'mm', 'MESH'], '29': ['MESH Hail Swath 30-min', 'mm', 'MESHMax30min'], '30': ['MESH Hail Swath 60-min', 'mm', 'MESHMax60min'], '31': ['MESH Hail Swath 120-min', 'mm', 'MESHMax120min'], '32': ['MESH Hail Swath 240-min', 'mm', 'MESHMax240min'], '33': ['MESH Hail Swath 360-min', 'mm', 'MESHMax360min'], '34': ['MESH Hail Swath 1440-min', 'mm', 'MESHMax1440min'], '37': ['VIL Swath 120-min', 'kg/m^2', 'VIL_Max_120min'], '40': ['VIL Swath 1440-min', 'kg/m^2', 'VIL_Max_1440min'], '41': ['Vertically Integrated Liquid', 'kg/m^2', 'VIL'], '42': ['Vertically Integrated Liquid Density', 'g/m^3', 'VIL_Density'], '43': ['Vertically Integrated Ice', 'kg/m^2', 'VII'], '44': ['Echo Top - 18 dBZ', 'km MSL', 'EchoTop_18'], '45': ['Echo Top - 30 dBZ', 'km MSL', 'EchoTop_30'], '46': ['Echo Top - 50 dBZ', 'km MSL', 'EchoTop_50'], '47': ['Echo Top - 60 dBZ', 'km MSL', 'EchoTop_60'], '48': ['Thickness [50 dBZ top - (-20C)]', 'km', 'H50AboveM20C'], '49': ['Thickness [50 dBZ top - 0C]', 'km', 'H50Above0C'], '50': ['Thickness [60 dBZ top - (-20C)]', 'km', 'H60AboveM20C'], '51': ['Thickness [60 dBZ top - 0C]', 'km', 'H60Above0C'], '52': ['Isothermal Reflectivity at 0C', 'dBZ', 'Reflectivity_0C'], '53': ['Isothermal Reflectivity at -5C', 'dBZ', 'Reflectivity_-5C'], '54': ['Isothermal Reflectivity at -10C', 'dBZ', 'Reflectivity_-10C'], '55': ['Isothermal Reflectivity at -15C', 'dBZ', 'Reflectivity_-15C'], '56': ['Isothermal Reflectivity at -20C', 'dBZ', 'Reflectivity_-20C'], '57': ['ReflectivityAtLowestAltitude resampled from 1 to 5km resolution', 'dBZ', 'ReflectivityAtLowestAltitude5km'], '58': ['Non Quality Controlled Reflectivity At Lowest Altitude', 'dBZ', 'MergedReflectivityAtLowestAltitude']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_6", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_6", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Surface Precipitation Type (Convective, Stratiform, Tropical, Hail, Snow)', 'flag', 'PrecipFlag'], '1': ['Radar Precipitation Rate', 'mm/hr', 'PrecipRate'], '2': ['Radar precipitation accumulation 1-hour', 'mm', 'RadarOnly_QPE_01H'], '3': ['Radar precipitation accumulation 3-hour', 'mm', 'RadarOnly_QPE_03H'], '4': ['Radar precipitation accumulation 6-hour', 'mm', 'RadarOnly_QPE_06H'], '5': ['Radar precipitation accumulation 12-hour', 'mm', 'RadarOnly_QPE_12H'], '6': ['Radar precipitation accumulation 24-hour', 'mm', 'RadarOnly_QPE_24H'], '7': ['Radar precipitation accumulation 48-hour', 'mm', 'RadarOnly_QPE_48H'], '8': ['Radar precipitation accumulation 72-hour', 'mm', 'RadarOnly_QPE_72H'], '30': ['Multi-sensor accumulation 1-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_01H_Pass1'], '31': ['Multi-sensor accumulation 3-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_03H_Pass1'], '32': ['Multi-sensor accumulation 6-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_06H_Pass1'], '33': ['Multi-sensor accumulation 12-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_12H_Pass1'], '34': ['Multi-sensor accumulation 24-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_24H_Pass1'], '35': ['Multi-sensor accumulation 48-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_48H_Pass1'], '36': ['Multi-sensor accumulation 72-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_72H_Pass1'], '37': ['Multi-sensor accumulation 1-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_01H_Pass2'], '38': ['Multi-sensor accumulation 3-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_03H_Pass2'], '39': ['Multi-sensor accumulation 6-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_06H_Pass2'], '40': ['Multi-sensor accumulation 12-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_12H_Pass2'], '41': ['Multi-sensor accumulation 24-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_24H_Pass2'], '42': ['Multi-sensor accumulation 48-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_48H_Pass2'], '43': ['Multi-sensor accumulation 72-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_72H_Pass2'], '44': ['Method IDs for blended single and dual-pol derived precip rates ', 'flag', 'SyntheticPrecipRateID'], '45': ['Radar precipitation accumulation 15-minute', 'mm', 'RadarOnly_QPE_15M'], '46': ['Radar precipitation accumulation since 12Z', 'mm', 'RadarOnly_QPE_Since12Z']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_7", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_7", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Model Surface temperature', 'C', 'Model_SurfaceTemp'], '1': ['Model Surface wet bulb temperature', 'C', 'Model_WetBulbTemp'], '2': ['Probability of warm rain', '%', 'WarmRainProbability'], '3': ['Model Freezing Level Height', 'm MSL', 'Model_0degC_Height'], '4': ['Brightband Top Height', 'm AGL', 'BrightBandTopHeight'], '5': ['Brightband Bottom Height', 'm AGL', 'BrightBandBottomHeight']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_8", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_8", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Radar Quality Index', 'non-dim', 'RadarQualityIndex'], '1': ['Gauge Influence Index for 1-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_01H_Pass1'], '2': ['Gauge Influence Index for 3-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_03H_Pass1'], '3': ['Gauge Influence Index for 6-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_06H_Pass1'], '4': ['Gauge Influence Index for 12-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_12H_Pass1'], '5': ['Gauge Influence Index for 24-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_24H_Pass1'], '6': ['Gauge Influence Index for 48-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_48H_Pass1'], '7': ['Gauge Influence Index for 72-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_72H_Pass1'], '8': ['Seamless Hybrid Scan Reflectivity with VPR correction', 'dBZ', 'SeamlessHSR'], '9': ['Height of Seamless Hybrid Scan Reflectivity', 'km AGL', 'SeamlessHSRHeight'], '10': ['Radar 1-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_01H'], '11': ['Radar 3-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_03H'], '12': ['Radar 6-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_06H'], '13': ['Radar 12-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_12H'], '14': ['Radar 24-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_24H'], '15': ['Radar 48-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_48H'], '16': ['Radar 72-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_72H'], '17': ['Gauge Influence Index for 1-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_01H_Pass2'], '18': ['Gauge Influence Index for 3-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_03H_Pass2'], '19': ['Gauge Influence Index for 6-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_06H_Pass2'], '20': ['Gauge Influence Index for 12-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_12H_Pass2'], '21': ['Gauge Influence Index for 24-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_24H_Pass2'], '22': ['Gauge Influence Index for 48-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_48H_Pass2'], '23': ['Gauge Influence Index for 72-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_72H_Pass2']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_9", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_9", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['3D Reflectivty Mosaic - 33 CAPPIS (500-19000m)', 'dBZ', 'MergedReflectivityQC'], '3': ['3D RhoHV Mosaic - 33 CAPPIS (500-19000m)', 'non-dim', 'MergedRhoHV'], '4': ['3D Zdr Mosaic - 33 CAPPIS (500-19000m)', 'dB', 'MergedZdr']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_10", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_10", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Composite Reflectivity Mosaic (optimal method) resampled from 1 to 5km', 'dBZ', 'MergedReflectivityQCComposite5km'], '1': ['Height of Composite Reflectivity Mosaic (optimal method)', 'm MSL', 'HeightCompositeReflectivity'], '2': ['Low-Level Composite Reflectivity Mosaic (0-4km)', 'dBZ', 'LowLevelCompositeReflectivity'], '3': ['Height of Low-Level Composite Reflectivity Mosaic (0-4km)', 'm MSL', 'HeightLowLevelCompositeReflectivity'], '4': ['Layer Composite Reflectivity Mosaic 0-24kft (low altitude)', 'dBZ', 'LayerCompositeReflectivity_Low'], '5': ['Layer Composite Reflectivity Mosaic 24-60 kft (highest altitude)', 'dBZ', 'LayerCompositeReflectivity_High'], '6': ['Layer Composite Reflectivity Mosaic 33-60 kft (super high altitude)', 'dBZ', 'LayerCompositeReflectivity_Super'], '7': ['Composite Reflectivity Hourly Maximum', 'dBZ', 'CREF_1HR_MAX'], '9': ['Layer Composite Reflectivity Mosaic (2-4.5km) (for ANC)', 'dBZ', 'LayerCompositeReflectivity_ANC'], '10': ['Base Reflectivity Hourly Maximum', 'dBZ', 'BREF_1HR_MAX']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_11", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_11", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Base Reflectivity Mosaic (optimal method)', 'dBZ', 'MergedBaseReflectivityQC'], '1': ['Raw Composite Reflectivity Mosaic (max ref)', 'dBZ', 'MergedReflectivityComposite'], '2': ['Composite Reflectivity Mosaic (max ref)', 'dBZ', 'MergedReflectivityQComposite'], '3': ['Raw Base Reflectivity Mosaic (optimal method)', 'dBZ', 'MergedBaseReflectivity']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_12", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_12", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['FLASH QPE-CREST Unit Streamflow', 'm^3/s/km^2', 'FLASH_CREST_MAXUNITSTREAMFLOW'], '1': ['FLASH QPE-CREST Streamflow', 'm^3/s', 'FLASH_CREST_MAXSTREAMFLOW'], '2': ['FLASH QPE-CREST Soil Saturation', '%', 'FLASH_CREST_MAXSOILSAT'], '4': ['FLASH QPE-SAC Unit Streamflow', 'm^3/s/km^2', 'FLASH_SAC_MAXUNITSTREAMFLOW'], '5': ['FLASH QPE-SAC Streamflow', 'm^3/s', 'FLASH_SAC_MAXSTREAMFLOW'], '6': ['FLASH QPE-SAC Soil Saturation', '%', 'FLASH_SAC_MAXSOILSAT'], '14': ['FLASH QPE Average Recurrence Interval 30-min', 'years', 'FLASH_QPE_ARI30M'], '15': ['FLASH QPE Average Recurrence Interval 01H', 'years', 'FLASH_QPE_ARI01H'], '16': ['FLASH QPE Average Recurrence Interval 03H', 'years', 'FLASH_QPE_ARI03H'], '17': ['FLASH QPE Average Recurrence Interval 06H', 'years', 'FLASH_QPE_ARI06H'], '18': ['FLASH QPE Average Recurrence Interval 12H', 'years', 'FLASH_QPE_ARI12H'], '19': ['FLASH QPE Average Recurrence Interval 24H', 'years', 'FLASH_QPE_ARI24H'], '20': ['FLASH QPE Average Recurrence Interval Maximum', 'years', 'FLASH_QPE_ARIMAX'], '26': ['FLASH QPE-to-FFG Ratio 01H', 'non-dim', 'FLASH_QPE_FFG01H'], '27': ['FLASH QPE-to-FFG Ratio 03H', 'non-dim', 'FLASH_QPE_FFG03H'], '28': ['FLASH QPE-to-FFG Ratio 06H', 'non-dim', 'FLASH_QPE_FFG06H'], '29': ['FLASH QPE-to-FFG Ratio Maximum', 'non-dim', 'FLASH_QPE_FFGMAX'], '39': ['FLASH QPE-Hydrophobic Unit Streamflow', 'm^3/s/km^2', 'FLASH_HP_MAXUNITSTREAMFLOW'], '40': ['FLASH QPE-Hydrophobic Streamflow', 'm^3/s', 'FLASH_HP_MAXSTREAMFLOW']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_13", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_13", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Likelihood of convection over the next 01H', 'non-dim', 'ANC_ConvectiveLikelihood'], '1': ['01H reflectivity forecast', 'dBZ', 'ANC_FinalForecast']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_14", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_14", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Level III High Resolution Enhanced Echo Top mosaic', 'kft', 'LVL3_HREET'], '1': ['Level III High Resouion VIL mosaic', 'kg/m^2', 'LVL3_HighResVIL']}"}, {"fullname": "grib2io.tables.section4_discipline3", "modulename": "grib2io.tables.section4_discipline3", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_0", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Scaled Radiance', 'Numeric', 'SRAD'], '1': ['Scaled Albedo', 'Numeric', 'SALBEDO'], '2': ['Scaled Brightness Temperature', 'Numeric', 'SBTMP'], '3': ['Scaled Precipitable Water', 'Numeric', 'SPWAT'], '4': ['Scaled Lifted Index', 'Numeric', 'SLFTI'], '5': ['Scaled Cloud Top Pressure', 'Numeric', 'SCTPRES'], '6': ['Scaled Skin Temperature', 'Numeric', 'SSTMP'], '7': ['Cloud Mask', 'See Table 4.217', 'CLOUDM'], '8': ['Pixel scene type', 'See Table 4.218', 'PIXST'], '9': ['Fire Detection Indicator', 'See Table 4.223', 'FIREDI'], '10-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_1", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Estimated Precipitation', 'kg m-2', 'ESTP'], '1': ['Instantaneous Rain Rate', 'kg m-2 s-1', 'IRRATE'], '2': ['Cloud Top Height', 'm', 'CTOPH'], '3': ['Cloud Top Height Quality Indicator', 'Code table 4.219', 'CTOPHQI'], '4': ['Estimated u-Component of Wind', 'm s-1', 'ESTUGRD'], '5': ['Estimated v-Component of Wind', 'm s-1', 'ESTVGRD'], '6': ['Number Of Pixels Used', 'Numeric', 'NPIXU'], '7': ['Solar Zenith Angle', '\u00b0', 'SOLZA'], '8': ['Relative Azimuth Angle', '\u00b0', 'RAZA'], '9': ['Reflectance in 0.6 Micron Channel', '%', 'RFL06'], '10': ['Reflectance in 0.8 Micron Channel', '%', 'RFL08'], '11': ['Reflectance in 1.6 Micron Channel', '%', 'RFL16'], '12': ['Reflectance in 3.9 Micron Channel', '%', 'RFL39'], '13': ['Atmospheric Divergence', 's-1', 'ATMDIV'], '14': ['Cloudy Brightness Temperature', 'K', 'CBTMP'], '15': ['Clear Sky Brightness Temperature', 'K', 'CSBTMP'], '16': ['Cloudy Radiance (with respect to wave number)', 'W m-1 sr-1', 'CLDRAD'], '17': ['Clear Sky Radiance (with respect to wave number)', 'W m-1 sr-1', 'CSKYRAD'], '18': ['Reserved', 'unknown', 'unknown'], '19': ['Wind Speed', 'm s-1', 'WINDS'], '20': ['Aerosol Optical Thickness at 0.635 \u00b5m', 'unknown', 'AOT06'], '21': ['Aerosol Optical Thickness at 0.810 \u00b5m', 'unknown', 'AOT08'], '22': ['Aerosol Optical Thickness at 1.640 \u00b5m', 'unknown', 'AOT16'], '23': ['Angstrom Coefficient', 'unknown', 'ANGCOE'], '24-26': ['Reserved', 'unknown', 'unknown'], '27': ['Bidirectional Reflecance Factor', 'Numeric', 'BRFLF'], '28': ['Brightness Temperature', 'K', 'SPBRT'], '29': ['Scaled Radiance', 'Numeric', 'SCRAD'], '30': ['Reflectance in 0.4 Micron Channel', '%', 'RFL04'], '31': ['Cloudy reflectance', '%', 'CLDREF'], '32': ['Clear reflectance', '%', 'CLRREF'], '33-97': ['Reserved', 'unknown', 'unknown'], '98': ['Correlation coefficient between MPE rain rates for the co-located IR data and the microwave data rain rates', 'Numeric', 'CCMPEMRR'], '99': ['Standard deviation between MPE rain rates for the co-located IR data and the microwave data rain rates', 'Numeric', 'SDMPEMRR'], '100-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Scatterometer Estimated U Wind Component', 'm s-1', 'USCT'], '193': ['Scatterometer Estimated V Wind Component', 'm s-1', 'VSCT'], '194': ['Scatterometer Wind Quality', 'unknown', 'SWQI'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_2", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Clear Sky Probability', '%', 'CSKPROB'], '1': ['Cloud Top Temperature', 'K', 'CTOPTMP'], '2': ['Cloud Top Pressure', 'Pa', 'CTOPRES'], '3': ['Cloud Type', 'See Table 4.218', 'CLDTYPE'], '4': ['Cloud Phase', 'See Table 4.218', 'CLDPHAS'], '5': ['Cloud Optical Depth', 'Numeric', 'CLDODEP'], '6': ['Cloud Particle Effective Radius', 'm', 'CLDPER'], '7': ['Cloud Liquid Water Path', 'kg m-2', 'CLDLWP'], '8': ['Cloud Ice Water Path', 'kg m-2', 'CLDIWP'], '9': ['Cloud Albedo', 'Numeric', 'CLDALB'], '10': ['Cloud Emissivity', 'Numeric', 'CLDEMISS'], '11': ['Effective Absorption Optical Depth Ratio', 'Numeric', 'EAODR'], '12-29': ['Reserved', 'unknown', 'unknown'], '30': ['Measurement cost', 'Numeric', 'MEACST'], '41-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_3", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Probability of Encountering Marginal Visual Flight Rules Conditions', '%', 'PBMVFRC'], '1': ['Probability of Encountering Low Instrument Flight Rules Conditions', '%', 'PBLIFRC'], '2': ['Probability of Encountering Instrument Flight Rules Conditions', '%', 'PBINFRC'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_4", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Volcanic Ash Probability', '%', 'VOLAPROB'], '1': ['Volcanic Ash Cloud Top Temperature', 'K', 'VOLACDTT'], '2': ['Volcanic Ash Cloud Top Pressure', 'Pa', 'VOLACDTP'], '3': ['Volcanic Ash Cloud Top Height', 'm', 'VOLACDTH'], '4': ['Volcanic Ash Cloud Emissity', 'Numeric', 'VOLACDEM'], '5': ['Volcanic Ash Effective Absorption Depth Ratio', 'Numeric', 'VOLAEADR'], '6': ['Volcanic Ash Cloud Optical Depth', 'Numeric', 'VOLACDOD'], '7': ['Volcanic Ash Column Density', 'kg m-2', 'VOLACDEN'], '8': ['Volcanic Ash Particle Effective Radius', 'm', 'VOLAPER'], '9-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_5", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_5", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Interface Sea-Surface Temperature', 'K', 'ISSTMP'], '1': ['Skin Sea-Surface Temperature', 'K', 'SKSSTMP'], '2': ['Sub-Skin Sea-Surface Temperature', 'K', 'SSKSSTMP'], '3': ['Foundation Sea-Surface Temperature', 'K', 'FDNSSTMP'], '4': ['Estimated bias between Sea-Surface Temperature and Standard', 'K', 'EBSSTSTD'], '5': ['Estimated bias Standard Deviation between Sea-Surface Temperature and Standard', 'K', 'EBSDSSTS'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_6", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_6", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Global Solar Irradiance', 'W m-2', 'GSOLIRR'], '1': ['Global Solar Exposure', 'J m-2', 'GSOLEXP'], '2': ['Direct Solar Irradiance', 'W m-2', 'DIRSOLIR'], '3': ['Direct Solar Exposure', 'J m-2', 'DIRSOLEX'], '4': ['Diffuse Solar Irradiance', 'W m-2', 'DIFSOLIR'], '5': ['Diffuse Solar Exposure', 'J m-2', 'DIFSOLEX'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_192", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_192", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Simulated Brightness Temperature for GOES 12, Channel 2', 'K', 'SBT122'], '1': ['Simulated Brightness Temperature for GOES 12, Channel 3', 'K', 'SBT123'], '2': ['Simulated Brightness Temperature for GOES 12, Channel 4', 'K', 'SBT124'], '3': ['Simulated Brightness Temperature for GOES 12, Channel 6', 'K', 'SBT126'], '4': ['Simulated Brightness Counts for GOES 12, Channel 3', 'Byte', 'SBC123'], '5': ['Simulated Brightness Counts for GOES 12, Channel 4', 'Byte', 'SBC124'], '6': ['Simulated Brightness Temperature for GOES 11, Channel 2', 'K', 'SBT112'], '7': ['Simulated Brightness Temperature for GOES 11, Channel 3', 'K', 'SBT113'], '8': ['Simulated Brightness Temperature for GOES 11, Channel 4', 'K', 'SBT114'], '9': ['Simulated Brightness Temperature for GOES 11, Channel 5', 'K', 'SBT115'], '10': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 9', 'K', 'AMSRE9'], '11': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 10', 'K', 'AMSRE10'], '12': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 11', 'K', 'AMSRE11'], '13': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 12', 'K', 'AMSRE12'], '14': ['Simulated Reflectance Factor for ABI GOES-16, Band-1', 'unknown', 'SRFA161'], '15': ['Simulated Reflectance Factor for ABI GOES-16, Band-2', 'unknown', 'SRFA162'], '16': ['Simulated Reflectance Factor for ABI GOES-16, Band-3', 'unknown', 'SRFA163'], '17': ['Simulated Reflectance Factor for ABI GOES-16, Band-4', 'unknown', 'SRFA164'], '18': ['Simulated Reflectance Factor for ABI GOES-16, Band-5', 'unknown', 'SRFA165'], '19': ['Simulated Reflectance Factor for ABI GOES-16, Band-6', 'unknown', 'SRFA166'], '20': ['Simulated Brightness Temperature for ABI GOES-16, Band-7', 'K', 'SBTA167'], '21': ['Simulated Brightness Temperature for ABI GOES-16, Band-8', 'K', 'SBTA168'], '22': ['Simulated Brightness Temperature for ABI GOES-16, Band-9', 'K', 'SBTA169'], '23': ['Simulated Brightness Temperature for ABI GOES-16, Band-10', 'K', 'SBTA1610'], '24': ['Simulated Brightness Temperature for ABI GOES-16, Band-11', 'K', 'SBTA1611'], '25': ['Simulated Brightness Temperature for ABI GOES-16, Band-12', 'K', 'SBTA1612'], '26': ['Simulated Brightness Temperature for ABI GOES-16, Band-13', 'K', 'SBTA1613'], '27': ['Simulated Brightness Temperature for ABI GOES-16, Band-14', 'K', 'SBTA1614'], '28': ['Simulated Brightness Temperature for ABI GOES-16, Band-15', 'K', 'SBTA1615'], '29': ['Simulated Brightness Temperature for ABI GOES-16, Band-16', 'K', 'SBTA1616'], '30': ['Simulated Reflectance Factor for ABI GOES-17, Band-1', 'unknown', 'SRFA171'], '31': ['Simulated Reflectance Factor for ABI GOES-17, Band-2', 'unknown', 'SRFA172'], '32': ['Simulated Reflectance Factor for ABI GOES-17, Band-3', 'unknown', 'SRFA173'], '33': ['Simulated Reflectance Factor for ABI GOES-17, Band-4', 'unknown', 'SRFA174'], '34': ['Simulated Reflectance Factor for ABI GOES-17, Band-5', 'unknown', 'SRFA175'], '35': ['Simulated Reflectance Factor for ABI GOES-17, Band-6', 'unknown', 'SRFA176'], '36': ['Simulated Brightness Temperature for ABI GOES-17, Band-7', 'K', 'SBTA177'], '37': ['Simulated Brightness Temperature for ABI GOES-17, Band-8', 'K', 'SBTA178'], '38': ['Simulated Brightness Temperature for ABI GOES-17, Band-9', 'K', 'SBTA179'], '39': ['Simulated Brightness Temperature for ABI GOES-17, Band-10', 'K', 'SBTA1710'], '40': ['Simulated Brightness Temperature for ABI GOES-17, Band-11', 'K', 'SBTA1711'], '41': ['Simulated Brightness Temperature for ABI GOES-17, Band-12', 'K', 'SBTA1712'], '42': ['Simulated Brightness Temperature for ABI GOES-17, Band-13', 'K', 'SBTA1713'], '43': ['Simulated Brightness Temperature for ABI GOES-17, Band-14', 'K', 'SBTA1714'], '44': ['Simulated Brightness Temperature for ABI GOES-17, Band-15', 'K', 'SBTA1715'], '45': ['Simulated Brightness Temperature for ABI GOES-17, Band-16', 'K', 'SBTA1716'], '46': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-1', 'unknown', 'SRFAGR1'], '47': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-2', 'unknown', 'SRFAGR2'], '48': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-3', 'unknown', 'SRFAGR3'], '49': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-4', 'unknown', 'SRFAGR4'], '50': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-5', 'unknown', 'SRFAGR5'], '51': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-6', 'unknown', 'SRFAGR6'], '52': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-7', 'unknown', 'SBTAGR7'], '53': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-8', 'unknown', 'SBTAGR8'], '54': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-9', 'unknown', 'SBTAGR9'], '55': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-10', 'unknown', 'SBTAGR10'], '56': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-11', 'unknown', 'SBTAGR11'], '57': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-12', 'unknown', 'SBTAGR12'], '58': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-13', 'unknown', 'SBTAGR13'], '59': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-14', 'unknown', 'SBTAGR14'], '60': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-15', 'unknown', 'SBTAGR15'], '61': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-16', 'unknown', 'SBTAGR16'], '62': ['Simulated Brightness Temperature for SSMIS-F17, Channel 15', 'K', 'SSMS1715'], '63': ['Simulated Brightness Temperature for SSMIS-F17, Channel 16', 'K', 'SSMS1716'], '64': ['Simulated Brightness Temperature for SSMIS-F17, Channel 17', 'K', 'SSMS1717'], '65': ['Simulated Brightness Temperature for SSMIS-F17, Channel 18', 'K', 'SSMS1718'], '66': ['Simulated Brightness Temperature for Himawari-8, Band-7', 'K', 'SBTAHI7'], '67': ['Simulated Brightness Temperature for Himawari-8, Band-8', 'K', 'SBTAHI8'], '68': ['Simulated Brightness Temperature for Himawari-8, Band-9', 'K', 'SBTAHI9'], '69': ['Simulated Brightness Temperature for Himawari-8, Band-10', 'K', 'SBTAHI10'], '70': ['Simulated Brightness Temperature for Himawari-8, Band-11', 'K', 'SBTAHI11'], '71': ['Simulated Brightness Temperature for Himawari-8, Band-12', 'K', 'SBTAHI12'], '72': ['Simulated Brightness Temperature for Himawari-8, Band-13', 'K', 'SBTAHI13'], '73': ['Simulated Brightness Temperature for Himawari-8, Band-14', 'K', 'SBTAHI14'], '74': ['Simulated Brightness Temperature for Himawari-8, Band-15', 'K', 'SBTAHI15'], '75': ['Simulated Brightness Temperature for Himawari-8, Band-16', 'K', 'SBTAHI16'], '76': ['Simulated Brightness Temperature for ABI GOES-18, Band-7', 'K', 'SBTA187'], '77': ['Simulated Brightness Temperature for ABI GOES-18, Band-8', 'K', 'SBTA188'], '78': ['Simulated Brightness Temperature for ABI GOES-18, Band-9', 'K', 'SBTA189'], '79': ['Simulated Brightness Temperature for ABI GOES-18, Band-10', 'K', 'SBTA1810'], '80': ['Simulated Brightness Temperature for ABI GOES-18, Band-11', 'K', 'SBTA1811'], '81': ['Simulated Brightness Temperature for ABI GOES-18, Band-12', 'K', 'SBTA1812'], '82': ['Simulated Brightness Temperature for ABI GOES-18, Band-13', 'K', 'SBTA1813'], '83': ['Simulated Brightness Temperature for ABI GOES-18, Band-14', 'K', 'SBTA1814'], '84': ['Simulated Brightness Temperature for ABI GOES-18, Band-15', 'K', 'SBTA1815'], '85': ['Simulated Brightness Temperature for ABI GOES-18, Band-16', 'K', 'SBTA1816'], '86-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4", "modulename": "grib2io.tables.section4_discipline4", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_0", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Temperature', 'K', 'TMPSWP'], '1': ['Electron Temperature', 'K', 'ELECTMP'], '2': ['Proton Temperature', 'K', 'PROTTMP'], '3': ['Ion Temperature', 'K', 'IONTMP'], '4': ['Parallel Temperature', 'K', 'PRATMP'], '5': ['Perpendicular Temperature', 'K', 'PRPTMP'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_1", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Velocity Magnitude (Speed)', 'm s-1', 'SPEED'], '1': ['1st Vector Component of Velocity (Coordinate system dependent)', 'm s-1', 'VEL1'], '2': ['2nd Vector Component of Velocity (Coordinate system dependent)', 'm s-1', 'VEL2'], '3': ['3rd Vector Component of Velocity (Coordinate system dependent)', 'm s-1', 'VEL3'], '4-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_2", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Particle Number Density', 'm-3', 'PLSMDEN'], '1': ['Electron Density', 'm-3', 'ELCDEN'], '2': ['Proton Density', 'm-3', 'PROTDEN'], '3': ['Ion Density', 'm-3', 'IONDEN'], '4': ['Vertical Total Electron Content', 'TECU', 'VTEC'], '5': ['HF Absorption Frequency', 'Hz', 'ABSFRQ'], '6': ['HF Absorption', 'dB', 'ABSRB'], '7': ['Spread F', 'm', 'SPRDF'], '8': ['hF', 'm', 'HPRIMF'], '9': ['Critical Frequency', 'Hz', 'CRTFRQ'], '10': ['Maximal Usable Frequency (MUF)', 'Hz', 'MAXUFZ'], '11': ['Peak Height (hm)', 'm', 'PEAKH'], '12': ['Peak Density', 'm-3', 'PEAKDEN'], '13': ['Equivalent Slab Thickness (tau)', 'km', 'EQSLABT'], '14-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_3", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Magnetic Field Magnitude', 'T', 'BTOT'], '1': ['1st Vector Component of Magnetic Field', 'T', 'BVEC1'], '2': ['2nd Vector Component of Magnetic Field', 'T', 'BVEC2'], '3': ['3rd Vector Component of Magnetic Field', 'T', 'BVEC3'], '4': ['Electric Field Magnitude', 'V m-1', 'ETOT'], '5': ['1st Vector Component of Electric Field', 'V m-1', 'EVEC1'], '6': ['2nd Vector Component of Electric Field', 'V m-1', 'EVEC2'], '7': ['3rd Vector Component of Electric Field', 'V m-1', 'EVEC3'], '8-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_4", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Proton Flux (Differential)', '(m2 s sr eV)-1', 'DIFPFLUX'], '1': ['Proton Flux (Integral)', '(m2 s sr)-1', 'INTPFLUX'], '2': ['Electron Flux (Differential)', '(m2 s sr eV)-1', 'DIFEFLUX'], '3': ['Electron Flux (Integral)', '(m2 s sr)-1', 'INTEFLUX'], '4': ['Heavy Ion Flux (Differential)', '(m2 s sr eV / nuc)-1', 'DIFIFLUX'], '5': ['Heavy Ion Flux (iIntegral)', '(m2 s sr)-1', 'INTIFLUX'], '6': ['Cosmic Ray Neutron Flux', 'h-1', 'NTRNFLUX'], '7-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_5", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_5", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Amplitude', 'rad', 'AMPL'], '1': ['Phase', 'rad', 'PHASE'], '2': ['Frequency', 'Hz', 'FREQ'], '3': ['Wavelength', 'm', 'WAVELGTH'], '4-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_6", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_6", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Integrated Solar Irradiance', 'W m-2', 'TSI'], '1': ['Solar X-ray Flux (XRS Long)', 'W m-2', 'XLONG'], '2': ['Solar X-ray Flux (XRS Short)', 'W m-2', 'XSHRT'], '3': ['Solar EUV Irradiance', 'W m-2', 'EUVIRR'], '4': ['Solar Spectral Irradiance', 'W m-2 nm-1', 'SPECIRR'], '5': ['F10.7', 'W m-2 Hz-1', 'F107'], '6': ['Solar Radio Emissions', 'W m-2 Hz-1', 'SOLRF'], '7-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_7", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_7", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Limb Intensity', 'J m-2 s-1', 'LMBINT'], '1': ['Disk Intensity', 'J m-2 s-1', 'DSKINT'], '2': ['Disk Intensity Day', 'J m-2 s-1', 'DSKDAY'], '3': ['Disk Intensity Night', 'J m-2 s-1', 'DSKNGT'], '4-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_8", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_8", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['X-Ray Radiance', 'W sr-1 m-2', 'XRAYRAD'], '1': ['EUV Radiance', 'W sr-1 m-2', 'EUVRAD'], '2': ['H-Alpha Radiance', 'W sr-1 m-2', 'HARAD'], '3': ['White Light Radiance', 'W sr-1 m-2', 'WHTRAD'], '4': ['CaII-K Radiance', 'W sr-1 m-2', 'CAIIRAD'], '5': ['White Light Coronagraph Radiance', 'W sr-1 m-2', 'WHTCOR'], '6': ['Heliospheric Radiance', 'W sr-1 m-2', 'HELCOR'], '7': ['Thematic Mask', 'Numeric', 'MASK'], '8': ['Solar Induced Chlorophyll Fluorscence', 'W sr-1 m-2', 'SICFL'], '9-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_9", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_9", "kind": "variable", "doc": "

\n", "default_value": "{'0': ['Pedersen Conductivity', 'S m-1', 'SIGPED'], '1': ['Hall Conductivity', 'S m-1', 'SIGHAL'], '2': ['Parallel Conductivity', 'S m-1', 'SIGPAR'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section5", "modulename": "grib2io.tables.section5", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section5.table_5_0", "modulename": "grib2io.tables.section5", "qualname": "table_5_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Grid Point Data - Simple Packing (see Template 5.0)', '1': 'Matrix Value at Grid Point - Simple Packing (see Template 5.1)', '2': 'Grid Point Data - Complex Packing (see Template 5.2)', '3': 'Grid Point Data - Complex Packing and Spatial Differencing (see Template 5.3)', '4': 'Grid Point Data - IEEE Floating Point Data (see Template 5.4)', '5-39': 'Reserved', '40': 'Grid point data - JPEG 2000 code stream format (see Template 5.40)', '41': 'Grid point data - Portable Network Graphics (PNG) (see Template 5.41)', '42': 'Grid point data - CCSDS recommended lossless compression (see Template 5.42)', '43-49': 'Reserved', '50': 'Spectral Data - Simple Packing (see Template 5.50)', '51': 'Spectral Data - Complex Packing (see Template 5.51)', '52': 'Reserved', '53': 'Spectral data for limited area models - complex packing (see Template 5.53)', '54-60': 'Reserved', '61': 'Grid Point Data - Simple Packing With Logarithm Pre-processing (see Template 5.61)', '62-199': 'Reserved', '200': 'Run Length Packing With Level Values (see Template 5.200)', '201-49151': 'Reserved', '49152-65534': 'Reserved for Local Use', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_1", "modulename": "grib2io.tables.section5", "qualname": "table_5_1", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Floating Point', '1': 'Integer', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_2", "modulename": "grib2io.tables.section5", "qualname": "table_5_2", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Explicit Coordinate Values Set', '1': 'Linear Coordinates f(1) = C1 f(n) = f(n-1) + C2', '2-10': 'Reserved', '11': 'Geometric Coordinates f(1) = C1 f(n) = C2 x f(n-1)', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_3", "modulename": "grib2io.tables.section5", "qualname": "table_5_3", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'Direction Degrees True', '2': 'Frequency (s-1)', '3': 'Radial Number (2pi/lamda) (m-1)', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_4", "modulename": "grib2io.tables.section5", "qualname": "table_5_4", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Row by Row Splitting', '1': 'General Group Splitting', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_5", "modulename": "grib2io.tables.section5", "qualname": "table_5_5", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'No explicit missing values included within the data values', '1': 'Primary missing values included within the data values', '2': 'Primary and secondary missing values included within the data values', '3-191': 'Reserved', '192-254': 'Reserved for Local Use'}"}, {"fullname": "grib2io.tables.section5.table_5_6", "modulename": "grib2io.tables.section5", "qualname": "table_5_6", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'First-Order Spatial Differencing', '2': 'Second-Order Spatial Differencing', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_7", "modulename": "grib2io.tables.section5", "qualname": "table_5_7", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Reserved', '1': 'IEEE 32-bit (I=4 in Section 7)', '2': 'IEEE 64-bit (I=8 in Section 7)', '3': 'IEEE 128-bit (I=16 in Section 7)', '4-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_40", "modulename": "grib2io.tables.section5", "qualname": "table_5_40", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'Lossless', '1': 'Lossy', '2-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section6", "modulename": "grib2io.tables.section6", "kind": "module", "doc": "

\n"}, {"fullname": "grib2io.tables.section6.table_6_0", "modulename": "grib2io.tables.section6", "qualname": "table_6_0", "kind": "variable", "doc": "

\n", "default_value": "{'0': 'A bit map applies to this product and is specified in this section.', '1-253': 'A bit map pre-determined by the orginating/generating center applies to this product and is not specified in this section.', '254': 'A bit map previously defined in the same GRIB2 message applies to this product.', '255': 'A bit map does not apply to this product.'}"}, {"fullname": "grib2io.templates", "modulename": "grib2io.templates", "kind": "module", "doc": "

GRIB2 section templates classes and metadata descriptor classes

\n"}, {"fullname": "grib2io.templates.Grib2Metadata", "modulename": "grib2io.templates", "qualname": "Grib2Metadata", "kind": "class", "doc": "

Class to hold GRIB2 metadata both as numeric code value as stored in\nGRIB2 and its plain langauge definition.

\n\n

Attributes

\n\n

value : int\n GRIB2 metadata integer code value.

\n\n

table : str, optional\n GRIB2 table to lookup the value. Default is None.

\n\n

definition : str\n Plain language description of numeric metadata.

\n"}, {"fullname": "grib2io.templates.Grib2Metadata.__init__", "modulename": "grib2io.templates", "qualname": "Grib2Metadata.__init__", "kind": "function", "doc": "

\n", "signature": "(value, table=None)"}, {"fullname": "grib2io.templates.Grib2Metadata.value", "modulename": "grib2io.templates", "qualname": "Grib2Metadata.value", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.templates.Grib2Metadata.table", "modulename": "grib2io.templates", "qualname": "Grib2Metadata.table", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.templates.Grib2Metadata.definition", "modulename": "grib2io.templates", "qualname": "Grib2Metadata.definition", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.templates.Grib2Metadata.show_table", "modulename": "grib2io.templates", "qualname": "Grib2Metadata.show_table", "kind": "function", "doc": "

Provide the table related to this metadata.

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "grib2io.templates.IndicatorSection", "modulename": "grib2io.templates", "qualname": "IndicatorSection", "kind": "class", "doc": "

GRIB2 Indicator Section (0)

\n"}, {"fullname": "grib2io.templates.Discipline", "modulename": "grib2io.templates", "qualname": "Discipline", "kind": "class", "doc": "

Discipline

\n"}, {"fullname": "grib2io.templates.IdentificationSection", "modulename": "grib2io.templates", "qualname": "IdentificationSection", "kind": "class", "doc": "

GRIB2 Section 1, Identification Section

\n"}, {"fullname": "grib2io.templates.OriginatingCenter", "modulename": "grib2io.templates", "qualname": "OriginatingCenter", "kind": "class", "doc": "

Originating Center

\n"}, {"fullname": "grib2io.templates.OriginatingSubCenter", "modulename": "grib2io.templates", "qualname": "OriginatingSubCenter", "kind": "class", "doc": "

Originating SubCenter

\n"}, {"fullname": "grib2io.templates.MasterTableInfo", "modulename": "grib2io.templates", "qualname": "MasterTableInfo", "kind": "class", "doc": "

GRIB2 Master Table Version

\n"}, {"fullname": "grib2io.templates.LocalTableInfo", "modulename": "grib2io.templates", "qualname": "LocalTableInfo", "kind": "class", "doc": "

GRIB2 Local Tables Version Number

\n"}, {"fullname": "grib2io.templates.SignificanceOfReferenceTime", "modulename": "grib2io.templates", "qualname": "SignificanceOfReferenceTime", "kind": "class", "doc": "

Significance of Reference Time

\n"}, {"fullname": "grib2io.templates.Year", "modulename": "grib2io.templates", "qualname": "Year", "kind": "class", "doc": "

Year of reference time

\n"}, {"fullname": "grib2io.templates.Month", "modulename": "grib2io.templates", "qualname": "Month", "kind": "class", "doc": "

Month of reference time

\n"}, {"fullname": "grib2io.templates.Day", "modulename": "grib2io.templates", "qualname": "Day", "kind": "class", "doc": "

Day of reference time

\n"}, {"fullname": "grib2io.templates.Hour", "modulename": "grib2io.templates", "qualname": "Hour", "kind": "class", "doc": "

Hour of reference time

\n"}, {"fullname": "grib2io.templates.Minute", "modulename": "grib2io.templates", "qualname": "Minute", "kind": "class", "doc": "

Minute of reference time

\n"}, {"fullname": "grib2io.templates.Second", "modulename": "grib2io.templates", "qualname": "Second", "kind": "class", "doc": "

Second of reference time

\n"}, {"fullname": "grib2io.templates.RefDate", "modulename": "grib2io.templates", "qualname": "RefDate", "kind": "class", "doc": "

Reference Date. NOTE: This is a datetime.datetime object.

\n"}, {"fullname": "grib2io.templates.ProductionStatus", "modulename": "grib2io.templates", "qualname": "ProductionStatus", "kind": "class", "doc": "

Production Status of Processed Data

\n"}, {"fullname": "grib2io.templates.TypeOfData", "modulename": "grib2io.templates", "qualname": "TypeOfData", "kind": "class", "doc": "

Type of Processed Data in this GRIB message

\n"}, {"fullname": "grib2io.templates.GridDefinitionSection", "modulename": "grib2io.templates", "qualname": "GridDefinitionSection", "kind": "class", "doc": "

GRIB2 Section 3, Grid Definition Section

\n"}, {"fullname": "grib2io.templates.SourceOfGridDefinition", "modulename": "grib2io.templates", "qualname": "SourceOfGridDefinition", "kind": "class", "doc": "

Source of Grid Definition

\n"}, {"fullname": "grib2io.templates.NumberOfDataPoints", "modulename": "grib2io.templates", "qualname": "NumberOfDataPoints", "kind": "class", "doc": "

Number of Data Points

\n"}, {"fullname": "grib2io.templates.InterpretationOfListOfNumbers", "modulename": "grib2io.templates", "qualname": "InterpretationOfListOfNumbers", "kind": "class", "doc": "

Interpretation of List of Numbers

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplateNumber", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplateNumber", "kind": "class", "doc": "

Grid Definition Template Number

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate", "kind": "class", "doc": "

Grid definition template

\n"}, {"fullname": "grib2io.templates.EarthParams", "modulename": "grib2io.templates", "qualname": "EarthParams", "kind": "class", "doc": "

Metadata about the shape of the Earth

\n"}, {"fullname": "grib2io.templates.DxSign", "modulename": "grib2io.templates", "qualname": "DxSign", "kind": "class", "doc": "

Sign of Grid Length in X-Direction

\n"}, {"fullname": "grib2io.templates.DySign", "modulename": "grib2io.templates", "qualname": "DySign", "kind": "class", "doc": "

Sign of Grid Length in Y-Direction

\n"}, {"fullname": "grib2io.templates.LLScaleFactor", "modulename": "grib2io.templates", "qualname": "LLScaleFactor", "kind": "class", "doc": "

Scale Factor for Lats/Lons

\n"}, {"fullname": "grib2io.templates.LLDivisor", "modulename": "grib2io.templates", "qualname": "LLDivisor", "kind": "class", "doc": "

Divisor Value for scaling Lats/Lons

\n"}, {"fullname": "grib2io.templates.XYDivisor", "modulename": "grib2io.templates", "qualname": "XYDivisor", "kind": "class", "doc": "

Divisor Value for scaling grid lengths

\n"}, {"fullname": "grib2io.templates.ShapeOfEarth", "modulename": "grib2io.templates", "qualname": "ShapeOfEarth", "kind": "class", "doc": "

Shape of the Reference System

\n"}, {"fullname": "grib2io.templates.EarthShape", "modulename": "grib2io.templates", "qualname": "EarthShape", "kind": "class", "doc": "

Description of the shape of the Earth

\n"}, {"fullname": "grib2io.templates.EarthRadius", "modulename": "grib2io.templates", "qualname": "EarthRadius", "kind": "class", "doc": "

Radius of the Earth (Assumes \"spherical\")

\n"}, {"fullname": "grib2io.templates.EarthMajorAxis", "modulename": "grib2io.templates", "qualname": "EarthMajorAxis", "kind": "class", "doc": "

Major Axis of the Earth (Assumes \"oblate spheroid\" or \"ellipsoid\")

\n"}, {"fullname": "grib2io.templates.EarthMinorAxis", "modulename": "grib2io.templates", "qualname": "EarthMinorAxis", "kind": "class", "doc": "

Minor Axis of the Earth (Assumes \"oblate spheroid\" or \"ellipsoid\")

\n"}, {"fullname": "grib2io.templates.Nx", "modulename": "grib2io.templates", "qualname": "Nx", "kind": "class", "doc": "

Number of grid points in the X-direction (generally East-West)

\n"}, {"fullname": "grib2io.templates.Ny", "modulename": "grib2io.templates", "qualname": "Ny", "kind": "class", "doc": "

Number of grid points in the Y-direction (generally North-South)

\n"}, {"fullname": "grib2io.templates.ScanModeFlags", "modulename": "grib2io.templates", "qualname": "ScanModeFlags", "kind": "class", "doc": "

Scanning Mode

\n"}, {"fullname": "grib2io.templates.ResolutionAndComponentFlags", "modulename": "grib2io.templates", "qualname": "ResolutionAndComponentFlags", "kind": "class", "doc": "

Resolution and Component Flags

\n"}, {"fullname": "grib2io.templates.LatitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "LatitudeFirstGridpoint", "kind": "class", "doc": "

Latitude of first gridpoint

\n"}, {"fullname": "grib2io.templates.LongitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "LongitudeFirstGridpoint", "kind": "class", "doc": "

Longitude of first gridpoint

\n"}, {"fullname": "grib2io.templates.LatitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "LatitudeLastGridpoint", "kind": "class", "doc": "

Latitude of last gridpoint

\n"}, {"fullname": "grib2io.templates.LongitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "LongitudeLastGridpoint", "kind": "class", "doc": "

Longitude of last gridpoint

\n"}, {"fullname": "grib2io.templates.LatitudeCenterGridpoint", "modulename": "grib2io.templates", "qualname": "LatitudeCenterGridpoint", "kind": "class", "doc": "

Latitude of center gridpoint

\n"}, {"fullname": "grib2io.templates.LongitudeCenterGridpoint", "modulename": "grib2io.templates", "qualname": "LongitudeCenterGridpoint", "kind": "class", "doc": "

Longitude of center gridpoint

\n"}, {"fullname": "grib2io.templates.GridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridlengthXDirection", "kind": "class", "doc": "

Grid lenth in the X-Direction

\n"}, {"fullname": "grib2io.templates.GridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridlengthYDirection", "kind": "class", "doc": "

Grid lenth in the Y-Direction

\n"}, {"fullname": "grib2io.templates.NumberOfParallels", "modulename": "grib2io.templates", "qualname": "NumberOfParallels", "kind": "class", "doc": "

Number of parallels between a pole and the equator

\n"}, {"fullname": "grib2io.templates.LatitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "LatitudeSouthernPole", "kind": "class", "doc": "

Latitude of the Southern Pole for a Rotated Lat/Lon Grid

\n"}, {"fullname": "grib2io.templates.LongitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "LongitudeSouthernPole", "kind": "class", "doc": "

Longitude of the Southern Pole for a Rotated Lat/Lon Grid

\n"}, {"fullname": "grib2io.templates.AnglePoleRotation", "modulename": "grib2io.templates", "qualname": "AnglePoleRotation", "kind": "class", "doc": "

Angle of Pole Rotation for a Rotated Lat/Lon Grid

\n"}, {"fullname": "grib2io.templates.LatitudeTrueScale", "modulename": "grib2io.templates", "qualname": "LatitudeTrueScale", "kind": "class", "doc": "

Latitude at which grid lengths are specified

\n"}, {"fullname": "grib2io.templates.GridOrientation", "modulename": "grib2io.templates", "qualname": "GridOrientation", "kind": "class", "doc": "

Longitude at which the grid is oriented

\n"}, {"fullname": "grib2io.templates.ProjectionCenterFlag", "modulename": "grib2io.templates", "qualname": "ProjectionCenterFlag", "kind": "class", "doc": "

Projection Center

\n"}, {"fullname": "grib2io.templates.StandardLatitude1", "modulename": "grib2io.templates", "qualname": "StandardLatitude1", "kind": "class", "doc": "

First Standard Latitude (from the pole at which the secant cone cuts the sphere)

\n"}, {"fullname": "grib2io.templates.StandardLatitude2", "modulename": "grib2io.templates", "qualname": "StandardLatitude2", "kind": "class", "doc": "

Second Standard Latitude (from the pole at which the secant cone cuts the sphere)

\n"}, {"fullname": "grib2io.templates.SpectralFunctionParameters", "modulename": "grib2io.templates", "qualname": "SpectralFunctionParameters", "kind": "class", "doc": "

Spectral Function Parameters

\n"}, {"fullname": "grib2io.templates.ProjParameters", "modulename": "grib2io.templates", "qualname": "ProjParameters", "kind": "class", "doc": "

PROJ Parameters to define the reference system

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate0", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate0", "kind": "class", "doc": "

Grid Definition Template 0

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate0.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate0.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate0.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate0.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate0.latitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate0.latitudeLastGridpoint", "kind": "variable", "doc": "

Latitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate0.longitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate0.longitudeLastGridpoint", "kind": "variable", "doc": "

Longitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate0.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate0.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate0.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate0.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1", "kind": "class", "doc": "

Grid Definition Template 1

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.latitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.latitudeLastGridpoint", "kind": "variable", "doc": "

Latitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.longitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.longitudeLastGridpoint", "kind": "variable", "doc": "

Longitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.latitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.latitudeSouthernPole", "kind": "variable", "doc": "

Latitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.longitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.longitudeSouthernPole", "kind": "variable", "doc": "

Longitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate1.anglePoleRotation", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate1.anglePoleRotation", "kind": "variable", "doc": "

Angle of Pole Rotation for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10", "kind": "class", "doc": "

Grid Definition Template 10

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.latitudeTrueScale", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.latitudeTrueScale", "kind": "variable", "doc": "

Latitude at which grid lengths are specified

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.latitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.latitudeLastGridpoint", "kind": "variable", "doc": "

Latitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.longitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.longitudeLastGridpoint", "kind": "variable", "doc": "

Longitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.gridOrientation", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.gridOrientation", "kind": "variable", "doc": "

Longitude at which the grid is oriented

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate10.projParameters", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate10.projParameters", "kind": "variable", "doc": "

PROJ Parameters to define the reference system

\n", "annotation": ": dict"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20", "kind": "class", "doc": "

Grid Definition Template 20

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.latitudeTrueScale", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.latitudeTrueScale", "kind": "variable", "doc": "

Latitude at which grid lengths are specified

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.gridOrientation", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.gridOrientation", "kind": "variable", "doc": "

Longitude at which the grid is oriented

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.projectionCenterFlag", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.projectionCenterFlag", "kind": "variable", "doc": "

Projection Center

\n", "annotation": ": list"}, {"fullname": "grib2io.templates.GridDefinitionTemplate20.projParameters", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate20.projParameters", "kind": "variable", "doc": "

PROJ Parameters to define the reference system

\n", "annotation": ": dict"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30", "kind": "class", "doc": "

Grid Definition Template 30

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.latitudeTrueScale", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.latitudeTrueScale", "kind": "variable", "doc": "

Latitude at which grid lengths are specified

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.gridOrientation", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.gridOrientation", "kind": "variable", "doc": "

Longitude at which the grid is oriented

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.projectionCenterFlag", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.projectionCenterFlag", "kind": "variable", "doc": "

Projection Center

\n", "annotation": ": list"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.standardLatitude1", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.standardLatitude1", "kind": "variable", "doc": "

First Standard Latitude (from the pole at which the secant cone cuts the sphere)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.standardLatitude2", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.standardLatitude2", "kind": "variable", "doc": "

Second Standard Latitude (from the pole at which the secant cone cuts the sphere)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.latitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.latitudeSouthernPole", "kind": "variable", "doc": "

Latitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.longitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.longitudeSouthernPole", "kind": "variable", "doc": "

Longitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate30.projParameters", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate30.projParameters", "kind": "variable", "doc": "

PROJ Parameters to define the reference system

\n", "annotation": ": dict"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31", "kind": "class", "doc": "

Grid Definition Template 31

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.latitudeTrueScale", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.latitudeTrueScale", "kind": "variable", "doc": "

Latitude at which grid lengths are specified

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.gridOrientation", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.gridOrientation", "kind": "variable", "doc": "

Longitude at which the grid is oriented

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.projectionCenterFlag", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.projectionCenterFlag", "kind": "variable", "doc": "

Projection Center

\n", "annotation": ": list"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.standardLatitude1", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.standardLatitude1", "kind": "variable", "doc": "

First Standard Latitude (from the pole at which the secant cone cuts the sphere)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.standardLatitude2", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.standardLatitude2", "kind": "variable", "doc": "

Second Standard Latitude (from the pole at which the secant cone cuts the sphere)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.latitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.latitudeSouthernPole", "kind": "variable", "doc": "

Latitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate31.longitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate31.longitudeSouthernPole", "kind": "variable", "doc": "

Longitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40", "kind": "class", "doc": "

Grid Definition Template 40

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40.latitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40.latitudeLastGridpoint", "kind": "variable", "doc": "

Latitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40.longitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40.longitudeLastGridpoint", "kind": "variable", "doc": "

Longitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate40.numberOfParallels", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate40.numberOfParallels", "kind": "variable", "doc": "

Number of parallels between a pole and the equator

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41", "kind": "class", "doc": "

Grid Definition Template 41

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.latitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.latitudeLastGridpoint", "kind": "variable", "doc": "

Latitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.longitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.longitudeLastGridpoint", "kind": "variable", "doc": "

Longitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.numberOfParallels", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.numberOfParallels", "kind": "variable", "doc": "

Number of parallels between a pole and the equator

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.latitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.latitudeSouthernPole", "kind": "variable", "doc": "

Latitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.longitudeSouthernPole", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.longitudeSouthernPole", "kind": "variable", "doc": "

Longitude of the Southern Pole for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate41.anglePoleRotation", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate41.anglePoleRotation", "kind": "variable", "doc": "

Angle of Pole Rotation for a Rotated Lat/Lon Grid

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate50", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate50", "kind": "class", "doc": "

Grid Definition Template 50

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate50.spectralFunctionParameters", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate50.spectralFunctionParameters", "kind": "variable", "doc": "

Spectral Function Parameters

\n", "annotation": ": list"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32768", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32768", "kind": "class", "doc": "

Grid Definition Template 32768

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32768.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32768.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32768.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32768.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32768.latitudeCenterGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32768.latitudeCenterGridpoint", "kind": "variable", "doc": "

Latitude of center gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32768.longitudeCenterGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32768.longitudeCenterGridpoint", "kind": "variable", "doc": "

Longitude of center gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32768.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32768.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32768.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32768.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769", "kind": "class", "doc": "

Grid Definition Template 32769

\n"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.latitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.latitudeFirstGridpoint", "kind": "variable", "doc": "

Latitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.longitudeFirstGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.longitudeFirstGridpoint", "kind": "variable", "doc": "

Longitude of first gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.latitudeCenterGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.latitudeCenterGridpoint", "kind": "variable", "doc": "

Latitude of center gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.longitudeCenterGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.longitudeCenterGridpoint", "kind": "variable", "doc": "

Longitude of center gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.gridlengthXDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.gridlengthXDirection", "kind": "variable", "doc": "

Grid lenth in the X-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.gridlengthYDirection", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.gridlengthYDirection", "kind": "variable", "doc": "

Grid lenth in the Y-Direction

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.latitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.latitudeLastGridpoint", "kind": "variable", "doc": "

Latitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.GridDefinitionTemplate32769.longitudeLastGridpoint", "modulename": "grib2io.templates", "qualname": "GridDefinitionTemplate32769.longitudeLastGridpoint", "kind": "variable", "doc": "

Longitude of last gridpoint

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.gdt_class_by_gdtn", "modulename": "grib2io.templates", "qualname": "gdt_class_by_gdtn", "kind": "function", "doc": "

Provides a Grid Definition Template class via the template number

\n\n

Parameters

\n\n

gdtn : int\n Grid definition template number.

\n\n

Returns

\n\n

Grid definition template class object (not an instance).

\n", "signature": "(gdtn):", "funcdef": "def"}, {"fullname": "grib2io.templates.ProductDefinitionTemplateNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplateNumber", "kind": "class", "doc": "

Product Definition Template Number

\n"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate", "kind": "class", "doc": "

Product Definition Template

\n"}, {"fullname": "grib2io.templates.ParameterCategory", "modulename": "grib2io.templates", "qualname": "ParameterCategory", "kind": "class", "doc": "

Parameter Category

\n"}, {"fullname": "grib2io.templates.ParameterNumber", "modulename": "grib2io.templates", "qualname": "ParameterNumber", "kind": "class", "doc": "

Parameter Number

\n"}, {"fullname": "grib2io.templates.VarInfo", "modulename": "grib2io.templates", "qualname": "VarInfo", "kind": "class", "doc": "

Variable Information. These are the metadata returned for a specific variable according\nto discipline, parameter category, and parameter number.

\n"}, {"fullname": "grib2io.templates.FullName", "modulename": "grib2io.templates", "qualname": "FullName", "kind": "class", "doc": "

Full name of the Variable

\n"}, {"fullname": "grib2io.templates.Units", "modulename": "grib2io.templates", "qualname": "Units", "kind": "class", "doc": "

Units of the Variable

\n"}, {"fullname": "grib2io.templates.ShortName", "modulename": "grib2io.templates", "qualname": "ShortName", "kind": "class", "doc": "

Short name of the variable (i.e. the variable abbreviation)

\n"}, {"fullname": "grib2io.templates.TypeOfGeneratingProcess", "modulename": "grib2io.templates", "qualname": "TypeOfGeneratingProcess", "kind": "class", "doc": "

Type of Generating Process

\n"}, {"fullname": "grib2io.templates.BackgroundGeneratingProcessIdentifier", "modulename": "grib2io.templates", "qualname": "BackgroundGeneratingProcessIdentifier", "kind": "class", "doc": "

Background Generating Process Identifier

\n"}, {"fullname": "grib2io.templates.GeneratingProcess", "modulename": "grib2io.templates", "qualname": "GeneratingProcess", "kind": "class", "doc": "

Generating Process

\n"}, {"fullname": "grib2io.templates.HoursAfterDataCutoff", "modulename": "grib2io.templates", "qualname": "HoursAfterDataCutoff", "kind": "class", "doc": "

Hours of observational data cutoff after reference time

\n"}, {"fullname": "grib2io.templates.MinutesAfterDataCutoff", "modulename": "grib2io.templates", "qualname": "MinutesAfterDataCutoff", "kind": "class", "doc": "

Minutes of observational data cutoff after reference time

\n"}, {"fullname": "grib2io.templates.UnitOfForecastTime", "modulename": "grib2io.templates", "qualname": "UnitOfForecastTime", "kind": "class", "doc": "

Units of Forecast Time

\n"}, {"fullname": "grib2io.templates.ValueOfForecastTime", "modulename": "grib2io.templates", "qualname": "ValueOfForecastTime", "kind": "class", "doc": "

Value of forecast time in units defined by UnitofForecastTime

\n"}, {"fullname": "grib2io.templates.LeadTime", "modulename": "grib2io.templates", "qualname": "LeadTime", "kind": "class", "doc": "

Forecast Lead Time. NOTE: This is a datetime.timedelta object.

\n"}, {"fullname": "grib2io.templates.FixedSfc1Info", "modulename": "grib2io.templates", "qualname": "FixedSfc1Info", "kind": "class", "doc": "

Information of the first fixed surface via table 4.5

\n"}, {"fullname": "grib2io.templates.FixedSfc2Info", "modulename": "grib2io.templates", "qualname": "FixedSfc2Info", "kind": "class", "doc": "

Information of the seconds fixed surface via table 4.5

\n"}, {"fullname": "grib2io.templates.TypeOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "TypeOfFirstFixedSurface", "kind": "class", "doc": "

Type of First Fixed Surface

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfFirstFixedSurface", "kind": "class", "doc": "

Scale Factor of First Fixed Surface

\n"}, {"fullname": "grib2io.templates.ScaledValueOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ScaledValueOfFirstFixedSurface", "kind": "class", "doc": "

Scaled Value Of First Fixed Surface

\n"}, {"fullname": "grib2io.templates.UnitOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "UnitOfFirstFixedSurface", "kind": "class", "doc": "

Units of First Fixed Surface

\n"}, {"fullname": "grib2io.templates.ValueOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ValueOfFirstFixedSurface", "kind": "class", "doc": "

Value of First Fixed Surface

\n"}, {"fullname": "grib2io.templates.TypeOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "TypeOfSecondFixedSurface", "kind": "class", "doc": "

Type of Second Fixed Surface

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfSecondFixedSurface", "kind": "class", "doc": "

Scale Factor of Second Fixed Surface

\n"}, {"fullname": "grib2io.templates.ScaledValueOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ScaledValueOfSecondFixedSurface", "kind": "class", "doc": "

Scaled Value Of Second Fixed Surface

\n"}, {"fullname": "grib2io.templates.UnitOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "UnitOfSecondFixedSurface", "kind": "class", "doc": "

Units of Second Fixed Surface

\n"}, {"fullname": "grib2io.templates.ValueOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ValueOfSecondFixedSurface", "kind": "class", "doc": "

Value of Second Fixed Surface

\n"}, {"fullname": "grib2io.templates.Level", "modulename": "grib2io.templates", "qualname": "Level", "kind": "class", "doc": "

Level (same as provided by wgrib2)

\n"}, {"fullname": "grib2io.templates.TypeOfEnsembleForecast", "modulename": "grib2io.templates", "qualname": "TypeOfEnsembleForecast", "kind": "class", "doc": "

Type of Ensemble Forecast

\n"}, {"fullname": "grib2io.templates.PerturbationNumber", "modulename": "grib2io.templates", "qualname": "PerturbationNumber", "kind": "class", "doc": "

Ensemble Perturbation Number

\n"}, {"fullname": "grib2io.templates.NumberOfEnsembleForecasts", "modulename": "grib2io.templates", "qualname": "NumberOfEnsembleForecasts", "kind": "class", "doc": "

Total Number of Ensemble Forecasts

\n"}, {"fullname": "grib2io.templates.TypeOfDerivedForecast", "modulename": "grib2io.templates", "qualname": "TypeOfDerivedForecast", "kind": "class", "doc": "

Type of Derived Forecast

\n"}, {"fullname": "grib2io.templates.ForecastProbabilityNumber", "modulename": "grib2io.templates", "qualname": "ForecastProbabilityNumber", "kind": "class", "doc": "

Forecast Probability Number

\n"}, {"fullname": "grib2io.templates.TotalNumberOfForecastProbabilities", "modulename": "grib2io.templates", "qualname": "TotalNumberOfForecastProbabilities", "kind": "class", "doc": "

Total Number of Forecast Probabilities

\n"}, {"fullname": "grib2io.templates.TypeOfProbability", "modulename": "grib2io.templates", "qualname": "TypeOfProbability", "kind": "class", "doc": "

Type of Probability

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfThresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfThresholdLowerLimit", "kind": "class", "doc": "

Scale Factor of Threshold Lower Limit

\n"}, {"fullname": "grib2io.templates.ScaledValueOfThresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ScaledValueOfThresholdLowerLimit", "kind": "class", "doc": "

Scaled Value of Threshold Lower Limit

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfThresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfThresholdUpperLimit", "kind": "class", "doc": "

Scale Factor of Threshold Upper Limit

\n"}, {"fullname": "grib2io.templates.ScaledValueOfThresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ScaledValueOfThresholdUpperLimit", "kind": "class", "doc": "

Scaled Value of Threshold Upper Limit

\n"}, {"fullname": "grib2io.templates.ThresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ThresholdLowerLimit", "kind": "class", "doc": "

Threshold Lower Limit

\n"}, {"fullname": "grib2io.templates.ThresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ThresholdUpperLimit", "kind": "class", "doc": "

Threshold Upper Limit

\n"}, {"fullname": "grib2io.templates.Threshold", "modulename": "grib2io.templates", "qualname": "Threshold", "kind": "class", "doc": "

Threshold string (same as wgrib2)

\n"}, {"fullname": "grib2io.templates.PercentileValue", "modulename": "grib2io.templates", "qualname": "PercentileValue", "kind": "class", "doc": "

Percentile Value

\n"}, {"fullname": "grib2io.templates.YearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "YearOfEndOfTimePeriod", "kind": "class", "doc": "

Year of End of Forecast Time Period

\n"}, {"fullname": "grib2io.templates.MonthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "MonthOfEndOfTimePeriod", "kind": "class", "doc": "

Month Year of End of Forecast Time Period

\n"}, {"fullname": "grib2io.templates.DayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "DayOfEndOfTimePeriod", "kind": "class", "doc": "

Day Year of End of Forecast Time Period

\n"}, {"fullname": "grib2io.templates.HourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "HourOfEndOfTimePeriod", "kind": "class", "doc": "

Hour Year of End of Forecast Time Period

\n"}, {"fullname": "grib2io.templates.MinuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "MinuteOfEndOfTimePeriod", "kind": "class", "doc": "

Minute Year of End of Forecast Time Period

\n"}, {"fullname": "grib2io.templates.SecondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "SecondOfEndOfTimePeriod", "kind": "class", "doc": "

Second Year of End of Forecast Time Period

\n"}, {"fullname": "grib2io.templates.Duration", "modulename": "grib2io.templates", "qualname": "Duration", "kind": "class", "doc": "

Duration of time period. NOTE: This is a datetime.timedelta object.

\n"}, {"fullname": "grib2io.templates.ValidDate", "modulename": "grib2io.templates", "qualname": "ValidDate", "kind": "class", "doc": "

Valid Date of the forecast. NOTE: This is a datetime.datetime object.

\n"}, {"fullname": "grib2io.templates.NumberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "NumberOfTimeRanges", "kind": "class", "doc": "

Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field

\n"}, {"fullname": "grib2io.templates.NumberOfMissingValues", "modulename": "grib2io.templates", "qualname": "NumberOfMissingValues", "kind": "class", "doc": "

Total number of data values missing in statistical process

\n"}, {"fullname": "grib2io.templates.StatisticalProcess", "modulename": "grib2io.templates", "qualname": "StatisticalProcess", "kind": "class", "doc": "

Statistical Process

\n"}, {"fullname": "grib2io.templates.TypeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "TypeOfTimeIncrementOfStatisticalProcess", "kind": "class", "doc": "

Type of Time Increment of Statistical Process

\n"}, {"fullname": "grib2io.templates.UnitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "UnitOfTimeRangeOfStatisticalProcess", "kind": "class", "doc": "

Unit of Time Range of Statistical Process

\n"}, {"fullname": "grib2io.templates.TimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "TimeRangeOfStatisticalProcess", "kind": "class", "doc": "

Time Range of Statistical Process

\n"}, {"fullname": "grib2io.templates.UnitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "UnitOfTimeRangeOfSuccessiveFields", "kind": "class", "doc": "

Unit of Time Range of Successive Fields

\n"}, {"fullname": "grib2io.templates.TimeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "TimeIncrementOfSuccessiveFields", "kind": "class", "doc": "

Time Increment of Successive Fields

\n"}, {"fullname": "grib2io.templates.TypeOfStatisticalProcessing", "modulename": "grib2io.templates", "qualname": "TypeOfStatisticalProcessing", "kind": "class", "doc": "

Type of Statistical Processing

\n"}, {"fullname": "grib2io.templates.NumberOfDataPointsForSpatialProcessing", "modulename": "grib2io.templates", "qualname": "NumberOfDataPointsForSpatialProcessing", "kind": "class", "doc": "

Number of Data Points for Spatial Processing

\n"}, {"fullname": "grib2io.templates.TypeOfAerosol", "modulename": "grib2io.templates", "qualname": "TypeOfAerosol", "kind": "class", "doc": "

Type of Aerosol

\n"}, {"fullname": "grib2io.templates.TypeOfIntervalForAerosolSize", "modulename": "grib2io.templates", "qualname": "TypeOfIntervalForAerosolSize", "kind": "class", "doc": "

Type of Interval for Aerosol Size

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfFirstSize", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfFirstSize", "kind": "class", "doc": "

Scale Factor of First Size

\n"}, {"fullname": "grib2io.templates.ScaledValueOfFirstSize", "modulename": "grib2io.templates", "qualname": "ScaledValueOfFirstSize", "kind": "class", "doc": "

Scaled Value of First Size

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfSecondSize", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfSecondSize", "kind": "class", "doc": "

Scale Factor of Second Size

\n"}, {"fullname": "grib2io.templates.ScaledValueOfSecondSize", "modulename": "grib2io.templates", "qualname": "ScaledValueOfSecondSize", "kind": "class", "doc": "

Scaled Value of Second Size

\n"}, {"fullname": "grib2io.templates.TypeOfIntervalForAerosolWavelength", "modulename": "grib2io.templates", "qualname": "TypeOfIntervalForAerosolWavelength", "kind": "class", "doc": "

Type of Interval for Aerosol Wavelength

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfFirstWavelength", "kind": "class", "doc": "

Scale Factor of First Wavelength

\n"}, {"fullname": "grib2io.templates.ScaledValueOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ScaledValueOfFirstWavelength", "kind": "class", "doc": "

Scaled Value of First Wavelength

\n"}, {"fullname": "grib2io.templates.ScaleFactorOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfSecondWavelength", "kind": "class", "doc": "

Scale Factor of Second Wavelength

\n"}, {"fullname": "grib2io.templates.ScaledValueOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ScaledValueOfSecondWavelength", "kind": "class", "doc": "

Scaled Value of Second Wavelength

\n"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0", "kind": "class", "doc": "

Product Definition Template 0

\n"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.parameterCategory", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.parameterCategory", "kind": "variable", "doc": "

Parameter Category

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.parameterNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.parameterNumber", "kind": "variable", "doc": "

Parameter Number

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.typeOfGeneratingProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.typeOfGeneratingProcess", "kind": "variable", "doc": "

Type of Generating Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.generatingProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.generatingProcess", "kind": "variable", "doc": "

Generating Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.backgroundGeneratingProcessIdentifier", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.backgroundGeneratingProcessIdentifier", "kind": "variable", "doc": "

Background Generating Process Identifier

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.hoursAfterDataCutoff", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.hoursAfterDataCutoff", "kind": "variable", "doc": "

Hours of observational data cutoff after reference time

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.minutesAfterDataCutoff", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.minutesAfterDataCutoff", "kind": "variable", "doc": "

Minutes of observational data cutoff after reference time

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.unitOfForecastTime", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.unitOfForecastTime", "kind": "variable", "doc": "

Units of Forecast Time

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.valueOfForecastTime", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.valueOfForecastTime", "kind": "variable", "doc": "

Value of forecast time in units defined by UnitofForecastTime

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.typeOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.typeOfFirstFixedSurface", "kind": "variable", "doc": "

Type of First Fixed Surface

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaleFactorOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaleFactorOfFirstFixedSurface", "kind": "variable", "doc": "

Scale Factor of First Fixed Surface

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaledValueOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaledValueOfFirstFixedSurface", "kind": "variable", "doc": "

Scaled Value Of First Fixed Surface

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.typeOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.typeOfSecondFixedSurface", "kind": "variable", "doc": "

Type of Second Fixed Surface

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaleFactorOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaleFactorOfSecondFixedSurface", "kind": "variable", "doc": "

Scale Factor of Second Fixed Surface

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaledValueOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaledValueOfSecondFixedSurface", "kind": "variable", "doc": "

Scaled Value Of Second Fixed Surface

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate1", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate1", "kind": "class", "doc": "

Product Definition Template 1

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate1.typeOfEnsembleForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate1.typeOfEnsembleForecast", "kind": "variable", "doc": "

Type of Ensemble Forecast

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate1.perturbationNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate1.perturbationNumber", "kind": "variable", "doc": "

Ensemble Perturbation Number

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate1.numberOfEnsembleForecasts", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate1.numberOfEnsembleForecasts", "kind": "variable", "doc": "

Total Number of Ensemble Forecasts

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate2", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate2", "kind": "class", "doc": "

Product Definition Template 2

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate2.typeOfDerivedForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate2.typeOfDerivedForecast", "kind": "variable", "doc": "

Type of Derived Forecast

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate2.numberOfEnsembleForecasts", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate2.numberOfEnsembleForecasts", "kind": "variable", "doc": "

Total Number of Ensemble Forecasts

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5", "kind": "class", "doc": "

Product Definition Template 5

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.forecastProbabilityNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.forecastProbabilityNumber", "kind": "variable", "doc": "

Forecast Probability Number

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.totalNumberOfForecastProbabilities", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.totalNumberOfForecastProbabilities", "kind": "variable", "doc": "

Total Number of Forecast Probabilities

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.typeOfProbability", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.typeOfProbability", "kind": "variable", "doc": "

Type of Probability

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.scaleFactorOfThresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.scaleFactorOfThresholdLowerLimit", "kind": "variable", "doc": "

Scale Factor of Threshold Lower Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.scaledValueOfThresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.scaledValueOfThresholdLowerLimit", "kind": "variable", "doc": "

Scaled Value of Threshold Lower Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.scaleFactorOfThresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.scaleFactorOfThresholdUpperLimit", "kind": "variable", "doc": "

Scale Factor of Threshold Upper Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.scaledValueOfThresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.scaledValueOfThresholdUpperLimit", "kind": "variable", "doc": "

Scaled Value of Threshold Upper Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.thresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.thresholdLowerLimit", "kind": "variable", "doc": "

Threshold Lower Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.thresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.thresholdUpperLimit", "kind": "variable", "doc": "

Threshold Upper Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.threshold", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.threshold", "kind": "variable", "doc": "

Threshold string (same as wgrib2)

\n", "annotation": ": str"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate6", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate6", "kind": "class", "doc": "

Product Definition Template 6

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate6.percentileValue", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate6.percentileValue", "kind": "variable", "doc": "

Percentile Value

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8", "kind": "class", "doc": "

Product Definition Template 8

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.yearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.yearOfEndOfTimePeriod", "kind": "variable", "doc": "

Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.monthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.monthOfEndOfTimePeriod", "kind": "variable", "doc": "

Month Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.dayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.dayOfEndOfTimePeriod", "kind": "variable", "doc": "

Day Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.hourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.hourOfEndOfTimePeriod", "kind": "variable", "doc": "

Hour Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.minuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.minuteOfEndOfTimePeriod", "kind": "variable", "doc": "

Minute Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.secondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.secondOfEndOfTimePeriod", "kind": "variable", "doc": "

Second Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.numberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.numberOfTimeRanges", "kind": "variable", "doc": "

Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.numberOfMissingValues", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.numberOfMissingValues", "kind": "variable", "doc": "

Total number of data values missing in statistical process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.statisticalProcess", "kind": "variable", "doc": "

Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "

Type of Time Increment of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Unit of Time Range of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Time Range of Statistical Process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "

Unit of Time Range of Successive Fields

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "

Time Increment of Successive Fields

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9", "kind": "class", "doc": "

Product Definition Template 9

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.forecastProbabilityNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.forecastProbabilityNumber", "kind": "variable", "doc": "

Forecast Probability Number

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.totalNumberOfForecastProbabilities", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.totalNumberOfForecastProbabilities", "kind": "variable", "doc": "

Total Number of Forecast Probabilities

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.typeOfProbability", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.typeOfProbability", "kind": "variable", "doc": "

Type of Probability

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.scaleFactorOfThresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.scaleFactorOfThresholdLowerLimit", "kind": "variable", "doc": "

Scale Factor of Threshold Lower Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.scaledValueOfThresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.scaledValueOfThresholdLowerLimit", "kind": "variable", "doc": "

Scaled Value of Threshold Lower Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.scaleFactorOfThresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.scaleFactorOfThresholdUpperLimit", "kind": "variable", "doc": "

Scale Factor of Threshold Upper Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.scaledValueOfThresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.scaledValueOfThresholdUpperLimit", "kind": "variable", "doc": "

Scaled Value of Threshold Upper Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.thresholdLowerLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.thresholdLowerLimit", "kind": "variable", "doc": "

Threshold Lower Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.thresholdUpperLimit", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.thresholdUpperLimit", "kind": "variable", "doc": "

Threshold Upper Limit

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.threshold", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.threshold", "kind": "variable", "doc": "

Threshold string (same as wgrib2)

\n", "annotation": ": str"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.yearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.yearOfEndOfTimePeriod", "kind": "variable", "doc": "

Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.monthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.monthOfEndOfTimePeriod", "kind": "variable", "doc": "

Month Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.dayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.dayOfEndOfTimePeriod", "kind": "variable", "doc": "

Day Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.hourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.hourOfEndOfTimePeriod", "kind": "variable", "doc": "

Hour Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.minuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.minuteOfEndOfTimePeriod", "kind": "variable", "doc": "

Minute Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.secondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.secondOfEndOfTimePeriod", "kind": "variable", "doc": "

Second Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.numberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.numberOfTimeRanges", "kind": "variable", "doc": "

Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.numberOfMissingValues", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.numberOfMissingValues", "kind": "variable", "doc": "

Total number of data values missing in statistical process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.statisticalProcess", "kind": "variable", "doc": "

Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "

Type of Time Increment of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Unit of Time Range of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Time Range of Statistical Process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "

Unit of Time Range of Successive Fields

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "

Time Increment of Successive Fields

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10", "kind": "class", "doc": "

Product Definition Template 10

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.percentileValue", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.percentileValue", "kind": "variable", "doc": "

Percentile Value

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.yearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.yearOfEndOfTimePeriod", "kind": "variable", "doc": "

Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.monthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.monthOfEndOfTimePeriod", "kind": "variable", "doc": "

Month Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.dayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.dayOfEndOfTimePeriod", "kind": "variable", "doc": "

Day Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.hourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.hourOfEndOfTimePeriod", "kind": "variable", "doc": "

Hour Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.minuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.minuteOfEndOfTimePeriod", "kind": "variable", "doc": "

Minute Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.secondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.secondOfEndOfTimePeriod", "kind": "variable", "doc": "

Second Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.numberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.numberOfTimeRanges", "kind": "variable", "doc": "

Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.numberOfMissingValues", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.numberOfMissingValues", "kind": "variable", "doc": "

Total number of data values missing in statistical process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.statisticalProcess", "kind": "variable", "doc": "

Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "

Type of Time Increment of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Unit of Time Range of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Time Range of Statistical Process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "

Unit of Time Range of Successive Fields

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "

Time Increment of Successive Fields

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11", "kind": "class", "doc": "

Product Definition Template 11

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.typeOfEnsembleForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.typeOfEnsembleForecast", "kind": "variable", "doc": "

Type of Ensemble Forecast

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.perturbationNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.perturbationNumber", "kind": "variable", "doc": "

Ensemble Perturbation Number

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.numberOfEnsembleForecasts", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.numberOfEnsembleForecasts", "kind": "variable", "doc": "

Total Number of Ensemble Forecasts

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.yearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.yearOfEndOfTimePeriod", "kind": "variable", "doc": "

Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.monthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.monthOfEndOfTimePeriod", "kind": "variable", "doc": "

Month Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.dayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.dayOfEndOfTimePeriod", "kind": "variable", "doc": "

Day Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.hourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.hourOfEndOfTimePeriod", "kind": "variable", "doc": "

Hour Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.minuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.minuteOfEndOfTimePeriod", "kind": "variable", "doc": "

Minute Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.secondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.secondOfEndOfTimePeriod", "kind": "variable", "doc": "

Second Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.numberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.numberOfTimeRanges", "kind": "variable", "doc": "

Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.numberOfMissingValues", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.numberOfMissingValues", "kind": "variable", "doc": "

Total number of data values missing in statistical process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.statisticalProcess", "kind": "variable", "doc": "

Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "

Type of Time Increment of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Unit of Time Range of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Time Range of Statistical Process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "

Unit of Time Range of Successive Fields

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "

Time Increment of Successive Fields

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12", "kind": "class", "doc": "

Product Definition Template 12

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.typeOfDerivedForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.typeOfDerivedForecast", "kind": "variable", "doc": "

Type of Derived Forecast

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.numberOfEnsembleForecasts", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.numberOfEnsembleForecasts", "kind": "variable", "doc": "

Total Number of Ensemble Forecasts

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.yearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.yearOfEndOfTimePeriod", "kind": "variable", "doc": "

Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.monthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.monthOfEndOfTimePeriod", "kind": "variable", "doc": "

Month Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.dayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.dayOfEndOfTimePeriod", "kind": "variable", "doc": "

Day Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.hourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.hourOfEndOfTimePeriod", "kind": "variable", "doc": "

Hour Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.minuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.minuteOfEndOfTimePeriod", "kind": "variable", "doc": "

Minute Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.secondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.secondOfEndOfTimePeriod", "kind": "variable", "doc": "

Second Year of End of Forecast Time Period

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.numberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.numberOfTimeRanges", "kind": "variable", "doc": "

Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.numberOfMissingValues", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.numberOfMissingValues", "kind": "variable", "doc": "

Total number of data values missing in statistical process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.statisticalProcess", "kind": "variable", "doc": "

Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "

Type of Time Increment of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Unit of Time Range of Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "

Time Range of Statistical Process

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "

Unit of Time Range of Successive Fields

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "

Time Increment of Successive Fields

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15", "kind": "class", "doc": "

Product Definition Template 15

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15.statisticalProcess", "kind": "variable", "doc": "

Statistical Process

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15.typeOfStatisticalProcessing", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15.typeOfStatisticalProcessing", "kind": "variable", "doc": "

Type of Statistical Processing

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15.numberOfDataPointsForSpatialProcessing", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15.numberOfDataPointsForSpatialProcessing", "kind": "variable", "doc": "

Number of Data Points for Spatial Processing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48", "kind": "class", "doc": "

Product Definition Template 48

\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.typeOfAerosol", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.typeOfAerosol", "kind": "variable", "doc": "

Type of Aerosol

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.typeOfIntervalForAerosolSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.typeOfIntervalForAerosolSize", "kind": "variable", "doc": "

Type of Interval for Aerosol Size

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfFirstSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfFirstSize", "kind": "variable", "doc": "

Scale Factor of First Size

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfFirstSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfFirstSize", "kind": "variable", "doc": "

Scaled Value of First Size

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfSecondSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfSecondSize", "kind": "variable", "doc": "

Scale Factor of Second Size

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfSecondSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfSecondSize", "kind": "variable", "doc": "

Scaled Value of Second Size

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.typeOfIntervalForAerosolWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.typeOfIntervalForAerosolWavelength", "kind": "variable", "doc": "

Type of Interval for Aerosol Wavelength

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfFirstWavelength", "kind": "variable", "doc": "

Scale Factor of First Wavelength

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfFirstWavelength", "kind": "variable", "doc": "

Scaled Value of First Wavelength

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfSecondWavelength", "kind": "variable", "doc": "

Scale Factor of Second Wavelength

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfSecondWavelength", "kind": "variable", "doc": "

Scaled Value of Second Wavelength

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.pdt_class_by_pdtn", "modulename": "grib2io.templates", "qualname": "pdt_class_by_pdtn", "kind": "function", "doc": "

Provides a Product Definition Template class via the template number

\n\n

Parameters

\n\n

pdtn : int\n Product definition template number.

\n\n

Returns

\n\n

Product definition template class object (not an instance).

\n", "signature": "(pdtn):", "funcdef": "def"}, {"fullname": "grib2io.templates.NumberOfPackedValues", "modulename": "grib2io.templates", "qualname": "NumberOfPackedValues", "kind": "class", "doc": "

Number of Packed Values

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplateNumber", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplateNumber", "kind": "class", "doc": "

Data Representation Template Number

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate", "kind": "class", "doc": "

Data Representation Template

\n"}, {"fullname": "grib2io.templates.RefValue", "modulename": "grib2io.templates", "qualname": "RefValue", "kind": "class", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n"}, {"fullname": "grib2io.templates.BinScaleFactor", "modulename": "grib2io.templates", "qualname": "BinScaleFactor", "kind": "class", "doc": "

Binary Scale Factor

\n"}, {"fullname": "grib2io.templates.DecScaleFactor", "modulename": "grib2io.templates", "qualname": "DecScaleFactor", "kind": "class", "doc": "

Decimal Scale Factor

\n"}, {"fullname": "grib2io.templates.NBitsPacking", "modulename": "grib2io.templates", "qualname": "NBitsPacking", "kind": "class", "doc": "

Minimum number of bits for packing

\n"}, {"fullname": "grib2io.templates.TypeOfValues", "modulename": "grib2io.templates", "qualname": "TypeOfValues", "kind": "class", "doc": "

Type of Original Field Values

\n"}, {"fullname": "grib2io.templates.GroupSplittingMethod", "modulename": "grib2io.templates", "qualname": "GroupSplittingMethod", "kind": "class", "doc": "

Group Splitting Method

\n"}, {"fullname": "grib2io.templates.TypeOfMissingValueManagement", "modulename": "grib2io.templates", "qualname": "TypeOfMissingValueManagement", "kind": "class", "doc": "

Type of Missing Value Management

\n"}, {"fullname": "grib2io.templates.PriMissingValue", "modulename": "grib2io.templates", "qualname": "PriMissingValue", "kind": "class", "doc": "

Primary Missing Value

\n"}, {"fullname": "grib2io.templates.SecMissingValue", "modulename": "grib2io.templates", "qualname": "SecMissingValue", "kind": "class", "doc": "

Secondary Missing Value

\n"}, {"fullname": "grib2io.templates.NGroups", "modulename": "grib2io.templates", "qualname": "NGroups", "kind": "class", "doc": "

Number of Groups

\n"}, {"fullname": "grib2io.templates.RefGroupWidth", "modulename": "grib2io.templates", "qualname": "RefGroupWidth", "kind": "class", "doc": "

Reference Group Width

\n"}, {"fullname": "grib2io.templates.NBitsGroupWidth", "modulename": "grib2io.templates", "qualname": "NBitsGroupWidth", "kind": "class", "doc": "

Number of bits for Group Width

\n"}, {"fullname": "grib2io.templates.RefGroupLength", "modulename": "grib2io.templates", "qualname": "RefGroupLength", "kind": "class", "doc": "

Reference Group Length

\n"}, {"fullname": "grib2io.templates.GroupLengthIncrement", "modulename": "grib2io.templates", "qualname": "GroupLengthIncrement", "kind": "class", "doc": "

Group Length Increment

\n"}, {"fullname": "grib2io.templates.LengthOfLastGroup", "modulename": "grib2io.templates", "qualname": "LengthOfLastGroup", "kind": "class", "doc": "

Length of Last Group

\n"}, {"fullname": "grib2io.templates.NBitsScaledGroupLength", "modulename": "grib2io.templates", "qualname": "NBitsScaledGroupLength", "kind": "class", "doc": "

Number of bits of Scaled Group Length

\n"}, {"fullname": "grib2io.templates.SpatialDifferenceOrder", "modulename": "grib2io.templates", "qualname": "SpatialDifferenceOrder", "kind": "class", "doc": "

Spatial Difference Order

\n"}, {"fullname": "grib2io.templates.NBytesSpatialDifference", "modulename": "grib2io.templates", "qualname": "NBytesSpatialDifference", "kind": "class", "doc": "

Number of bytes for Spatial Differencing

\n"}, {"fullname": "grib2io.templates.Precision", "modulename": "grib2io.templates", "qualname": "Precision", "kind": "class", "doc": "

Precision for IEEE Floating Point Data

\n"}, {"fullname": "grib2io.templates.TypeOfCompression", "modulename": "grib2io.templates", "qualname": "TypeOfCompression", "kind": "class", "doc": "

Type of Compression

\n"}, {"fullname": "grib2io.templates.TargetCompressionRatio", "modulename": "grib2io.templates", "qualname": "TargetCompressionRatio", "kind": "class", "doc": "

Target Compression Ratio

\n"}, {"fullname": "grib2io.templates.RealOfCoefficient", "modulename": "grib2io.templates", "qualname": "RealOfCoefficient", "kind": "class", "doc": "

Real of Coefficient

\n"}, {"fullname": "grib2io.templates.CompressionOptionsMask", "modulename": "grib2io.templates", "qualname": "CompressionOptionsMask", "kind": "class", "doc": "

Compression Options Mask for AEC/CCSDS

\n"}, {"fullname": "grib2io.templates.BlockSize", "modulename": "grib2io.templates", "qualname": "BlockSize", "kind": "class", "doc": "

Block Size for AEC/CCSDS

\n"}, {"fullname": "grib2io.templates.RefSampleInterval", "modulename": "grib2io.templates", "qualname": "RefSampleInterval", "kind": "class", "doc": "

Reference Sample Interval for AEC/CCSDS

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate0", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate0", "kind": "class", "doc": "

Data Representation Template 0

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate0.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate0.refValue", "kind": "variable", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate0.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate0.binScaleFactor", "kind": "variable", "doc": "

Binary Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate0.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate0.decScaleFactor", "kind": "variable", "doc": "

Decimal Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate0.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate0.nBitsPacking", "kind": "variable", "doc": "

Minimum number of bits for packing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2", "kind": "class", "doc": "

Data Representation Template 2

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.refValue", "kind": "variable", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.binScaleFactor", "kind": "variable", "doc": "

Binary Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.decScaleFactor", "kind": "variable", "doc": "

Decimal Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.nBitsPacking", "kind": "variable", "doc": "

Minimum number of bits for packing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.groupSplittingMethod", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.groupSplittingMethod", "kind": "variable", "doc": "

Group Splitting Method

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.typeOfMissingValueManagement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.typeOfMissingValueManagement", "kind": "variable", "doc": "

Type of Missing Value Management

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.priMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.priMissingValue", "kind": "variable", "doc": "

Primary Missing Value

\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.secMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.secMissingValue", "kind": "variable", "doc": "

Secondary Missing Value

\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.nGroups", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.nGroups", "kind": "variable", "doc": "

Number of Groups

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.refGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.refGroupWidth", "kind": "variable", "doc": "

Reference Group Width

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.nBitsGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.nBitsGroupWidth", "kind": "variable", "doc": "

Number of bits for Group Width

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.refGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.refGroupLength", "kind": "variable", "doc": "

Reference Group Length

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.groupLengthIncrement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.groupLengthIncrement", "kind": "variable", "doc": "

Group Length Increment

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.lengthOfLastGroup", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.lengthOfLastGroup", "kind": "variable", "doc": "

Length of Last Group

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.nBitsScaledGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.nBitsScaledGroupLength", "kind": "variable", "doc": "

Number of bits of Scaled Group Length

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3", "kind": "class", "doc": "

Data Representation Template 3

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.refValue", "kind": "variable", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.binScaleFactor", "kind": "variable", "doc": "

Binary Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.decScaleFactor", "kind": "variable", "doc": "

Decimal Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nBitsPacking", "kind": "variable", "doc": "

Minimum number of bits for packing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.groupSplittingMethod", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.groupSplittingMethod", "kind": "variable", "doc": "

Group Splitting Method

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.typeOfMissingValueManagement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.typeOfMissingValueManagement", "kind": "variable", "doc": "

Type of Missing Value Management

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.priMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.priMissingValue", "kind": "variable", "doc": "

Primary Missing Value

\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.secMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.secMissingValue", "kind": "variable", "doc": "

Secondary Missing Value

\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nGroups", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nGroups", "kind": "variable", "doc": "

Number of Groups

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.refGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.refGroupWidth", "kind": "variable", "doc": "

Reference Group Width

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nBitsGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nBitsGroupWidth", "kind": "variable", "doc": "

Number of bits for Group Width

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.refGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.refGroupLength", "kind": "variable", "doc": "

Reference Group Length

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.groupLengthIncrement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.groupLengthIncrement", "kind": "variable", "doc": "

Group Length Increment

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.lengthOfLastGroup", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.lengthOfLastGroup", "kind": "variable", "doc": "

Length of Last Group

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nBitsScaledGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nBitsScaledGroupLength", "kind": "variable", "doc": "

Number of bits of Scaled Group Length

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.spatialDifferenceOrder", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.spatialDifferenceOrder", "kind": "variable", "doc": "

Spatial Difference Order

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nBytesSpatialDifference", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nBytesSpatialDifference", "kind": "variable", "doc": "

Number of bytes for Spatial Differencing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate4", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate4", "kind": "class", "doc": "

Data Representation Template 4

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate4.precision", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate4.precision", "kind": "variable", "doc": "

Precision for IEEE Floating Point Data

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40", "kind": "class", "doc": "

Data Representation Template 40

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40.refValue", "kind": "variable", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40.binScaleFactor", "kind": "variable", "doc": "

Binary Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40.decScaleFactor", "kind": "variable", "doc": "

Decimal Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40.nBitsPacking", "kind": "variable", "doc": "

Minimum number of bits for packing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40.typeOfCompression", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40.typeOfCompression", "kind": "variable", "doc": "

Type of Compression

\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40.targetCompressionRatio", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40.targetCompressionRatio", "kind": "variable", "doc": "

Target Compression Ratio

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41", "kind": "class", "doc": "

Data Representation Template 41

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.refValue", "kind": "variable", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.binScaleFactor", "kind": "variable", "doc": "

Binary Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.decScaleFactor", "kind": "variable", "doc": "

Decimal Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.nBitsPacking", "kind": "variable", "doc": "

Minimum number of bits for packing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42", "kind": "class", "doc": "

Data Representation Template 42

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.refValue", "kind": "variable", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.binScaleFactor", "kind": "variable", "doc": "

Binary Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.decScaleFactor", "kind": "variable", "doc": "

Decimal Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.nBitsPacking", "kind": "variable", "doc": "

Minimum number of bits for packing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.compressionOptionsMask", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.compressionOptionsMask", "kind": "variable", "doc": "

Compression Options Mask for AEC/CCSDS

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.blockSize", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.blockSize", "kind": "variable", "doc": "

Block Size for AEC/CCSDS

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.refSampleInterval", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.refSampleInterval", "kind": "variable", "doc": "

Reference Sample Interval for AEC/CCSDS

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50", "kind": "class", "doc": "

Data Representation Template 50

\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.refValue", "kind": "variable", "doc": "

Reference Value (represented as an IEEE 32-bit floating point value)

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.binScaleFactor", "kind": "variable", "doc": "

Binary Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.decScaleFactor", "kind": "variable", "doc": "

Decimal Scale Factor

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.nBitsPacking", "kind": "variable", "doc": "

Minimum number of bits for packing

\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.realOfCoefficient", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.realOfCoefficient", "kind": "variable", "doc": "

Real of Coefficient

\n", "annotation": ": float"}, {"fullname": "grib2io.templates.drt_class_by_drtn", "modulename": "grib2io.templates", "qualname": "drt_class_by_drtn", "kind": "function", "doc": "

Provides a Data Representation Template class via the template number

\n\n

Parameters

\n\n

drtn : int\n Data Representation template number.

\n\n

Returns

\n\n

Data Representation template class object (not an instance).

\n", "signature": "(drtn):", "funcdef": "def"}, {"fullname": "grib2io.utils", "modulename": "grib2io.utils", "kind": "module", "doc": "

Collection of utility functions to assist in the encoding and decoding\nof GRIB2 Messages.

\n"}, {"fullname": "grib2io.utils.int2bin", "modulename": "grib2io.utils", "qualname": "int2bin", "kind": "function", "doc": "

Convert integer to binary string or list

\n\n

Parameters

\n\n

i : int\n Integer value to convert to binary representation.

\n\n

nbits : int, optional\n Number of bits to return. Valid values are 8 [DEFAULT], 16, 32, and 64.

\n\n

output : type\n Return data as str [DEFAULT] or list (list of ints).

\n\n

Returns

\n\n

str or list (list of ints) of binary representation of the integer value.

\n", "signature": "(i, nbits=8, output=<class 'str'>):", "funcdef": "def"}, {"fullname": "grib2io.utils.ieee_float_to_int", "modulename": "grib2io.utils", "qualname": "ieee_float_to_int", "kind": "function", "doc": "

Convert an IEEE 32-bit float to a 32-bit integer.

\n\n

Parameters

\n\n

f : float\n Floating-point value.

\n\n

Returns

\n\n

numpy.int32 representation of an IEEE 32-bit float.

\n", "signature": "(f):", "funcdef": "def"}, {"fullname": "grib2io.utils.ieee_int_to_float", "modulename": "grib2io.utils", "qualname": "ieee_int_to_float", "kind": "function", "doc": "

Convert a 32-bit integer to an IEEE 32-bit float.

\n\n

Parameters

\n\n

i : int\n Integer value.

\n\n

Returns

\n\n

numpy.float32 representation of a 32-bit int.

\n", "signature": "(i):", "funcdef": "def"}, {"fullname": "grib2io.utils.get_leadtime", "modulename": "grib2io.utils", "qualname": "get_leadtime", "kind": "function", "doc": "

Computes lead time as a datetime.timedelta object using information from\nGRIB2 Identification Section (Section 1), Product Definition Template\nNumber, and Product Definition Template (Section 4).

\n\n

Parameters

\n\n

idsec : list or array_like\n Seqeunce containing GRIB2 Identification Section (Section 1).

\n\n

pdtn : int\n GRIB2 Product Definition Template Number

\n\n

pdt : list or array_like\n Seqeunce containing GRIB2 Product Definition Template (Section 4).

\n\n

Returns

\n\n

datetime.timedelta object representing the lead time of the GRIB2 message.

\n", "signature": "(idsec, pdtn, pdt):", "funcdef": "def"}, {"fullname": "grib2io.utils.get_duration", "modulename": "grib2io.utils", "qualname": "get_duration", "kind": "function", "doc": "

Computes a time duration as a datetime.timedelta using information from\nProduct Definition Template Number, and Product Definition Template (Section 4).

\n\n

Parameters

\n\n

pdtn : int\n GRIB2 Product Definition Template Number

\n\n

pdt : list or array_like\n Sequence containing GRIB2 Product Definition Template (Section 4).

\n\n

Returns

\n\n

datetime.timedelta object representing the time duration of the GRIB2 message.

\n", "signature": "(pdtn, pdt):", "funcdef": "def"}, {"fullname": "grib2io.utils.decode_wx_strings", "modulename": "grib2io.utils", "qualname": "decode_wx_strings", "kind": "function", "doc": "

Decode GRIB2 Local Use Section to obtain NDFD/MDL Weather Strings. The\ndecode procedure is defined here.

\n\n

Parameters

\n\n

lus : bytes\n GRIB2 Local Use Section containing NDFD weather strings.

\n\n

Returns

\n\n

dict of NDFD/MDL weather strings. Keys are an integer value that represent \nthe sequential order of the key in the packed local use section and the value is \nthe weather key.

\n", "signature": "(lus):", "funcdef": "def"}, {"fullname": "grib2io.utils.get_wgrib2_prob_string", "modulename": "grib2io.utils", "qualname": "get_wgrib2_prob_string", "kind": "function", "doc": "

Return a wgrib2-formatted string explaining probabilistic\nthreshold informaiton. Logic from wgrib2 source, Prob.c,\nis replicated here.

\n\n

Parameters

\n\n

probtype : int\n Type of probability (Code Table 4.9).

\n\n

sfacl : int\n Scale factor of lower limit.

\n\n

svall : int\n Scaled value of lower limit.

\n\n

sfacu : int\n Scale factor of upper limit.

\n\n

svalu : int\n Scaled value of upper limit.

\n\n

Returns

\n\n

wgrib2-formatted string of probability threshold.

\n", "signature": "(probtype, sfacl, svall, sfacu, svalu):", "funcdef": "def"}, {"fullname": "grib2io.utils.arakawa_rotated_grid", "modulename": "grib2io.utils.arakawa_rotated_grid", "kind": "module", "doc": "

Functions for handling an Arakawa Rotated Lat/Lon Grids.

\n\n

This grid is not often used, but is currently used for the NCEP/RAP using\nGRIB2 Grid Definition Template 32769

\n\n

These functions are adapted from the NCAR Command Language (ncl),\nfrom NcGRIB2.c

\n"}, {"fullname": "grib2io.utils.arakawa_rotated_grid.DEG2RAD", "modulename": "grib2io.utils.arakawa_rotated_grid", "qualname": "DEG2RAD", "kind": "variable", "doc": "

\n", "default_value": "0.017453292519943295"}, {"fullname": "grib2io.utils.arakawa_rotated_grid.RAD2DEG", "modulename": "grib2io.utils.arakawa_rotated_grid", "qualname": "RAD2DEG", "kind": "variable", "doc": "

\n", "default_value": "57.29577951308232"}, {"fullname": "grib2io.utils.arakawa_rotated_grid.ll2rot", "modulename": "grib2io.utils.arakawa_rotated_grid", "qualname": "ll2rot", "kind": "function", "doc": "

Rotate a latitude/longitude pair.

\n\n

Parameters

\n\n

latin: float\n Latitudes in units of degrees.

\n\n

lonin: float\n Longitudes in units of degrees.

\n\n

latpole: float\n Latitude of Pole.

\n\n

lonpole: float\n Longitude of Pole.

\n\n

Returns

\n\n

tlat, tlons\n Returns two floats of rotated latitude and longitude in units of degrees.

\n", "signature": "(latin, lonin, latpole, lonpole):", "funcdef": "def"}, {"fullname": "grib2io.utils.arakawa_rotated_grid.rot2ll", "modulename": "grib2io.utils.arakawa_rotated_grid", "qualname": "rot2ll", "kind": "function", "doc": "

Unrotate a latitude/longitude pair.

\n\n

Parameters

\n\n

latin: float\n Latitudes in units of degrees.

\n\n

lonin: float\n Longitudes in units of degrees.

\n\n

latpole: float\n Latitude of Pole.

\n\n

lonpole: float\n Longitude of Pole.

\n\n

Returns

\n\n

tlat, tlons\n Returns two floats of unrotated latitude and longitude in units of degrees.

\n", "signature": "(latin, lonin, latpole, lonpole):", "funcdef": "def"}, {"fullname": "grib2io.utils.arakawa_rotated_grid.vector_rotation_angles", "modulename": "grib2io.utils.arakawa_rotated_grid", "qualname": "vector_rotation_angles", "kind": "function", "doc": "

Generate a rotation angle value that can be applied to a vector quantity to\nmake it Earth-oriented.

\n\n

Parameters

\n\n

tlat: float\n True latitude in units of degrees.

\n\n

**tlon**:float`\n True longitude in units of degrees..

\n\n

clat: float\n Latitude of center grid point in units of degrees.

\n\n

losp: float\n Longitude of the southern pole in units of degrees.

\n\n

xlat: float\n Latitude of the rotated grid in units of degrees.

\n\n

Returns

\n\n

rot : float\n Rotation angle in units of radians.

\n", "signature": "(tlat, tlon, clat, losp, xlat):", "funcdef": "def"}, {"fullname": "grib2io.utils.gauss_grid", "modulename": "grib2io.utils.gauss_grid", "kind": "module", "doc": "

Tools for working with Gaussian grids.

\n\n

Adopted from: https://gist.github.com/ajdawson/b64d24dfac618b91974f

\n"}, {"fullname": "grib2io.utils.gauss_grid.gaussian_latitudes", "modulename": "grib2io.utils.gauss_grid", "qualname": "gaussian_latitudes", "kind": "function", "doc": "

Construct latitudes for a Gaussian grid.

\n\n

Parameters

\n\n

nlat : int\n The number of latitudes in the Gaussian grid.

\n\n

Returns

\n\n

numpy.ndarray of latitudes (in degrees) with a length of nlat.

\n", "signature": "():", "funcdef": "def"}, {"fullname": "grib2io.utils.rotated_grid", "modulename": "grib2io.utils.rotated_grid", "kind": "module", "doc": "

Tools for working with Rotated Lat/Lon Grids.

\n"}, {"fullname": "grib2io.utils.rotated_grid.RAD2DEG", "modulename": "grib2io.utils.rotated_grid", "qualname": "RAD2DEG", "kind": "variable", "doc": "

\n", "default_value": "57.29577951308232"}, {"fullname": "grib2io.utils.rotated_grid.DEG2RAD", "modulename": "grib2io.utils.rotated_grid", "qualname": "DEG2RAD", "kind": "variable", "doc": "

\n", "default_value": "0.017453292519943295"}, {"fullname": "grib2io.utils.rotated_grid.rotate", "modulename": "grib2io.utils.rotated_grid", "qualname": "rotate", "kind": "function", "doc": "

Perform grid rotation. This function is adapted from ECMWF's ecCodes library\nvoid function, rotate().

\n\n

https://github.com/ecmwf/eccodes/blob/develop/src/grib_geography.cc

\n\n

Parameters

\n\n

latin : float or array_like\n Latitudes in units of degrees.

\n\n

lonin : float or array_like\n Longitudes in units of degrees.

\n\n

aor : float\n Angle of rotation as defined in GRIB2 GDTN 4.1.

\n\n

splat : float\n Latitude of South Pole as defined in GRIB2 GDTN 4.1.

\n\n

splon : float\n Longitude of South Pole as defined in GRIB2 GDTN 4.1.

\n\n

Returns

\n\n

lats, lons : numpy.ndarray\n numpy.ndarrays with dtype=numpy.float32 of grid latitudes and\n longitudes in units of degrees.

\n", "signature": "(latin, lonin, aor, splat, splon):", "funcdef": "def"}, {"fullname": "grib2io.utils.rotated_grid.unrotate", "modulename": "grib2io.utils.rotated_grid", "qualname": "unrotate", "kind": "function", "doc": "

Perform grid un-rotation. This function is adapted from ECMWF's ecCodes library\nvoid function, unrotate().

\n\n

https://github.com/ecmwf/eccodes/blob/develop/src/grib_geography.cc

\n\n

Parameters

\n\n

latin : float or array_like\n Latitudes in units of degrees.

\n\n

lonin : float or array_like\n Longitudes in units of degrees.

\n\n

aor : float\n Angle of rotation as defined in GRIB2 GDTN 4.1.

\n\n

splat : float\n Latitude of South Pole as defined in GRIB2 GDTN 4.1.

\n\n

splon : float\n Longitude of South Pole as defined in GRIB2 GDTN 4.1.

\n\n

Returns

\n\n

lats, lons : numpy.ndarray\n numpy.ndarrays with dtype=numpy.float32 of grid latitudes and\n longitudes in units of degrees.

\n", "signature": "(latin, lonin, aor, splat, splon):", "funcdef": "def"}]; // mirrored in build-search-index.js (part 1) // Also split on html tags. this is a cheap heuristic, but good enough. diff --git a/grib2io/_grib2io.py b/grib2io/_grib2io.py index a40ed10..b0ef601 100644 --- a/grib2io/_grib2io.py +++ b/grib2io/_grib2io.py @@ -67,6 +67,11 @@ class open(): may contain submessages whereby Section 2-7 can be repeated. grib2io accommodates for this by flattening any GRIB2 submessages into multiple individual messages. + It is important to note that GRIB2 files from some Meteorological agencies contain other data + than GRIB2 messages. GRIB2 files from NWS NDFD and NAVGEM have text-based "header" data and + files from ECMWF can contain GRIB1 and GRIB2 messages. grib2io checks for these and safely + ignores them. + Attributes ---------- **`mode : str`**