From 7705ad1e027504a6d8789b7f0fc59a98fef25915 Mon Sep 17 00:00:00 2001 From: Eric Engle Date: Fri, 9 Aug 2024 11:51:03 -0400 Subject: [PATCH] Update docs again. [skip-ci] --- ...ng_examples.ipynb => subset-example.ipynb} | 0 docs/grib2io.html | 5155 +++++++++-------- docs/search.js | 2 +- src/grib2io/_grib2io.py | 1 + 4 files changed, 2580 insertions(+), 2578 deletions(-) rename demos/{plotting_examples.ipynb => subset-example.ipynb} (100%) diff --git a/demos/plotting_examples.ipynb b/demos/subset-example.ipynb similarity index 100% rename from demos/plotting_examples.ipynb rename to demos/subset-example.ipynb diff --git a/docs/grib2io.html b/docs/grib2io.html index fea38bb..f88aa3d 100644 --- a/docs/grib2io.html +++ b/docs/grib2io.html @@ -401,6 +401,7 @@

Tutorials

@@ -459,483 +460,483 @@

Tutorials

-
 61class open():
- 62    """
- 63    GRIB2 File Object.
- 64
- 65    A physical file can contain one or more GRIB2 messages.  When instantiated,
- 66    class `grib2io.open`, the file named `filename` is opened for reading (`mode
- 67    = 'r'`) and is automatically indexed.  The indexing procedure reads some of
- 68    the GRIB2 metadata for all GRIB2 Messages.  A GRIB2 Message may contain
- 69    submessages whereby Section 2-7 can be repeated.  grib2io accommodates for
- 70    this by flattening any GRIB2 submessages into multiple individual messages.
- 71
- 72    It is important to note that GRIB2 files from some Meteorological agencies
- 73    contain other data than GRIB2 messages.  GRIB2 files from ECMWF can contain
- 74    GRIB1 and GRIB2 messages.  grib2io checks for these and safely ignores them.
- 75
- 76    Attributes
- 77    ----------
- 78    closed : bool
- 79        `True` is file handle is close; `False` otherwise.
- 80    current_message : int
- 81        Current position of the file in units of GRIB2 Messages.
- 82    levels : tuple
- 83        Tuple containing a unique list of wgrib2-formatted level/layer strings.
- 84    messages : int
- 85        Count of GRIB2 Messages contained in the file.
- 86    mode : str
- 87        File IO mode of opening the file.
- 88    name : str
- 89        Full path name of the GRIB2 file.
- 90    size : int
- 91        Size of the file in units of bytes.
- 92    variables : tuple
- 93        Tuple containing a unique list of variable short names (i.e. GRIB2
- 94        abbreviation names).
- 95    """
- 96
- 97    __slots__ = ('_fileid', '_filehandle', '_hasindex', '_index', '_nodata',
- 98                 '_pos', 'closed', 'current_message', 'messages', 'mode',
- 99                 'name', 'size')
-100
-101    def __init__(self, filename: str, mode: Literal["r", "w", "x"] = "r", **kwargs):
-102        """
-103        Initialize GRIB2 File object instance.
-104
-105        Parameters
-106        ----------
-107        filename
-108            File name containing GRIB2 messages.
-109        mode: default="r"
-110            File access mode where "r" opens the files for reading only; "w"
-111            opens the file for overwriting and "x" for writing to a new file.
-112        """
-113        # Manage keywords
-114        if "_xarray_backend" not in kwargs:
-115            kwargs["_xarray_backend"] = False
-116            self._nodata = False
-117        else:
-118            self._nodata = kwargs["_xarray_backend"]
-119
-120        # All write modes are read/write.
-121        # All modes are binary.
-122        if mode in ("a", "x", "w"):
-123            mode += "+"
-124        mode = mode + "b"
-125
-126        # Some GRIB2 files are gzipped, so check for that here, but
-127        # raise error when using xarray backend.
-128        if 'r' in mode:
-129            self._filehandle = builtins.open(filename, mode=mode)
-130            # Gzip files contain a 2-byte header b'\x1f\x8b'.
-131            if self._filehandle.read(2) == b'\x1f\x8b':
-132                self._filehandle.close()
-133                if kwargs["_xarray_backend"]:
-134                    raise RuntimeError('Gzip GRIB2 files are not supported by the Xarray backend.')
-135                import gzip
-136                self._filehandle = gzip.open(filename, mode=mode)
-137            else:
-138                self._filehandle = builtins.open(filename, mode=mode)
-139        else:
-140            self._filehandle = builtins.open(filename, mode=mode)
-141
-142        self.name = os.path.abspath(filename)
-143        fstat = os.stat(self.name)
-144        self._hasindex = False
-145        self._index = {}
-146        self.mode = mode
-147        self.messages = 0
-148        self.current_message = 0
-149        self.size = fstat.st_size
-150        self.closed = self._filehandle.closed
-151        self._fileid = hashlib.sha1((self.name+str(fstat.st_ino)+
-152                                     str(self.size)).encode('ASCII')).hexdigest()
-153        if 'r' in self.mode:
-154            self._build_index()
-155        # FIX: Cannot perform reads on mode='a'
-156        #if 'a' in self.mode and self.size > 0: self._build_index()
-157
+            
 62class open():
+ 63    """
+ 64    GRIB2 File Object.
+ 65
+ 66    A physical file can contain one or more GRIB2 messages.  When instantiated,
+ 67    class `grib2io.open`, the file named `filename` is opened for reading (`mode
+ 68    = 'r'`) and is automatically indexed.  The indexing procedure reads some of
+ 69    the GRIB2 metadata for all GRIB2 Messages.  A GRIB2 Message may contain
+ 70    submessages whereby Section 2-7 can be repeated.  grib2io accommodates for
+ 71    this by flattening any GRIB2 submessages into multiple individual messages.
+ 72
+ 73    It is important to note that GRIB2 files from some Meteorological agencies
+ 74    contain other data than GRIB2 messages.  GRIB2 files from ECMWF can contain
+ 75    GRIB1 and GRIB2 messages.  grib2io checks for these and safely ignores them.
+ 76
+ 77    Attributes
+ 78    ----------
+ 79    closed : bool
+ 80        `True` is file handle is close; `False` otherwise.
+ 81    current_message : int
+ 82        Current position of the file in units of GRIB2 Messages.
+ 83    levels : tuple
+ 84        Tuple containing a unique list of wgrib2-formatted level/layer strings.
+ 85    messages : int
+ 86        Count of GRIB2 Messages contained in the file.
+ 87    mode : str
+ 88        File IO mode of opening the file.
+ 89    name : str
+ 90        Full path name of the GRIB2 file.
+ 91    size : int
+ 92        Size of the file in units of bytes.
+ 93    variables : tuple
+ 94        Tuple containing a unique list of variable short names (i.e. GRIB2
+ 95        abbreviation names).
+ 96    """
+ 97
+ 98    __slots__ = ('_fileid', '_filehandle', '_hasindex', '_index', '_nodata',
+ 99                 '_pos', 'closed', 'current_message', 'messages', 'mode',
+100                 'name', 'size')
+101
+102    def __init__(self, filename: str, mode: Literal["r", "w", "x"] = "r", **kwargs):
+103        """
+104        Initialize GRIB2 File object instance.
+105
+106        Parameters
+107        ----------
+108        filename
+109            File name containing GRIB2 messages.
+110        mode: default="r"
+111            File access mode where "r" opens the files for reading only; "w"
+112            opens the file for overwriting and "x" for writing to a new file.
+113        """
+114        # Manage keywords
+115        if "_xarray_backend" not in kwargs:
+116            kwargs["_xarray_backend"] = False
+117            self._nodata = False
+118        else:
+119            self._nodata = kwargs["_xarray_backend"]
+120
+121        # All write modes are read/write.
+122        # All modes are binary.
+123        if mode in ("a", "x", "w"):
+124            mode += "+"
+125        mode = mode + "b"
+126
+127        # Some GRIB2 files are gzipped, so check for that here, but
+128        # raise error when using xarray backend.
+129        if 'r' in mode:
+130            self._filehandle = builtins.open(filename, mode=mode)
+131            # Gzip files contain a 2-byte header b'\x1f\x8b'.
+132            if self._filehandle.read(2) == b'\x1f\x8b':
+133                self._filehandle.close()
+134                if kwargs["_xarray_backend"]:
+135                    raise RuntimeError('Gzip GRIB2 files are not supported by the Xarray backend.')
+136                import gzip
+137                self._filehandle = gzip.open(filename, mode=mode)
+138            else:
+139                self._filehandle = builtins.open(filename, mode=mode)
+140        else:
+141            self._filehandle = builtins.open(filename, mode=mode)
+142
+143        self.name = os.path.abspath(filename)
+144        fstat = os.stat(self.name)
+145        self._hasindex = False
+146        self._index = {}
+147        self.mode = mode
+148        self.messages = 0
+149        self.current_message = 0
+150        self.size = fstat.st_size
+151        self.closed = self._filehandle.closed
+152        self._fileid = hashlib.sha1((self.name+str(fstat.st_ino)+
+153                                     str(self.size)).encode('ASCII')).hexdigest()
+154        if 'r' in self.mode:
+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 __delete__(self, instance):
-160        self.close()
-161        del self._index
-162
+159
+160    def __delete__(self, instance):
+161        self.close()
+162        del self._index
 163
-164    def __enter__(self):
-165        return self
-166
+164
+165    def __enter__(self):
+166        return self
 167
-168    def __exit__(self, atype, value, traceback):
-169        self.close()
-170
+168
+169    def __exit__(self, atype, value, traceback):
+170        self.close()
 171
-172    def __iter__(self):
-173        yield from self._index['msg']
-174
+172
+173    def __iter__(self):
+174        yield from self._index['msg']
 175
-176    def __len__(self):
-177        return self.messages
-178
+176
+177    def __len__(self):
+178        return self.messages
 179
-180    def __repr__(self):
-181        strings = []
-182        for k in self.__slots__:
-183            if k.startswith('_'): continue
-184            strings.append('%s = %s\n'%(k,eval('self.'+k)))
-185        return ''.join(strings)
-186
+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    def __getitem__(self, key):
-189        if isinstance(key,int):
-190            if abs(key) >= len(self._index['msg']):
-191                raise IndexError("index out of range")
-192            else:
-193                return self._index['msg'][key]
-194        elif isinstance(key,str):
-195            return self.select(shortName=key)
-196        elif isinstance(key,slice):
-197            return self._index['msg'][key]
-198        else:
-199            raise KeyError('Key must be an integer, slice, or GRIB2 variable shortName.')
-200
+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    def _build_index(self):
-203        """Perform indexing of GRIB2 Messages."""
-204        # Initialize index dictionary
-205        if not self._hasindex:
-206            self._index['sectionOffset'] = []
-207            self._index['sectionSize'] = []
-208            self._index['msgSize'] = []
-209            self._index['msgNumber'] = []
-210            self._index['msg'] = []
-211            self._index['isSubmessage'] = []
-212            self._hasindex = True
-213
-214        # Iterate
-215        while True:
-216            try:
-217                # Initialize
-218                bmapflag = None
-219                pos = self._filehandle.tell()
-220                section2 = b''
-221                trailer = b''
-222                _secpos = dict.fromkeys(range(8))
-223                _secsize = dict.fromkeys(range(8))
-224                _isSubmessage = False
-225
-226                # Ignore headers (usually text) that are not part of the GRIB2
-227                # file.  For example, NAVGEM files have a http header at the
-228                # beginning that needs to be ignored.
-229
-230                # Read a byte at a time until "GRIB" is found.  Using
-231                # "wgrib2" on a NAVGEM file, the header was 421 bytes and
-232                # decided to go to 2048 bytes to be safe. For normal GRIB2
-233                # files this should be quick and break out of the first
-234                # loop when "test_offset" is 0.
-235                for test_offset in range(2048):
-236                    self._filehandle.seek(pos + test_offset)
-237                    header = struct.unpack(">I", self._filehandle.read(4))[0]
-238                    if header.to_bytes(4, "big") == b"GRIB":
-239                        pos = pos + test_offset
-240                        break
-241                else:
-242                    # NOTE: Coming here means that no "GRIB" message identifier
-243                    # was found in the previous 2048 bytes. So here we continue
-244                    # the while True loop.
-245                    continue
-246
-247                # Read the rest of Section 0 using struct.
-248                _secpos[0] = self._filehandle.tell()-4
-249                _secsize[0] = 16
-250                secmsg = self._filehandle.read(12)
-251                section0 = np.concatenate(([header],list(struct.unpack('>HBBQ',secmsg))),dtype=np.int64)
-252
-253                # Make sure message is GRIB2.
-254                if section0[3] != 2:
-255                    # Check for GRIB1 and ignore.
-256                    if secmsg[3] == 1:
-257                        warnings.warn("GRIB version 1 message detected.  Ignoring...")
-258                        grib1_size = int.from_bytes(secmsg[:3],"big")
-259                        self._filehandle.seek(self._filehandle.tell()+grib1_size-16)
-260                        continue
-261                    else:
-262                        raise ValueError("Bad GRIB version number.")
-263
-264                # Read and unpack sections 1 through 8 which all follow a
-265                # pattern of section size, number, and content.
-266                while 1:
-267                    # Read first 5 bytes of the section which contains the size
-268                    # of the section (4 bytes) and the section number (1 byte).
-269                    secmsg = self._filehandle.read(5)
-270                    secsize, secnum = struct.unpack('>iB',secmsg)
-271
-272                    # Record the offset of the section number and "append" the
-273                    # rest of the section to secmsg.
-274                    _secpos[secnum] = self._filehandle.tell()-5
-275                    _secsize[secnum] = secsize
-276                    if secnum in {1,3,4,5}:
-277                        secmsg += self._filehandle.read(secsize-5)
-278                    grbpos = 0
-279
-280                    # Unpack section
-281                    if secnum == 1:
-282                        # Unpack Section 1
-283                        section1, grbpos = g2clib.unpack1(secmsg,grbpos,np.empty)
-284                    elif secnum == 2:
-285                        # Unpack Section 2
-286                        section2 = self._filehandle.read(secsize-5)
-287                    elif secnum == 3:
-288                        # Unpack Section 3
-289                        gds, gdt, deflist, grbpos = g2clib.unpack3(secmsg,grbpos,np.empty)
-290                        gds = gds.tolist()
-291                        gdt = gdt.tolist()
-292                        section3 = np.concatenate((gds,gdt))
-293                        section3 = np.where(section3==4294967295,-1,section3)
-294                    elif secnum == 4:
-295                        # Unpack Section 4
-296                        numcoord, pdt, pdtnum, coordlist, grbpos = g2clib.unpack4(secmsg,grbpos,np.empty)
-297                        pdt = pdt.tolist()
-298                        section4 = np.concatenate((np.array((numcoord,pdtnum)),pdt))
-299                    elif secnum == 5:
-300                        # Unpack Section 5
-301                        drt, drtn, npts, self._pos = g2clib.unpack5(secmsg,grbpos,np.empty)
-302                        section5 = np.concatenate((np.array((npts,drtn)),drt))
-303                        section5 = np.where(section5==4294967295,-1,section5)
-304                    elif secnum == 6:
-305                        # Unpack Section 6 - Just the bitmap flag
-306                        bmapflag = struct.unpack('>B',self._filehandle.read(1))[0]
-307                        if bmapflag == 0:
-308                            bmappos = self._filehandle.tell()-6
-309                        elif bmapflag == 254:
-310                            # Do this to keep the previous position value
-311                            pass
-312                        else:
-313                            bmappos = None
-314                        self._filehandle.seek(self._filehandle.tell()+secsize-6)
-315                    elif secnum == 7:
-316                        # Do not unpack section 7 here, but move the file pointer
-317                        # to after section 7.
-318                        self._filehandle.seek(self._filehandle.tell()+secsize-5)
-319
-320                        # Update the file index.
-321                        self.messages += 1
-322                        self._index['sectionOffset'].append(copy.deepcopy(_secpos))
-323                        self._index['sectionSize'].append(copy.deepcopy(_secsize))
-324                        self._index['msgSize'].append(section0[-1])
-325                        self._index['msgNumber'].append(self.messages)
-326                        self._index['isSubmessage'].append(_isSubmessage)
-327
-328                        # Create Grib2Message with data.
-329                        msg = Grib2Message(section0,section1,section2,section3,section4,section5,bmapflag)
-330                        msg._msgnum = self.messages-1
-331                        msg._deflist = deflist
-332                        msg._coordlist = coordlist
-333                        if not self._nodata:
-334                            msg._ondiskarray = Grib2MessageOnDiskArray((msg.ny,msg.nx), 2,
-335                                                                TYPE_OF_VALUES_DTYPE[msg.typeOfValues],
-336                                                                self._filehandle,
-337                                                                msg, pos, _secpos[6], _secpos[7])
-338                        self._index['msg'].append(msg)
-339
-340                        # If here, then we have moved through GRIB2 section 1-7.
-341                        # Now we need to check the next 4 bytes after section 7.
-342                        trailer = struct.unpack('>i',self._filehandle.read(4))[0]
-343
-344                        # If we reach the GRIB2 trailer string ('7777'), then we
-345                        # can break begin processing the next GRIB2 message.  If
-346                        # not, then we continue within the same iteration to
-347                        # process a GRIB2 submessage.
-348                        if trailer.to_bytes(4, "big") == b'7777':
-349                            break
-350                        else:
-351                            # If here, trailer should be the size of the first
-352                            # section of the next submessage, then the next byte
-353                            # is the section number.  Check this value.
-354                            nextsec = struct.unpack('>B',self._filehandle.read(1))[0]
-355                            if nextsec not in {2,3,4}:
-356                                raise ValueError("Bad GRIB2 message structure.")
-357                            self._filehandle.seek(self._filehandle.tell()-5)
-358                            _isSubmessage = True
-359                            continue
-360                    else:
-361                        raise ValueError("Bad GRIB2 section number.")
-362
-363            except(struct.error):
-364                if 'r' in self.mode:
-365                    self._filehandle.seek(0)
-366                break
-367
+202
+203    def _build_index(self):
+204        """Perform indexing of GRIB2 Messages."""
+205        # Initialize index dictionary
+206        if not self._hasindex:
+207            self._index['sectionOffset'] = []
+208            self._index['sectionSize'] = []
+209            self._index['msgSize'] = []
+210            self._index['msgNumber'] = []
+211            self._index['msg'] = []
+212            self._index['isSubmessage'] = []
+213            self._hasindex = True
+214
+215        # Iterate
+216        while True:
+217            try:
+218                # Initialize
+219                bmapflag = None
+220                pos = self._filehandle.tell()
+221                section2 = b''
+222                trailer = b''
+223                _secpos = dict.fromkeys(range(8))
+224                _secsize = dict.fromkeys(range(8))
+225                _isSubmessage = False
+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                else:
+243                    # NOTE: Coming here means that no "GRIB" message identifier
+244                    # was found in the previous 2048 bytes. So here we continue
+245                    # the while True loop.
+246                    continue
+247
+248                # Read the rest of Section 0 using struct.
+249                _secpos[0] = self._filehandle.tell()-4
+250                _secsize[0] = 16
+251                secmsg = self._filehandle.read(12)
+252                section0 = np.concatenate(([header],list(struct.unpack('>HBBQ',secmsg))),dtype=np.int64)
+253
+254                # Make sure message is GRIB2.
+255                if section0[3] != 2:
+256                    # Check for GRIB1 and ignore.
+257                    if secmsg[3] == 1:
+258                        warnings.warn("GRIB version 1 message detected.  Ignoring...")
+259                        grib1_size = int.from_bytes(secmsg[:3],"big")
+260                        self._filehandle.seek(self._filehandle.tell()+grib1_size-16)
+261                        continue
+262                    else:
+263                        raise ValueError("Bad GRIB version number.")
+264
+265                # Read and unpack sections 1 through 8 which all follow a
+266                # pattern of section size, number, and content.
+267                while 1:
+268                    # Read first 5 bytes of the section which contains the size
+269                    # of the section (4 bytes) and the section number (1 byte).
+270                    secmsg = self._filehandle.read(5)
+271                    secsize, secnum = struct.unpack('>iB',secmsg)
+272
+273                    # Record the offset of the section number and "append" the
+274                    # rest of the section to secmsg.
+275                    _secpos[secnum] = self._filehandle.tell()-5
+276                    _secsize[secnum] = secsize
+277                    if secnum in {1,3,4,5}:
+278                        secmsg += self._filehandle.read(secsize-5)
+279                    grbpos = 0
+280
+281                    # Unpack section
+282                    if secnum == 1:
+283                        # Unpack Section 1
+284                        section1, grbpos = g2clib.unpack1(secmsg,grbpos,np.empty)
+285                    elif secnum == 2:
+286                        # Unpack Section 2
+287                        section2 = self._filehandle.read(secsize-5)
+288                    elif secnum == 3:
+289                        # Unpack Section 3
+290                        gds, gdt, deflist, grbpos = g2clib.unpack3(secmsg,grbpos,np.empty)
+291                        gds = gds.tolist()
+292                        gdt = gdt.tolist()
+293                        section3 = np.concatenate((gds,gdt))
+294                        section3 = np.where(section3==4294967295,-1,section3)
+295                    elif secnum == 4:
+296                        # Unpack Section 4
+297                        numcoord, pdt, pdtnum, coordlist, grbpos = g2clib.unpack4(secmsg,grbpos,np.empty)
+298                        pdt = pdt.tolist()
+299                        section4 = np.concatenate((np.array((numcoord,pdtnum)),pdt))
+300                    elif secnum == 5:
+301                        # Unpack Section 5
+302                        drt, drtn, npts, self._pos = g2clib.unpack5(secmsg,grbpos,np.empty)
+303                        section5 = np.concatenate((np.array((npts,drtn)),drt))
+304                        section5 = np.where(section5==4294967295,-1,section5)
+305                    elif secnum == 6:
+306                        # Unpack Section 6 - Just the bitmap flag
+307                        bmapflag = struct.unpack('>B',self._filehandle.read(1))[0]
+308                        if bmapflag == 0:
+309                            bmappos = self._filehandle.tell()-6
+310                        elif bmapflag == 254:
+311                            # Do this to keep the previous position value
+312                            pass
+313                        else:
+314                            bmappos = None
+315                        self._filehandle.seek(self._filehandle.tell()+secsize-6)
+316                    elif secnum == 7:
+317                        # Do not unpack section 7 here, but move the file pointer
+318                        # to after section 7.
+319                        self._filehandle.seek(self._filehandle.tell()+secsize-5)
+320
+321                        # Update the file index.
+322                        self.messages += 1
+323                        self._index['sectionOffset'].append(copy.deepcopy(_secpos))
+324                        self._index['sectionSize'].append(copy.deepcopy(_secsize))
+325                        self._index['msgSize'].append(section0[-1])
+326                        self._index['msgNumber'].append(self.messages)
+327                        self._index['isSubmessage'].append(_isSubmessage)
+328
+329                        # Create Grib2Message with data.
+330                        msg = Grib2Message(section0,section1,section2,section3,section4,section5,bmapflag)
+331                        msg._msgnum = self.messages-1
+332                        msg._deflist = deflist
+333                        msg._coordlist = coordlist
+334                        if not self._nodata:
+335                            msg._ondiskarray = Grib2MessageOnDiskArray((msg.ny,msg.nx), 2,
+336                                                                TYPE_OF_VALUES_DTYPE[msg.typeOfValues],
+337                                                                self._filehandle,
+338                                                                msg, pos, _secpos[6], _secpos[7])
+339                        self._index['msg'].append(msg)
+340
+341                        # If here, then we have moved through GRIB2 section 1-7.
+342                        # Now we need to check the next 4 bytes after section 7.
+343                        trailer = struct.unpack('>i',self._filehandle.read(4))[0]
+344
+345                        # If we reach the GRIB2 trailer string ('7777'), then we
+346                        # can break begin processing the next GRIB2 message.  If
+347                        # not, then we continue within the same iteration to
+348                        # process a GRIB2 submessage.
+349                        if trailer.to_bytes(4, "big") == b'7777':
+350                            break
+351                        else:
+352                            # If here, trailer should be the size of the first
+353                            # section of the next submessage, then the next byte
+354                            # is the section number.  Check this value.
+355                            nextsec = struct.unpack('>B',self._filehandle.read(1))[0]
+356                            if nextsec not in {2,3,4}:
+357                                raise ValueError("Bad GRIB2 message structure.")
+358                            self._filehandle.seek(self._filehandle.tell()-5)
+359                            _isSubmessage = True
+360                            continue
+361                    else:
+362                        raise ValueError("Bad GRIB2 section number.")
+363
+364            except(struct.error):
+365                if 'r' in self.mode:
+366                    self._filehandle.seek(0)
+367                break
 368
-369    @property
-370    def levels(self):
-371        if self._hasindex and not self._nodata:
-372            return tuple(sorted(set([msg.level for msg in self._index['msg']])))
-373        else:
-374            return None
-375
+369
+370    @property
+371    def levels(self):
+372        if self._hasindex and not self._nodata:
+373            return tuple(sorted(set([msg.level for msg in self._index['msg']])))
+374        else:
+375            return None
 376
-377    @property
-378    def variables(self):
-379        if self._hasindex and not self._nodata:
-380            return tuple(sorted(set([msg.shortName for msg in self._index['msg']])))
-381        else:
-382            return None
-383
+377
+378    @property
+379    def variables(self):
+380        if self._hasindex and not self._nodata:
+381            return tuple(sorted(set([msg.shortName for msg in self._index['msg']])))
+382        else:
+383            return None
 384
-385    def close(self):
-386        """Close the file handle."""
-387        if not self._filehandle.closed:
-388            self.messages = 0
-389            self.current_message = 0
-390            self._filehandle.close()
-391            self.closed = self._filehandle.closed
-392
+385
+386    def close(self):
+387        """Close the file handle."""
+388        if not self._filehandle.closed:
+389            self.messages = 0
+390            self.current_message = 0
+391            self._filehandle.close()
+392            self.closed = self._filehandle.closed
 393
-394    def read(self, size: Optional[int]=None):
-395        """
-396        Read size amount of GRIB2 messages from the current position.
-397
-398        If no argument is given, then size is None and all messages are returned
-399        from the current position in the file. This read method follows the
-400        behavior of Python's builtin open() function, but whereas that operates
-401        on units of bytes, we operate on units of GRIB2 messages.
-402
-403        Parameters
-404        ----------
-405        size: default=None
-406            The number of GRIB2 messages to read from the current position. If
-407            no argument is give, the default value is None and remainder of
-408            the file is read.
-409
-410        Returns
-411        -------
-412        read
-413            ``Grib2Message`` object when size = 1 or a list of Grib2Messages
-414            when size > 1.
-415        """
-416        if size is not None and size < 0:
-417            size = None
-418        if size is None or size > 1:
-419            start = self.tell()
-420            stop = self.messages if size is None else start+size
-421            if size is None:
-422                self.current_message = self.messages-1
-423            else:
-424                self.current_message += size
-425            return self._index['msg'][slice(start,stop,1)]
-426        elif size == 1:
-427            self.current_message += 1
-428            return self._index['msg'][self.current_message]
-429        else:
-430            None
-431
+394
+395    def read(self, size: Optional[int]=None):
+396        """
+397        Read size amount of GRIB2 messages from the current position.
+398
+399        If no argument is given, then size is None and all messages are returned
+400        from the current position in the file. This read method follows the
+401        behavior of Python's builtin open() function, but whereas that operates
+402        on units of bytes, we operate on units of GRIB2 messages.
+403
+404        Parameters
+405        ----------
+406        size: default=None
+407            The number of GRIB2 messages to read from the current position. If
+408            no argument is give, the default value is None and remainder of
+409            the file is read.
+410
+411        Returns
+412        -------
+413        read
+414            ``Grib2Message`` object when size = 1 or a list of Grib2Messages
+415            when size > 1.
+416        """
+417        if size is not None and size < 0:
+418            size = None
+419        if size is None or size > 1:
+420            start = self.tell()
+421            stop = self.messages if size is None else start+size
+422            if size is None:
+423                self.current_message = self.messages-1
+424            else:
+425                self.current_message += size
+426            return self._index['msg'][slice(start,stop,1)]
+427        elif size == 1:
+428            self.current_message += 1
+429            return self._index['msg'][self.current_message]
+430        else:
+431            None
 432
-433    def seek(self, pos: int):
-434        """
-435        Set the position within the file in units of GRIB2 messages.
-436
-437        Parameters
-438        ----------
-439        pos
-440            The GRIB2 Message number to set the file pointer to.
-441        """
-442        if self._hasindex:
-443            self._filehandle.seek(self._index['sectionOffset'][0][pos])
-444            self.current_message = pos
-445
+433
+434    def seek(self, pos: int):
+435        """
+436        Set the position within the file in units of GRIB2 messages.
+437
+438        Parameters
+439        ----------
+440        pos
+441            The GRIB2 Message number to set the file pointer to.
+442        """
+443        if self._hasindex:
+444            self._filehandle.seek(self._index['sectionOffset'][0][pos])
+445            self.current_message = pos
 446
-447    def tell(self):
-448        """Returns the position of the file in units of GRIB2 Messages."""
-449        return self.current_message
-450
+447
+448    def tell(self):
+449        """Returns the position of the file in units of GRIB2 Messages."""
+450        return self.current_message
 451
-452    def select(self, **kwargs):
-453        """Select GRIB2 messages by `Grib2Message` attributes."""
-454        # TODO: Added ability to process multiple values for each keyword (attribute)
-455        idxs = []
-456        nkeys = len(kwargs.keys())
-457        for k,v in kwargs.items():
-458            for m in self._index['msg']:
-459                if hasattr(m,k) and getattr(m,k) == v: idxs.append(m._msgnum)
-460        idxs = np.array(idxs,dtype=np.int32)
-461        return [self._index['msg'][i] for i in [ii[0] for ii in collections.Counter(idxs).most_common() if ii[1] == nkeys]]
-462
+452
+453    def select(self, **kwargs):
+454        """Select GRIB2 messages by `Grib2Message` attributes."""
+455        # TODO: Added ability to process multiple values for each keyword (attribute)
+456        idxs = []
+457        nkeys = len(kwargs.keys())
+458        for k,v in kwargs.items():
+459            for m in self._index['msg']:
+460                if hasattr(m,k) and getattr(m,k) == v: idxs.append(m._msgnum)
+461        idxs = np.array(idxs,dtype=np.int32)
+462        return [self._index['msg'][i] for i in [ii[0] for ii in collections.Counter(idxs).most_common() if ii[1] == nkeys]]
 463
-464    def write(self, msg):
-465        """
-466        Writes GRIB2 message object to file.
-467
-468        Parameters
-469        ----------
-470        msg
-471            GRIB2 message objects to write to file.
-472        """
-473        if isinstance(msg,list):
-474            for m in msg:
-475                self.write(m)
-476            return
-477
-478        if issubclass(msg.__class__,_Grib2Message):
-479            if hasattr(msg,'_msg'):
-480                self._filehandle.write(msg._msg)
-481            else:
-482                if msg._signature != msg._generate_signature():
-483                    msg.pack()
-484                    self._filehandle.write(msg._msg)
-485                else:
-486                    if hasattr(msg._data,'filehandle'):
-487                        msg._data.filehandle.seek(msg._data.offset)
-488                        self._filehandle.write(msg._data.filehandle.read(msg.section0[-1]))
-489                    else:
-490                        msg.pack()
-491                        self._filehandle.write(msg._msg)
-492            self.flush()
-493            self.size = os.path.getsize(self.name)
-494            self._filehandle.seek(self.size-msg.section0[-1])
-495            self._build_index()
-496        else:
-497            raise TypeError("msg must be a Grib2Message object.")
-498        return
-499
+464
+465    def write(self, msg):
+466        """
+467        Writes GRIB2 message object to file.
+468
+469        Parameters
+470        ----------
+471        msg
+472            GRIB2 message objects to write to file.
+473        """
+474        if isinstance(msg,list):
+475            for m in msg:
+476                self.write(m)
+477            return
+478
+479        if issubclass(msg.__class__,_Grib2Message):
+480            if hasattr(msg,'_msg'):
+481                self._filehandle.write(msg._msg)
+482            else:
+483                if msg._signature != msg._generate_signature():
+484                    msg.pack()
+485                    self._filehandle.write(msg._msg)
+486                else:
+487                    if hasattr(msg._data,'filehandle'):
+488                        msg._data.filehandle.seek(msg._data.offset)
+489                        self._filehandle.write(msg._data.filehandle.read(msg.section0[-1]))
+490                    else:
+491                        msg.pack()
+492                        self._filehandle.write(msg._msg)
+493            self.flush()
+494            self.size = os.path.getsize(self.name)
+495            self._filehandle.seek(self.size-msg.section0[-1])
+496            self._build_index()
+497        else:
+498            raise TypeError("msg must be a Grib2Message object.")
+499        return
 500
-501    def flush(self):
-502        """Flush the file object buffer."""
-503        self._filehandle.flush()
-504
+501
+502    def flush(self):
+503        """Flush the file object buffer."""
+504        self._filehandle.flush()
 505
-506    def levels_by_var(self, name: str):
-507        """
-508        Return a list of level strings given a variable shortName.
-509
-510        Parameters
-511        ----------
-512        name
-513            Grib2Message variable shortName
-514
-515        Returns
-516        -------
-517        levels_by_var
-518            A list of unique level strings.
-519        """
-520        return list(sorted(set([msg.level for msg in self.select(shortName=name)])))
-521
+506
+507    def levels_by_var(self, name: str):
+508        """
+509        Return a list of level strings given a variable shortName.
+510
+511        Parameters
+512        ----------
+513        name
+514            Grib2Message variable shortName
+515
+516        Returns
+517        -------
+518        levels_by_var
+519            A list of unique level strings.
+520        """
+521        return list(sorted(set([msg.level for msg in self.select(shortName=name)])))
 522
-523    def vars_by_level(self, level: str):
-524        """
-525        Return a list of variable shortName strings given a level.
-526
-527        Parameters
-528        ----------
-529        level
-530            Grib2Message variable level
-531
-532        Returns
-533        -------
-534        vars_by_level
-535            A list of unique variable shortName strings.
-536        """
-537        return list(sorted(set([msg.shortName for msg in self.select(level=level)])))
+523
+524    def vars_by_level(self, level: str):
+525        """
+526        Return a list of variable shortName strings given a level.
+527
+528        Parameters
+529        ----------
+530        level
+531            Grib2Message variable level
+532
+533        Returns
+534        -------
+535        vars_by_level
+536            A list of unique variable shortName strings.
+537        """
+538        return list(sorted(set([msg.shortName for msg in self.select(level=level)])))
 
@@ -986,62 +987,62 @@
Attributes
-
101    def __init__(self, filename: str, mode: Literal["r", "w", "x"] = "r", **kwargs):
-102        """
-103        Initialize GRIB2 File object instance.
-104
-105        Parameters
-106        ----------
-107        filename
-108            File name containing GRIB2 messages.
-109        mode: default="r"
-110            File access mode where "r" opens the files for reading only; "w"
-111            opens the file for overwriting and "x" for writing to a new file.
-112        """
-113        # Manage keywords
-114        if "_xarray_backend" not in kwargs:
-115            kwargs["_xarray_backend"] = False
-116            self._nodata = False
-117        else:
-118            self._nodata = kwargs["_xarray_backend"]
-119
-120        # All write modes are read/write.
-121        # All modes are binary.
-122        if mode in ("a", "x", "w"):
-123            mode += "+"
-124        mode = mode + "b"
-125
-126        # Some GRIB2 files are gzipped, so check for that here, but
-127        # raise error when using xarray backend.
-128        if 'r' in mode:
-129            self._filehandle = builtins.open(filename, mode=mode)
-130            # Gzip files contain a 2-byte header b'\x1f\x8b'.
-131            if self._filehandle.read(2) == b'\x1f\x8b':
-132                self._filehandle.close()
-133                if kwargs["_xarray_backend"]:
-134                    raise RuntimeError('Gzip GRIB2 files are not supported by the Xarray backend.')
-135                import gzip
-136                self._filehandle = gzip.open(filename, mode=mode)
-137            else:
-138                self._filehandle = builtins.open(filename, mode=mode)
-139        else:
-140            self._filehandle = builtins.open(filename, mode=mode)
-141
-142        self.name = os.path.abspath(filename)
-143        fstat = os.stat(self.name)
-144        self._hasindex = False
-145        self._index = {}
-146        self.mode = mode
-147        self.messages = 0
-148        self.current_message = 0
-149        self.size = fstat.st_size
-150        self.closed = self._filehandle.closed
-151        self._fileid = hashlib.sha1((self.name+str(fstat.st_ino)+
-152                                     str(self.size)).encode('ASCII')).hexdigest()
-153        if 'r' in self.mode:
-154            self._build_index()
-155        # FIX: Cannot perform reads on mode='a'
-156        #if 'a' in self.mode and self.size > 0: self._build_index()
+            
102    def __init__(self, filename: str, mode: Literal["r", "w", "x"] = "r", **kwargs):
+103        """
+104        Initialize GRIB2 File object instance.
+105
+106        Parameters
+107        ----------
+108        filename
+109            File name containing GRIB2 messages.
+110        mode: default="r"
+111            File access mode where "r" opens the files for reading only; "w"
+112            opens the file for overwriting and "x" for writing to a new file.
+113        """
+114        # Manage keywords
+115        if "_xarray_backend" not in kwargs:
+116            kwargs["_xarray_backend"] = False
+117            self._nodata = False
+118        else:
+119            self._nodata = kwargs["_xarray_backend"]
+120
+121        # All write modes are read/write.
+122        # All modes are binary.
+123        if mode in ("a", "x", "w"):
+124            mode += "+"
+125        mode = mode + "b"
+126
+127        # Some GRIB2 files are gzipped, so check for that here, but
+128        # raise error when using xarray backend.
+129        if 'r' in mode:
+130            self._filehandle = builtins.open(filename, mode=mode)
+131            # Gzip files contain a 2-byte header b'\x1f\x8b'.
+132            if self._filehandle.read(2) == b'\x1f\x8b':
+133                self._filehandle.close()
+134                if kwargs["_xarray_backend"]:
+135                    raise RuntimeError('Gzip GRIB2 files are not supported by the Xarray backend.')
+136                import gzip
+137                self._filehandle = gzip.open(filename, mode=mode)
+138            else:
+139                self._filehandle = builtins.open(filename, mode=mode)
+140        else:
+141            self._filehandle = builtins.open(filename, mode=mode)
+142
+143        self.name = os.path.abspath(filename)
+144        fstat = os.stat(self.name)
+145        self._hasindex = False
+146        self._index = {}
+147        self.mode = mode
+148        self.messages = 0
+149        self.current_message = 0
+150        self.size = fstat.st_size
+151        self.closed = self._filehandle.closed
+152        self._fileid = hashlib.sha1((self.name+str(fstat.st_ino)+
+153                                     str(self.size)).encode('ASCII')).hexdigest()
+154        if 'r' in self.mode:
+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()
 
@@ -1134,12 +1135,12 @@
Parameters
-
369    @property
-370    def levels(self):
-371        if self._hasindex and not self._nodata:
-372            return tuple(sorted(set([msg.level for msg in self._index['msg']])))
-373        else:
-374            return None
+            
370    @property
+371    def levels(self):
+372        if self._hasindex and not self._nodata:
+373            return tuple(sorted(set([msg.level for msg in self._index['msg']])))
+374        else:
+375            return None
 
@@ -1155,12 +1156,12 @@
Parameters
-
377    @property
-378    def variables(self):
-379        if self._hasindex and not self._nodata:
-380            return tuple(sorted(set([msg.shortName for msg in self._index['msg']])))
-381        else:
-382            return None
+            
378    @property
+379    def variables(self):
+380        if self._hasindex and not self._nodata:
+381            return tuple(sorted(set([msg.shortName for msg in self._index['msg']])))
+382        else:
+383            return None
 
@@ -1178,13 +1179,13 @@
Parameters
-
385    def close(self):
-386        """Close the file handle."""
-387        if not self._filehandle.closed:
-388            self.messages = 0
-389            self.current_message = 0
-390            self._filehandle.close()
-391            self.closed = self._filehandle.closed
+            
386    def close(self):
+387        """Close the file handle."""
+388        if not self._filehandle.closed:
+389            self.messages = 0
+390            self.current_message = 0
+391            self._filehandle.close()
+392            self.closed = self._filehandle.closed
 
@@ -1204,43 +1205,43 @@
Parameters
-
394    def read(self, size: Optional[int]=None):
-395        """
-396        Read size amount of GRIB2 messages from the current position.
-397
-398        If no argument is given, then size is None and all messages are returned
-399        from the current position in the file. This read method follows the
-400        behavior of Python's builtin open() function, but whereas that operates
-401        on units of bytes, we operate on units of GRIB2 messages.
-402
-403        Parameters
-404        ----------
-405        size: default=None
-406            The number of GRIB2 messages to read from the current position. If
-407            no argument is give, the default value is None and remainder of
-408            the file is read.
-409
-410        Returns
-411        -------
-412        read
-413            ``Grib2Message`` object when size = 1 or a list of Grib2Messages
-414            when size > 1.
-415        """
-416        if size is not None and size < 0:
-417            size = None
-418        if size is None or size > 1:
-419            start = self.tell()
-420            stop = self.messages if size is None else start+size
-421            if size is None:
-422                self.current_message = self.messages-1
-423            else:
-424                self.current_message += size
-425            return self._index['msg'][slice(start,stop,1)]
-426        elif size == 1:
-427            self.current_message += 1
-428            return self._index['msg'][self.current_message]
-429        else:
-430            None
+            
395    def read(self, size: Optional[int]=None):
+396        """
+397        Read size amount of GRIB2 messages from the current position.
+398
+399        If no argument is given, then size is None and all messages are returned
+400        from the current position in the file. This read method follows the
+401        behavior of Python's builtin open() function, but whereas that operates
+402        on units of bytes, we operate on units of GRIB2 messages.
+403
+404        Parameters
+405        ----------
+406        size: default=None
+407            The number of GRIB2 messages to read from the current position. If
+408            no argument is give, the default value is None and remainder of
+409            the file is read.
+410
+411        Returns
+412        -------
+413        read
+414            ``Grib2Message`` object when size = 1 or a list of Grib2Messages
+415            when size > 1.
+416        """
+417        if size is not None and size < 0:
+418            size = None
+419        if size is None or size > 1:
+420            start = self.tell()
+421            stop = self.messages if size is None else start+size
+422            if size is None:
+423                self.current_message = self.messages-1
+424            else:
+425                self.current_message += size
+426            return self._index['msg'][slice(start,stop,1)]
+427        elif size == 1:
+428            self.current_message += 1
+429            return self._index['msg'][self.current_message]
+430        else:
+431            None
 
@@ -1281,18 +1282,18 @@
Returns
-
433    def seek(self, pos: int):
-434        """
-435        Set the position within the file in units of GRIB2 messages.
-436
-437        Parameters
-438        ----------
-439        pos
-440            The GRIB2 Message number to set the file pointer to.
-441        """
-442        if self._hasindex:
-443            self._filehandle.seek(self._index['sectionOffset'][0][pos])
-444            self.current_message = pos
+            
434    def seek(self, pos: int):
+435        """
+436        Set the position within the file in units of GRIB2 messages.
+437
+438        Parameters
+439        ----------
+440        pos
+441            The GRIB2 Message number to set the file pointer to.
+442        """
+443        if self._hasindex:
+444            self._filehandle.seek(self._index['sectionOffset'][0][pos])
+445            self.current_message = pos
 
@@ -1318,9 +1319,9 @@
Parameters
-
447    def tell(self):
-448        """Returns the position of the file in units of GRIB2 Messages."""
-449        return self.current_message
+            
448    def tell(self):
+449        """Returns the position of the file in units of GRIB2 Messages."""
+450        return self.current_message
 
@@ -1340,16 +1341,16 @@
Parameters
-
452    def select(self, **kwargs):
-453        """Select GRIB2 messages by `Grib2Message` attributes."""
-454        # TODO: Added ability to process multiple values for each keyword (attribute)
-455        idxs = []
-456        nkeys = len(kwargs.keys())
-457        for k,v in kwargs.items():
-458            for m in self._index['msg']:
-459                if hasattr(m,k) and getattr(m,k) == v: idxs.append(m._msgnum)
-460        idxs = np.array(idxs,dtype=np.int32)
-461        return [self._index['msg'][i] for i in [ii[0] for ii in collections.Counter(idxs).most_common() if ii[1] == nkeys]]
+            
453    def select(self, **kwargs):
+454        """Select GRIB2 messages by `Grib2Message` attributes."""
+455        # TODO: Added ability to process multiple values for each keyword (attribute)
+456        idxs = []
+457        nkeys = len(kwargs.keys())
+458        for k,v in kwargs.items():
+459            for m in self._index['msg']:
+460                if hasattr(m,k) and getattr(m,k) == v: idxs.append(m._msgnum)
+461        idxs = np.array(idxs,dtype=np.int32)
+462        return [self._index['msg'][i] for i in [ii[0] for ii in collections.Counter(idxs).most_common() if ii[1] == nkeys]]
 
@@ -1369,41 +1370,41 @@
Parameters
-
464    def write(self, msg):
-465        """
-466        Writes GRIB2 message object to file.
-467
-468        Parameters
-469        ----------
-470        msg
-471            GRIB2 message objects to write to file.
-472        """
-473        if isinstance(msg,list):
-474            for m in msg:
-475                self.write(m)
-476            return
-477
-478        if issubclass(msg.__class__,_Grib2Message):
-479            if hasattr(msg,'_msg'):
-480                self._filehandle.write(msg._msg)
-481            else:
-482                if msg._signature != msg._generate_signature():
-483                    msg.pack()
-484                    self._filehandle.write(msg._msg)
-485                else:
-486                    if hasattr(msg._data,'filehandle'):
-487                        msg._data.filehandle.seek(msg._data.offset)
-488                        self._filehandle.write(msg._data.filehandle.read(msg.section0[-1]))
-489                    else:
-490                        msg.pack()
-491                        self._filehandle.write(msg._msg)
-492            self.flush()
-493            self.size = os.path.getsize(self.name)
-494            self._filehandle.seek(self.size-msg.section0[-1])
-495            self._build_index()
-496        else:
-497            raise TypeError("msg must be a Grib2Message object.")
-498        return
+            
465    def write(self, msg):
+466        """
+467        Writes GRIB2 message object to file.
+468
+469        Parameters
+470        ----------
+471        msg
+472            GRIB2 message objects to write to file.
+473        """
+474        if isinstance(msg,list):
+475            for m in msg:
+476                self.write(m)
+477            return
+478
+479        if issubclass(msg.__class__,_Grib2Message):
+480            if hasattr(msg,'_msg'):
+481                self._filehandle.write(msg._msg)
+482            else:
+483                if msg._signature != msg._generate_signature():
+484                    msg.pack()
+485                    self._filehandle.write(msg._msg)
+486                else:
+487                    if hasattr(msg._data,'filehandle'):
+488                        msg._data.filehandle.seek(msg._data.offset)
+489                        self._filehandle.write(msg._data.filehandle.read(msg.section0[-1]))
+490                    else:
+491                        msg.pack()
+492                        self._filehandle.write(msg._msg)
+493            self.flush()
+494            self.size = os.path.getsize(self.name)
+495            self._filehandle.seek(self.size-msg.section0[-1])
+496            self._build_index()
+497        else:
+498            raise TypeError("msg must be a Grib2Message object.")
+499        return
 
@@ -1429,9 +1430,9 @@
Parameters
-
501    def flush(self):
-502        """Flush the file object buffer."""
-503        self._filehandle.flush()
+            
502    def flush(self):
+503        """Flush the file object buffer."""
+504        self._filehandle.flush()
 
@@ -1451,21 +1452,21 @@
Parameters
-
506    def levels_by_var(self, name: str):
-507        """
-508        Return a list of level strings given a variable shortName.
-509
-510        Parameters
-511        ----------
-512        name
-513            Grib2Message variable shortName
-514
-515        Returns
-516        -------
-517        levels_by_var
-518            A list of unique level strings.
-519        """
-520        return list(sorted(set([msg.level for msg in self.select(shortName=name)])))
+            
507    def levels_by_var(self, name: str):
+508        """
+509        Return a list of level strings given a variable shortName.
+510
+511        Parameters
+512        ----------
+513        name
+514            Grib2Message variable shortName
+515
+516        Returns
+517        -------
+518        levels_by_var
+519            A list of unique level strings.
+520        """
+521        return list(sorted(set([msg.level for msg in self.select(shortName=name)])))
 
@@ -1497,21 +1498,21 @@
Returns
-
523    def vars_by_level(self, level: str):
-524        """
-525        Return a list of variable shortName strings given a level.
-526
-527        Parameters
-528        ----------
-529        level
-530            Grib2Message variable level
-531
-532        Returns
-533        -------
-534        vars_by_level
-535            A list of unique variable shortName strings.
-536        """
-537        return list(sorted(set([msg.shortName for msg in self.select(level=level)])))
+            
524    def vars_by_level(self, level: str):
+525        """
+526        Return a list of variable shortName strings given a level.
+527
+528        Parameters
+529        ----------
+530        level
+531            Grib2Message variable level
+532
+533        Returns
+534        -------
+535        vars_by_level
+536            A list of unique variable shortName strings.
+537        """
+538        return list(sorted(set([msg.shortName for msg in self.select(level=level)])))
 
@@ -1572,152 +1573,152 @@
Returns
-
1640def interpolate(a, method: Union[int, str], grid_def_in, grid_def_out,
-1641                method_options=None, num_threads=1):
-1642    """
-1643    This is the module-level interpolation function.
-1644
-1645    This interfaces with the grib2io_interp component package that interfaces to
-1646    the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip).
-1647
-1648    Parameters
-1649    ----------
-1650    a : numpy.ndarray or tuple
-1651        Input data.  If `a` is a `numpy.ndarray`, scalar interpolation will be
-1652        performed.  If `a` is a `tuple`, then vector interpolation will be
-1653        performed with the assumption that u = a[0] and v = a[1] and are both
-1654        `numpy.ndarray`.
-1655
-1656        These data are expected to be in 2-dimensional form with shape (ny, nx)
-1657        or 3-dimensional (:, ny, nx) where the 1st dimension represents another
-1658        spatial, temporal, or classification (i.e. ensemble members) dimension.
-1659        The function will properly flatten the (ny,nx) dimensions into (nx * ny)
-1660        acceptable for input into the interpolation subroutines.
-1661    method
-1662        Interpolate method to use. This can either be an integer or string using
-1663        the following mapping:
-1664
-1665        | Interpolate Scheme | Integer Value |
-1666        | :---:              | :---:         |
-1667        | 'bilinear'         | 0             |
-1668        | 'bicubic'          | 1             |
-1669        | 'neighbor'         | 2             |
-1670        | 'budget'           | 3             |
-1671        | 'spectral'         | 4             |
-1672        | 'neighbor-budget'  | 6             |
-1673
-1674    grid_def_in : grib2io.Grib2GridDef
-1675        Grib2GridDef object for the input grid.
-1676    grid_def_out : grib2io.Grib2GridDef
-1677        Grib2GridDef object for the output grid or station points.
-1678    method_options : list of ints, optional
-1679        Interpolation options. See the NCEPLIBS-ip documentation for
-1680        more information on how these are used.
-1681    num_threads : int, optional
-1682        Number of OpenMP threads to use for interpolation. The default
-1683        value is 1. If grib2io_interp was not built with OpenMP, then
-1684        this keyword argument and value will have no impact.
-1685
-1686    Returns
-1687    -------
-1688    interpolate
-1689        Returns a `numpy.ndarray` when scalar interpolation is performed or a
-1690        `tuple` of `numpy.ndarray`s when vector interpolation is performed with
-1691        the assumptions that 0-index is the interpolated u and 1-index is the
-1692        interpolated v.
-1693    """
-1694    import grib2io_interp
-1695    from grib2io_interp import interpolate
-1696
-1697    prev_num_threads = 1
-1698    try:
-1699        import grib2io_interp
-1700        if grib2io_interp.has_openmp_support:
-1701            prev_num_threads = grib2io_interp.get_openmp_threads()
-1702            grib2io_interp.set_openmp_threads(num_threads)
-1703    except(AttributeError):
-1704        pass
-1705
-1706    if isinstance(method,int) and method not in _interp_schemes.values():
-1707        raise ValueError('Invalid interpolation method.')
-1708    elif isinstance(method,str):
-1709        if method in _interp_schemes.keys():
-1710            method = _interp_schemes[method]
-1711        else:
-1712            raise ValueError('Invalid interpolation method.')
-1713
-1714    if method_options is None:
-1715        method_options = np.zeros((20),dtype=np.int32)
-1716        if method in {3,6}:
-1717            method_options[0:2] = -1
-1718
-1719    ni = grid_def_in.npoints
-1720    no = grid_def_out.npoints
-1721
-1722    # Adjust shape of input array(s)
-1723    a,newshp = _adjust_array_shape_for_interp(a,grid_def_in,grid_def_out)
-1724
-1725    # Set lats and lons if stations, else create array for grids.
-1726    if grid_def_out.gdtn == -1:
-1727        rlat = np.array(grid_def_out.lats,dtype=np.float32)
-1728        rlon = np.array(grid_def_out.lons,dtype=np.float32)
-1729    else:
-1730        rlat = np.zeros((no),dtype=np.float32)
-1731        rlon = np.zeros((no),dtype=np.float32)
-1732
-1733    # Call interpolation subroutines according to type of a.
-1734    if isinstance(a,np.ndarray):
-1735        # Scalar
-1736        if np.any(np.isnan(a)):
-1737            ibi = np.zeros((a.shape[0]),dtype=np.int32)+1
-1738            li = np.where(np.isnan(a),0,1).astype(np.int8)
-1739        else:
-1740            ibi = np.zeros((a.shape[0]),dtype=np.int32)
-1741            li = np.zeros(a.shape,dtype=np.int8)
-1742        go = np.zeros((a.shape[0],no),dtype=np.float32)
-1743        no,ibo,lo,iret = interpolate.interpolate_scalar(method,method_options,
-1744                                                 grid_def_in.gdtn,grid_def_in.gdt,
-1745                                                 grid_def_out.gdtn,grid_def_out.gdt,
-1746                                                 ibi,li.T,a.T,go.T,rlat,rlon)
-1747        lo = lo.T.reshape(newshp)
-1748        out = go.reshape(newshp)
-1749        out = np.where(lo==0,np.nan,out)
-1750    elif isinstance(a,tuple):
-1751        # Vector
-1752        if np.any(np.isnan(a)):
-1753            ibi = np.zeros((a.shape[0]),dtype=np.int32)+1
-1754            li = np.where(np.isnan(a),0,1).astype(np.int8)
-1755        else:
-1756            ibi = np.zeros((a.shape[0]),dtype=np.int32)
-1757            li = np.zeros(a.shape,dtype=np.int8)
-1758        uo = np.zeros((a[0].shape[0],no),dtype=np.float32)
-1759        vo = np.zeros((a[1].shape[0],no),dtype=np.float32)
-1760        crot = np.ones((no),dtype=np.float32)
-1761        srot = np.zeros((no),dtype=np.float32)
-1762        no,ibo,lo,iret = interpolate.interpolate_vector(method,method_options,
-1763                                                 grid_def_in.gdtn,grid_def_in.gdt,
-1764                                                 grid_def_out.gdtn,grid_def_out.gdt,
-1765                                                 ibi,li.T,a[0].T,a[1].T,uo.T,vo.T,
-1766                                                 rlat,rlon,crot,srot)
-1767        del crot
-1768        del srot
-1769        lo = lo[:,0].reshape(newshp)
-1770        uo = uo.reshape(new)
-1771        vo = vo.reshape(new)
-1772        uo = np.where(lo==0,np.nan,uo)
-1773        vo = np.where(lo==0,np.nan,vo)
-1774        out = (uo,vo)
-1775
-1776    del rlat
-1777    del rlon
-1778
-1779    try:
-1780        if grib2io_interp.has_openmp_support:
-1781            grib2io_interp.set_openmp_threads(prev_num_threads)
-1782    except(AttributeError):
-1783        pass
-1784
-1785    return out
+            
1641def interpolate(a, method: Union[int, str], grid_def_in, grid_def_out,
+1642                method_options=None, num_threads=1):
+1643    """
+1644    This is the module-level interpolation function.
+1645
+1646    This interfaces with the grib2io_interp component package that interfaces to
+1647    the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip).
+1648
+1649    Parameters
+1650    ----------
+1651    a : numpy.ndarray or tuple
+1652        Input data.  If `a` is a `numpy.ndarray`, scalar interpolation will be
+1653        performed.  If `a` is a `tuple`, then vector interpolation will be
+1654        performed with the assumption that u = a[0] and v = a[1] and are both
+1655        `numpy.ndarray`.
+1656
+1657        These data are expected to be in 2-dimensional form with shape (ny, nx)
+1658        or 3-dimensional (:, ny, nx) where the 1st dimension represents another
+1659        spatial, temporal, or classification (i.e. ensemble members) dimension.
+1660        The function will properly flatten the (ny,nx) dimensions into (nx * ny)
+1661        acceptable for input into the interpolation subroutines.
+1662    method
+1663        Interpolate method to use. This can either be an integer or string using
+1664        the following mapping:
+1665
+1666        | Interpolate Scheme | Integer Value |
+1667        | :---:              | :---:         |
+1668        | 'bilinear'         | 0             |
+1669        | 'bicubic'          | 1             |
+1670        | 'neighbor'         | 2             |
+1671        | 'budget'           | 3             |
+1672        | 'spectral'         | 4             |
+1673        | 'neighbor-budget'  | 6             |
+1674
+1675    grid_def_in : grib2io.Grib2GridDef
+1676        Grib2GridDef object for the input grid.
+1677    grid_def_out : grib2io.Grib2GridDef
+1678        Grib2GridDef object for the output grid or station points.
+1679    method_options : list of ints, optional
+1680        Interpolation options. See the NCEPLIBS-ip documentation for
+1681        more information on how these are used.
+1682    num_threads : int, optional
+1683        Number of OpenMP threads to use for interpolation. The default
+1684        value is 1. If grib2io_interp was not built with OpenMP, then
+1685        this keyword argument and value will have no impact.
+1686
+1687    Returns
+1688    -------
+1689    interpolate
+1690        Returns a `numpy.ndarray` when scalar interpolation is performed or a
+1691        `tuple` of `numpy.ndarray`s when vector interpolation is performed with
+1692        the assumptions that 0-index is the interpolated u and 1-index is the
+1693        interpolated v.
+1694    """
+1695    import grib2io_interp
+1696    from grib2io_interp import interpolate
+1697
+1698    prev_num_threads = 1
+1699    try:
+1700        import grib2io_interp
+1701        if grib2io_interp.has_openmp_support:
+1702            prev_num_threads = grib2io_interp.get_openmp_threads()
+1703            grib2io_interp.set_openmp_threads(num_threads)
+1704    except(AttributeError):
+1705        pass
+1706
+1707    if isinstance(method,int) and method not in _interp_schemes.values():
+1708        raise ValueError('Invalid interpolation method.')
+1709    elif isinstance(method,str):
+1710        if method in _interp_schemes.keys():
+1711            method = _interp_schemes[method]
+1712        else:
+1713            raise ValueError('Invalid interpolation method.')
+1714
+1715    if method_options is None:
+1716        method_options = np.zeros((20),dtype=np.int32)
+1717        if method in {3,6}:
+1718            method_options[0:2] = -1
+1719
+1720    ni = grid_def_in.npoints
+1721    no = grid_def_out.npoints
+1722
+1723    # Adjust shape of input array(s)
+1724    a,newshp = _adjust_array_shape_for_interp(a,grid_def_in,grid_def_out)
+1725
+1726    # Set lats and lons if stations, else create array for grids.
+1727    if grid_def_out.gdtn == -1:
+1728        rlat = np.array(grid_def_out.lats,dtype=np.float32)
+1729        rlon = np.array(grid_def_out.lons,dtype=np.float32)
+1730    else:
+1731        rlat = np.zeros((no),dtype=np.float32)
+1732        rlon = np.zeros((no),dtype=np.float32)
+1733
+1734    # Call interpolation subroutines according to type of a.
+1735    if isinstance(a,np.ndarray):
+1736        # Scalar
+1737        if np.any(np.isnan(a)):
+1738            ibi = np.zeros((a.shape[0]),dtype=np.int32)+1
+1739            li = np.where(np.isnan(a),0,1).astype(np.int8)
+1740        else:
+1741            ibi = np.zeros((a.shape[0]),dtype=np.int32)
+1742            li = np.zeros(a.shape,dtype=np.int8)
+1743        go = np.zeros((a.shape[0],no),dtype=np.float32)
+1744        no,ibo,lo,iret = interpolate.interpolate_scalar(method,method_options,
+1745                                                 grid_def_in.gdtn,grid_def_in.gdt,
+1746                                                 grid_def_out.gdtn,grid_def_out.gdt,
+1747                                                 ibi,li.T,a.T,go.T,rlat,rlon)
+1748        lo = lo.T.reshape(newshp)
+1749        out = go.reshape(newshp)
+1750        out = np.where(lo==0,np.nan,out)
+1751    elif isinstance(a,tuple):
+1752        # Vector
+1753        if np.any(np.isnan(a)):
+1754            ibi = np.zeros((a.shape[0]),dtype=np.int32)+1
+1755            li = np.where(np.isnan(a),0,1).astype(np.int8)
+1756        else:
+1757            ibi = np.zeros((a.shape[0]),dtype=np.int32)
+1758            li = np.zeros(a.shape,dtype=np.int8)
+1759        uo = np.zeros((a[0].shape[0],no),dtype=np.float32)
+1760        vo = np.zeros((a[1].shape[0],no),dtype=np.float32)
+1761        crot = np.ones((no),dtype=np.float32)
+1762        srot = np.zeros((no),dtype=np.float32)
+1763        no,ibo,lo,iret = interpolate.interpolate_vector(method,method_options,
+1764                                                 grid_def_in.gdtn,grid_def_in.gdt,
+1765                                                 grid_def_out.gdtn,grid_def_out.gdt,
+1766                                                 ibi,li.T,a[0].T,a[1].T,uo.T,vo.T,
+1767                                                 rlat,rlon,crot,srot)
+1768        del crot
+1769        del srot
+1770        lo = lo[:,0].reshape(newshp)
+1771        uo = uo.reshape(new)
+1772        vo = vo.reshape(new)
+1773        uo = np.where(lo==0,np.nan,uo)
+1774        vo = np.where(lo==0,np.nan,vo)
+1775        out = (uo,vo)
+1776
+1777    del rlat
+1778    del rlon
+1779
+1780    try:
+1781        if grib2io_interp.has_openmp_support:
+1782            grib2io_interp.set_openmp_threads(prev_num_threads)
+1783    except(AttributeError):
+1784        pass
+1785
+1786    return out
 
@@ -1818,157 +1819,157 @@
Returns
-
1788def interpolate_to_stations(a, method, grid_def_in, lats, lons,
-1789                            method_options=None, num_threads=1):
-1790    """
-1791    Module-level interpolation function for interpolation to stations.
-1792
-1793    Interfaces with the grib2io_interp component package that interfaces to the
-1794    [NCEPLIBS-ip
-1795    library](https://github.com/NOAA-EMC/NCEPLIBS-ip). It supports scalar and
-1796    vector interpolation according to the type of object a.
-1797
-1798    Parameters
-1799    ----------
-1800    a : numpy.ndarray or tuple
-1801        Input data.  If `a` is a `numpy.ndarray`, scalar interpolation will be
-1802        performed.  If `a` is a `tuple`, then vector interpolation will be
-1803        performed with the assumption that u = a[0] and v = a[1] and are both
-1804        `numpy.ndarray`.
-1805
-1806        These data are expected to be in 2-dimensional form with shape (ny, nx)
-1807        or 3-dimensional (:, ny, nx) where the 1st dimension represents another
-1808        spatial, temporal, or classification (i.e. ensemble members) dimension.
-1809        The function will properly flatten the (ny,nx) dimensions into (nx * ny)
-1810        acceptable for input into the interpolation subroutines.
-1811    method
-1812        Interpolate method to use. This can either be an integer or string using
-1813        the following mapping:
-1814
-1815        | Interpolate Scheme | Integer Value |
-1816        | :---:              | :---:         |
-1817        | 'bilinear'         | 0             |
-1818        | 'bicubic'          | 1             |
-1819        | 'neighbor'         | 2             |
-1820        | 'budget'           | 3             |
-1821        | 'spectral'         | 4             |
-1822        | 'neighbor-budget'  | 6             |
-1823
-1824    grid_def_in : grib2io.Grib2GridDef
-1825        Grib2GridDef object for the input grid.
-1826    lats : numpy.ndarray or list
-1827        Latitudes for station points
-1828    lons : numpy.ndarray or list
-1829        Longitudes for station points
-1830    method_options : list of ints, optional
-1831        Interpolation options. See the NCEPLIBS-ip documentation for
-1832        more information on how these are used.
-1833    num_threads : int, optional
-1834        Number of OpenMP threads to use for interpolation. The default
-1835        value is 1. If grib2io_interp was not built with OpenMP, then
-1836        this keyword argument and value will have no impact.
-1837
-1838    Returns
-1839    -------
-1840    interpolate_to_stations
-1841        Returns a `numpy.ndarray` when scalar interpolation is performed or a
-1842        `tuple` of `numpy.ndarray`s when vector interpolation is performed with
-1843        the assumptions that 0-index is the interpolated u and 1-index is the
-1844        interpolated v.
-1845    """
-1846    import grib2io_interp
-1847    from grib2io_interp import interpolate
-1848
-1849    prev_num_threads = 1
-1850    try:
-1851        import grib2io_interp
-1852        if grib2io_interp.has_openmp_support:
-1853            prev_num_threads = grib2io_interp.get_openmp_threads()
-1854            grib2io_interp.set_openmp_threads(num_threads)
-1855    except(AttributeError):
-1856        pass
-1857
-1858    if isinstance(method,int) and method not in _interp_schemes.values():
-1859        raise ValueError('Invalid interpolation method.')
-1860    elif isinstance(method,str):
-1861        if method in _interp_schemes.keys():
-1862            method = _interp_schemes[method]
-1863        else:
-1864            raise ValueError('Invalid interpolation method.')
-1865
-1866    if method_options is None:
-1867        method_options = np.zeros((20),dtype=np.int32)
-1868        if method in {3,6}:
-1869            method_options[0:2] = -1
-1870
-1871    # Check lats and lons
-1872    if isinstance(lats,list):
-1873        nlats = len(lats)
-1874    elif isinstance(lats,np.ndarray) and len(lats.shape) == 1:
-1875        nlats = lats.shape[0]
-1876    else:
-1877        raise ValueError('Station latitudes must be a list or 1-D NumPy array.')
-1878    if isinstance(lons,list):
-1879        nlons = len(lons)
-1880    elif isinstance(lons,np.ndarray) and len(lons.shape) == 1:
-1881        nlons = lons.shape[0]
-1882    else:
-1883        raise ValueError('Station longitudes must be a list or 1-D NumPy array.')
-1884    if nlats != nlons:
-1885        raise ValueError('Station lats and lons must be same size.')
-1886
-1887    ni = grid_def_in.npoints
-1888    no = nlats
-1889
-1890    # Adjust shape of input array(s)
-1891    a,newshp = _adjust_array_shape_for_interp_stations(a,grid_def_in,no)
-1892
-1893    # Set lats and lons if stations
-1894    rlat = np.array(lats,dtype=np.float32)
-1895    rlon = np.array(lons,dtype=np.float32)
-1896
-1897    # Use gdtn = -1 for stations and an empty template array
-1898    gdtn = -1
-1899    gdt = np.zeros((200),dtype=np.int32)
-1900
-1901    # Call interpolation subroutines according to type of a.
-1902    if isinstance(a,np.ndarray):
-1903        # Scalar
-1904        ibi = np.zeros((a.shape[0]),dtype=np.int32)
-1905        li = np.zeros(a.shape,dtype=np.int32)
-1906        go = np.zeros((a.shape[0],no),dtype=np.float32)
-1907        no,ibo,lo,iret = interpolate.interpolate_scalar(method,method_options,
-1908                                                 grid_def_in.gdtn,grid_def_in.gdt,
-1909                                                 gdtn,gdt,
-1910                                                 ibi,li.T,a.T,go.T,rlat,rlon)
-1911        out = go.reshape(newshp)
-1912    elif isinstance(a,tuple):
-1913        # Vector
-1914        ibi = np.zeros((a[0].shape[0]),dtype=np.int32)
-1915        li = np.zeros(a[0].shape,dtype=np.int32)
-1916        uo = np.zeros((a[0].shape[0],no),dtype=np.float32)
-1917        vo = np.zeros((a[1].shape[0],no),dtype=np.float32)
-1918        crot = np.ones((no),dtype=np.float32)
-1919        srot = np.zeros((no),dtype=np.float32)
-1920        no,ibo,lo,iret = interpolate.interpolate_vector(method,method_options,
-1921                                                 grid_def_in.gdtn,grid_def_in.gdt,
-1922                                                 gdtn,gdt,
-1923                                                 ibi,li.T,a[0].T,a[1].T,uo.T,vo.T,
-1924                                                 rlat,rlon,crot,srot)
-1925        del crot
-1926        del srot
-1927        out = (uo.reshape(newshp),vo.reshape(newshp))
-1928
-1929    del rlat
-1930    del rlon
-1931
-1932    try:
-1933        if grib2io_interp.has_openmp_support:
-1934            grib2io_interp.set_openmp_threads(prev_num_threads)
-1935    except(AttributeError):
-1936        pass
-1937
-1938    return out
+            
1789def interpolate_to_stations(a, method, grid_def_in, lats, lons,
+1790                            method_options=None, num_threads=1):
+1791    """
+1792    Module-level interpolation function for interpolation to stations.
+1793
+1794    Interfaces with the grib2io_interp component package that interfaces to the
+1795    [NCEPLIBS-ip
+1796    library](https://github.com/NOAA-EMC/NCEPLIBS-ip). It supports scalar and
+1797    vector interpolation according to the type of object a.
+1798
+1799    Parameters
+1800    ----------
+1801    a : numpy.ndarray or tuple
+1802        Input data.  If `a` is a `numpy.ndarray`, scalar interpolation will be
+1803        performed.  If `a` is a `tuple`, then vector interpolation will be
+1804        performed with the assumption that u = a[0] and v = a[1] and are both
+1805        `numpy.ndarray`.
+1806
+1807        These data are expected to be in 2-dimensional form with shape (ny, nx)
+1808        or 3-dimensional (:, ny, nx) where the 1st dimension represents another
+1809        spatial, temporal, or classification (i.e. ensemble members) dimension.
+1810        The function will properly flatten the (ny,nx) dimensions into (nx * ny)
+1811        acceptable for input into the interpolation subroutines.
+1812    method
+1813        Interpolate method to use. This can either be an integer or string using
+1814        the following mapping:
+1815
+1816        | Interpolate Scheme | Integer Value |
+1817        | :---:              | :---:         |
+1818        | 'bilinear'         | 0             |
+1819        | 'bicubic'          | 1             |
+1820        | 'neighbor'         | 2             |
+1821        | 'budget'           | 3             |
+1822        | 'spectral'         | 4             |
+1823        | 'neighbor-budget'  | 6             |
+1824
+1825    grid_def_in : grib2io.Grib2GridDef
+1826        Grib2GridDef object for the input grid.
+1827    lats : numpy.ndarray or list
+1828        Latitudes for station points
+1829    lons : numpy.ndarray or list
+1830        Longitudes for station points
+1831    method_options : list of ints, optional
+1832        Interpolation options. See the NCEPLIBS-ip documentation for
+1833        more information on how these are used.
+1834    num_threads : int, optional
+1835        Number of OpenMP threads to use for interpolation. The default
+1836        value is 1. If grib2io_interp was not built with OpenMP, then
+1837        this keyword argument and value will have no impact.
+1838
+1839    Returns
+1840    -------
+1841    interpolate_to_stations
+1842        Returns a `numpy.ndarray` when scalar interpolation is performed or a
+1843        `tuple` of `numpy.ndarray`s when vector interpolation is performed with
+1844        the assumptions that 0-index is the interpolated u and 1-index is the
+1845        interpolated v.
+1846    """
+1847    import grib2io_interp
+1848    from grib2io_interp import interpolate
+1849
+1850    prev_num_threads = 1
+1851    try:
+1852        import grib2io_interp
+1853        if grib2io_interp.has_openmp_support:
+1854            prev_num_threads = grib2io_interp.get_openmp_threads()
+1855            grib2io_interp.set_openmp_threads(num_threads)
+1856    except(AttributeError):
+1857        pass
+1858
+1859    if isinstance(method,int) and method not in _interp_schemes.values():
+1860        raise ValueError('Invalid interpolation method.')
+1861    elif isinstance(method,str):
+1862        if method in _interp_schemes.keys():
+1863            method = _interp_schemes[method]
+1864        else:
+1865            raise ValueError('Invalid interpolation method.')
+1866
+1867    if method_options is None:
+1868        method_options = np.zeros((20),dtype=np.int32)
+1869        if method in {3,6}:
+1870            method_options[0:2] = -1
+1871
+1872    # Check lats and lons
+1873    if isinstance(lats,list):
+1874        nlats = len(lats)
+1875    elif isinstance(lats,np.ndarray) and len(lats.shape) == 1:
+1876        nlats = lats.shape[0]
+1877    else:
+1878        raise ValueError('Station latitudes must be a list or 1-D NumPy array.')
+1879    if isinstance(lons,list):
+1880        nlons = len(lons)
+1881    elif isinstance(lons,np.ndarray) and len(lons.shape) == 1:
+1882        nlons = lons.shape[0]
+1883    else:
+1884        raise ValueError('Station longitudes must be a list or 1-D NumPy array.')
+1885    if nlats != nlons:
+1886        raise ValueError('Station lats and lons must be same size.')
+1887
+1888    ni = grid_def_in.npoints
+1889    no = nlats
+1890
+1891    # Adjust shape of input array(s)
+1892    a,newshp = _adjust_array_shape_for_interp_stations(a,grid_def_in,no)
+1893
+1894    # Set lats and lons if stations
+1895    rlat = np.array(lats,dtype=np.float32)
+1896    rlon = np.array(lons,dtype=np.float32)
+1897
+1898    # Use gdtn = -1 for stations and an empty template array
+1899    gdtn = -1
+1900    gdt = np.zeros((200),dtype=np.int32)
+1901
+1902    # Call interpolation subroutines according to type of a.
+1903    if isinstance(a,np.ndarray):
+1904        # Scalar
+1905        ibi = np.zeros((a.shape[0]),dtype=np.int32)
+1906        li = np.zeros(a.shape,dtype=np.int32)
+1907        go = np.zeros((a.shape[0],no),dtype=np.float32)
+1908        no,ibo,lo,iret = interpolate.interpolate_scalar(method,method_options,
+1909                                                 grid_def_in.gdtn,grid_def_in.gdt,
+1910                                                 gdtn,gdt,
+1911                                                 ibi,li.T,a.T,go.T,rlat,rlon)
+1912        out = go.reshape(newshp)
+1913    elif isinstance(a,tuple):
+1914        # Vector
+1915        ibi = np.zeros((a[0].shape[0]),dtype=np.int32)
+1916        li = np.zeros(a[0].shape,dtype=np.int32)
+1917        uo = np.zeros((a[0].shape[0],no),dtype=np.float32)
+1918        vo = np.zeros((a[1].shape[0],no),dtype=np.float32)
+1919        crot = np.ones((no),dtype=np.float32)
+1920        srot = np.zeros((no),dtype=np.float32)
+1921        no,ibo,lo,iret = interpolate.interpolate_vector(method,method_options,
+1922                                                 grid_def_in.gdtn,grid_def_in.gdt,
+1923                                                 gdtn,gdt,
+1924                                                 ibi,li.T,a[0].T,a[1].T,uo.T,vo.T,
+1925                                                 rlat,rlon,crot,srot)
+1926        del crot
+1927        del srot
+1928        out = (uo.reshape(newshp),vo.reshape(newshp))
+1929
+1930    del rlat
+1931    del rlon
+1932
+1933    try:
+1934        if grib2io_interp.has_openmp_support:
+1935            grib2io_interp.set_openmp_threads(prev_num_threads)
+1936    except(AttributeError):
+1937        pass
+1938
+1939    return out
 
@@ -2073,108 +2074,108 @@
Returns
-
540class Grib2Message:
-541    """
-542    Creation class for a GRIB2 message.
-543
-544    This class returns a dynamically-created Grib2Message object that
-545    inherits from `_Grib2Message` and grid, product, data representation
-546    template classes according to the template numbers for the respective
-547    sections. If `section3`, `section4`, or `section5` are omitted, then
-548    the appropriate keyword arguments for the template number `gdtn=`,
-549    `pdtn=`, or `drtn=` must be provided.
-550
-551    Parameters
-552    ----------
-553    section0
-554        GRIB2 section 0 array.
-555    section1
-556        GRIB2 section 1 array.
-557    section2
-558        Local Use section data.
-559    section3
-560        GRIB2 section 3 array.
-561    section4
-562        GRIB2 section 4 array.
-563    section5
-564        GRIB2 section 5 array.
-565
-566    Returns
-567    -------
-568    Msg
-569        A dynamically-create Grib2Message object that inherits from
-570        _Grib2Message, a grid definition template class, product
-571        definition template class, and a data representation template
-572        class.
-573    """
-574    def __new__(self, section0: NDArray = np.array([struct.unpack('>I',b'GRIB')[0],0,0,2,0]),
-575                      section1: NDArray = np.zeros((13),dtype=np.int64),
-576                      section2: Optional[bytes] = None,
-577                      section3: Optional[NDArray] = None,
-578                      section4: Optional[NDArray] = None,
-579                      section5: Optional[NDArray] = None, *args, **kwargs):
-580
-581        if np.all(section1==0):
-582            try:
-583                # Python >= 3.10
-584                section1[5:11] = datetime.datetime.fromtimestamp(0, datetime.UTC).timetuple()[:6]
-585            except(AttributeError):
-586                # Python < 3.10
-587                section1[5:11] = datetime.datetime.utcfromtimestamp(0).timetuple()[:6]
-588
-589        bases = list()
-590        if section3 is None:
-591            if 'gdtn' in kwargs.keys():
-592                gdtn = kwargs['gdtn']
-593                Gdt = templates.gdt_class_by_gdtn(gdtn)
-594                bases.append(Gdt)
-595                section3 = np.zeros((Gdt._len+5),dtype=np.int64)
-596                section3[4] = gdtn
-597            else:
-598                raise ValueError("Must provide GRIB2 Grid Definition Template Number or section 3 array")
-599        else:
-600            gdtn = section3[4]
-601            Gdt = templates.gdt_class_by_gdtn(gdtn)
-602            bases.append(Gdt)
-603
-604        if section4 is None:
-605            if 'pdtn' in kwargs.keys():
-606                pdtn = kwargs['pdtn']
-607                Pdt = templates.pdt_class_by_pdtn(pdtn)
-608                bases.append(Pdt)
-609                section4 = np.zeros((Pdt._len+2),dtype=np.int64)
-610                section4[1] = pdtn
-611            else:
-612                raise ValueError("Must provide GRIB2 Production Definition Template Number or section 4 array")
-613        else:
-614            pdtn = section4[1]
-615            Pdt = templates.pdt_class_by_pdtn(pdtn)
-616            bases.append(Pdt)
-617
-618        if section5 is None:
-619            if 'drtn' in kwargs.keys():
-620                drtn = kwargs['drtn']
-621                Drt = templates.drt_class_by_drtn(drtn)
-622                bases.append(Drt)
-623                section5 = np.zeros((Drt._len+2),dtype=np.int64)
-624                section5[1] = drtn
-625            else:
-626                raise ValueError("Must provide GRIB2 Data Representation Template Number or section 5 array")
-627        else:
-628            drtn = section5[1]
-629            Drt = templates.drt_class_by_drtn(drtn)
-630            bases.append(Drt)
-631
-632        # attempt to use existing Msg class if it has already been made with gdtn,pdtn,drtn combo
-633        try:
-634            Msg = _msg_class_store[f"{gdtn}:{pdtn}:{drtn}"]
-635        except KeyError:
-636            @dataclass(init=False, repr=False)
-637            class Msg(_Grib2Message, *bases):
-638                pass
-639            _msg_class_store[f"{gdtn}:{pdtn}:{drtn}"] = Msg
-640
-641        return Msg(section0, section1, section2, section3, section4, section5, *args)
+            
541class Grib2Message:
+542    """
+543    Creation class for a GRIB2 message.
+544
+545    This class returns a dynamically-created Grib2Message object that
+546    inherits from `_Grib2Message` and grid, product, data representation
+547    template classes according to the template numbers for the respective
+548    sections. If `section3`, `section4`, or `section5` are omitted, then
+549    the appropriate keyword arguments for the template number `gdtn=`,
+550    `pdtn=`, or `drtn=` must be provided.
+551
+552    Parameters
+553    ----------
+554    section0
+555        GRIB2 section 0 array.
+556    section1
+557        GRIB2 section 1 array.
+558    section2
+559        Local Use section data.
+560    section3
+561        GRIB2 section 3 array.
+562    section4
+563        GRIB2 section 4 array.
+564    section5
+565        GRIB2 section 5 array.
+566
+567    Returns
+568    -------
+569    Msg
+570        A dynamically-create Grib2Message object that inherits from
+571        _Grib2Message, a grid definition template class, product
+572        definition template class, and a data representation template
+573        class.
+574    """
+575    def __new__(self, section0: NDArray = np.array([struct.unpack('>I',b'GRIB')[0],0,0,2,0]),
+576                      section1: NDArray = np.zeros((13),dtype=np.int64),
+577                      section2: Optional[bytes] = None,
+578                      section3: Optional[NDArray] = None,
+579                      section4: Optional[NDArray] = None,
+580                      section5: Optional[NDArray] = None, *args, **kwargs):
+581
+582        if np.all(section1==0):
+583            try:
+584                # Python >= 3.10
+585                section1[5:11] = datetime.datetime.fromtimestamp(0, datetime.UTC).timetuple()[:6]
+586            except(AttributeError):
+587                # Python < 3.10
+588                section1[5:11] = datetime.datetime.utcfromtimestamp(0).timetuple()[:6]
+589
+590        bases = list()
+591        if section3 is None:
+592            if 'gdtn' in kwargs.keys():
+593                gdtn = kwargs['gdtn']
+594                Gdt = templates.gdt_class_by_gdtn(gdtn)
+595                bases.append(Gdt)
+596                section3 = np.zeros((Gdt._len+5),dtype=np.int64)
+597                section3[4] = gdtn
+598            else:
+599                raise ValueError("Must provide GRIB2 Grid Definition Template Number or section 3 array")
+600        else:
+601            gdtn = section3[4]
+602            Gdt = templates.gdt_class_by_gdtn(gdtn)
+603            bases.append(Gdt)
+604
+605        if section4 is None:
+606            if 'pdtn' in kwargs.keys():
+607                pdtn = kwargs['pdtn']
+608                Pdt = templates.pdt_class_by_pdtn(pdtn)
+609                bases.append(Pdt)
+610                section4 = np.zeros((Pdt._len+2),dtype=np.int64)
+611                section4[1] = pdtn
+612            else:
+613                raise ValueError("Must provide GRIB2 Production Definition Template Number or section 4 array")
+614        else:
+615            pdtn = section4[1]
+616            Pdt = templates.pdt_class_by_pdtn(pdtn)
+617            bases.append(Pdt)
+618
+619        if section5 is None:
+620            if 'drtn' in kwargs.keys():
+621                drtn = kwargs['drtn']
+622                Drt = templates.drt_class_by_drtn(drtn)
+623                bases.append(Drt)
+624                section5 = np.zeros((Drt._len+2),dtype=np.int64)
+625                section5[1] = drtn
+626            else:
+627                raise ValueError("Must provide GRIB2 Data Representation Template Number or section 5 array")
+628        else:
+629            drtn = section5[1]
+630            Drt = templates.drt_class_by_drtn(drtn)
+631            bases.append(Drt)
+632
+633        # attempt to use existing Msg class if it has already been made with gdtn,pdtn,drtn combo
+634        try:
+635            Msg = _msg_class_store[f"{gdtn}:{pdtn}:{drtn}"]
+636        except KeyError:
+637            @dataclass(init=False, repr=False)
+638            class Msg(_Grib2Message, *bases):
+639                pass
+640            _msg_class_store[f"{gdtn}:{pdtn}:{drtn}"] = Msg
+641
+642        return Msg(section0, section1, section2, section3, section4, section5, *args)
 
@@ -2222,852 +2223,852 @@
Returns
-
 644@dataclass
- 645class _Grib2Message:
- 646    """
- 647    GRIB2 Message base class.
- 648    """
- 649    # GRIB2 Sections
- 650    section0: NDArray = field(init=True,repr=False)
- 651    section1: NDArray = field(init=True,repr=False)
- 652    section2: bytes = field(init=True,repr=False)
- 653    section3: NDArray = field(init=True,repr=False)
- 654    section4: NDArray = field(init=True,repr=False)
- 655    section5: NDArray = field(init=True,repr=False)
- 656    bitMapFlag: templates.Grib2Metadata = field(init=True,repr=False,default=255)
- 657
- 658    # Section 0 looked up attributes
- 659    indicatorSection: NDArray = field(init=False,repr=False,default=templates.IndicatorSection())
- 660    discipline: templates.Grib2Metadata = field(init=False,repr=False,default=templates.Discipline())
- 661
- 662    # Section 1 looked up attributes
- 663    identificationSection: NDArray = field(init=False,repr=False,default=templates.IdentificationSection())
- 664    originatingCenter: templates.Grib2Metadata = field(init=False,repr=False,default=templates.OriginatingCenter())
- 665    originatingSubCenter: templates.Grib2Metadata = field(init=False,repr=False,default=templates.OriginatingSubCenter())
- 666    masterTableInfo: templates.Grib2Metadata = field(init=False,repr=False,default=templates.MasterTableInfo())
- 667    localTableInfo: templates.Grib2Metadata = field(init=False,repr=False,default=templates.LocalTableInfo())
- 668    significanceOfReferenceTime: templates.Grib2Metadata = field(init=False,repr=False,default=templates.SignificanceOfReferenceTime())
- 669    year: int = field(init=False,repr=False,default=templates.Year())
- 670    month: int = field(init=False,repr=False,default=templates.Month())
- 671    day: int = field(init=False,repr=False,default=templates.Day())
- 672    hour: int = field(init=False,repr=False,default=templates.Hour())
- 673    minute: int = field(init=False,repr=False,default=templates.Minute())
- 674    second: int = field(init=False,repr=False,default=templates.Second())
- 675    refDate: datetime.datetime = field(init=False,repr=False,default=templates.RefDate())
- 676    productionStatus: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ProductionStatus())
- 677    typeOfData: templates.Grib2Metadata = field(init=False,repr=False,default=templates.TypeOfData())
- 678
- 679    # Section 3 looked up common attributes.  Other looked up attributes are available according
- 680    # to the Grid Definition Template.
- 681    gridDefinitionSection: NDArray = field(init=False,repr=False,default=templates.GridDefinitionSection())
- 682    sourceOfGridDefinition: int = field(init=False,repr=False,default=templates.SourceOfGridDefinition())
- 683    numberOfDataPoints: int = field(init=False,repr=False,default=templates.NumberOfDataPoints())
- 684    interpretationOfListOfNumbers: templates.Grib2Metadata = field(init=False,repr=False,default=templates.InterpretationOfListOfNumbers())
- 685    gridDefinitionTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.GridDefinitionTemplateNumber())
- 686    gridDefinitionTemplate: list = field(init=False,repr=False,default=templates.GridDefinitionTemplate())
- 687    _earthparams: dict = field(init=False,repr=False,default=templates.EarthParams())
- 688    _dxsign: float = field(init=False,repr=False,default=templates.DxSign())
- 689    _dysign: float = field(init=False,repr=False,default=templates.DySign())
- 690    _llscalefactor: float = field(init=False,repr=False,default=templates.LLScaleFactor())
- 691    _lldivisor: float = field(init=False,repr=False,default=templates.LLDivisor())
- 692    _xydivisor: float = field(init=False,repr=False,default=templates.XYDivisor())
- 693    shapeOfEarth: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ShapeOfEarth())
- 694    earthShape: str = field(init=False,repr=False,default=templates.EarthShape())
- 695    earthRadius: float = field(init=False,repr=False,default=templates.EarthRadius())
- 696    earthMajorAxis: float = field(init=False,repr=False,default=templates.EarthMajorAxis())
- 697    earthMinorAxis: float = field(init=False,repr=False,default=templates.EarthMinorAxis())
- 698    resolutionAndComponentFlags: list = field(init=False,repr=False,default=templates.ResolutionAndComponentFlags())
- 699    ny: int = field(init=False,repr=False,default=templates.Ny())
- 700    nx: int = field(init=False,repr=False,default=templates.Nx())
- 701    scanModeFlags: list = field(init=False,repr=False,default=templates.ScanModeFlags())
- 702    projParameters: dict = field(init=False,repr=False,default=templates.ProjParameters())
- 703
- 704    # Section 4
- 705    productDefinitionTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ProductDefinitionTemplateNumber())
- 706    productDefinitionTemplate: NDArray = field(init=False,repr=False,default=templates.ProductDefinitionTemplate())
- 707
- 708    # Section 5 looked up common attributes.  Other looked up attributes are
- 709    # available according to the Data Representation Template.
- 710    numberOfPackedValues: int = field(init=False,repr=False,default=templates.NumberOfPackedValues())
- 711    dataRepresentationTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.DataRepresentationTemplateNumber())
- 712    dataRepresentationTemplate: list = field(init=False,repr=False,default=templates.DataRepresentationTemplate())
- 713    typeOfValues: templates.Grib2Metadata = field(init=False,repr=False,default=templates.TypeOfValues())
- 714
- 715    def __post_init__(self):
- 716        """Set some attributes after init."""
- 717        self._auto_nans = _AUTO_NANS
- 718        self._coordlist = None
- 719        self._data = None
- 720        self._deflist = None
- 721        self._msgnum = -1
- 722        self._ondiskarray = None
- 723        self._orig_section5 = np.copy(self.section5)
- 724        self._signature = self._generate_signature()
- 725        try:
- 726            self._sha1_section3 = hashlib.sha1(self.section3).hexdigest()
- 727        except(TypeError):
- 728            pass
- 729        self.bitMapFlag = templates.Grib2Metadata(self.bitMapFlag,table='6.0')
- 730        self.bitmap = None
- 731
+            
 645@dataclass
+ 646class _Grib2Message:
+ 647    """
+ 648    GRIB2 Message base class.
+ 649    """
+ 650    # GRIB2 Sections
+ 651    section0: NDArray = field(init=True,repr=False)
+ 652    section1: NDArray = field(init=True,repr=False)
+ 653    section2: bytes = field(init=True,repr=False)
+ 654    section3: NDArray = field(init=True,repr=False)
+ 655    section4: NDArray = field(init=True,repr=False)
+ 656    section5: NDArray = field(init=True,repr=False)
+ 657    bitMapFlag: templates.Grib2Metadata = field(init=True,repr=False,default=255)
+ 658
+ 659    # Section 0 looked up attributes
+ 660    indicatorSection: NDArray = field(init=False,repr=False,default=templates.IndicatorSection())
+ 661    discipline: templates.Grib2Metadata = field(init=False,repr=False,default=templates.Discipline())
+ 662
+ 663    # Section 1 looked up attributes
+ 664    identificationSection: NDArray = field(init=False,repr=False,default=templates.IdentificationSection())
+ 665    originatingCenter: templates.Grib2Metadata = field(init=False,repr=False,default=templates.OriginatingCenter())
+ 666    originatingSubCenter: templates.Grib2Metadata = field(init=False,repr=False,default=templates.OriginatingSubCenter())
+ 667    masterTableInfo: templates.Grib2Metadata = field(init=False,repr=False,default=templates.MasterTableInfo())
+ 668    localTableInfo: templates.Grib2Metadata = field(init=False,repr=False,default=templates.LocalTableInfo())
+ 669    significanceOfReferenceTime: templates.Grib2Metadata = field(init=False,repr=False,default=templates.SignificanceOfReferenceTime())
+ 670    year: int = field(init=False,repr=False,default=templates.Year())
+ 671    month: int = field(init=False,repr=False,default=templates.Month())
+ 672    day: int = field(init=False,repr=False,default=templates.Day())
+ 673    hour: int = field(init=False,repr=False,default=templates.Hour())
+ 674    minute: int = field(init=False,repr=False,default=templates.Minute())
+ 675    second: int = field(init=False,repr=False,default=templates.Second())
+ 676    refDate: datetime.datetime = field(init=False,repr=False,default=templates.RefDate())
+ 677    productionStatus: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ProductionStatus())
+ 678    typeOfData: templates.Grib2Metadata = field(init=False,repr=False,default=templates.TypeOfData())
+ 679
+ 680    # Section 3 looked up common attributes.  Other looked up attributes are available according
+ 681    # to the Grid Definition Template.
+ 682    gridDefinitionSection: NDArray = field(init=False,repr=False,default=templates.GridDefinitionSection())
+ 683    sourceOfGridDefinition: int = field(init=False,repr=False,default=templates.SourceOfGridDefinition())
+ 684    numberOfDataPoints: int = field(init=False,repr=False,default=templates.NumberOfDataPoints())
+ 685    interpretationOfListOfNumbers: templates.Grib2Metadata = field(init=False,repr=False,default=templates.InterpretationOfListOfNumbers())
+ 686    gridDefinitionTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.GridDefinitionTemplateNumber())
+ 687    gridDefinitionTemplate: list = field(init=False,repr=False,default=templates.GridDefinitionTemplate())
+ 688    _earthparams: dict = field(init=False,repr=False,default=templates.EarthParams())
+ 689    _dxsign: float = field(init=False,repr=False,default=templates.DxSign())
+ 690    _dysign: float = field(init=False,repr=False,default=templates.DySign())
+ 691    _llscalefactor: float = field(init=False,repr=False,default=templates.LLScaleFactor())
+ 692    _lldivisor: float = field(init=False,repr=False,default=templates.LLDivisor())
+ 693    _xydivisor: float = field(init=False,repr=False,default=templates.XYDivisor())
+ 694    shapeOfEarth: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ShapeOfEarth())
+ 695    earthShape: str = field(init=False,repr=False,default=templates.EarthShape())
+ 696    earthRadius: float = field(init=False,repr=False,default=templates.EarthRadius())
+ 697    earthMajorAxis: float = field(init=False,repr=False,default=templates.EarthMajorAxis())
+ 698    earthMinorAxis: float = field(init=False,repr=False,default=templates.EarthMinorAxis())
+ 699    resolutionAndComponentFlags: list = field(init=False,repr=False,default=templates.ResolutionAndComponentFlags())
+ 700    ny: int = field(init=False,repr=False,default=templates.Ny())
+ 701    nx: int = field(init=False,repr=False,default=templates.Nx())
+ 702    scanModeFlags: list = field(init=False,repr=False,default=templates.ScanModeFlags())
+ 703    projParameters: dict = field(init=False,repr=False,default=templates.ProjParameters())
+ 704
+ 705    # Section 4
+ 706    productDefinitionTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ProductDefinitionTemplateNumber())
+ 707    productDefinitionTemplate: NDArray = field(init=False,repr=False,default=templates.ProductDefinitionTemplate())
+ 708
+ 709    # Section 5 looked up common attributes.  Other looked up attributes are
+ 710    # available according to the Data Representation Template.
+ 711    numberOfPackedValues: int = field(init=False,repr=False,default=templates.NumberOfPackedValues())
+ 712    dataRepresentationTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.DataRepresentationTemplateNumber())
+ 713    dataRepresentationTemplate: list = field(init=False,repr=False,default=templates.DataRepresentationTemplate())
+ 714    typeOfValues: templates.Grib2Metadata = field(init=False,repr=False,default=templates.TypeOfValues())
+ 715
+ 716    def __post_init__(self):
+ 717        """Set some attributes after init."""
+ 718        self._auto_nans = _AUTO_NANS
+ 719        self._coordlist = None
+ 720        self._data = None
+ 721        self._deflist = None
+ 722        self._msgnum = -1
+ 723        self._ondiskarray = None
+ 724        self._orig_section5 = np.copy(self.section5)
+ 725        self._signature = self._generate_signature()
+ 726        try:
+ 727            self._sha1_section3 = hashlib.sha1(self.section3).hexdigest()
+ 728        except(TypeError):
+ 729            pass
+ 730        self.bitMapFlag = templates.Grib2Metadata(self.bitMapFlag,table='6.0')
+ 731        self.bitmap = None
  732
- 733    @property
- 734    def _isNDFD(self):
- 735        """Check if GRIB2 message is from NWS NDFD"""
- 736        return np.all(self.section1[0:2]==[8,65535])
- 737
+ 733
+ 734    @property
+ 735    def _isNDFD(self):
+ 736        """Check if GRIB2 message is from NWS NDFD"""
+ 737        return np.all(self.section1[0:2]==[8,65535])
  738
- 739    @property
- 740    def gdtn(self):
- 741        """Return Grid Definition Template Number"""
- 742        return self.section3[4]
- 743
+ 739
+ 740    @property
+ 741    def gdtn(self):
+ 742        """Return Grid Definition Template Number"""
+ 743        return self.section3[4]
  744
- 745    @property
- 746    def gdt(self):
- 747        """Return Grid Definition Template."""
- 748        return self.gridDefinitionTemplate
- 749
+ 745
+ 746    @property
+ 747    def gdt(self):
+ 748        """Return Grid Definition Template."""
+ 749        return self.gridDefinitionTemplate
  750
- 751    @property
- 752    def pdtn(self):
- 753        """Return Product Definition Template Number."""
- 754        return self.section4[1]
- 755
+ 751
+ 752    @property
+ 753    def pdtn(self):
+ 754        """Return Product Definition Template Number."""
+ 755        return self.section4[1]
  756
- 757    @property
- 758    def pdt(self):
- 759        """Return Product Definition Template."""
- 760        return self.productDefinitionTemplate
- 761
+ 757
+ 758    @property
+ 759    def pdt(self):
+ 760        """Return Product Definition Template."""
+ 761        return self.productDefinitionTemplate
  762
- 763    @property
- 764    def drtn(self):
- 765        """Return Data Representation Template Number."""
- 766        return self.section5[1]
- 767
+ 763
+ 764    @property
+ 765    def drtn(self):
+ 766        """Return Data Representation Template Number."""
+ 767        return self.section5[1]
  768
- 769    @property
- 770    def drt(self):
- 771        """Return Data Representation Template."""
- 772        return self.dataRepresentationTemplate
- 773
+ 769
+ 770    @property
+ 771    def drt(self):
+ 772        """Return Data Representation Template."""
+ 773        return self.dataRepresentationTemplate
  774
- 775    @property
- 776    def pdy(self):
- 777        """Return the PDY ('YYYYMMDD')."""
- 778        return ''.join([str(i) for i in self.section1[5:8]])
- 779
+ 775
+ 776    @property
+ 777    def pdy(self):
+ 778        """Return the PDY ('YYYYMMDD')."""
+ 779        return ''.join([str(i) for i in self.section1[5:8]])
  780
- 781    @property
- 782    def griddef(self):
- 783        """Return a Grib2GridDef instance for a GRIB2 message."""
- 784        return Grib2GridDef.from_section3(self.section3)
- 785
+ 781
+ 782    @property
+ 783    def griddef(self):
+ 784        """Return a Grib2GridDef instance for a GRIB2 message."""
+ 785        return Grib2GridDef.from_section3(self.section3)
  786
- 787    @property
- 788    def lats(self):
- 789        """Return grid latitudes."""
- 790        return self.latlons()[0]
- 791
+ 787
+ 788    @property
+ 789    def lats(self):
+ 790        """Return grid latitudes."""
+ 791        return self.latlons()[0]
  792
- 793    @property
- 794    def lons(self):
- 795        """Return grid longitudes."""
- 796        return self.latlons()[1]
- 797
- 798    @property
- 799    def min(self):
- 800        """Return minimum value of data."""
- 801        return np.nanmin(self.data)
- 802
+ 793
+ 794    @property
+ 795    def lons(self):
+ 796        """Return grid longitudes."""
+ 797        return self.latlons()[1]
+ 798
+ 799    @property
+ 800    def min(self):
+ 801        """Return minimum value of data."""
+ 802        return np.nanmin(self.data)
  803
- 804    @property
- 805    def max(self):
- 806        """Return maximum value of data."""
- 807        return np.nanmax(self.data)
- 808
+ 804
+ 805    @property
+ 806    def max(self):
+ 807        """Return maximum value of data."""
+ 808        return np.nanmax(self.data)
  809
- 810    @property
- 811    def mean(self):
- 812        """Return mean value of data."""
- 813        return np.nanmean(self.data)
- 814
+ 810
+ 811    @property
+ 812    def mean(self):
+ 813        """Return mean value of data."""
+ 814        return np.nanmean(self.data)
  815
- 816    @property
- 817    def median(self):
- 818        """Return median value of data."""
- 819        return np.nanmedian(self.data)
- 820
+ 816
+ 817    @property
+ 818    def median(self):
+ 819        """Return median value of data."""
+ 820        return np.nanmedian(self.data)
  821
- 822    def __repr__(self):
- 823        """
- 824        Return an unambiguous string representation of the object.
- 825
- 826        Returns
- 827        -------
- 828        repr
- 829            A string representation of the object, including information from
- 830            sections 0, 1, 3, 4, 5, and 6.
- 831        """
- 832        info = ''
- 833        for sect in [0,1,3,4,5,6]:
- 834            for k,v in self.attrs_by_section(sect,values=True).items():
- 835                info += f'Section {sect}: {k} = {v}\n'
- 836        return info
- 837
- 838    def __str__(self):
- 839        """
- 840        Return a readable string representation of the object.
- 841
- 842        Returns
- 843        -------
- 844        str
- 845            A formatted string representation of the object, including
- 846            selected attributes.
- 847        """
- 848        return (f'{self._msgnum}:d={self.refDate}:{self.shortName}:'
- 849                f'{self.fullName} ({self.units}):{self.level}:'
- 850                f'{self.leadTime}')
- 851
+ 822
+ 823    def __repr__(self):
+ 824        """
+ 825        Return an unambiguous string representation of the object.
+ 826
+ 827        Returns
+ 828        -------
+ 829        repr
+ 830            A string representation of the object, including information from
+ 831            sections 0, 1, 3, 4, 5, and 6.
+ 832        """
+ 833        info = ''
+ 834        for sect in [0,1,3,4,5,6]:
+ 835            for k,v in self.attrs_by_section(sect,values=True).items():
+ 836                info += f'Section {sect}: {k} = {v}\n'
+ 837        return info
+ 838
+ 839    def __str__(self):
+ 840        """
+ 841        Return a readable string representation of the object.
+ 842
+ 843        Returns
+ 844        -------
+ 845        str
+ 846            A formatted string representation of the object, including
+ 847            selected attributes.
+ 848        """
+ 849        return (f'{self._msgnum}:d={self.refDate}:{self.shortName}:'
+ 850                f'{self.fullName} ({self.units}):{self.level}:'
+ 851                f'{self.leadTime}')
  852
- 853    def _generate_signature(self):
- 854        """Generature SHA-1 hash string from GRIB2 integer sections."""
- 855        return hashlib.sha1(np.concatenate((self.section0,self.section1,
- 856                                            self.section3,self.section4,
- 857                                            self.section5))).hexdigest()
- 858
+ 853
+ 854    def _generate_signature(self):
+ 855        """Generature SHA-1 hash string from GRIB2 integer sections."""
+ 856        return hashlib.sha1(np.concatenate((self.section0,self.section1,
+ 857                                            self.section3,self.section4,
+ 858                                            self.section5))).hexdigest()
  859
- 860    def attrs_by_section(self, sect: int, values: bool=False):
- 861        """
- 862        Provide a tuple of attribute names for the given GRIB2 section.
- 863
- 864        Parameters
- 865        ----------
- 866        sect
- 867            The GRIB2 section number.
- 868        values
- 869            Optional (default is `False`) argument to return attributes values.
- 870
- 871        Returns
- 872        -------
- 873        attrs_by_section
- 874            A list of attribute names or dict of name:value pairs if `values =
- 875            True`.
- 876        """
- 877        if sect in {0,1,6}:
- 878            attrs = templates._section_attrs[sect]
- 879        elif sect in {3,4,5}:
- 880            def _find_class_index(n):
- 881                _key = {3:'Grid', 4:'Product', 5:'Data'}
- 882                for i,c in enumerate(self.__class__.__mro__):
- 883                    if _key[n] in c.__name__:
- 884                        return i
- 885                else:
- 886                    return []
- 887            if sys.version_info.minor <= 8:
- 888                attrs = templates._section_attrs[sect]+\
- 889                        [a for a in dir(self.__class__.__mro__[_find_class_index(sect)]) if not a.startswith('_')]
- 890            else:
- 891                attrs = templates._section_attrs[sect]+\
- 892                        self.__class__.__mro__[_find_class_index(sect)]._attrs
- 893        else:
- 894            attrs = []
- 895        if values:
- 896            return {k:getattr(self,k) for k in attrs}
- 897        else:
- 898            return attrs
- 899
+ 860
+ 861    def attrs_by_section(self, sect: int, values: bool=False):
+ 862        """
+ 863        Provide a tuple of attribute names for the given GRIB2 section.
+ 864
+ 865        Parameters
+ 866        ----------
+ 867        sect
+ 868            The GRIB2 section number.
+ 869        values
+ 870            Optional (default is `False`) argument to return attributes values.
+ 871
+ 872        Returns
+ 873        -------
+ 874        attrs_by_section
+ 875            A list of attribute names or dict of name:value pairs if `values =
+ 876            True`.
+ 877        """
+ 878        if sect in {0,1,6}:
+ 879            attrs = templates._section_attrs[sect]
+ 880        elif sect in {3,4,5}:
+ 881            def _find_class_index(n):
+ 882                _key = {3:'Grid', 4:'Product', 5:'Data'}
+ 883                for i,c in enumerate(self.__class__.__mro__):
+ 884                    if _key[n] in c.__name__:
+ 885                        return i
+ 886                else:
+ 887                    return []
+ 888            if sys.version_info.minor <= 8:
+ 889                attrs = templates._section_attrs[sect]+\
+ 890                        [a for a in dir(self.__class__.__mro__[_find_class_index(sect)]) if not a.startswith('_')]
+ 891            else:
+ 892                attrs = templates._section_attrs[sect]+\
+ 893                        self.__class__.__mro__[_find_class_index(sect)]._attrs
+ 894        else:
+ 895            attrs = []
+ 896        if values:
+ 897            return {k:getattr(self,k) for k in attrs}
+ 898        else:
+ 899            return attrs
  900
- 901    def pack(self):
- 902        """
- 903        Pack GRIB2 section data into a binary message.
- 904
- 905        It is the user's responsibility to populate the GRIB2 section
- 906        information with appropriate metadata.
- 907        """
- 908        # Create beginning of packed binary message with section 0 and 1 data.
- 909        self._sections = []
- 910        self._msg,self._pos = g2clib.grib2_create(self.indicatorSection[2:4],self.identificationSection)
- 911        self._sections += [0,1]
- 912
- 913        # Add section 2 if present.
- 914        if isinstance(self.section2,bytes) and len(self.section2) > 0:
- 915            self._msg,self._pos = g2clib.grib2_addlocal(self._msg,self.section2)
- 916            self._sections.append(2)
- 917
- 918        # Add section 3.
- 919        self.section3[1] = self.nx * self.ny
- 920        self._msg,self._pos = g2clib.grib2_addgrid(self._msg,self.gridDefinitionSection,
- 921                                                   self.gridDefinitionTemplate,
- 922                                                   self._deflist)
- 923        self._sections.append(3)
- 924
- 925        # Prepare data.
- 926        if self._data is None:
- 927            if self._ondiskarray is None:
- 928                raise ValueError("Grib2Message object has no data, thus it cannot be packed.")
- 929        field = np.copy(self.data)
- 930        if self.scanModeFlags is not None:
- 931            if self.scanModeFlags[3]:
- 932                fieldsave = field.astype('f') # Casting makes a copy
- 933                field[1::2,:] = fieldsave[1::2,::-1]
- 934        fld = field.astype('f')
- 935
- 936        # Prepare bitmap, if necessary
- 937        bitmapflag = self.bitMapFlag.value
- 938        if bitmapflag == 0:
- 939            if self.bitmap is not None:
- 940                bmap = np.ravel(self.bitmap).astype(DEFAULT_NUMPY_INT)
- 941            else:
- 942                bmap = np.ravel(np.where(np.isnan(fld),0,1)).astype(DEFAULT_NUMPY_INT)
- 943        else:
- 944            bmap = None
- 945
- 946        # Prepare optional coordinate list
- 947        if self._coordlist is not None:
- 948            crdlist = np.array(self._coordlist,'f')
- 949        else:
- 950            crdlist = None
- 951
- 952        # Prepare data for packing if nans are present
- 953        fld = np.ravel(fld)
- 954        if bitmapflag in {0,254}:
- 955            fld = np.where(np.isnan(fld),0,fld)
- 956        else:
- 957            if np.isnan(fld).any():
- 958                if hasattr(self,'priMissingValue'):
- 959                    fld = np.where(np.isnan(fld),self.priMissingValue,fld)
- 960            if hasattr(self,'_missvalmap'):
- 961                if hasattr(self,'priMissingValue'):
- 962                    fld = np.where(self._missvalmap==1,self.priMissingValue,fld)
- 963                if hasattr(self,'secMissingValue'):
- 964                    fld = np.where(self._missvalmap==2,self.secMissingValue,fld)
- 965
- 966        # Add sections 4, 5, 6, and 7.
- 967        self._msg,self._pos = g2clib.grib2_addfield(self._msg,self.pdtn,
- 968                                                    self.productDefinitionTemplate,
- 969                                                    crdlist,
- 970                                                    self.drtn,
- 971                                                    self.dataRepresentationTemplate,
- 972                                                    fld,
- 973                                                    bitmapflag,
- 974                                                    bmap)
- 975        self._sections.append(4)
- 976        self._sections.append(5)
- 977        self._sections.append(6)
- 978        self._sections.append(7)
- 979
- 980        # Finalize GRIB2 message with section 8.
- 981        self._msg, self._pos = g2clib.grib2_end(self._msg)
- 982        self._sections.append(8)
- 983        self.section0[-1] = len(self._msg)
- 984
+ 901
+ 902    def pack(self):
+ 903        """
+ 904        Pack GRIB2 section data into a binary message.
+ 905
+ 906        It is the user's responsibility to populate the GRIB2 section
+ 907        information with appropriate metadata.
+ 908        """
+ 909        # Create beginning of packed binary message with section 0 and 1 data.
+ 910        self._sections = []
+ 911        self._msg,self._pos = g2clib.grib2_create(self.indicatorSection[2:4],self.identificationSection)
+ 912        self._sections += [0,1]
+ 913
+ 914        # Add section 2 if present.
+ 915        if isinstance(self.section2,bytes) and len(self.section2) > 0:
+ 916            self._msg,self._pos = g2clib.grib2_addlocal(self._msg,self.section2)
+ 917            self._sections.append(2)
+ 918
+ 919        # Add section 3.
+ 920        self.section3[1] = self.nx * self.ny
+ 921        self._msg,self._pos = g2clib.grib2_addgrid(self._msg,self.gridDefinitionSection,
+ 922                                                   self.gridDefinitionTemplate,
+ 923                                                   self._deflist)
+ 924        self._sections.append(3)
+ 925
+ 926        # Prepare data.
+ 927        if self._data is None:
+ 928            if self._ondiskarray is None:
+ 929                raise ValueError("Grib2Message object has no data, thus it cannot be packed.")
+ 930        field = np.copy(self.data)
+ 931        if self.scanModeFlags is not None:
+ 932            if self.scanModeFlags[3]:
+ 933                fieldsave = field.astype('f') # Casting makes a copy
+ 934                field[1::2,:] = fieldsave[1::2,::-1]
+ 935        fld = field.astype('f')
+ 936
+ 937        # Prepare bitmap, if necessary
+ 938        bitmapflag = self.bitMapFlag.value
+ 939        if bitmapflag == 0:
+ 940            if self.bitmap is not None:
+ 941                bmap = np.ravel(self.bitmap).astype(DEFAULT_NUMPY_INT)
+ 942            else:
+ 943                bmap = np.ravel(np.where(np.isnan(fld),0,1)).astype(DEFAULT_NUMPY_INT)
+ 944        else:
+ 945            bmap = None
+ 946
+ 947        # Prepare optional coordinate list
+ 948        if self._coordlist is not None:
+ 949            crdlist = np.array(self._coordlist,'f')
+ 950        else:
+ 951            crdlist = None
+ 952
+ 953        # Prepare data for packing if nans are present
+ 954        fld = np.ravel(fld)
+ 955        if bitmapflag in {0,254}:
+ 956            fld = np.where(np.isnan(fld),0,fld)
+ 957        else:
+ 958            if np.isnan(fld).any():
+ 959                if hasattr(self,'priMissingValue'):
+ 960                    fld = np.where(np.isnan(fld),self.priMissingValue,fld)
+ 961            if hasattr(self,'_missvalmap'):
+ 962                if hasattr(self,'priMissingValue'):
+ 963                    fld = np.where(self._missvalmap==1,self.priMissingValue,fld)
+ 964                if hasattr(self,'secMissingValue'):
+ 965                    fld = np.where(self._missvalmap==2,self.secMissingValue,fld)
+ 966
+ 967        # Add sections 4, 5, 6, and 7.
+ 968        self._msg,self._pos = g2clib.grib2_addfield(self._msg,self.pdtn,
+ 969                                                    self.productDefinitionTemplate,
+ 970                                                    crdlist,
+ 971                                                    self.drtn,
+ 972                                                    self.dataRepresentationTemplate,
+ 973                                                    fld,
+ 974                                                    bitmapflag,
+ 975                                                    bmap)
+ 976        self._sections.append(4)
+ 977        self._sections.append(5)
+ 978        self._sections.append(6)
+ 979        self._sections.append(7)
+ 980
+ 981        # Finalize GRIB2 message with section 8.
+ 982        self._msg, self._pos = g2clib.grib2_end(self._msg)
+ 983        self._sections.append(8)
+ 984        self.section0[-1] = len(self._msg)
  985
- 986    @property
- 987    def data(self) -> np.array:
- 988        """Access the unpacked data values."""
- 989        if self._data is None:
- 990            if self._auto_nans != _AUTO_NANS:
- 991                self._data = self._ondiskarray
- 992            self._data = np.asarray(self._ondiskarray)
- 993        return self._data
- 994
+ 986
+ 987    @property
+ 988    def data(self) -> np.array:
+ 989        """Access the unpacked data values."""
+ 990        if self._data is None:
+ 991            if self._auto_nans != _AUTO_NANS:
+ 992                self._data = self._ondiskarray
+ 993            self._data = np.asarray(self._ondiskarray)
+ 994        return self._data
  995
- 996    @data.setter
- 997    def data(self, data):
- 998        if not isinstance(data, np.ndarray):
- 999            raise ValueError('Grib2Message data only supports numpy arrays')
-1000        self._data = data
-1001
+ 996
+ 997    @data.setter
+ 998    def data(self, data):
+ 999        if not isinstance(data, np.ndarray):
+1000            raise ValueError('Grib2Message data only supports numpy arrays')
+1001        self._data = data
 1002
-1003    def flush_data(self):
-1004        """
-1005        Flush the unpacked data values from the Grib2Message object.
-1006
-1007        Note: If the Grib2Message object was constructed from "scratch" (i.e.
-1008        not read from file), this method will remove the data array from
-1009        the object and it cannot be recovered.
-1010        """
-1011        self._data = None
-1012        self.bitmap = None
-1013
+1003
+1004    def flush_data(self):
+1005        """
+1006        Flush the unpacked data values from the Grib2Message object.
+1007
+1008        Note: If the Grib2Message object was constructed from "scratch" (i.e.
+1009        not read from file), this method will remove the data array from
+1010        the object and it cannot be recovered.
+1011        """
+1012        self._data = None
+1013        self.bitmap = None
 1014
-1015    def __getitem__(self, item):
-1016        return self.data[item]
-1017
+1015
+1016    def __getitem__(self, item):
+1017        return self.data[item]
 1018
-1019    def __setitem__(self, item):
-1020        raise NotImplementedError('assignment of data not supported via setitem')
-1021
+1019
+1020    def __setitem__(self, item):
+1021        raise NotImplementedError('assignment of data not supported via setitem')
 1022
-1023    def latlons(self, *args, **kwrgs):
-1024        """Alias for `grib2io.Grib2Message.grid` method."""
-1025        return self.grid(*args, **kwrgs)
-1026
+1023
+1024    def latlons(self, *args, **kwrgs):
+1025        """Alias for `grib2io.Grib2Message.grid` method."""
+1026        return self.grid(*args, **kwrgs)
 1027
-1028    def grid(self, unrotate: bool=True):
-1029        """
-1030        Return lats,lons (in degrees) of grid.
-1031
-1032        Currently can handle reg. lat/lon,cglobal Gaussian, mercator,
-1033        stereographic, lambert conformal, albers equal-area, space-view and
-1034        azimuthal equidistant grids.
-1035
-1036        Parameters
-1037        ----------
-1038        unrotate
-1039            If `True` [DEFAULT], and grid is rotated lat/lon, then unrotate the
-1040            grid, otherwise `False`, do not.
-1041
-1042        Returns
-1043        -------
-1044        lats, lons : numpy.ndarray
-1045            Returns two numpy.ndarrays with dtype=numpy.float32 of grid
-1046            latitudes and longitudes in units of degrees.
-1047        """
-1048        if self._sha1_section3 in _latlon_datastore.keys():
-1049            return (_latlon_datastore[self._sha1_section3]['latitude'],
-1050                    _latlon_datastore[self._sha1_section3]['longitude'])
-1051        gdtn = self.gridDefinitionTemplateNumber.value
-1052        gdtmpl = self.gridDefinitionTemplate
-1053        reggrid = self.gridDefinitionSection[2] == 0 # This means regular 2-d grid
-1054        if gdtn == 0:
-1055            # Regular lat/lon grid
-1056            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
-1057            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
-1058            dlon = self.gridlengthXDirection
-1059            dlat = self.gridlengthYDirection
-1060            if lon2 < lon1 and dlon < 0: lon1 = -lon1
-1061            lats = np.linspace(lat1,lat2,self.ny)
-1062            if reggrid:
-1063                lons = np.linspace(lon1,lon2,self.nx)
-1064            else:
-1065                lons = np.linspace(lon1,lon2,self.ny*2)
-1066            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
-1067        elif gdtn == 1: # Rotated Lat/Lon grid
-1068            pj = pyproj.Proj(self.projParameters)
-1069            lat1,lon1 = self.latitudeFirstGridpoint,self.longitudeFirstGridpoint
-1070            lat2,lon2 = self.latitudeLastGridpoint,self.longitudeLastGridpoint
-1071            if lon1 > 180.0: lon1 -= 360.0
-1072            if lon2 > 180.0: lon2 -= 360.0
-1073            lats = np.linspace(lat1,lat2,self.ny)
-1074            lons = np.linspace(lon1,lon2,self.nx)
-1075            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
-1076            if unrotate:
-1077                from grib2io.utils import rotated_grid
-1078                lats,lons = rotated_grid.unrotate(lats,lons,self.anglePoleRotation,
-1079                                                  self.latitudeSouthernPole,
-1080                                                  self.longitudeSouthernPole)
-1081        elif gdtn == 40: # Gaussian grid (only works for global!)
-1082            from grib2io.utils.gauss_grid import gaussian_latitudes
-1083            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
-1084            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
-1085            nlats = self.ny
-1086            if not reggrid: # Reduced Gaussian grid.
-1087                nlons = 2*nlats
-1088                dlon = 360./nlons
-1089            else:
-1090                nlons = self.nx
-1091                dlon = self.gridlengthXDirection
-1092            lons = np.linspace(lon1,lon2,nlons)
-1093            # Compute Gaussian lats (north to south)
-1094            lats = gaussian_latitudes(nlats)
-1095            if lat1 < lat2:  # reverse them if necessary
-1096                lats = lats[::-1]
-1097            lons,lats = np.meshgrid(lons,lats)
-1098        elif gdtn in {10,20,30,31,110}:
-1099            # Mercator, Lambert Conformal, Stereographic, Albers Equal Area,
-1100            # Azimuthal Equidistant
-1101            dx,dy = self.gridlengthXDirection, self.gridlengthYDirection
-1102            lon1,lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
-1103            pj = pyproj.Proj(self.projParameters)
-1104            llcrnrx, llcrnry = pj(lon1,lat1)
-1105            x = llcrnrx+dx*np.arange(self.nx)
-1106            y = llcrnry+dy*np.arange(self.ny)
-1107            x,y = np.meshgrid(x, y)
-1108            lons,lats = pj(x, y, inverse=True)
-1109        elif gdtn == 90:
-1110            # Satellite Projection
-1111            dx = self.gridlengthXDirection
-1112            dy = self.gridlengthYDirection
-1113            pj = pyproj.Proj(self.projParameters)
-1114            x = dx*np.indices((self.ny,self.nx),'f')[1,:,:]
-1115            x -= 0.5*x.max()
-1116            y = dy*np.indices((self.ny,self.nx),'f')[0,:,:]
-1117            y -= 0.5*y.max()
-1118            lons,lats = pj(x,y,inverse=True)
-1119            # Set lons,lats to 1.e30 where undefined
-1120            abslons = np.fabs(lons)
-1121            abslats = np.fabs(lats)
-1122            lons = np.where(abslons < 1.e20, lons, 1.e30)
-1123            lats = np.where(abslats < 1.e20, lats, 1.e30)
-1124        elif gdtn == 32769:
-1125            # Special NCEP Grid, Rotated Lat/Lon, Arakawa E-Grid (Non-Staggered)
-1126            from grib2io.utils import arakawa_rotated_grid
-1127            from grib2io.utils.rotated_grid import DEG2RAD
-1128            di, dj = 0.0, 0.0
-1129            do_180 = False
-1130            idir = 1 if self.scanModeFlags[0] == 0 else -1
-1131            jdir = -1 if self.scanModeFlags[1] == 0 else 1
-1132            grid_oriented = 0 if self.resolutionAndComponentFlags[4] == 0 else 1
-1133            do_rot = 1 if grid_oriented == 1 else 0
-1134            la1 = self.latitudeFirstGridpoint
-1135            lo1 = self.longitudeFirstGridpoint
-1136            clon = self.longitudeCenterGridpoint
-1137            clat = self.latitudeCenterGridpoint
-1138            lasp = clat - 90.0
-1139            losp = clon
-1140            llat, llon = arakawa_rotated_grid.ll2rot(la1,lo1,lasp,losp)
-1141            la2, lo2 = arakawa_rotated_grid.rot2ll(-llat,-llon,lasp,losp)
-1142            rlat = -llat
-1143            rlon = -llon
-1144            if self.nx == 1:
-1145                di = 0.0
-1146            elif idir == 1:
-1147                ti = rlon
-1148                while ti < llon:
-1149                    ti += 360.0
-1150                di = (ti - llon)/float(self.nx-1)
-1151            else:
-1152                ti = llon
-1153                while ti < rlon:
-1154                    ti += 360.0
-1155                di = (ti - rlon)/float(self.nx-1)
-1156            if self.ny == 1:
-1157               dj = 0.0
-1158            else:
-1159                dj = (rlat - llat)/float(self.ny-1)
-1160                if dj < 0.0:
-1161                    dj = -dj
-1162            if idir == 1:
-1163                if llon > rlon:
-1164                    llon -= 360.0
-1165                if llon < 0 and rlon > 0:
-1166                    do_180 = True
-1167            else:
-1168                if rlon > llon:
-1169                    rlon -= 360.0
-1170                if rlon < 0 and llon > 0:
-1171                    do_180 = True
-1172            xlat1d = llat + (np.arange(self.ny)*jdir*dj)
-1173            xlon1d = llon + (np.arange(self.nx)*idir*di)
-1174            xlons, xlats = np.meshgrid(xlon1d,xlat1d)
-1175            rot2ll_vectorized = np.vectorize(arakawa_rotated_grid.rot2ll)
-1176            lats, lons = rot2ll_vectorized(xlats,xlons,lasp,losp)
-1177            if do_180:
-1178                lons = np.where(lons>180.0,lons-360.0,lons)
-1179            vector_rotation_angles_vectorized = np.vectorize(arakawa_rotated_grid.vector_rotation_angles)
-1180            rots = vector_rotation_angles_vectorized(lats, lons, clat, losp, xlats)
-1181            del xlat1d, xlon1d, xlats, xlons
-1182        else:
-1183            raise ValueError('Unsupported grid')
-1184
-1185        _latlon_datastore[self._sha1_section3] = dict(latitude=lats,longitude=lons)
-1186        try:
-1187            _latlon_datastore[self._sha1_section3]['vector_rotation_angles'] = rots
-1188        except(NameError):
-1189            pass
-1190
-1191        return lats, lons
-1192
+1028
+1029    def grid(self, unrotate: bool=True):
+1030        """
+1031        Return lats,lons (in degrees) of grid.
+1032
+1033        Currently can handle reg. lat/lon,cglobal Gaussian, mercator,
+1034        stereographic, lambert conformal, albers equal-area, space-view and
+1035        azimuthal equidistant grids.
+1036
+1037        Parameters
+1038        ----------
+1039        unrotate
+1040            If `True` [DEFAULT], and grid is rotated lat/lon, then unrotate the
+1041            grid, otherwise `False`, do not.
+1042
+1043        Returns
+1044        -------
+1045        lats, lons : numpy.ndarray
+1046            Returns two numpy.ndarrays with dtype=numpy.float32 of grid
+1047            latitudes and longitudes in units of degrees.
+1048        """
+1049        if self._sha1_section3 in _latlon_datastore.keys():
+1050            return (_latlon_datastore[self._sha1_section3]['latitude'],
+1051                    _latlon_datastore[self._sha1_section3]['longitude'])
+1052        gdtn = self.gridDefinitionTemplateNumber.value
+1053        gdtmpl = self.gridDefinitionTemplate
+1054        reggrid = self.gridDefinitionSection[2] == 0 # This means regular 2-d grid
+1055        if gdtn == 0:
+1056            # Regular lat/lon grid
+1057            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
+1058            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
+1059            dlon = self.gridlengthXDirection
+1060            dlat = self.gridlengthYDirection
+1061            if lon2 < lon1 and dlon < 0: lon1 = -lon1
+1062            lats = np.linspace(lat1,lat2,self.ny)
+1063            if reggrid:
+1064                lons = np.linspace(lon1,lon2,self.nx)
+1065            else:
+1066                lons = np.linspace(lon1,lon2,self.ny*2)
+1067            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
+1068        elif gdtn == 1: # Rotated Lat/Lon grid
+1069            pj = pyproj.Proj(self.projParameters)
+1070            lat1,lon1 = self.latitudeFirstGridpoint,self.longitudeFirstGridpoint
+1071            lat2,lon2 = self.latitudeLastGridpoint,self.longitudeLastGridpoint
+1072            if lon1 > 180.0: lon1 -= 360.0
+1073            if lon2 > 180.0: lon2 -= 360.0
+1074            lats = np.linspace(lat1,lat2,self.ny)
+1075            lons = np.linspace(lon1,lon2,self.nx)
+1076            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
+1077            if unrotate:
+1078                from grib2io.utils import rotated_grid
+1079                lats,lons = rotated_grid.unrotate(lats,lons,self.anglePoleRotation,
+1080                                                  self.latitudeSouthernPole,
+1081                                                  self.longitudeSouthernPole)
+1082        elif gdtn == 40: # Gaussian grid (only works for global!)
+1083            from grib2io.utils.gauss_grid import gaussian_latitudes
+1084            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
+1085            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
+1086            nlats = self.ny
+1087            if not reggrid: # Reduced Gaussian grid.
+1088                nlons = 2*nlats
+1089                dlon = 360./nlons
+1090            else:
+1091                nlons = self.nx
+1092                dlon = self.gridlengthXDirection
+1093            lons = np.linspace(lon1,lon2,nlons)
+1094            # Compute Gaussian lats (north to south)
+1095            lats = gaussian_latitudes(nlats)
+1096            if lat1 < lat2:  # reverse them if necessary
+1097                lats = lats[::-1]
+1098            lons,lats = np.meshgrid(lons,lats)
+1099        elif gdtn in {10,20,30,31,110}:
+1100            # Mercator, Lambert Conformal, Stereographic, Albers Equal Area,
+1101            # Azimuthal Equidistant
+1102            dx,dy = self.gridlengthXDirection, self.gridlengthYDirection
+1103            lon1,lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
+1104            pj = pyproj.Proj(self.projParameters)
+1105            llcrnrx, llcrnry = pj(lon1,lat1)
+1106            x = llcrnrx+dx*np.arange(self.nx)
+1107            y = llcrnry+dy*np.arange(self.ny)
+1108            x,y = np.meshgrid(x, y)
+1109            lons,lats = pj(x, y, inverse=True)
+1110        elif gdtn == 90:
+1111            # Satellite Projection
+1112            dx = self.gridlengthXDirection
+1113            dy = self.gridlengthYDirection
+1114            pj = pyproj.Proj(self.projParameters)
+1115            x = dx*np.indices((self.ny,self.nx),'f')[1,:,:]
+1116            x -= 0.5*x.max()
+1117            y = dy*np.indices((self.ny,self.nx),'f')[0,:,:]
+1118            y -= 0.5*y.max()
+1119            lons,lats = pj(x,y,inverse=True)
+1120            # Set lons,lats to 1.e30 where undefined
+1121            abslons = np.fabs(lons)
+1122            abslats = np.fabs(lats)
+1123            lons = np.where(abslons < 1.e20, lons, 1.e30)
+1124            lats = np.where(abslats < 1.e20, lats, 1.e30)
+1125        elif gdtn == 32769:
+1126            # Special NCEP Grid, Rotated Lat/Lon, Arakawa E-Grid (Non-Staggered)
+1127            from grib2io.utils import arakawa_rotated_grid
+1128            from grib2io.utils.rotated_grid import DEG2RAD
+1129            di, dj = 0.0, 0.0
+1130            do_180 = False
+1131            idir = 1 if self.scanModeFlags[0] == 0 else -1
+1132            jdir = -1 if self.scanModeFlags[1] == 0 else 1
+1133            grid_oriented = 0 if self.resolutionAndComponentFlags[4] == 0 else 1
+1134            do_rot = 1 if grid_oriented == 1 else 0
+1135            la1 = self.latitudeFirstGridpoint
+1136            lo1 = self.longitudeFirstGridpoint
+1137            clon = self.longitudeCenterGridpoint
+1138            clat = self.latitudeCenterGridpoint
+1139            lasp = clat - 90.0
+1140            losp = clon
+1141            llat, llon = arakawa_rotated_grid.ll2rot(la1,lo1,lasp,losp)
+1142            la2, lo2 = arakawa_rotated_grid.rot2ll(-llat,-llon,lasp,losp)
+1143            rlat = -llat
+1144            rlon = -llon
+1145            if self.nx == 1:
+1146                di = 0.0
+1147            elif idir == 1:
+1148                ti = rlon
+1149                while ti < llon:
+1150                    ti += 360.0
+1151                di = (ti - llon)/float(self.nx-1)
+1152            else:
+1153                ti = llon
+1154                while ti < rlon:
+1155                    ti += 360.0
+1156                di = (ti - rlon)/float(self.nx-1)
+1157            if self.ny == 1:
+1158               dj = 0.0
+1159            else:
+1160                dj = (rlat - llat)/float(self.ny-1)
+1161                if dj < 0.0:
+1162                    dj = -dj
+1163            if idir == 1:
+1164                if llon > rlon:
+1165                    llon -= 360.0
+1166                if llon < 0 and rlon > 0:
+1167                    do_180 = True
+1168            else:
+1169                if rlon > llon:
+1170                    rlon -= 360.0
+1171                if rlon < 0 and llon > 0:
+1172                    do_180 = True
+1173            xlat1d = llat + (np.arange(self.ny)*jdir*dj)
+1174            xlon1d = llon + (np.arange(self.nx)*idir*di)
+1175            xlons, xlats = np.meshgrid(xlon1d,xlat1d)
+1176            rot2ll_vectorized = np.vectorize(arakawa_rotated_grid.rot2ll)
+1177            lats, lons = rot2ll_vectorized(xlats,xlons,lasp,losp)
+1178            if do_180:
+1179                lons = np.where(lons>180.0,lons-360.0,lons)
+1180            vector_rotation_angles_vectorized = np.vectorize(arakawa_rotated_grid.vector_rotation_angles)
+1181            rots = vector_rotation_angles_vectorized(lats, lons, clat, losp, xlats)
+1182            del xlat1d, xlon1d, xlats, xlons
+1183        else:
+1184            raise ValueError('Unsupported grid')
+1185
+1186        _latlon_datastore[self._sha1_section3] = dict(latitude=lats,longitude=lons)
+1187        try:
+1188            _latlon_datastore[self._sha1_section3]['vector_rotation_angles'] = rots
+1189        except(NameError):
+1190            pass
+1191
+1192        return lats, lons
 1193
-1194    def map_keys(self):
-1195        """
-1196        Unpack data grid replacing integer values with strings.
-1197
-1198        These types of fields are categorical or classifications where data
-1199        values do not represent an observable or predictable physical quantity.
-1200        An example of such a field would be [Dominant Precipitation Type -
-1201        DPTYPE](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-201.shtml)
-1202
-1203        Returns
-1204        -------
-1205        map_keys
-1206            numpy.ndarray of string values per element.
-1207        """
-1208        hold_auto_nans = _AUTO_NANS
-1209        set_auto_nans(False)
-1210        if (np.all(self.section1[0:2]==[7,14]) and self.shortName == 'PWTHER') or \
-1211        (np.all(self.section1[0:2]==[8,65535]) and self.shortName == 'WX'):
-1212            keys = utils.decode_wx_strings(self.section2)
-1213            if hasattr(self,'priMissingValue') and self.priMissingValue not in [None,0]:
-1214                keys[int(self.priMissingValue)] = 'Missing'
-1215            if hasattr(self,'secMissingValue') and self.secMissingValue not in [None,0]:
-1216                keys[int(self.secMissingValue)] = 'Missing'
-1217            u,inv = np.unique(self.data,return_inverse=True)
-1218            fld = np.array([keys[x] for x in u])[inv].reshape(self.data.shape)
-1219        else:
-1220            # For data whose units are defined in a code table (i.e. classification or mask)
-1221            tblname = re.findall(r'\d\.\d+',self.units,re.IGNORECASE)[0]
-1222            fld = self.data.astype(np.int32).astype(str)
-1223            tbl = tables.get_table(tblname,expand=True)
-1224            for val in np.unique(fld):
-1225                fld = np.where(fld==val,tbl[val],fld)
-1226        set_auto_nans(hold_auto_nans)
-1227        return fld
-1228
+1194
+1195    def map_keys(self):
+1196        """
+1197        Unpack data grid replacing integer values with strings.
+1198
+1199        These types of fields are categorical or classifications where data
+1200        values do not represent an observable or predictable physical quantity.
+1201        An example of such a field would be [Dominant Precipitation Type -
+1202        DPTYPE](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-201.shtml)
+1203
+1204        Returns
+1205        -------
+1206        map_keys
+1207            numpy.ndarray of string values per element.
+1208        """
+1209        hold_auto_nans = _AUTO_NANS
+1210        set_auto_nans(False)
+1211        if (np.all(self.section1[0:2]==[7,14]) and self.shortName == 'PWTHER') or \
+1212        (np.all(self.section1[0:2]==[8,65535]) and self.shortName == 'WX'):
+1213            keys = utils.decode_wx_strings(self.section2)
+1214            if hasattr(self,'priMissingValue') and self.priMissingValue not in [None,0]:
+1215                keys[int(self.priMissingValue)] = 'Missing'
+1216            if hasattr(self,'secMissingValue') and self.secMissingValue not in [None,0]:
+1217                keys[int(self.secMissingValue)] = 'Missing'
+1218            u,inv = np.unique(self.data,return_inverse=True)
+1219            fld = np.array([keys[x] for x in u])[inv].reshape(self.data.shape)
+1220        else:
+1221            # For data whose units are defined in a code table (i.e. classification or mask)
+1222            tblname = re.findall(r'\d\.\d+',self.units,re.IGNORECASE)[0]
+1223            fld = self.data.astype(np.int32).astype(str)
+1224            tbl = tables.get_table(tblname,expand=True)
+1225            for val in np.unique(fld):
+1226                fld = np.where(fld==val,tbl[val],fld)
+1227        set_auto_nans(hold_auto_nans)
+1228        return fld
 1229
-1230    def to_bytes(self, validate: bool=True):
-1231        """
-1232        Return packed GRIB2 message in bytes format.
-1233
-1234        This will be useful for exporting data in non-file formats. For example,
-1235        can be used to output grib data directly to S3 using the boto3 client
-1236        without the need to write a temporary file to upload first.
-1237
-1238        Parameters
-1239        ----------
-1240        validate: default=True
-1241            If `True` (DEFAULT), validates first/last four bytes for proper
-1242            formatting, else returns None. If `False`, message is output as is.
-1243
-1244        Returns
-1245        -------
-1246        to_bytes
-1247            Returns GRIB2 formatted message as bytes.
-1248        """
-1249        if hasattr(self,'_msg'):
-1250            if validate:
-1251                if self.validate():
-1252                    return self._msg
-1253                else:
-1254                    return None
-1255            else:
-1256                return self._msg
-1257        else:
-1258            return None
-1259
+1230
+1231    def to_bytes(self, validate: bool=True):
+1232        """
+1233        Return packed GRIB2 message in bytes format.
+1234
+1235        This will be useful for exporting data in non-file formats. For example,
+1236        can be used to output grib data directly to S3 using the boto3 client
+1237        without the need to write a temporary file to upload first.
+1238
+1239        Parameters
+1240        ----------
+1241        validate: default=True
+1242            If `True` (DEFAULT), validates first/last four bytes for proper
+1243            formatting, else returns None. If `False`, message is output as is.
+1244
+1245        Returns
+1246        -------
+1247        to_bytes
+1248            Returns GRIB2 formatted message as bytes.
+1249        """
+1250        if hasattr(self,'_msg'):
+1251            if validate:
+1252                if self.validate():
+1253                    return self._msg
+1254                else:
+1255                    return None
+1256            else:
+1257                return self._msg
+1258        else:
+1259            return None
 1260
-1261    def interpolate(self, method, grid_def_out, method_options=None, drtn=None,
-1262                    num_threads=1):
-1263        """
-1264        Grib2Message Interpolator
-1265
-1266        Performs spatial interpolation via the [NCEPLIBS-ip
-1267        library](https://github.com/NOAA-EMC/NCEPLIBS-ip). This interpolate
-1268        method only supports scalar interpolation. If you need to perform
-1269        vector interpolation, use the module-level `grib2io.interpolate`
-1270        function.
-1271
-1272        Parameters
-1273        ----------
-1274        method
-1275            Interpolate method to use. This can either be an integer or string
-1276            using the following mapping:
-1277
-1278            | Interpolate Scheme | Integer Value |
-1279            | :---:              | :---:         |
-1280            | 'bilinear'         | 0             |
-1281            | 'bicubic'          | 1             |
-1282            | 'neighbor'         | 2             |
-1283            | 'budget'           | 3             |
-1284            | 'spectral'         | 4             |
-1285            | 'neighbor-budget'  | 6             |
-1286
-1287        grid_def_out : grib2io.Grib2GridDef
-1288            Grib2GridDef object of the output grid.
-1289        method_options : list of ints, optional
-1290            Interpolation options. See the NCEPLIBS-ip documentation for
-1291            more information on how these are used.
-1292        drtn
-1293            Data Representation Template to be used for the returned
-1294            interpolated GRIB2 message. When `None`, the data representation
-1295            template of the source GRIB2 message is used. Once again, it is the
-1296            user's responsibility to properly set the Data Representation
-1297            Template attributes.
-1298        num_threads : int, optional
-1299            Number of OpenMP threads to use for interpolation. The default
-1300            value is 1. If grib2io_interp was not built with OpenMP, then
-1301            this keyword argument and value will have no impact.
-1302
-1303        Returns
-1304        -------
-1305        interpolate
-1306            If interpolating to a grid, a new Grib2Message object is returned.
-1307            The GRIB2 metadata of the new Grib2Message object is identical to
-1308            the input except where required to be different because of the new
-1309            grid specs and possibly a new data representation template.
-1310
-1311            If interpolating to station points, the interpolated data values are
-1312            returned as a numpy.ndarray.
-1313        """
-1314        section0 = self.section0
-1315        section0[-1] = 0
-1316        gds = [0, grid_def_out.npoints, 0, 255, grid_def_out.gdtn]
-1317        section3 = np.concatenate((gds,grid_def_out.gdt))
-1318        drtn = self.drtn if drtn is None else drtn
-1319
-1320        msg = Grib2Message(section0,self.section1,self.section2,section3,
-1321                           self.section4,None,self.bitMapFlag.value,drtn=drtn)
-1322
-1323        msg._msgnum = -1
-1324        msg._deflist = self._deflist
-1325        msg._coordlist = self._coordlist
-1326        shape = (msg.ny,msg.nx)
-1327        ndim = 2
-1328        if msg.typeOfValues == 0:
-1329            dtype = 'float32'
-1330        elif msg.typeOfValues == 1:
-1331            dtype = 'int32'
-1332        msg._data = interpolate(self.data,method,Grib2GridDef.from_section3(self.section3),grid_def_out,
-1333                                method_options=method_options,num_threads=num_threads).reshape(msg.ny,msg.nx)
-1334        msg.section5[0] = grid_def_out.npoints
-1335        return msg
-1336
+1261
+1262    def interpolate(self, method, grid_def_out, method_options=None, drtn=None,
+1263                    num_threads=1):
+1264        """
+1265        Grib2Message Interpolator
+1266
+1267        Performs spatial interpolation via the [NCEPLIBS-ip
+1268        library](https://github.com/NOAA-EMC/NCEPLIBS-ip). This interpolate
+1269        method only supports scalar interpolation. If you need to perform
+1270        vector interpolation, use the module-level `grib2io.interpolate`
+1271        function.
+1272
+1273        Parameters
+1274        ----------
+1275        method
+1276            Interpolate method to use. This can either be an integer or string
+1277            using the following mapping:
+1278
+1279            | Interpolate Scheme | Integer Value |
+1280            | :---:              | :---:         |
+1281            | 'bilinear'         | 0             |
+1282            | 'bicubic'          | 1             |
+1283            | 'neighbor'         | 2             |
+1284            | 'budget'           | 3             |
+1285            | 'spectral'         | 4             |
+1286            | 'neighbor-budget'  | 6             |
+1287
+1288        grid_def_out : grib2io.Grib2GridDef
+1289            Grib2GridDef object of the output grid.
+1290        method_options : list of ints, optional
+1291            Interpolation options. See the NCEPLIBS-ip documentation for
+1292            more information on how these are used.
+1293        drtn
+1294            Data Representation Template to be used for the returned
+1295            interpolated GRIB2 message. When `None`, the data representation
+1296            template of the source GRIB2 message is used. Once again, it is the
+1297            user's responsibility to properly set the Data Representation
+1298            Template attributes.
+1299        num_threads : int, optional
+1300            Number of OpenMP threads to use for interpolation. The default
+1301            value is 1. If grib2io_interp was not built with OpenMP, then
+1302            this keyword argument and value will have no impact.
+1303
+1304        Returns
+1305        -------
+1306        interpolate
+1307            If interpolating to a grid, a new Grib2Message object is returned.
+1308            The GRIB2 metadata of the new Grib2Message object is identical to
+1309            the input except where required to be different because of the new
+1310            grid specs and possibly a new data representation template.
+1311
+1312            If interpolating to station points, the interpolated data values are
+1313            returned as a numpy.ndarray.
+1314        """
+1315        section0 = self.section0
+1316        section0[-1] = 0
+1317        gds = [0, grid_def_out.npoints, 0, 255, grid_def_out.gdtn]
+1318        section3 = np.concatenate((gds,grid_def_out.gdt))
+1319        drtn = self.drtn if drtn is None else drtn
+1320
+1321        msg = Grib2Message(section0,self.section1,self.section2,section3,
+1322                           self.section4,None,self.bitMapFlag.value,drtn=drtn)
+1323
+1324        msg._msgnum = -1
+1325        msg._deflist = self._deflist
+1326        msg._coordlist = self._coordlist
+1327        shape = (msg.ny,msg.nx)
+1328        ndim = 2
+1329        if msg.typeOfValues == 0:
+1330            dtype = 'float32'
+1331        elif msg.typeOfValues == 1:
+1332            dtype = 'int32'
+1333        msg._data = interpolate(self.data,method,Grib2GridDef.from_section3(self.section3),grid_def_out,
+1334                                method_options=method_options,num_threads=num_threads).reshape(msg.ny,msg.nx)
+1335        msg.section5[0] = grid_def_out.npoints
+1336        return msg
 1337
-1338    def subset(self, lats, lons):
-1339        """
-1340        Return a spatial subset.
-1341
-1342        Currently only supports regular grids of the following types:
-1343
-1344        | Grid Type                                                    | gdtn  |
-1345        | :---:                                                        | :---: |
-1346        | Latitude/Longitude, Equidistant Cylindrical, or Plate Carree | 0     |
-1347        | Rotated Latitude/Longitude                                   | 1     |
-1348        | Mercator                                                     | 10    |
-1349        | Polar Stereographic                                          | 20    |
-1350        | Lambert Conformal                                            | 30    |
-1351        | Albers Equal-Area                                            | 31    |
-1352        | Gaussian Latitude/Longitude                                  | 40    |
-1353        | Equatorial Azimuthal Equidistant Projection                  | 110   |
-1354
-1355        Parameters
-1356        ----------
-1357        lats
-1358            List or tuple of latitudes.  The minimum and maximum latitudes will
-1359            be used to define the southern and northern boundaries.
-1360
-1361            The order of the latitudes is not important.  The function will
-1362            determine which is the minimum and maximum.
-1363
-1364            The latitudes should be in decimal degrees with 0.0 at the equator,
-1365            positive values in the northern hemisphere increasing to 90, and
-1366            negative values in the southern hemisphere decreasing to -90.
-1367        lons
-1368            List or tuple of longitudes.  The minimum and maximum longitudes
-1369            will be used to define the western and eastern boundaries.
-1370
-1371            The order of the longitudes is not important.  The function will
-1372            determine which is the minimum and maximum.
-1373
-1374            GRIB2 longitudes should be in decimal degrees with 0.0 at the prime
-1375            meridian, positive values increasing eastward to 360.  There are no
-1376            negative GRIB2 longitudes.
-1377
-1378            The typical west longitudes that start at 0.0 at the prime meridian
-1379            and decrease to -180 westward, are converted to GRIB2 longitudes by
-1380            '360 - (absolute value of the west longitude)' where typical
-1381            eastern longitudes are unchanged as GRIB2 longitudes.
-1382
-1383        Returns
-1384        -------
-1385        subset
-1386            A spatial subset of a GRIB2 message.
-1387        """
-1388        if self.gdtn not in [0, 1, 10, 20, 30, 31, 40, 110]:
-1389            raise ValueError(
-1390                """
-1391
-1392Subset only works for
-1393    Latitude/Longitude, Equidistant Cylindrical, or Plate Carree (gdtn=0)
-1394    Rotated Latitude/Longitude (gdtn=1)
-1395    Mercator (gdtn=10)
-1396    Polar Stereographic (gdtn=20)
-1397    Lambert Conformal (gdtn=30)
-1398    Albers Equal-Area (gdtn=31)
-1399    Gaussian Latitude/Longitude (gdtn=40)
-1400    Equatorial Azimuthal Equidistant Projection (gdtn=110)
-1401
-1402"""
-1403            )
-1404
-1405        if self.nx == 0 or self.ny == 0:
-1406            raise ValueError(
-1407                """
-1408
-1409Subset only works for regular grids.
-1410
-1411"""
-1412            )
-1413
-1414        newmsg = Grib2Message(
-1415            np.copy(self.section0),
-1416            np.copy(self.section1),
-1417            np.copy(self.section2),
-1418            np.copy(self.section3),
-1419            np.copy(self.section4),
-1420            np.copy(self.section5),
-1421        )
-1422
-1423        msglats, msglons = self.grid()
-1424
-1425        la1 = np.max(lats)
-1426        lo1 = np.min(lons)
-1427        la2 = np.min(lats)
-1428        lo2 = np.max(lons)
-1429
-1430        # Find the indices of the first and last grid points to the nearest
-1431        # lat/lon values in the grid.
-1432        first_lat = np.abs(msglats - la1)
-1433        first_lon = np.abs(msglons - lo1)
-1434        max_idx = np.maximum(first_lat, first_lon)
-1435        first_j, first_i = np.where(max_idx == np.min(max_idx))
-1436
-1437        last_lat = np.abs(msglats - la2)
-1438        last_lon = np.abs(msglons - lo2)
-1439        max_idx = np.maximum(last_lat, last_lon)
-1440        last_j, last_i = np.where(max_idx == np.min(max_idx))
-1441
-1442        setattr(newmsg, "latitudeFirstGridpoint", msglats[first_j[0], first_i[0]])
-1443        setattr(newmsg, "longitudeFirstGridpoint", msglons[first_j[0], first_i[0]])
-1444        setattr(newmsg, "nx", np.abs(first_i[0] - last_i[0]))
-1445        setattr(newmsg, "ny", np.abs(first_j[0] - last_j[0]))
-1446
-1447        # Set *LastGridpoint attributes even if only used for gdtn=[0, 1, 40].
-1448        # This information is used to subset xarray datasets and even though
-1449        # unnecessary for some supported grid types, it won't affect a grib2io
-1450        # message to set them.
-1451        setattr(newmsg, "latitudeLastGridpoint", msglats[last_j[0], last_i[0]])
-1452        setattr(newmsg, "longitudeLastGridpoint", msglons[last_j[0], last_i[0]])
-1453
-1454        setattr(
-1455            newmsg,
-1456            "data",
-1457            self.data[
-1458                min(first_j[0], last_j[0]) : max(first_j[0], last_j[0]),
-1459                min(first_i[0], last_i[0]) : max(first_i[0], last_i[0]),
-1460            ].copy(),
-1461        )
-1462
-1463        # Need to set the newmsg._sha1_section3 to a blank string so the grid
-1464        # method ignores the cached lat/lon values.  This will force the grid
-1465        # method to recompute the lat/lon values for the subsetted grid.
-1466        newmsg._sha1_section3 = ""
-1467        newmsg.grid()
-1468
-1469        return newmsg
-1470
-1471    def validate(self):
-1472        """
-1473        Validate a complete GRIB2 message.
-1474
-1475        The g2c library does its own internal validation when g2_gribend() is called, but
-1476        we will check in grib2io also. The validation checks if the first 4 bytes in
-1477        self._msg is 'GRIB' and '7777' as the last 4 bytes and that the message length in
-1478        section 0 equals the length of the packed message.
-1479
-1480        Returns
-1481        -------
-1482        `True` if the packed GRIB2 message is complete and well-formed, `False` otherwise.
-1483        """
-1484        valid = False
-1485        if hasattr(self,'_msg'):
-1486            if self._msg[0:4]+self._msg[-4:] == b'GRIB7777':
-1487                if self.section0[-1] == len(self._msg):
-1488                    valid = True
-1489        return valid
+1338
+1339    def subset(self, lats, lons):
+1340        """
+1341        Return a spatial subset.
+1342
+1343        Currently only supports regular grids of the following types:
+1344
+1345        | Grid Type                                                    | gdtn  |
+1346        | :---:                                                        | :---: |
+1347        | Latitude/Longitude, Equidistant Cylindrical, or Plate Carree | 0     |
+1348        | Rotated Latitude/Longitude                                   | 1     |
+1349        | Mercator                                                     | 10    |
+1350        | Polar Stereographic                                          | 20    |
+1351        | Lambert Conformal                                            | 30    |
+1352        | Albers Equal-Area                                            | 31    |
+1353        | Gaussian Latitude/Longitude                                  | 40    |
+1354        | Equatorial Azimuthal Equidistant Projection                  | 110   |
+1355
+1356        Parameters
+1357        ----------
+1358        lats
+1359            List or tuple of latitudes.  The minimum and maximum latitudes will
+1360            be used to define the southern and northern boundaries.
+1361
+1362            The order of the latitudes is not important.  The function will
+1363            determine which is the minimum and maximum.
+1364
+1365            The latitudes should be in decimal degrees with 0.0 at the equator,
+1366            positive values in the northern hemisphere increasing to 90, and
+1367            negative values in the southern hemisphere decreasing to -90.
+1368        lons
+1369            List or tuple of longitudes.  The minimum and maximum longitudes
+1370            will be used to define the western and eastern boundaries.
+1371
+1372            The order of the longitudes is not important.  The function will
+1373            determine which is the minimum and maximum.
+1374
+1375            GRIB2 longitudes should be in decimal degrees with 0.0 at the prime
+1376            meridian, positive values increasing eastward to 360.  There are no
+1377            negative GRIB2 longitudes.
+1378
+1379            The typical west longitudes that start at 0.0 at the prime meridian
+1380            and decrease to -180 westward, are converted to GRIB2 longitudes by
+1381            '360 - (absolute value of the west longitude)' where typical
+1382            eastern longitudes are unchanged as GRIB2 longitudes.
+1383
+1384        Returns
+1385        -------
+1386        subset
+1387            A spatial subset of a GRIB2 message.
+1388        """
+1389        if self.gdtn not in [0, 1, 10, 20, 30, 31, 40, 110]:
+1390            raise ValueError(
+1391                """
+1392
+1393Subset only works for
+1394    Latitude/Longitude, Equidistant Cylindrical, or Plate Carree (gdtn=0)
+1395    Rotated Latitude/Longitude (gdtn=1)
+1396    Mercator (gdtn=10)
+1397    Polar Stereographic (gdtn=20)
+1398    Lambert Conformal (gdtn=30)
+1399    Albers Equal-Area (gdtn=31)
+1400    Gaussian Latitude/Longitude (gdtn=40)
+1401    Equatorial Azimuthal Equidistant Projection (gdtn=110)
+1402
+1403"""
+1404            )
+1405
+1406        if self.nx == 0 or self.ny == 0:
+1407            raise ValueError(
+1408                """
+1409
+1410Subset only works for regular grids.
+1411
+1412"""
+1413            )
+1414
+1415        newmsg = Grib2Message(
+1416            np.copy(self.section0),
+1417            np.copy(self.section1),
+1418            np.copy(self.section2),
+1419            np.copy(self.section3),
+1420            np.copy(self.section4),
+1421            np.copy(self.section5),
+1422        )
+1423
+1424        msglats, msglons = self.grid()
+1425
+1426        la1 = np.max(lats)
+1427        lo1 = np.min(lons)
+1428        la2 = np.min(lats)
+1429        lo2 = np.max(lons)
+1430
+1431        # Find the indices of the first and last grid points to the nearest
+1432        # lat/lon values in the grid.
+1433        first_lat = np.abs(msglats - la1)
+1434        first_lon = np.abs(msglons - lo1)
+1435        max_idx = np.maximum(first_lat, first_lon)
+1436        first_j, first_i = np.where(max_idx == np.min(max_idx))
+1437
+1438        last_lat = np.abs(msglats - la2)
+1439        last_lon = np.abs(msglons - lo2)
+1440        max_idx = np.maximum(last_lat, last_lon)
+1441        last_j, last_i = np.where(max_idx == np.min(max_idx))
+1442
+1443        setattr(newmsg, "latitudeFirstGridpoint", msglats[first_j[0], first_i[0]])
+1444        setattr(newmsg, "longitudeFirstGridpoint", msglons[first_j[0], first_i[0]])
+1445        setattr(newmsg, "nx", np.abs(first_i[0] - last_i[0]))
+1446        setattr(newmsg, "ny", np.abs(first_j[0] - last_j[0]))
+1447
+1448        # Set *LastGridpoint attributes even if only used for gdtn=[0, 1, 40].
+1449        # This information is used to subset xarray datasets and even though
+1450        # unnecessary for some supported grid types, it won't affect a grib2io
+1451        # message to set them.
+1452        setattr(newmsg, "latitudeLastGridpoint", msglats[last_j[0], last_i[0]])
+1453        setattr(newmsg, "longitudeLastGridpoint", msglons[last_j[0], last_i[0]])
+1454
+1455        setattr(
+1456            newmsg,
+1457            "data",
+1458            self.data[
+1459                min(first_j[0], last_j[0]) : max(first_j[0], last_j[0]),
+1460                min(first_i[0], last_i[0]) : max(first_i[0], last_i[0]),
+1461            ].copy(),
+1462        )
+1463
+1464        # Need to set the newmsg._sha1_section3 to a blank string so the grid
+1465        # method ignores the cached lat/lon values.  This will force the grid
+1466        # method to recompute the lat/lon values for the subsetted grid.
+1467        newmsg._sha1_section3 = ""
+1468        newmsg.grid()
+1469
+1470        return newmsg
+1471
+1472    def validate(self):
+1473        """
+1474        Validate a complete GRIB2 message.
+1475
+1476        The g2c library does its own internal validation when g2_gribend() is called, but
+1477        we will check in grib2io also. The validation checks if the first 4 bytes in
+1478        self._msg is 'GRIB' and '7777' as the last 4 bytes and that the message length in
+1479        section 0 equals the length of the packed message.
+1480
+1481        Returns
+1482        -------
+1483        `True` if the packed GRIB2 message is complete and well-formed, `False` otherwise.
+1484        """
+1485        valid = False
+1486        if hasattr(self,'_msg'):
+1487            if self._msg[0:4]+self._msg[-4:] == b'GRIB7777':
+1488                if self.section0[-1] == len(self._msg):
+1489                    valid = True
+1490        return valid
 
@@ -3681,10 +3682,10 @@
Returns
-
739    @property
-740    def gdtn(self):
-741        """Return Grid Definition Template Number"""
-742        return self.section3[4]
+            
740    @property
+741    def gdtn(self):
+742        """Return Grid Definition Template Number"""
+743        return self.section3[4]
 
@@ -3702,10 +3703,10 @@
Returns
-
745    @property
-746    def gdt(self):
-747        """Return Grid Definition Template."""
-748        return self.gridDefinitionTemplate
+            
746    @property
+747    def gdt(self):
+748        """Return Grid Definition Template."""
+749        return self.gridDefinitionTemplate
 
@@ -3723,10 +3724,10 @@
Returns
-
751    @property
-752    def pdtn(self):
-753        """Return Product Definition Template Number."""
-754        return self.section4[1]
+            
752    @property
+753    def pdtn(self):
+754        """Return Product Definition Template Number."""
+755        return self.section4[1]
 
@@ -3744,10 +3745,10 @@
Returns
-
757    @property
-758    def pdt(self):
-759        """Return Product Definition Template."""
-760        return self.productDefinitionTemplate
+            
758    @property
+759    def pdt(self):
+760        """Return Product Definition Template."""
+761        return self.productDefinitionTemplate
 
@@ -3765,10 +3766,10 @@
Returns
-
763    @property
-764    def drtn(self):
-765        """Return Data Representation Template Number."""
-766        return self.section5[1]
+            
764    @property
+765    def drtn(self):
+766        """Return Data Representation Template Number."""
+767        return self.section5[1]
 
@@ -3786,10 +3787,10 @@
Returns
-
769    @property
-770    def drt(self):
-771        """Return Data Representation Template."""
-772        return self.dataRepresentationTemplate
+            
770    @property
+771    def drt(self):
+772        """Return Data Representation Template."""
+773        return self.dataRepresentationTemplate
 
@@ -3807,10 +3808,10 @@
Returns
-
775    @property
-776    def pdy(self):
-777        """Return the PDY ('YYYYMMDD')."""
-778        return ''.join([str(i) for i in self.section1[5:8]])
+            
776    @property
+777    def pdy(self):
+778        """Return the PDY ('YYYYMMDD')."""
+779        return ''.join([str(i) for i in self.section1[5:8]])
 
@@ -3828,10 +3829,10 @@
Returns
-
781    @property
-782    def griddef(self):
-783        """Return a Grib2GridDef instance for a GRIB2 message."""
-784        return Grib2GridDef.from_section3(self.section3)
+            
782    @property
+783    def griddef(self):
+784        """Return a Grib2GridDef instance for a GRIB2 message."""
+785        return Grib2GridDef.from_section3(self.section3)
 
@@ -3849,10 +3850,10 @@
Returns
-
787    @property
-788    def lats(self):
-789        """Return grid latitudes."""
-790        return self.latlons()[0]
+            
788    @property
+789    def lats(self):
+790        """Return grid latitudes."""
+791        return self.latlons()[0]
 
@@ -3870,10 +3871,10 @@
Returns
-
793    @property
-794    def lons(self):
-795        """Return grid longitudes."""
-796        return self.latlons()[1]
+            
794    @property
+795    def lons(self):
+796        """Return grid longitudes."""
+797        return self.latlons()[1]
 
@@ -3891,10 +3892,10 @@
Returns
-
798    @property
-799    def min(self):
-800        """Return minimum value of data."""
-801        return np.nanmin(self.data)
+            
799    @property
+800    def min(self):
+801        """Return minimum value of data."""
+802        return np.nanmin(self.data)
 
@@ -3912,10 +3913,10 @@
Returns
-
804    @property
-805    def max(self):
-806        """Return maximum value of data."""
-807        return np.nanmax(self.data)
+            
805    @property
+806    def max(self):
+807        """Return maximum value of data."""
+808        return np.nanmax(self.data)
 
@@ -3933,10 +3934,10 @@
Returns
-
810    @property
-811    def mean(self):
-812        """Return mean value of data."""
-813        return np.nanmean(self.data)
+            
811    @property
+812    def mean(self):
+813        """Return mean value of data."""
+814        return np.nanmean(self.data)
 
@@ -3954,10 +3955,10 @@
Returns
-
816    @property
-817    def median(self):
-818        """Return median value of data."""
-819        return np.nanmedian(self.data)
+            
817    @property
+818    def median(self):
+819        """Return median value of data."""
+820        return np.nanmedian(self.data)
 
@@ -3977,45 +3978,45 @@
Returns
-
860    def attrs_by_section(self, sect: int, values: bool=False):
-861        """
-862        Provide a tuple of attribute names for the given GRIB2 section.
-863
-864        Parameters
-865        ----------
-866        sect
-867            The GRIB2 section number.
-868        values
-869            Optional (default is `False`) argument to return attributes values.
-870
-871        Returns
-872        -------
-873        attrs_by_section
-874            A list of attribute names or dict of name:value pairs if `values =
-875            True`.
-876        """
-877        if sect in {0,1,6}:
-878            attrs = templates._section_attrs[sect]
-879        elif sect in {3,4,5}:
-880            def _find_class_index(n):
-881                _key = {3:'Grid', 4:'Product', 5:'Data'}
-882                for i,c in enumerate(self.__class__.__mro__):
-883                    if _key[n] in c.__name__:
-884                        return i
-885                else:
-886                    return []
-887            if sys.version_info.minor <= 8:
-888                attrs = templates._section_attrs[sect]+\
-889                        [a for a in dir(self.__class__.__mro__[_find_class_index(sect)]) if not a.startswith('_')]
-890            else:
-891                attrs = templates._section_attrs[sect]+\
-892                        self.__class__.__mro__[_find_class_index(sect)]._attrs
-893        else:
-894            attrs = []
-895        if values:
-896            return {k:getattr(self,k) for k in attrs}
-897        else:
-898            return attrs
+            
861    def attrs_by_section(self, sect: int, values: bool=False):
+862        """
+863        Provide a tuple of attribute names for the given GRIB2 section.
+864
+865        Parameters
+866        ----------
+867        sect
+868            The GRIB2 section number.
+869        values
+870            Optional (default is `False`) argument to return attributes values.
+871
+872        Returns
+873        -------
+874        attrs_by_section
+875            A list of attribute names or dict of name:value pairs if `values =
+876            True`.
+877        """
+878        if sect in {0,1,6}:
+879            attrs = templates._section_attrs[sect]
+880        elif sect in {3,4,5}:
+881            def _find_class_index(n):
+882                _key = {3:'Grid', 4:'Product', 5:'Data'}
+883                for i,c in enumerate(self.__class__.__mro__):
+884                    if _key[n] in c.__name__:
+885                        return i
+886                else:
+887                    return []
+888            if sys.version_info.minor <= 8:
+889                attrs = templates._section_attrs[sect]+\
+890                        [a for a in dir(self.__class__.__mro__[_find_class_index(sect)]) if not a.startswith('_')]
+891            else:
+892                attrs = templates._section_attrs[sect]+\
+893                        self.__class__.__mro__[_find_class_index(sect)]._attrs
+894        else:
+895            attrs = []
+896        if values:
+897            return {k:getattr(self,k) for k in attrs}
+898        else:
+899            return attrs
 
@@ -4049,89 +4050,89 @@
Returns
-
901    def pack(self):
-902        """
-903        Pack GRIB2 section data into a binary message.
-904
-905        It is the user's responsibility to populate the GRIB2 section
-906        information with appropriate metadata.
-907        """
-908        # Create beginning of packed binary message with section 0 and 1 data.
-909        self._sections = []
-910        self._msg,self._pos = g2clib.grib2_create(self.indicatorSection[2:4],self.identificationSection)
-911        self._sections += [0,1]
-912
-913        # Add section 2 if present.
-914        if isinstance(self.section2,bytes) and len(self.section2) > 0:
-915            self._msg,self._pos = g2clib.grib2_addlocal(self._msg,self.section2)
-916            self._sections.append(2)
-917
-918        # Add section 3.
-919        self.section3[1] = self.nx * self.ny
-920        self._msg,self._pos = g2clib.grib2_addgrid(self._msg,self.gridDefinitionSection,
-921                                                   self.gridDefinitionTemplate,
-922                                                   self._deflist)
-923        self._sections.append(3)
-924
-925        # Prepare data.
-926        if self._data is None:
-927            if self._ondiskarray is None:
-928                raise ValueError("Grib2Message object has no data, thus it cannot be packed.")
-929        field = np.copy(self.data)
-930        if self.scanModeFlags is not None:
-931            if self.scanModeFlags[3]:
-932                fieldsave = field.astype('f') # Casting makes a copy
-933                field[1::2,:] = fieldsave[1::2,::-1]
-934        fld = field.astype('f')
-935
-936        # Prepare bitmap, if necessary
-937        bitmapflag = self.bitMapFlag.value
-938        if bitmapflag == 0:
-939            if self.bitmap is not None:
-940                bmap = np.ravel(self.bitmap).astype(DEFAULT_NUMPY_INT)
-941            else:
-942                bmap = np.ravel(np.where(np.isnan(fld),0,1)).astype(DEFAULT_NUMPY_INT)
-943        else:
-944            bmap = None
-945
-946        # Prepare optional coordinate list
-947        if self._coordlist is not None:
-948            crdlist = np.array(self._coordlist,'f')
-949        else:
-950            crdlist = None
-951
-952        # Prepare data for packing if nans are present
-953        fld = np.ravel(fld)
-954        if bitmapflag in {0,254}:
-955            fld = np.where(np.isnan(fld),0,fld)
-956        else:
-957            if np.isnan(fld).any():
-958                if hasattr(self,'priMissingValue'):
-959                    fld = np.where(np.isnan(fld),self.priMissingValue,fld)
-960            if hasattr(self,'_missvalmap'):
-961                if hasattr(self,'priMissingValue'):
-962                    fld = np.where(self._missvalmap==1,self.priMissingValue,fld)
-963                if hasattr(self,'secMissingValue'):
-964                    fld = np.where(self._missvalmap==2,self.secMissingValue,fld)
-965
-966        # Add sections 4, 5, 6, and 7.
-967        self._msg,self._pos = g2clib.grib2_addfield(self._msg,self.pdtn,
-968                                                    self.productDefinitionTemplate,
-969                                                    crdlist,
-970                                                    self.drtn,
-971                                                    self.dataRepresentationTemplate,
-972                                                    fld,
-973                                                    bitmapflag,
-974                                                    bmap)
-975        self._sections.append(4)
-976        self._sections.append(5)
-977        self._sections.append(6)
-978        self._sections.append(7)
-979
-980        # Finalize GRIB2 message with section 8.
-981        self._msg, self._pos = g2clib.grib2_end(self._msg)
-982        self._sections.append(8)
-983        self.section0[-1] = len(self._msg)
+            
902    def pack(self):
+903        """
+904        Pack GRIB2 section data into a binary message.
+905
+906        It is the user's responsibility to populate the GRIB2 section
+907        information with appropriate metadata.
+908        """
+909        # Create beginning of packed binary message with section 0 and 1 data.
+910        self._sections = []
+911        self._msg,self._pos = g2clib.grib2_create(self.indicatorSection[2:4],self.identificationSection)
+912        self._sections += [0,1]
+913
+914        # Add section 2 if present.
+915        if isinstance(self.section2,bytes) and len(self.section2) > 0:
+916            self._msg,self._pos = g2clib.grib2_addlocal(self._msg,self.section2)
+917            self._sections.append(2)
+918
+919        # Add section 3.
+920        self.section3[1] = self.nx * self.ny
+921        self._msg,self._pos = g2clib.grib2_addgrid(self._msg,self.gridDefinitionSection,
+922                                                   self.gridDefinitionTemplate,
+923                                                   self._deflist)
+924        self._sections.append(3)
+925
+926        # Prepare data.
+927        if self._data is None:
+928            if self._ondiskarray is None:
+929                raise ValueError("Grib2Message object has no data, thus it cannot be packed.")
+930        field = np.copy(self.data)
+931        if self.scanModeFlags is not None:
+932            if self.scanModeFlags[3]:
+933                fieldsave = field.astype('f') # Casting makes a copy
+934                field[1::2,:] = fieldsave[1::2,::-1]
+935        fld = field.astype('f')
+936
+937        # Prepare bitmap, if necessary
+938        bitmapflag = self.bitMapFlag.value
+939        if bitmapflag == 0:
+940            if self.bitmap is not None:
+941                bmap = np.ravel(self.bitmap).astype(DEFAULT_NUMPY_INT)
+942            else:
+943                bmap = np.ravel(np.where(np.isnan(fld),0,1)).astype(DEFAULT_NUMPY_INT)
+944        else:
+945            bmap = None
+946
+947        # Prepare optional coordinate list
+948        if self._coordlist is not None:
+949            crdlist = np.array(self._coordlist,'f')
+950        else:
+951            crdlist = None
+952
+953        # Prepare data for packing if nans are present
+954        fld = np.ravel(fld)
+955        if bitmapflag in {0,254}:
+956            fld = np.where(np.isnan(fld),0,fld)
+957        else:
+958            if np.isnan(fld).any():
+959                if hasattr(self,'priMissingValue'):
+960                    fld = np.where(np.isnan(fld),self.priMissingValue,fld)
+961            if hasattr(self,'_missvalmap'):
+962                if hasattr(self,'priMissingValue'):
+963                    fld = np.where(self._missvalmap==1,self.priMissingValue,fld)
+964                if hasattr(self,'secMissingValue'):
+965                    fld = np.where(self._missvalmap==2,self.secMissingValue,fld)
+966
+967        # Add sections 4, 5, 6, and 7.
+968        self._msg,self._pos = g2clib.grib2_addfield(self._msg,self.pdtn,
+969                                                    self.productDefinitionTemplate,
+970                                                    crdlist,
+971                                                    self.drtn,
+972                                                    self.dataRepresentationTemplate,
+973                                                    fld,
+974                                                    bitmapflag,
+975                                                    bmap)
+976        self._sections.append(4)
+977        self._sections.append(5)
+978        self._sections.append(6)
+979        self._sections.append(7)
+980
+981        # Finalize GRIB2 message with section 8.
+982        self._msg, self._pos = g2clib.grib2_end(self._msg)
+983        self._sections.append(8)
+984        self.section0[-1] = len(self._msg)
 
@@ -4152,14 +4153,14 @@
Returns
-
986    @property
-987    def data(self) -> np.array:
-988        """Access the unpacked data values."""
-989        if self._data is None:
-990            if self._auto_nans != _AUTO_NANS:
-991                self._data = self._ondiskarray
-992            self._data = np.asarray(self._ondiskarray)
-993        return self._data
+            
987    @property
+988    def data(self) -> np.array:
+989        """Access the unpacked data values."""
+990        if self._data is None:
+991            if self._auto_nans != _AUTO_NANS:
+992                self._data = self._ondiskarray
+993            self._data = np.asarray(self._ondiskarray)
+994        return self._data
 
@@ -4179,16 +4180,16 @@
Returns
-
1003    def flush_data(self):
-1004        """
-1005        Flush the unpacked data values from the Grib2Message object.
-1006
-1007        Note: If the Grib2Message object was constructed from "scratch" (i.e.
-1008        not read from file), this method will remove the data array from
-1009        the object and it cannot be recovered.
-1010        """
-1011        self._data = None
-1012        self.bitmap = None
+            
1004    def flush_data(self):
+1005        """
+1006        Flush the unpacked data values from the Grib2Message object.
+1007
+1008        Note: If the Grib2Message object was constructed from "scratch" (i.e.
+1009        not read from file), this method will remove the data array from
+1010        the object and it cannot be recovered.
+1011        """
+1012        self._data = None
+1013        self.bitmap = None
 
@@ -4212,9 +4213,9 @@
Returns
-
1023    def latlons(self, *args, **kwrgs):
-1024        """Alias for `grib2io.Grib2Message.grid` method."""
-1025        return self.grid(*args, **kwrgs)
+            
1024    def latlons(self, *args, **kwrgs):
+1025        """Alias for `grib2io.Grib2Message.grid` method."""
+1026        return self.grid(*args, **kwrgs)
 
@@ -4234,170 +4235,170 @@
Returns
-
1028    def grid(self, unrotate: bool=True):
-1029        """
-1030        Return lats,lons (in degrees) of grid.
-1031
-1032        Currently can handle reg. lat/lon,cglobal Gaussian, mercator,
-1033        stereographic, lambert conformal, albers equal-area, space-view and
-1034        azimuthal equidistant grids.
-1035
-1036        Parameters
-1037        ----------
-1038        unrotate
-1039            If `True` [DEFAULT], and grid is rotated lat/lon, then unrotate the
-1040            grid, otherwise `False`, do not.
-1041
-1042        Returns
-1043        -------
-1044        lats, lons : numpy.ndarray
-1045            Returns two numpy.ndarrays with dtype=numpy.float32 of grid
-1046            latitudes and longitudes in units of degrees.
-1047        """
-1048        if self._sha1_section3 in _latlon_datastore.keys():
-1049            return (_latlon_datastore[self._sha1_section3]['latitude'],
-1050                    _latlon_datastore[self._sha1_section3]['longitude'])
-1051        gdtn = self.gridDefinitionTemplateNumber.value
-1052        gdtmpl = self.gridDefinitionTemplate
-1053        reggrid = self.gridDefinitionSection[2] == 0 # This means regular 2-d grid
-1054        if gdtn == 0:
-1055            # Regular lat/lon grid
-1056            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
-1057            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
-1058            dlon = self.gridlengthXDirection
-1059            dlat = self.gridlengthYDirection
-1060            if lon2 < lon1 and dlon < 0: lon1 = -lon1
-1061            lats = np.linspace(lat1,lat2,self.ny)
-1062            if reggrid:
-1063                lons = np.linspace(lon1,lon2,self.nx)
-1064            else:
-1065                lons = np.linspace(lon1,lon2,self.ny*2)
-1066            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
-1067        elif gdtn == 1: # Rotated Lat/Lon grid
-1068            pj = pyproj.Proj(self.projParameters)
-1069            lat1,lon1 = self.latitudeFirstGridpoint,self.longitudeFirstGridpoint
-1070            lat2,lon2 = self.latitudeLastGridpoint,self.longitudeLastGridpoint
-1071            if lon1 > 180.0: lon1 -= 360.0
-1072            if lon2 > 180.0: lon2 -= 360.0
-1073            lats = np.linspace(lat1,lat2,self.ny)
-1074            lons = np.linspace(lon1,lon2,self.nx)
-1075            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
-1076            if unrotate:
-1077                from grib2io.utils import rotated_grid
-1078                lats,lons = rotated_grid.unrotate(lats,lons,self.anglePoleRotation,
-1079                                                  self.latitudeSouthernPole,
-1080                                                  self.longitudeSouthernPole)
-1081        elif gdtn == 40: # Gaussian grid (only works for global!)
-1082            from grib2io.utils.gauss_grid import gaussian_latitudes
-1083            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
-1084            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
-1085            nlats = self.ny
-1086            if not reggrid: # Reduced Gaussian grid.
-1087                nlons = 2*nlats
-1088                dlon = 360./nlons
-1089            else:
-1090                nlons = self.nx
-1091                dlon = self.gridlengthXDirection
-1092            lons = np.linspace(lon1,lon2,nlons)
-1093            # Compute Gaussian lats (north to south)
-1094            lats = gaussian_latitudes(nlats)
-1095            if lat1 < lat2:  # reverse them if necessary
-1096                lats = lats[::-1]
-1097            lons,lats = np.meshgrid(lons,lats)
-1098        elif gdtn in {10,20,30,31,110}:
-1099            # Mercator, Lambert Conformal, Stereographic, Albers Equal Area,
-1100            # Azimuthal Equidistant
-1101            dx,dy = self.gridlengthXDirection, self.gridlengthYDirection
-1102            lon1,lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
-1103            pj = pyproj.Proj(self.projParameters)
-1104            llcrnrx, llcrnry = pj(lon1,lat1)
-1105            x = llcrnrx+dx*np.arange(self.nx)
-1106            y = llcrnry+dy*np.arange(self.ny)
-1107            x,y = np.meshgrid(x, y)
-1108            lons,lats = pj(x, y, inverse=True)
-1109        elif gdtn == 90:
-1110            # Satellite Projection
-1111            dx = self.gridlengthXDirection
-1112            dy = self.gridlengthYDirection
-1113            pj = pyproj.Proj(self.projParameters)
-1114            x = dx*np.indices((self.ny,self.nx),'f')[1,:,:]
-1115            x -= 0.5*x.max()
-1116            y = dy*np.indices((self.ny,self.nx),'f')[0,:,:]
-1117            y -= 0.5*y.max()
-1118            lons,lats = pj(x,y,inverse=True)
-1119            # Set lons,lats to 1.e30 where undefined
-1120            abslons = np.fabs(lons)
-1121            abslats = np.fabs(lats)
-1122            lons = np.where(abslons < 1.e20, lons, 1.e30)
-1123            lats = np.where(abslats < 1.e20, lats, 1.e30)
-1124        elif gdtn == 32769:
-1125            # Special NCEP Grid, Rotated Lat/Lon, Arakawa E-Grid (Non-Staggered)
-1126            from grib2io.utils import arakawa_rotated_grid
-1127            from grib2io.utils.rotated_grid import DEG2RAD
-1128            di, dj = 0.0, 0.0
-1129            do_180 = False
-1130            idir = 1 if self.scanModeFlags[0] == 0 else -1
-1131            jdir = -1 if self.scanModeFlags[1] == 0 else 1
-1132            grid_oriented = 0 if self.resolutionAndComponentFlags[4] == 0 else 1
-1133            do_rot = 1 if grid_oriented == 1 else 0
-1134            la1 = self.latitudeFirstGridpoint
-1135            lo1 = self.longitudeFirstGridpoint
-1136            clon = self.longitudeCenterGridpoint
-1137            clat = self.latitudeCenterGridpoint
-1138            lasp = clat - 90.0
-1139            losp = clon
-1140            llat, llon = arakawa_rotated_grid.ll2rot(la1,lo1,lasp,losp)
-1141            la2, lo2 = arakawa_rotated_grid.rot2ll(-llat,-llon,lasp,losp)
-1142            rlat = -llat
-1143            rlon = -llon
-1144            if self.nx == 1:
-1145                di = 0.0
-1146            elif idir == 1:
-1147                ti = rlon
-1148                while ti < llon:
-1149                    ti += 360.0
-1150                di = (ti - llon)/float(self.nx-1)
-1151            else:
-1152                ti = llon
-1153                while ti < rlon:
-1154                    ti += 360.0
-1155                di = (ti - rlon)/float(self.nx-1)
-1156            if self.ny == 1:
-1157               dj = 0.0
-1158            else:
-1159                dj = (rlat - llat)/float(self.ny-1)
-1160                if dj < 0.0:
-1161                    dj = -dj
-1162            if idir == 1:
-1163                if llon > rlon:
-1164                    llon -= 360.0
-1165                if llon < 0 and rlon > 0:
-1166                    do_180 = True
-1167            else:
-1168                if rlon > llon:
-1169                    rlon -= 360.0
-1170                if rlon < 0 and llon > 0:
-1171                    do_180 = True
-1172            xlat1d = llat + (np.arange(self.ny)*jdir*dj)
-1173            xlon1d = llon + (np.arange(self.nx)*idir*di)
-1174            xlons, xlats = np.meshgrid(xlon1d,xlat1d)
-1175            rot2ll_vectorized = np.vectorize(arakawa_rotated_grid.rot2ll)
-1176            lats, lons = rot2ll_vectorized(xlats,xlons,lasp,losp)
-1177            if do_180:
-1178                lons = np.where(lons>180.0,lons-360.0,lons)
-1179            vector_rotation_angles_vectorized = np.vectorize(arakawa_rotated_grid.vector_rotation_angles)
-1180            rots = vector_rotation_angles_vectorized(lats, lons, clat, losp, xlats)
-1181            del xlat1d, xlon1d, xlats, xlons
-1182        else:
-1183            raise ValueError('Unsupported grid')
-1184
-1185        _latlon_datastore[self._sha1_section3] = dict(latitude=lats,longitude=lons)
-1186        try:
-1187            _latlon_datastore[self._sha1_section3]['vector_rotation_angles'] = rots
-1188        except(NameError):
-1189            pass
-1190
-1191        return lats, lons
+            
1029    def grid(self, unrotate: bool=True):
+1030        """
+1031        Return lats,lons (in degrees) of grid.
+1032
+1033        Currently can handle reg. lat/lon,cglobal Gaussian, mercator,
+1034        stereographic, lambert conformal, albers equal-area, space-view and
+1035        azimuthal equidistant grids.
+1036
+1037        Parameters
+1038        ----------
+1039        unrotate
+1040            If `True` [DEFAULT], and grid is rotated lat/lon, then unrotate the
+1041            grid, otherwise `False`, do not.
+1042
+1043        Returns
+1044        -------
+1045        lats, lons : numpy.ndarray
+1046            Returns two numpy.ndarrays with dtype=numpy.float32 of grid
+1047            latitudes and longitudes in units of degrees.
+1048        """
+1049        if self._sha1_section3 in _latlon_datastore.keys():
+1050            return (_latlon_datastore[self._sha1_section3]['latitude'],
+1051                    _latlon_datastore[self._sha1_section3]['longitude'])
+1052        gdtn = self.gridDefinitionTemplateNumber.value
+1053        gdtmpl = self.gridDefinitionTemplate
+1054        reggrid = self.gridDefinitionSection[2] == 0 # This means regular 2-d grid
+1055        if gdtn == 0:
+1056            # Regular lat/lon grid
+1057            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
+1058            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
+1059            dlon = self.gridlengthXDirection
+1060            dlat = self.gridlengthYDirection
+1061            if lon2 < lon1 and dlon < 0: lon1 = -lon1
+1062            lats = np.linspace(lat1,lat2,self.ny)
+1063            if reggrid:
+1064                lons = np.linspace(lon1,lon2,self.nx)
+1065            else:
+1066                lons = np.linspace(lon1,lon2,self.ny*2)
+1067            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
+1068        elif gdtn == 1: # Rotated Lat/Lon grid
+1069            pj = pyproj.Proj(self.projParameters)
+1070            lat1,lon1 = self.latitudeFirstGridpoint,self.longitudeFirstGridpoint
+1071            lat2,lon2 = self.latitudeLastGridpoint,self.longitudeLastGridpoint
+1072            if lon1 > 180.0: lon1 -= 360.0
+1073            if lon2 > 180.0: lon2 -= 360.0
+1074            lats = np.linspace(lat1,lat2,self.ny)
+1075            lons = np.linspace(lon1,lon2,self.nx)
+1076            lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays.
+1077            if unrotate:
+1078                from grib2io.utils import rotated_grid
+1079                lats,lons = rotated_grid.unrotate(lats,lons,self.anglePoleRotation,
+1080                                                  self.latitudeSouthernPole,
+1081                                                  self.longitudeSouthernPole)
+1082        elif gdtn == 40: # Gaussian grid (only works for global!)
+1083            from grib2io.utils.gauss_grid import gaussian_latitudes
+1084            lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
+1085            lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint
+1086            nlats = self.ny
+1087            if not reggrid: # Reduced Gaussian grid.
+1088                nlons = 2*nlats
+1089                dlon = 360./nlons
+1090            else:
+1091                nlons = self.nx
+1092                dlon = self.gridlengthXDirection
+1093            lons = np.linspace(lon1,lon2,nlons)
+1094            # Compute Gaussian lats (north to south)
+1095            lats = gaussian_latitudes(nlats)
+1096            if lat1 < lat2:  # reverse them if necessary
+1097                lats = lats[::-1]
+1098            lons,lats = np.meshgrid(lons,lats)
+1099        elif gdtn in {10,20,30,31,110}:
+1100            # Mercator, Lambert Conformal, Stereographic, Albers Equal Area,
+1101            # Azimuthal Equidistant
+1102            dx,dy = self.gridlengthXDirection, self.gridlengthYDirection
+1103            lon1,lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint
+1104            pj = pyproj.Proj(self.projParameters)
+1105            llcrnrx, llcrnry = pj(lon1,lat1)
+1106            x = llcrnrx+dx*np.arange(self.nx)
+1107            y = llcrnry+dy*np.arange(self.ny)
+1108            x,y = np.meshgrid(x, y)
+1109            lons,lats = pj(x, y, inverse=True)
+1110        elif gdtn == 90:
+1111            # Satellite Projection
+1112            dx = self.gridlengthXDirection
+1113            dy = self.gridlengthYDirection
+1114            pj = pyproj.Proj(self.projParameters)
+1115            x = dx*np.indices((self.ny,self.nx),'f')[1,:,:]
+1116            x -= 0.5*x.max()
+1117            y = dy*np.indices((self.ny,self.nx),'f')[0,:,:]
+1118            y -= 0.5*y.max()
+1119            lons,lats = pj(x,y,inverse=True)
+1120            # Set lons,lats to 1.e30 where undefined
+1121            abslons = np.fabs(lons)
+1122            abslats = np.fabs(lats)
+1123            lons = np.where(abslons < 1.e20, lons, 1.e30)
+1124            lats = np.where(abslats < 1.e20, lats, 1.e30)
+1125        elif gdtn == 32769:
+1126            # Special NCEP Grid, Rotated Lat/Lon, Arakawa E-Grid (Non-Staggered)
+1127            from grib2io.utils import arakawa_rotated_grid
+1128            from grib2io.utils.rotated_grid import DEG2RAD
+1129            di, dj = 0.0, 0.0
+1130            do_180 = False
+1131            idir = 1 if self.scanModeFlags[0] == 0 else -1
+1132            jdir = -1 if self.scanModeFlags[1] == 0 else 1
+1133            grid_oriented = 0 if self.resolutionAndComponentFlags[4] == 0 else 1
+1134            do_rot = 1 if grid_oriented == 1 else 0
+1135            la1 = self.latitudeFirstGridpoint
+1136            lo1 = self.longitudeFirstGridpoint
+1137            clon = self.longitudeCenterGridpoint
+1138            clat = self.latitudeCenterGridpoint
+1139            lasp = clat - 90.0
+1140            losp = clon
+1141            llat, llon = arakawa_rotated_grid.ll2rot(la1,lo1,lasp,losp)
+1142            la2, lo2 = arakawa_rotated_grid.rot2ll(-llat,-llon,lasp,losp)
+1143            rlat = -llat
+1144            rlon = -llon
+1145            if self.nx == 1:
+1146                di = 0.0
+1147            elif idir == 1:
+1148                ti = rlon
+1149                while ti < llon:
+1150                    ti += 360.0
+1151                di = (ti - llon)/float(self.nx-1)
+1152            else:
+1153                ti = llon
+1154                while ti < rlon:
+1155                    ti += 360.0
+1156                di = (ti - rlon)/float(self.nx-1)
+1157            if self.ny == 1:
+1158               dj = 0.0
+1159            else:
+1160                dj = (rlat - llat)/float(self.ny-1)
+1161                if dj < 0.0:
+1162                    dj = -dj
+1163            if idir == 1:
+1164                if llon > rlon:
+1165                    llon -= 360.0
+1166                if llon < 0 and rlon > 0:
+1167                    do_180 = True
+1168            else:
+1169                if rlon > llon:
+1170                    rlon -= 360.0
+1171                if rlon < 0 and llon > 0:
+1172                    do_180 = True
+1173            xlat1d = llat + (np.arange(self.ny)*jdir*dj)
+1174            xlon1d = llon + (np.arange(self.nx)*idir*di)
+1175            xlons, xlats = np.meshgrid(xlon1d,xlat1d)
+1176            rot2ll_vectorized = np.vectorize(arakawa_rotated_grid.rot2ll)
+1177            lats, lons = rot2ll_vectorized(xlats,xlons,lasp,losp)
+1178            if do_180:
+1179                lons = np.where(lons>180.0,lons-360.0,lons)
+1180            vector_rotation_angles_vectorized = np.vectorize(arakawa_rotated_grid.vector_rotation_angles)
+1181            rots = vector_rotation_angles_vectorized(lats, lons, clat, losp, xlats)
+1182            del xlat1d, xlon1d, xlats, xlons
+1183        else:
+1184            raise ValueError('Unsupported grid')
+1185
+1186        _latlon_datastore[self._sha1_section3] = dict(latitude=lats,longitude=lons)
+1187        try:
+1188            _latlon_datastore[self._sha1_section3]['vector_rotation_angles'] = rots
+1189        except(NameError):
+1190            pass
+1191
+1192        return lats, lons
 
@@ -4436,40 +4437,40 @@
Returns
-
1194    def map_keys(self):
-1195        """
-1196        Unpack data grid replacing integer values with strings.
-1197
-1198        These types of fields are categorical or classifications where data
-1199        values do not represent an observable or predictable physical quantity.
-1200        An example of such a field would be [Dominant Precipitation Type -
-1201        DPTYPE](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-201.shtml)
-1202
-1203        Returns
-1204        -------
-1205        map_keys
-1206            numpy.ndarray of string values per element.
-1207        """
-1208        hold_auto_nans = _AUTO_NANS
-1209        set_auto_nans(False)
-1210        if (np.all(self.section1[0:2]==[7,14]) and self.shortName == 'PWTHER') or \
-1211        (np.all(self.section1[0:2]==[8,65535]) and self.shortName == 'WX'):
-1212            keys = utils.decode_wx_strings(self.section2)
-1213            if hasattr(self,'priMissingValue') and self.priMissingValue not in [None,0]:
-1214                keys[int(self.priMissingValue)] = 'Missing'
-1215            if hasattr(self,'secMissingValue') and self.secMissingValue not in [None,0]:
-1216                keys[int(self.secMissingValue)] = 'Missing'
-1217            u,inv = np.unique(self.data,return_inverse=True)
-1218            fld = np.array([keys[x] for x in u])[inv].reshape(self.data.shape)
-1219        else:
-1220            # For data whose units are defined in a code table (i.e. classification or mask)
-1221            tblname = re.findall(r'\d\.\d+',self.units,re.IGNORECASE)[0]
-1222            fld = self.data.astype(np.int32).astype(str)
-1223            tbl = tables.get_table(tblname,expand=True)
-1224            for val in np.unique(fld):
-1225                fld = np.where(fld==val,tbl[val],fld)
-1226        set_auto_nans(hold_auto_nans)
-1227        return fld
+            
1195    def map_keys(self):
+1196        """
+1197        Unpack data grid replacing integer values with strings.
+1198
+1199        These types of fields are categorical or classifications where data
+1200        values do not represent an observable or predictable physical quantity.
+1201        An example of such a field would be [Dominant Precipitation Type -
+1202        DPTYPE](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-201.shtml)
+1203
+1204        Returns
+1205        -------
+1206        map_keys
+1207            numpy.ndarray of string values per element.
+1208        """
+1209        hold_auto_nans = _AUTO_NANS
+1210        set_auto_nans(False)
+1211        if (np.all(self.section1[0:2]==[7,14]) and self.shortName == 'PWTHER') or \
+1212        (np.all(self.section1[0:2]==[8,65535]) and self.shortName == 'WX'):
+1213            keys = utils.decode_wx_strings(self.section2)
+1214            if hasattr(self,'priMissingValue') and self.priMissingValue not in [None,0]:
+1215                keys[int(self.priMissingValue)] = 'Missing'
+1216            if hasattr(self,'secMissingValue') and self.secMissingValue not in [None,0]:
+1217                keys[int(self.secMissingValue)] = 'Missing'
+1218            u,inv = np.unique(self.data,return_inverse=True)
+1219            fld = np.array([keys[x] for x in u])[inv].reshape(self.data.shape)
+1220        else:
+1221            # For data whose units are defined in a code table (i.e. classification or mask)
+1222            tblname = re.findall(r'\d\.\d+',self.units,re.IGNORECASE)[0]
+1223            fld = self.data.astype(np.int32).astype(str)
+1224            tbl = tables.get_table(tblname,expand=True)
+1225            for val in np.unique(fld):
+1226                fld = np.where(fld==val,tbl[val],fld)
+1227        set_auto_nans(hold_auto_nans)
+1228        return fld
 
@@ -4500,35 +4501,35 @@
Returns
-
1230    def to_bytes(self, validate: bool=True):
-1231        """
-1232        Return packed GRIB2 message in bytes format.
-1233
-1234        This will be useful for exporting data in non-file formats. For example,
-1235        can be used to output grib data directly to S3 using the boto3 client
-1236        without the need to write a temporary file to upload first.
-1237
-1238        Parameters
-1239        ----------
-1240        validate: default=True
-1241            If `True` (DEFAULT), validates first/last four bytes for proper
-1242            formatting, else returns None. If `False`, message is output as is.
-1243
-1244        Returns
-1245        -------
-1246        to_bytes
-1247            Returns GRIB2 formatted message as bytes.
-1248        """
-1249        if hasattr(self,'_msg'):
-1250            if validate:
-1251                if self.validate():
-1252                    return self._msg
-1253                else:
-1254                    return None
-1255            else:
-1256                return self._msg
-1257        else:
-1258            return None
+            
1231    def to_bytes(self, validate: bool=True):
+1232        """
+1233        Return packed GRIB2 message in bytes format.
+1234
+1235        This will be useful for exporting data in non-file formats. For example,
+1236        can be used to output grib data directly to S3 using the boto3 client
+1237        without the need to write a temporary file to upload first.
+1238
+1239        Parameters
+1240        ----------
+1241        validate: default=True
+1242            If `True` (DEFAULT), validates first/last four bytes for proper
+1243            formatting, else returns None. If `False`, message is output as is.
+1244
+1245        Returns
+1246        -------
+1247        to_bytes
+1248            Returns GRIB2 formatted message as bytes.
+1249        """
+1250        if hasattr(self,'_msg'):
+1251            if validate:
+1252                if self.validate():
+1253                    return self._msg
+1254                else:
+1255                    return None
+1256            else:
+1257                return self._msg
+1258        else:
+1259            return None
 
@@ -4566,81 +4567,81 @@
Returns
-
1261    def interpolate(self, method, grid_def_out, method_options=None, drtn=None,
-1262                    num_threads=1):
-1263        """
-1264        Grib2Message Interpolator
-1265
-1266        Performs spatial interpolation via the [NCEPLIBS-ip
-1267        library](https://github.com/NOAA-EMC/NCEPLIBS-ip). This interpolate
-1268        method only supports scalar interpolation. If you need to perform
-1269        vector interpolation, use the module-level `grib2io.interpolate`
-1270        function.
-1271
-1272        Parameters
-1273        ----------
-1274        method
-1275            Interpolate method to use. This can either be an integer or string
-1276            using the following mapping:
-1277
-1278            | Interpolate Scheme | Integer Value |
-1279            | :---:              | :---:         |
-1280            | 'bilinear'         | 0             |
-1281            | 'bicubic'          | 1             |
-1282            | 'neighbor'         | 2             |
-1283            | 'budget'           | 3             |
-1284            | 'spectral'         | 4             |
-1285            | 'neighbor-budget'  | 6             |
-1286
-1287        grid_def_out : grib2io.Grib2GridDef
-1288            Grib2GridDef object of the output grid.
-1289        method_options : list of ints, optional
-1290            Interpolation options. See the NCEPLIBS-ip documentation for
-1291            more information on how these are used.
-1292        drtn
-1293            Data Representation Template to be used for the returned
-1294            interpolated GRIB2 message. When `None`, the data representation
-1295            template of the source GRIB2 message is used. Once again, it is the
-1296            user's responsibility to properly set the Data Representation
-1297            Template attributes.
-1298        num_threads : int, optional
-1299            Number of OpenMP threads to use for interpolation. The default
-1300            value is 1. If grib2io_interp was not built with OpenMP, then
-1301            this keyword argument and value will have no impact.
-1302
-1303        Returns
-1304        -------
-1305        interpolate
-1306            If interpolating to a grid, a new Grib2Message object is returned.
-1307            The GRIB2 metadata of the new Grib2Message object is identical to
-1308            the input except where required to be different because of the new
-1309            grid specs and possibly a new data representation template.
-1310
-1311            If interpolating to station points, the interpolated data values are
-1312            returned as a numpy.ndarray.
-1313        """
-1314        section0 = self.section0
-1315        section0[-1] = 0
-1316        gds = [0, grid_def_out.npoints, 0, 255, grid_def_out.gdtn]
-1317        section3 = np.concatenate((gds,grid_def_out.gdt))
-1318        drtn = self.drtn if drtn is None else drtn
-1319
-1320        msg = Grib2Message(section0,self.section1,self.section2,section3,
-1321                           self.section4,None,self.bitMapFlag.value,drtn=drtn)
-1322
-1323        msg._msgnum = -1
-1324        msg._deflist = self._deflist
-1325        msg._coordlist = self._coordlist
-1326        shape = (msg.ny,msg.nx)
-1327        ndim = 2
-1328        if msg.typeOfValues == 0:
-1329            dtype = 'float32'
-1330        elif msg.typeOfValues == 1:
-1331            dtype = 'int32'
-1332        msg._data = interpolate(self.data,method,Grib2GridDef.from_section3(self.section3),grid_def_out,
-1333                                method_options=method_options,num_threads=num_threads).reshape(msg.ny,msg.nx)
-1334        msg.section5[0] = grid_def_out.npoints
-1335        return msg
+            
1262    def interpolate(self, method, grid_def_out, method_options=None, drtn=None,
+1263                    num_threads=1):
+1264        """
+1265        Grib2Message Interpolator
+1266
+1267        Performs spatial interpolation via the [NCEPLIBS-ip
+1268        library](https://github.com/NOAA-EMC/NCEPLIBS-ip). This interpolate
+1269        method only supports scalar interpolation. If you need to perform
+1270        vector interpolation, use the module-level `grib2io.interpolate`
+1271        function.
+1272
+1273        Parameters
+1274        ----------
+1275        method
+1276            Interpolate method to use. This can either be an integer or string
+1277            using the following mapping:
+1278
+1279            | Interpolate Scheme | Integer Value |
+1280            | :---:              | :---:         |
+1281            | 'bilinear'         | 0             |
+1282            | 'bicubic'          | 1             |
+1283            | 'neighbor'         | 2             |
+1284            | 'budget'           | 3             |
+1285            | 'spectral'         | 4             |
+1286            | 'neighbor-budget'  | 6             |
+1287
+1288        grid_def_out : grib2io.Grib2GridDef
+1289            Grib2GridDef object of the output grid.
+1290        method_options : list of ints, optional
+1291            Interpolation options. See the NCEPLIBS-ip documentation for
+1292            more information on how these are used.
+1293        drtn
+1294            Data Representation Template to be used for the returned
+1295            interpolated GRIB2 message. When `None`, the data representation
+1296            template of the source GRIB2 message is used. Once again, it is the
+1297            user's responsibility to properly set the Data Representation
+1298            Template attributes.
+1299        num_threads : int, optional
+1300            Number of OpenMP threads to use for interpolation. The default
+1301            value is 1. If grib2io_interp was not built with OpenMP, then
+1302            this keyword argument and value will have no impact.
+1303
+1304        Returns
+1305        -------
+1306        interpolate
+1307            If interpolating to a grid, a new Grib2Message object is returned.
+1308            The GRIB2 metadata of the new Grib2Message object is identical to
+1309            the input except where required to be different because of the new
+1310            grid specs and possibly a new data representation template.
+1311
+1312            If interpolating to station points, the interpolated data values are
+1313            returned as a numpy.ndarray.
+1314        """
+1315        section0 = self.section0
+1316        section0[-1] = 0
+1317        gds = [0, grid_def_out.npoints, 0, 255, grid_def_out.gdtn]
+1318        section3 = np.concatenate((gds,grid_def_out.gdt))
+1319        drtn = self.drtn if drtn is None else drtn
+1320
+1321        msg = Grib2Message(section0,self.section1,self.section2,section3,
+1322                           self.section4,None,self.bitMapFlag.value,drtn=drtn)
+1323
+1324        msg._msgnum = -1
+1325        msg._deflist = self._deflist
+1326        msg._coordlist = self._coordlist
+1327        shape = (msg.ny,msg.nx)
+1328        ndim = 2
+1329        if msg.typeOfValues == 0:
+1330            dtype = 'float32'
+1331        elif msg.typeOfValues == 1:
+1332            dtype = 'int32'
+1333        msg._data = interpolate(self.data,method,Grib2GridDef.from_section3(self.section3),grid_def_out,
+1334                                method_options=method_options,num_threads=num_threads).reshape(msg.ny,msg.nx)
+1335        msg.section5[0] = grid_def_out.npoints
+1336        return msg
 
@@ -4739,138 +4740,138 @@
Returns
-
1338    def subset(self, lats, lons):
-1339        """
-1340        Return a spatial subset.
-1341
-1342        Currently only supports regular grids of the following types:
-1343
-1344        | Grid Type                                                    | gdtn  |
-1345        | :---:                                                        | :---: |
-1346        | Latitude/Longitude, Equidistant Cylindrical, or Plate Carree | 0     |
-1347        | Rotated Latitude/Longitude                                   | 1     |
-1348        | Mercator                                                     | 10    |
-1349        | Polar Stereographic                                          | 20    |
-1350        | Lambert Conformal                                            | 30    |
-1351        | Albers Equal-Area                                            | 31    |
-1352        | Gaussian Latitude/Longitude                                  | 40    |
-1353        | Equatorial Azimuthal Equidistant Projection                  | 110   |
-1354
-1355        Parameters
-1356        ----------
-1357        lats
-1358            List or tuple of latitudes.  The minimum and maximum latitudes will
-1359            be used to define the southern and northern boundaries.
-1360
-1361            The order of the latitudes is not important.  The function will
-1362            determine which is the minimum and maximum.
-1363
-1364            The latitudes should be in decimal degrees with 0.0 at the equator,
-1365            positive values in the northern hemisphere increasing to 90, and
-1366            negative values in the southern hemisphere decreasing to -90.
-1367        lons
-1368            List or tuple of longitudes.  The minimum and maximum longitudes
-1369            will be used to define the western and eastern boundaries.
-1370
-1371            The order of the longitudes is not important.  The function will
-1372            determine which is the minimum and maximum.
-1373
-1374            GRIB2 longitudes should be in decimal degrees with 0.0 at the prime
-1375            meridian, positive values increasing eastward to 360.  There are no
-1376            negative GRIB2 longitudes.
-1377
-1378            The typical west longitudes that start at 0.0 at the prime meridian
-1379            and decrease to -180 westward, are converted to GRIB2 longitudes by
-1380            '360 - (absolute value of the west longitude)' where typical
-1381            eastern longitudes are unchanged as GRIB2 longitudes.
-1382
-1383        Returns
-1384        -------
-1385        subset
-1386            A spatial subset of a GRIB2 message.
-1387        """
-1388        if self.gdtn not in [0, 1, 10, 20, 30, 31, 40, 110]:
-1389            raise ValueError(
-1390                """
-1391
-1392Subset only works for
-1393    Latitude/Longitude, Equidistant Cylindrical, or Plate Carree (gdtn=0)
-1394    Rotated Latitude/Longitude (gdtn=1)
-1395    Mercator (gdtn=10)
-1396    Polar Stereographic (gdtn=20)
-1397    Lambert Conformal (gdtn=30)
-1398    Albers Equal-Area (gdtn=31)
-1399    Gaussian Latitude/Longitude (gdtn=40)
-1400    Equatorial Azimuthal Equidistant Projection (gdtn=110)
-1401
-1402"""
-1403            )
-1404
-1405        if self.nx == 0 or self.ny == 0:
-1406            raise ValueError(
-1407                """
-1408
-1409Subset only works for regular grids.
-1410
-1411"""
-1412            )
-1413
-1414        newmsg = Grib2Message(
-1415            np.copy(self.section0),
-1416            np.copy(self.section1),
-1417            np.copy(self.section2),
-1418            np.copy(self.section3),
-1419            np.copy(self.section4),
-1420            np.copy(self.section5),
-1421        )
-1422
-1423        msglats, msglons = self.grid()
-1424
-1425        la1 = np.max(lats)
-1426        lo1 = np.min(lons)
-1427        la2 = np.min(lats)
-1428        lo2 = np.max(lons)
-1429
-1430        # Find the indices of the first and last grid points to the nearest
-1431        # lat/lon values in the grid.
-1432        first_lat = np.abs(msglats - la1)
-1433        first_lon = np.abs(msglons - lo1)
-1434        max_idx = np.maximum(first_lat, first_lon)
-1435        first_j, first_i = np.where(max_idx == np.min(max_idx))
-1436
-1437        last_lat = np.abs(msglats - la2)
-1438        last_lon = np.abs(msglons - lo2)
-1439        max_idx = np.maximum(last_lat, last_lon)
-1440        last_j, last_i = np.where(max_idx == np.min(max_idx))
-1441
-1442        setattr(newmsg, "latitudeFirstGridpoint", msglats[first_j[0], first_i[0]])
-1443        setattr(newmsg, "longitudeFirstGridpoint", msglons[first_j[0], first_i[0]])
-1444        setattr(newmsg, "nx", np.abs(first_i[0] - last_i[0]))
-1445        setattr(newmsg, "ny", np.abs(first_j[0] - last_j[0]))
-1446
-1447        # Set *LastGridpoint attributes even if only used for gdtn=[0, 1, 40].
-1448        # This information is used to subset xarray datasets and even though
-1449        # unnecessary for some supported grid types, it won't affect a grib2io
-1450        # message to set them.
-1451        setattr(newmsg, "latitudeLastGridpoint", msglats[last_j[0], last_i[0]])
-1452        setattr(newmsg, "longitudeLastGridpoint", msglons[last_j[0], last_i[0]])
-1453
-1454        setattr(
-1455            newmsg,
-1456            "data",
-1457            self.data[
-1458                min(first_j[0], last_j[0]) : max(first_j[0], last_j[0]),
-1459                min(first_i[0], last_i[0]) : max(first_i[0], last_i[0]),
-1460            ].copy(),
-1461        )
-1462
-1463        # Need to set the newmsg._sha1_section3 to a blank string so the grid
-1464        # method ignores the cached lat/lon values.  This will force the grid
-1465        # method to recompute the lat/lon values for the subsetted grid.
-1466        newmsg._sha1_section3 = ""
-1467        newmsg.grid()
-1468
-1469        return newmsg
+            
1339    def subset(self, lats, lons):
+1340        """
+1341        Return a spatial subset.
+1342
+1343        Currently only supports regular grids of the following types:
+1344
+1345        | Grid Type                                                    | gdtn  |
+1346        | :---:                                                        | :---: |
+1347        | Latitude/Longitude, Equidistant Cylindrical, or Plate Carree | 0     |
+1348        | Rotated Latitude/Longitude                                   | 1     |
+1349        | Mercator                                                     | 10    |
+1350        | Polar Stereographic                                          | 20    |
+1351        | Lambert Conformal                                            | 30    |
+1352        | Albers Equal-Area                                            | 31    |
+1353        | Gaussian Latitude/Longitude                                  | 40    |
+1354        | Equatorial Azimuthal Equidistant Projection                  | 110   |
+1355
+1356        Parameters
+1357        ----------
+1358        lats
+1359            List or tuple of latitudes.  The minimum and maximum latitudes will
+1360            be used to define the southern and northern boundaries.
+1361
+1362            The order of the latitudes is not important.  The function will
+1363            determine which is the minimum and maximum.
+1364
+1365            The latitudes should be in decimal degrees with 0.0 at the equator,
+1366            positive values in the northern hemisphere increasing to 90, and
+1367            negative values in the southern hemisphere decreasing to -90.
+1368        lons
+1369            List or tuple of longitudes.  The minimum and maximum longitudes
+1370            will be used to define the western and eastern boundaries.
+1371
+1372            The order of the longitudes is not important.  The function will
+1373            determine which is the minimum and maximum.
+1374
+1375            GRIB2 longitudes should be in decimal degrees with 0.0 at the prime
+1376            meridian, positive values increasing eastward to 360.  There are no
+1377            negative GRIB2 longitudes.
+1378
+1379            The typical west longitudes that start at 0.0 at the prime meridian
+1380            and decrease to -180 westward, are converted to GRIB2 longitudes by
+1381            '360 - (absolute value of the west longitude)' where typical
+1382            eastern longitudes are unchanged as GRIB2 longitudes.
+1383
+1384        Returns
+1385        -------
+1386        subset
+1387            A spatial subset of a GRIB2 message.
+1388        """
+1389        if self.gdtn not in [0, 1, 10, 20, 30, 31, 40, 110]:
+1390            raise ValueError(
+1391                """
+1392
+1393Subset only works for
+1394    Latitude/Longitude, Equidistant Cylindrical, or Plate Carree (gdtn=0)
+1395    Rotated Latitude/Longitude (gdtn=1)
+1396    Mercator (gdtn=10)
+1397    Polar Stereographic (gdtn=20)
+1398    Lambert Conformal (gdtn=30)
+1399    Albers Equal-Area (gdtn=31)
+1400    Gaussian Latitude/Longitude (gdtn=40)
+1401    Equatorial Azimuthal Equidistant Projection (gdtn=110)
+1402
+1403"""
+1404            )
+1405
+1406        if self.nx == 0 or self.ny == 0:
+1407            raise ValueError(
+1408                """
+1409
+1410Subset only works for regular grids.
+1411
+1412"""
+1413            )
+1414
+1415        newmsg = Grib2Message(
+1416            np.copy(self.section0),
+1417            np.copy(self.section1),
+1418            np.copy(self.section2),
+1419            np.copy(self.section3),
+1420            np.copy(self.section4),
+1421            np.copy(self.section5),
+1422        )
+1423
+1424        msglats, msglons = self.grid()
+1425
+1426        la1 = np.max(lats)
+1427        lo1 = np.min(lons)
+1428        la2 = np.min(lats)
+1429        lo2 = np.max(lons)
+1430
+1431        # Find the indices of the first and last grid points to the nearest
+1432        # lat/lon values in the grid.
+1433        first_lat = np.abs(msglats - la1)
+1434        first_lon = np.abs(msglons - lo1)
+1435        max_idx = np.maximum(first_lat, first_lon)
+1436        first_j, first_i = np.where(max_idx == np.min(max_idx))
+1437
+1438        last_lat = np.abs(msglats - la2)
+1439        last_lon = np.abs(msglons - lo2)
+1440        max_idx = np.maximum(last_lat, last_lon)
+1441        last_j, last_i = np.where(max_idx == np.min(max_idx))
+1442
+1443        setattr(newmsg, "latitudeFirstGridpoint", msglats[first_j[0], first_i[0]])
+1444        setattr(newmsg, "longitudeFirstGridpoint", msglons[first_j[0], first_i[0]])
+1445        setattr(newmsg, "nx", np.abs(first_i[0] - last_i[0]))
+1446        setattr(newmsg, "ny", np.abs(first_j[0] - last_j[0]))
+1447
+1448        # Set *LastGridpoint attributes even if only used for gdtn=[0, 1, 40].
+1449        # This information is used to subset xarray datasets and even though
+1450        # unnecessary for some supported grid types, it won't affect a grib2io
+1451        # message to set them.
+1452        setattr(newmsg, "latitudeLastGridpoint", msglats[last_j[0], last_i[0]])
+1453        setattr(newmsg, "longitudeLastGridpoint", msglons[last_j[0], last_i[0]])
+1454
+1455        setattr(
+1456            newmsg,
+1457            "data",
+1458            self.data[
+1459                min(first_j[0], last_j[0]) : max(first_j[0], last_j[0]),
+1460                min(first_i[0], last_i[0]) : max(first_i[0], last_i[0]),
+1461            ].copy(),
+1462        )
+1463
+1464        # Need to set the newmsg._sha1_section3 to a blank string so the grid
+1465        # method ignores the cached lat/lon values.  This will force the grid
+1466        # method to recompute the lat/lon values for the subsetted grid.
+1467        newmsg._sha1_section3 = ""
+1468        newmsg.grid()
+1469
+1470        return newmsg
 
@@ -4972,25 +4973,25 @@
Returns
-
1471    def validate(self):
-1472        """
-1473        Validate a complete GRIB2 message.
-1474
-1475        The g2c library does its own internal validation when g2_gribend() is called, but
-1476        we will check in grib2io also. The validation checks if the first 4 bytes in
-1477        self._msg is 'GRIB' and '7777' as the last 4 bytes and that the message length in
-1478        section 0 equals the length of the packed message.
-1479
-1480        Returns
-1481        -------
-1482        `True` if the packed GRIB2 message is complete and well-formed, `False` otherwise.
-1483        """
-1484        valid = False
-1485        if hasattr(self,'_msg'):
-1486            if self._msg[0:4]+self._msg[-4:] == b'GRIB7777':
-1487                if self.section0[-1] == len(self._msg):
-1488                    valid = True
-1489        return valid
+            
1472    def validate(self):
+1473        """
+1474        Validate a complete GRIB2 message.
+1475
+1476        The g2c library does its own internal validation when g2_gribend() is called, but
+1477        we will check in grib2io also. The validation checks if the first 4 bytes in
+1478        self._msg is 'GRIB' and '7777' as the last 4 bytes and that the message length in
+1479        section 0 equals the length of the packed message.
+1480
+1481        Returns
+1482        -------
+1483        `True` if the packed GRIB2 message is complete and well-formed, `False` otherwise.
+1484        """
+1485        valid = False
+1486        if hasattr(self,'_msg'):
+1487            if self._msg[0:4]+self._msg[-4:] == b'GRIB7777':
+1488                if self.section0[-1] == len(self._msg):
+1489                    valid = True
+1490        return valid
 
@@ -5023,37 +5024,37 @@
Returns
-
1941@dataclass
-1942class Grib2GridDef:
-1943    """
-1944    Class for Grid Definition Template Number and Template as attributes.
-1945
-1946    This allows for cleaner looking code when passing these metadata around.
-1947    For example, the `grib2io._Grib2Message.interpolate` method and
-1948    `grib2io.interpolate` function accepts these objects.
-1949    """
-1950    gdtn: int
-1951    gdt: NDArray
-1952
-1953    @classmethod
-1954    def from_section3(cls, section3):
-1955        return cls(section3[4],section3[5:])
-1956
-1957    @property
-1958    def nx(self):
-1959        return self.gdt[7]
-1960
-1961    @property
-1962    def ny(self):
-1963        return self.gdt[8]
-1964
-1965    @property
-1966    def npoints(self):
-1967        return self.gdt[7] * self.gdt[8]
-1968
-1969    @property
-1970    def shape(self):
-1971        return (self.ny, self.nx)
+            
1942@dataclass
+1943class Grib2GridDef:
+1944    """
+1945    Class for Grid Definition Template Number and Template as attributes.
+1946
+1947    This allows for cleaner looking code when passing these metadata around.
+1948    For example, the `grib2io._Grib2Message.interpolate` method and
+1949    `grib2io.interpolate` function accepts these objects.
+1950    """
+1951    gdtn: int
+1952    gdt: NDArray
+1953
+1954    @classmethod
+1955    def from_section3(cls, section3):
+1956        return cls(section3[4],section3[5:])
+1957
+1958    @property
+1959    def nx(self):
+1960        return self.gdt[7]
+1961
+1962    @property
+1963    def ny(self):
+1964        return self.gdt[8]
+1965
+1966    @property
+1967    def npoints(self):
+1968        return self.gdt[7] * self.gdt[8]
+1969
+1970    @property
+1971    def shape(self):
+1972        return (self.ny, self.nx)
 
@@ -5111,9 +5112,9 @@
Returns
-
1953    @classmethod
-1954    def from_section3(cls, section3):
-1955        return cls(section3[4],section3[5:])
+            
1954    @classmethod
+1955    def from_section3(cls, section3):
+1956        return cls(section3[4],section3[5:])
 
@@ -5129,9 +5130,9 @@
Returns
-
1957    @property
-1958    def nx(self):
-1959        return self.gdt[7]
+            
1958    @property
+1959    def nx(self):
+1960        return self.gdt[7]
 
@@ -5147,9 +5148,9 @@
Returns
-
1961    @property
-1962    def ny(self):
-1963        return self.gdt[8]
+            
1962    @property
+1963    def ny(self):
+1964        return self.gdt[8]
 
@@ -5165,9 +5166,9 @@
Returns
-
1965    @property
-1966    def npoints(self):
-1967        return self.gdt[7] * self.gdt[8]
+            
1966    @property
+1967    def npoints(self):
+1968        return self.gdt[7] * self.gdt[8]
 
@@ -5183,9 +5184,9 @@
Returns
-
1969    @property
-1970    def shape(self):
-1971        return (self.ny, self.nx)
+            
1970    @property
+1971    def shape(self):
+1972        return (self.ny, self.nx)
 
diff --git a/docs/search.js b/docs/search.js index e7c4a30..f914314 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\n(g2c) library for the purpose of\nreading and writing WMO GRIdded Binary, Edition 2 (GRIB2) messages. A physical\nfile can contain one or more GRIB2 messages.

\n\n

GRIB2 file IO is performed directly in Python. The unpacking/packing of GRIB2\ninteger, coded metadata and data sections is performed by the g2c library\nfunctions via the g2clib Cython wrapper module. The decoding/encoding of GRIB2\nmetadata is translated into more descriptive, plain language metadata by looking\nup the integer code values against the appropriate GRIB2 code tables. These\ncode tables are 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,\nclass grib2io.open, the file named filename is opened for reading (mode\n= 'r') and is automatically indexed. The indexing procedure reads some of\nthe GRIB2 metadata for all GRIB2 Messages. A GRIB2 Message may contain\nsubmessages whereby Section 2-7 can be repeated. grib2io accommodates for\nthis by flattening any GRIB2 submessages into multiple individual messages.

\n\n

It is important to note that GRIB2 files from some Meteorological agencies\ncontain other data than GRIB2 messages. GRIB2 files from ECMWF can contain\nGRIB1 and GRIB2 messages. grib2io checks for these and safely ignores them.

\n\n
Attributes
\n\n
    \n
  • closed (bool):\nTrue is file handle is close; False otherwise.
  • \n
  • current_message (int):\nCurrent position of the file in units of GRIB2 Messages.
  • \n
  • levels (tuple):\nTuple containing a unique list of wgrib2-formatted level/layer strings.
  • \n
  • messages (int):\nCount of GRIB2 Messages contained in the file.
  • \n
  • mode (str):\nFile IO mode of opening the file.
  • \n
  • name (str):\nFull path name of the GRIB2 file.
  • \n
  • size (int):\nSize of the file in units of bytes.
  • \n
  • variables (tuple):\nTuple containing a unique list of variable short names (i.e. GRIB2\nabbreviation names).
  • \n
\n"}, {"fullname": "grib2io.open.__init__", "modulename": "grib2io", "qualname": "open.__init__", "kind": "function", "doc": "

Initialize GRIB2 File object instance.

\n\n
Parameters
\n\n
    \n
  • filename: File name containing GRIB2 messages.
  • \n
  • mode (default=\"r\"):\nFile access mode where \"r\" opens the files for reading only; \"w\"\nopens the file for overwriting and \"x\" for writing to a new file.
  • \n
\n", "signature": "(filename: str, mode: Literal['r', 'w', 'x'] = 'r', **kwargs)"}, {"fullname": "grib2io.open.name", "modulename": "grib2io", "qualname": "open.name", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.mode", "modulename": "grib2io", "qualname": "open.mode", "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\nfrom the current position in the file. This read method follows the\nbehavior of Python's builtin open() function, but whereas that operates\non units of bytes, we operate on units of GRIB2 messages.

\n\n
Parameters
\n\n
    \n
  • size (default=None):\nThe number of GRIB2 messages to read from the current position. If\nno argument is give, the default value is None and remainder of\nthe file is read.
  • \n
\n\n
Returns
\n\n
    \n
  • read: Grib2Message object when size = 1 or a list of Grib2Messages\nwhen size > 1.
  • \n
\n", "signature": "(self, size: Optional[int] = 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
    \n
  • pos: The GRIB2 Message number to set the file pointer to.
  • \n
\n", "signature": "(self, pos: int):", "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
    \n
  • msg: GRIB2 message objects to write to file.
  • \n
\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
    \n
  • name: Grib2Message variable shortName
  • \n
\n\n
Returns
\n\n
    \n
  • levels_by_var: A list of unique level strings.
  • \n
\n", "signature": "(self, name: str):", "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
    \n
  • level: Grib2Message variable level
  • \n
\n\n
Returns
\n\n
    \n
  • vars_by_level: A list of unique variable shortName strings.
  • \n
\n", "signature": "(self, level: str):", "funcdef": "def"}, {"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.

\n\n

This interfaces with the grib2io_interp component package that interfaces to\nthe NCEPLIBS-ip library.

\n\n
Parameters
\n\n
    \n
  • a (numpy.ndarray or tuple):\nInput data. If a is a numpy.ndarray, scalar interpolation will be\nperformed. If a is a tuple, then vector interpolation will be\nperformed with the assumption that u = a[0] and v = a[1] and are both\nnumpy.ndarray.

    \n\n

    These data are expected to be in 2-dimensional form with shape (ny, nx)\nor 3-dimensional (:, ny, nx) where the 1st dimension represents another\nspatial, temporal, or classification (i.e. ensemble members) dimension.\nThe function will properly flatten the (ny,nx) dimensions into (nx * ny)\nacceptable for input into the interpolation subroutines.

  • \n
  • method: Interpolate method to use. This can either be an integer or string using\nthe 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\n
Interpolate SchemeInteger Value
'bilinear'0
'bicubic'1
'neighbor'2
'budget'3
'spectral'4
'neighbor-budget'6
\n\n

\n\n
    \n
  • grid_def_in (grib2io.Grib2GridDef):\nGrib2GridDef object for the input grid.
  • \n
  • grid_def_out (grib2io.Grib2GridDef):\nGrib2GridDef object for the output grid or station points.
  • \n
  • method_options (list of ints, optional):\nInterpolation options. See the NCEPLIBS-ip documentation for\nmore information on how these are used.
  • \n
  • num_threads (int, optional):\nNumber of OpenMP threads to use for interpolation. The default\nvalue is 1. If grib2io_interp was not built with OpenMP, then\nthis keyword argument and value will have no impact.
  • \n
\n\n
Returns
\n\n
    \n
  • interpolate: Returns a numpy.ndarray when scalar interpolation is performed or a\ntuple of numpy.ndarrays when vector interpolation is performed with\nthe assumptions that 0-index is the interpolated u and 1-index is the\ninterpolated v.
  • \n
\n", "signature": "(\ta,\tmethod: Union[int, str],\tgrid_def_in,\tgrid_def_out,\tmethod_options=None,\tnum_threads=1):", "funcdef": "def"}, {"fullname": "grib2io.interpolate_to_stations", "modulename": "grib2io", "qualname": "interpolate_to_stations", "kind": "function", "doc": "

Module-level interpolation function for interpolation to stations.

\n\n

Interfaces with the grib2io_interp component package that interfaces to the\nNCEPLIBS-ip\nlibrary. It supports scalar and\nvector interpolation according to the type of object a.

\n\n
Parameters
\n\n
    \n
  • a (numpy.ndarray or tuple):\nInput data. If a is a numpy.ndarray, scalar interpolation will be\nperformed. If a is a tuple, then vector interpolation will be\nperformed with the assumption that u = a[0] and v = a[1] and are both\nnumpy.ndarray.

    \n\n

    These data are expected to be in 2-dimensional form with shape (ny, nx)\nor 3-dimensional (:, ny, nx) where the 1st dimension represents another\nspatial, temporal, or classification (i.e. ensemble members) dimension.\nThe function will properly flatten the (ny,nx) dimensions into (nx * ny)\nacceptable for input into the interpolation subroutines.

  • \n
  • method: Interpolate method to use. This can either be an integer or string using\nthe 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\n
Interpolate SchemeInteger Value
'bilinear'0
'bicubic'1
'neighbor'2
'budget'3
'spectral'4
'neighbor-budget'6
\n\n

\n\n
    \n
  • grid_def_in (grib2io.Grib2GridDef):\nGrib2GridDef object for the input grid.
  • \n
  • lats (numpy.ndarray or list):\nLatitudes for station points
  • \n
  • lons (numpy.ndarray or list):\nLongitudes for station points
  • \n
  • method_options (list of ints, optional):\nInterpolation options. See the NCEPLIBS-ip documentation for\nmore information on how these are used.
  • \n
  • num_threads (int, optional):\nNumber of OpenMP threads to use for interpolation. The default\nvalue is 1. If grib2io_interp was not built with OpenMP, then\nthis keyword argument and value will have no impact.
  • \n
\n\n
Returns
\n\n
    \n
  • interpolate_to_stations: Returns a numpy.ndarray when scalar interpolation is performed or a\ntuple of numpy.ndarrays when vector interpolation is performed with\nthe assumptions that 0-index is the interpolated u and 1-index is the\ninterpolated v.
  • \n
\n", "signature": "(\ta,\tmethod,\tgrid_def_in,\tlats,\tlons,\tmethod_options=None,\tnum_threads=1):", "funcdef": "def"}, {"fullname": "grib2io.Grib2Message", "modulename": "grib2io", "qualname": "Grib2Message", "kind": "class", "doc": "

Creation class for a GRIB2 message.

\n\n

This class returns a dynamically-created Grib2Message object that\ninherits from _Grib2Message and grid, product, data representation\ntemplate classes according to the template numbers for the respective\nsections. If section3, section4, or section5 are omitted, then\nthe appropriate keyword arguments for the template number gdtn=,\npdtn=, or drtn= must be provided.

\n\n
Parameters
\n\n
    \n
  • section0: GRIB2 section 0 array.
  • \n
  • section1: GRIB2 section 1 array.
  • \n
  • section2: Local Use section data.
  • \n
  • section3: GRIB2 section 3 array.
  • \n
  • section4: GRIB2 section 4 array.
  • \n
  • section5: GRIB2 section 5 array.
  • \n
\n\n
Returns
\n\n
    \n
  • Msg: A dynamically-create Grib2Message object that inherits from\n_Grib2Message, a grid definition template class, product\ndefinition template class, and a data representation template\nclass.
  • \n
\n"}, {"fullname": "grib2io.Grib2GridDef", "modulename": "grib2io", "qualname": "Grib2GridDef", "kind": "class", "doc": "

Class for Grid Definition Template Number and Template as attributes.

\n\n

This allows for cleaner looking code when passing these metadata around.\nFor example, the grib2io._Grib2Message.interpolate method and\ngrib2io.interpolate function accepts these objects.

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

\n", "signature": "(\tgdtn: int,\tgdt: numpy.ndarray[typing.Any, numpy.dtype[+_ScalarType_co]])"}, {"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": ": numpy.ndarray[typing.Any, numpy.dtype[+_ScalarType_co]]"}, {"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 retrieving 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
    \n
  • table: Code table number (e.g. '1.0').
  • \n
\n\n

NOTE: Code table '4.1' requires a 3rd value representing the product\ndiscipline (e.g. '4.1.0').

\n\n
    \n
  • expand: If True, expand output dictionary wherever keys are a range.
  • \n
\n\n
Returns
\n\n
    \n
  • get_table: GRIB2 code table as a dictionary.
  • \n
\n", "signature": "(table: str, expand: bool = False) -> dict:", "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
    \n
  • value: Code table value.
  • \n
  • table: Code table number.
  • \n
  • expand: If True, expand output dictionary where keys are a range.
  • \n
\n\n
Returns
\n\n
    \n
  • get_value_from_table: Table value or None if not found.
  • \n
\n", "signature": "(\tvalue: Union[int, str],\ttable: str,\texpand: bool = False) -> Union[float, int, NoneType]:", "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.

\n\n

NOTE: This functions allows for all arguments to be converted to a string\ntype if arguments are integer.

\n\n
Parameters
\n\n
    \n
  • discipline: Discipline code value of a GRIB2 message.
  • \n
  • parmcat: Parameter Category value of a GRIB2 message.
  • \n
  • parmnum: Parameter Number value of a GRIB2 message.
  • \n
  • isNDFD (optional):\nIf True, signals function to try to get variable information from the\nsupplemental NDFD tables.
  • \n
\n\n
Returns
\n\n
    \n
  • full_name: Full name of the GRIB2 variable. \"Unknown\" if variable is not found.
  • \n
  • units: Units of the GRIB2 variable. \"Unknown\" if variable is not found.
  • \n
  • shortName: Abbreviated name of the GRIB2 variable. \"Unknown\" if variable is not\nfound.
  • \n
\n", "signature": "(\tdiscipline: Union[int, str],\tparmcat: Union[int, str],\tparmnum: Union[int, str],\tisNDFD: bool = False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_shortnames", "modulename": "grib2io.tables", "qualname": "get_shortnames", "kind": "function", "doc": "

Return a list of variable shortNames.

\n\n

If all 3 args are None, then shortNames from all disciplines, parameter\ncategories, and numbers will be returned.

\n\n
Parameters
\n\n
    \n
  • discipline: GRIB2 discipline code value.
  • \n
  • parmcat: GRIB2 parameter category value.
  • \n
  • parmnum: Parameter Number value of a GRIB2 message.
  • \n
  • isNDFD (optional):\nIf True, signals function to try to get variable information from the\nsupplemental NDFD tables.
  • \n
\n\n
Returns
\n\n
    \n
  • get_shortnames: list of GRIB2 shortNames.
  • \n
\n", "signature": "(\tdiscipline: Union[int, str, NoneType] = None,\tparmcat: Union[int, str, NoneType] = None,\tparmnum: Union[int, str, NoneType] = None,\tisNDFD: bool = False) -> List[str]:", "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
    \n
  • shortname: GRIB2 variable shortName.
  • \n
\n\n
Returns
\n\n
    \n
  • get_metadata_from_shortname: list of dictionary items where each dictionary item contains the\nvariable metadata key:value pairs.
  • \n
\n\n

NOTE: Some variable shortNames will exist in multiple parameter\ncategory/number tables according to the GRIB2 discipline.

\n", "signature": "(shortname: str):", "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.

\n\n

The format and language of the string is an exact replica of how wgrib2\nproduces the level/layer string in its inventory output.

\n\n

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

\n\n
Parameters
\n\n
    \n
  • pdtn: GRIB2 Product Definition Template Number
  • \n
  • pdt: Sequence containing GRIB2 Product Definition Template (Section 4).
  • \n
\n\n
Returns
\n\n
    \n
  • get_wgrib2_level_string: wgrib2-formatted level/layer string.
  • \n
\n", "signature": "(\tpdtn: int,\tpdt: Union[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]], numpy._typing._nested_sequence._NestedSequence[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]]], bool, int, float, complex, str, bytes, numpy._typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]]) -> str:", "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', '18': 'National Water Center'}"}, {"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': 'Simulation start', '6-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', '14-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 Staggered E-Grid)', '32769': 'Rotated Latitude/Longitude (Arakawa Non-E Staggered 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': 'Drought Indices', '23-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': 'Post-processed quantile forecasts at a horizontal level or in a horizontal layer at a point in time" (see Template 4.89)', '90': 'Post-processed quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.90)', '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': 'Generalized tiles at a horizontal level or horizontal layer at a point in time (see Template 4.113)', '114': 'Average, accumulation, and/or extreme values or other statistically processed values on generalized tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.114)', '115': 'Individual ensemble forecast, control and perturbed on generalized tiles at a horizontal level or in a horizontal layer at a point in time (see Template 4.115)', '116': 'Individual ensemble forecast, control and perturbed on generalized tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.116)', '117': 'Individual large ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time (see Template 4.117)', '118': 'Individual large ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval (see Template 4.118)', '119': 'Probability forecasts from large ensembles at a horizontal level or in a horizontal layer at a point in time (see Template 4.119)', '120': 'Probability forecasts from large ensembles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.120)', '121': 'Probability forecasts from large ensembles with spatiotemporal processing based on focal (moving window) statistics at a horizontal level or in a horizontal layer at a point in time (see Template 4.121)', '122': 'Probability forecasts from large ensembles with spatiotemporal processing based on focal (moving window) statistics at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.122)', '123': 'Probability forecasts from large ensembles with spatiotemporal processing based on focal (moving window) statistics 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.123)', '124': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for radionuclides (see Template 4.124)', '125': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for radionuclides (see Template 4.125)', '126': '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 radionuclides (see Template 4.126)', '127': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for radionuclides (see Template 4.127)', '128-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': ['Lowest level where cloud cover exceeds the specified percentage', '%'], '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', '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', 'm'], '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': 'Variance of all ensemble members', '11-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)', '7': 'Probability of event in near normal category (see Notes 1 and 2)', '8': 'Probability of event in below normal category (see Notes 1 and 2)', '9': 'Probability based on counts of categorical boolean', '10-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': 'Median', '14-99': 'Reserved', '100': 'Severity', '101': 'Mode', '102': 'Index processing', '103-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': 'Nuclear power plant', '29': 'Nuclear weapon', '30-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': ['Deposition activity arrival', 's', 'DEPACTA'], '20': ['Deposition activity ended', 's', 'DEPACTE'], '21': ['Cloud activity arrival', 's', 'CLDACTA'], '22': ['Cloud activity ended', 's', 'CLDACTE'], '23': ['Effective dose rate', 'nSv h-1', 'EFFDOSER'], '24': ['Thyroid dose rate (adult)', 'nSv h-1', 'THYDOSER'], '25': ['Gamma dose rate (adult)', 'nSv h-1', 'GAMDOSER'], '26': ['Activity emission', 'Bq s-1', 'ACTEMM'], '27-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'], '240': ['Continuous Icing Severity', 'non-dim', 'ICESEVCON'], '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', 'CNETS'], '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': ['Hurricane track in spatiotemporal vicinity (see Note)', 'boolean', 'HURTSV'], '6': ['Tropical storm track in spatiotemporal vicinity', 'boolean', 'TSTSV'], '7': ['Tropical depression track in spatiotemporal vicinity', 'boolean', 'TDTSV'], '8-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 Coveblack 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': ['River outflow of water', 'm3 s-1', 'RVEROW'], '18': ['Floodplain outflow of water', 'm3 s-1', 'FLDPOW'], '19': ['Floodpath outflow of water', 'm3 s-1', 'FLDPATHOW'], '20': ['Water on surface', 'kg m-2', 'WATSURF'], '21-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': ['Floodplain depth', 'm', 'FLDPDEPTH'], '18': ['Floodplain flooded fraction', 'proportion', 'FLDPFLFR'], '19': ['Floodplain flooded area', 'm2', 'FLDPFLAR'], '20': ['River Fraction', 'proportion', 'RVERFR'], '21': ['River area', 'm2', 'RVERAR'], '22': ['Fraction of river coverage plus river related flooding', 'proportion', 'FRCRF'], '23': ['Area of river coverage plus river related flooding', 'm2', 'ARCRF'], '24-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': ['Goda peakedness factor', 'Numeric', 'GODAPEAK'], '99-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', 'SALINITY'], '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', 'ICETEMP'], '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', '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'], '31': ['Upper layer cloud optical depth (see Note)', 'Numeric', 'unknown'], '32': ['Upper layer cloud top pressure (see Note)', 'Pa', 'unknown'], '33': ['Upper layer cloud effective radius (see Note)', 'm', 'unknown'], '34': ['Error in upper layer cloud optical depth(se Note)', 'Numeric', 'unknown'], '35': ['Error in upper layer cloud top pressure (see Note)', 'Pa', 'unknown'], '36': ['Error in upper layer cloud effective radius (see Note)', 'm', 'unknown'], '37': ['Lower layer cloud optical depth (see Note)', 'Numeric', 'unknown'], '38': ['Lower layer cloud top pressure (see Note)', 'Pa', 'unknown'], '39': ['Error in lower layer cloud optical depth (see Note)', 'Numeric', 'unknown'], '40': ['Error in lower layer cloud top pressure (see Note)', 'Pa', 'unknown'], '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.

\n\n

Stores both numeric code value as stored in GRIB2 and its plain language\ndefinition.

\n\n
Attributes
\n\n
    \n
  • value (int):\nGRIB2 metadata integer code value.
  • \n
  • table (str, optional):\nGRIB2 table to lookup the value. Default is None.
  • \n
  • definition (str):\nPlain language description of numeric metadata.
  • \n
\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
    \n
  • gdtn: Grid definition template number.
  • \n
\n\n
Returns
\n\n
    \n
  • gdt_class_by_gdtn: Grid definition template class object (not an instance).
  • \n
\n", "signature": "(gdtn: int):", "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.

\n\n

These are the metadata returned for a specific variable according to\ndiscipline, 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 second 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.NumberOfContributingSpectralBands", "modulename": "grib2io.templates", "qualname": "NumberOfContributingSpectralBands", "kind": "class", "doc": "

Number of Contributing Spectral Bands (NB)

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

Satellte Series of band nb, where nb=1,NB if NB > 0

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

Satellte Number of band nb, where nb=1,NB if NB > 0

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

Instrument Type of band nb, where nb=1,NB if NB > 0

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

Scale Factor Of Central WaveNumber of band nb, where nb=1,NB if NB > 0

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

Scaled Value Of Central WaveNumber of band NB

\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.ProductDefinitionTemplateBase", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplateBase", "kind": "class", "doc": "

Base attributes for Product Definition Templates

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

Full name of the Variable.

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

Units of the Variable.

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

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

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

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

\n", "annotation": ": datetime.timedelta"}, {"fullname": "grib2io.templates.ProductDefinitionTemplateBase.duration", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplateBase.duration", "kind": "variable", "doc": "

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

\n", "annotation": ": datetime.timedelta"}, {"fullname": "grib2io.templates.ProductDefinitionTemplateBase.validDate", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplateBase.validDate", "kind": "variable", "doc": "

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

\n", "annotation": ": datetime.datetime"}, {"fullname": "grib2io.templates.ProductDefinitionTemplateBase.level", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplateBase.level", "kind": "variable", "doc": "

Level (same as provided by wgrib2)

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

Parameter Category

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

Parameter Number

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

Type of Generating Process

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

Generating Process

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

Background Generating Process Identifier

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

Hours of observational data cutoff after reference time.

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

Minutes of observational data cutoff after reference time.

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

Units of Forecast Time

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

Value of forecast time in units defined by UnitofForecastTime.

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

Surface attributes for Product Definition Templates

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

Type of First Fixed Surface

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

Scale Factor of First Fixed Surface

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

Scaled Value Of First Fixed Surface

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

Type of Second Fixed Surface

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

Scale Factor of Second Fixed Surface

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

Scaled Value Of Second Fixed Surface

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

Units of First Fixed Surface

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

Value of First Fixed Surface

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

Units of Second Fixed Surface

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

Value of Second Fixed Surface

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

Product Definition Template 0

\n", "bases": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate1", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate1", "kind": "class", "doc": "

Product Definition Template 1

\n", "bases": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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.ProductDefinitionTemplate31", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate31", "kind": "class", "doc": "

Product Definition Template 31

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

Parameter Category

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

Parameter Number

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

Type of Generating Process

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

Generating Process

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

Number of Contributing Spectral Bands (NB)

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

Satellte Series of band nb, where nb=1,NB if NB > 0

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

Satellte Number of band nb, where nb=1,NB if NB > 0

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

Instrument Type of band nb, where nb=1,NB if NB > 0

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

Scale Factor Of Central WaveNumber of band nb, where nb=1,NB if NB > 0

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

Scaled Value Of Central WaveNumber of band NB

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

Product Definition Template 32

\n", "bases": "ProductDefinitionTemplateBase"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate32.numberOfContributingSpectralBands", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate32.numberOfContributingSpectralBands", "kind": "variable", "doc": "

Number of Contributing Spectral Bands (NB)

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

Satellte Series of band nb, where nb=1,NB if NB > 0

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

Satellte Number of band nb, where nb=1,NB if NB > 0

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

Instrument Type of band nb, where nb=1,NB if NB > 0

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

Scale Factor Of Central WaveNumber of band nb, where nb=1,NB if NB > 0

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

Scaled Value Of Central WaveNumber of band NB

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

Product Definition Template 48

\n", "bases": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "

Provide a Product Definition Template class via the template number.

\n\n
Parameters
\n\n
    \n
  • pdtn: Product definition template number.
  • \n
\n\n
Returns
\n\n
    \n
  • pdt_class_by_pdtn: Product definition template class object (not an instance).
  • \n
\n", "signature": "(pdtn: int):", "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": ": Union[float, int]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.secMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.secMissingValue", "kind": "variable", "doc": "

Secondary Missing Value

\n", "annotation": ": Union[float, 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": ": Union[float, int]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.secMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.secMissingValue", "kind": "variable", "doc": "

Secondary Missing Value

\n", "annotation": ": Union[float, 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": "

Provide a Data Representation Template class via the template number.

\n\n
Parameters
\n\n
    \n
  • drtn: Data Representation template number.
  • \n
\n\n
Returns
\n\n
    \n
  • drt_class_by_drtn: Data Representation template class object (not an instance).
  • \n
\n", "signature": "(drtn: int):", "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

The struct module unpack using \">i\" will unpack a 32-bit integer from a\nbinary string.

\n\n
Parameters
\n\n
    \n
  • i: Integer value to convert to binary representation.
  • \n
  • nbits (default=8):\nNumber of bits to return. Valid values are 8 [DEFAULT], 16, 32, and\n64.
  • \n
  • output (default=str):\nReturn data as str [DEFAULT] or list (list of ints).
  • \n
\n\n
Returns
\n\n
    \n
  • int2bin: str or list (list of ints) of binary representation of the integer\nvalue.
  • \n
\n", "signature": "(\ti: int,\tnbits: int = 8,\toutput: Union[Type[str], Type[List]] = <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 754 32-bit float to a 32-bit integer.

\n\n
Parameters
\n\n
    \n
  • f (float):\nFloating-point value.
  • \n
\n\n
Returns
\n\n
    \n
  • ieee_float_to_int: numpy.int32 representation of an IEEE 32-bit float.
  • \n
\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
    \n
  • i (int):\nInteger value.
  • \n
\n\n
Returns
\n\n
    \n
  • ieee_int_to_float: numpy.float32 representation of a 32-bit int.
  • \n
\n", "signature": "(i):", "funcdef": "def"}, {"fullname": "grib2io.utils.get_leadtime", "modulename": "grib2io.utils", "qualname": "get_leadtime", "kind": "function", "doc": "

Compute lead time as a datetime.timedelta object.

\n\n

Using information from GRIB2 Identification Section (Section 1), Product\nDefinition Template Number, and Product Definition Template (Section 4).

\n\n
Parameters
\n\n
    \n
  • idsec: Sequence containing GRIB2 Identification Section (Section 1).
  • \n
  • pdtn: GRIB2 Product Definition Template Number
  • \n
  • pdt: Sequence containing GRIB2 Product Definition Template (Section 4).
  • \n
\n\n
Returns
\n\n
    \n
  • leadTime: datetime.timedelta object representing the lead time of the GRIB2 message.
  • \n
\n", "signature": "(\tidsec: Union[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]], numpy._typing._nested_sequence._NestedSequence[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]]], bool, int, float, complex, str, bytes, numpy._typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]],\tpdtn: int,\tpdt: Union[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]], numpy._typing._nested_sequence._NestedSequence[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]]], bool, int, float, complex, str, bytes, numpy._typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]]) -> datetime.timedelta:", "funcdef": "def"}, {"fullname": "grib2io.utils.get_duration", "modulename": "grib2io.utils", "qualname": "get_duration", "kind": "function", "doc": "

Compute a time duration as a datetime.timedelta.

\n\n

Uses information from Product Definition Template Number, and Product\nDefinition Template (Section 4).

\n\n
Parameters
\n\n
    \n
  • pdtn: GRIB2 Product Definition Template Number
  • \n
  • pdt: Sequence containing GRIB2 Product Definition Template (Section 4).
  • \n
\n\n
Returns
\n\n
    \n
  • get_duration: datetime.timedelta object representing the time duration of the GRIB2\nmessage.
  • \n
\n", "signature": "(\tpdtn: int,\tpdt: Union[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]], numpy._typing._nested_sequence._NestedSequence[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]]], bool, int, float, complex, str, bytes, numpy._typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]]) -> datetime.timedelta:", "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.

\n\n

The decode procedure is defined\nhere.

\n\n
Parameters
\n\n
    \n
  • lus: GRIB2 Local Use Section containing NDFD weather strings.
  • \n
\n\n
Returns
\n\n
    \n
  • decode_wx_strings: Dict of NDFD/MDL weather strings. Keys are an integer value that\nrepresent the sequential order of the key in the packed local use\nsection and the value is the weather key.
  • \n
\n", "signature": "(lus: bytes) -> Dict[int, str]:", "funcdef": "def"}, {"fullname": "grib2io.utils.get_wgrib2_prob_string", "modulename": "grib2io.utils", "qualname": "get_wgrib2_prob_string", "kind": "function", "doc": "

Return a wgrib2-styled string of probabilistic threshold information.

\n\n

Logic from wgrib2 source,\nProb.c,\nis replicated here.

\n\n
Parameters
\n\n
    \n
  • probtype: Type of probability (Code Table 4.9).
  • \n
  • sfacl: Scale factor of lower limit.
  • \n
  • svall: Scaled value of lower limit.
  • \n
  • sfacu: Scale factor of upper limit.
  • \n
  • svalu: Scaled value of upper limit.
  • \n
\n\n
Returns
\n\n
    \n
  • get_wgrib2_prob_string: wgrib2-formatted string of probability threshold.
  • \n
\n", "signature": "(probtype: int, sfacl: int, svall: int, sfacu: int, svalu: int) -> str:", "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
    \n
  • latin: Unrotated latitude in units of degrees.
  • \n
  • lonin: Unrotated longitude in units of degrees.
  • \n
  • latpole: Latitude of Pole.
  • \n
  • lonpole: Longitude of Pole.
  • \n
\n\n
Returns
\n\n
    \n
  • tlat: Rotated latitude in units of degrees.
  • \n
  • tlons: Rotated longitude in units of degrees.
  • \n
\n", "signature": "(\tlatin: float,\tlonin: float,\tlatpole: float,\tlonpole: float) -> tuple[float, float]:", "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
    \n
  • latin: Rotated latitude in units of degrees.
  • \n
  • lonin: Rotated longitude in units of degrees.
  • \n
  • latpole: Latitude of Pole.
  • \n
  • lonpole: Longitude of Pole.
  • \n
\n\n
Returns
\n\n
    \n
  • tlat: Unrotated latitude in units of degrees.
  • \n
  • tlons: Unrotated longitude in units of degrees.
  • \n
\n", "signature": "(\tlatin: float,\tlonin: float,\tlatpole: float,\tlonpole: float) -> tuple[float, float]:", "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.

\n\n

The rotation angle value can be applied to a vector quantity to make it\nEarth-oriented.

\n\n
Parameters
\n\n
    \n
  • tlat: True latitude in units of degrees.
  • \n
  • tlon: True longitude in units of degrees..
  • \n
  • clat: Latitude of center grid point in units of degrees.
  • \n
  • losp: Longitude of the southern pole in units of degrees.
  • \n
  • xlat: Latitude of the rotated grid in units of degrees.
  • \n
\n\n
Returns
\n\n
    \n
  • rot: Rotation angle in units of radians.
  • \n
\n", "signature": "(tlat: float, tlon: float, clat: float, losp: float, xlat: float) -> float:", "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
    \n
  • nlat: The number of latitudes in the Gaussian grid.
  • \n
\n\n
Returns
\n\n
    \n
  • latitudes: numpy.ndarray of latitudes (in degrees) with a length of nlat.
  • \n
\n", "signature": "(nlat: int):", "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.

\n\n

This function is adapted from ECMWF's ecCodes library void function,\nrotate().

\n\n

https://github.com/ecmwf/eccodes/blob/develop/src/grib_geography.cc

\n\n
Parameters
\n\n
    \n
  • latin: Latitudes in units of degrees.
  • \n
  • lonin: Longitudes in units of degrees.
  • \n
  • aor: Angle of rotation as defined in GRIB2 GDTN 4.1.
  • \n
  • splat: Latitude of South Pole as defined in GRIB2 GDTN 4.1.
  • \n
  • splon: Longitude of South Pole as defined in GRIB2 GDTN 4.1.
  • \n
\n\n
Returns
\n\n
    \n
  • lats: numpy.ndarrays with dtype=numpy.float32 of grid latitudes in units\nof degrees.
  • \n
  • lons: numpy.ndarrays with dtype=numpy.float32 of grid longitudes in units\nof degrees.
  • \n
\n", "signature": "(\tlatin: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\tlonin: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\taor: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\tsplat: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\tsplon: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]]) -> tuple[numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]], numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]]]:", "funcdef": "def"}, {"fullname": "grib2io.utils.rotated_grid.unrotate", "modulename": "grib2io.utils.rotated_grid", "qualname": "unrotate", "kind": "function", "doc": "

Perform grid un-rotation.

\n\n

This function is adapted from ECMWF's ecCodes library void function,\nunrotate().

\n\n

https://github.com/ecmwf/eccodes/blob/develop/src/grib_geography.cc

\n\n
Parameters
\n\n
    \n
  • latin: Latitudes in units of degrees.
  • \n
  • lonin: Longitudes in units of degrees.
  • \n
  • aor: Angle of rotation as defined in GRIB2 GDTN 4.1.
  • \n
  • splat: Latitude of South Pole as defined in GRIB2 GDTN 4.1.
  • \n
  • splon: Longitude of South Pole as defined in GRIB2 GDTN 4.1.
  • \n
\n\n
Returns
\n\n
    \n
  • lats: numpy.ndarrays with dtype=numpy.float32 of grid latitudes in units\nof degrees.
  • \n
  • lons: numpy.ndarrays with dtype=numpy.float32 of grid longitudes in units\nof degrees.
  • \n
\n", "signature": "(\tlatin: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\tlonin: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\taor: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\tsplat: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\tsplon: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]]) -> tuple[numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]], numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]]]:", "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\n(g2c) library for the purpose of\nreading and writing WMO GRIdded Binary, Edition 2 (GRIB2) messages. A physical\nfile can contain one or more GRIB2 messages.

\n\n

GRIB2 file IO is performed directly in Python. The unpacking/packing of GRIB2\ninteger, coded metadata and data sections is performed by the g2c library\nfunctions via the g2clib Cython wrapper module. The decoding/encoding of GRIB2\nmetadata is translated into more descriptive, plain language metadata by looking\nup the integer code values against the appropriate GRIB2 code tables. These\ncode tables are 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,\nclass grib2io.open, the file named filename is opened for reading (mode\n= 'r') and is automatically indexed. The indexing procedure reads some of\nthe GRIB2 metadata for all GRIB2 Messages. A GRIB2 Message may contain\nsubmessages whereby Section 2-7 can be repeated. grib2io accommodates for\nthis by flattening any GRIB2 submessages into multiple individual messages.

\n\n

It is important to note that GRIB2 files from some Meteorological agencies\ncontain other data than GRIB2 messages. GRIB2 files from ECMWF can contain\nGRIB1 and GRIB2 messages. grib2io checks for these and safely ignores them.

\n\n
Attributes
\n\n
    \n
  • closed (bool):\nTrue is file handle is close; False otherwise.
  • \n
  • current_message (int):\nCurrent position of the file in units of GRIB2 Messages.
  • \n
  • levels (tuple):\nTuple containing a unique list of wgrib2-formatted level/layer strings.
  • \n
  • messages (int):\nCount of GRIB2 Messages contained in the file.
  • \n
  • mode (str):\nFile IO mode of opening the file.
  • \n
  • name (str):\nFull path name of the GRIB2 file.
  • \n
  • size (int):\nSize of the file in units of bytes.
  • \n
  • variables (tuple):\nTuple containing a unique list of variable short names (i.e. GRIB2\nabbreviation names).
  • \n
\n"}, {"fullname": "grib2io.open.__init__", "modulename": "grib2io", "qualname": "open.__init__", "kind": "function", "doc": "

Initialize GRIB2 File object instance.

\n\n
Parameters
\n\n
    \n
  • filename: File name containing GRIB2 messages.
  • \n
  • mode (default=\"r\"):\nFile access mode where \"r\" opens the files for reading only; \"w\"\nopens the file for overwriting and \"x\" for writing to a new file.
  • \n
\n", "signature": "(filename: str, mode: Literal['r', 'w', 'x'] = 'r', **kwargs)"}, {"fullname": "grib2io.open.name", "modulename": "grib2io", "qualname": "open.name", "kind": "variable", "doc": "

\n"}, {"fullname": "grib2io.open.mode", "modulename": "grib2io", "qualname": "open.mode", "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\nfrom the current position in the file. This read method follows the\nbehavior of Python's builtin open() function, but whereas that operates\non units of bytes, we operate on units of GRIB2 messages.

\n\n
Parameters
\n\n
    \n
  • size (default=None):\nThe number of GRIB2 messages to read from the current position. If\nno argument is give, the default value is None and remainder of\nthe file is read.
  • \n
\n\n
Returns
\n\n
    \n
  • read: Grib2Message object when size = 1 or a list of Grib2Messages\nwhen size > 1.
  • \n
\n", "signature": "(self, size: Optional[int] = 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
    \n
  • pos: The GRIB2 Message number to set the file pointer to.
  • \n
\n", "signature": "(self, pos: int):", "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
    \n
  • msg: GRIB2 message objects to write to file.
  • \n
\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
    \n
  • name: Grib2Message variable shortName
  • \n
\n\n
Returns
\n\n
    \n
  • levels_by_var: A list of unique level strings.
  • \n
\n", "signature": "(self, name: str):", "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
    \n
  • level: Grib2Message variable level
  • \n
\n\n
Returns
\n\n
    \n
  • vars_by_level: A list of unique variable shortName strings.
  • \n
\n", "signature": "(self, level: str):", "funcdef": "def"}, {"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.

\n\n

This interfaces with the grib2io_interp component package that interfaces to\nthe NCEPLIBS-ip library.

\n\n
Parameters
\n\n
    \n
  • a (numpy.ndarray or tuple):\nInput data. If a is a numpy.ndarray, scalar interpolation will be\nperformed. If a is a tuple, then vector interpolation will be\nperformed with the assumption that u = a[0] and v = a[1] and are both\nnumpy.ndarray.

    \n\n

    These data are expected to be in 2-dimensional form with shape (ny, nx)\nor 3-dimensional (:, ny, nx) where the 1st dimension represents another\nspatial, temporal, or classification (i.e. ensemble members) dimension.\nThe function will properly flatten the (ny,nx) dimensions into (nx * ny)\nacceptable for input into the interpolation subroutines.

  • \n
  • method: Interpolate method to use. This can either be an integer or string using\nthe 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\n
Interpolate SchemeInteger Value
'bilinear'0
'bicubic'1
'neighbor'2
'budget'3
'spectral'4
'neighbor-budget'6
\n\n

\n\n
    \n
  • grid_def_in (grib2io.Grib2GridDef):\nGrib2GridDef object for the input grid.
  • \n
  • grid_def_out (grib2io.Grib2GridDef):\nGrib2GridDef object for the output grid or station points.
  • \n
  • method_options (list of ints, optional):\nInterpolation options. See the NCEPLIBS-ip documentation for\nmore information on how these are used.
  • \n
  • num_threads (int, optional):\nNumber of OpenMP threads to use for interpolation. The default\nvalue is 1. If grib2io_interp was not built with OpenMP, then\nthis keyword argument and value will have no impact.
  • \n
\n\n
Returns
\n\n
    \n
  • interpolate: Returns a numpy.ndarray when scalar interpolation is performed or a\ntuple of numpy.ndarrays when vector interpolation is performed with\nthe assumptions that 0-index is the interpolated u and 1-index is the\ninterpolated v.
  • \n
\n", "signature": "(\ta,\tmethod: Union[int, str],\tgrid_def_in,\tgrid_def_out,\tmethod_options=None,\tnum_threads=1):", "funcdef": "def"}, {"fullname": "grib2io.interpolate_to_stations", "modulename": "grib2io", "qualname": "interpolate_to_stations", "kind": "function", "doc": "

Module-level interpolation function for interpolation to stations.

\n\n

Interfaces with the grib2io_interp component package that interfaces to the\nNCEPLIBS-ip\nlibrary. It supports scalar and\nvector interpolation according to the type of object a.

\n\n
Parameters
\n\n
    \n
  • a (numpy.ndarray or tuple):\nInput data. If a is a numpy.ndarray, scalar interpolation will be\nperformed. If a is a tuple, then vector interpolation will be\nperformed with the assumption that u = a[0] and v = a[1] and are both\nnumpy.ndarray.

    \n\n

    These data are expected to be in 2-dimensional form with shape (ny, nx)\nor 3-dimensional (:, ny, nx) where the 1st dimension represents another\nspatial, temporal, or classification (i.e. ensemble members) dimension.\nThe function will properly flatten the (ny,nx) dimensions into (nx * ny)\nacceptable for input into the interpolation subroutines.

  • \n
  • method: Interpolate method to use. This can either be an integer or string using\nthe 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\n
Interpolate SchemeInteger Value
'bilinear'0
'bicubic'1
'neighbor'2
'budget'3
'spectral'4
'neighbor-budget'6
\n\n

\n\n
    \n
  • grid_def_in (grib2io.Grib2GridDef):\nGrib2GridDef object for the input grid.
  • \n
  • lats (numpy.ndarray or list):\nLatitudes for station points
  • \n
  • lons (numpy.ndarray or list):\nLongitudes for station points
  • \n
  • method_options (list of ints, optional):\nInterpolation options. See the NCEPLIBS-ip documentation for\nmore information on how these are used.
  • \n
  • num_threads (int, optional):\nNumber of OpenMP threads to use for interpolation. The default\nvalue is 1. If grib2io_interp was not built with OpenMP, then\nthis keyword argument and value will have no impact.
  • \n
\n\n
Returns
\n\n
    \n
  • interpolate_to_stations: Returns a numpy.ndarray when scalar interpolation is performed or a\ntuple of numpy.ndarrays when vector interpolation is performed with\nthe assumptions that 0-index is the interpolated u and 1-index is the\ninterpolated v.
  • \n
\n", "signature": "(\ta,\tmethod,\tgrid_def_in,\tlats,\tlons,\tmethod_options=None,\tnum_threads=1):", "funcdef": "def"}, {"fullname": "grib2io.Grib2Message", "modulename": "grib2io", "qualname": "Grib2Message", "kind": "class", "doc": "

Creation class for a GRIB2 message.

\n\n

This class returns a dynamically-created Grib2Message object that\ninherits from _Grib2Message and grid, product, data representation\ntemplate classes according to the template numbers for the respective\nsections. If section3, section4, or section5 are omitted, then\nthe appropriate keyword arguments for the template number gdtn=,\npdtn=, or drtn= must be provided.

\n\n
Parameters
\n\n
    \n
  • section0: GRIB2 section 0 array.
  • \n
  • section1: GRIB2 section 1 array.
  • \n
  • section2: Local Use section data.
  • \n
  • section3: GRIB2 section 3 array.
  • \n
  • section4: GRIB2 section 4 array.
  • \n
  • section5: GRIB2 section 5 array.
  • \n
\n\n
Returns
\n\n
    \n
  • Msg: A dynamically-create Grib2Message object that inherits from\n_Grib2Message, a grid definition template class, product\ndefinition template class, and a data representation template\nclass.
  • \n
\n"}, {"fullname": "grib2io.Grib2GridDef", "modulename": "grib2io", "qualname": "Grib2GridDef", "kind": "class", "doc": "

Class for Grid Definition Template Number and Template as attributes.

\n\n

This allows for cleaner looking code when passing these metadata around.\nFor example, the grib2io._Grib2Message.interpolate method and\ngrib2io.interpolate function accepts these objects.

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

\n", "signature": "(\tgdtn: int,\tgdt: numpy.ndarray[typing.Any, numpy.dtype[+_ScalarType_co]])"}, {"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": ": numpy.ndarray[typing.Any, numpy.dtype[+_ScalarType_co]]"}, {"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 retrieving 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
    \n
  • table: Code table number (e.g. '1.0').
  • \n
\n\n

NOTE: Code table '4.1' requires a 3rd value representing the product\ndiscipline (e.g. '4.1.0').

\n\n
    \n
  • expand: If True, expand output dictionary wherever keys are a range.
  • \n
\n\n
Returns
\n\n
    \n
  • get_table: GRIB2 code table as a dictionary.
  • \n
\n", "signature": "(table: str, expand: bool = False) -> dict:", "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
    \n
  • value: Code table value.
  • \n
  • table: Code table number.
  • \n
  • expand: If True, expand output dictionary where keys are a range.
  • \n
\n\n
Returns
\n\n
    \n
  • get_value_from_table: Table value or None if not found.
  • \n
\n", "signature": "(\tvalue: Union[int, str],\ttable: str,\texpand: bool = False) -> Union[float, int, NoneType]:", "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.

\n\n

NOTE: This functions allows for all arguments to be converted to a string\ntype if arguments are integer.

\n\n
Parameters
\n\n
    \n
  • discipline: Discipline code value of a GRIB2 message.
  • \n
  • parmcat: Parameter Category value of a GRIB2 message.
  • \n
  • parmnum: Parameter Number value of a GRIB2 message.
  • \n
  • isNDFD (optional):\nIf True, signals function to try to get variable information from the\nsupplemental NDFD tables.
  • \n
\n\n
Returns
\n\n
    \n
  • full_name: Full name of the GRIB2 variable. \"Unknown\" if variable is not found.
  • \n
  • units: Units of the GRIB2 variable. \"Unknown\" if variable is not found.
  • \n
  • shortName: Abbreviated name of the GRIB2 variable. \"Unknown\" if variable is not\nfound.
  • \n
\n", "signature": "(\tdiscipline: Union[int, str],\tparmcat: Union[int, str],\tparmnum: Union[int, str],\tisNDFD: bool = False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_shortnames", "modulename": "grib2io.tables", "qualname": "get_shortnames", "kind": "function", "doc": "

Return a list of variable shortNames.

\n\n

If all 3 args are None, then shortNames from all disciplines, parameter\ncategories, and numbers will be returned.

\n\n
Parameters
\n\n
    \n
  • discipline: GRIB2 discipline code value.
  • \n
  • parmcat: GRIB2 parameter category value.
  • \n
  • parmnum: Parameter Number value of a GRIB2 message.
  • \n
  • isNDFD (optional):\nIf True, signals function to try to get variable information from the\nsupplemental NDFD tables.
  • \n
\n\n
Returns
\n\n
    \n
  • get_shortnames: list of GRIB2 shortNames.
  • \n
\n", "signature": "(\tdiscipline: Union[int, str, NoneType] = None,\tparmcat: Union[int, str, NoneType] = None,\tparmnum: Union[int, str, NoneType] = None,\tisNDFD: bool = False) -> List[str]:", "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
    \n
  • shortname: GRIB2 variable shortName.
  • \n
\n\n
Returns
\n\n
    \n
  • get_metadata_from_shortname: list of dictionary items where each dictionary item contains the\nvariable metadata key:value pairs.
  • \n
\n\n

NOTE: Some variable shortNames will exist in multiple parameter\ncategory/number tables according to the GRIB2 discipline.

\n", "signature": "(shortname: str):", "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.

\n\n

The format and language of the string is an exact replica of how wgrib2\nproduces the level/layer string in its inventory output.

\n\n

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

\n\n
Parameters
\n\n
    \n
  • pdtn: GRIB2 Product Definition Template Number
  • \n
  • pdt: Sequence containing GRIB2 Product Definition Template (Section 4).
  • \n
\n\n
Returns
\n\n
    \n
  • get_wgrib2_level_string: wgrib2-formatted level/layer string.
  • \n
\n", "signature": "(\tpdtn: int,\tpdt: Union[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]], numpy._typing._nested_sequence._NestedSequence[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]]], bool, int, float, complex, str, bytes, numpy._typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]]) -> str:", "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', '18': 'National Water Center'}"}, {"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': 'Simulation start', '6-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', '14-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 Staggered E-Grid)', '32769': 'Rotated Latitude/Longitude (Arakawa Non-E Staggered 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': 'Drought Indices', '23-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': 'Post-processed quantile forecasts at a horizontal level or in a horizontal layer at a point in time" (see Template 4.89)', '90': 'Post-processed quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.90)', '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': 'Generalized tiles at a horizontal level or horizontal layer at a point in time (see Template 4.113)', '114': 'Average, accumulation, and/or extreme values or other statistically processed values on generalized tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.114)', '115': 'Individual ensemble forecast, control and perturbed on generalized tiles at a horizontal level or in a horizontal layer at a point in time (see Template 4.115)', '116': 'Individual ensemble forecast, control and perturbed on generalized tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.116)', '117': 'Individual large ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time (see Template 4.117)', '118': 'Individual large ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval (see Template 4.118)', '119': 'Probability forecasts from large ensembles at a horizontal level or in a horizontal layer at a point in time (see Template 4.119)', '120': 'Probability forecasts from large ensembles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.120)', '121': 'Probability forecasts from large ensembles with spatiotemporal processing based on focal (moving window) statistics at a horizontal level or in a horizontal layer at a point in time (see Template 4.121)', '122': 'Probability forecasts from large ensembles with spatiotemporal processing based on focal (moving window) statistics at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.122)', '123': 'Probability forecasts from large ensembles with spatiotemporal processing based on focal (moving window) statistics 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.123)', '124': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for radionuclides (see Template 4.124)', '125': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for radionuclides (see Template 4.125)', '126': '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 radionuclides (see Template 4.126)', '127': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for radionuclides (see Template 4.127)', '128-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': ['Lowest level where cloud cover exceeds the specified percentage', '%'], '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', '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', 'm'], '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': 'Variance of all ensemble members', '11-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)', '7': 'Probability of event in near normal category (see Notes 1 and 2)', '8': 'Probability of event in below normal category (see Notes 1 and 2)', '9': 'Probability based on counts of categorical boolean', '10-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': 'Median', '14-99': 'Reserved', '100': 'Severity', '101': 'Mode', '102': 'Index processing', '103-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': 'Nuclear power plant', '29': 'Nuclear weapon', '30-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': ['Deposition activity arrival', 's', 'DEPACTA'], '20': ['Deposition activity ended', 's', 'DEPACTE'], '21': ['Cloud activity arrival', 's', 'CLDACTA'], '22': ['Cloud activity ended', 's', 'CLDACTE'], '23': ['Effective dose rate', 'nSv h-1', 'EFFDOSER'], '24': ['Thyroid dose rate (adult)', 'nSv h-1', 'THYDOSER'], '25': ['Gamma dose rate (adult)', 'nSv h-1', 'GAMDOSER'], '26': ['Activity emission', 'Bq s-1', 'ACTEMM'], '27-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'], '240': ['Continuous Icing Severity', 'non-dim', 'ICESEVCON'], '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', 'CNETS'], '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': ['Hurricane track in spatiotemporal vicinity (see Note)', 'boolean', 'HURTSV'], '6': ['Tropical storm track in spatiotemporal vicinity', 'boolean', 'TSTSV'], '7': ['Tropical depression track in spatiotemporal vicinity', 'boolean', 'TDTSV'], '8-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 Coveblack 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': ['River outflow of water', 'm3 s-1', 'RVEROW'], '18': ['Floodplain outflow of water', 'm3 s-1', 'FLDPOW'], '19': ['Floodpath outflow of water', 'm3 s-1', 'FLDPATHOW'], '20': ['Water on surface', 'kg m-2', 'WATSURF'], '21-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': ['Floodplain depth', 'm', 'FLDPDEPTH'], '18': ['Floodplain flooded fraction', 'proportion', 'FLDPFLFR'], '19': ['Floodplain flooded area', 'm2', 'FLDPFLAR'], '20': ['River Fraction', 'proportion', 'RVERFR'], '21': ['River area', 'm2', 'RVERAR'], '22': ['Fraction of river coverage plus river related flooding', 'proportion', 'FRCRF'], '23': ['Area of river coverage plus river related flooding', 'm2', 'ARCRF'], '24-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': ['Goda peakedness factor', 'Numeric', 'GODAPEAK'], '99-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', 'SALINITY'], '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', 'ICETEMP'], '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', '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'], '31': ['Upper layer cloud optical depth (see Note)', 'Numeric', 'unknown'], '32': ['Upper layer cloud top pressure (see Note)', 'Pa', 'unknown'], '33': ['Upper layer cloud effective radius (see Note)', 'm', 'unknown'], '34': ['Error in upper layer cloud optical depth(se Note)', 'Numeric', 'unknown'], '35': ['Error in upper layer cloud top pressure (see Note)', 'Pa', 'unknown'], '36': ['Error in upper layer cloud effective radius (see Note)', 'm', 'unknown'], '37': ['Lower layer cloud optical depth (see Note)', 'Numeric', 'unknown'], '38': ['Lower layer cloud top pressure (see Note)', 'Pa', 'unknown'], '39': ['Error in lower layer cloud optical depth (see Note)', 'Numeric', 'unknown'], '40': ['Error in lower layer cloud top pressure (see Note)', 'Pa', 'unknown'], '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.

\n\n

Stores both numeric code value as stored in GRIB2 and its plain language\ndefinition.

\n\n
Attributes
\n\n
    \n
  • value (int):\nGRIB2 metadata integer code value.
  • \n
  • table (str, optional):\nGRIB2 table to lookup the value. Default is None.
  • \n
  • definition (str):\nPlain language description of numeric metadata.
  • \n
\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
    \n
  • gdtn: Grid definition template number.
  • \n
\n\n
Returns
\n\n
    \n
  • gdt_class_by_gdtn: Grid definition template class object (not an instance).
  • \n
\n", "signature": "(gdtn: int):", "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.

\n\n

These are the metadata returned for a specific variable according to\ndiscipline, 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 second 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.NumberOfContributingSpectralBands", "modulename": "grib2io.templates", "qualname": "NumberOfContributingSpectralBands", "kind": "class", "doc": "

Number of Contributing Spectral Bands (NB)

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

Satellte Series of band nb, where nb=1,NB if NB > 0

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

Satellte Number of band nb, where nb=1,NB if NB > 0

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

Instrument Type of band nb, where nb=1,NB if NB > 0

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

Scale Factor Of Central WaveNumber of band nb, where nb=1,NB if NB > 0

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

Scaled Value Of Central WaveNumber of band NB

\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.ProductDefinitionTemplateBase", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplateBase", "kind": "class", "doc": "

Base attributes for Product Definition Templates

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

Full name of the Variable.

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

Units of the Variable.

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

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

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

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

\n", "annotation": ": datetime.timedelta"}, {"fullname": "grib2io.templates.ProductDefinitionTemplateBase.duration", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplateBase.duration", "kind": "variable", "doc": "

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

\n", "annotation": ": datetime.timedelta"}, {"fullname": "grib2io.templates.ProductDefinitionTemplateBase.validDate", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplateBase.validDate", "kind": "variable", "doc": "

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

\n", "annotation": ": datetime.datetime"}, {"fullname": "grib2io.templates.ProductDefinitionTemplateBase.level", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplateBase.level", "kind": "variable", "doc": "

Level (same as provided by wgrib2)

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

Parameter Category

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

Parameter Number

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

Type of Generating Process

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

Generating Process

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

Background Generating Process Identifier

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

Hours of observational data cutoff after reference time.

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

Minutes of observational data cutoff after reference time.

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

Units of Forecast Time

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

Value of forecast time in units defined by UnitofForecastTime.

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

Surface attributes for Product Definition Templates

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

Type of First Fixed Surface

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

Scale Factor of First Fixed Surface

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

Scaled Value Of First Fixed Surface

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

Type of Second Fixed Surface

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

Scale Factor of Second Fixed Surface

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

Scaled Value Of Second Fixed Surface

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

Units of First Fixed Surface

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

Value of First Fixed Surface

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

Units of Second Fixed Surface

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

Value of Second Fixed Surface

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

Product Definition Template 0

\n", "bases": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate1", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate1", "kind": "class", "doc": "

Product Definition Template 1

\n", "bases": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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.ProductDefinitionTemplate31", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate31", "kind": "class", "doc": "

Product Definition Template 31

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

Parameter Category

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

Parameter Number

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

Type of Generating Process

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

Generating Process

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

Number of Contributing Spectral Bands (NB)

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

Satellte Series of band nb, where nb=1,NB if NB > 0

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

Satellte Number of band nb, where nb=1,NB if NB > 0

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

Instrument Type of band nb, where nb=1,NB if NB > 0

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

Scale Factor Of Central WaveNumber of band nb, where nb=1,NB if NB > 0

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

Scaled Value Of Central WaveNumber of band NB

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

Product Definition Template 32

\n", "bases": "ProductDefinitionTemplateBase"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate32.numberOfContributingSpectralBands", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate32.numberOfContributingSpectralBands", "kind": "variable", "doc": "

Number of Contributing Spectral Bands (NB)

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

Satellte Series of band nb, where nb=1,NB if NB > 0

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

Satellte Number of band nb, where nb=1,NB if NB > 0

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

Instrument Type of band nb, where nb=1,NB if NB > 0

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

Scale Factor Of Central WaveNumber of band nb, where nb=1,NB if NB > 0

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

Scaled Value Of Central WaveNumber of band NB

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

Product Definition Template 48

\n", "bases": "ProductDefinitionTemplateBase, ProductDefinitionTemplateSurface"}, {"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": "

Provide a Product Definition Template class via the template number.

\n\n
Parameters
\n\n
    \n
  • pdtn: Product definition template number.
  • \n
\n\n
Returns
\n\n
    \n
  • pdt_class_by_pdtn: Product definition template class object (not an instance).
  • \n
\n", "signature": "(pdtn: int):", "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": ": Union[float, int]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.secMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.secMissingValue", "kind": "variable", "doc": "

Secondary Missing Value

\n", "annotation": ": Union[float, 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": ": Union[float, int]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.secMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.secMissingValue", "kind": "variable", "doc": "

Secondary Missing Value

\n", "annotation": ": Union[float, 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": "

Provide a Data Representation Template class via the template number.

\n\n
Parameters
\n\n
    \n
  • drtn: Data Representation template number.
  • \n
\n\n
Returns
\n\n
    \n
  • drt_class_by_drtn: Data Representation template class object (not an instance).
  • \n
\n", "signature": "(drtn: int):", "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

The struct module unpack using \">i\" will unpack a 32-bit integer from a\nbinary string.

\n\n
Parameters
\n\n
    \n
  • i: Integer value to convert to binary representation.
  • \n
  • nbits (default=8):\nNumber of bits to return. Valid values are 8 [DEFAULT], 16, 32, and\n64.
  • \n
  • output (default=str):\nReturn data as str [DEFAULT] or list (list of ints).
  • \n
\n\n
Returns
\n\n
    \n
  • int2bin: str or list (list of ints) of binary representation of the integer\nvalue.
  • \n
\n", "signature": "(\ti: int,\tnbits: int = 8,\toutput: Union[Type[str], Type[List]] = <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 754 32-bit float to a 32-bit integer.

\n\n
Parameters
\n\n
    \n
  • f (float):\nFloating-point value.
  • \n
\n\n
Returns
\n\n
    \n
  • ieee_float_to_int: numpy.int32 representation of an IEEE 32-bit float.
  • \n
\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
    \n
  • i (int):\nInteger value.
  • \n
\n\n
Returns
\n\n
    \n
  • ieee_int_to_float: numpy.float32 representation of a 32-bit int.
  • \n
\n", "signature": "(i):", "funcdef": "def"}, {"fullname": "grib2io.utils.get_leadtime", "modulename": "grib2io.utils", "qualname": "get_leadtime", "kind": "function", "doc": "

Compute lead time as a datetime.timedelta object.

\n\n

Using information from GRIB2 Identification Section (Section 1), Product\nDefinition Template Number, and Product Definition Template (Section 4).

\n\n
Parameters
\n\n
    \n
  • idsec: Sequence containing GRIB2 Identification Section (Section 1).
  • \n
  • pdtn: GRIB2 Product Definition Template Number
  • \n
  • pdt: Sequence containing GRIB2 Product Definition Template (Section 4).
  • \n
\n\n
Returns
\n\n
    \n
  • leadTime: datetime.timedelta object representing the lead time of the GRIB2 message.
  • \n
\n", "signature": "(\tidsec: Union[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]], numpy._typing._nested_sequence._NestedSequence[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]]], bool, int, float, complex, str, bytes, numpy._typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]],\tpdtn: int,\tpdt: Union[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]], numpy._typing._nested_sequence._NestedSequence[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]]], bool, int, float, complex, str, bytes, numpy._typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]]) -> datetime.timedelta:", "funcdef": "def"}, {"fullname": "grib2io.utils.get_duration", "modulename": "grib2io.utils", "qualname": "get_duration", "kind": "function", "doc": "

Compute a time duration as a datetime.timedelta.

\n\n

Uses information from Product Definition Template Number, and Product\nDefinition Template (Section 4).

\n\n
Parameters
\n\n
    \n
  • pdtn: GRIB2 Product Definition Template Number
  • \n
  • pdt: Sequence containing GRIB2 Product Definition Template (Section 4).
  • \n
\n\n
Returns
\n\n
    \n
  • get_duration: datetime.timedelta object representing the time duration of the GRIB2\nmessage.
  • \n
\n", "signature": "(\tpdtn: int,\tpdt: Union[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]], numpy._typing._nested_sequence._NestedSequence[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]]], bool, int, float, complex, str, bytes, numpy._typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]]) -> datetime.timedelta:", "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.

\n\n

The decode procedure is defined\nhere.

\n\n
Parameters
\n\n
    \n
  • lus: GRIB2 Local Use Section containing NDFD weather strings.
  • \n
\n\n
Returns
\n\n
    \n
  • decode_wx_strings: Dict of NDFD/MDL weather strings. Keys are an integer value that\nrepresent the sequential order of the key in the packed local use\nsection and the value is the weather key.
  • \n
\n", "signature": "(lus: bytes) -> Dict[int, str]:", "funcdef": "def"}, {"fullname": "grib2io.utils.get_wgrib2_prob_string", "modulename": "grib2io.utils", "qualname": "get_wgrib2_prob_string", "kind": "function", "doc": "

Return a wgrib2-styled string of probabilistic threshold information.

\n\n

Logic from wgrib2 source,\nProb.c,\nis replicated here.

\n\n
Parameters
\n\n
    \n
  • probtype: Type of probability (Code Table 4.9).
  • \n
  • sfacl: Scale factor of lower limit.
  • \n
  • svall: Scaled value of lower limit.
  • \n
  • sfacu: Scale factor of upper limit.
  • \n
  • svalu: Scaled value of upper limit.
  • \n
\n\n
Returns
\n\n
    \n
  • get_wgrib2_prob_string: wgrib2-formatted string of probability threshold.
  • \n
\n", "signature": "(probtype: int, sfacl: int, svall: int, sfacu: int, svalu: int) -> str:", "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
    \n
  • latin: Unrotated latitude in units of degrees.
  • \n
  • lonin: Unrotated longitude in units of degrees.
  • \n
  • latpole: Latitude of Pole.
  • \n
  • lonpole: Longitude of Pole.
  • \n
\n\n
Returns
\n\n
    \n
  • tlat: Rotated latitude in units of degrees.
  • \n
  • tlons: Rotated longitude in units of degrees.
  • \n
\n", "signature": "(\tlatin: float,\tlonin: float,\tlatpole: float,\tlonpole: float) -> tuple[float, float]:", "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
    \n
  • latin: Rotated latitude in units of degrees.
  • \n
  • lonin: Rotated longitude in units of degrees.
  • \n
  • latpole: Latitude of Pole.
  • \n
  • lonpole: Longitude of Pole.
  • \n
\n\n
Returns
\n\n
    \n
  • tlat: Unrotated latitude in units of degrees.
  • \n
  • tlons: Unrotated longitude in units of degrees.
  • \n
\n", "signature": "(\tlatin: float,\tlonin: float,\tlatpole: float,\tlonpole: float) -> tuple[float, float]:", "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.

\n\n

The rotation angle value can be applied to a vector quantity to make it\nEarth-oriented.

\n\n
Parameters
\n\n
    \n
  • tlat: True latitude in units of degrees.
  • \n
  • tlon: True longitude in units of degrees..
  • \n
  • clat: Latitude of center grid point in units of degrees.
  • \n
  • losp: Longitude of the southern pole in units of degrees.
  • \n
  • xlat: Latitude of the rotated grid in units of degrees.
  • \n
\n\n
Returns
\n\n
    \n
  • rot: Rotation angle in units of radians.
  • \n
\n", "signature": "(tlat: float, tlon: float, clat: float, losp: float, xlat: float) -> float:", "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
    \n
  • nlat: The number of latitudes in the Gaussian grid.
  • \n
\n\n
Returns
\n\n
    \n
  • latitudes: numpy.ndarray of latitudes (in degrees) with a length of nlat.
  • \n
\n", "signature": "(nlat: int):", "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.

\n\n

This function is adapted from ECMWF's ecCodes library void function,\nrotate().

\n\n

https://github.com/ecmwf/eccodes/blob/develop/src/grib_geography.cc

\n\n
Parameters
\n\n
    \n
  • latin: Latitudes in units of degrees.
  • \n
  • lonin: Longitudes in units of degrees.
  • \n
  • aor: Angle of rotation as defined in GRIB2 GDTN 4.1.
  • \n
  • splat: Latitude of South Pole as defined in GRIB2 GDTN 4.1.
  • \n
  • splon: Longitude of South Pole as defined in GRIB2 GDTN 4.1.
  • \n
\n\n
Returns
\n\n
    \n
  • lats: numpy.ndarrays with dtype=numpy.float32 of grid latitudes in units\nof degrees.
  • \n
  • lons: numpy.ndarrays with dtype=numpy.float32 of grid longitudes in units\nof degrees.
  • \n
\n", "signature": "(\tlatin: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\tlonin: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\taor: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\tsplat: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\tsplon: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]]) -> tuple[numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]], numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]]]:", "funcdef": "def"}, {"fullname": "grib2io.utils.rotated_grid.unrotate", "modulename": "grib2io.utils.rotated_grid", "qualname": "unrotate", "kind": "function", "doc": "

Perform grid un-rotation.

\n\n

This function is adapted from ECMWF's ecCodes library void function,\nunrotate().

\n\n

https://github.com/ecmwf/eccodes/blob/develop/src/grib_geography.cc

\n\n
Parameters
\n\n
    \n
  • latin: Latitudes in units of degrees.
  • \n
  • lonin: Longitudes in units of degrees.
  • \n
  • aor: Angle of rotation as defined in GRIB2 GDTN 4.1.
  • \n
  • splat: Latitude of South Pole as defined in GRIB2 GDTN 4.1.
  • \n
  • splon: Longitude of South Pole as defined in GRIB2 GDTN 4.1.
  • \n
\n\n
Returns
\n\n
    \n
  • lats: numpy.ndarrays with dtype=numpy.float32 of grid latitudes in units\nof degrees.
  • \n
  • lons: numpy.ndarrays with dtype=numpy.float32 of grid longitudes in units\nof degrees.
  • \n
\n", "signature": "(\tlatin: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\tlonin: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\taor: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\tsplat: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]],\tsplon: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]]) -> tuple[numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]], numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]]]:", "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/src/grib2io/_grib2io.py b/src/grib2io/_grib2io.py index da09a48..e8d5047 100644 --- a/src/grib2io/_grib2io.py +++ b/src/grib2io/_grib2io.py @@ -19,6 +19,7 @@ * [General Usage](https://github.com/NOAA-MDL/grib2io/blob/master/demos/grib2io-v2.ipynb) * [Plotting Arakawa Rotated Lat/Lon Grids](https://github.com/NOAA-MDL/grib2io/blob/master/demos/plot-arakawa-rotlatlon-grids.ipynb) +* [Subset Example](https://github.com/NOAA-MDL/grib2io/blob/master/demos/subset-example.ipynb) """ from dataclasses import dataclass, field