diff --git a/docs/grib2io.html b/docs/grib2io.html index 510a787..f0e17d0 100644 --- a/docs/grib2io.html +++ b/docs/grib2io.html @@ -3,7 +3,7 @@
- +60class open(): - 61 """ - 62 GRIB2 File Object. - 63 - 64 A physical file can contain one or more GRIB2 messages. When instantiated, class `grib2io.open`, - 65 the file named `filename` is opened for reading (`mode = 'r'`) and is automatically indexed. - 66 The indexing procedure reads some of the GRIB2 metadata for all GRIB2 Messages. A GRIB2 Message - 67 may contain submessages whereby Section 2-7 can be repeated. grib2io accommodates for this by - 68 flattening any GRIB2 submessages into multiple individual messages. - 69 - 70 Attributes - 71 ---------- - 72 **`mode : str`** - 73 File IO mode of opening the file. - 74 - 75 **`name : str`** - 76 Full path name of the GRIB2 file. - 77 - 78 **`messages : int`** - 79 Count of GRIB2 Messages contained in the file. +@@ -954,6 +928,11 @@61class open(): + 62 """ + 63 GRIB2 File Object. + 64 + 65 A physical file can contain one or more GRIB2 messages. When instantiated, class `grib2io.open`, + 66 the file named `filename` is opened for reading (`mode = 'r'`) and is automatically indexed. + 67 The indexing procedure reads some of the GRIB2 metadata for all GRIB2 Messages. A GRIB2 Message + 68 may contain submessages whereby Section 2-7 can be repeated. grib2io accommodates for this by + 69 flattening any GRIB2 submessages into multiple individual messages. + 70 + 71 It is important to note that GRIB2 files from some Meteorological agencies contain other data + 72 than GRIB2 messages. GRIB2 files from NWS NDFD and NAVGEM have text-based "header" data and + 73 files from ECMWF can contain GRIB1 and GRIB2 messages. grib2io checks for these and safely + 74 ignores them. + 75 + 76 Attributes + 77 ---------- + 78 **`mode : str`** + 79 File IO mode of opening the file. 80 - 81 **`current_message : int`** - 82 Current position of the file in units of GRIB2 Messages. + 81 **`name : str`** + 82 Full path name of the GRIB2 file. 83 - 84 **`size : int`** - 85 Size of the file in units of bytes. + 84 **`messages : int`** + 85 Count of GRIB2 Messages contained in the file. 86 - 87 **`closed : bool`** - 88 `True` is file handle is close; `False` otherwise. + 87 **`current_message : int`** + 88 Current position of the file in units of GRIB2 Messages. 89 - 90 **`variables : tuple`** - 91 Tuple containing a unique list of variable short names (i.e. GRIB2 abbreviation names). + 90 **`size : int`** + 91 Size of the file in units of bytes. 92 - 93 **`levels : tuple`** - 94 Tuple containing a unique list of wgrib2-formatted level/layer strings. - 95 """ - 96 __slots__ = ('_filehandle','_hasindex','_index','mode','name','messages', - 97 'current_message','size','closed','variables','levels','_pos') - 98 def __init__(self, filename, mode='r', **kwargs): - 99 """ -100 Initialize GRIB2 File object instance. -101 -102 Parameters -103 ---------- -104 -105 **`filename : str`** -106 File name containing GRIB2 messages. + 93 **`closed : bool`** + 94 `True` is file handle is close; `False` otherwise. + 95 + 96 **`variables : tuple`** + 97 Tuple containing a unique list of variable short names (i.e. GRIB2 abbreviation names). + 98 + 99 **`levels : tuple`** +100 Tuple containing a unique list of wgrib2-formatted level/layer strings. +101 """ +102 __slots__ = ('_filehandle','_hasindex','_index','mode','name','messages', +103 'current_message','size','closed','variables','levels','_pos') +104 def __init__(self, filename, mode='r', **kwargs): +105 """ +106 Initialize GRIB2 File object instance. 107 -108 **`mode : str, optional`** -109 File access mode where `r` opens the files for reading only; `w` opens the file for writing. -110 """ -111 # Manage keywords -112 if "_xarray_backend" not in kwargs: -113 kwargs["_xarray_backend"] = False -114 if mode in {'a','r','w'}: -115 mode = mode+'b' -116 if 'w' in mode: mode += '+' -117 if 'a' in mode: mode += '+' -118 -119 # Some GRIB2 files are gzipped, so check for that here, but -120 # raise error when using xarray backend. -121 if 'r' in mode: -122 self._filehandle = builtins.open(filename,mode=mode) -123 # Gzip files contain a 2-byte header b'\x1f\x8b'. -124 if self._filehandle.read(2) == b'\x1f\x8b': -125 self._filehandle.close() -126 if '_xarray_backend' in kwargs.keys(): -127 raise RuntimeError('Gzip GRIB2 files are not supported by the Xarray backend.') -128 import gzip -129 self._filehandle = gzip.open(filename,mode=mode) -130 else: -131 self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB) -132 else: -133 self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB) -134 -135 self._hasindex = False -136 self._index = {} -137 self.mode = mode -138 self.name = os.path.abspath(filename) -139 self.messages = 0 -140 self.current_message = 0 -141 self.size = os.path.getsize(self.name) -142 self.closed = self._filehandle.closed -143 self.levels = None -144 self.variables = None -145 if 'r' in self.mode: -146 try: -147 self._build_index(no_data=kwargs['_xarray_backend']) -148 except(KeyError): -149 self._build_index() -150 # FIX: Cannot perform reads on mode='a' -151 #if 'a' in self.mode and self.size > 0: self._build_index() -152 -153 -154 def __delete__(self, instance): -155 self.close() -156 del self._index -157 +108 Parameters +109 ---------- +110 +111 **`filename : str`** +112 File name containing GRIB2 messages. +113 +114 **`mode : str, optional`** +115 File access mode where `r` opens the files for reading only; `w` opens the file for writing. +116 """ +117 # Manage keywords +118 if "_xarray_backend" not in kwargs: +119 kwargs["_xarray_backend"] = False +120 if mode in {'a','r','w'}: +121 mode = mode+'b' +122 if 'w' in mode: mode += '+' +123 if 'a' in mode: mode += '+' +124 +125 # Some GRIB2 files are gzipped, so check for that here, but +126 # raise error when using xarray backend. +127 if 'r' in mode: +128 self._filehandle = builtins.open(filename,mode=mode) +129 # Gzip files contain a 2-byte header b'\x1f\x8b'. +130 if self._filehandle.read(2) == b'\x1f\x8b': +131 self._filehandle.close() +132 if '_xarray_backend' in kwargs.keys(): +133 raise RuntimeError('Gzip GRIB2 files are not supported by the Xarray backend.') +134 import gzip +135 self._filehandle = gzip.open(filename,mode=mode) +136 else: +137 self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB) +138 else: +139 self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB) +140 +141 self._hasindex = False +142 self._index = {} +143 self.mode = mode +144 self.name = os.path.abspath(filename) +145 self.messages = 0 +146 self.current_message = 0 +147 self.size = os.path.getsize(self.name) +148 self.closed = self._filehandle.closed +149 self.levels = None +150 self.variables = None +151 if 'r' in self.mode: +152 try: +153 self._build_index(no_data=kwargs['_xarray_backend']) +154 except(KeyError): +155 self._build_index() +156 # FIX: Cannot perform reads on mode='a' +157 #if 'a' in self.mode and self.size > 0: self._build_index() 158 -159 def __enter__(self): -160 return self -161 -162 -163 def __exit__(self, atype, value, traceback): -164 self.close() -165 -166 -167 def __iter__(self): -168 yield from self._index['msg'] -169 -170 -171 def __len__(self): -172 return self.messages -173 -174 -175 def __repr__(self): -176 strings = [] -177 for k in self.__slots__: -178 if k.startswith('_'): continue -179 strings.append('%s = %s\n'%(k,eval('self.'+k))) -180 return ''.join(strings) -181 -182 -183 def __getitem__(self, key): -184 if isinstance(key,int): -185 if abs(key) >= len(self._index['msg']): -186 raise IndexError("index out of range") -187 else: -188 return self._index['msg'][key] -189 elif isinstance(key,str): -190 return self.select(shortName=key) -191 elif isinstance(key,slice): -192 return self._index['msg'][key] -193 else: -194 raise KeyError('Key must be an integer, slice, or GRIB2 variable shortName.') -195 -196 -197 def _build_index(self, no_data=False): -198 """ -199 Perform indexing of GRIB2 Messages. -200 """ -201 # Initialize index dictionary -202 if not self._hasindex: -203 self._index['offset'] = [] -204 self._index['bitmap_offset'] = [] -205 self._index['data_offset'] = [] -206 self._index['size'] = [] -207 self._index['data_size'] = [] -208 self._index['submessageOffset'] = [] -209 self._index['submessageBeginSection'] = [] -210 self._index['isSubmessage'] = [] -211 self._index['messageNumber'] = [] -212 self._index['msg'] = [] -213 self._hasindex = True -214 -215 # Iterate -216 while True: -217 try: -218 # Read first 4 bytes and decode...looking for "GRIB" -219 pos = self._filehandle.tell() -220 -221 # Ignore headers (usually text) that are not part of the GRIB2 -222 # file. For example, NAVGEM files have a http header at the -223 # beginning that needs to be ignored. -224 -225 # Read a byte at a time until "GRIB" is found. Using -226 # "wgrib2" on a NAVGEM file, the header was 421 bytes and -227 # decided to go to 2048 bytes to be safe. For normal GRIB2 -228 # files this should be quick and break out of the first -229 # loop when "test_offset" is 0. -230 for test_offset in range(2048): -231 self._filehandle.seek(pos + test_offset) -232 header = struct.unpack(">i", self._filehandle.read(4))[0] -233 if header.to_bytes(4, "big") == b"GRIB": -234 pos = pos + test_offset -235 break -236 -237 # Test header. Then get information from GRIB2 Section 0: the discipline -238 # number, edition number (should always be 2), and GRIB2 message size. -239 # Then iterate to check for submessages. -240 -241 _issubmessage = False -242 _submsgoffset = 0 -243 _submsgbegin = 0 -244 _bmapflag = None -245 -246 # Read the rest of Section 0 using struct. -247 section0 = np.concatenate(([header],list(struct.unpack('>HBBQ',self._filehandle.read(12)))),dtype=np.int64) +159 +160 def __delete__(self, instance): +161 self.close() +162 del self._index +163 +164 +165 def __enter__(self): +166 return self +167 +168 +169 def __exit__(self, atype, value, traceback): +170 self.close() +171 +172 +173 def __iter__(self): +174 yield from self._index['msg'] +175 +176 +177 def __len__(self): +178 return self.messages +179 +180 +181 def __repr__(self): +182 strings = [] +183 for k in self.__slots__: +184 if k.startswith('_'): continue +185 strings.append('%s = %s\n'%(k,eval('self.'+k))) +186 return ''.join(strings) +187 +188 +189 def __getitem__(self, key): +190 if isinstance(key,int): +191 if abs(key) >= len(self._index['msg']): +192 raise IndexError("index out of range") +193 else: +194 return self._index['msg'][key] +195 elif isinstance(key,str): +196 return self.select(shortName=key) +197 elif isinstance(key,slice): +198 return self._index['msg'][key] +199 else: +200 raise KeyError('Key must be an integer, slice, or GRIB2 variable shortName.') +201 +202 +203 def _build_index(self, no_data=False): +204 """ +205 Perform indexing of GRIB2 Messages. +206 """ +207 # Initialize index dictionary +208 if not self._hasindex: +209 self._index['sectionOffset'] = [] +210 self._index['sectionSize'] = [] +211 self._index['msgSize'] = [] +212 self._index['msgNumber'] = [] +213 self._index['msg'] = [] +214 self._hasindex = True +215 +216 # Iterate +217 while True: +218 try: +219 # Initialize +220 bmapflag = None +221 pos = self._filehandle.tell() +222 section2 = b'' +223 trailer = b'' +224 _secpos = dict.fromkeys(range(8)) +225 _secsize = dict.fromkeys(range(8)) +226 +227 # Ignore headers (usually text) that are not part of the GRIB2 +228 # file. For example, NAVGEM files have a http header at the +229 # beginning that needs to be ignored. +230 +231 # Read a byte at a time until "GRIB" is found. Using +232 # "wgrib2" on a NAVGEM file, the header was 421 bytes and +233 # decided to go to 2048 bytes to be safe. For normal GRIB2 +234 # files this should be quick and break out of the first +235 # loop when "test_offset" is 0. +236 for test_offset in range(2048): +237 self._filehandle.seek(pos + test_offset) +238 header = struct.unpack(">i", self._filehandle.read(4))[0] +239 if header.to_bytes(4, "big") == b"GRIB": +240 pos = pos + test_offset +241 break +242 +243 # Read the rest of Section 0 using struct. +244 _secpos[0] = self._filehandle.tell()-4 +245 _secsize[0] = 16 +246 secmsg = self._filehandle.read(12) +247 section0 = np.concatenate(([header],list(struct.unpack('>HBBQ',secmsg))),dtype=np.int64) 248 -249 if section0[3] != 2: -250 raise ValueError( -251 "This is a GRIB version 1 file. grib2io only supports GRIB version 2." -252 ) -253 -254 # Read and unpack Section 1 -255 secsize = struct.unpack('>i',self._filehandle.read(4))[0] -256 secnum = struct.unpack('>B',self._filehandle.read(1))[0] -257 assert secnum == 1 -258 self._filehandle.seek(self._filehandle.tell()-5) -259 _grbmsg = self._filehandle.read(secsize) -260 _grbpos = 0 -261 section1,_grbpos = g2clib.unpack1(_grbmsg,_grbpos,np.empty) -262 secrange = range(2,8) -263 while 1: -264 section2 = b'' -265 for num in secrange: -266 secsize = struct.unpack('>i',self._filehandle.read(4))[0] -267 secnum = struct.unpack('>B',self._filehandle.read(1))[0] -268 if secnum == num: -269 if secnum == 2: -270 if secsize > 0: -271 section2 = self._filehandle.read(secsize-5) -272 elif secnum == 3: -273 self._filehandle.seek(self._filehandle.tell()-5) -274 _grbmsg = self._filehandle.read(secsize) -275 _grbpos = 0 -276 # Unpack Section 3 -277 _gds,_gdt,_deflist,_grbpos = g2clib.unpack3(_grbmsg,_grbpos,np.empty) -278 _gds = _gds.tolist() -279 _gdt = _gdt.tolist() -280 section3 = np.concatenate((_gds,_gdt)) -281 section3 = np.where(section3==4294967295,-1,section3) -282 elif secnum == 4: -283 self._filehandle.seek(self._filehandle.tell()-5) -284 _grbmsg = self._filehandle.read(secsize) -285 _grbpos = 0 -286 # Unpack Section 4 -287 _numcoord,_pdt,_pdtnum,_coordlist,_grbpos = g2clib.unpack4(_grbmsg,_grbpos,np.empty) -288 _pdt = _pdt.tolist() -289 section4 = np.concatenate((np.array((_numcoord,_pdtnum)),_pdt)) -290 elif secnum == 5: -291 self._filehandle.seek(self._filehandle.tell()-5) -292 _grbmsg = self._filehandle.read(secsize) -293 _grbpos = 0 -294 # Unpack Section 5 -295 _drt,_drtn,_npts,self._pos = g2clib.unpack5(_grbmsg,_grbpos,np.empty) -296 section5 = np.concatenate((np.array((_npts,_drtn)),_drt)) -297 section5 = np.where(section5==4294967295,-1,section5) -298 elif secnum == 6: -299 # Unpack Section 6. Not really...just get the flag value. -300 _bmapflag = struct.unpack('>B',self._filehandle.read(1))[0] -301 if _bmapflag == 0: -302 _bmappos = self._filehandle.tell()-6 -303 elif _bmapflag == 254: -304 pass # Do this to keep the previous position value -305 else: -306 _bmappos = None -307 self._filehandle.seek(self._filehandle.tell()+secsize-6) -308 elif secnum == 7: -309 # Unpack Section 7. No need to read it, just index the position in file. -310 _datapos = self._filehandle.tell()-5 -311 _datasize = secsize -312 self._filehandle.seek(self._filehandle.tell()+secsize-5) -313 else: -314 self._filehandle.seek(self._filehandle.tell()+secsize-5) -315 else: -316 if num == 2 and secnum == 3: -317 pass # Allow this. Just means no Local Use Section. -318 else: -319 _issubmessage = True -320 _submsgoffset = (self._filehandle.tell()-5)-(self._index['offset'][-1]) -321 _submsgbegin = secnum -322 self._filehandle.seek(self._filehandle.tell()-5) -323 continue -324 trailer = struct.unpack('>4s',self._filehandle.read(4))[0] -325 if trailer == b'7777': -326 self.messages += 1 -327 self._index['offset'].append(pos) -328 self._index['bitmap_offset'].append(_bmappos) -329 self._index['data_offset'].append(_datapos) -330 self._index['size'].append(section0[-1]) -331 self._index['data_size'].append(_datasize) -332 self._index['messageNumber'].append(self.messages) -333 self._index['isSubmessage'].append(_issubmessage) -334 if _issubmessage: -335 self._index['submessageOffset'].append(_submsgoffset) -336 self._index['submessageBeginSection'].append(_submsgbegin) -337 else: -338 self._index['submessageOffset'].append(0) -339 self._index['submessageBeginSection'].append(_submsgbegin) -340 -341 # Create Grib2Message with data. -342 msg = Grib2Message(section0,section1,section2,section3,section4,section5,_bmapflag) -343 msg._msgnum = self.messages-1 -344 msg._deflist = _deflist -345 msg._coordlist = _coordlist -346 if not no_data: -347 msg._data = Grib2MessageOnDiskArray((msg.ny,msg.nx), 2, -348 TYPE_OF_VALUES_DTYPE[msg.typeOfValues], -349 self._filehandle, -350 msg, pos, _bmappos, _datapos) -351 self._index['msg'].append(msg) -352 -353 break -354 else: -355 self._filehandle.seek(self._filehandle.tell()-4) -356 self.messages += 1 -357 self._index['offset'].append(pos) -358 self._index['bitmap_offset'].append(_bmappos) -359 self._index['data_offset'].append(_datapos) -360 self._index['size'].append(section0[-1]) -361 self._index['data_size'].append(_datasize) -362 self._index['messageNumber'].append(self.messages) -363 self._index['isSubmessage'].append(_issubmessage) -364 self._index['submessageOffset'].append(_submsgoffset) -365 self._index['submessageBeginSection'].append(_submsgbegin) +249 # Make sure message is GRIB2. +250 if section0[3] != 2: +251 # Check for GRIB1 and ignore. +252 if secmsg[3] == 1: +253 warnings.warn("GRIB version 1 message detected. Ignoring...") +254 grib1_size = int.from_bytes(secmsg[:3],"big") +255 self._filehandle.seek(self._filehandle.tell()+grib1_size-16) +256 continue +257 else: +258 raise ValueError("Bad GRIB version number.") +259 +260 # Read and unpack sections 1 through 8 which all follow a pattern of +261 # section size, number, and content. +262 while 1: +263 # Read first 5 bytes of the section which contains the size of the +264 # section (4 bytes) and the section number (1 byte). +265 secmsg = self._filehandle.read(5) +266 secsize, secnum = struct.unpack('>iB',secmsg) +267 +268 # Record the offset of the section number and "append" the rest of +269 # the section to secmsg. +270 _secpos[secnum] = self._filehandle.tell()-5 +271 _secsize[secnum] = secsize +272 if secnum in {1,3,4,5}: +273 secmsg += self._filehandle.read(secsize-5) +274 grbpos = 0 +275 +276 # Unpack section +277 if secnum == 1: +278 # Unpack Section 1 +279 section1, grbpos = g2clib.unpack1(secmsg,grbpos,np.empty) +280 elif secnum == 2: +281 # Unpack Section 2 +282 section2 = self._filehandle.read(secsize-5) +283 elif secnum == 3: +284 # Unpack Section 3 +285 gds, gdt, deflist, grbpos = g2clib.unpack3(secmsg,grbpos,np.empty) +286 gds = gds.tolist() +287 gdt = gdt.tolist() +288 section3 = np.concatenate((gds,gdt)) +289 section3 = np.where(section3==4294967295,-1,section3) +290 elif secnum == 4: +291 # Unpack Section 4 +292 numcoord, pdt, pdtnum, coordlist, grbpos = g2clib.unpack4(secmsg,grbpos,np.empty) +293 pdt = pdt.tolist() +294 section4 = np.concatenate((np.array((numcoord,pdtnum)),pdt)) +295 elif secnum == 5: +296 # Unpack Section 5 +297 drt, drtn, npts, self._pos = g2clib.unpack5(secmsg,grbpos,np.empty) +298 section5 = np.concatenate((np.array((npts,drtn)),drt)) +299 section5 = np.where(section5==4294967295,-1,section5) +300 elif secnum == 6: +301 # Unpack Section 6 - Just the bitmap flag +302 bmapflag = struct.unpack('>B',self._filehandle.read(1))[0] +303 if bmapflag == 0: +304 bmappos = self._filehandle.tell()-6 +305 elif bmapflag == 254: +306 # Do this to keep the previous position value +307 pass +308 else: +309 bmappos = None +310 self._filehandle.seek(self._filehandle.tell()+secsize-6) +311 elif secnum == 7: +312 # Do not unpack section 7 here, but move the file pointer +313 # to after section 7. +314 self._filehandle.seek(self._filehandle.tell()+secsize-5) +315 +316 # Update the file index. +317 self.messages += 1 +318 self._index['sectionOffset'].append(_secpos) +319 self._index['sectionSize'].append(_secsize) +320 self._index['msgSize'].append(section0[-1]) +321 self._index['msgNumber'].append(self.messages) +322 +323 # Create Grib2Message with data. +324 msg = Grib2Message(section0,section1,section2,section3,section4,section5,bmapflag) +325 msg._msgnum = self.messages-1 +326 msg._deflist = deflist +327 msg._coordlist = coordlist +328 if not no_data: +329 msg._data = Grib2MessageOnDiskArray((msg.ny,msg.nx), 2, +330 TYPE_OF_VALUES_DTYPE[msg.typeOfValues], +331 self._filehandle, +332 msg, pos, _secpos[6], _secpos[7]) +333 self._index['msg'].append(msg) +334 +335 # If here, then we have moved through GRIB2 section 1-7. Now we +336 # need to check the next 4 bytes after section 7. +337 trailer = struct.unpack('>i',self._filehandle.read(4))[0] +338 +339 # If we reach the GRIB2 trailer string ('7777'), then we can break +340 # begin processing the next GRIB2 message. If not, then we continue +341 # within the same iteration to process a GRIB2 submessage. +342 if trailer.to_bytes(4, "big") == b'7777': +343 break +344 else: +345 # If here, trailer should be the size of the first section +346 # of the next submessage, then the next byte is the section +347 # number. Check this value. +348 nextsec = struct.unpack('>B',self._filehandle.read(1))[0] +349 if nextsec not in {2,3,4}: +350 raise ValueError("Bad GRIB2 message structure.") +351 self._filehandle.seek(self._filehandle.tell()-5) +352 continue +353 else: +354 raise ValueError("Bad GRIB2 section number.") +355 +356 except(struct.error): +357 if 'r' in self.mode: +358 self._filehandle.seek(0) +359 break +360 +361 # Index at end of _build_index() +362 if self._hasindex and not no_data: +363 self.variables = tuple(sorted(set([msg.shortName for msg in self._index['msg']]))) +364 self.levels = tuple(sorted(set([msg.level for msg in self._index['msg']]))) +365 366 -367 # Create Grib2Message with data. -368 msg = Grib2Message(section0,section1,section2,section3,section4,section5,_bmapflag) -369 msg._msgnum = self.messages-1 -370 msg._deflist = _deflist -371 msg._coordlist = _coordlist -372 if not no_data: -373 msg._data = Grib2MessageOnDiskArray((msg.ny,msg.nx), 2, -374 TYPE_OF_VALUES_DTYPE[msg.typeOfValues], -375 self._filehandle, -376 msg, pos, _bmappos, _datapos) -377 self._index['msg'].append(msg) -378 -379 continue -380 -381 except(struct.error): -382 if 'r' in self.mode: -383 self._filehandle.seek(0) -384 break -385 -386 # Index at end of _build_index() -387 if self._hasindex and not no_data: -388 self.variables = tuple(sorted(set([msg.shortName for msg in self._index['msg']]))) -389 self.levels = tuple(sorted(set([msg.level for msg in self._index['msg']]))) -390 -391 -392 def close(self): -393 """ -394 Close the file handle -395 """ -396 if not self._filehandle.closed: -397 self.messages = 0 -398 self.current_message = 0 -399 self._filehandle.close() -400 self.closed = self._filehandle.closed -401 -402 -403 def read(self, size=None): -404 """ -405 Read size amount of GRIB2 messages from the current position. -406 -407 If no argument is given, then size is None and all messages are returned from -408 the current position in the file. This read method follows the behavior of -409 Python's builtin open() function, but whereas that operates on units of bytes, -410 we operate on units of GRIB2 messages. -411 -412 Parameters -413 ---------- -414 **`size : int, optional`** -415 The number of GRIB2 messages to read from the current position. If no argument is -416 give, the default value is `None` and remainder of the file is read. +367 def close(self): +368 """ +369 Close the file handle +370 """ +371 if not self._filehandle.closed: +372 self.messages = 0 +373 self.current_message = 0 +374 self._filehandle.close() +375 self.closed = self._filehandle.closed +376 +377 +378 def read(self, size=None): +379 """ +380 Read size amount of GRIB2 messages from the current position. +381 +382 If no argument is given, then size is None and all messages are returned from +383 the current position in the file. This read method follows the behavior of +384 Python's builtin open() function, but whereas that operates on units of bytes, +385 we operate on units of GRIB2 messages. +386 +387 Parameters +388 ---------- +389 **`size : int, optional`** +390 The number of GRIB2 messages to read from the current position. If no argument is +391 give, the default value is `None` and remainder of the file is read. +392 +393 Returns +394 ------- +395 `Grib2Message` object when size = 1 or a `list` of Grib2Messages when size > 1. +396 """ +397 if size is not None and size < 0: +398 size = None +399 if size is None or size > 1: +400 start = self.tell() +401 stop = self.messages if size is None else start+size +402 if size is None: +403 self.current_message = self.messages-1 +404 else: +405 self.current_message += size +406 return self._index['msg'][slice(start,stop,1)] +407 elif size == 1: +408 self.current_message += 1 +409 return self._index['msg'][self.current_message] +410 else: +411 None +412 +413 +414 def seek(self, pos): +415 """ +416 Set the position within the file in units of GRIB2 messages. 417 -418 Returns -419 ------- -420 `Grib2Message` object when size = 1 or a `list` of Grib2Messages when size > 1. -421 """ -422 if size is not None and size < 0: -423 size = None -424 if size is None or size > 1: -425 start = self.tell() -426 stop = self.messages if size is None else start+size -427 if size is None: -428 self.current_message = self.messages-1 -429 else: -430 self.current_message += size -431 return self._index['msg'][slice(start,stop,1)] -432 elif size == 1: -433 self.current_message += 1 -434 return self._index['msg'][self.current_message] -435 else: -436 None -437 -438 -439 def seek(self, pos): -440 """ -441 Set the position within the file in units of GRIB2 messages. -442 -443 Parameters -444 ---------- -445 **`pos : int`** -446 The GRIB2 Message number to set the file pointer to. -447 """ -448 if self._hasindex: -449 self._filehandle.seek(self._index['offset'][pos]) -450 self.current_message = pos -451 +418 Parameters +419 ---------- +420 **`pos : int`** +421 The GRIB2 Message number to set the file pointer to. +422 """ +423 if self._hasindex: +424 self._filehandle.seek(self._index['sectionOffset'][0][pos]) +425 self.current_message = pos +426 +427 +428 def tell(self): +429 """ +430 Returns the position of the file in units of GRIB2 Messages. +431 """ +432 return self.current_message +433 +434 +435 def select(self, **kwargs): +436 """ +437 Select GRIB2 messages by `Grib2Message` attributes. +438 """ +439 # TODO: Added ability to process multiple values for each keyword (attribute) +440 idxs = [] +441 nkeys = len(kwargs.keys()) +442 for k,v in kwargs.items(): +443 for m in self._index['msg']: +444 if hasattr(m,k) and getattr(m,k) == v: idxs.append(m._msgnum) +445 idxs = np.array(idxs,dtype=np.int32) +446 return [self._index['msg'][i] for i in [ii[0] for ii in collections.Counter(idxs).most_common() if ii[1] == nkeys]] +447 +448 +449 def write(self, msg): +450 """ +451 Writes GRIB2 message object to file. 452 -453 def tell(self): -454 """ -455 Returns the position of the file in units of GRIB2 Messages. -456 """ -457 return self.current_message -458 -459 -460 def select(self, **kwargs): -461 """ -462 Select GRIB2 messages by `Grib2Message` attributes. -463 """ -464 # TODO: Added ability to process multiple values for each keyword (attribute) -465 idxs = [] -466 nkeys = len(kwargs.keys()) -467 for k,v in kwargs.items(): -468 for m in self._index['msg']: -469 if hasattr(m,k) and getattr(m,k) == v: idxs.append(m._msgnum) -470 idxs = np.array(idxs,dtype=np.int32) -471 return [self._index['msg'][i] for i in [ii[0] for ii in collections.Counter(idxs).most_common() if ii[1] == nkeys]] -472 -473 -474 def write(self, msg): -475 """ -476 Writes GRIB2 message object to file. -477 -478 Parameters -479 ---------- -480 **`msg : Grib2Message or sequence of Grib2Messages`** -481 GRIB2 message objects to write to file. -482 """ -483 if isinstance(msg,list): -484 for m in msg: -485 self.write(m) -486 return -487 -488 if issubclass(msg.__class__,_Grib2Message): -489 if hasattr(msg,'_msg'): -490 self._filehandle.write(msg._msg) -491 else: -492 if msg._signature != msg._generate_signature(): -493 msg.pack() -494 self._filehandle.write(msg._msg) -495 else: -496 if hasattr(msg._data,'filehandle'): -497 msg._data.filehandle.seek(msg._data.offset) -498 self._filehandle.write(msg._data.filehandle.read(msg.section0[-1])) -499 else: -500 msg.pack() -501 self._filehandle.write(msg._msg) -502 self.flush() -503 self.size = os.path.getsize(self.name) -504 self._filehandle.seek(self.size-msg.section0[-1]) -505 self._build_index() -506 else: -507 raise TypeError("msg must be a Grib2Message object.") -508 return -509 -510 -511 def flush(self): -512 """ -513 Flush the file object buffer. -514 """ -515 self._filehandle.flush() -516 +453 Parameters +454 ---------- +455 **`msg : Grib2Message or sequence of Grib2Messages`** +456 GRIB2 message objects to write to file. +457 """ +458 if isinstance(msg,list): +459 for m in msg: +460 self.write(m) +461 return +462 +463 if issubclass(msg.__class__,_Grib2Message): +464 if hasattr(msg,'_msg'): +465 self._filehandle.write(msg._msg) +466 else: +467 if msg._signature != msg._generate_signature(): +468 msg.pack() +469 self._filehandle.write(msg._msg) +470 else: +471 if hasattr(msg._data,'filehandle'): +472 msg._data.filehandle.seek(msg._data.offset) +473 self._filehandle.write(msg._data.filehandle.read(msg.section0[-1])) +474 else: +475 msg.pack() +476 self._filehandle.write(msg._msg) +477 self.flush() +478 self.size = os.path.getsize(self.name) +479 self._filehandle.seek(self.size-msg.section0[-1]) +480 self._build_index() +481 else: +482 raise TypeError("msg must be a Grib2Message object.") +483 return +484 +485 +486 def flush(self): +487 """ +488 Flush the file object buffer. +489 """ +490 self._filehandle.flush() +491 +492 +493 def levels_by_var(self, name): +494 """ +495 Return a list of level strings given a variable shortName. +496 +497 Parameters +498 ---------- +499 **`name : str`** +500 Grib2Message variable shortName +501 +502 Returns +503 ------- +504 A list of strings of unique level strings. +505 """ +506 return list(sorted(set([msg.level for msg in self.select(shortName=name)]))) +507 +508 +509 def vars_by_level(self, level): +510 """ +511 Return a list of variable shortName strings given a level. +512 +513 Parameters +514 ---------- +515 **`level : str`** +516 Grib2Message variable level 517 -518 def levels_by_var(self, name): -519 """ -520 Return a list of level strings given a variable shortName. -521 -522 Parameters -523 ---------- -524 **`name : str`** -525 Grib2Message variable shortName -526 -527 Returns -528 ------- -529 A list of strings of unique level strings. -530 """ -531 return list(sorted(set([msg.level for msg in self.select(shortName=name)]))) -532 -533 -534 def vars_by_level(self, level): -535 """ -536 Return a list of variable shortName strings given a level. -537 -538 Parameters -539 ---------- -540 **`level : str`** -541 Grib2Message variable level -542 -543 Returns -544 ------- -545 A list of strings of variable shortName strings. -546 """ -547 return list(sorted(set([msg.shortName for msg in self.select(level=level)]))) +518 Returns +519 ------- +520 A list of strings of variable shortName strings. +521 """ +522 return list(sorted(set([msg.shortName for msg in self.select(level=level)])))Tutorials
may contain submessages whereby Section 2-7 can be repeated. grib2io accommodates for this by flattening any GRIB2 submessages into multiple individual messages. +It is important to note that GRIB2 files from some Meteorological agencies contain other data +than GRIB2 messages. GRIB2 files from NWS NDFD and NAVGEM have text-based "header" data and +files from ECMWF can contain GRIB1 and GRIB2 messages. grib2io checks for these and safely +ignores them.
+Attributes
mode : str
@@ -992,60 +971,60 @@Attributes
98 def __init__(self, filename, mode='r', **kwargs): - 99 """ -100 Initialize GRIB2 File object instance. -101 -102 Parameters -103 ---------- -104 -105 **`filename : str`** -106 File name containing GRIB2 messages. +@@ -1161,15 +1140,15 @@104 def __init__(self, filename, mode='r', **kwargs): +105 """ +106 Initialize GRIB2 File object instance. 107 -108 **`mode : str, optional`** -109 File access mode where `r` opens the files for reading only; `w` opens the file for writing. -110 """ -111 # Manage keywords -112 if "_xarray_backend" not in kwargs: -113 kwargs["_xarray_backend"] = False -114 if mode in {'a','r','w'}: -115 mode = mode+'b' -116 if 'w' in mode: mode += '+' -117 if 'a' in mode: mode += '+' -118 -119 # Some GRIB2 files are gzipped, so check for that here, but -120 # raise error when using xarray backend. -121 if 'r' in mode: -122 self._filehandle = builtins.open(filename,mode=mode) -123 # Gzip files contain a 2-byte header b'\x1f\x8b'. -124 if self._filehandle.read(2) == b'\x1f\x8b': -125 self._filehandle.close() -126 if '_xarray_backend' in kwargs.keys(): -127 raise RuntimeError('Gzip GRIB2 files are not supported by the Xarray backend.') -128 import gzip -129 self._filehandle = gzip.open(filename,mode=mode) -130 else: -131 self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB) -132 else: -133 self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB) -134 -135 self._hasindex = False -136 self._index = {} -137 self.mode = mode -138 self.name = os.path.abspath(filename) -139 self.messages = 0 -140 self.current_message = 0 -141 self.size = os.path.getsize(self.name) -142 self.closed = self._filehandle.closed -143 self.levels = None -144 self.variables = None -145 if 'r' in self.mode: -146 try: -147 self._build_index(no_data=kwargs['_xarray_backend']) -148 except(KeyError): -149 self._build_index() -150 # FIX: Cannot perform reads on mode='a' -151 #if 'a' in self.mode and self.size > 0: self._build_index() +108 Parameters +109 ---------- +110 +111 **`filename : str`** +112 File name containing GRIB2 messages. +113 +114 **`mode : str, optional`** +115 File access mode where `r` opens the files for reading only; `w` opens the file for writing. +116 """ +117 # Manage keywords +118 if "_xarray_backend" not in kwargs: +119 kwargs["_xarray_backend"] = False +120 if mode in {'a','r','w'}: +121 mode = mode+'b' +122 if 'w' in mode: mode += '+' +123 if 'a' in mode: mode += '+' +124 +125 # Some GRIB2 files are gzipped, so check for that here, but +126 # raise error when using xarray backend. +127 if 'r' in mode: +128 self._filehandle = builtins.open(filename,mode=mode) +129 # Gzip files contain a 2-byte header b'\x1f\x8b'. +130 if self._filehandle.read(2) == b'\x1f\x8b': +131 self._filehandle.close() +132 if '_xarray_backend' in kwargs.keys(): +133 raise RuntimeError('Gzip GRIB2 files are not supported by the Xarray backend.') +134 import gzip +135 self._filehandle = gzip.open(filename,mode=mode) +136 else: +137 self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB) +138 else: +139 self._filehandle = builtins.open(filename,mode=mode,buffering=ONE_MB) +140 +141 self._hasindex = False +142 self._index = {} +143 self.mode = mode +144 self.name = os.path.abspath(filename) +145 self.messages = 0 +146 self.current_message = 0 +147 self.size = os.path.getsize(self.name) +148 self.closed = self._filehandle.closed +149 self.levels = None +150 self.variables = None +151 if 'r' in self.mode: +152 try: +153 self._build_index(no_data=kwargs['_xarray_backend']) +154 except(KeyError): +155 self._build_index() +156 # FIX: Cannot perform reads on mode='a' +157 #if 'a' in self.mode and self.size > 0: self._build_index()Parameters
392 def close(self): -393 """ -394 Close the file handle -395 """ -396 if not self._filehandle.closed: -397 self.messages = 0 -398 self.current_message = 0 -399 self._filehandle.close() -400 self.closed = self._filehandle.closed +@@ -1189,40 +1168,40 @@367 def close(self): +368 """ +369 Close the file handle +370 """ +371 if not self._filehandle.closed: +372 self.messages = 0 +373 self.current_message = 0 +374 self._filehandle.close() +375 self.closed = self._filehandle.closedParameters
403 def read(self, size=None): -404 """ -405 Read size amount of GRIB2 messages from the current position. -406 -407 If no argument is given, then size is None and all messages are returned from -408 the current position in the file. This read method follows the behavior of -409 Python's builtin open() function, but whereas that operates on units of bytes, -410 we operate on units of GRIB2 messages. -411 -412 Parameters -413 ---------- -414 **`size : int, optional`** -415 The number of GRIB2 messages to read from the current position. If no argument is -416 give, the default value is `None` and remainder of the file is read. -417 -418 Returns -419 ------- -420 `Grib2Message` object when size = 1 or a `list` of Grib2Messages when size > 1. -421 """ -422 if size is not None and size < 0: -423 size = None -424 if size is None or size > 1: -425 start = self.tell() -426 stop = self.messages if size is None else start+size -427 if size is None: -428 self.current_message = self.messages-1 -429 else: -430 self.current_message += size -431 return self._index['msg'][slice(start,stop,1)] -432 elif size == 1: -433 self.current_message += 1 -434 return self._index['msg'][self.current_message] -435 else: -436 None +@@ -1257,18 +1236,18 @@378 def read(self, size=None): +379 """ +380 Read size amount of GRIB2 messages from the current position. +381 +382 If no argument is given, then size is None and all messages are returned from +383 the current position in the file. This read method follows the behavior of +384 Python's builtin open() function, but whereas that operates on units of bytes, +385 we operate on units of GRIB2 messages. +386 +387 Parameters +388 ---------- +389 **`size : int, optional`** +390 The number of GRIB2 messages to read from the current position. If no argument is +391 give, the default value is `None` and remainder of the file is read. +392 +393 Returns +394 ------- +395 `Grib2Message` object when size = 1 or a `list` of Grib2Messages when size > 1. +396 """ +397 if size is not None and size < 0: +398 size = None +399 if size is None or size > 1: +400 start = self.tell() +401 stop = self.messages if size is None else start+size +402 if size is None: +403 self.current_message = self.messages-1 +404 else: +405 self.current_message += size +406 return self._index['msg'][slice(start,stop,1)] +407 elif size == 1: +408 self.current_message += 1 +409 return self._index['msg'][self.current_message] +410 else: +411 NoneReturns
439 def seek(self, pos): -440 """ -441 Set the position within the file in units of GRIB2 messages. -442 -443 Parameters -444 ---------- -445 **`pos : int`** -446 The GRIB2 Message number to set the file pointer to. -447 """ -448 if self._hasindex: -449 self._filehandle.seek(self._index['offset'][pos]) -450 self.current_message = pos +@@ -1293,11 +1272,11 @@414 def seek(self, pos): +415 """ +416 Set the position within the file in units of GRIB2 messages. +417 +418 Parameters +419 ---------- +420 **`pos : int`** +421 The GRIB2 Message number to set the file pointer to. +422 """ +423 if self._hasindex: +424 self._filehandle.seek(self._index['sectionOffset'][0][pos]) +425 self.current_message = posParameters
453 def tell(self): -454 """ -455 Returns the position of the file in units of GRIB2 Messages. -456 """ -457 return self.current_message +@@ -1317,18 +1296,18 @@428 def tell(self): +429 """ +430 Returns the position of the file in units of GRIB2 Messages. +431 """ +432 return self.current_messageParameters
460 def select(self, **kwargs): -461 """ -462 Select GRIB2 messages by `Grib2Message` attributes. -463 """ -464 # TODO: Added ability to process multiple values for each keyword (attribute) -465 idxs = [] -466 nkeys = len(kwargs.keys()) -467 for k,v in kwargs.items(): -468 for m in self._index['msg']: -469 if hasattr(m,k) and getattr(m,k) == v: idxs.append(m._msgnum) -470 idxs = np.array(idxs,dtype=np.int32) -471 return [self._index['msg'][i] for i in [ii[0] for ii in collections.Counter(idxs).most_common() if ii[1] == nkeys]] +@@ -1348,41 +1327,41 @@435 def select(self, **kwargs): +436 """ +437 Select GRIB2 messages by `Grib2Message` attributes. +438 """ +439 # TODO: Added ability to process multiple values for each keyword (attribute) +440 idxs = [] +441 nkeys = len(kwargs.keys()) +442 for k,v in kwargs.items(): +443 for m in self._index['msg']: +444 if hasattr(m,k) and getattr(m,k) == v: idxs.append(m._msgnum) +445 idxs = np.array(idxs,dtype=np.int32) +446 return [self._index['msg'][i] for i in [ii[0] for ii in collections.Counter(idxs).most_common() if ii[1] == nkeys]]Parameters
474 def write(self, msg): -475 """ -476 Writes GRIB2 message object to file. -477 -478 Parameters -479 ---------- -480 **`msg : Grib2Message or sequence of Grib2Messages`** -481 GRIB2 message objects to write to file. -482 """ -483 if isinstance(msg,list): -484 for m in msg: -485 self.write(m) -486 return -487 -488 if issubclass(msg.__class__,_Grib2Message): -489 if hasattr(msg,'_msg'): -490 self._filehandle.write(msg._msg) -491 else: -492 if msg._signature != msg._generate_signature(): -493 msg.pack() -494 self._filehandle.write(msg._msg) -495 else: -496 if hasattr(msg._data,'filehandle'): -497 msg._data.filehandle.seek(msg._data.offset) -498 self._filehandle.write(msg._data.filehandle.read(msg.section0[-1])) -499 else: -500 msg.pack() -501 self._filehandle.write(msg._msg) -502 self.flush() -503 self.size = os.path.getsize(self.name) -504 self._filehandle.seek(self.size-msg.section0[-1]) -505 self._build_index() -506 else: -507 raise TypeError("msg must be a Grib2Message object.") -508 return +@@ -1407,11 +1386,11 @@449 def write(self, msg): +450 """ +451 Writes GRIB2 message object to file. +452 +453 Parameters +454 ---------- +455 **`msg : Grib2Message or sequence of Grib2Messages`** +456 GRIB2 message objects to write to file. +457 """ +458 if isinstance(msg,list): +459 for m in msg: +460 self.write(m) +461 return +462 +463 if issubclass(msg.__class__,_Grib2Message): +464 if hasattr(msg,'_msg'): +465 self._filehandle.write(msg._msg) +466 else: +467 if msg._signature != msg._generate_signature(): +468 msg.pack() +469 self._filehandle.write(msg._msg) +470 else: +471 if hasattr(msg._data,'filehandle'): +472 msg._data.filehandle.seek(msg._data.offset) +473 self._filehandle.write(msg._data.filehandle.read(msg.section0[-1])) +474 else: +475 msg.pack() +476 self._filehandle.write(msg._msg) +477 self.flush() +478 self.size = os.path.getsize(self.name) +479 self._filehandle.seek(self.size-msg.section0[-1]) +480 self._build_index() +481 else: +482 raise TypeError("msg must be a Grib2Message object.") +483 returnParameters
511 def flush(self): -512 """ -513 Flush the file object buffer. -514 """ -515 self._filehandle.flush() +@@ -1431,20 +1410,20 @@486 def flush(self): +487 """ +488 Flush the file object buffer. +489 """ +490 self._filehandle.flush()Parameters
518 def levels_by_var(self, name): -519 """ -520 Return a list of level strings given a variable shortName. -521 -522 Parameters -523 ---------- -524 **`name : str`** -525 Grib2Message variable shortName -526 -527 Returns -528 ------- -529 A list of strings of unique level strings. -530 """ -531 return list(sorted(set([msg.level for msg in self.select(shortName=name)]))) +@@ -1473,20 +1452,20 @@493 def levels_by_var(self, name): +494 """ +495 Return a list of level strings given a variable shortName. +496 +497 Parameters +498 ---------- +499 **`name : str`** +500 Grib2Message variable shortName +501 +502 Returns +503 ------- +504 A list of strings of unique level strings. +505 """ +506 return list(sorted(set([msg.level for msg in self.select(shortName=name)])))Returns
534 def vars_by_level(self, level): -535 """ -536 Return a list of variable shortName strings given a level. -537 -538 Parameters -539 ---------- -540 **`level : str`** -541 Grib2Message variable level -542 -543 Returns -544 ------- -545 A list of strings of variable shortName strings. -546 """ -547 return list(sorted(set([msg.shortName for msg in self.select(level=level)]))) +@@ -1516,73 +1495,78 @@509 def vars_by_level(self, level): +510 """ +511 Return a list of variable shortName strings given a level. +512 +513 Parameters +514 ---------- +515 **`level : str`** +516 Grib2Message variable level +517 +518 Returns +519 ------- +520 A list of strings of variable shortName strings. +521 """ +522 return list(sorted(set([msg.shortName for msg in self.select(level=level)])))Returns
550class Grib2Message: -551 """ -552 Creation class for a GRIB2 message. -553 """ -554 def __new__(self, section0: np.array = np.array([struct.unpack('>I',b'GRIB')[0],0,0,2,0]), -555 section1: np.array = np.zeros((13),dtype=np.int64), -556 section2: bytes = None, -557 section3: np.array = None, -558 section4: np.array = None, -559 section5: np.array = None, *args, **kwargs): -560 -561 if np.all(section1==0): -562 section1[5:11] = datetime.datetime.utcfromtimestamp(0).timetuple()[:6] -563 -564 bases = list() -565 if section3 is None: -566 if 'gdtn' in kwargs.keys(): -567 gdtn = kwargs['gdtn'] -568 Gdt = templates.gdt_class_by_gdtn(gdtn) -569 bases.append(Gdt) -570 section3 = np.zeros((Gdt._len+5),dtype=np.int64) -571 section3[4] = gdtn -572 else: -573 raise ValueError("Must provide GRIB2 Grid Definition Template Number or section 3 array") -574 else: -575 gdtn = section3[4] -576 Gdt = templates.gdt_class_by_gdtn(gdtn) -577 bases.append(Gdt) -578 -579 if section4 is None: -580 if 'pdtn' in kwargs.keys(): -581 pdtn = kwargs['pdtn'] -582 Pdt = templates.pdt_class_by_pdtn(pdtn) -583 bases.append(Pdt) -584 section4 = np.zeros((Pdt._len+2),dtype=np.int64) -585 section4[1] = pdtn -586 else: -587 raise ValueError("Must provide GRIB2 Production Definition Template Number or section 4 array") -588 else: -589 pdtn = section4[1] -590 Pdt = templates.pdt_class_by_pdtn(pdtn) -591 bases.append(Pdt) -592 -593 if section5 is None: -594 if 'drtn' in kwargs.keys(): -595 drtn = kwargs['drtn'] -596 Drt = templates.drt_class_by_drtn(drtn) -597 bases.append(Drt) -598 section5 = np.zeros((Drt._len+2),dtype=np.int64) -599 section5[1] = drtn -600 else: -601 raise ValueError("Must provide GRIB2 Data Representation Template Number or section 5 array") -602 else: -603 drtn = section5[1] -604 Drt = templates.drt_class_by_drtn(drtn) -605 bases.append(Drt) -606 -607 # attempt to use existing Msg class if it has already been made with gdtn,pdtn,drtn combo -608 try: -609 Msg = _msg_class_store[f"{gdtn}:{pdtn}:{drtn}"] -610 except KeyError: -611 @dataclass(init=False, repr=False) -612 class Msg(_Grib2Message, *bases): -613 pass -614 _msg_class_store[f"{gdtn}:{pdtn}:{drtn}"] = Msg -615 -616 return Msg(section0, section1, section2, section3, section4, section5, *args) +@@ -1603,606 +1587,606 @@525class Grib2Message: +526 """ +527 Creation class for a GRIB2 message. +528 """ +529 def __new__(self, section0: np.array = np.array([struct.unpack('>I',b'GRIB')[0],0,0,2,0]), +530 section1: np.array = np.zeros((13),dtype=np.int64), +531 section2: bytes = None, +532 section3: np.array = None, +533 section4: np.array = None, +534 section5: np.array = None, *args, **kwargs): +535 +536 if np.all(section1==0): +537 try: +538 # Python >= 3.10 +539 section1[5:11] = datetime.datetime.fromtimestamp(0, datetime.UTC).timetuple()[:6] +540 except(AttributeError): +541 # Python < 3.10 +542 section1[5:11] = datetime.datetime.utcfromtimestamp(0).timetuple()[:6] +543 +544 bases = list() +545 if section3 is None: +546 if 'gdtn' in kwargs.keys(): +547 gdtn = kwargs['gdtn'] +548 Gdt = templates.gdt_class_by_gdtn(gdtn) +549 bases.append(Gdt) +550 section3 = np.zeros((Gdt._len+5),dtype=np.int64) +551 section3[4] = gdtn +552 else: +553 raise ValueError("Must provide GRIB2 Grid Definition Template Number or section 3 array") +554 else: +555 gdtn = section3[4] +556 Gdt = templates.gdt_class_by_gdtn(gdtn) +557 bases.append(Gdt) +558 +559 if section4 is None: +560 if 'pdtn' in kwargs.keys(): +561 pdtn = kwargs['pdtn'] +562 Pdt = templates.pdt_class_by_pdtn(pdtn) +563 bases.append(Pdt) +564 section4 = np.zeros((Pdt._len+2),dtype=np.int64) +565 section4[1] = pdtn +566 else: +567 raise ValueError("Must provide GRIB2 Production Definition Template Number or section 4 array") +568 else: +569 pdtn = section4[1] +570 Pdt = templates.pdt_class_by_pdtn(pdtn) +571 bases.append(Pdt) +572 +573 if section5 is None: +574 if 'drtn' in kwargs.keys(): +575 drtn = kwargs['drtn'] +576 Drt = templates.drt_class_by_drtn(drtn) +577 bases.append(Drt) +578 section5 = np.zeros((Drt._len+2),dtype=np.int64) +579 section5[1] = drtn +580 else: +581 raise ValueError("Must provide GRIB2 Data Representation Template Number or section 5 array") +582 else: +583 drtn = section5[1] +584 Drt = templates.drt_class_by_drtn(drtn) +585 bases.append(Drt) +586 +587 # attempt to use existing Msg class if it has already been made with gdtn,pdtn,drtn combo +588 try: +589 Msg = _msg_class_store[f"{gdtn}:{pdtn}:{drtn}"] +590 except KeyError: +591 @dataclass(init=False, repr=False) +592 class Msg(_Grib2Message, *bases): +593 pass +594 _msg_class_store[f"{gdtn}:{pdtn}:{drtn}"] = Msg +595 +596 return Msg(section0, section1, section2, section3, section4, section5, *args)Returns
619@dataclass - 620class _Grib2Message: - 621 """GRIB2 Message base class""" - 622 # GRIB2 Sections - 623 section0: np.array = field(init=True,repr=False) - 624 section1: np.array = field(init=True,repr=False) - 625 section2: bytes = field(init=True,repr=False) - 626 section3: np.array = field(init=True,repr=False) - 627 section4: np.array = field(init=True,repr=False) - 628 section5: np.array = field(init=True,repr=False) - 629 bitMapFlag: templates.Grib2Metadata = field(init=True,repr=False,default=255) - 630 - 631 # Section 0 looked up attributes - 632 indicatorSection: np.array = field(init=False,repr=False,default=templates.IndicatorSection()) - 633 discipline: templates.Grib2Metadata = field(init=False,repr=False,default=templates.Discipline()) - 634 - 635 # Section 1 looked up attributes - 636 identificationSection: np.array = field(init=False,repr=False,default=templates.IdentificationSection()) - 637 originatingCenter: templates.Grib2Metadata = field(init=False,repr=False,default=templates.OriginatingCenter()) - 638 originatingSubCenter: templates.Grib2Metadata = field(init=False,repr=False,default=templates.OriginatingSubCenter()) - 639 masterTableInfo: templates.Grib2Metadata = field(init=False,repr=False,default=templates.MasterTableInfo()) - 640 localTableInfo: templates.Grib2Metadata = field(init=False,repr=False,default=templates.LocalTableInfo()) - 641 significanceOfReferenceTime: templates.Grib2Metadata = field(init=False,repr=False,default=templates.SignificanceOfReferenceTime()) - 642 year: int = field(init=False,repr=False,default=templates.Year()) - 643 month: int = field(init=False,repr=False,default=templates.Month()) - 644 day: int = field(init=False,repr=False,default=templates.Day()) - 645 hour: int = field(init=False,repr=False,default=templates.Hour()) - 646 minute: int = field(init=False,repr=False,default=templates.Minute()) - 647 second: int = field(init=False,repr=False,default=templates.Second()) - 648 refDate: datetime.datetime = field(init=False,repr=False,default=templates.RefDate()) - 649 productionStatus: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ProductionStatus()) - 650 typeOfData: templates.Grib2Metadata = field(init=False,repr=False,default=templates.TypeOfData()) - 651 - 652 @property - 653 def _isNDFD(self): - 654 """Check if GRIB2 message is from NWS NDFD""" - 655 return np.all(self.section1[0:2]==[8,65535]) - 656 - 657 # Section 3 looked up common attributes. Other looked up attributes are available according - 658 # to the Grid Definition Template. - 659 gridDefinitionSection: np.array = field(init=False,repr=False,default=templates.GridDefinitionSection()) - 660 sourceOfGridDefinition: int = field(init=False,repr=False,default=templates.SourceOfGridDefinition()) - 661 numberOfDataPoints: int = field(init=False,repr=False,default=templates.NumberOfDataPoints()) - 662 interpretationOfListOfNumbers: templates.Grib2Metadata = field(init=False,repr=False,default=templates.InterpretationOfListOfNumbers()) - 663 gridDefinitionTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.GridDefinitionTemplateNumber()) - 664 gridDefinitionTemplate: list = field(init=False,repr=False,default=templates.GridDefinitionTemplate()) - 665 _earthparams: dict = field(init=False,repr=False,default=templates.EarthParams()) - 666 _dxsign: float = field(init=False,repr=False,default=templates.DxSign()) - 667 _dysign: float = field(init=False,repr=False,default=templates.DySign()) - 668 _llscalefactor: float = field(init=False,repr=False,default=templates.LLScaleFactor()) - 669 _lldivisor: float = field(init=False,repr=False,default=templates.LLDivisor()) - 670 _xydivisor: float = field(init=False,repr=False,default=templates.XYDivisor()) - 671 shapeOfEarth: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ShapeOfEarth()) - 672 earthShape: str = field(init=False,repr=False,default=templates.EarthShape()) - 673 earthRadius: float = field(init=False,repr=False,default=templates.EarthRadius()) - 674 earthMajorAxis: float = field(init=False,repr=False,default=templates.EarthMajorAxis()) - 675 earthMinorAxis: float = field(init=False,repr=False,default=templates.EarthMinorAxis()) - 676 resolutionAndComponentFlags: list = field(init=False,repr=False,default=templates.ResolutionAndComponentFlags()) - 677 ny: int = field(init=False,repr=False,default=templates.Ny()) - 678 nx: int = field(init=False,repr=False,default=templates.Nx()) - 679 scanModeFlags: list = field(init=False,repr=False,default=templates.ScanModeFlags()) - 680 projParameters: dict = field(init=False,repr=False,default=templates.ProjParameters()) - 681 - 682 # Section 4 attributes. Listed here are "extra" or "helper" attrs that use metadata from - 683 # the given PDT, but not a formal part of the PDT. - 684 productDefinitionTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ProductDefinitionTemplateNumber()) - 685 productDefinitionTemplate: np.array = field(init=False,repr=False,default=templates.ProductDefinitionTemplate()) - 686 _varinfo: list = field(init=False, repr=False, default=templates.VarInfo()) - 687 _fixedsfc1info: list = field(init=False, repr=False, default=templates.FixedSfc1Info()) - 688 _fixedsfc2info: list = field(init=False, repr=False, default=templates.FixedSfc2Info()) - 689 fullName: str = field(init=False, repr=False, default=templates.FullName()) - 690 units: str = field(init=False, repr=False, default=templates.Units()) - 691 shortName: str = field(init=False, repr=False, default=templates.ShortName()) - 692 leadTime: datetime.timedelta = field(init=False,repr=False,default=templates.LeadTime()) - 693 unitOfFirstFixedSurface: str = field(init=False,repr=False,default=templates.UnitOfFirstFixedSurface()) - 694 valueOfFirstFixedSurface: int = field(init=False,repr=False,default=templates.ValueOfFirstFixedSurface()) - 695 unitOfSecondFixedSurface: str = field(init=False,repr=False,default=templates.UnitOfSecondFixedSurface()) - 696 valueOfSecondFixedSurface: int = field(init=False,repr=False,default=templates.ValueOfSecondFixedSurface()) - 697 level: str = field(init=False, repr=False, default=templates.Level()) - 698 duration: datetime.timedelta = field(init=False,repr=False,default=templates.Duration()) - 699 validDate: datetime.datetime = field(init=False,repr=False,default=templates.ValidDate()) +@@ -2959,10 +2943,10 @@599@dataclass + 600class _Grib2Message: + 601 """GRIB2 Message base class""" + 602 # GRIB2 Sections + 603 section0: np.array = field(init=True,repr=False) + 604 section1: np.array = field(init=True,repr=False) + 605 section2: bytes = field(init=True,repr=False) + 606 section3: np.array = field(init=True,repr=False) + 607 section4: np.array = field(init=True,repr=False) + 608 section5: np.array = field(init=True,repr=False) + 609 bitMapFlag: templates.Grib2Metadata = field(init=True,repr=False,default=255) + 610 + 611 # Section 0 looked up attributes + 612 indicatorSection: np.array = field(init=False,repr=False,default=templates.IndicatorSection()) + 613 discipline: templates.Grib2Metadata = field(init=False,repr=False,default=templates.Discipline()) + 614 + 615 # Section 1 looked up attributes + 616 identificationSection: np.array = field(init=False,repr=False,default=templates.IdentificationSection()) + 617 originatingCenter: templates.Grib2Metadata = field(init=False,repr=False,default=templates.OriginatingCenter()) + 618 originatingSubCenter: templates.Grib2Metadata = field(init=False,repr=False,default=templates.OriginatingSubCenter()) + 619 masterTableInfo: templates.Grib2Metadata = field(init=False,repr=False,default=templates.MasterTableInfo()) + 620 localTableInfo: templates.Grib2Metadata = field(init=False,repr=False,default=templates.LocalTableInfo()) + 621 significanceOfReferenceTime: templates.Grib2Metadata = field(init=False,repr=False,default=templates.SignificanceOfReferenceTime()) + 622 year: int = field(init=False,repr=False,default=templates.Year()) + 623 month: int = field(init=False,repr=False,default=templates.Month()) + 624 day: int = field(init=False,repr=False,default=templates.Day()) + 625 hour: int = field(init=False,repr=False,default=templates.Hour()) + 626 minute: int = field(init=False,repr=False,default=templates.Minute()) + 627 second: int = field(init=False,repr=False,default=templates.Second()) + 628 refDate: datetime.datetime = field(init=False,repr=False,default=templates.RefDate()) + 629 productionStatus: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ProductionStatus()) + 630 typeOfData: templates.Grib2Metadata = field(init=False,repr=False,default=templates.TypeOfData()) + 631 + 632 @property + 633 def _isNDFD(self): + 634 """Check if GRIB2 message is from NWS NDFD""" + 635 return np.all(self.section1[0:2]==[8,65535]) + 636 + 637 # Section 3 looked up common attributes. Other looked up attributes are available according + 638 # to the Grid Definition Template. + 639 gridDefinitionSection: np.array = field(init=False,repr=False,default=templates.GridDefinitionSection()) + 640 sourceOfGridDefinition: int = field(init=False,repr=False,default=templates.SourceOfGridDefinition()) + 641 numberOfDataPoints: int = field(init=False,repr=False,default=templates.NumberOfDataPoints()) + 642 interpretationOfListOfNumbers: templates.Grib2Metadata = field(init=False,repr=False,default=templates.InterpretationOfListOfNumbers()) + 643 gridDefinitionTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.GridDefinitionTemplateNumber()) + 644 gridDefinitionTemplate: list = field(init=False,repr=False,default=templates.GridDefinitionTemplate()) + 645 _earthparams: dict = field(init=False,repr=False,default=templates.EarthParams()) + 646 _dxsign: float = field(init=False,repr=False,default=templates.DxSign()) + 647 _dysign: float = field(init=False,repr=False,default=templates.DySign()) + 648 _llscalefactor: float = field(init=False,repr=False,default=templates.LLScaleFactor()) + 649 _lldivisor: float = field(init=False,repr=False,default=templates.LLDivisor()) + 650 _xydivisor: float = field(init=False,repr=False,default=templates.XYDivisor()) + 651 shapeOfEarth: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ShapeOfEarth()) + 652 earthShape: str = field(init=False,repr=False,default=templates.EarthShape()) + 653 earthRadius: float = field(init=False,repr=False,default=templates.EarthRadius()) + 654 earthMajorAxis: float = field(init=False,repr=False,default=templates.EarthMajorAxis()) + 655 earthMinorAxis: float = field(init=False,repr=False,default=templates.EarthMinorAxis()) + 656 resolutionAndComponentFlags: list = field(init=False,repr=False,default=templates.ResolutionAndComponentFlags()) + 657 ny: int = field(init=False,repr=False,default=templates.Ny()) + 658 nx: int = field(init=False,repr=False,default=templates.Nx()) + 659 scanModeFlags: list = field(init=False,repr=False,default=templates.ScanModeFlags()) + 660 projParameters: dict = field(init=False,repr=False,default=templates.ProjParameters()) + 661 + 662 # Section 4 attributes. Listed here are "extra" or "helper" attrs that use metadata from + 663 # the given PDT, but not a formal part of the PDT. + 664 productDefinitionTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.ProductDefinitionTemplateNumber()) + 665 productDefinitionTemplate: np.array = field(init=False,repr=False,default=templates.ProductDefinitionTemplate()) + 666 _varinfo: list = field(init=False, repr=False, default=templates.VarInfo()) + 667 _fixedsfc1info: list = field(init=False, repr=False, default=templates.FixedSfc1Info()) + 668 _fixedsfc2info: list = field(init=False, repr=False, default=templates.FixedSfc2Info()) + 669 fullName: str = field(init=False, repr=False, default=templates.FullName()) + 670 units: str = field(init=False, repr=False, default=templates.Units()) + 671 shortName: str = field(init=False, repr=False, default=templates.ShortName()) + 672 leadTime: datetime.timedelta = field(init=False,repr=False,default=templates.LeadTime()) + 673 unitOfFirstFixedSurface: str = field(init=False,repr=False,default=templates.UnitOfFirstFixedSurface()) + 674 valueOfFirstFixedSurface: int = field(init=False,repr=False,default=templates.ValueOfFirstFixedSurface()) + 675 unitOfSecondFixedSurface: str = field(init=False,repr=False,default=templates.UnitOfSecondFixedSurface()) + 676 valueOfSecondFixedSurface: int = field(init=False,repr=False,default=templates.ValueOfSecondFixedSurface()) + 677 level: str = field(init=False, repr=False, default=templates.Level()) + 678 duration: datetime.timedelta = field(init=False,repr=False,default=templates.Duration()) + 679 validDate: datetime.datetime = field(init=False,repr=False,default=templates.ValidDate()) + 680 + 681 # Section 5 looked up common attributes. Other looked up attributes are available according + 682 # to the Data Representation Template. + 683 numberOfPackedValues: int = field(init=False,repr=False,default=templates.NumberOfPackedValues()) + 684 dataRepresentationTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.DataRepresentationTemplateNumber()) + 685 dataRepresentationTemplate: list = field(init=False,repr=False,default=templates.DataRepresentationTemplate()) + 686 typeOfValues: templates.Grib2Metadata = field(init=False,repr=False,default=templates.TypeOfValues()) + 687 + 688 + 689 def __post_init__(self): + 690 """Set some attributes after init""" + 691 self._msgnum = -1 + 692 self._deflist = None + 693 self._coordlist = None + 694 self._signature = self._generate_signature() + 695 try: + 696 self._sha1_section3 = hashlib.sha1(self.section3).hexdigest() + 697 except(TypeError): + 698 pass + 699 self.bitMapFlag = templates.Grib2Metadata(self.bitMapFlag,table='6.0') 700 - 701 # Section 5 looked up common attributes. Other looked up attributes are available according - 702 # to the Data Representation Template. - 703 numberOfPackedValues: int = field(init=False,repr=False,default=templates.NumberOfPackedValues()) - 704 dataRepresentationTemplateNumber: templates.Grib2Metadata = field(init=False,repr=False,default=templates.DataRepresentationTemplateNumber()) - 705 dataRepresentationTemplate: list = field(init=False,repr=False,default=templates.DataRepresentationTemplate()) - 706 typeOfValues: templates.Grib2Metadata = field(init=False,repr=False,default=templates.TypeOfValues()) + 701 + 702 @property + 703 def gdtn(self): + 704 """Return Grid Definition Template Number""" + 705 return self.section3[4] + 706 707 - 708 - 709 def __post_init__(self): - 710 """Set some attributes after init""" - 711 self._msgnum = -1 - 712 self._deflist = None - 713 self._coordlist = None - 714 self._signature = self._generate_signature() - 715 try: - 716 self._sha1_section3 = hashlib.sha1(self.section3).hexdigest() - 717 except(TypeError): - 718 pass - 719 self.bitMapFlag = templates.Grib2Metadata(self.bitMapFlag,table='6.0') - 720 - 721 - 722 @property - 723 def gdtn(self): - 724 """Return Grid Definition Template Number""" - 725 return self.section3[4] - 726 - 727 - 728 @property - 729 def gdt(self): - 730 """Return Grid Definition Template""" - 731 return self.gridDefinitionTemplate - 732 - 733 - 734 @property - 735 def pdtn(self): - 736 """Return Product Definition Template Number""" - 737 return self.section4[1] - 738 - 739 - 740 @property - 741 def pdt(self): - 742 """Return Product Definition Template""" - 743 return self.productDefinitionTemplate - 744 - 745 - 746 @property - 747 def drtn(self): - 748 """Return Data Representation Template Number""" - 749 return self.section5[1] - 750 - 751 - 752 @property - 753 def drt(self): - 754 """Return Data Representation Template""" - 755 return self.dataRepresentationTemplate + 708 @property + 709 def gdt(self): + 710 """Return Grid Definition Template""" + 711 return self.gridDefinitionTemplate + 712 + 713 + 714 @property + 715 def pdtn(self): + 716 """Return Product Definition Template Number""" + 717 return self.section4[1] + 718 + 719 + 720 @property + 721 def pdt(self): + 722 """Return Product Definition Template""" + 723 return self.productDefinitionTemplate + 724 + 725 + 726 @property + 727 def drtn(self): + 728 """Return Data Representation Template Number""" + 729 return self.section5[1] + 730 + 731 + 732 @property + 733 def drt(self): + 734 """Return Data Representation Template""" + 735 return self.dataRepresentationTemplate + 736 + 737 + 738 @property + 739 def pdy(self): + 740 """Return the PDY ('YYYYMMDD')""" + 741 return ''.join([str(i) for i in self.section1[5:8]]) + 742 + 743 + 744 @property + 745 def griddef(self): + 746 """Return a Grib2GridDef instance for a GRIB2 message""" + 747 return Grib2GridDef.from_section3(self.section3) + 748 + 749 + 750 def __repr__(self): + 751 info = '' + 752 for sect in [0,1,3,4,5,6]: + 753 for k,v in self.attrs_by_section(sect,values=True).items(): + 754 info += f'Section {sect}: {k} = {v}\n' + 755 return info 756 757 - 758 @property - 759 def pdy(self): - 760 """Return the PDY ('YYYYMMDD')""" - 761 return ''.join([str(i) for i in self.section1[5:8]]) + 758 def __str__(self): + 759 return (f'{self._msgnum}:d={self.refDate}:{self.shortName}:' + 760 f'{self.fullName} ({self.units}):{self.level}:' + 761 f'{self.leadTime}') 762 763 - 764 @property - 765 def griddef(self): - 766 """Return a Grib2GridDef instance for a GRIB2 message""" - 767 return Grib2GridDef.from_section3(self.section3) - 768 + 764 def _generate_signature(self): + 765 """Generature SHA-1 hash string from GRIB2 integer sections""" + 766 return hashlib.sha1(np.concatenate((self.section0,self.section1, + 767 self.section3,self.section4, + 768 self.section5))).hexdigest() 769 - 770 def __repr__(self): - 771 info = '' - 772 for sect in [0,1,3,4,5,6]: - 773 for k,v in self.attrs_by_section(sect,values=True).items(): - 774 info += f'Section {sect}: {k} = {v}\n' - 775 return info - 776 - 777 - 778 def __str__(self): - 779 return (f'{self._msgnum}:d={self.refDate}:{self.shortName}:' - 780 f'{self.fullName} ({self.units}):{self.level}:' - 781 f'{self.leadTime}') + 770 + 771 def attrs_by_section(self, sect, values=False): + 772 """ + 773 Provide a tuple of attribute names for the given GRIB2 section. + 774 + 775 Parameters + 776 ---------- + 777 **`sect : int`** + 778 The GRIB2 section number. + 779 + 780 **`values : bool, optional`** + 781 Optional (default is `False`) arugment to return attributes values. 782 - 783 - 784 def _generate_signature(self): - 785 """Generature SHA-1 hash string from GRIB2 integer sections""" - 786 return hashlib.sha1(np.concatenate((self.section0,self.section1, - 787 self.section3,self.section4, - 788 self.section5))).hexdigest() - 789 - 790 - 791 def attrs_by_section(self, sect, values=False): - 792 """ - 793 Provide a tuple of attribute names for the given GRIB2 section. - 794 - 795 Parameters - 796 ---------- - 797 **`sect : int`** - 798 The GRIB2 section number. - 799 - 800 **`values : bool, optional`** - 801 Optional (default is `False`) arugment to return attributes values. - 802 - 803 Returns - 804 ------- - 805 A List attribute names or Dict if `values = True`. - 806 """ - 807 if sect in {0,1,6}: - 808 attrs = templates._section_attrs[sect] - 809 elif sect in {3,4,5}: - 810 def _find_class_index(n): - 811 _key = {3:'Grid', 4:'Product', 5:'Data'} - 812 for i,c in enumerate(self.__class__.__mro__): - 813 if _key[n] in c.__name__: - 814 return i - 815 else: - 816 return [] - 817 if sys.version_info.minor <= 8: - 818 attrs = templates._section_attrs[sect]+\ - 819 [a for a in dir(self.__class__.__mro__[_find_class_index(sect)]) if not a.startswith('_')] - 820 else: - 821 attrs = templates._section_attrs[sect]+\ - 822 self.__class__.__mro__[_find_class_index(sect)]._attrs - 823 else: - 824 attrs = [] - 825 if values: - 826 return {k:getattr(self,k) for k in attrs} - 827 else: - 828 return attrs - 829 - 830 - 831 def pack(self): - 832 """ - 833 Packs GRIB2 section data into a binary message. It is the user's responsibility - 834 to populate the GRIB2 section information with appropriate metadata. - 835 """ - 836 # Create beginning of packed binary message with section 0 and 1 data. - 837 self._sections = [] - 838 self._msg,self._pos = g2clib.grib2_create(self.indicatorSection[2:4],self.identificationSection) - 839 self._sections += [0,1] + 783 Returns + 784 ------- + 785 A List attribute names or Dict if `values = True`. + 786 """ + 787 if sect in {0,1,6}: + 788 attrs = templates._section_attrs[sect] + 789 elif sect in {3,4,5}: + 790 def _find_class_index(n): + 791 _key = {3:'Grid', 4:'Product', 5:'Data'} + 792 for i,c in enumerate(self.__class__.__mro__): + 793 if _key[n] in c.__name__: + 794 return i + 795 else: + 796 return [] + 797 if sys.version_info.minor <= 8: + 798 attrs = templates._section_attrs[sect]+\ + 799 [a for a in dir(self.__class__.__mro__[_find_class_index(sect)]) if not a.startswith('_')] + 800 else: + 801 attrs = templates._section_attrs[sect]+\ + 802 self.__class__.__mro__[_find_class_index(sect)]._attrs + 803 else: + 804 attrs = [] + 805 if values: + 806 return {k:getattr(self,k) for k in attrs} + 807 else: + 808 return attrs + 809 + 810 + 811 def pack(self): + 812 """ + 813 Packs GRIB2 section data into a binary message. It is the user's responsibility + 814 to populate the GRIB2 section information with appropriate metadata. + 815 """ + 816 # Create beginning of packed binary message with section 0 and 1 data. + 817 self._sections = [] + 818 self._msg,self._pos = g2clib.grib2_create(self.indicatorSection[2:4],self.identificationSection) + 819 self._sections += [0,1] + 820 + 821 # Add section 2 if present. + 822 if isinstance(self.section2,bytes) and len(self.section2) > 0: + 823 self._msg,self._pos = g2clib.grib2_addlocal(self._msg,self.section2) + 824 self._sections.append(2) + 825 + 826 # Add section 3. + 827 self.section3[1] = self.nx * self.ny + 828 self._msg,self._pos = g2clib.grib2_addgrid(self._msg,self.gridDefinitionSection, + 829 self.gridDefinitionTemplate, + 830 self._deflist) + 831 self._sections.append(3) + 832 + 833 # Prepare data. + 834 field = np.copy(self.data) + 835 if self.scanModeFlags is not None: + 836 if self.scanModeFlags[3]: + 837 fieldsave = field.astype('f') # Casting makes a copy + 838 field[1::2,:] = fieldsave[1::2,::-1] + 839 fld = field.astype('f') 840 - 841 # Add section 2 if present. - 842 if isinstance(self.section2,bytes) and len(self.section2) > 0: - 843 self._msg,self._pos = g2clib.grib2_addlocal(self._msg,self.section2) - 844 self._sections.append(2) - 845 - 846 # Add section 3. - 847 self.section3[1] = self.nx * self.ny - 848 self._msg,self._pos = g2clib.grib2_addgrid(self._msg,self.gridDefinitionSection, - 849 self.gridDefinitionTemplate, - 850 self._deflist) - 851 self._sections.append(3) - 852 - 853 # Prepare data. - 854 field = np.copy(self.data) - 855 if self.scanModeFlags is not None: - 856 if self.scanModeFlags[3]: - 857 fieldsave = field.astype('f') # Casting makes a copy - 858 field[1::2,:] = fieldsave[1::2,::-1] - 859 fld = field.astype('f') - 860 - 861 # Prepare bitmap, if necessary - 862 bitmapflag = self.bitMapFlag.value - 863 if bitmapflag == 0: - 864 bmap = np.ravel(np.where(np.isnan(fld),0,1)).astype(DEFAULT_NUMPY_INT) - 865 else: - 866 bmap = None - 867 - 868 # Prepare optional coordinate list - 869 if self._coordlist is not None: - 870 crdlist = np.array(self._coordlist,'f') - 871 else: - 872 crdlist = None + 841 # Prepare bitmap, if necessary + 842 bitmapflag = self.bitMapFlag.value + 843 if bitmapflag == 0: + 844 bmap = np.ravel(np.where(np.isnan(fld),0,1)).astype(DEFAULT_NUMPY_INT) + 845 else: + 846 bmap = None + 847 + 848 # Prepare optional coordinate list + 849 if self._coordlist is not None: + 850 crdlist = np.array(self._coordlist,'f') + 851 else: + 852 crdlist = None + 853 + 854 # Prepare data for packing if nans are present + 855 fld = np.ravel(fld) + 856 if np.isnan(fld).any() and hasattr(self,'_missvalmap'): + 857 fld = np.where(self._missvalmap==1,self.priMissingValue,fld) + 858 fld = np.where(self._missvalmap==2,self.secMissingValue,fld) + 859 + 860 # Add sections 4, 5, 6 (if present), and 7. + 861 self._msg,self._pos = g2clib.grib2_addfield(self._msg,self.pdtn, + 862 self.productDefinitionTemplate, + 863 crdlist, + 864 self.drtn, + 865 self.dataRepresentationTemplate, + 866 fld, + 867 bitmapflag, + 868 bmap) + 869 self._sections.append(4) + 870 self._sections.append(5) + 871 if bmap is not None: self._sections.append(6) + 872 self._sections.append(7) 873 - 874 # Prepare data for packing if nans are present - 875 fld = np.ravel(fld) - 876 if np.isnan(fld).any() and hasattr(self,'_missvalmap'): - 877 fld = np.where(self._missvalmap==1,self.priMissingValue,fld) - 878 fld = np.where(self._missvalmap==2,self.secMissingValue,fld) + 874 # Finalize GRIB2 message with section 8. + 875 self._msg, self._pos = g2clib.grib2_end(self._msg) + 876 self._sections.append(8) + 877 self.section0[-1] = len(self._msg) + 878 879 - 880 # Add sections 4, 5, 6 (if present), and 7. - 881 self._msg,self._pos = g2clib.grib2_addfield(self._msg,self.pdtn, - 882 self.productDefinitionTemplate, - 883 crdlist, - 884 self.drtn, - 885 self.dataRepresentationTemplate, - 886 fld, - 887 bitmapflag, - 888 bmap) - 889 self._sections.append(4) - 890 self._sections.append(5) - 891 if bmap is not None: self._sections.append(6) - 892 self._sections.append(7) - 893 - 894 # Finalize GRIB2 message with section 8. - 895 self._msg, self._pos = g2clib.grib2_end(self._msg) - 896 self._sections.append(8) - 897 self.section0[-1] = len(self._msg) - 898 - 899 - 900 @property - 901 def data(self) -> np.array: - 902 """ - 903 Accessing the data attribute loads data into memmory - 904 """ - 905 if not hasattr(self,'_auto_nans'): self._auto_nans = _AUTO_NANS - 906 if hasattr(self,'_data'): - 907 if self._auto_nans != _AUTO_NANS: - 908 self._data = self._ondiskarray - 909 if isinstance(self._data, Grib2MessageOnDiskArray): - 910 self._ondiskarray = self._data - 911 self._data = np.asarray(self._data) - 912 return self._data - 913 raise ValueError + 880 @property + 881 def data(self) -> np.array: + 882 """ + 883 Accessing the data attribute loads data into memmory + 884 """ + 885 if not hasattr(self,'_auto_nans'): self._auto_nans = _AUTO_NANS + 886 if hasattr(self,'_data'): + 887 if self._auto_nans != _AUTO_NANS: + 888 self._data = self._ondiskarray + 889 if isinstance(self._data, Grib2MessageOnDiskArray): + 890 self._ondiskarray = self._data + 891 self._data = np.asarray(self._data) + 892 return self._data + 893 raise ValueError + 894 + 895 @data.setter + 896 def data(self, data): + 897 if not isinstance(data, np.ndarray): + 898 raise ValueError('Grib2Message data only supports numpy arrays') + 899 self._data = data + 900 + 901 + 902 def __getitem__(self, item): + 903 return self.data[item] + 904 + 905 + 906 def __setitem__(self, item): + 907 raise NotImplementedError('assignment of data not supported via setitem') + 908 + 909 + 910 def latlons(self, *args, **kwrgs): + 911 """Alias for `grib2io.Grib2Message.grid` method""" + 912 return self.grid(*args, **kwrgs) + 913 914 - 915 @data.setter - 916 def data(self, data): - 917 if not isinstance(data, np.ndarray): - 918 raise ValueError('Grib2Message data only supports numpy arrays') - 919 self._data = data - 920 + 915 def grid(self, unrotate=True): + 916 """ + 917 Return lats,lons (in degrees) of grid. + 918 + 919 Currently can handle reg. lat/lon,cglobal Gaussian, mercator, stereographic, + 920 lambert conformal, albers equal-area, space-view and azimuthal equidistant grids. 921 - 922 def __getitem__(self, item): - 923 return self.data[item] - 924 - 925 - 926 def __setitem__(self, item): - 927 raise NotImplementedError('assignment of data not supported via setitem') - 928 - 929 - 930 def latlons(self, *args, **kwrgs): - 931 """Alias for `grib2io.Grib2Message.grid` method""" - 932 return self.grid(*args, **kwrgs) - 933 - 934 - 935 def grid(self, unrotate=True): - 936 """ - 937 Return lats,lons (in degrees) of grid. - 938 - 939 Currently can handle reg. lat/lon,cglobal Gaussian, mercator, stereographic, - 940 lambert conformal, albers equal-area, space-view and azimuthal equidistant grids. - 941 - 942 Parameters - 943 ---------- - 944 **`unrotate : bool`** - 945 If `True` [DEFAULT], and grid is rotated lat/lon, then unrotate the grid, - 946 otherwise `False`, do not. - 947 - 948 Returns - 949 ------- - 950 **`lats, lons : numpy.ndarray`** - 951 Returns two numpy.ndarrays with dtype=numpy.float32 of grid latitudes and - 952 longitudes in units of degrees. - 953 """ - 954 if self._sha1_section3 in _latlon_datastore.keys(): - 955 return (_latlon_datastore[self._sha1_section3]['latitude'], - 956 _latlon_datastore[self._sha1_section3]['longitude']) - 957 gdtn = self.gridDefinitionTemplateNumber.value - 958 gdtmpl = self.gridDefinitionTemplate - 959 reggrid = self.gridDefinitionSection[2] == 0 # This means regular 2-d grid - 960 if gdtn == 0: - 961 # Regular lat/lon grid - 962 lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint - 963 lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint - 964 dlon = self.gridlengthXDirection - 965 dlat = self.gridlengthYDirection - 966 if lon2 < lon1 and dlon < 0: lon1 = -lon1 - 967 lats = np.linspace(lat1,lat2,self.ny) - 968 if reggrid: - 969 lons = np.linspace(lon1,lon2,self.nx) - 970 else: - 971 lons = np.linspace(lon1,lon2,self.ny*2) - 972 lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays. - 973 elif gdtn == 1: # Rotated Lat/Lon grid - 974 pj = pyproj.Proj(self.projParameters) - 975 lat1,lon1 = self.latitudeFirstGridpoint,self.longitudeFirstGridpoint - 976 lat2,lon2 = self.latitudeLastGridpoint,self.longitudeLastGridpoint - 977 if lon1 > 180.0: lon1 -= 360.0 - 978 if lon2 > 180.0: lon2 -= 360.0 - 979 lats = np.linspace(lat1,lat2,self.ny) - 980 lons = np.linspace(lon1,lon2,self.nx) - 981 lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays. - 982 if unrotate: - 983 from grib2io.utils import rotated_grid - 984 lats,lons = rotated_grid.unrotate(lats,lons,self.anglePoleRotation, - 985 self.latitudeSouthernPole, - 986 self.longitudeSouthernPole) - 987 elif gdtn == 40: # Gaussian grid (only works for global!) - 988 from grib2io.utils.gauss_grid import gaussian_latitudes - 989 lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint - 990 lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint - 991 nlats = self.ny - 992 if not reggrid: # Reduced Gaussian grid. - 993 nlons = 2*nlats - 994 dlon = 360./nlons - 995 else: - 996 nlons = self.nx - 997 dlon = self.gridlengthXDirection - 998 lons = np.linspace(lon1,lon2,nlons) - 999 # Compute Gaussian lats (north to south) -1000 lats = gaussian_latitudes(nlats) -1001 if lat1 < lat2: # reverse them if necessary -1002 lats = lats[::-1] -1003 lons,lats = np.meshgrid(lons,lats) -1004 elif gdtn in {10,20,30,31,110}: -1005 # Mercator, Lambert Conformal, Stereographic, Albers Equal Area, Azimuthal Equidistant -1006 dx,dy = self.gridlengthXDirection, self.gridlengthYDirection -1007 lon1,lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint -1008 pj = pyproj.Proj(self.projParameters) -1009 llcrnrx, llcrnry = pj(lon1,lat1) -1010 x = llcrnrx+dx*np.arange(self.nx) -1011 y = llcrnry+dy*np.arange(self.ny) -1012 x,y = np.meshgrid(x, y) -1013 lons,lats = pj(x, y, inverse=True) -1014 elif gdtn == 90: -1015 # Satellite Projection -1016 dx = self.gridlengthXDirection -1017 dy = self.gridlengthYDirection -1018 pj = pyproj.Proj(self.projParameters) -1019 x = dx*np.indices((self.ny,self.nx),'f')[1,:,:] -1020 x -= 0.5*x.max() -1021 y = dy*np.indices((self.ny,self.nx),'f')[0,:,:] -1022 y -= 0.5*y.max() -1023 lons,lats = pj(x,y,inverse=True) -1024 # Set lons,lats to 1.e30 where undefined -1025 abslons = np.fabs(lons) -1026 abslats = np.fabs(lats) -1027 lons = np.where(abslons < 1.e20, lons, 1.e30) -1028 lats = np.where(abslats < 1.e20, lats, 1.e30) -1029 elif gdtn == 32769: -1030 # Special NCEP Grid, Rotated Lat/Lon, Arakawa E-Grid (Non-Staggered) -1031 from grib2io.utils import arakawa_rotated_grid -1032 from grib2io.utils.rotated_grid import DEG2RAD -1033 di, dj = 0.0, 0.0 -1034 do_180 = False -1035 idir = 1 if self.scanModeFlags[0] == 0 else -1 -1036 jdir = -1 if self.scanModeFlags[1] == 0 else 1 -1037 grid_oriented = 0 if self.resolutionAndComponentFlags[4] == 0 else 1 -1038 do_rot = 1 if grid_oriented == 1 else 0 -1039 la1 = self.latitudeFirstGridpoint -1040 lo1 = self.longitudeFirstGridpoint -1041 clon = self.longitudeCenterGridpoint -1042 clat = self.latitudeCenterGridpoint -1043 lasp = clat - 90.0 -1044 losp = clon -1045 llat, llon = arakawa_rotated_grid.ll2rot(la1,lo1,lasp,losp) -1046 la2, lo2 = arakawa_rotated_grid.rot2ll(-llat,-llon,lasp,losp) -1047 rlat = -llat -1048 rlon = -llon -1049 if self.nx == 1: -1050 di = 0.0 -1051 elif idir == 1: -1052 ti = rlon -1053 while ti < llon: -1054 ti += 360.0 -1055 di = (ti - llon)/float(self.nx-1) -1056 else: -1057 ti = llon -1058 while ti < rlon: -1059 ti += 360.0 -1060 di = (ti - rlon)/float(self.nx-1) -1061 if self.ny == 1: -1062 dj = 0.0 -1063 else: -1064 dj = (rlat - llat)/float(self.ny-1) -1065 if dj < 0.0: -1066 dj = -dj -1067 if idir == 1: -1068 if llon > rlon: -1069 llon -= 360.0 -1070 if llon < 0 and rlon > 0: -1071 do_180 = True -1072 else: -1073 if rlon > llon: -1074 rlon -= 360.0 -1075 if rlon < 0 and llon > 0: -1076 do_180 = True -1077 xlat1d = llat + (np.arange(self.ny)*jdir*dj) -1078 xlon1d = llon + (np.arange(self.nx)*idir*di) -1079 xlons, xlats = np.meshgrid(xlon1d,xlat1d) -1080 rot2ll_vectorized = np.vectorize(arakawa_rotated_grid.rot2ll) -1081 lats, lons = rot2ll_vectorized(xlats,xlons,lasp,losp) -1082 if do_180: -1083 lons = np.where(lons>180.0,lons-360.0,lons) -1084 vector_rotation_angles_vectorized = np.vectorize(arakawa_rotated_grid.vector_rotation_angles) -1085 rots = vector_rotation_angles_vectorized(lats, lons, clat, losp, xlats) -1086 del xlat1d, xlon1d, xlats, xlons -1087 else: -1088 raise ValueError('Unsupported grid') -1089 -1090 _latlon_datastore[self._sha1_section3] = dict(latitude=lats,longitude=lons) -1091 try: -1092 _latlon_datastore[self._sha1_section3]['vector_rotation_angles'] = rots -1093 except(NameError): -1094 pass -1095 -1096 return lats, lons -1097 -1098 -1099 def map_keys(self): -1100 """ -1101 Returns an unpacked data grid where integer grid values are replaced with -1102 a string.in which the numeric value is a representation of. -1103 -1104 These types of fields are cateogrical or classifications where data values -1105 do not represent an observable or predictable physical quantity. An example -1106 of such a field field would be [Dominant Precipitation Type - -1107 DPTYPE](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-201.shtml) -1108 -1109 Returns -1110 ------- -1111 **`numpy.ndarray`** of string values per element. -1112 """ -1113 hold_auto_nans = _AUTO_NANS -1114 set_auto_nans(False) -1115 if (np.all(self.section1[0:2]==[7,14]) and self.shortName == 'PWTHER') or \ -1116 (np.all(self.section1[0:2]==[8,65535]) and self.shortName == 'WX'): -1117 keys = utils.decode_wx_strings(self.section2) -1118 if hasattr(self,'priMissingValue') and self.priMissingValue not in [None,0]: -1119 keys[int(self.priMissingValue)] = 'Missing' -1120 if hasattr(self,'secMissingValue') and self.secMissingValue not in [None,0]: -1121 keys[int(self.secMissingValue)] = 'Missing' -1122 u,inv = np.unique(self.data,return_inverse=True) -1123 fld = np.array([keys[x] for x in u])[inv].reshape(self.data.shape) -1124 else: -1125 # For data whose units are defined in a code table (i.e. classification or mask) -1126 tblname = re.findall(r'\d\.\d+',self.units,re.IGNORECASE)[0] -1127 fld = self.data.astype(np.int32).astype(str) -1128 tbl = tables.get_table(tblname,expand=True) -1129 for val in np.unique(fld): -1130 fld = np.where(fld==val,tbl[val],fld) -1131 set_auto_nans(hold_auto_nans) -1132 return fld -1133 -1134 -1135 def to_bytes(self, validate=True): -1136 """ -1137 Return packed GRIB2 message in bytes format. -1138 -1139 This will be Useful for exporting data in non-file formats. For example, -1140 can be used to output grib data directly to S3 using the boto3 client -1141 without the need to write a temporary file to upload first. -1142 -1143 Parameters -1144 ---------- -1145 **`validate : bool, optional`** -1146 If `True` (DEFAULT), validates first/last four bytes for proper -1147 formatting, else returns None. If `False`, message is output as is. + 922 Parameters + 923 ---------- + 924 **`unrotate : bool`** + 925 If `True` [DEFAULT], and grid is rotated lat/lon, then unrotate the grid, + 926 otherwise `False`, do not. + 927 + 928 Returns + 929 ------- + 930 **`lats, lons : numpy.ndarray`** + 931 Returns two numpy.ndarrays with dtype=numpy.float32 of grid latitudes and + 932 longitudes in units of degrees. + 933 """ + 934 if self._sha1_section3 in _latlon_datastore.keys(): + 935 return (_latlon_datastore[self._sha1_section3]['latitude'], + 936 _latlon_datastore[self._sha1_section3]['longitude']) + 937 gdtn = self.gridDefinitionTemplateNumber.value + 938 gdtmpl = self.gridDefinitionTemplate + 939 reggrid = self.gridDefinitionSection[2] == 0 # This means regular 2-d grid + 940 if gdtn == 0: + 941 # Regular lat/lon grid + 942 lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint + 943 lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint + 944 dlon = self.gridlengthXDirection + 945 dlat = self.gridlengthYDirection + 946 if lon2 < lon1 and dlon < 0: lon1 = -lon1 + 947 lats = np.linspace(lat1,lat2,self.ny) + 948 if reggrid: + 949 lons = np.linspace(lon1,lon2,self.nx) + 950 else: + 951 lons = np.linspace(lon1,lon2,self.ny*2) + 952 lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays. + 953 elif gdtn == 1: # Rotated Lat/Lon grid + 954 pj = pyproj.Proj(self.projParameters) + 955 lat1,lon1 = self.latitudeFirstGridpoint,self.longitudeFirstGridpoint + 956 lat2,lon2 = self.latitudeLastGridpoint,self.longitudeLastGridpoint + 957 if lon1 > 180.0: lon1 -= 360.0 + 958 if lon2 > 180.0: lon2 -= 360.0 + 959 lats = np.linspace(lat1,lat2,self.ny) + 960 lons = np.linspace(lon1,lon2,self.nx) + 961 lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays. + 962 if unrotate: + 963 from grib2io.utils import rotated_grid + 964 lats,lons = rotated_grid.unrotate(lats,lons,self.anglePoleRotation, + 965 self.latitudeSouthernPole, + 966 self.longitudeSouthernPole) + 967 elif gdtn == 40: # Gaussian grid (only works for global!) + 968 from grib2io.utils.gauss_grid import gaussian_latitudes + 969 lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint + 970 lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint + 971 nlats = self.ny + 972 if not reggrid: # Reduced Gaussian grid. + 973 nlons = 2*nlats + 974 dlon = 360./nlons + 975 else: + 976 nlons = self.nx + 977 dlon = self.gridlengthXDirection + 978 lons = np.linspace(lon1,lon2,nlons) + 979 # Compute Gaussian lats (north to south) + 980 lats = gaussian_latitudes(nlats) + 981 if lat1 < lat2: # reverse them if necessary + 982 lats = lats[::-1] + 983 lons,lats = np.meshgrid(lons,lats) + 984 elif gdtn in {10,20,30,31,110}: + 985 # Mercator, Lambert Conformal, Stereographic, Albers Equal Area, Azimuthal Equidistant + 986 dx,dy = self.gridlengthXDirection, self.gridlengthYDirection + 987 lon1,lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint + 988 pj = pyproj.Proj(self.projParameters) + 989 llcrnrx, llcrnry = pj(lon1,lat1) + 990 x = llcrnrx+dx*np.arange(self.nx) + 991 y = llcrnry+dy*np.arange(self.ny) + 992 x,y = np.meshgrid(x, y) + 993 lons,lats = pj(x, y, inverse=True) + 994 elif gdtn == 90: + 995 # Satellite Projection + 996 dx = self.gridlengthXDirection + 997 dy = self.gridlengthYDirection + 998 pj = pyproj.Proj(self.projParameters) + 999 x = dx*np.indices((self.ny,self.nx),'f')[1,:,:] +1000 x -= 0.5*x.max() +1001 y = dy*np.indices((self.ny,self.nx),'f')[0,:,:] +1002 y -= 0.5*y.max() +1003 lons,lats = pj(x,y,inverse=True) +1004 # Set lons,lats to 1.e30 where undefined +1005 abslons = np.fabs(lons) +1006 abslats = np.fabs(lats) +1007 lons = np.where(abslons < 1.e20, lons, 1.e30) +1008 lats = np.where(abslats < 1.e20, lats, 1.e30) +1009 elif gdtn == 32769: +1010 # Special NCEP Grid, Rotated Lat/Lon, Arakawa E-Grid (Non-Staggered) +1011 from grib2io.utils import arakawa_rotated_grid +1012 from grib2io.utils.rotated_grid import DEG2RAD +1013 di, dj = 0.0, 0.0 +1014 do_180 = False +1015 idir = 1 if self.scanModeFlags[0] == 0 else -1 +1016 jdir = -1 if self.scanModeFlags[1] == 0 else 1 +1017 grid_oriented = 0 if self.resolutionAndComponentFlags[4] == 0 else 1 +1018 do_rot = 1 if grid_oriented == 1 else 0 +1019 la1 = self.latitudeFirstGridpoint +1020 lo1 = self.longitudeFirstGridpoint +1021 clon = self.longitudeCenterGridpoint +1022 clat = self.latitudeCenterGridpoint +1023 lasp = clat - 90.0 +1024 losp = clon +1025 llat, llon = arakawa_rotated_grid.ll2rot(la1,lo1,lasp,losp) +1026 la2, lo2 = arakawa_rotated_grid.rot2ll(-llat,-llon,lasp,losp) +1027 rlat = -llat +1028 rlon = -llon +1029 if self.nx == 1: +1030 di = 0.0 +1031 elif idir == 1: +1032 ti = rlon +1033 while ti < llon: +1034 ti += 360.0 +1035 di = (ti - llon)/float(self.nx-1) +1036 else: +1037 ti = llon +1038 while ti < rlon: +1039 ti += 360.0 +1040 di = (ti - rlon)/float(self.nx-1) +1041 if self.ny == 1: +1042 dj = 0.0 +1043 else: +1044 dj = (rlat - llat)/float(self.ny-1) +1045 if dj < 0.0: +1046 dj = -dj +1047 if idir == 1: +1048 if llon > rlon: +1049 llon -= 360.0 +1050 if llon < 0 and rlon > 0: +1051 do_180 = True +1052 else: +1053 if rlon > llon: +1054 rlon -= 360.0 +1055 if rlon < 0 and llon > 0: +1056 do_180 = True +1057 xlat1d = llat + (np.arange(self.ny)*jdir*dj) +1058 xlon1d = llon + (np.arange(self.nx)*idir*di) +1059 xlons, xlats = np.meshgrid(xlon1d,xlat1d) +1060 rot2ll_vectorized = np.vectorize(arakawa_rotated_grid.rot2ll) +1061 lats, lons = rot2ll_vectorized(xlats,xlons,lasp,losp) +1062 if do_180: +1063 lons = np.where(lons>180.0,lons-360.0,lons) +1064 vector_rotation_angles_vectorized = np.vectorize(arakawa_rotated_grid.vector_rotation_angles) +1065 rots = vector_rotation_angles_vectorized(lats, lons, clat, losp, xlats) +1066 del xlat1d, xlon1d, xlats, xlons +1067 else: +1068 raise ValueError('Unsupported grid') +1069 +1070 _latlon_datastore[self._sha1_section3] = dict(latitude=lats,longitude=lons) +1071 try: +1072 _latlon_datastore[self._sha1_section3]['vector_rotation_angles'] = rots +1073 except(NameError): +1074 pass +1075 +1076 return lats, lons +1077 +1078 +1079 def map_keys(self): +1080 """ +1081 Returns an unpacked data grid where integer grid values are replaced with +1082 a string.in which the numeric value is a representation of. +1083 +1084 These types of fields are cateogrical or classifications where data values +1085 do not represent an observable or predictable physical quantity. An example +1086 of such a field field would be [Dominant Precipitation Type - +1087 DPTYPE](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-201.shtml) +1088 +1089 Returns +1090 ------- +1091 **`numpy.ndarray`** of string values per element. +1092 """ +1093 hold_auto_nans = _AUTO_NANS +1094 set_auto_nans(False) +1095 if (np.all(self.section1[0:2]==[7,14]) and self.shortName == 'PWTHER') or \ +1096 (np.all(self.section1[0:2]==[8,65535]) and self.shortName == 'WX'): +1097 keys = utils.decode_wx_strings(self.section2) +1098 if hasattr(self,'priMissingValue') and self.priMissingValue not in [None,0]: +1099 keys[int(self.priMissingValue)] = 'Missing' +1100 if hasattr(self,'secMissingValue') and self.secMissingValue not in [None,0]: +1101 keys[int(self.secMissingValue)] = 'Missing' +1102 u,inv = np.unique(self.data,return_inverse=True) +1103 fld = np.array([keys[x] for x in u])[inv].reshape(self.data.shape) +1104 else: +1105 # For data whose units are defined in a code table (i.e. classification or mask) +1106 tblname = re.findall(r'\d\.\d+',self.units,re.IGNORECASE)[0] +1107 fld = self.data.astype(np.int32).astype(str) +1108 tbl = tables.get_table(tblname,expand=True) +1109 for val in np.unique(fld): +1110 fld = np.where(fld==val,tbl[val],fld) +1111 set_auto_nans(hold_auto_nans) +1112 return fld +1113 +1114 +1115 def to_bytes(self, validate=True): +1116 """ +1117 Return packed GRIB2 message in bytes format. +1118 +1119 This will be Useful for exporting data in non-file formats. For example, +1120 can be used to output grib data directly to S3 using the boto3 client +1121 without the need to write a temporary file to upload first. +1122 +1123 Parameters +1124 ---------- +1125 **`validate : bool, optional`** +1126 If `True` (DEFAULT), validates first/last four bytes for proper +1127 formatting, else returns None. If `False`, message is output as is. +1128 +1129 Returns +1130 ------- +1131 Returns GRIB2 formatted message as bytes. +1132 """ +1133 if validate: +1134 if self._msg[0:4]+self._msg[-4:] == b'GRIB7777': +1135 return self._msg +1136 else: +1137 return None +1138 else: +1139 return self._msg +1140 +1141 +1142 def interpolate(self, method, grid_def_out, method_options=None): +1143 """ +1144 Perform grid spatial interpolation via the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip). +1145 +1146 **IMPORTANT:** This interpolate method only supports scalar interpolation. If you +1147 need to perform vector interpolation, use the module-level `grib2io.interpolate` function. 1148 -1149 Returns -1150 ------- -1151 Returns GRIB2 formatted message as bytes. -1152 """ -1153 if validate: -1154 if self._msg[0:4]+self._msg[-4:] == b'GRIB7777': -1155 return self._msg -1156 else: -1157 return None -1158 else: -1159 return self._msg -1160 -1161 -1162 def interpolate(self, method, grid_def_out, method_options=None): -1163 """ -1164 Perform grid spatial interpolation via the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip). -1165 -1166 **IMPORTANT:** This interpolate method only supports scalar interpolation. If you -1167 need to perform vector interpolation, use the module-level `grib2io.interpolate` function. -1168 -1169 Parameters -1170 ---------- -1171 **`method : int or str`** -1172 Interpolate method to use. This can either be an integer or string using -1173 the following mapping: -1174 -1175 | Interpolate Scheme | Integer Value | -1176 | :---: | :---: | -1177 | 'bilinear' | 0 | -1178 | 'bicubic' | 1 | -1179 | 'neighbor' | 2 | -1180 | 'budget' | 3 | -1181 | 'spectral' | 4 | -1182 | 'neighbor-budget' | 6 | +1149 Parameters +1150 ---------- +1151 **`method : int or str`** +1152 Interpolate method to use. This can either be an integer or string using +1153 the following mapping: +1154 +1155 | Interpolate Scheme | Integer Value | +1156 | :---: | :---: | +1157 | 'bilinear' | 0 | +1158 | 'bicubic' | 1 | +1159 | 'neighbor' | 2 | +1160 | 'budget' | 3 | +1161 | 'spectral' | 4 | +1162 | 'neighbor-budget' | 6 | +1163 +1164 **`grid_def_out : grib2io.Grib2GridDef`** +1165 Grib2GridDef object of the output grid. +1166 +1167 **`method_options : list of ints, optional`** +1168 Interpolation options. See the NCEPLIBS-ip doucmentation for +1169 more information on how these are used. +1170 +1171 Returns +1172 ------- +1173 If interpolating to a grid, a new Grib2Message object is returned. The GRIB2 metadata of +1174 the new Grib2Message object is indentical to the input except where required to be different +1175 because of the new grid specs. +1176 +1177 If interpolating to station points, the interpolated data values are returned as a numpy.ndarray. +1178 """ +1179 section0 = self.section0 +1180 section0[-1] = 0 +1181 gds = [0, grid_def_out.npoints, 0, 255, grid_def_out.gdtn] +1182 section3 = np.concatenate((gds,grid_def_out.gdt)) 1183 -1184 **`grid_def_out : grib2io.Grib2GridDef`** -1185 Grib2GridDef object of the output grid. +1184 msg = Grib2Message(section0,self.section1,self.section2,section3, +1185 self.section4,self.section5,self.bitMapFlag.value) 1186 -1187 **`method_options : list of ints, optional`** -1188 Interpolation options. See the NCEPLIBS-ip doucmentation for -1189 more information on how these are used. -1190 -1191 Returns -1192 ------- -1193 If interpolating to a grid, a new Grib2Message object is returned. The GRIB2 metadata of -1194 the new Grib2Message object is indentical to the input except where required to be different -1195 because of the new grid specs. -1196 -1197 If interpolating to station points, the interpolated data values are returned as a numpy.ndarray. -1198 """ -1199 section0 = self.section0 -1200 section0[-1] = 0 -1201 gds = [0, grid_def_out.npoints, 0, 255, grid_def_out.gdtn] -1202 section3 = np.concatenate((gds,grid_def_out.gdt)) -1203 -1204 msg = Grib2Message(section0,self.section1,self.section2,section3, -1205 self.section4,self.section5,self.bitMapFlag.value) -1206 -1207 msg._msgnum = -1 -1208 msg._deflist = self._deflist -1209 msg._coordlist = self._coordlist -1210 shape = (msg.ny,msg.nx) -1211 ndim = 2 -1212 if msg.typeOfValues == 0: -1213 dtype = 'float32' -1214 elif msg.typeOfValues == 1: -1215 dtype = 'int32' -1216 msg._data = interpolate(self.data,method,Grib2GridDef.from_section3(self.section3),grid_def_out, -1217 method_options=method_options).reshape(msg.ny,msg.nx) -1218 return msg +1187 msg._msgnum = -1 +1188 msg._deflist = self._deflist +1189 msg._coordlist = self._coordlist +1190 shape = (msg.ny,msg.nx) +1191 ndim = 2 +1192 if msg.typeOfValues == 0: +1193 dtype = 'float32' +1194 elif msg.typeOfValues == 1: +1195 dtype = 'int32' +1196 msg._data = interpolate(self.data,method,Grib2GridDef.from_section3(self.section3),grid_def_out, +1197 method_options=method_options).reshape(msg.ny,msg.nx) +1198 return msgReturns
722 @property -723 def gdtn(self): -724 """Return Grid Definition Template Number""" -725 return self.section3[4] +@@ -2980,10 +2964,10 @@702 @property +703 def gdtn(self): +704 """Return Grid Definition Template Number""" +705 return self.section3[4]Returns
728 @property -729 def gdt(self): -730 """Return Grid Definition Template""" -731 return self.gridDefinitionTemplate +@@ -3001,10 +2985,10 @@708 @property +709 def gdt(self): +710 """Return Grid Definition Template""" +711 return self.gridDefinitionTemplateReturns
734 @property -735 def pdtn(self): -736 """Return Product Definition Template Number""" -737 return self.section4[1] +@@ -3022,10 +3006,10 @@714 @property +715 def pdtn(self): +716 """Return Product Definition Template Number""" +717 return self.section4[1]Returns
740 @property -741 def pdt(self): -742 """Return Product Definition Template""" -743 return self.productDefinitionTemplate +@@ -3043,10 +3027,10 @@720 @property +721 def pdt(self): +722 """Return Product Definition Template""" +723 return self.productDefinitionTemplateReturns
746 @property -747 def drtn(self): -748 """Return Data Representation Template Number""" -749 return self.section5[1] +@@ -3064,10 +3048,10 @@726 @property +727 def drtn(self): +728 """Return Data Representation Template Number""" +729 return self.section5[1]Returns
752 @property -753 def drt(self): -754 """Return Data Representation Template""" -755 return self.dataRepresentationTemplate +@@ -3085,10 +3069,10 @@732 @property +733 def drt(self): +734 """Return Data Representation Template""" +735 return self.dataRepresentationTemplateReturns
758 @property -759 def pdy(self): -760 """Return the PDY ('YYYYMMDD')""" -761 return ''.join([str(i) for i in self.section1[5:8]]) +@@ -3106,10 +3090,10 @@738 @property +739 def pdy(self): +740 """Return the PDY ('YYYYMMDD')""" +741 return ''.join([str(i) for i in self.section1[5:8]])Returns
764 @property -765 def griddef(self): -766 """Return a Grib2GridDef instance for a GRIB2 message""" -767 return Grib2GridDef.from_section3(self.section3) +@@ -3129,44 +3113,44 @@744 @property +745 def griddef(self): +746 """Return a Grib2GridDef instance for a GRIB2 message""" +747 return Grib2GridDef.from_section3(self.section3)Returns
791 def attrs_by_section(self, sect, values=False): -792 """ -793 Provide a tuple of attribute names for the given GRIB2 section. -794 -795 Parameters -796 ---------- -797 **`sect : int`** -798 The GRIB2 section number. -799 -800 **`values : bool, optional`** -801 Optional (default is `False`) arugment to return attributes values. -802 -803 Returns -804 ------- -805 A List attribute names or Dict if `values = True`. -806 """ -807 if sect in {0,1,6}: -808 attrs = templates._section_attrs[sect] -809 elif sect in {3,4,5}: -810 def _find_class_index(n): -811 _key = {3:'Grid', 4:'Product', 5:'Data'} -812 for i,c in enumerate(self.__class__.__mro__): -813 if _key[n] in c.__name__: -814 return i -815 else: -816 return [] -817 if sys.version_info.minor <= 8: -818 attrs = templates._section_attrs[sect]+\ -819 [a for a in dir(self.__class__.__mro__[_find_class_index(sect)]) if not a.startswith('_')] -820 else: -821 attrs = templates._section_attrs[sect]+\ -822 self.__class__.__mro__[_find_class_index(sect)]._attrs -823 else: -824 attrs = [] -825 if values: -826 return {k:getattr(self,k) for k in attrs} -827 else: -828 return attrs +@@ -3198,73 +3182,73 @@771 def attrs_by_section(self, sect, values=False): +772 """ +773 Provide a tuple of attribute names for the given GRIB2 section. +774 +775 Parameters +776 ---------- +777 **`sect : int`** +778 The GRIB2 section number. +779 +780 **`values : bool, optional`** +781 Optional (default is `False`) arugment to return attributes values. +782 +783 Returns +784 ------- +785 A List attribute names or Dict if `values = True`. +786 """ +787 if sect in {0,1,6}: +788 attrs = templates._section_attrs[sect] +789 elif sect in {3,4,5}: +790 def _find_class_index(n): +791 _key = {3:'Grid', 4:'Product', 5:'Data'} +792 for i,c in enumerate(self.__class__.__mro__): +793 if _key[n] in c.__name__: +794 return i +795 else: +796 return [] +797 if sys.version_info.minor <= 8: +798 attrs = templates._section_attrs[sect]+\ +799 [a for a in dir(self.__class__.__mro__[_find_class_index(sect)]) if not a.startswith('_')] +800 else: +801 attrs = templates._section_attrs[sect]+\ +802 self.__class__.__mro__[_find_class_index(sect)]._attrs +803 else: +804 attrs = [] +805 if values: +806 return {k:getattr(self,k) for k in attrs} +807 else: +808 return attrsReturns
831 def pack(self): -832 """ -833 Packs GRIB2 section data into a binary message. It is the user's responsibility -834 to populate the GRIB2 section information with appropriate metadata. -835 """ -836 # Create beginning of packed binary message with section 0 and 1 data. -837 self._sections = [] -838 self._msg,self._pos = g2clib.grib2_create(self.indicatorSection[2:4],self.identificationSection) -839 self._sections += [0,1] +@@ -3283,20 +3267,20 @@811 def pack(self): +812 """ +813 Packs GRIB2 section data into a binary message. It is the user's responsibility +814 to populate the GRIB2 section information with appropriate metadata. +815 """ +816 # Create beginning of packed binary message with section 0 and 1 data. +817 self._sections = [] +818 self._msg,self._pos = g2clib.grib2_create(self.indicatorSection[2:4],self.identificationSection) +819 self._sections += [0,1] +820 +821 # Add section 2 if present. +822 if isinstance(self.section2,bytes) and len(self.section2) > 0: +823 self._msg,self._pos = g2clib.grib2_addlocal(self._msg,self.section2) +824 self._sections.append(2) +825 +826 # Add section 3. +827 self.section3[1] = self.nx * self.ny +828 self._msg,self._pos = g2clib.grib2_addgrid(self._msg,self.gridDefinitionSection, +829 self.gridDefinitionTemplate, +830 self._deflist) +831 self._sections.append(3) +832 +833 # Prepare data. +834 field = np.copy(self.data) +835 if self.scanModeFlags is not None: +836 if self.scanModeFlags[3]: +837 fieldsave = field.astype('f') # Casting makes a copy +838 field[1::2,:] = fieldsave[1::2,::-1] +839 fld = field.astype('f') 840 -841 # Add section 2 if present. -842 if isinstance(self.section2,bytes) and len(self.section2) > 0: -843 self._msg,self._pos = g2clib.grib2_addlocal(self._msg,self.section2) -844 self._sections.append(2) -845 -846 # Add section 3. -847 self.section3[1] = self.nx * self.ny -848 self._msg,self._pos = g2clib.grib2_addgrid(self._msg,self.gridDefinitionSection, -849 self.gridDefinitionTemplate, -850 self._deflist) -851 self._sections.append(3) -852 -853 # Prepare data. -854 field = np.copy(self.data) -855 if self.scanModeFlags is not None: -856 if self.scanModeFlags[3]: -857 fieldsave = field.astype('f') # Casting makes a copy -858 field[1::2,:] = fieldsave[1::2,::-1] -859 fld = field.astype('f') -860 -861 # Prepare bitmap, if necessary -862 bitmapflag = self.bitMapFlag.value -863 if bitmapflag == 0: -864 bmap = np.ravel(np.where(np.isnan(fld),0,1)).astype(DEFAULT_NUMPY_INT) -865 else: -866 bmap = None -867 -868 # Prepare optional coordinate list -869 if self._coordlist is not None: -870 crdlist = np.array(self._coordlist,'f') -871 else: -872 crdlist = None +841 # Prepare bitmap, if necessary +842 bitmapflag = self.bitMapFlag.value +843 if bitmapflag == 0: +844 bmap = np.ravel(np.where(np.isnan(fld),0,1)).astype(DEFAULT_NUMPY_INT) +845 else: +846 bmap = None +847 +848 # Prepare optional coordinate list +849 if self._coordlist is not None: +850 crdlist = np.array(self._coordlist,'f') +851 else: +852 crdlist = None +853 +854 # Prepare data for packing if nans are present +855 fld = np.ravel(fld) +856 if np.isnan(fld).any() and hasattr(self,'_missvalmap'): +857 fld = np.where(self._missvalmap==1,self.priMissingValue,fld) +858 fld = np.where(self._missvalmap==2,self.secMissingValue,fld) +859 +860 # Add sections 4, 5, 6 (if present), and 7. +861 self._msg,self._pos = g2clib.grib2_addfield(self._msg,self.pdtn, +862 self.productDefinitionTemplate, +863 crdlist, +864 self.drtn, +865 self.dataRepresentationTemplate, +866 fld, +867 bitmapflag, +868 bmap) +869 self._sections.append(4) +870 self._sections.append(5) +871 if bmap is not None: self._sections.append(6) +872 self._sections.append(7) 873 -874 # Prepare data for packing if nans are present -875 fld = np.ravel(fld) -876 if np.isnan(fld).any() and hasattr(self,'_missvalmap'): -877 fld = np.where(self._missvalmap==1,self.priMissingValue,fld) -878 fld = np.where(self._missvalmap==2,self.secMissingValue,fld) -879 -880 # Add sections 4, 5, 6 (if present), and 7. -881 self._msg,self._pos = g2clib.grib2_addfield(self._msg,self.pdtn, -882 self.productDefinitionTemplate, -883 crdlist, -884 self.drtn, -885 self.dataRepresentationTemplate, -886 fld, -887 bitmapflag, -888 bmap) -889 self._sections.append(4) -890 self._sections.append(5) -891 if bmap is not None: self._sections.append(6) -892 self._sections.append(7) -893 -894 # Finalize GRIB2 message with section 8. -895 self._msg, self._pos = g2clib.grib2_end(self._msg) -896 self._sections.append(8) -897 self.section0[-1] = len(self._msg) +874 # Finalize GRIB2 message with section 8. +875 self._msg, self._pos = g2clib.grib2_end(self._msg) +876 self._sections.append(8) +877 self.section0[-1] = len(self._msg)Returns
900 @property -901 def data(self) -> np.array: -902 """ -903 Accessing the data attribute loads data into memmory -904 """ -905 if not hasattr(self,'_auto_nans'): self._auto_nans = _AUTO_NANS -906 if hasattr(self,'_data'): -907 if self._auto_nans != _AUTO_NANS: -908 self._data = self._ondiskarray -909 if isinstance(self._data, Grib2MessageOnDiskArray): -910 self._ondiskarray = self._data -911 self._data = np.asarray(self._data) -912 return self._data -913 raise ValueError +@@ -3316,9 +3300,9 @@880 @property +881 def data(self) -> np.array: +882 """ +883 Accessing the data attribute loads data into memmory +884 """ +885 if not hasattr(self,'_auto_nans'): self._auto_nans = _AUTO_NANS +886 if hasattr(self,'_data'): +887 if self._auto_nans != _AUTO_NANS: +888 self._data = self._ondiskarray +889 if isinstance(self._data, Grib2MessageOnDiskArray): +890 self._ondiskarray = self._data +891 self._data = np.asarray(self._data) +892 return self._data +893 raise ValueErrorReturns
930 def latlons(self, *args, **kwrgs): -931 """Alias for `grib2io.Grib2Message.grid` method""" -932 return self.grid(*args, **kwrgs) +@@ -3338,168 +3322,168 @@910 def latlons(self, *args, **kwrgs): +911 """Alias for `grib2io.Grib2Message.grid` method""" +912 return self.grid(*args, **kwrgs)Returns
935 def grid(self, unrotate=True): - 936 """ - 937 Return lats,lons (in degrees) of grid. - 938 - 939 Currently can handle reg. lat/lon,cglobal Gaussian, mercator, stereographic, - 940 lambert conformal, albers equal-area, space-view and azimuthal equidistant grids. - 941 - 942 Parameters - 943 ---------- - 944 **`unrotate : bool`** - 945 If `True` [DEFAULT], and grid is rotated lat/lon, then unrotate the grid, - 946 otherwise `False`, do not. - 947 - 948 Returns - 949 ------- - 950 **`lats, lons : numpy.ndarray`** - 951 Returns two numpy.ndarrays with dtype=numpy.float32 of grid latitudes and - 952 longitudes in units of degrees. - 953 """ - 954 if self._sha1_section3 in _latlon_datastore.keys(): - 955 return (_latlon_datastore[self._sha1_section3]['latitude'], - 956 _latlon_datastore[self._sha1_section3]['longitude']) - 957 gdtn = self.gridDefinitionTemplateNumber.value - 958 gdtmpl = self.gridDefinitionTemplate - 959 reggrid = self.gridDefinitionSection[2] == 0 # This means regular 2-d grid - 960 if gdtn == 0: - 961 # Regular lat/lon grid - 962 lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint - 963 lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint - 964 dlon = self.gridlengthXDirection - 965 dlat = self.gridlengthYDirection - 966 if lon2 < lon1 and dlon < 0: lon1 = -lon1 - 967 lats = np.linspace(lat1,lat2,self.ny) - 968 if reggrid: - 969 lons = np.linspace(lon1,lon2,self.nx) - 970 else: - 971 lons = np.linspace(lon1,lon2,self.ny*2) - 972 lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays. - 973 elif gdtn == 1: # Rotated Lat/Lon grid - 974 pj = pyproj.Proj(self.projParameters) - 975 lat1,lon1 = self.latitudeFirstGridpoint,self.longitudeFirstGridpoint - 976 lat2,lon2 = self.latitudeLastGridpoint,self.longitudeLastGridpoint - 977 if lon1 > 180.0: lon1 -= 360.0 - 978 if lon2 > 180.0: lon2 -= 360.0 - 979 lats = np.linspace(lat1,lat2,self.ny) - 980 lons = np.linspace(lon1,lon2,self.nx) - 981 lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays. - 982 if unrotate: - 983 from grib2io.utils import rotated_grid - 984 lats,lons = rotated_grid.unrotate(lats,lons,self.anglePoleRotation, - 985 self.latitudeSouthernPole, - 986 self.longitudeSouthernPole) - 987 elif gdtn == 40: # Gaussian grid (only works for global!) - 988 from grib2io.utils.gauss_grid import gaussian_latitudes - 989 lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint - 990 lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint - 991 nlats = self.ny - 992 if not reggrid: # Reduced Gaussian grid. - 993 nlons = 2*nlats - 994 dlon = 360./nlons - 995 else: - 996 nlons = self.nx - 997 dlon = self.gridlengthXDirection - 998 lons = np.linspace(lon1,lon2,nlons) - 999 # Compute Gaussian lats (north to south) -1000 lats = gaussian_latitudes(nlats) -1001 if lat1 < lat2: # reverse them if necessary -1002 lats = lats[::-1] -1003 lons,lats = np.meshgrid(lons,lats) -1004 elif gdtn in {10,20,30,31,110}: -1005 # Mercator, Lambert Conformal, Stereographic, Albers Equal Area, Azimuthal Equidistant -1006 dx,dy = self.gridlengthXDirection, self.gridlengthYDirection -1007 lon1,lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint -1008 pj = pyproj.Proj(self.projParameters) -1009 llcrnrx, llcrnry = pj(lon1,lat1) -1010 x = llcrnrx+dx*np.arange(self.nx) -1011 y = llcrnry+dy*np.arange(self.ny) -1012 x,y = np.meshgrid(x, y) -1013 lons,lats = pj(x, y, inverse=True) -1014 elif gdtn == 90: -1015 # Satellite Projection -1016 dx = self.gridlengthXDirection -1017 dy = self.gridlengthYDirection -1018 pj = pyproj.Proj(self.projParameters) -1019 x = dx*np.indices((self.ny,self.nx),'f')[1,:,:] -1020 x -= 0.5*x.max() -1021 y = dy*np.indices((self.ny,self.nx),'f')[0,:,:] -1022 y -= 0.5*y.max() -1023 lons,lats = pj(x,y,inverse=True) -1024 # Set lons,lats to 1.e30 where undefined -1025 abslons = np.fabs(lons) -1026 abslats = np.fabs(lats) -1027 lons = np.where(abslons < 1.e20, lons, 1.e30) -1028 lats = np.where(abslats < 1.e20, lats, 1.e30) -1029 elif gdtn == 32769: -1030 # Special NCEP Grid, Rotated Lat/Lon, Arakawa E-Grid (Non-Staggered) -1031 from grib2io.utils import arakawa_rotated_grid -1032 from grib2io.utils.rotated_grid import DEG2RAD -1033 di, dj = 0.0, 0.0 -1034 do_180 = False -1035 idir = 1 if self.scanModeFlags[0] == 0 else -1 -1036 jdir = -1 if self.scanModeFlags[1] == 0 else 1 -1037 grid_oriented = 0 if self.resolutionAndComponentFlags[4] == 0 else 1 -1038 do_rot = 1 if grid_oriented == 1 else 0 -1039 la1 = self.latitudeFirstGridpoint -1040 lo1 = self.longitudeFirstGridpoint -1041 clon = self.longitudeCenterGridpoint -1042 clat = self.latitudeCenterGridpoint -1043 lasp = clat - 90.0 -1044 losp = clon -1045 llat, llon = arakawa_rotated_grid.ll2rot(la1,lo1,lasp,losp) -1046 la2, lo2 = arakawa_rotated_grid.rot2ll(-llat,-llon,lasp,losp) -1047 rlat = -llat -1048 rlon = -llon -1049 if self.nx == 1: -1050 di = 0.0 -1051 elif idir == 1: -1052 ti = rlon -1053 while ti < llon: -1054 ti += 360.0 -1055 di = (ti - llon)/float(self.nx-1) -1056 else: -1057 ti = llon -1058 while ti < rlon: -1059 ti += 360.0 -1060 di = (ti - rlon)/float(self.nx-1) -1061 if self.ny == 1: -1062 dj = 0.0 -1063 else: -1064 dj = (rlat - llat)/float(self.ny-1) -1065 if dj < 0.0: -1066 dj = -dj -1067 if idir == 1: -1068 if llon > rlon: -1069 llon -= 360.0 -1070 if llon < 0 and rlon > 0: -1071 do_180 = True -1072 else: -1073 if rlon > llon: -1074 rlon -= 360.0 -1075 if rlon < 0 and llon > 0: -1076 do_180 = True -1077 xlat1d = llat + (np.arange(self.ny)*jdir*dj) -1078 xlon1d = llon + (np.arange(self.nx)*idir*di) -1079 xlons, xlats = np.meshgrid(xlon1d,xlat1d) -1080 rot2ll_vectorized = np.vectorize(arakawa_rotated_grid.rot2ll) -1081 lats, lons = rot2ll_vectorized(xlats,xlons,lasp,losp) -1082 if do_180: -1083 lons = np.where(lons>180.0,lons-360.0,lons) -1084 vector_rotation_angles_vectorized = np.vectorize(arakawa_rotated_grid.vector_rotation_angles) -1085 rots = vector_rotation_angles_vectorized(lats, lons, clat, losp, xlats) -1086 del xlat1d, xlon1d, xlats, xlons -1087 else: -1088 raise ValueError('Unsupported grid') -1089 -1090 _latlon_datastore[self._sha1_section3] = dict(latitude=lats,longitude=lons) -1091 try: -1092 _latlon_datastore[self._sha1_section3]['vector_rotation_angles'] = rots -1093 except(NameError): -1094 pass -1095 -1096 return lats, lons +@@ -3534,40 +3518,40 @@915 def grid(self, unrotate=True): + 916 """ + 917 Return lats,lons (in degrees) of grid. + 918 + 919 Currently can handle reg. lat/lon,cglobal Gaussian, mercator, stereographic, + 920 lambert conformal, albers equal-area, space-view and azimuthal equidistant grids. + 921 + 922 Parameters + 923 ---------- + 924 **`unrotate : bool`** + 925 If `True` [DEFAULT], and grid is rotated lat/lon, then unrotate the grid, + 926 otherwise `False`, do not. + 927 + 928 Returns + 929 ------- + 930 **`lats, lons : numpy.ndarray`** + 931 Returns two numpy.ndarrays with dtype=numpy.float32 of grid latitudes and + 932 longitudes in units of degrees. + 933 """ + 934 if self._sha1_section3 in _latlon_datastore.keys(): + 935 return (_latlon_datastore[self._sha1_section3]['latitude'], + 936 _latlon_datastore[self._sha1_section3]['longitude']) + 937 gdtn = self.gridDefinitionTemplateNumber.value + 938 gdtmpl = self.gridDefinitionTemplate + 939 reggrid = self.gridDefinitionSection[2] == 0 # This means regular 2-d grid + 940 if gdtn == 0: + 941 # Regular lat/lon grid + 942 lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint + 943 lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint + 944 dlon = self.gridlengthXDirection + 945 dlat = self.gridlengthYDirection + 946 if lon2 < lon1 and dlon < 0: lon1 = -lon1 + 947 lats = np.linspace(lat1,lat2,self.ny) + 948 if reggrid: + 949 lons = np.linspace(lon1,lon2,self.nx) + 950 else: + 951 lons = np.linspace(lon1,lon2,self.ny*2) + 952 lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays. + 953 elif gdtn == 1: # Rotated Lat/Lon grid + 954 pj = pyproj.Proj(self.projParameters) + 955 lat1,lon1 = self.latitudeFirstGridpoint,self.longitudeFirstGridpoint + 956 lat2,lon2 = self.latitudeLastGridpoint,self.longitudeLastGridpoint + 957 if lon1 > 180.0: lon1 -= 360.0 + 958 if lon2 > 180.0: lon2 -= 360.0 + 959 lats = np.linspace(lat1,lat2,self.ny) + 960 lons = np.linspace(lon1,lon2,self.nx) + 961 lons,lats = np.meshgrid(lons,lats) # Make 2-d arrays. + 962 if unrotate: + 963 from grib2io.utils import rotated_grid + 964 lats,lons = rotated_grid.unrotate(lats,lons,self.anglePoleRotation, + 965 self.latitudeSouthernPole, + 966 self.longitudeSouthernPole) + 967 elif gdtn == 40: # Gaussian grid (only works for global!) + 968 from grib2io.utils.gauss_grid import gaussian_latitudes + 969 lon1, lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint + 970 lon2, lat2 = self.longitudeLastGridpoint, self.latitudeLastGridpoint + 971 nlats = self.ny + 972 if not reggrid: # Reduced Gaussian grid. + 973 nlons = 2*nlats + 974 dlon = 360./nlons + 975 else: + 976 nlons = self.nx + 977 dlon = self.gridlengthXDirection + 978 lons = np.linspace(lon1,lon2,nlons) + 979 # Compute Gaussian lats (north to south) + 980 lats = gaussian_latitudes(nlats) + 981 if lat1 < lat2: # reverse them if necessary + 982 lats = lats[::-1] + 983 lons,lats = np.meshgrid(lons,lats) + 984 elif gdtn in {10,20,30,31,110}: + 985 # Mercator, Lambert Conformal, Stereographic, Albers Equal Area, Azimuthal Equidistant + 986 dx,dy = self.gridlengthXDirection, self.gridlengthYDirection + 987 lon1,lat1 = self.longitudeFirstGridpoint, self.latitudeFirstGridpoint + 988 pj = pyproj.Proj(self.projParameters) + 989 llcrnrx, llcrnry = pj(lon1,lat1) + 990 x = llcrnrx+dx*np.arange(self.nx) + 991 y = llcrnry+dy*np.arange(self.ny) + 992 x,y = np.meshgrid(x, y) + 993 lons,lats = pj(x, y, inverse=True) + 994 elif gdtn == 90: + 995 # Satellite Projection + 996 dx = self.gridlengthXDirection + 997 dy = self.gridlengthYDirection + 998 pj = pyproj.Proj(self.projParameters) + 999 x = dx*np.indices((self.ny,self.nx),'f')[1,:,:] +1000 x -= 0.5*x.max() +1001 y = dy*np.indices((self.ny,self.nx),'f')[0,:,:] +1002 y -= 0.5*y.max() +1003 lons,lats = pj(x,y,inverse=True) +1004 # Set lons,lats to 1.e30 where undefined +1005 abslons = np.fabs(lons) +1006 abslats = np.fabs(lats) +1007 lons = np.where(abslons < 1.e20, lons, 1.e30) +1008 lats = np.where(abslats < 1.e20, lats, 1.e30) +1009 elif gdtn == 32769: +1010 # Special NCEP Grid, Rotated Lat/Lon, Arakawa E-Grid (Non-Staggered) +1011 from grib2io.utils import arakawa_rotated_grid +1012 from grib2io.utils.rotated_grid import DEG2RAD +1013 di, dj = 0.0, 0.0 +1014 do_180 = False +1015 idir = 1 if self.scanModeFlags[0] == 0 else -1 +1016 jdir = -1 if self.scanModeFlags[1] == 0 else 1 +1017 grid_oriented = 0 if self.resolutionAndComponentFlags[4] == 0 else 1 +1018 do_rot = 1 if grid_oriented == 1 else 0 +1019 la1 = self.latitudeFirstGridpoint +1020 lo1 = self.longitudeFirstGridpoint +1021 clon = self.longitudeCenterGridpoint +1022 clat = self.latitudeCenterGridpoint +1023 lasp = clat - 90.0 +1024 losp = clon +1025 llat, llon = arakawa_rotated_grid.ll2rot(la1,lo1,lasp,losp) +1026 la2, lo2 = arakawa_rotated_grid.rot2ll(-llat,-llon,lasp,losp) +1027 rlat = -llat +1028 rlon = -llon +1029 if self.nx == 1: +1030 di = 0.0 +1031 elif idir == 1: +1032 ti = rlon +1033 while ti < llon: +1034 ti += 360.0 +1035 di = (ti - llon)/float(self.nx-1) +1036 else: +1037 ti = llon +1038 while ti < rlon: +1039 ti += 360.0 +1040 di = (ti - rlon)/float(self.nx-1) +1041 if self.ny == 1: +1042 dj = 0.0 +1043 else: +1044 dj = (rlat - llat)/float(self.ny-1) +1045 if dj < 0.0: +1046 dj = -dj +1047 if idir == 1: +1048 if llon > rlon: +1049 llon -= 360.0 +1050 if llon < 0 and rlon > 0: +1051 do_180 = True +1052 else: +1053 if rlon > llon: +1054 rlon -= 360.0 +1055 if rlon < 0 and llon > 0: +1056 do_180 = True +1057 xlat1d = llat + (np.arange(self.ny)*jdir*dj) +1058 xlon1d = llon + (np.arange(self.nx)*idir*di) +1059 xlons, xlats = np.meshgrid(xlon1d,xlat1d) +1060 rot2ll_vectorized = np.vectorize(arakawa_rotated_grid.rot2ll) +1061 lats, lons = rot2ll_vectorized(xlats,xlons,lasp,losp) +1062 if do_180: +1063 lons = np.where(lons>180.0,lons-360.0,lons) +1064 vector_rotation_angles_vectorized = np.vectorize(arakawa_rotated_grid.vector_rotation_angles) +1065 rots = vector_rotation_angles_vectorized(lats, lons, clat, losp, xlats) +1066 del xlat1d, xlon1d, xlats, xlons +1067 else: +1068 raise ValueError('Unsupported grid') +1069 +1070 _latlon_datastore[self._sha1_section3] = dict(latitude=lats,longitude=lons) +1071 try: +1072 _latlon_datastore[self._sha1_section3]['vector_rotation_angles'] = rots +1073 except(NameError): +1074 pass +1075 +1076 return lats, lonsReturns
1099 def map_keys(self): -1100 """ -1101 Returns an unpacked data grid where integer grid values are replaced with -1102 a string.in which the numeric value is a representation of. -1103 -1104 These types of fields are cateogrical or classifications where data values -1105 do not represent an observable or predictable physical quantity. An example -1106 of such a field field would be [Dominant Precipitation Type - -1107 DPTYPE](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-201.shtml) -1108 -1109 Returns -1110 ------- -1111 **`numpy.ndarray`** of string values per element. -1112 """ -1113 hold_auto_nans = _AUTO_NANS -1114 set_auto_nans(False) -1115 if (np.all(self.section1[0:2]==[7,14]) and self.shortName == 'PWTHER') or \ -1116 (np.all(self.section1[0:2]==[8,65535]) and self.shortName == 'WX'): -1117 keys = utils.decode_wx_strings(self.section2) -1118 if hasattr(self,'priMissingValue') and self.priMissingValue not in [None,0]: -1119 keys[int(self.priMissingValue)] = 'Missing' -1120 if hasattr(self,'secMissingValue') and self.secMissingValue not in [None,0]: -1121 keys[int(self.secMissingValue)] = 'Missing' -1122 u,inv = np.unique(self.data,return_inverse=True) -1123 fld = np.array([keys[x] for x in u])[inv].reshape(self.data.shape) -1124 else: -1125 # For data whose units are defined in a code table (i.e. classification or mask) -1126 tblname = re.findall(r'\d\.\d+',self.units,re.IGNORECASE)[0] -1127 fld = self.data.astype(np.int32).astype(str) -1128 tbl = tables.get_table(tblname,expand=True) -1129 for val in np.unique(fld): -1130 fld = np.where(fld==val,tbl[val],fld) -1131 set_auto_nans(hold_auto_nans) -1132 return fld +@@ -3597,31 +3581,31 @@1079 def map_keys(self): +1080 """ +1081 Returns an unpacked data grid where integer grid values are replaced with +1082 a string.in which the numeric value is a representation of. +1083 +1084 These types of fields are cateogrical or classifications where data values +1085 do not represent an observable or predictable physical quantity. An example +1086 of such a field field would be [Dominant Precipitation Type - +1087 DPTYPE](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-201.shtml) +1088 +1089 Returns +1090 ------- +1091 **`numpy.ndarray`** of string values per element. +1092 """ +1093 hold_auto_nans = _AUTO_NANS +1094 set_auto_nans(False) +1095 if (np.all(self.section1[0:2]==[7,14]) and self.shortName == 'PWTHER') or \ +1096 (np.all(self.section1[0:2]==[8,65535]) and self.shortName == 'WX'): +1097 keys = utils.decode_wx_strings(self.section2) +1098 if hasattr(self,'priMissingValue') and self.priMissingValue not in [None,0]: +1099 keys[int(self.priMissingValue)] = 'Missing' +1100 if hasattr(self,'secMissingValue') and self.secMissingValue not in [None,0]: +1101 keys[int(self.secMissingValue)] = 'Missing' +1102 u,inv = np.unique(self.data,return_inverse=True) +1103 fld = np.array([keys[x] for x in u])[inv].reshape(self.data.shape) +1104 else: +1105 # For data whose units are defined in a code table (i.e. classification or mask) +1106 tblname = re.findall(r'\d\.\d+',self.units,re.IGNORECASE)[0] +1107 fld = self.data.astype(np.int32).astype(str) +1108 tbl = tables.get_table(tblname,expand=True) +1109 for val in np.unique(fld): +1110 fld = np.where(fld==val,tbl[val],fld) +1111 set_auto_nans(hold_auto_nans) +1112 return fldReturns
1135 def to_bytes(self, validate=True): -1136 """ -1137 Return packed GRIB2 message in bytes format. -1138 -1139 This will be Useful for exporting data in non-file formats. For example, -1140 can be used to output grib data directly to S3 using the boto3 client -1141 without the need to write a temporary file to upload first. -1142 -1143 Parameters -1144 ---------- -1145 **`validate : bool, optional`** -1146 If `True` (DEFAULT), validates first/last four bytes for proper -1147 formatting, else returns None. If `False`, message is output as is. -1148 -1149 Returns -1150 ------- -1151 Returns GRIB2 formatted message as bytes. -1152 """ -1153 if validate: -1154 if self._msg[0:4]+self._msg[-4:] == b'GRIB7777': -1155 return self._msg -1156 else: -1157 return None -1158 else: -1159 return self._msg +@@ -3655,63 +3639,63 @@1115 def to_bytes(self, validate=True): +1116 """ +1117 Return packed GRIB2 message in bytes format. +1118 +1119 This will be Useful for exporting data in non-file formats. For example, +1120 can be used to output grib data directly to S3 using the boto3 client +1121 without the need to write a temporary file to upload first. +1122 +1123 Parameters +1124 ---------- +1125 **`validate : bool, optional`** +1126 If `True` (DEFAULT), validates first/last four bytes for proper +1127 formatting, else returns None. If `False`, message is output as is. +1128 +1129 Returns +1130 ------- +1131 Returns GRIB2 formatted message as bytes. +1132 """ +1133 if validate: +1134 if self._msg[0:4]+self._msg[-4:] == b'GRIB7777': +1135 return self._msg +1136 else: +1137 return None +1138 else: +1139 return self._msgReturns
1162 def interpolate(self, method, grid_def_out, method_options=None): -1163 """ -1164 Perform grid spatial interpolation via the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip). -1165 -1166 **IMPORTANT:** This interpolate method only supports scalar interpolation. If you -1167 need to perform vector interpolation, use the module-level `grib2io.interpolate` function. -1168 -1169 Parameters -1170 ---------- -1171 **`method : int or str`** -1172 Interpolate method to use. This can either be an integer or string using -1173 the following mapping: -1174 -1175 | Interpolate Scheme | Integer Value | -1176 | :---: | :---: | -1177 | 'bilinear' | 0 | -1178 | 'bicubic' | 1 | -1179 | 'neighbor' | 2 | -1180 | 'budget' | 3 | -1181 | 'spectral' | 4 | -1182 | 'neighbor-budget' | 6 | +@@ -3817,115 +3801,115 @@1142 def interpolate(self, method, grid_def_out, method_options=None): +1143 """ +1144 Perform grid spatial interpolation via the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip). +1145 +1146 **IMPORTANT:** This interpolate method only supports scalar interpolation. If you +1147 need to perform vector interpolation, use the module-level `grib2io.interpolate` function. +1148 +1149 Parameters +1150 ---------- +1151 **`method : int or str`** +1152 Interpolate method to use. This can either be an integer or string using +1153 the following mapping: +1154 +1155 | Interpolate Scheme | Integer Value | +1156 | :---: | :---: | +1157 | 'bilinear' | 0 | +1158 | 'bicubic' | 1 | +1159 | 'neighbor' | 2 | +1160 | 'budget' | 3 | +1161 | 'spectral' | 4 | +1162 | 'neighbor-budget' | 6 | +1163 +1164 **`grid_def_out : grib2io.Grib2GridDef`** +1165 Grib2GridDef object of the output grid. +1166 +1167 **`method_options : list of ints, optional`** +1168 Interpolation options. See the NCEPLIBS-ip doucmentation for +1169 more information on how these are used. +1170 +1171 Returns +1172 ------- +1173 If interpolating to a grid, a new Grib2Message object is returned. The GRIB2 metadata of +1174 the new Grib2Message object is indentical to the input except where required to be different +1175 because of the new grid specs. +1176 +1177 If interpolating to station points, the interpolated data values are returned as a numpy.ndarray. +1178 """ +1179 section0 = self.section0 +1180 section0[-1] = 0 +1181 gds = [0, grid_def_out.npoints, 0, 255, grid_def_out.gdtn] +1182 section3 = np.concatenate((gds,grid_def_out.gdt)) 1183 -1184 **`grid_def_out : grib2io.Grib2GridDef`** -1185 Grib2GridDef object of the output grid. +1184 msg = Grib2Message(section0,self.section1,self.section2,section3, +1185 self.section4,self.section5,self.bitMapFlag.value) 1186 -1187 **`method_options : list of ints, optional`** -1188 Interpolation options. See the NCEPLIBS-ip doucmentation for -1189 more information on how these are used. -1190 -1191 Returns -1192 ------- -1193 If interpolating to a grid, a new Grib2Message object is returned. The GRIB2 metadata of -1194 the new Grib2Message object is indentical to the input except where required to be different -1195 because of the new grid specs. -1196 -1197 If interpolating to station points, the interpolated data values are returned as a numpy.ndarray. -1198 """ -1199 section0 = self.section0 -1200 section0[-1] = 0 -1201 gds = [0, grid_def_out.npoints, 0, 255, grid_def_out.gdtn] -1202 section3 = np.concatenate((gds,grid_def_out.gdt)) -1203 -1204 msg = Grib2Message(section0,self.section1,self.section2,section3, -1205 self.section4,self.section5,self.bitMapFlag.value) -1206 -1207 msg._msgnum = -1 -1208 msg._deflist = self._deflist -1209 msg._coordlist = self._coordlist -1210 shape = (msg.ny,msg.nx) -1211 ndim = 2 -1212 if msg.typeOfValues == 0: -1213 dtype = 'float32' -1214 elif msg.typeOfValues == 1: -1215 dtype = 'int32' -1216 msg._data = interpolate(self.data,method,Grib2GridDef.from_section3(self.section3),grid_def_out, -1217 method_options=method_options).reshape(msg.ny,msg.nx) -1218 return msg +1187 msg._msgnum = -1 +1188 msg._deflist = self._deflist +1189 msg._coordlist = self._coordlist +1190 shape = (msg.ny,msg.nx) +1191 ndim = 2 +1192 if msg.typeOfValues == 0: +1193 dtype = 'float32' +1194 elif msg.typeOfValues == 1: +1195 dtype = 'int32' +1196 msg._data = interpolate(self.data,method,Grib2GridDef.from_section3(self.section3),grid_def_out, +1197 method_options=method_options).reshape(msg.ny,msg.nx) +1198 return msgReturns
1354def interpolate(a, method, grid_def_in, grid_def_out, method_options=None): -1355 """ -1356 This is the module-level interpolation function that interfaces with the grib2io_interp -1357 component pakcage that interfaces to the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip). -1358 -1359 Parameters -1360 ---------- -1361 -1362 **`a : numpy.ndarray or tuple`** -1363 Input data. If `a` is a `numpy.ndarray`, scalar interpolation will be -1364 performed. If `a` is a `tuple`, then vector interpolation will be performed -1365 with the assumption that u = a[0] and v = a[1] and are both `numpy.ndarray`. -1366 -1367 These data are expected to be in 2-dimensional form with shape (ny, nx) or -1368 3-dimensional (:, ny, nx) where the 1st dimension represents another spatial, -1369 temporal, or classification (i.e. ensemble members) dimension. The function will -1370 properly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into -1371 the interpolation subroutines. -1372 -1373 **`method : int or str`** -1374 Interpolate method to use. This can either be an integer or string using -1375 the following mapping: -1376 -1377 | Interpolate Scheme | Integer Value | -1378 | :---: | :---: | -1379 | 'bilinear' | 0 | -1380 | 'bicubic' | 1 | -1381 | 'neighbor' | 2 | -1382 | 'budget' | 3 | -1383 | 'spectral' | 4 | -1384 | 'neighbor-budget' | 6 | -1385 -1386 **`grid_def_in : grib2io.Grib2GridDef`** -1387 Grib2GridDef object for the input grid. -1388 -1389 **`grid_def_out : grib2io.Grib2GridDef`** -1390 Grib2GridDef object for the output grid or station points. -1391 -1392 **`method_options : list of ints, optional`** -1393 Interpolation options. See the NCEPLIBS-ip doucmentation for -1394 more information on how these are used. -1395 -1396 Returns -1397 ------- -1398 Returns a `numpy.ndarray` when scalar interpolation is performed or -1399 a `tuple` of `numpy.ndarray`s when vector interpolation is performed -1400 with the assumptions that 0-index is the interpolated u and 1-index -1401 is the interpolated v. -1402 """ -1403 from grib2io_interp import interpolate -1404 -1405 if isinstance(method,int) and method not in _interp_schemes.values(): -1406 raise ValueError('Invalid interpolation method.') -1407 elif isinstance(method,str): -1408 if method in _interp_schemes.keys(): -1409 method = _interp_schemes[method] -1410 else: -1411 raise ValueError('Invalid interpolation method.') -1412 -1413 if method_options is None: -1414 method_options = np.zeros((20),dtype=np.int32) -1415 if method in {3,6}: -1416 method_options[0:2] = -1 -1417 -1418 ni = grid_def_in.npoints -1419 no = grid_def_out.npoints -1420 -1421 # Adjust shape of input array(s) -1422 a,newshp = _adjust_array_shape_for_interp(a,grid_def_in,grid_def_out) -1423 -1424 # Set lats and lons if stations, else create array for grids. -1425 if grid_def_out.gdtn == -1: -1426 rlat = np.array(grid_def_out.lats,dtype=np.float32) -1427 rlon = np.array(grid_def_out.lons,dtype=np.float32) -1428 else: -1429 rlat = np.zeros((no),dtype=np.float32) -1430 rlon = np.zeros((no),dtype=np.float32) -1431 -1432 # Call interpolation subroutines according to type of a. -1433 if isinstance(a,np.ndarray): -1434 # Scalar -1435 ibi = np.zeros((a.shape[0]),dtype=np.int32) -1436 li = np.zeros(a.shape,dtype=np.int32) -1437 go = np.zeros((a.shape[0],no),dtype=np.float32) -1438 no,ibo,lo,iret = interpolate.interpolate_scalar(method,method_options, -1439 grid_def_in.gdtn,grid_def_in.gdt, -1440 grid_def_out.gdtn,grid_def_out.gdt, -1441 ibi,li.T,a.T,go.T,rlat,rlon) -1442 out = go.reshape(newshp) -1443 elif isinstance(a,tuple): -1444 # Vector -1445 ibi = np.zeros((a[0].shape[0]),dtype=np.int32) -1446 li = np.zeros(a[0].shape,dtype=np.int32) -1447 uo = np.zeros((a[0].shape[0],no),dtype=np.float32) -1448 vo = np.zeros((a[1].shape[0],no),dtype=np.float32) -1449 crot = np.ones((no),dtype=np.float32) -1450 srot = np.zeros((no),dtype=np.float32) -1451 no,ibo,lo,iret = interpolate.interpolate_vector(method,method_options, -1452 grid_def_in.gdtn,grid_def_in.gdt, -1453 grid_def_out.gdtn,grid_def_out.gdt, -1454 ibi,li.T,a[0].T,a[1].T,uo.T,vo.T, -1455 rlat,rlon,crot,srot) -1456 del crot -1457 del srot -1458 out = (uo.reshape(newshp),vo.reshape(newshp)) -1459 -1460 del rlat -1461 del rlon -1462 return out +@@ -4016,135 +4000,135 @@1334def interpolate(a, method, grid_def_in, grid_def_out, method_options=None): +1335 """ +1336 This is the module-level interpolation function that interfaces with the grib2io_interp +1337 component pakcage that interfaces to the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip). +1338 +1339 Parameters +1340 ---------- +1341 +1342 **`a : numpy.ndarray or tuple`** +1343 Input data. If `a` is a `numpy.ndarray`, scalar interpolation will be +1344 performed. If `a` is a `tuple`, then vector interpolation will be performed +1345 with the assumption that u = a[0] and v = a[1] and are both `numpy.ndarray`. +1346 +1347 These data are expected to be in 2-dimensional form with shape (ny, nx) or +1348 3-dimensional (:, ny, nx) where the 1st dimension represents another spatial, +1349 temporal, or classification (i.e. ensemble members) dimension. The function will +1350 properly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into +1351 the interpolation subroutines. +1352 +1353 **`method : int or str`** +1354 Interpolate method to use. This can either be an integer or string using +1355 the following mapping: +1356 +1357 | Interpolate Scheme | Integer Value | +1358 | :---: | :---: | +1359 | 'bilinear' | 0 | +1360 | 'bicubic' | 1 | +1361 | 'neighbor' | 2 | +1362 | 'budget' | 3 | +1363 | 'spectral' | 4 | +1364 | 'neighbor-budget' | 6 | +1365 +1366 **`grid_def_in : grib2io.Grib2GridDef`** +1367 Grib2GridDef object for the input grid. +1368 +1369 **`grid_def_out : grib2io.Grib2GridDef`** +1370 Grib2GridDef object for the output grid or station points. +1371 +1372 **`method_options : list of ints, optional`** +1373 Interpolation options. See the NCEPLIBS-ip doucmentation for +1374 more information on how these are used. +1375 +1376 Returns +1377 ------- +1378 Returns a `numpy.ndarray` when scalar interpolation is performed or +1379 a `tuple` of `numpy.ndarray`s when vector interpolation is performed +1380 with the assumptions that 0-index is the interpolated u and 1-index +1381 is the interpolated v. +1382 """ +1383 from grib2io_interp import interpolate +1384 +1385 if isinstance(method,int) and method not in _interp_schemes.values(): +1386 raise ValueError('Invalid interpolation method.') +1387 elif isinstance(method,str): +1388 if method in _interp_schemes.keys(): +1389 method = _interp_schemes[method] +1390 else: +1391 raise ValueError('Invalid interpolation method.') +1392 +1393 if method_options is None: +1394 method_options = np.zeros((20),dtype=np.int32) +1395 if method in {3,6}: +1396 method_options[0:2] = -1 +1397 +1398 ni = grid_def_in.npoints +1399 no = grid_def_out.npoints +1400 +1401 # Adjust shape of input array(s) +1402 a,newshp = _adjust_array_shape_for_interp(a,grid_def_in,grid_def_out) +1403 +1404 # Set lats and lons if stations, else create array for grids. +1405 if grid_def_out.gdtn == -1: +1406 rlat = np.array(grid_def_out.lats,dtype=np.float32) +1407 rlon = np.array(grid_def_out.lons,dtype=np.float32) +1408 else: +1409 rlat = np.zeros((no),dtype=np.float32) +1410 rlon = np.zeros((no),dtype=np.float32) +1411 +1412 # Call interpolation subroutines according to type of a. +1413 if isinstance(a,np.ndarray): +1414 # Scalar +1415 ibi = np.zeros((a.shape[0]),dtype=np.int32) +1416 li = np.zeros(a.shape,dtype=np.int32) +1417 go = np.zeros((a.shape[0],no),dtype=np.float32) +1418 no,ibo,lo,iret = interpolate.interpolate_scalar(method,method_options, +1419 grid_def_in.gdtn,grid_def_in.gdt, +1420 grid_def_out.gdtn,grid_def_out.gdt, +1421 ibi,li.T,a.T,go.T,rlat,rlon) +1422 out = go.reshape(newshp) +1423 elif isinstance(a,tuple): +1424 # Vector +1425 ibi = np.zeros((a[0].shape[0]),dtype=np.int32) +1426 li = np.zeros(a[0].shape,dtype=np.int32) +1427 uo = np.zeros((a[0].shape[0],no),dtype=np.float32) +1428 vo = np.zeros((a[1].shape[0],no),dtype=np.float32) +1429 crot = np.ones((no),dtype=np.float32) +1430 srot = np.zeros((no),dtype=np.float32) +1431 no,ibo,lo,iret = interpolate.interpolate_vector(method,method_options, +1432 grid_def_in.gdtn,grid_def_in.gdt, +1433 grid_def_out.gdtn,grid_def_out.gdt, +1434 ibi,li.T,a[0].T,a[1].T,uo.T,vo.T, +1435 rlat,rlon,crot,srot) +1436 del crot +1437 del srot +1438 out = (uo.reshape(newshp),vo.reshape(newshp)) +1439 +1440 del rlat +1441 del rlon +1442 return outReturns
1465def interpolate_to_stations(a, method, grid_def_in, lats, lons, method_options=None): -1466 """ -1467 This is the module-level interpolation function **for interpolation to stations** -1468 that interfaces with the grib2io_interp component pakcage that interfaces to -1469 the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip). It supports -1470 scalar and vector interpolation according to the type of object a. -1471 -1472 Parameters -1473 ---------- -1474 **`a : numpy.ndarray or tuple`** -1475 Input data. If `a` is a `numpy.ndarray`, scalar interpolation will be -1476 performed. If `a` is a `tuple`, then vector interpolation will be performed -1477 with the assumption that u = a[0] and v = a[1] and are both `numpy.ndarray`. -1478 -1479 These data are expected to be in 2-dimensional form with shape (ny, nx) or -1480 3-dimensional (:, ny, nx) where the 1st dimension represents another spatial, -1481 temporal, or classification (i.e. ensemble members) dimension. The function will -1482 properly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into -1483 the interpolation subroutines. -1484 -1485 **`method : int or str`** -1486 Interpolate method to use. This can either be an integer or string using -1487 the following mapping: -1488 -1489 | Interpolate Scheme | Integer Value | -1490 | :---: | :---: | -1491 | 'bilinear' | 0 | -1492 | 'bicubic' | 1 | -1493 | 'neighbor' | 2 | -1494 | 'budget' | 3 | -1495 | 'spectral' | 4 | -1496 | 'neighbor-budget' | 6 | -1497 -1498 **`grid_def_in : grib2io.Grib2GridDef`** -1499 Grib2GridDef object for the input grid. -1500 -1501 **`lats : numpy.ndarray or list`** -1502 Latitudes for station points -1503 -1504 **`lons : numpy.ndarray or list`** -1505 Longitudes for station points -1506 -1507 **`method_options : list of ints, optional`** -1508 Interpolation options. See the NCEPLIBS-ip doucmentation for -1509 more information on how these are used. -1510 -1511 Returns -1512 ------- -1513 Returns a `numpy.ndarray` when scalar interpolation is performed or -1514 a `tuple` of `numpy.ndarray`s when vector interpolation is performed -1515 with the assumptions that 0-index is the interpolated u and 1-index -1516 is the interpolated v. -1517 """ -1518 from grib2io_interp import interpolate -1519 -1520 if isinstance(method,int) and method not in _interp_schemes.values(): -1521 raise ValueError('Invalid interpolation method.') -1522 elif isinstance(method,str): -1523 if method in _interp_schemes.keys(): -1524 method = _interp_schemes[method] -1525 else: -1526 raise ValueError('Invalid interpolation method.') -1527 -1528 if method_options is None: -1529 method_options = np.zeros((20),dtype=np.int32) -1530 if method in {3,6}: -1531 method_options[0:2] = -1 -1532 -1533 # Check lats and lons -1534 if isinstance(lats,list): -1535 nlats = len(lats) -1536 elif isinstance(lats,np.ndarray) and len(lats.shape) == 1: -1537 nlats = lats.shape[0] -1538 else: -1539 raise ValueError('Station latitudes must be a list or 1-D NumPy array.') -1540 if isinstance(lons,list): -1541 nlons = len(lons) -1542 elif isinstance(lons,np.ndarray) and len(lons.shape) == 1: -1543 nlons = lons.shape[0] -1544 else: -1545 raise ValueError('Station longitudes must be a list or 1-D NumPy array.') -1546 if nlats != nlons: -1547 raise ValueError('Station lats and lons must be same size.') -1548 -1549 ni = grid_def_in.npoints -1550 no = nlats -1551 -1552 # Adjust shape of input array(s) -1553 a,newshp = _adjust_array_shape_for_interp_stations(a,grid_def_in,no) -1554 -1555 # Set lats and lons if stations -1556 rlat = np.array(lats,dtype=np.float32) -1557 rlon = np.array(lons,dtype=np.float32) -1558 -1559 # Use gdtn = -1 for stations and an empty template array -1560 gdtn = -1 -1561 gdt = np.zeros((200),dtype=np.int32) -1562 -1563 # Call interpolation subroutines according to type of a. -1564 if isinstance(a,np.ndarray): -1565 # Scalar -1566 ibi = np.zeros((a.shape[0]),dtype=np.int32) -1567 li = np.zeros(a.shape,dtype=np.int32) -1568 go = np.zeros((a.shape[0],no),dtype=np.float32) -1569 no,ibo,lo,iret = interpolate.interpolate_scalar(method,method_options, -1570 grid_def_in.gdtn,grid_def_in.gdt, -1571 gdtn,gdt, -1572 ibi,li.T,a.T,go.T,rlat,rlon) -1573 out = go.reshape(newshp) -1574 elif isinstance(a,tuple): -1575 # Vector -1576 ibi = np.zeros((a[0].shape[0]),dtype=np.int32) -1577 li = np.zeros(a[0].shape,dtype=np.int32) -1578 uo = np.zeros((a[0].shape[0],no),dtype=np.float32) -1579 vo = np.zeros((a[1].shape[0],no),dtype=np.float32) -1580 crot = np.ones((no),dtype=np.float32) -1581 srot = np.zeros((no),dtype=np.float32) -1582 no,ibo,lo,iret = interpolate.interpolate_vector(method,method_options, -1583 grid_def_in.gdtn,grid_def_in.gdt, -1584 gdtn,gdt, -1585 ibi,li.T,a[0].T,a[1].T,uo.T,vo.T, -1586 rlat,rlon,crot,srot) -1587 del crot -1588 del srot -1589 out = (uo.reshape(newshp),vo.reshape(newshp)) -1590 -1591 del rlat -1592 del rlon -1593 return out +@@ -4241,36 +4225,36 @@1445def interpolate_to_stations(a, method, grid_def_in, lats, lons, method_options=None): +1446 """ +1447 This is the module-level interpolation function **for interpolation to stations** +1448 that interfaces with the grib2io_interp component pakcage that interfaces to +1449 the [NCEPLIBS-ip library](https://github.com/NOAA-EMC/NCEPLIBS-ip). It supports +1450 scalar and vector interpolation according to the type of object a. +1451 +1452 Parameters +1453 ---------- +1454 **`a : numpy.ndarray or tuple`** +1455 Input data. If `a` is a `numpy.ndarray`, scalar interpolation will be +1456 performed. If `a` is a `tuple`, then vector interpolation will be performed +1457 with the assumption that u = a[0] and v = a[1] and are both `numpy.ndarray`. +1458 +1459 These data are expected to be in 2-dimensional form with shape (ny, nx) or +1460 3-dimensional (:, ny, nx) where the 1st dimension represents another spatial, +1461 temporal, or classification (i.e. ensemble members) dimension. The function will +1462 properly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into +1463 the interpolation subroutines. +1464 +1465 **`method : int or str`** +1466 Interpolate method to use. This can either be an integer or string using +1467 the following mapping: +1468 +1469 | Interpolate Scheme | Integer Value | +1470 | :---: | :---: | +1471 | 'bilinear' | 0 | +1472 | 'bicubic' | 1 | +1473 | 'neighbor' | 2 | +1474 | 'budget' | 3 | +1475 | 'spectral' | 4 | +1476 | 'neighbor-budget' | 6 | +1477 +1478 **`grid_def_in : grib2io.Grib2GridDef`** +1479 Grib2GridDef object for the input grid. +1480 +1481 **`lats : numpy.ndarray or list`** +1482 Latitudes for station points +1483 +1484 **`lons : numpy.ndarray or list`** +1485 Longitudes for station points +1486 +1487 **`method_options : list of ints, optional`** +1488 Interpolation options. See the NCEPLIBS-ip doucmentation for +1489 more information on how these are used. +1490 +1491 Returns +1492 ------- +1493 Returns a `numpy.ndarray` when scalar interpolation is performed or +1494 a `tuple` of `numpy.ndarray`s when vector interpolation is performed +1495 with the assumptions that 0-index is the interpolated u and 1-index +1496 is the interpolated v. +1497 """ +1498 from grib2io_interp import interpolate +1499 +1500 if isinstance(method,int) and method not in _interp_schemes.values(): +1501 raise ValueError('Invalid interpolation method.') +1502 elif isinstance(method,str): +1503 if method in _interp_schemes.keys(): +1504 method = _interp_schemes[method] +1505 else: +1506 raise ValueError('Invalid interpolation method.') +1507 +1508 if method_options is None: +1509 method_options = np.zeros((20),dtype=np.int32) +1510 if method in {3,6}: +1511 method_options[0:2] = -1 +1512 +1513 # Check lats and lons +1514 if isinstance(lats,list): +1515 nlats = len(lats) +1516 elif isinstance(lats,np.ndarray) and len(lats.shape) == 1: +1517 nlats = lats.shape[0] +1518 else: +1519 raise ValueError('Station latitudes must be a list or 1-D NumPy array.') +1520 if isinstance(lons,list): +1521 nlons = len(lons) +1522 elif isinstance(lons,np.ndarray) and len(lons.shape) == 1: +1523 nlons = lons.shape[0] +1524 else: +1525 raise ValueError('Station longitudes must be a list or 1-D NumPy array.') +1526 if nlats != nlons: +1527 raise ValueError('Station lats and lons must be same size.') +1528 +1529 ni = grid_def_in.npoints +1530 no = nlats +1531 +1532 # Adjust shape of input array(s) +1533 a,newshp = _adjust_array_shape_for_interp_stations(a,grid_def_in,no) +1534 +1535 # Set lats and lons if stations +1536 rlat = np.array(lats,dtype=np.float32) +1537 rlon = np.array(lons,dtype=np.float32) +1538 +1539 # Use gdtn = -1 for stations and an empty template array +1540 gdtn = -1 +1541 gdt = np.zeros((200),dtype=np.int32) +1542 +1543 # Call interpolation subroutines according to type of a. +1544 if isinstance(a,np.ndarray): +1545 # Scalar +1546 ibi = np.zeros((a.shape[0]),dtype=np.int32) +1547 li = np.zeros(a.shape,dtype=np.int32) +1548 go = np.zeros((a.shape[0],no),dtype=np.float32) +1549 no,ibo,lo,iret = interpolate.interpolate_scalar(method,method_options, +1550 grid_def_in.gdtn,grid_def_in.gdt, +1551 gdtn,gdt, +1552 ibi,li.T,a.T,go.T,rlat,rlon) +1553 out = go.reshape(newshp) +1554 elif isinstance(a,tuple): +1555 # Vector +1556 ibi = np.zeros((a[0].shape[0]),dtype=np.int32) +1557 li = np.zeros(a[0].shape,dtype=np.int32) +1558 uo = np.zeros((a[0].shape[0],no),dtype=np.float32) +1559 vo = np.zeros((a[1].shape[0],no),dtype=np.float32) +1560 crot = np.ones((no),dtype=np.float32) +1561 srot = np.zeros((no),dtype=np.float32) +1562 no,ibo,lo,iret = interpolate.interpolate_vector(method,method_options, +1563 grid_def_in.gdtn,grid_def_in.gdt, +1564 gdtn,gdt, +1565 ibi,li.T,a[0].T,a[1].T,uo.T,vo.T, +1566 rlat,rlon,crot,srot) +1567 del crot +1568 del srot +1569 out = (uo.reshape(newshp),vo.reshape(newshp)) +1570 +1571 del rlat +1572 del rlon +1573 return outReturns
1596@dataclass -1597class Grib2GridDef: -1598 """ -1599 Class to hold GRIB2 Grid Definition Template Number and Template as -1600 class attributes. This allows for cleaner looking code when passing these -1601 metadata around. For example, the `grib2io._Grib2Message.interpolate` -1602 method and `grib2io.interpolate` function accepts these objects. -1603 """ -1604 gdtn: int -1605 gdt: np.array -1606 -1607 @classmethod -1608 def from_section3(cls, section3): -1609 return cls(section3[4],section3[5:]) -1610 -1611 @property -1612 def nx(self): -1613 return self.gdt[7] -1614 -1615 @property -1616 def ny(self): -1617 return self.gdt[8] -1618 -1619 @property -1620 def npoints(self): -1621 return self.gdt[7] * self.gdt[8] -1622 -1623 @property -1624 def shape(self): -1625 return (self.ny, self.nx) +@@ -4327,9 +4311,9 @@1576@dataclass +1577class Grib2GridDef: +1578 """ +1579 Class to hold GRIB2 Grid Definition Template Number and Template as +1580 class attributes. This allows for cleaner looking code when passing these +1581 metadata around. For example, the `grib2io._Grib2Message.interpolate` +1582 method and `grib2io.interpolate` function accepts these objects. +1583 """ +1584 gdtn: int +1585 gdt: np.array +1586 +1587 @classmethod +1588 def from_section3(cls, section3): +1589 return cls(section3[4],section3[5:]) +1590 +1591 @property +1592 def nx(self): +1593 return self.gdt[7] +1594 +1595 @property +1596 def ny(self): +1597 return self.gdt[8] +1598 +1599 @property +1600 def npoints(self): +1601 return self.gdt[7] * self.gdt[8] +1602 +1603 @property +1604 def shape(self): +1605 return (self.ny, self.nx)Returns
1607 @classmethod -1608 def from_section3(cls, section3): -1609 return cls(section3[4],section3[5:]) +@@ -4345,9 +4329,9 @@1587 @classmethod +1588 def from_section3(cls, section3): +1589 return cls(section3[4],section3[5:])Returns
1619 @property -1620 def npoints(self): -1621 return self.gdt[7] * self.gdt[8] + @@ -4399,9 +4383,9 @@Returns
1623 @property -1624 def shape(self): -1625 return (self.ny, self.nx) + diff --git a/docs/grib2io/tables.html b/docs/grib2io/tables.html index 178acd5..24c09e5 100644 --- a/docs/grib2io/tables.html +++ b/docs/grib2io/tables.html @@ -3,7 +3,7 @@ - +grib2io.tables API documentation diff --git a/docs/grib2io/tables/originating_centers.html b/docs/grib2io/tables/originating_centers.html index ace94a3..897a39b 100644 --- a/docs/grib2io/tables/originating_centers.html +++ b/docs/grib2io/tables/originating_centers.html @@ -3,7 +3,7 @@ - +grib2io.tables.originating_centers API documentation diff --git a/docs/grib2io/tables/section0.html b/docs/grib2io/tables/section0.html index 49265ee..2eb0dc7 100644 --- a/docs/grib2io/tables/section0.html +++ b/docs/grib2io/tables/section0.html @@ -3,7 +3,7 @@ - +grib2io.tables.section0 API documentation diff --git a/docs/grib2io/tables/section1.html b/docs/grib2io/tables/section1.html index e3bbb4d..924e608 100644 --- a/docs/grib2io/tables/section1.html +++ b/docs/grib2io/tables/section1.html @@ -3,7 +3,7 @@ - +grib2io.tables.section1 API documentation diff --git a/docs/grib2io/tables/section3.html b/docs/grib2io/tables/section3.html index dca9ac5..7dbf6df 100644 --- a/docs/grib2io/tables/section3.html +++ b/docs/grib2io/tables/section3.html @@ -3,7 +3,7 @@ - +grib2io.tables.section3 API documentation diff --git a/docs/grib2io/tables/section4.html b/docs/grib2io/tables/section4.html index b517924..04c06d2 100644 --- a/docs/grib2io/tables/section4.html +++ b/docs/grib2io/tables/section4.html @@ -3,7 +3,7 @@ - +grib2io.tables.section4 API documentation diff --git a/docs/grib2io/tables/section4_discipline0.html b/docs/grib2io/tables/section4_discipline0.html index 04acfe0..c805722 100644 --- a/docs/grib2io/tables/section4_discipline0.html +++ b/docs/grib2io/tables/section4_discipline0.html @@ -3,7 +3,7 @@ - +grib2io.tables.section4_discipline0 API documentation diff --git a/docs/grib2io/tables/section4_discipline1.html b/docs/grib2io/tables/section4_discipline1.html index d5078f1..2f7b12a 100644 --- a/docs/grib2io/tables/section4_discipline1.html +++ b/docs/grib2io/tables/section4_discipline1.html @@ -3,7 +3,7 @@ - +grib2io.tables.section4_discipline1 API documentation diff --git a/docs/grib2io/tables/section4_discipline10.html b/docs/grib2io/tables/section4_discipline10.html index e2a4ec2..5db727c 100644 --- a/docs/grib2io/tables/section4_discipline10.html +++ b/docs/grib2io/tables/section4_discipline10.html @@ -3,7 +3,7 @@ - +grib2io.tables.section4_discipline10 API documentation diff --git a/docs/grib2io/tables/section4_discipline2.html b/docs/grib2io/tables/section4_discipline2.html index bc1fd60..9bd30e3 100644 --- a/docs/grib2io/tables/section4_discipline2.html +++ b/docs/grib2io/tables/section4_discipline2.html @@ -3,7 +3,7 @@ - +grib2io.tables.section4_discipline2 API documentation diff --git a/docs/grib2io/tables/section4_discipline20.html b/docs/grib2io/tables/section4_discipline20.html index 70e9a88..ad67e47 100644 --- a/docs/grib2io/tables/section4_discipline20.html +++ b/docs/grib2io/tables/section4_discipline20.html @@ -3,7 +3,7 @@ - +grib2io.tables.section4_discipline20 API documentation diff --git a/docs/grib2io/tables/section4_discipline209.html b/docs/grib2io/tables/section4_discipline209.html index 07a40b3..0ae0462 100644 --- a/docs/grib2io/tables/section4_discipline209.html +++ b/docs/grib2io/tables/section4_discipline209.html @@ -3,7 +3,7 @@ - +grib2io.tables.section4_discipline209 API documentation diff --git a/docs/grib2io/tables/section4_discipline3.html b/docs/grib2io/tables/section4_discipline3.html index 9dd65f7..657ef3e 100644 --- a/docs/grib2io/tables/section4_discipline3.html +++ b/docs/grib2io/tables/section4_discipline3.html @@ -3,7 +3,7 @@ - +grib2io.tables.section4_discipline3 API documentation diff --git a/docs/grib2io/tables/section4_discipline4.html b/docs/grib2io/tables/section4_discipline4.html index ca3c404..70e2311 100644 --- a/docs/grib2io/tables/section4_discipline4.html +++ b/docs/grib2io/tables/section4_discipline4.html @@ -3,7 +3,7 @@ - +grib2io.tables.section4_discipline4 API documentation diff --git a/docs/grib2io/tables/section5.html b/docs/grib2io/tables/section5.html index 30dd1f7..498b766 100644 --- a/docs/grib2io/tables/section5.html +++ b/docs/grib2io/tables/section5.html @@ -3,7 +3,7 @@ - +grib2io.tables.section5 API documentation diff --git a/docs/grib2io/tables/section6.html b/docs/grib2io/tables/section6.html index 248f8a6..18e413f 100644 --- a/docs/grib2io/tables/section6.html +++ b/docs/grib2io/tables/section6.html @@ -3,7 +3,7 @@ - +grib2io.tables.section6 API documentation diff --git a/docs/grib2io/templates.html b/docs/grib2io/templates.html index b12dd6c..ae81182 100644 --- a/docs/grib2io/templates.html +++ b/docs/grib2io/templates.html @@ -3,7 +3,7 @@ - +grib2io.templates API documentation diff --git a/docs/grib2io/utils.html b/docs/grib2io/utils.html index 14f7a32..8a4bbeb 100644 --- a/docs/grib2io/utils.html +++ b/docs/grib2io/utils.html @@ -3,7 +3,7 @@ - +grib2io.utils API documentation diff --git a/docs/grib2io/utils/arakawa_rotated_grid.html b/docs/grib2io/utils/arakawa_rotated_grid.html index 24c614e..eb5b28b 100644 --- a/docs/grib2io/utils/arakawa_rotated_grid.html +++ b/docs/grib2io/utils/arakawa_rotated_grid.html @@ -3,7 +3,7 @@ - +grib2io.utils.arakawa_rotated_grid API documentation diff --git a/docs/grib2io/utils/gauss_grid.html b/docs/grib2io/utils/gauss_grid.html index fb3bbe2..d6ac0a4 100644 --- a/docs/grib2io/utils/gauss_grid.html +++ b/docs/grib2io/utils/gauss_grid.html @@ -3,7 +3,7 @@ - +grib2io.utils.gauss_grid API documentation @@ -135,7 +135,7 @@
def - gaussian_latitudes(nlat): + gaussian_latitudes(): diff --git a/docs/grib2io/utils/rotated_grid.html b/docs/grib2io/utils/rotated_grid.html index 10e37f2..5a4ddce 100644 --- a/docs/grib2io/utils/rotated_grid.html +++ b/docs/grib2io/utils/rotated_grid.html @@ -3,7 +3,7 @@ - +grib2io.utils.rotated_grid API documentation diff --git a/docs/search.js b/docs/search.js index c5e37e0..99dc3e4 100644 --- a/docs/search.js +++ b/docs/search.js @@ -1,6 +1,6 @@ window.pdocSearch = (function(){ /** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e 1;){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();o Introduction\n\n grib2io is a Python package that provides an interface to the NCEP GRIB2 C (g2c)\nlibrary for the purpose of reading and writing WMO GRIdded Binary, Edition 2 (GRIB2) messages. A physical file can contain one\nor more GRIB2 messages.
\n\nGRIB2 file IO is performed directly in Python. The unpacking/packing of GRIB2 integer, coded metadata and data sections is performed\nby the g2c library functions via the g2clib Cython wrapper module. The decoding/encoding of GRIB2 metadata is translated into more\ndescriptive, plain language metadata by looking up the integer code values against the appropriate GRIB2 code tables. These code tables\nare a part of the grib2io module.
\n\nTutorials
\n\nThe following Jupyter Notebooks are available as tutorials:
\n\n\n"}, {"fullname": "grib2io.open", "modulename": "grib2io", "qualname": "open", "kind": "class", "doc": "GRIB2 File Object.
\n\nA physical file can contain one or more GRIB2 messages. When instantiated, class
\n\ngrib2io.open
, \nthe file namedfilename
is opened for reading (mode = 'r'
) and is automatically indexed.
\nThe indexing procedure reads some of the GRIB2 metadata for all GRIB2 Messages. A GRIB2 Message \nmay contain submessages whereby Section 2-7 can be repeated. grib2io accommodates for this by \nflattening any GRIB2 submessages into multiple individual messages.Attributes
\n\n\n\n
mode : str
\n File IO mode of opening the file.\n\n
name : str
\n Full path name of the GRIB2 file.\n\n
messages : int
\n Count of GRIB2 Messages contained in the file.\n\n
current_message : int
\n Current position of the file in units of GRIB2 Messages.\n\n
size : int
\n Size of the file in units of bytes.\n\n
closed : bool
\nTrue
is file handle is close;False
otherwise.\n\n
variables : tuple
\n Tuple containing a unique list of variable short names (i.e. GRIB2 abbreviation names).\n"}, {"fullname": "grib2io.open.__init__", "modulename": "grib2io", "qualname": "open.__init__", "kind": "function", "doc": "
levels : tuple
\n Tuple containing a unique list of wgrib2-formatted level/layer strings.Initialize GRIB2 File object instance.
\n\nParameters
\n\n\n\n
filename : str
\n File name containing GRIB2 messages.\n", "signature": "(filename, mode='r', **kwargs)"}, {"fullname": "grib2io.open.mode", "modulename": "grib2io", "qualname": "open.mode", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.name", "modulename": "grib2io", "qualname": "open.name", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.messages", "modulename": "grib2io", "qualname": "open.messages", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.current_message", "modulename": "grib2io", "qualname": "open.current_message", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.size", "modulename": "grib2io", "qualname": "open.size", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.closed", "modulename": "grib2io", "qualname": "open.closed", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.levels", "modulename": "grib2io", "qualname": "open.levels", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.variables", "modulename": "grib2io", "qualname": "open.variables", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.close", "modulename": "grib2io", "qualname": "open.close", "kind": "function", "doc": "
mode : str, optional
\n File access mode wherer
opens the files for reading only;w
opens the file for writing.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\nIf no argument is given, then size is None and all messages are returned from \nthe current position in the file. This read method follows the behavior of \nPython's builtin open() function, but whereas that operates on units of bytes, \nwe operate on units of GRIB2 messages.
\n\nParameters
\n\n\n\n
size : int, optional
\n The number of GRIB2 messages to read from the current position. If no argument is\n give, the default value isNone
and remainder of the file is read.Returns
\n\n\n", "signature": "(self, size=None):", "funcdef": "def"}, {"fullname": "grib2io.open.seek", "modulename": "grib2io", "qualname": "open.seek", "kind": "function", "doc": "
Grib2Message
object when size = 1 or alist
of Grib2Messages when size > 1.Set the position within the file in units of GRIB2 messages.
\n\nParameters
\n\n\n", "signature": "(self, pos):", "funcdef": "def"}, {"fullname": "grib2io.open.tell", "modulename": "grib2io", "qualname": "open.tell", "kind": "function", "doc": "
pos : int
\n The GRIB2 Message number to set the file pointer to.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
\n", "signature": "(self, **kwargs):", "funcdef": "def"}, {"fullname": "grib2io.open.write", "modulename": "grib2io", "qualname": "open.write", "kind": "function", "doc": "Grib2Message
attributes.Writes GRIB2 message object to file.
\n\nParameters
\n\n\n", "signature": "(self, msg):", "funcdef": "def"}, {"fullname": "grib2io.open.flush", "modulename": "grib2io", "qualname": "open.flush", "kind": "function", "doc": "
msg : Grib2Message or sequence of Grib2Messages
\n GRIB2 message objects to write to file.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\nParameters
\n\n\n\n
name : str
\n Grib2Message variable shortNameReturns
\n\nA list of strings of unique level strings.
\n", "signature": "(self, name):", "funcdef": "def"}, {"fullname": "grib2io.open.vars_by_level", "modulename": "grib2io", "qualname": "open.vars_by_level", "kind": "function", "doc": "Return a list of variable shortName strings given a level.
\n\nParameters
\n\n\n\n
level : str
\n Grib2Message variable levelReturns
\n\nA list of strings of variable shortName strings.
\n", "signature": "(self, level):", "funcdef": "def"}, {"fullname": "grib2io.Grib2Message", "modulename": "grib2io", "qualname": "Grib2Message", "kind": "class", "doc": "Creation class for a GRIB2 message.
\n"}, {"fullname": "grib2io.show_config", "modulename": "grib2io", "qualname": "show_config", "kind": "function", "doc": "Print grib2io build configuration information.
\n", "signature": "():", "funcdef": "def"}, {"fullname": "grib2io.interpolate", "modulename": "grib2io", "qualname": "interpolate", "kind": "function", "doc": "This is the module-level interpolation function that interfaces with the grib2io_interp\ncomponent pakcage that interfaces to the NCEPLIBS-ip library.
\n\nParameters
\n\n\n\n
a : numpy.ndarray or tuple
\n Input data. Ifa
is anumpy.ndarray
, scalar interpolation will be\n performed. Ifa
is atuple
, then vector interpolation will be performed\n with the assumption that u = a[0] and v = a[1] and are bothnumpy.ndarray
.\n\nThese data are expected to be in 2-dimensional form with shape (ny, nx) or\n3-dimensional (:, ny, nx) where the 1st dimension represents another spatial,\ntemporal, or classification (i.e. ensemble members) dimension. The function will\nproperly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into\nthe interpolation subroutines.\n
\n\n
method : int or str
\n Interpolate method to use. This can either be an integer or string using\n the following mapping:\n\n
\n\n\n \n\n\nInterpolate Scheme \nInteger Value \n\n \n'bilinear' \n0 \n\n \n'bicubic' \n1 \n\n \n'neighbor' \n2 \n\n \n'budget' \n3 \n\n \n'spectral' \n4 \n\n \n\n'neighbor-budget' \n6 \n\n\n
grid_def_in : grib2io.Grib2GridDef
\n Grib2GridDef object for the input grid.\n\n
grid_def_out : grib2io.Grib2GridDef
\n Grib2GridDef object for the output grid or station points.\n\n
method_options : list of ints, optional
\n Interpolation options. See the NCEPLIBS-ip doucmentation for\n more information on how these are used.Returns
\n\nReturns a
\n", "signature": "(a, method, grid_def_in, grid_def_out, method_options=None):", "funcdef": "def"}, {"fullname": "grib2io.interpolate_to_stations", "modulename": "grib2io", "qualname": "interpolate_to_stations", "kind": "function", "doc": "numpy.ndarray
when scalar interpolation is performed or\natuple
ofnumpy.ndarray
s when vector interpolation is performed\nwith the assumptions that 0-index is the interpolated u and 1-index\nis the interpolated v.This is the module-level interpolation function for interpolation to stations\nthat interfaces with the grib2io_interp component pakcage that interfaces to\nthe NCEPLIBS-ip library. It supports\nscalar and vector interpolation according to the type of object a.
\n\nParameters
\n\n\n\n
a : numpy.ndarray or tuple
\n Input data. Ifa
is anumpy.ndarray
, scalar interpolation will be\n performed. Ifa
is atuple
, then vector interpolation will be performed\n with the assumption that u = a[0] and v = a[1] and are bothnumpy.ndarray
.\n\nThese data are expected to be in 2-dimensional form with shape (ny, nx) or\n3-dimensional (:, ny, nx) where the 1st dimension represents another spatial,\ntemporal, or classification (i.e. ensemble members) dimension. The function will\nproperly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into\nthe interpolation subroutines.\n
\n\n
method : int or str
\n Interpolate method to use. This can either be an integer or string using\n the following mapping:\n\n
\n\n\n \n\n\nInterpolate Scheme \nInteger Value \n\n \n'bilinear' \n0 \n\n \n'bicubic' \n1 \n\n \n'neighbor' \n2 \n\n \n'budget' \n3 \n\n \n'spectral' \n4 \n\n \n\n'neighbor-budget' \n6 \n\n\n
grid_def_in : grib2io.Grib2GridDef
\n Grib2GridDef object for the input grid.\n\n
lats : numpy.ndarray or list
\n Latitudes for station points\n\n
lons : numpy.ndarray or list
\n Longitudes for station points\n\n
method_options : list of ints, optional
\n Interpolation options. See the NCEPLIBS-ip doucmentation for\n more information on how these are used.Returns
\n\nReturns a
\n", "signature": "(a, method, grid_def_in, lats, lons, method_options=None):", "funcdef": "def"}, {"fullname": "grib2io.Grib2GridDef", "modulename": "grib2io", "qualname": "Grib2GridDef", "kind": "class", "doc": "numpy.ndarray
when scalar interpolation is performed or\natuple
ofnumpy.ndarray
s when vector interpolation is performed\nwith the assumptions that 0-index is the interpolated u and 1-index\nis the interpolated v.Class to hold GRIB2 Grid Definition Template Number and Template as\nclass attributes. This allows for cleaner looking code when passing these\nmetadata around. For example, the
\n"}, {"fullname": "grib2io.Grib2GridDef.__init__", "modulename": "grib2io", "qualname": "Grib2GridDef.__init__", "kind": "function", "doc": "\n", "signature": "(gdtn: int, gdt: <built-in function array>)"}, {"fullname": "grib2io.Grib2GridDef.gdtn", "modulename": "grib2io", "qualname": "Grib2GridDef.gdtn", "kind": "variable", "doc": "\n", "annotation": ": int"}, {"fullname": "grib2io.Grib2GridDef.gdt", "modulename": "grib2io", "qualname": "Grib2GridDef.gdt", "kind": "variable", "doc": "\n", "annotation": ": <built-in function array>"}, {"fullname": "grib2io.Grib2GridDef.from_section3", "modulename": "grib2io", "qualname": "Grib2GridDef.from_section3", "kind": "function", "doc": "\n", "signature": "(cls, section3):", "funcdef": "def"}, {"fullname": "grib2io.Grib2GridDef.nx", "modulename": "grib2io", "qualname": "Grib2GridDef.nx", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.Grib2GridDef.ny", "modulename": "grib2io", "qualname": "Grib2GridDef.ny", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.Grib2GridDef.npoints", "modulename": "grib2io", "qualname": "Grib2GridDef.npoints", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.Grib2GridDef.shape", "modulename": "grib2io", "qualname": "Grib2GridDef.shape", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.tables", "modulename": "grib2io.tables", "kind": "module", "doc": "grib2io._Grib2Message.interpolate
\nmethod andgrib2io.interpolate
function accepts these objects.Functions for retreiving data from NCEP GRIB2 Tables.
\n"}, {"fullname": "grib2io.tables.GRIB2_DISCIPLINES", "modulename": "grib2io.tables", "qualname": "GRIB2_DISCIPLINES", "kind": "variable", "doc": "\n", "default_value": "[0, 1, 2, 3, 4, 10, 20]"}, {"fullname": "grib2io.tables.get_table", "modulename": "grib2io.tables", "qualname": "get_table", "kind": "function", "doc": "Return GRIB2 code table as a dictionary.
\n\nParameters
\n\n\n\n
table : str
\n Code table number (e.g. '1.0'). NOTE: Code table '4.1' requires a 3rd value\n representing the product discipline (e.g. '4.1.0').\n\n
expand : bool, optional
\n IfTrue
, expand output dictionary where keys are a range.Returns
\n\nTable as a
\n", "signature": "(table, expand=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_value_from_table", "modulename": "grib2io.tables", "qualname": "get_value_from_table", "kind": "function", "doc": "dict
.Return the definition given a GRIB2 code table.
\n\nParameters
\n\n\n\n
value : int or str
\n Code table value.\n\n
table : str
\n Code table number.\n\n
expand : bool, optional
\n IfTrue
, expand output dictionary where keys are a range.Returns
\n\nTable value or
\n", "signature": "(value, table, expand=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_varinfo_from_table", "modulename": "grib2io.tables", "qualname": "get_varinfo_from_table", "kind": "function", "doc": "None
if not found.Return the GRIB2 variable information given values of
\n\ndiscipline
,\nparmcat
, andparmnum
. NOTE: This functions allows for all arguments\nto be converted to a string type if arguments are integer.Parameters
\n\n\n\n
discipline : int or str
\n Discipline code value of a GRIB2 message.\n\n
parmcat : int or str
\n Parameter Category value of a GRIB2 message.\n\n
parmnum : int or str
\n Parameter Number value of a GRIB2 message.\n\n
isNDFD : bool, optional
\n IfTrue
, signals function to try to get variable information from \n the supplemental NDFD tables.Returns
\n\n\n", "signature": "(discipline, parmcat, parmnum, isNDFD=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_shortnames", "modulename": "grib2io.tables", "qualname": "get_shortnames", "kind": "function", "doc": "
list
containing variable information. \"Unknown\" is given for item of\ninformation if variable is not found.\n - list[0] = full name\n - list[1] = units\n - list[2] = short name (abbreviated name)Returns a list of variable shortNames given GRIB2 discipline, parameter\ncategory, and parameter number. If all 3 args are None, then shortNames\nfrom all disciplines, parameter categories, and numbers will be returned.
\n\nParameters
\n\n\n\n
discipline : int
\n GRIB2 discipline code value.\n\n
parmcat : int
\n GRIB2 parameter category value.\n\n
parmnum : int or str
\n Parameter Number value of a GRIB2 message.Returns
\n\n\n", "signature": "(discipline=None, parmcat=None, parmnum=None, isNDFD=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_metadata_from_shortname", "modulename": "grib2io.tables", "qualname": "get_metadata_from_shortname", "kind": "function", "doc": "
list
of GRIB2 shortNames.Provide GRIB2 variable metadata attributes given a GRIB2 shortName.
\n\nParameters
\n\n\n\n
shortname : str
\n GRIB2 variable shortName.Returns
\n\n\n", "signature": "(shortname):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_wgrib2_level_string", "modulename": "grib2io.tables", "qualname": "get_wgrib2_level_string", "kind": "function", "doc": "
list
of dictionary items where each dictionary items contains the variable\nmetadata key:value pairs. NOTE: Some variable shortNames will exist in multiple\nparameter category/number tables according to the GRIB2 discipline.Return a string that describes the level or layer of the GRIB2 message. The\nformat and language of the string is an exact replica of how wgrib2 produces\nthe level/layer string in its inventory output.
\n\nContents of wgrib2 source, Level.c,\nwere converted into a Python dictionary and stored in grib2io as table\n'wgrib2_level_string'.
\n\nParameters
\n\n\n\n
pdtn : int
\n GRIB2 Product Definition Template Number\n\n
pdt : list or array_like
\n Sequence containing GRIB2 Product Definition Template (Section 4).Returns
\n\nwgrib2-formatted level/layer string.
\n", "signature": "(pdtn, pdt):", "funcdef": "def"}, {"fullname": "grib2io.tables.originating_centers", "modulename": "grib2io.tables.originating_centers", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.originating_centers.table_originating_centers", "modulename": "grib2io.tables.originating_centers", "qualname": "table_originating_centers", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Melbourne (WMC)', '2': 'Melbourne (WMC)', '3': 'Melbourne (WMC)', '4': 'Moscow (WMC)', '5': 'Moscow (WMC)', '6': 'Moscow (WMC)', '7': 'US National Weather Service - NCEP (WMC)', '8': 'US National Weather Service - NWSTG (WMC)', '9': 'US National Weather Service - Other (WMC)', '10': 'Cairo (RSMC/RAFC)', '11': 'Cairo (RSMC/RAFC)', '12': 'Dakar (RSMC/RAFC)', '13': 'Dakar (RSMC/RAFC)', '14': 'Nairobi (RSMC/RAFC)', '15': 'Nairobi (RSMC/RAFC)', '16': 'Casablanca (RSMC)', '17': 'Tunis (RSMC)', '18': 'Tunis-Casablanca (RSMC)', '19': 'Tunis-Casablanca (RSMC)', '20': 'Las Palmas (RAFC)', '21': 'Algiers (RSMC)', '22': 'ACMAD', '23': 'Mozambique (NMC)', '24': 'Pretoria (RSMC)', '25': 'La Reunion (RSMC)', '26': 'Khabarovsk (RSMC)', '27': 'Khabarovsk (RSMC)', '28': 'New Delhi (RSMC/RAFC)', '29': 'New Delhi (RSMC/RAFC)', '30': 'Novosibirsk (RSMC)', '31': 'Novosibirsk (RSMC)', '32': 'Tashkent (RSMC)', '33': 'Jeddah (RSMC)', '34': 'Tokyo (RSMC), Japanese Meteorological Agency', '35': 'Tokyo (RSMC), Japanese Meteorological Agency', '36': 'Bankok', '37': 'Ulan Bator', '38': 'Beijing (RSMC)', '39': 'Beijing (RSMC)', '40': 'Seoul', '41': 'Buenos Aires (RSMC/RAFC)', '42': 'Buenos Aires (RSMC/RAFC)', '43': 'Brasilia (RSMC/RAFC)', '44': 'Brasilia (RSMC/RAFC)', '45': 'Santiago', '46': 'Brazilian Space Agency - INPE', '47': 'Columbia (NMC)', '48': 'Ecuador (NMC)', '49': 'Peru (NMC)', '50': 'Venezuela (NMC)', '51': 'Miami (RSMC/RAFC)', '52': 'Miami (RSMC), National Hurricane Center', '53': 'Canadian Meteorological Service - Montreal (RSMC)', '54': 'Canadian Meteorological Service - Montreal (RSMC)', '55': 'San Francisco', '56': 'ARINC Center', '57': 'US Air Force - Air Force Global Weather Center', '58': 'Fleet Numerical Meteorology and Oceanography Center,Monterey,CA,USA', '59': 'The NOAA Forecast Systems Lab, Boulder, CO, USA', '60': 'National Center for Atmospheric Research (NCAR), Boulder, CO', '61': 'Service ARGOS - Landover, MD, USA', '62': 'US Naval Oceanographic Office', '63': 'International Research Institude for Climate and Society', '64': 'Honolulu', '65': 'Darwin (RSMC)', '66': 'Darwin (RSMC)', '67': 'Melbourne (RSMC)', '68': 'Reserved', '69': 'Wellington (RSMC/RAFC)', '70': 'Wellington (RSMC/RAFC)', '71': 'Nadi (RSMC)', '72': 'Singapore', '73': 'Malaysia (NMC)', '74': 'U.K. Met Office - Exeter (RSMC)', '75': 'U.K. Met Office - Exeter (RSMC)', '76': 'Moscow (RSMC/RAFC)', '77': 'Reserved', '78': 'Offenbach (RSMC)', '79': 'Offenbach (RSMC)', '80': 'Rome (RSMC)', '81': 'Rome (RSMC)', '82': 'Norrkoping', '83': 'Norrkoping', '84': 'French Weather Service - Toulouse', '85': 'French Weather Service - Toulouse', '86': 'Helsinki', '87': 'Belgrade', '88': 'Oslo', '89': 'Prague', '90': 'Episkopi', '91': 'Ankara', '92': 'Frankfurt/Main (RAFC)', '93': 'London (WAFC)', '94': 'Copenhagen', '95': 'Rota', '96': 'Athens', '97': 'European Space Agency (ESA)', '98': 'European Center for Medium-Range Weather Forecasts (RSMC)', '99': 'De Bilt, Netherlands', '100': 'Brazzaville', '101': 'Abidjan', '102': 'Libyan Arab Jamahiriya (NMC)', '103': 'Madagascar (NMC)', '104': 'Mauritius (NMC)', '105': 'Niger (NMC)', '106': 'Seychelles (NMC)', '107': 'Uganda (NMC)', '108': 'United Republic of Tanzania (NMC)', '109': 'Zimbabwe (NMC)', '110': 'Hong-Kong', '111': 'Afghanistan (NMC)', '112': 'Bahrain (NMC)', '113': 'Bangladesh (NMC)', '114': 'Bhutan (NMC)', '115': 'Cambodia (NMC)', '116': 'Democratic Peoples Republic of Korea (NMC)', '117': 'Islamic Republic of Iran (NMC)', '118': 'Iraq (NMC)', '119': 'Kazakhstan (NMC)', '120': 'Kuwait (NMC)', '121': 'Kyrgyz Republic (NMC)', '122': 'Lao Peoples Democratic Republic (NMC)', '123': 'Macao, China', '124': 'Maldives (NMC)', '125': 'Myanmar (NMC)', '126': 'Nepal (NMC)', '127': 'Oman (NMC)', '128': 'Pakistan (NMC)', '129': 'Qatar (NMC)', '130': 'Yemen (NMC)', '131': 'Sri Lanka (NMC)', '132': 'Tajikistan (NMC)', '133': 'Turkmenistan (NMC)', '134': 'United Arab Emirates (NMC)', '135': 'Uzbekistan (NMC)', '136': 'Viet Nam (NMC)', '137-139': 'Reserved', '140': 'Bolivia (NMC)', '141': 'Guyana (NMC)', '142': 'Paraguay (NMC)', '143': 'Suriname (NMC)', '144': 'Uruguay (NMC)', '145': 'French Guyana', '146': 'Brazilian Navy Hydrographic Center', '147': 'National Commission on Space Activities - Argentina', '148': 'Brazilian Department of Airspace Control - DECEA', '149': 'Reserved', '150': 'Antigua and Barbuda (NMC)', '151': 'Bahamas (NMC)', '152': 'Barbados (NMC)', '153': 'Belize (NMC)', '154': 'British Caribbean Territories Center', '155': 'San Jose', '156': 'Cuba (NMC)', '157': 'Dominica (NMC)', '158': 'Dominican Republic (NMC)', '159': 'El Salvador (NMC)', '160': 'US NOAA/NESDIS', '161': 'US NOAA Office of Oceanic and Atmospheric Research', '162': 'Guatemala (NMC)', '163': 'Haiti (NMC)', '164': 'Honduras (NMC)', '165': 'Jamaica (NMC)', '166': 'Mexico City', '167': 'Netherlands Antilles and Aruba (NMC)', '168': 'Nicaragua (NMC)', '169': 'Panama (NMC)', '170': 'Saint Lucia (NMC)', '171': 'Trinidad and Tobago (NMC)', '172': 'French Departments in RA IV', '173': 'US National Aeronautics and Space Administration (NASA)', '174': 'Integrated System Data Management/Marine Environmental Data Service (ISDM/MEDS) - Canada', '175': 'Reserved', '176': 'US Cooperative Institude for Meteorological Satellite Studies', '177-189': 'Reserved', '190': 'Cook Islands (NMC)', '191': 'French Polynesia (NMC)', '192': 'Tonga (NMC)', '193': 'Vanuatu (NMC)', '194': 'Brunei (NMC)', '195': 'Indonesia (NMC)', '196': 'Kiribati (NMC)', '197': 'Federated States of Micronesia (NMC)', '198': 'New Caledonia (NMC)', '199': 'Niue', '200': 'Papua New Guinea (NMC)', '201': 'Philippines (NMC)', '202': 'Samoa (NMC)', '203': 'Solomon Islands (NMC)', '204': 'Narional Institude of Water and Atmospheric Research - New Zealand', '205-209': 'Reserved', '210': 'Frascati (ESA/ESRIN)', '211': 'Lanion', '212': 'Lisbon', '213': 'Reykjavik', '214': 'Madrid', '215': 'Zurich', '216': 'Service ARGOS - Toulouse', '217': 'Bratislava', '218': 'Budapest', '219': 'Ljubljana', '220': 'Warsaw', '221': 'Zagreb', '222': 'Albania (NMC)', '223': 'Armenia (NMC)', '224': 'Austria (NMC)', '225': 'Azerbaijan (NMC)', '226': 'Belarus (NMC)', '227': 'Belgium (NMC)', '228': 'Bosnia and Herzegovina (NMC)', '229': 'Bulgaria (NMC)', '230': 'Cyprus (NMC)', '231': 'Estonia (NMC)', '232': 'Georgia (NMC)', '233': 'Dublin', '234': 'Israel (NMC)', '235': 'Jordan (NMC)', '236': 'Latvia (NMC)', '237': 'Lebanon (NMC)', '238': 'Lithuania (NMC)', '239': 'Luxembourg', '240': 'Malta (NMC)', '241': 'Monaco', '242': 'Romania (NMC)', '243': 'Syrian Arab Republic (NMC)', '244': 'The former Yugoslav Republic of Macedonia (NMC)', '245': 'Ukraine (NMC)', '246': 'Republic of Moldova (NMC)', '247': 'Operational Programme for the Exchange of Weather RAdar Information (OPERA) - EUMETNET', '248-249': 'Reserved', '250': 'COnsortium for Small scale MOdelling (COSMO)', '251-253': 'Reserved', '254': 'EUMETSAT Operations Center', '255': 'Missing Value'}"}, {"fullname": "grib2io.tables.originating_centers.table_originating_subcenters", "modulename": "grib2io.tables.originating_centers", "qualname": "table_originating_subcenters", "kind": "variable", "doc": "\n", "default_value": "{'1': 'NCEP Re-Analysis Project', '2': 'NCEP Ensemble Products', '3': 'NCEP Central Operations', '4': 'Environmental Modeling Center', '5': 'Weather Prediction Center', '6': 'Ocean Prediction Center', '7': 'Climate Prediction Center', '8': 'Aviation Weather Center', '9': 'Storm Prediction Center', '10': 'National Hurricane Center', '11': 'NWS Techniques Development Laboratory', '12': 'NESDIS Office of Research and Applications', '13': 'Federal Aviation Administration', '14': 'NWS Meteorological Development Laboratory', '15': 'North American Regional Reanalysis Project', '16': 'Space Weather Prediction Center', '17': 'ESRL Global Systems Division'}"}, {"fullname": "grib2io.tables.originating_centers.table_generating_process", "modulename": "grib2io.tables.originating_centers", "qualname": "table_generating_process", "kind": "variable", "doc": "\n", "default_value": "{'0-1': 'Reserved', '2': 'Ultra Violet Index Model', '3': 'NCEP/ARL Transport and Dispersion Model', '4': 'NCEP/ARL Smoke Model', '5': 'Satellite Derived Precipitation and temperatures, from IR (See PDS Octet 41 ... for specific satellite ID)', '6': 'NCEP/ARL Dust Model', '7-9': 'Reserved', '10': 'Global Wind-Wave Forecast Model', '11': 'Global Multi-Grid Wave Model (Static Grids)', '12': 'Probabilistic Storm Surge (P-Surge)', '13': 'Hurricane Multi-Grid Wave Model', '14': 'Extra-tropical Storm Surge Atlantic Domain', '15': 'Nearshore Wave Prediction System (NWPS)', '16': 'Extra-Tropical Storm Surge (ETSS)', '17': 'Extra-tropical Storm Surge Pacific Domain', '18': 'Probabilistic Extra-Tropical Storm Surge (P-ETSS)', '19': 'Reserved', '20': 'Extra-tropical Storm Surge Micronesia Domain', '21': 'Extra-tropical Storm Surge Atlantic Domain (3D)', '22': 'Extra-tropical Storm Surge Pacific Domain (3D)', '23': 'Extra-tropical Storm Surge Micronesia Domain (3D)', '24': 'Reserved', '25': 'Snow Cover Analysis', '26-29': 'Reserved', '30': 'Forecaster generated field', '31': 'Value added post processed field', '32-41': 'Reserved', '42': 'Global Optimum Interpolation Analysis (GOI) from GFS model', '43': 'Global Optimum Interpolation Analysis (GOI) from "Final" run', '44': 'Sea Surface Temperature Analysis', '45': 'Coastal Ocean Circulation Model', '46': 'HYCOM - Global', '47': 'HYCOM - North Pacific basin', '48': 'HYCOM - North Atlantic basin', '49': 'Ozone Analysis from TIROS Observations', '50-51': 'Reserved', '52': 'Ozone Analysis from Nimbus 7 Observations', '53-63': 'Reserved', '64': 'Regional Optimum Interpolation Analysis (ROI)', '65-67': 'Reserved', '68': '80 wave triangular, 18-layer Spectral model from GFS model', '69': '80 wave triangular, 18 layer Spectral model from "Medium Range Forecast" run', '70': 'Quasi-Lagrangian Hurricane Model (QLM)', '71': 'Hurricane Weather Research and Forecasting (HWRF)', '72': 'Hurricane Non-Hydrostatic Multiscale Model on the B Grid (HNMMB)', '73': 'Fog Forecast model - Ocean Prod. Center', '74': 'Gulf of Mexico Wind/Wave', '75': 'Gulf of Alaska Wind/Wave', '76': 'Bias corrected Medium Range Forecast', '77': '126 wave triangular, 28 layer Spectral model from GFS model', '78': '126 wave triangular, 28 layer Spectral model from "Medium Range Forecast" run', '79': 'Reserved', '80': '62 wave triangular, 28 layer Spectral model from "Medium Range Forecast" run', '81': 'Analysis from GFS (Global Forecast System)', '82': 'Analysis from GDAS (Global Data Assimilation System)', '83': 'High Resolution Rapid Refresh (HRRR)', '84': 'MESO NAM Model (currently 12 km)', '85': 'Real Time Ocean Forecast System (RTOFS)', '86': 'Early Hurricane Wind Speed Probability Model', '87': 'CAC Ensemble Forecasts from Spectral (ENSMB)', '88': 'NOAA Wave Watch III (NWW3) Ocean Wave Model', '89': 'Non-hydrostatic Meso Model (NMM) (Currently 8 km)', '90': '62 wave triangular, 28 layer spectral model extension of the "Medium Range Forecast" run', '91': '62 wave triangular, 28 layer spectral model extension of the GFS model', '92': '62 wave triangular, 28 layer spectral model run from the "Medium Range Forecast" final analysis', '93': '62 wave triangular, 28 layer spectral model run from the T62 GDAS analysis of the "Medium Range Forecast" run', '94': 'T170/L42 Global Spectral Model from MRF run', '95': 'T126/L42 Global Spectral Model from MRF run', '96': 'Global Forecast System Model T1534 - Forecast hours 00-384 T574 - Forecast hours 00-192 T190 - Forecast hours 204-384', '97': 'Reserved', '98': 'Climate Forecast System Model -- Atmospheric model (GFS) coupled to a multi level ocean model . Currently GFS spectral model at T62, 64 levels coupled to 40 level MOM3 ocean model.', '99': 'Miscellaneous Test ID', '100': 'Miscellaneous Test ID', '101': 'Conventional Observation Re-Analysis (CORE)', '102-103': 'Reserved', '104': 'National Blend GRIB', '105': 'Rapid Refresh (RAP)', '106': 'Reserved', '107': 'Global Ensemble Forecast System (GEFS)', '108': 'Localized Aviation MOS Program (LAMP)', '109': 'Real Time Mesoscale Analysis (RTMA)', '110': 'NAM Model - 15km version', '111': 'NAM model, generic resolution (Used in SREF processing)', '112': 'WRF-NMM model, generic resolution (Used in various runs) NMM=Nondydrostatic Mesoscale Model (NCEP)', '113': 'Products from NCEP SREF processing', '114': 'NAEFS Products from joined NCEP, CMC global ensembles', '115': 'Downscaled GFS from NAM eXtension', '116': 'WRF-EM model, generic resolution (Used in various runs) EM - Eulerian Mass-core (NCAR - aka Advanced Research WRF)', '117': 'NEMS GFS Aerosol Component', '118': 'UnRestricted Mesoscale Analysis (URMA)', '119': 'WAM (Whole Atmosphere Model)', '120': 'Ice Concentration Analysis', '121': 'Western North Atlantic Regional Wave Model', '122': 'Alaska Waters Regional Wave Model', '123': 'North Atlantic Hurricane Wave Model', '124': 'Eastern North Pacific Regional Wave Model', '125': 'North Pacific Hurricane Wave Model', '126': 'Sea Ice Forecast Model', '127': 'Lake Ice Forecast Model', '128': 'Global Ocean Forecast Model', '129': 'Global Ocean Data Analysis System (GODAS)', '130': 'Merge of fields from the RUC, NAM, and Spectral Model', '131': 'Great Lakes Wave Model', '132': 'High Resolution Ensemble Forecast (HREF)', '133': 'Great Lakes Short Range Wave Model', '134': 'Rapid Refresh Forecast System (RRFS)', '135': 'Hurricane Analysis and Forecast System (HAFS)', '136-139': 'Reserved', '140': 'North American Regional Reanalysis (NARR)', '141': 'Land Data Assimilation and Forecast System', '142-149': 'Reserved', '150': 'NWS River Forecast System (NWSRFS)', '151': 'NWS Flash Flood Guidance System (NWSFFGS)', '152': 'WSR-88D Stage II Precipitation Analysis', '153': 'WSR-88D Stage III Precipitation Analysis', '154-179': 'Reserved', '180': 'Quantitative Precipitation Forecast generated by NCEP', '181': 'River Forecast Center Quantitative Precipitation Forecast mosaic generated by NCEP', '182': 'River Forecast Center Quantitative Precipitation estimate mosaic generated by NCEP', '183': 'NDFD product generated by NCEP/HPC', '184': 'Climatological Calibrated Precipitation Analysis (CCPA)', '185-189': 'Reserved', '190': 'National Convective Weather Diagnostic generated by NCEP/AWC', '191': 'Current Icing Potential automated product genterated by NCEP/AWC', '192': 'Analysis product from NCEP/AWC', '193': 'Forecast product from NCEP/AWC', '194': 'Reserved', '195': 'Climate Data Assimilation System 2 (CDAS2)', '196': 'Climate Data Assimilation System 2 (CDAS2) - used for regeneration runs', '197': 'Climate Data Assimilation System (CDAS)', '198': 'Climate Data Assimilation System (CDAS) - used for regeneration runs', '199': 'Climate Forecast System Reanalysis (CFSR) -- Atmospheric model (GFS) coupled to a multi level ocean, land and seaice model. GFS spectral model at T382, 64 levels coupled to 40 level MOM4 ocean model.', '200': 'CPC Manual Forecast Product', '201': 'CPC Automated Product', '202-209': 'Reserved', '210': 'EPA Air Quality Forecast - Currently North East US domain', '211': 'EPA Air Quality Forecast - Currently Eastern US domain', '212-214': 'Reserved', '215': 'SPC Manual Forecast Product', '216-219': 'Reserved', '220': 'NCEP/OPC automated product', '221-230': 'Reserved for WPC products', '231-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section0", "modulename": "grib2io.tables.section0", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section0.table_0_0", "modulename": "grib2io.tables.section0", "qualname": "table_0_0", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Meteorological Products', '1': 'Hydrological Products', '2': 'Land Surface Products', '3': 'Satellite Remote Sensing Products', '4': 'Space Weather Products', '5-9': 'Reserved', '10': 'Oceanographic Products', '11-19': 'Reserved', '20': 'Health and Socioeconomic Impacts', '21-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1", "modulename": "grib2io.tables.section1", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section1.table_1_0", "modulename": "grib2io.tables.section1", "qualname": "table_1_0", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Experimental', '1': 'Version Implemented on 7 November 2001', '2': 'Version Implemented on 4 November 2003', '3': 'Version Implemented on 2 November 2005', '4': 'Version Implemented on 7 November 2007', '5': 'Version Implemented on 4 November 2009', '6': 'Version Implemented on 15 September 2010', '7': 'Version Implemented on 4 May 2011', '8': 'Version Implemented on 8 November 2011', '9': 'Version Implemented on 2 May 2012', '10': 'Version Implemented on 7 November 2012', '11': 'Version Implemented on 8 May 2013', '12': 'Version Implemented on 14 November 2013', '13': 'Version Implemented on 7 May 2014', '14': 'Version Implemented on 5 November 2014', '16': 'Version Implemented on 11 November 2015', '17': 'Version Implemented on 4 May 2016', '18': 'Version Implemented on 2 November 2016', '19': 'Version Implemented on 3 May 2017', '20': 'Version Implemented on 8 November 2017', '21': 'Version Implemented on 2 May 2018', '22': 'Version Implemented on 7 November 2018', '23': 'Version Implemented on 15 May 2019', '24': 'Version Implemented on 06 November 2019', '25': 'Version Implemented on 06 May 2020', '26': 'Version Implemented on 16 November 2020', '27': 'Version Implemented on 16 June 2021', '28': 'Version Implemented on 15 November 2021', '29': 'Version Implemented on 15 May 2022', '30': 'Version Implemented on 15 November 2022', '31': 'Version Implemented on 15 June 2023', '32': 'Version Implemented on 30 November 2023', '33': 'Pre-operational to be implemented by next amendment', '34-254': 'Future Version', '255': 'Missing"'}"}, {"fullname": "grib2io.tables.section1.table_1_1", "modulename": "grib2io.tables.section1", "qualname": "table_1_1", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Local tables not used. Only table entries and templates from the current master table are valid.', '1-254': 'Number of local table version used.', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_2", "modulename": "grib2io.tables.section1", "qualname": "table_1_2", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Analysis', '1': 'Start of Forecast', '2': 'Verifying Time of Forecast', '3': 'Observation Time', '4': 'Local Time', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_3", "modulename": "grib2io.tables.section1", "qualname": "table_1_3", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Operational Products', '1': 'Operational Test Products', '2': 'Research Products', '3': 'Re-Analysis Products', '4': 'THORPEX Interactive Grand Global Ensemble (TIGGE)', '5': 'THORPEX Interactive Grand Global Ensemble (TIGGE) test', '6': 'S2S Operational Products', '7': 'S2S Test Products', '8': 'Uncertainties in ensembles of regional reanalysis project (UERRA)', '9': 'Uncertainties in ensembles of regional reanalysis project (UERRA) Test', '10': 'Copernicus Regional Reanalysis', '11': 'Copernicus Regional Reanalysis Test', '12': 'Destination Earth', '13': 'Destination Earth test', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_4", "modulename": "grib2io.tables.section1", "qualname": "table_1_4", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Analysis Products', '1': 'Forecast Products', '2': 'Analysis and Forecast Products', '3': 'Control Forecast Products', '4': 'Perturbed Forecast Products', '5': 'Control and Perturbed Forecast Products', '6': 'Processed Satellite Observations', '7': 'Processed Radar Observations', '8': 'Event Probability', '9-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Experimental Products', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_5", "modulename": "grib2io.tables.section1", "qualname": "table_1_5", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Calendar Definition', '1': 'Paleontological Offset', '2': 'Calendar Definition and Paleontological Offset', '3-32767': 'Reserved', '32768-65534': 'Reserved for Local Use', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_6", "modulename": "grib2io.tables.section1", "qualname": "table_1_6", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Gregorian', '1': '360-day', '2': '365-day', '3': 'Proleptic Gregorian', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section3", "modulename": "grib2io.tables.section3", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section3.table_3_0", "modulename": "grib2io.tables.section3", "qualname": "table_3_0", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Specified in Code Table 3.1', '1': 'Predetermined Grid Definition - Defined by Originating Center', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'A grid definition does not apply to this product.'}"}, {"fullname": "grib2io.tables.section3.table_3_1", "modulename": "grib2io.tables.section3", "qualname": "table_3_1", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Latitude/Longitude', '1': 'Rotated Latitude/Longitude', '2': 'Stretched Latitude/Longitude', '3': 'Rotated and Stretched Latitude/Longitude', '4': 'Variable Resolution Latitude/longitude ', '5': 'Variable Resolution Rotated Latitude/longitude ', '6-9': 'Reserved', '10': 'Mercator', '11': 'Reserved', '12': 'Transverse Mercator ', '13': 'Mercator with modelling subdomains definition ', '14-19': 'Reserved', '20': 'Polar Stereographic Projection (Can be North or South)', '21-22': 'Reserved', '23': 'Polar Stereographic with modelling subdomains definition ', '24-29': 'Reserved', '30': 'Lambert Conformal (Can be Secant, Tangent, Conical, or Bipolar)', '31': 'Albers Equal Area', '32': 'Reserved', '33': 'Lambert conformal with modelling subdomains definition ', '34-39': 'Reserved', '40': 'Gaussian Latitude/Longitude', '41': 'Rotated Gaussian Latitude/Longitude', '42': 'Stretched Gaussian Latitude/Longitude', '43': 'Rotated and Stretched Gaussian Latitude/Longitude', '44-49': 'Reserved', '50': 'Spherical Harmonic Coefficients', '51': 'Rotated Spherical Harmonic Coefficients', '52': 'Stretched Spherical Harmonic Coefficients', '53': 'Rotated and Stretched Spherical Harmonic Coefficients', '54-59': 'Reserved', '60': 'Cubed-Sphere Gnomonic ', '61': 'Spectral Mercator with modelling subdomains definition ', '62': 'Spectral Polar Stereographic with modelling subdomains definition ', '63': 'Spectral Lambert conformal with modelling subdomains definition ', '64-89': 'Reserved', '90': 'Space View Perspective or Orthographic', '91-99': 'Reserved', '100': 'Triangular Grid Based on an Icosahedron', '101': 'General Unstructured Grid (see Template 3.101)', '102-109': 'Reserved', '110': 'Equatorial Azimuthal Equidistant Projection', '111-119': 'Reserved', '120': 'Azimuth-Range Projection', '121-139': 'Reserved', '140': 'Lambert Azimuthal Equal Area Projection ', '141-149': 'Reserved', '150': 'Hierarchical Equal Area isoLatitude Pixelization grid (HEALPix)', '151-203': 'Reserved', '204': 'Curvilinear Orthogonal Grids', '205-999': 'Reserved', '1000': 'Cross Section Grid with Points Equally Spaced on the Horizontal', '1001-1099': 'Reserved', '1100': 'Hovmoller Diagram with Points Equally Spaced on the Horizontal', '1101-1199': 'Reserved', '1200': 'Time Section Grid', '1201-32767': 'Reserved', '32768-65534': 'Reserved for Local Use', '32768': 'Rotated Latitude/Longitude (Arakawa Staggeblack E-Grid)', '32769': 'Rotated Latitude/Longitude (Arakawa Non-E Staggeblack Grid)', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section3.table_3_2", "modulename": "grib2io.tables.section3", "qualname": "table_3_2", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Earth assumed spherical with radius = 6,367,470.0 m', '1': 'Earth assumed spherical with radius specified (in m) by data producer', '2': 'Earth assumed oblate spheriod with size as determined by IAU in 1965 (major axis = 6,378,160.0 m, minor axis = 6,356,775.0 m, f = 1/297.0)', '3': 'Earth assumed oblate spheriod with major and minor axes specified (in km) by data producer', '4': 'Earth assumed oblate spheriod as defined in IAG-GRS80 model (major axis = 6,378,137.0 m, minor axis = 6,356,752.314 m, f = 1/298.257222101)', '5': 'Earth assumed represented by WGS84 (as used by ICAO since 1998) (Uses IAG-GRS80 as a basis)', '6': 'Earth assumed spherical with radius = 6,371,229.0 m', '7': 'Earth assumed oblate spheroid with major and minor axes specified (in m) by data producer', '8': 'Earth model assumed spherical with radius 6,371,200 m, but the horizontal datum of the resulting Latitude/Longitude field is the WGS84 reference frame', '9': 'Earth represented by the OSGB 1936 Datum, using the Airy_1830 Spheroid, the Greenwich meridian as 0 Longitude, the Newlyn datum as mean sea level, 0 height.', '10': 'Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992".', '11': 'Sun assumed spherical with radius = 695 990 000 m (Allen, C.W., Astrophysical Quantities, 3rd ed.; Athlone: London, 1976) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W., Coordinate systems for solar image data, Astron. Astrophys. 2006, 449, 791-803)', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section3.table_3_11", "modulename": "grib2io.tables.section3", "qualname": "table_3_11", "kind": "variable", "doc": "\n", "default_value": "{'0': 'There is no appended list', '1': 'Numbers define number of points corresponding to full coordinate circles (i.e. parallels). Coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition may not be reached in all rows.', '2': 'Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition which are present in each row.', '3': 'Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scale by 106) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the "scanning mode flag" (bit no. 2)', '4-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section3.table_earth_params", "modulename": "grib2io.tables.section3", "qualname": "table_earth_params", "kind": "variable", "doc": "\n", "default_value": "{'0': {'shape': 'spherical', 'radius': 6367470.0}, '1': {'shape': 'spherical', 'radius': None}, '2': {'shape': 'oblateSpheriod', 'major_axis': 6378160.0, 'minor_axis': 6356775.0, 'flattening': 0.003367003367003367}, '3': {'shape': 'oblateSpheriod', 'major_axis': None, 'minor_axis': None, 'flattening': None}, '4': {'shape': 'oblateSpheriod', 'major_axis': 6378137.0, 'minor_axis': 6356752.314, 'flattening': 0.003352810681182319}, '5': {'shape': 'ellipsoid', 'major_axis': 6378137.0, 'minor_axis': 6356752.3142, 'flattening': 0.003352810681182319}, '6': {'shape': 'spherical', 'radius': 6371229.0}, '7': {'shape': 'oblateSpheriod', 'major_axis': None, 'minor_axis': None, 'flattening': None}, '8': {'shape': 'spherical', 'radius': 6371200.0}, '9': {'shape': 'unknown', 'radius': None}, '10': {'shape': 'unknown', 'radius': None}, '11': {'shape': 'unknown', 'radius': None}, '12': {'shape': 'unknown', 'radius': None}, '13': {'shape': 'unknown', 'radius': None}, '14': {'shape': 'unknown', 'radius': None}, '15': {'shape': 'unknown', 'radius': None}, '16': {'shape': 'unknown', 'radius': None}, '17': {'shape': 'unknown', 'radius': None}, '18': {'shape': 'unknown', 'radius': None}, '19': {'shape': 'unknown', 'radius': None}, '20': {'shape': 'unknown', 'radius': None}, '21': {'shape': 'unknown', 'radius': None}, '22': {'shape': 'unknown', 'radius': None}, '23': {'shape': 'unknown', 'radius': None}, '24': {'shape': 'unknown', 'radius': None}, '25': {'shape': 'unknown', 'radius': None}, '26': {'shape': 'unknown', 'radius': None}, '27': {'shape': 'unknown', 'radius': None}, '28': {'shape': 'unknown', 'radius': None}, '29': {'shape': 'unknown', 'radius': None}, '30': {'shape': 'unknown', 'radius': None}, '31': {'shape': 'unknown', 'radius': None}, '32': {'shape': 'unknown', 'radius': None}, '33': {'shape': 'unknown', 'radius': None}, '34': {'shape': 'unknown', 'radius': None}, '35': {'shape': 'unknown', 'radius': None}, '36': {'shape': 'unknown', 'radius': None}, '37': {'shape': 'unknown', 'radius': None}, '38': {'shape': 'unknown', 'radius': None}, '39': {'shape': 'unknown', 'radius': None}, '40': {'shape': 'unknown', 'radius': None}, '41': {'shape': 'unknown', 'radius': None}, '42': {'shape': 'unknown', 'radius': None}, '43': {'shape': 'unknown', 'radius': None}, '44': {'shape': 'unknown', 'radius': None}, '45': {'shape': 'unknown', 'radius': None}, '46': {'shape': 'unknown', 'radius': None}, '47': {'shape': 'unknown', 'radius': None}, '48': {'shape': 'unknown', 'radius': None}, '49': {'shape': 'unknown', 'radius': None}, '50': {'shape': 'unknown', 'radius': None}, '51': {'shape': 'unknown', 'radius': None}, '52': {'shape': 'unknown', 'radius': None}, '53': {'shape': 'unknown', 'radius': None}, '54': {'shape': 'unknown', 'radius': None}, '55': {'shape': 'unknown', 'radius': None}, '56': {'shape': 'unknown', 'radius': None}, '57': {'shape': 'unknown', 'radius': None}, '58': {'shape': 'unknown', 'radius': None}, '59': {'shape': 'unknown', 'radius': None}, '60': {'shape': 'unknown', 'radius': None}, '61': {'shape': 'unknown', 'radius': None}, '62': {'shape': 'unknown', 'radius': None}, '63': {'shape': 'unknown', 'radius': None}, '64': {'shape': 'unknown', 'radius': None}, '65': {'shape': 'unknown', 'radius': None}, '66': {'shape': 'unknown', 'radius': None}, '67': {'shape': 'unknown', 'radius': None}, '68': {'shape': 'unknown', 'radius': None}, '69': {'shape': 'unknown', 'radius': None}, '70': {'shape': 'unknown', 'radius': None}, '71': {'shape': 'unknown', 'radius': None}, '72': {'shape': 'unknown', 'radius': None}, '73': {'shape': 'unknown', 'radius': None}, '74': {'shape': 'unknown', 'radius': None}, '75': {'shape': 'unknown', 'radius': None}, '76': {'shape': 'unknown', 'radius': None}, '77': {'shape': 'unknown', 'radius': None}, '78': {'shape': 'unknown', 'radius': None}, '79': {'shape': 'unknown', 'radius': None}, '80': {'shape': 'unknown', 'radius': None}, '81': {'shape': 'unknown', 'radius': None}, '82': {'shape': 'unknown', 'radius': None}, '83': {'shape': 'unknown', 'radius': None}, '84': {'shape': 'unknown', 'radius': None}, '85': {'shape': 'unknown', 'radius': None}, '86': {'shape': 'unknown', 'radius': None}, '87': {'shape': 'unknown', 'radius': None}, '88': {'shape': 'unknown', 'radius': None}, '89': {'shape': 'unknown', 'radius': None}, '90': {'shape': 'unknown', 'radius': None}, '91': {'shape': 'unknown', 'radius': None}, '92': {'shape': 'unknown', 'radius': None}, '93': {'shape': 'unknown', 'radius': None}, '94': {'shape': 'unknown', 'radius': None}, '95': {'shape': 'unknown', 'radius': None}, '96': {'shape': 'unknown', 'radius': None}, '97': {'shape': 'unknown', 'radius': None}, '98': {'shape': 'unknown', 'radius': None}, '99': {'shape': 'unknown', 'radius': None}, '100': {'shape': 'unknown', 'radius': None}, '101': {'shape': 'unknown', 'radius': None}, '102': {'shape': 'unknown', 'radius': None}, '103': {'shape': 'unknown', 'radius': None}, '104': {'shape': 'unknown', 'radius': None}, '105': {'shape': 'unknown', 'radius': None}, '106': {'shape': 'unknown', 'radius': None}, '107': {'shape': 'unknown', 'radius': None}, '108': {'shape': 'unknown', 'radius': None}, '109': {'shape': 'unknown', 'radius': None}, '110': {'shape': 'unknown', 'radius': None}, '111': {'shape': 'unknown', 'radius': None}, '112': {'shape': 'unknown', 'radius': None}, '113': {'shape': 'unknown', 'radius': None}, '114': {'shape': 'unknown', 'radius': None}, '115': {'shape': 'unknown', 'radius': None}, '116': {'shape': 'unknown', 'radius': None}, '117': {'shape': 'unknown', 'radius': None}, '118': {'shape': 'unknown', 'radius': None}, '119': {'shape': 'unknown', 'radius': None}, '120': {'shape': 'unknown', 'radius': None}, '121': {'shape': 'unknown', 'radius': None}, '122': {'shape': 'unknown', 'radius': None}, '123': {'shape': 'unknown', 'radius': None}, '124': {'shape': 'unknown', 'radius': None}, '125': {'shape': 'unknown', 'radius': None}, '126': {'shape': 'unknown', 'radius': None}, '127': {'shape': 'unknown', 'radius': None}, '128': {'shape': 'unknown', 'radius': None}, '129': {'shape': 'unknown', 'radius': None}, '130': {'shape': 'unknown', 'radius': None}, '131': {'shape': 'unknown', 'radius': None}, '132': {'shape': 'unknown', 'radius': None}, '133': {'shape': 'unknown', 'radius': None}, '134': {'shape': 'unknown', 'radius': None}, '135': {'shape': 'unknown', 'radius': None}, '136': {'shape': 'unknown', 'radius': None}, '137': {'shape': 'unknown', 'radius': None}, '138': {'shape': 'unknown', 'radius': None}, '139': {'shape': 'unknown', 'radius': None}, '140': {'shape': 'unknown', 'radius': None}, '141': {'shape': 'unknown', 'radius': None}, '142': {'shape': 'unknown', 'radius': None}, '143': {'shape': 'unknown', 'radius': None}, '144': {'shape': 'unknown', 'radius': None}, '145': {'shape': 'unknown', 'radius': None}, '146': {'shape': 'unknown', 'radius': None}, '147': {'shape': 'unknown', 'radius': None}, '148': {'shape': 'unknown', 'radius': None}, '149': {'shape': 'unknown', 'radius': None}, '150': {'shape': 'unknown', 'radius': None}, '151': {'shape': 'unknown', 'radius': None}, '152': {'shape': 'unknown', 'radius': None}, '153': {'shape': 'unknown', 'radius': None}, '154': {'shape': 'unknown', 'radius': None}, '155': {'shape': 'unknown', 'radius': None}, '156': {'shape': 'unknown', 'radius': None}, '157': {'shape': 'unknown', 'radius': None}, '158': {'shape': 'unknown', 'radius': None}, '159': {'shape': 'unknown', 'radius': None}, '160': {'shape': 'unknown', 'radius': None}, '161': {'shape': 'unknown', 'radius': None}, '162': {'shape': 'unknown', 'radius': None}, '163': {'shape': 'unknown', 'radius': None}, '164': {'shape': 'unknown', 'radius': None}, '165': {'shape': 'unknown', 'radius': None}, '166': {'shape': 'unknown', 'radius': None}, '167': {'shape': 'unknown', 'radius': None}, '168': {'shape': 'unknown', 'radius': None}, '169': {'shape': 'unknown', 'radius': None}, '170': {'shape': 'unknown', 'radius': None}, '171': {'shape': 'unknown', 'radius': None}, '172': {'shape': 'unknown', 'radius': None}, '173': {'shape': 'unknown', 'radius': None}, '174': {'shape': 'unknown', 'radius': None}, '175': {'shape': 'unknown', 'radius': None}, '176': {'shape': 'unknown', 'radius': None}, '177': {'shape': 'unknown', 'radius': None}, '178': {'shape': 'unknown', 'radius': None}, '179': {'shape': 'unknown', 'radius': None}, '180': {'shape': 'unknown', 'radius': None}, '181': {'shape': 'unknown', 'radius': None}, '182': {'shape': 'unknown', 'radius': None}, '183': {'shape': 'unknown', 'radius': None}, '184': {'shape': 'unknown', 'radius': None}, '185': {'shape': 'unknown', 'radius': None}, '186': {'shape': 'unknown', 'radius': None}, '187': {'shape': 'unknown', 'radius': None}, '188': {'shape': 'unknown', 'radius': None}, '189': {'shape': 'unknown', 'radius': None}, '190': {'shape': 'unknown', 'radius': None}, '191': {'shape': 'unknown', 'radius': None}, '192': {'shape': 'unknown', 'radius': None}, '193': {'shape': 'unknown', 'radius': None}, '194': {'shape': 'unknown', 'radius': None}, '195': {'shape': 'unknown', 'radius': None}, '196': {'shape': 'unknown', 'radius': None}, '197': {'shape': 'unknown', 'radius': None}, '198': {'shape': 'unknown', 'radius': None}, '199': {'shape': 'unknown', 'radius': None}, '200': {'shape': 'unknown', 'radius': None}, '201': {'shape': 'unknown', 'radius': None}, '202': {'shape': 'unknown', 'radius': None}, '203': {'shape': 'unknown', 'radius': None}, '204': {'shape': 'unknown', 'radius': None}, '205': {'shape': 'unknown', 'radius': None}, '206': {'shape': 'unknown', 'radius': None}, '207': {'shape': 'unknown', 'radius': None}, '208': {'shape': 'unknown', 'radius': None}, '209': {'shape': 'unknown', 'radius': None}, '210': {'shape': 'unknown', 'radius': None}, '211': {'shape': 'unknown', 'radius': None}, '212': {'shape': 'unknown', 'radius': None}, '213': {'shape': 'unknown', 'radius': None}, '214': {'shape': 'unknown', 'radius': None}, '215': {'shape': 'unknown', 'radius': None}, '216': {'shape': 'unknown', 'radius': None}, '217': {'shape': 'unknown', 'radius': None}, '218': {'shape': 'unknown', 'radius': None}, '219': {'shape': 'unknown', 'radius': None}, '220': {'shape': 'unknown', 'radius': None}, '221': {'shape': 'unknown', 'radius': None}, '222': {'shape': 'unknown', 'radius': None}, '223': {'shape': 'unknown', 'radius': None}, '224': {'shape': 'unknown', 'radius': None}, '225': {'shape': 'unknown', 'radius': None}, '226': {'shape': 'unknown', 'radius': None}, '227': {'shape': 'unknown', 'radius': None}, '228': {'shape': 'unknown', 'radius': None}, '229': {'shape': 'unknown', 'radius': None}, '230': {'shape': 'unknown', 'radius': None}, '231': {'shape': 'unknown', 'radius': None}, '232': {'shape': 'unknown', 'radius': None}, '233': {'shape': 'unknown', 'radius': None}, '234': {'shape': 'unknown', 'radius': None}, '235': {'shape': 'unknown', 'radius': None}, '236': {'shape': 'unknown', 'radius': None}, '237': {'shape': 'unknown', 'radius': None}, '238': {'shape': 'unknown', 'radius': None}, '239': {'shape': 'unknown', 'radius': None}, '240': {'shape': 'unknown', 'radius': None}, '241': {'shape': 'unknown', 'radius': None}, '242': {'shape': 'unknown', 'radius': None}, '243': {'shape': 'unknown', 'radius': None}, '244': {'shape': 'unknown', 'radius': None}, '245': {'shape': 'unknown', 'radius': None}, '246': {'shape': 'unknown', 'radius': None}, '247': {'shape': 'unknown', 'radius': None}, '248': {'shape': 'unknown', 'radius': None}, '249': {'shape': 'unknown', 'radius': None}, '250': {'shape': 'unknown', 'radius': None}, '251': {'shape': 'unknown', 'radius': None}, '252': {'shape': 'unknown', 'radius': None}, '253': {'shape': 'unknown', 'radius': None}, '254': {'shape': 'unknown', 'radius': None}, '255': {'shape': 'unknown', 'radius': None}}"}, {"fullname": "grib2io.tables.section4", "modulename": "grib2io.tables.section4", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4.table_4_1_0", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_0", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Temperature', '1': 'Moisture', '2': 'Momentum', '3': 'Mass', '4': 'Short-wave radiation', '5': 'Long-wave radiation', '6': 'Cloud', '7': 'Thermodynamic Stability indicies', '8': 'Kinematic Stability indicies', '9': 'Temperature Probabilities*', '10': 'Moisture Probabilities*', '11': 'Momentum Probabilities*', '12': 'Mass Probabilities*', '13': 'Aerosols', '14': 'Trace gases', '15': 'Radar', '16': 'Forecast Radar Imagery', '17': 'Electrodynamics', '18': 'Nuclear/radiology', '19': 'Physical atmospheric properties', '20': 'Atmospheric chemical Constituents', '21': 'Thermodynamic Properties', '22-189': 'Reserved', '190': 'CCITT IA5 string', '191': 'Miscellaneous', '192-254': 'Reserved for Local Use', '192': 'Covariance', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_1", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_1", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Hydrology basic products', '1': 'Hydrology probabilities', '2': 'Inland water and sediment properties', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_2", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_2", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Vegetation/Biomass', '1': 'Agricultural/Aquacultural Special Products', '2': 'Transportation-related Products', '3': 'Soil Products', '4': 'Fire Weather Products', '5': 'Land Surface Products', '6': 'Urban areas', '7-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_3", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_3", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Image format products', '1': 'Quantitative products', '2': 'Cloud Properties', '3': 'Flight Rules Conditions', '4': 'Volcanic Ash', '5': 'Sea-surface Temperature', '6': 'Solar Radiation', '7-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Forecast Satellite Imagery', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_4", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_4", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Temperature', '1': 'Momentum', '2': 'Charged Particle Mass and Number', '3': 'Electric and Magnetic Fields', '4': 'Energetic Particles', '5': 'Waves', '6': 'Solar Electromagnetic Emissions', '7': 'Terrestrial Electromagnetic Emissions', '8': 'Imagery', '9': 'Ion-Neutral Coupling', '10': 'Space Weather Indices', '11-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_10", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_10", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Waves', '1': 'Currents', '2': 'Ice', '3': 'Surface Properties', '4': 'Sub-surface Properties', '5-190': 'Reserved', '191': 'Miscellaneous', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_20", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_20", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Health Indicators', '1': 'Epidemiology', '2': 'Socioeconomic indicators', '3': 'Renewable energy sector', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_0", "modulename": "grib2io.tables.section4", "qualname": "table_4_0", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.0)', '1': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.1)', '2': 'Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time. (see Template 4.2)', '3': 'Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.3)', '4': 'Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.4)', '5': 'Probability forecasts at a horizontal level or in a horizontal layer at a point in time. (see Template 4.5)', '6': 'Percentile forecasts at a horizontal level or in a horizontal layer at a point in time. (see Template 4.6)', '7': 'Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time. (see Template 4.7)', '8': 'Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.8)', '9': 'Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.9)', '10': 'Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.10)', '11': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.11)', '12': 'Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.12)', '13': 'Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.13)', '14': 'Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.14)', '15': 'Average, accumulation, extreme values or other statistically-processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.15)', '16-19': 'Reserved', '20': 'Radar product (see Template 4.20)', '21-29': 'Reserved', '30': 'Satellite product (see Template 4.30) NOTE: This template is deprecated. Template 4.31 should be used instead.', '31': 'Satellite product (see Template 4.31)', '32': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulate (synthetic) satellite data (see Template 4.32)', '33': 'Individual Ensemble Forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data (see Template 4.33)', '34': 'Individual Ensemble Forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data(see Template 4.34)', '35': 'Satellite product with or without associated quality values (see Template 4.35)', '36-39': 'Reserved', '40': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents. (see Template 4.40)', '41': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents. (see Template 4.41)', '42': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents. (see Template 4.42)', '43': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for atmospheric chemical constituents. (see Template 4.43)', '44': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol. (see Template 4.44)', '45': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for aerosol. (see Template 4.45)', '46': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol. (see Template 4.46)', '47': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for aerosol. (see Template 4.47)', '48': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol. (see Template 4.48)', '49': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol. (see Template 4.49)', '50': 'Reserved', '51': 'Categorical forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.51)', '52': 'Reserved', '53': 'Partitioned parameters at a horizontal level or horizontal layer at a point in time. (see Template 4.53)', '54': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters. (see Template 4.54)', '55': 'Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time (see Template 4.55)', '56': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (DEPRECATED) (see Template 4.56)', '57': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function (see Template 4.57)', '58': 'Individual Ensemble Forecast, Control and Perturbed, at a horizontal level or in a horizontal layer at a point in time interval for Atmospheric Chemical Constituents based on a distribution function (see Template 4.58)', '59': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56 - See Template 4.59)', '60': 'Individual Ensemble Reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.60)', '61': 'Individual Ensemble Reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval (see Template 4.61)', '62': 'Average, Accumulation and/or Extreme values or other Statistically-processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time (see Template 4.62)', '63': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles (see Template 4.63)', '64-66': 'Reserved', '67': 'Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function (see Template 4.67)', '68': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function. (see Template 4.68)', '69': 'Reserved', '70': 'Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.70)', '71': 'Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.71)', '72': 'Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.72)', '73': 'Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.73)', '74-75': 'Reserved', '76': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink. (see Template 4.76)', '77': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink. (see Template 4.77)', '78': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink. (see Template 4.78)', '79': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink. (see Template 4.79)', '80': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink. (see Template 4.80)', '81': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink. (see Template 4.81)', '82': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink. (see Template 4.82)', '83': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink. (see Template 4.83)', '84': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink. (see Template 4.84)', '85': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol. (see Template 4.85)', '86': 'Quantile forecasts at a horizontal level or in a horizontal layer at a point in time. (see Template 4.86)', '87': 'Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.87)', '88': 'Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.88)', '89-90': 'Reserved', '91': 'Categorical forecast at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.91)', '92': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.92)', '93': 'Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.93)', '94': 'Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.94)', '95': 'Average, accumulation, extreme values or other statiscally processed value at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.95)', '96': 'Average, accumulation, extreme values or other statistically processed values of an individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.96)', '97': 'Average, accumulation, extreme values or other statistically processed values of post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.97)', '98': 'Average, accumulation, extreme values or other statistically processed values of a post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.98)', '99': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions (see Template 4.99)', '100': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions (see Template 4.100)', '101': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae (see Template 4.101)', '102': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae (see Template 4.102)', '103': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for waves selected by period range (see Template 4.103)', '104': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for waves selected by period range (see Template 4.104)', '105': 'Anomalies, significance and other derived products from an analysis or forecast in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.105)', '106': 'Anomalies, significance and other derived products from an individual ensemble forecast, control and perturbed in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.106)', '107': 'Anomalies, significance and other derived products from derived forecasts based on all ensemble members in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.107)', '108': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for generic optical products (see Template 4.108)', '109': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for generic optical products (see Template 4.109)', '110': 'Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for generic optical products (see Template 4.110)', '111': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for generic optical products (see Template 4.111)', '112': 'Anomalies, significance and other derived products as probability forecasts in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.112)', '113-253': 'Reserved', '254': 'CCITT IA5 character string (see Template 4.254)', '255-999': 'Reserved', '1000': 'Cross-section of analysis and forecast at a point in time. (see Template 4.1000)', '1001': 'Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time. (see Template 4.1001)', '1002': 'Cross-section of analysis and forecast, averaged or otherwise statistically-processed over latitude or longitude. (see Template 4.1002)', '1003-1099': 'Reserved', '1100': 'Hovmoller-type grid with no averaging or other statistical processing (see Template 4.1100)', '1101': 'Hovmoller-type grid with averaging or other statistical processing (see Template 4.1101)', '1102-32767': 'Reserved', '32768-65534': 'Reserved for Local Use', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_3", "modulename": "grib2io.tables.section4", "qualname": "table_4_3", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Analysis', '1': 'Initialization', '2': 'Forecast', '3': 'Bias Corrected Forecast', '4': 'Ensemble Forecast', '5': 'Probability Forecast', '6': 'Forecast Error', '7': 'Analysis Error', '8': 'Observation', '9': 'Climatological', '10': 'Probability-Weighted Forecast', '11': 'Bias-Corrected Ensemble Forecast', '12': 'Post-processed Analysis (See Note)', '13': 'Post-processed Forecast (See Note)', '14': 'Nowcast', '15': 'Hindcast', '16': 'Physical Retrieval', '17': 'Regression Analysis', '18': 'Difference Between Two Forecasts', '19': 'First guess', '20': 'Analysis increment', '21': 'Initialization increment for analysis', '22-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Forecast Confidence Indicator', '193': 'Probability-matched Mean', '194': 'Neighborhood Probability', '195': 'Bias-Corrected and Downscaled Ensemble Forecast', '196': 'Perturbed Analysis for Ensemble Initialization', '197': 'Ensemble Agreement Scale Probability', '198': 'Post-Processed Deterministic-Expert-Weighted Forecast', '199': 'Ensemble Forecast Based on Counting', '200': 'Local Probability-matched Mean', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_4", "modulename": "grib2io.tables.section4", "qualname": "table_4_4", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Minute', '1': 'Hour', '2': 'Day', '3': 'Month', '4': 'Year', '5': 'Decade (10 Years)', '6': 'Normal (30 Years)', '7': 'Century (100 Years)', '8': 'Reserved', '9': 'Reserved', '10': '3 Hours', '11': '6 Hours', '12': '12 Hours', '13': 'Second', '14-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_5", "modulename": "grib2io.tables.section4", "qualname": "table_4_5", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Reserved', 'unknown'], '1': ['Ground or Water Surface', 'unknown'], '2': ['Cloud Base Level', 'unknown'], '3': ['Level of Cloud Tops', 'unknown'], '4': ['Level of 0o C Isotherm', 'unknown'], '5': ['Level of Adiabatic Condensation Lifted from the Surface', 'unknown'], '6': ['Maximum Wind Level', 'unknown'], '7': ['Tropopause', 'unknown'], '8': ['Nominal Top of the Atmosphere', 'unknown'], '9': ['Sea Bottom', 'unknown'], '10': ['Entire Atmosphere', 'unknown'], '11': ['Cumulonimbus Base (CB)', 'm'], '12': ['Cumulonimbus Top (CT)', 'm'], '13': ['Lowest level where vertically integrated cloud cover exceeds the specified percentage (cloud base for a given percentage cloud cover)', '%'], '14': ['Level of free convection (LFC)', 'unknown'], '15': ['Convection condensation level (CCL)', 'unknown'], '16': ['Level of neutral buoyancy or equilibrium (LNB)', 'unknown'], '17': ['Departure level of the most unstable parcel of air (MUDL)', 'unknown'], '18': ['Departure level of a mixed layer parcel of air with specified layer depth', 'Pa'], '19': ['Reserved', 'unknown'], '20': ['Isothermal Level', 'K'], '21': ['Lowest level where mass density exceeds the specified value (base for a given threshold of mass density)', 'kg m-3'], '22': ['Highest level where mass density exceeds the specified value (top for a given threshold of mass density)', 'kg m-3'], '23': ['Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration', 'Bq m-3'], '24': ['Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration)', 'Bq m-3'], '25': ['Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity)', 'dBZ'], '26': ['Convective cloud layer base', 'm'], '27': ['Convective cloud layer top', 'm'], '28-29': ['Reserved', 'unknown'], '30': ['Specified radius from the centre of the Sun', 'm'], '31': ['Solar photosphere', 'unknown'], '32': ['Ionospheric D-region level', 'unknown'], '33': ['Ionospheric E-region level', 'unknown'], '34': ['Ionospheric F1-region level', 'unknown'], '35': ['Ionospheric F2-region level', 'unknown'], '36-99': ['Reserved', 'unknown'], '100': ['Isobaric Surface', 'Pa'], '101': ['Mean Sea Level', 'unknown'], '102': ['Specific Altitude Above Mean Sea Level', 'm'], '103': ['Specified Height Level Above Ground', 'm'], '104': ['Sigma Level', 'unknown'], '105': ['Hybrid Level', 'unknown'], '106': ['Depth Below Land Surface', 'm'], '107': ['Isentropic (theta) Level', 'K'], '108': ['Level at Specified Pressure Difference from Ground to Level', 'Pa'], '109': ['Potential Vorticity Surface', 'K m2 kg-1 s-1'], '110': ['Reserved', 'unknown'], '111': ['Eta Level', 'unknown'], '112': ['Reserved', 'unknown'], '113': ['Logarithmic Hybrid Level', 'unknown'], '114': ['Snow Level', 'Numeric'], '115': ['Sigma height level', 'unknown'], '116': ['Reserved', 'unknown'], '117': ['Mixed Layer Depth', 'm'], '118': ['Hybrid Height Level', 'unknown'], '119': ['Hybrid Pressure Level', 'unknown'], '120-149': ['Reserved', 'unknown'], '150': ['Generalized Vertical Height Coordinate', 'unknown'], '151': ['Soil level', 'Numeric'], '152': ['Sea-ice level,(see Note 8)', 'Numeric'], '153-159': ['Reserved', 'unknown'], '160': ['Depth Below Sea Level', 'm'], '161': ['Depth Below Water Surface', 'm'], '162': ['Lake or River Bottom', 'unknown'], '163': ['Bottom Of Sediment Layer', 'unknown'], '164': ['Bottom Of Thermally Active Sediment Layer', 'unknown'], '165': ['Bottom Of Sediment Layer Penetrated By Thermal Wave', 'unknown'], '166': ['Mixing Layer', 'unknown'], '167': ['Bottom of Root Zone', 'unknown'], '168': ['Ocean Model Level', 'Numeric'], '169': ['Ocean level defined by water density (sigma-theta) difference from near-surface to level', 'kg m-3'], '170': ['Ocean level defined by water potential temperature difference from near-surface to level', 'K'], '171': ['Ocean level defined by vertical eddy diffusivity difference from near-surface to level', 'm2 s-1'], '172': ['Ocean level defined by water density (rho) difference from near-surface to level (*Tentatively accepted)', 'kg m-3'], '173': ['Top of Snow Over Sea Ice on Sea, Lake or River', 'unknown'], '174': ['Top Surface of Ice on Sea, Lake or River', 'unknown'], '175': ['Top Surface of Ice, under Snow, on Sea, Lake or River', 'unknown'], '176': ['Bottom Surface (underside) Ice on Sea, Lake or River', 'unknown'], '177': ['Deep Soil (of indefinite depth)', 'unknown'], '178': ['Reserved', 'unknown'], '179': ['Top Surface of Glacier Ice and Inland Ice', 'unknown'], '180': ['Deep Inland or Glacier Ice (of indefinite depth)', 'unknown'], '181': ['Grid Tile Land Fraction as a Model Surface', 'unknown'], '182': ['Grid Tile Water Fraction as a Model Surface', 'unknown'], '183': ['Grid Tile Ice Fraction on Sea, Lake or River as a Model Surface', 'unknown'], '184': ['Grid Tile Glacier Ice and Inland Ice Fraction as a Model Surface', 'unknown'], '185': ['Roof Level', 'unknown'], '186': ['Wall level', 'unknown'], '187': ['Road Level', 'unknown'], '188': ['Melt pond Top Surface', 'unknown'], '189': ['Melt Pond Bottom Surface', 'unknown'], '190-191': ['Reserved', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown'], '200': ['Entire atmosphere (considered as a single layer)', 'unknown'], '201': ['Entire ocean (considered as a single layer)', 'unknown'], '204': ['Highest tropospheric freezing level', 'unknown'], '206': ['Grid scale cloud bottom level', 'unknown'], '207': ['Grid scale cloud top level', 'unknown'], '209': ['Boundary layer cloud bottom level', 'unknown'], '210': ['Boundary layer cloud top level', 'unknown'], '211': ['Boundary layer cloud layer', 'unknown'], '212': ['Low cloud bottom level', 'unknown'], '213': ['Low cloud top level', 'unknown'], '214': ['Low cloud layer', 'unknown'], '215': ['Cloud ceiling', 'unknown'], '216': ['Effective Layer Top Level', 'm'], '217': ['Effective Layer Bottom Level', 'm'], '218': ['Effective Layer', 'm'], '220': ['Planetary Boundary Layer', 'unknown'], '221': ['Layer Between Two Hybrid Levels', 'unknown'], '222': ['Middle cloud bottom level', 'unknown'], '223': ['Middle cloud top level', 'unknown'], '224': ['Middle cloud layer', 'unknown'], '232': ['High cloud bottom level', 'unknown'], '233': ['High cloud top level', 'unknown'], '234': ['High cloud layer', 'unknown'], '235': ['Ocean Isotherm Level (1/10 \u00b0 C)', 'unknown'], '236': ['Layer between two depths below ocean surface', 'unknown'], '237': ['Bottom of Ocean Mixed Layer (m)', 'unknown'], '238': ['Bottom of Ocean Isothermal Layer (m)', 'unknown'], '239': ['Layer Ocean Surface and 26C Ocean Isothermal Level', 'unknown'], '240': ['Ocean Mixed Layer', 'unknown'], '241': ['Ordered Sequence of Data', 'unknown'], '242': ['Convective cloud bottom level', 'unknown'], '243': ['Convective cloud top level', 'unknown'], '244': ['Convective cloud layer', 'unknown'], '245': ['Lowest level of the wet bulb zero', 'unknown'], '246': ['Maximum equivalent potential temperature level', 'unknown'], '247': ['Equilibrium level', 'unknown'], '248': ['Shallow convective cloud bottom level', 'unknown'], '249': ['Shallow convective cloud top level', 'unknown'], '251': ['Deep convective cloud bottom level', 'unknown'], '252': ['Deep convective cloud top level', 'unknown'], '253': ['Lowest bottom level of supercooled liquid water layer', 'unknown'], '254': ['Highest top level of supercooled liquid water layer', 'unknown'], '255': ['Missing', 'unknown']}"}, {"fullname": "grib2io.tables.section4.table_4_6", "modulename": "grib2io.tables.section4", "qualname": "table_4_6", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Unperturbed High-Resolution Control Forecast', '1': 'Unperturbed Low-Resolution Control Forecast', '2': 'Negatively Perturbed Forecast', '3': 'Positively Perturbed Forecast', '4': 'Multi-Model Forecast', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Perturbed Ensemble Member', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_7", "modulename": "grib2io.tables.section4", "qualname": "table_4_7", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Unweighted Mean of All Members', '1': 'Weighted Mean of All Members', '2': 'Standard Deviation with respect to Cluster Mean', '3': 'Standard Deviation with respect to Cluster Mean, Normalized', '4': 'Spread of All Members', '5': 'Large Anomaly Index of All Members', '6': 'Unweighted Mean of the Cluster Members', '7': 'Interquartile Range (Range between the 25th and 75th quantile)', '8': 'Minimum Of All Ensemble Members', '9': 'Maximum Of All Ensemble Members', '10-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Unweighted Mode of All Members', '193': 'Percentile value (10%) of All Members', '194': 'Percentile value (50%) of All Members', '195': 'Percentile value (90%) of All Members', '196': 'Statistically decided weights for each ensemble member', '197': 'Climate Percentile (percentile values from climate distribution)', '198': 'Deviation of Ensemble Mean from Daily Climatology', '199': 'Extreme Forecast Index', '200': 'Equally Weighted Mean', '201': 'Percentile value (5%) of All Members', '202': 'Percentile value (25%) of All Members', '203': 'Percentile value (75%) of All Members', '204': 'Percentile value (95%) of All Members', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_8", "modulename": "grib2io.tables.section4", "qualname": "table_4_8", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Anomoly Correlation', '1': 'Root Mean Square', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_9", "modulename": "grib2io.tables.section4", "qualname": "table_4_9", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Probability of event below lower limit', '1': 'Probability of event above upper limit', '2': 'Probability of event between upper and lower limits (the range includes lower limit but no the upper limit)', '3': 'Probability of event above lower limit', '4': 'Probability of event below upper limit', '5': 'Probability of event equal to lower limit', '6': 'Probability of event in above normal category (see Notes 1 and 2)', '9-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_10", "modulename": "grib2io.tables.section4", "qualname": "table_4_10", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Average', '1': 'Accumulation', '2': 'Maximum', '3': 'Minimum', '4': 'Difference (value at the end of the time range minus value at the beginning)', '5': 'Root Mean Square', '6': 'Standard Deviation', '7': 'Covariance (temporal variance)', '8': 'Difference ( value at the beginning of the time range minus value at the end)', '9': 'Ratio', '10': 'Standardized Anomaly', '11': 'Summation', '12': 'Return period', '13-99': 'Reserved', '100': 'Severity', '101': 'Mode', '102-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Climatological Mean Value: multiple year averages of quantities which are themselves means over some period of time (P2) less than a year. The reference time (R) indicates the date and time of the start of a period of time, given by R to R + P2, over which a mean is formed; N indicates the number of such period-means that are averaged together to form the climatological value, assuming that the N period-mean fields are separated by one year. The reference time indicates the start of the N-year climatology. N is given in octets 22-23 of the PDS. If P1 = 0 then the data averaged in the basic interval P2 are assumed to be continuous, i.e., all available data are simply averaged together. If P1 = 1 (the units of time - octet 18, code table 4 - are not relevant here) then the data averaged together in the basic interval P2 are valid only at the time (hour, minute) given in the reference time, for all the days included in the P2 period. The units of P2 are given by the contents of octet 18 and Table 4.', '193': 'Average of N forecasts (or initialized analyses); each product has forecast period of P1 (P1=0 for initialized analyses); products have reference times at intervals of P2, beginning at the given reference time.', '194': 'Average of N uninitialized analyses, starting at reference time, at intervals of P2.', '195': 'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 24-hour intervals. Number in Ave = number of forecasts used.', '196': 'Average of successive forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at (P2 - P1) intervals. Number in Ave = number of forecasts used', '197': 'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 24-hour intervals. Number in Ave = number of forecast used', '198': 'Average of successive forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at (P2 - P1) intervals. Number in Ave = number of forecasts used', '199': 'Climatological Average of N analyses, each a year apart, starting from initial time R and for the period from R+P1 to R+P2.', '200': 'Climatological Average of N forecasts, each a year apart, starting from initial time R and for the period from R+P1 to R+P2.', '201': 'Climatological Root Mean Square difference between N forecasts and their verifying analyses, each a year apart, starting with initial time R and for the period from R+P1 to R+P2.', '202': 'Climatological Standard Deviation of N forecasts from the mean of the same N forecasts, for forecasts one year apart. The first forecast starts wtih initial time R and is for the period from R+P1 to R+P2.', '203': 'Climatological Standard Deviation of N analyses from the mean of the same N analyses, for analyses one year apart. The first analyses is valid for period R+P1 to R+P2.', '204': 'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 6-hour intervals. Number in Ave = number of forecast used', '205': 'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 6-hour intervals. Number in Ave = number of forecast used', '206': 'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 12-hour intervals. Number in Ave = number of forecast used', '207': 'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 12-hour intervals. Number in Ave = number of forecast used', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_11", "modulename": "grib2io.tables.section4", "qualname": "table_4_11", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Successive times processed have same forecast time, start time of forecast is incremented.', '2': 'Successive times processed have same start time of forecast, forecast time is incremented.', '3': 'Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant.', '4': 'Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant.', '5': 'Floating subinterval of time between forecast time and end of overall time interval.(see Note 1)', '6-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_12", "modulename": "grib2io.tables.section4", "qualname": "table_4_12", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Mainteunknownce Mode', '1': 'Clear Air', '2': 'Precipitation', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_13", "modulename": "grib2io.tables.section4", "qualname": "table_4_13", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No Quality Control Applied', '1': 'Quality Control Applied', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_14", "modulename": "grib2io.tables.section4", "qualname": "table_4_14", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No Clutter Filter Used', '1': 'Clutter Filter Used', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_15", "modulename": "grib2io.tables.section4", "qualname": "table_4_15", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Data is calculated directly from the source grid with no interpolation', '1': 'Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '2': 'Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '3': 'Using the value from the source grid grid-point which is nearest to the nominal grid-point', '4': 'Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '5': 'Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '6': 'Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '7-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_91", "modulename": "grib2io.tables.section4", "qualname": "table_4_91", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Smaller than first limit', '1': 'Greater than second limit', '2': 'Between first and second limit. The range includes the first limit but not the second limit.', '3': 'Greater than first limit', '4': 'Smaller than second limit', '5': 'Smaller or equal first limit', '6': 'Greater or equal second limit', '7': 'Between first and second limit. The range includes the first limit and the second limit.', '8': 'Greater or equal first limit', '9': 'Smaller or equal second limit', '10': 'Between first and second limit. The range includes the second limit but not the first limit.', '11': 'Equal to first limit', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_201", "modulename": "grib2io.tables.section4", "qualname": "table_4_201", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Rain', '2': 'Thunderstorm', '3': 'Freezing Rain', '4': 'Mixed/Ice', '5': 'Snow', '6': 'Wet Snow', '7': 'Mixture of Rain and Snow', '8': 'Ice Pellets', '9': 'Graupel', '10': 'Hail', '11': 'Drizzle', '12': 'Freezing Drizzle', '13-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_202", "modulename": "grib2io.tables.section4", "qualname": "table_4_202", "kind": "variable", "doc": "\n", "default_value": "{'0-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_203", "modulename": "grib2io.tables.section4", "qualname": "table_4_203", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Clear', '1': 'Cumulonimbus', '2': 'Stratus', '3': 'Stratocumulus', '4': 'Cumulus', '5': 'Altostratus', '6': 'Nimbostratus', '7': 'Altocumulus', '8': 'Cirrostratus', '9': 'Cirrorcumulus', '10': 'Cirrus', '11': 'Cumulonimbus - ground-based fog beneath the lowest layer', '12': 'Stratus - ground-based fog beneath the lowest layer', '13': 'Stratocumulus - ground-based fog beneath the lowest layer', '14': 'Cumulus - ground-based fog beneath the lowest layer', '15': 'Altostratus - ground-based fog beneath the lowest layer', '16': 'Nimbostratus - ground-based fog beneath the lowest layer', '17': 'Altocumulus - ground-based fog beneath the lowest layer', '18': 'Cirrostratus - ground-based fog beneath the lowest layer', '19': 'Cirrorcumulus - ground-based fog beneath the lowest layer', '20': 'Cirrus - ground-based fog beneath the lowest layer', '21-190': 'Reserved', '191': 'Unknown', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_204", "modulename": "grib2io.tables.section4", "qualname": "table_4_204", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Isolated (1-2%)', '2': 'Few (3-5%)', '3': 'Scattered (16-45%)', '4': 'Numerous (>45%)', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_205", "modulename": "grib2io.tables.section4", "qualname": "table_4_205", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Aerosol not present', '1': 'Aerosol present', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_206", "modulename": "grib2io.tables.section4", "qualname": "table_4_206", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Not Present', '1': 'Present', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_207", "modulename": "grib2io.tables.section4", "qualname": "table_4_207", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Light', '2': 'Moderate', '3': 'Severe', '4': 'Trace', '5': 'Heavy', '6-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_208", "modulename": "grib2io.tables.section4", "qualname": "table_4_208", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Light', '2': 'Moderate', '3': 'Severe', '4': 'Extreme', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_209", "modulename": "grib2io.tables.section4", "qualname": "table_4_209", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Stable', '2': 'Mechanically-Driven Turbulence', '3': 'Force Convection', '4': 'Free Convection', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_210", "modulename": "grib2io.tables.section4", "qualname": "table_4_210", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Contrail Not Present', '1': 'Contrail Present', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_211", "modulename": "grib2io.tables.section4", "qualname": "table_4_211", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Low Bypass', '1': 'High Bypass', '2': 'Non-Bypass', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_212", "modulename": "grib2io.tables.section4", "qualname": "table_4_212", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Urban Land', '2': 'Agricultural', '3': 'Range Land', '4': 'Deciduous Forest', '5': 'Coniferous Forest', '6': 'Forest/Wetland', '7': 'Water', '8': 'Wetlands', '9': 'Desert', '10': 'Tundra', '11': 'Ice', '12': 'Tropical Forest', '13': 'Savannah', '14-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_213", "modulename": "grib2io.tables.section4", "qualname": "table_4_213", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Sand', '2': 'Loamy Sand', '3': 'Sandy Loam', '4': 'Silt Loam', '5': 'Organic', '6': 'Sandy Clay Loam', '7': 'Silt Clay Loam', '8': 'Clay Loam', '9': 'Sandy Clay', '10': 'Silty Clay', '11': 'Clay', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_215", "modulename": "grib2io.tables.section4", "qualname": "table_4_215", "kind": "variable", "doc": "\n", "default_value": "{'0-49': 'Reserved', '50': 'No-Snow/No-Cloud', '51-99': 'Reserved', '100': 'Clouds', '101-249': 'Reserved', '250': 'Snow', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_216", "modulename": "grib2io.tables.section4", "qualname": "table_4_216", "kind": "variable", "doc": "\n", "default_value": "{'0-90': 'Elevation in increments of 100 m', '91-253': 'Reserved', '254': 'Clouds', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_217", "modulename": "grib2io.tables.section4", "qualname": "table_4_217", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Clear over water', '1': 'Clear over land', '2': 'Cloud', '3': 'No data', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_218", "modulename": "grib2io.tables.section4", "qualname": "table_4_218", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No Scene Identified', '1': 'Green Needle-Leafed Forest', '2': 'Green Broad-Leafed Forest', '3': 'Deciduous Needle-Leafed Forest', '4': 'Deciduous Broad-Leafed Forest', '5': 'Deciduous Mixed Forest', '6': 'Closed Shrub-Land', '7': 'Open Shrub-Land', '8': 'Woody Savannah', '9': 'Savannah', '10': 'Grassland', '11': 'Permanent Wetland', '12': 'Cropland', '13': 'Urban', '14': 'Vegetation / Crops', '15': 'Permanent Snow / Ice', '16': 'Barren Desert', '17': 'Water Bodies', '18': 'Tundra', '19': 'Warm Liquid Water Cloud', '20': 'Supercooled Liquid Water Cloud', '21': 'Mixed Phase Cloud', '22': 'Optically Thin Ice Cloud', '23': 'Optically Thick Ice Cloud', '24': 'Multi-Layeblack Cloud', '25-96': 'Reserved', '97': 'Snow / Ice on Land', '98': 'Snow / Ice on Water', '99': 'Sun-Glint', '100': 'General Cloud', '101': 'Low Cloud / Fog / Stratus', '102': 'Low Cloud / Stratocumulus', '103': 'Low Cloud / Unknown Type', '104': 'Medium Cloud / Nimbostratus', '105': 'Medium Cloud / Altostratus', '106': 'Medium Cloud / Unknown Type', '107': 'High Cloud / Cumulus', '108': 'High Cloud / Cirrus', '109': 'High Cloud / Unknown Type', '110': 'Unknown Cloud Type', '111': 'Single layer water cloud', '112': 'Single layer ice cloud', '113-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_222", "modulename": "grib2io.tables.section4", "qualname": "table_4_222", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No', '1': 'Yes', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_223", "modulename": "grib2io.tables.section4", "qualname": "table_4_223", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No Fire Detected', '1': 'Possible Fire Detected', '2': 'Probable Fire Detected', '3': 'Missing', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_224", "modulename": "grib2io.tables.section4", "qualname": "table_4_224", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No Risk Area', '1': 'Reserved', '2': 'General Thunderstorm Risk Area', '3': 'Reserved', '4': 'Slight Risk Area', '5': 'Reserved', '6': 'Moderate Risk Area', '7': 'Reserved', '8': 'High Risk Area', '9-10': 'Reserved', '11': 'Dry Thunderstorm (Dry Lightning) Risk Area', '12-13': 'Reserved', '14': 'Critical Risk Area', '15-17': 'Reserved', '18': 'Extreamly Critical Risk Area', '19-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_227", "modulename": "grib2io.tables.section4", "qualname": "table_4_227", "kind": "variable", "doc": "\n", "default_value": "{'1': 'General', '2': 'Convective', '3': 'Stratiform', '4': 'Freezing', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_228", "modulename": "grib2io.tables.section4", "qualname": "table_4_228", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Trace', '2': 'Light', '3': 'Moderate', '4': 'Severe', '6-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_233", "modulename": "grib2io.tables.section4", "qualname": "table_4_233", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Ozone', 'O3'], '1': ['Water Vapour', 'H2O'], '2': ['Methane', 'CH4'], '3': ['Carbon Dioxide', 'CO2'], '4': ['Carbon Monoxide', 'CO'], '5': ['Nitrogen Dioxide', 'NO2'], '6': ['Nitrous Oxide', 'N2O'], '7': ['Formaldehyde', 'HCHO'], '8': ['Sulphur Dioxide', 'SO2'], '9': ['Ammonia', 'NH3'], '10': ['Ammonium', 'NH4+'], '11': ['Nitrogen Monoxide', 'NO'], '12': ['Atomic Oxygen', 'O'], '13': ['Nitrate Radical', 'NO3'], '14': ['Hydroperoxyl Radical', 'HO2'], '15': ['Dinitrogen Pentoxide', 'H2O5'], '16': ['Nitrous Acid', 'HONO'], '17': ['Nitric Acid', 'HNO3'], '18': ['Peroxynitric Acid', 'HO2NO2'], '19': ['Hydrogen Peroxide', 'H2O2'], '20': ['Molecular Hydrogen', 'H'], '21': ['Atomic Nitrogen', 'N'], '22': ['Sulphate', 'SO42-'], '23': ['Radon', 'Rn'], '24': ['Elemental Mercury', 'Hg(O)'], '25': ['Divalent Mercury', 'Hg2+'], '26': ['Atomic Chlorine', 'Cl'], '27': ['Chlorine Monoxide', 'ClO'], '28': ['Dichlorine Peroxide', 'Cl2O2'], '29': ['Hypochlorous Acid', 'HClO'], '30': ['Chlorine Nitrate', 'ClONO2'], '31': ['Chlorine Dioxide', 'ClO2'], '32': ['Atomic Bromide', 'Br'], '33': ['Bromine Monoxide', 'BrO'], '34': ['Bromine Chloride', 'BrCl'], '35': ['Hydrogen Bromide', 'HBr'], '36': ['Hypobromous Acid', 'HBrO'], '37': ['Bromine Nitrate', 'BrONO2'], '38': ['Oxygen', 'O2'], '39-9999': ['Reserved', 'unknown'], '10000': ['Hydroxyl Radical', 'OH'], '10001': ['Methyl Peroxy Radical', 'CH3O2'], '10002': ['Methyl Hydroperoxide', 'CH3O2H'], '10003': ['Reserved', 'unknown'], '10004': ['Methanol', 'CH3OH'], '10005': ['Formic Acid', 'CH3OOH'], '10006': ['Hydrogen Cyanide', 'HCN'], '10007': ['Aceto Nitrile', 'CH3CN'], '10008': ['Ethane', 'C2H6'], '10009': ['Ethene (= Ethylene)', 'C2H4'], '10010': ['Ethyne (= Acetylene)', 'C2H2'], '10011': ['Ethanol', 'C2H5OH'], '10012': ['Acetic Acid', 'C2H5OOH'], '10013': ['Peroxyacetyl Nitrate', 'CH3C(O)OONO2'], '10014': ['Propane', 'C3H8'], '10015': ['Propene', 'C3H6'], '10016': ['Butanes', 'C4H10'], '10017': ['Isoprene', 'C5H10'], '10018': ['Alpha Pinene', 'C10H16'], '10019': ['Beta Pinene', 'C10H16'], '10020': ['Limonene', 'C10H16'], '10021': ['Benzene', 'C6H6'], '10022': ['Toluene', 'C7H8'], '10023': ['Xylene', 'C8H10'], '10024-10499': ['Reserved', 'unknown'], '10500': ['Dimethyl Sulphide', 'CH3SCH3'], '10501-20000': ['Reserved', 'unknown'], '20001': ['Hydrogen Chloride', 'HCL'], '20002': ['CFC-11', 'unknown'], '20003': ['CFC-12', 'unknown'], '20004': ['CFC-113', 'unknown'], '20005': ['CFC-113a', 'unknown'], '20006': ['CFC-114', 'unknown'], '20007': ['CFC-115', 'unknown'], '20008': ['HCFC-22', 'unknown'], '20009': ['HCFC-141b', 'unknown'], '20010': ['HCFC-142b', 'unknown'], '20011': ['Halon-1202', 'unknown'], '20012': ['Halon-1211', 'unknown'], '20013': ['Halon-1301', 'unknown'], '20014': ['Halon-2402', 'unknown'], '20015': ['Methyl Chloride (HCC-40)', 'unknown'], '20016': ['Carbon Tetrachloride (HCC-10)', 'unknown'], '20017': ['HCC-140a', 'CH3CCl3'], '20018': ['Methyl Bromide (HBC-40B1)', 'unknown'], '20019': ['Hexachlorocyclohexane (HCH)', 'unknown'], '20020': ['Alpha Hexachlorocyclohexane', 'unknown'], '20021': ['Hexachlorobiphenyl (PCB-153)', 'unknown'], '20022-29999': ['Reserved', 'unknown'], '30000': ['Radioactive Pollutant (Tracer, defined by originating centre)', 'unknown'], '30001-50000': ['Reserved', 'unknown'], '60000': ['HOx Radical (OH+HO2)', 'unknown'], '60001': ['Total Inorganic and Organic Peroxy Radicals (HO2+RO2)', 'RO2'], '60002': ['Passive Ozone', 'unknown'], '60003': ['NOx Expressed As Nitrogen', 'NOx'], '60004': ['All Nitrogen Oxides (NOy) Expressed As Nitrogen', 'NOy'], '60005': ['Total Inorganic Chlorine', 'Clx'], '60006': ['Total Inorganic Bromine', 'Brx'], '60007': ['Total Inorganic Chlorine Except HCl, ClONO2: ClOx', 'unknown'], '60008': ['Total Inorganic Bromine Except Hbr, BrONO2:BrOx', 'unknown'], '60009': ['Lumped Alkanes', 'unknown'], '60010': ['Lumped Alkenes', 'unknown'], '60011': ['Lumped Aromatic Coumpounds', 'unknown'], '60012': ['Lumped Terpenes', 'unknown'], '60013': ['Non-Methane Volatile Organic Compounds Expressed as Carbon', 'NMVOC'], '60014': ['Anthropogenic Non-Methane Volatile Organic Compounds Expressed as Carbon', 'aNMVOC'], '60015': ['Biogenic Non-Methane Volatile Organic Compounds Expressed as Carbon', 'bNMVOC'], '60016': ['Lumped Oxygenated Hydrocarbons', 'OVOC'], '60017-61999': ['Reserved', 'unknown'], '62000': ['Total Aerosol', 'unknown'], '62001': ['Dust Dry', 'unknown'], '62002': ['water In Ambient', 'unknown'], '62003': ['Ammonium Dry', 'unknown'], '62004': ['Nitrate Dry', 'unknown'], '62005': ['Nitric Acid Trihydrate', 'unknown'], '62006': ['Sulphate Dry', 'unknown'], '62007': ['Mercury Dry', 'unknown'], '62008': ['Sea Salt Dry', 'unknown'], '62009': ['Black Carbon Dry', 'unknown'], '62010': ['Particulate Organic Matter Dry', 'unknown'], '62011': ['Primary Particulate Organic Matter Dry', 'unknown'], '62012': ['Secondary Particulate Organic Matter Dry', 'unknown'], '62013': ['Black carbon hydrophilic dry', 'unknown'], '62014': ['Black carbon hydrophobic dry', 'unknown'], '62015': ['Particulate organic matter hydrophilic dry', 'unknown'], '62016': ['Particulate organic matter hydrophobic dry', 'unknown'], '62017': ['Nitrate hydrophilic dry', 'unknown'], '62018': ['Nitrate hydrophobic dry', 'unknown'], '62019': ['Reserved', 'unknown'], '62020': ['Smoke - high absorption', 'unknown'], '62021': ['Smoke - low absorption', 'unknown'], '62022': ['Aerosol - high absorption', 'unknown'], '62023': ['Aerosol - low absorption', 'unknown'], '62024': ['Reserved', 'unknown'], '62025': ['Volcanic ash', 'unknown'], '62036': ['Brown Carbon Dry', 'unknown'], '62037-65534': ['Reserved', 'unknown'], '65535': ['Missing', 'unknown']}"}, {"fullname": "grib2io.tables.section4.table_4_234", "modulename": "grib2io.tables.section4", "qualname": "table_4_234", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Crops, mixed farming', '2': 'Short grass', '3': 'Evergreen needleleaf trees', '4': 'Deciduous needleleaf trees', '5': 'Deciduous broadleaf trees', '6': 'Evergreen broadleaf trees', '7': 'Tall grass', '8': 'Desert', '9': 'Tundra', '10': 'Irrigated corps', '11': 'Semidesert', '12': 'Ice caps and glaciers', '13': 'Bogs and marshes', '14': 'Inland water', '15': 'Ocean', '16': 'Evergreen shrubs', '17': 'Deciduous shrubs', '18': 'Mixed forest', '19': 'Interrupted forest', '20': 'Water and land mixtures', '21-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_235", "modulename": "grib2io.tables.section4", "qualname": "table_4_235", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Total Wave Spectrum (combined wind waves and swell)', '1': 'Generalized Partition', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_236", "modulename": "grib2io.tables.section4", "qualname": "table_4_236", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Coarse', '2': 'Medium', '3': 'Medium-fine', '4': 'Fine', '5': 'Very-fine', '6': 'Organic', '7': 'Tropical-organic', '8-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_238", "modulename": "grib2io.tables.section4", "qualname": "table_4_238", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Aviation', '2': 'Lightning', '3': 'Biogenic Sources', '4': 'Anthropogenic sources', '5': 'Wild fires', '6': 'Natural sources', '7': 'Bio-fuel', '8': 'Volcanoes', '9': 'Fossil-fuel', '10': 'Wetlands', '11': 'Oceans', '12': 'Elevated anthropogenic sources', '13': 'Surface anthropogenic sources', '14': 'Agriculture livestock', '15': 'Agriculture soils', '16': 'Agriculture waste burning', '17': 'Agriculture (all)', '18': 'Residential, commercial and other combustion', '19': 'Power generation', '20': 'Super power stations', '21': 'Fugitives', '22': 'Industrial process', '23': 'Solvents', '24': 'Ships', '25': 'Wastes', '26': 'Road transportation', '27': 'Off-road transportation', '28-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_239", "modulename": "grib2io.tables.section4", "qualname": "table_4_239", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Bog', '2': 'Drained', '3': 'Fen', '4': 'Floodplain', '5': 'Mangrove', '6': 'Marsh', '7': 'Rice', '8': 'Riverine', '9': 'Salt Marsh', '10': 'Swamp', '11': 'Upland', '12': 'Wet tundra', '13-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_243", "modulename": "grib2io.tables.section4", "qualname": "table_4_243", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Evergreen broadleaved forest', '2': 'Deciduous broadleaved closed forest', '3': 'Deciduous broadleaved open forest', '4': 'Evergreen needle-leaf forest', '5': 'Deciduous needle-leaf forest', '6': 'Mixed leaf trees', '7': 'Fresh water flooded trees', '8': 'Saline water flooded trees', '9': 'Mosaic tree/natural vegetation', '10': 'Burnt tree cover', '11': 'Evergreen shurbs closed-open', '12': 'Deciduous shurbs closed-open', '13': 'Herbaceous vegetation closed-open', '14': 'Sparse herbaceous or grass', '15': 'Flooded shurbs or herbaceous', '16': 'Cultivated and managed areas', '17': 'Mosaic crop/tree/natural vegetation', '18': 'Mosaic crop/shrub/grass', '19': 'Bare areas', '20': 'Water', '21': 'Snow and ice', '22': 'Artificial surface', '23': 'Ocean', '24': 'Irrigated croplands', '25': 'Rain fed croplands', '26': 'Mosaic cropland (50-70%)-vegetation (20-50%)', '27': 'Mosaic vegetation (50-70%)-cropland (20-50%)', '28': 'Closed broadleaved evergreen forest', '29': 'Closed needle-leaved evergreen forest', '30': 'Open needle-leaved deciduous forest', '31': 'Mixed broadleaved and needle-leave forest', '32': 'Mosaic shrubland (50-70%)-grassland (20-50%)', '33': 'Mosaic grassland (50-70%)-shrubland (20-50%)', '34': 'Closed to open shrubland', '35': 'Sparse vegetation', '36': 'Closed to open forest regularly flooded', '37': 'Closed forest or shrubland permanently flooded', '38': 'Closed to open grassland regularly flooded', '39': 'Undefined', '40-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_244", "modulename": "grib2io.tables.section4", "qualname": "table_4_244", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No Quality Information Available', '1': 'Failed', '2': 'Passed', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_246", "modulename": "grib2io.tables.section4", "qualname": "table_4_246", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No thunderstorm occurrence', '1': 'Weak thunderstorm', '2': 'Moderate thunderstorm', '3': 'Severe thunderstorm', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_247", "modulename": "grib2io.tables.section4", "qualname": "table_4_247", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No precipitation occurrence', '1': 'Light precipitation', '2': 'Moderate precipitation', '3': 'Heavy precipitation', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_248", "modulename": "grib2io.tables.section4", "qualname": "table_4_248", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Nearest forecast or analysis time to specified local time', '1': 'Interpolated to be valid at the specified local time', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_249", "modulename": "grib2io.tables.section4", "qualname": "table_4_249", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Showers', '2': 'Intermittent', '3': 'Continuous', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_250", "modulename": "grib2io.tables.section4", "qualname": "table_4_250", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'South-West', '2': 'South', '3': 'South-East', '4': 'West', '5': 'No direction', '6': 'East', '7': 'North-West', '8': 'North', '9': 'North-East', '10-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_251", "modulename": "grib2io.tables.section4", "qualname": "table_4_251", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Undefined Sequence', '1': 'Geometric sequence,(see Note 1)', '2': 'Arithmetic sequence,(see Note 2)', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_scale_time_hours", "modulename": "grib2io.tables.section4", "qualname": "table_scale_time_hours", "kind": "variable", "doc": "\n", "default_value": "{'0': 60.0, '1': 1.0, '2': 0.041666666666666664, '3': 0.001388888888888889, '4': 0.00011415525114155251, '5': 1.1415525114155251e-05, '6': 3.80517503805175e-06, '7': 1.1415525114155251e-06, '8': 1.0, '9': 1.0, '10': 3.0, '11': 6.0, '12': 12.0, '13': 3600.0, '14-255': 1.0}"}, {"fullname": "grib2io.tables.section4.table_wgrib2_level_string", "modulename": "grib2io.tables.section4", "qualname": "table_wgrib2_level_string", "kind": "variable", "doc": "\n", "default_value": "{'0': ['reserved', 'reserved'], '1': ['surface', 'reserved'], '2': ['cloud base', 'reserved'], '3': ['cloud top', 'reserved'], '4': ['0C isotherm', 'reserved'], '5': ['level of adiabatic condensation from sfc', 'reserved'], '6': ['max wind', 'reserved'], '7': ['tropopause', 'reserved'], '8': ['top of atmosphere', 'reserved'], '9': ['sea bottom', 'reserved'], '10': ['entire atmosphere', 'reserved'], '11': ['cumulonimbus base', 'reserved'], '12': ['cumulonimbus top', 'reserved'], '13': ['lowest level %g%% integrated cloud cover', 'reserved'], '14': ['level of free convection', 'reserved'], '15': ['convection condensation level', 'reserved'], '16': ['level of neutral buoyancy', 'reserved'], '17': ['reserved', 'reserved'], '18': ['reserved', 'reserved'], '19': ['reserved', 'reserved'], '20': ['%g K level', 'reserved'], '21': ['lowest level > %g kg/m^3', 'reserved'], '22': ['highest level > %g kg/m^3', 'reserved'], '23': ['lowest level > %g Bq/m^3', 'reserved'], '24': ['highest level > %g Bg/m^3', 'reserved'], '25': ['reserved', 'reserved'], '26': ['reserved', 'reserved'], '27': ['reserved', 'reserved'], '28': ['reserved', 'reserved'], '29': ['reserved', 'reserved'], '30': ['reserved', 'reserved'], '31': ['reserved', 'reserved'], '32': ['reserved', 'reserved'], '33': ['reserved', 'reserved'], '34': ['reserved', 'reserved'], '35': ['reserved', 'reserved'], '36': ['reserved', 'reserved'], '37': ['reserved', 'reserved'], '38': ['reserved', 'reserved'], '39': ['reserved', 'reserved'], '40': ['reserved', 'reserved'], '41': ['reserved', 'reserved'], '42': ['reserved', 'reserved'], '43': ['reserved', 'reserved'], '44': ['reserved', 'reserved'], '45': ['reserved', 'reserved'], '46': ['reserved', 'reserved'], '47': ['reserved', 'reserved'], '48': ['reserved', 'reserved'], '49': ['reserved', 'reserved'], '50': ['reserved', 'reserved'], '51': ['reserved', 'reserved'], '52': ['reserved', 'reserved'], '53': ['reserved', 'reserved'], '54': ['reserved', 'reserved'], '55': ['reserved', 'reserved'], '56': ['reserved', 'reserved'], '57': ['reserved', 'reserved'], '58': ['reserved', 'reserved'], '59': ['reserved', 'reserved'], '60': ['reserved', 'reserved'], '61': ['reserved', 'reserved'], '62': ['reserved', 'reserved'], '63': ['reserved', 'reserved'], '64': ['reserved', 'reserved'], '65': ['reserved', 'reserved'], '66': ['reserved', 'reserved'], '67': ['reserved', 'reserved'], '68': ['reserved', 'reserved'], '69': ['reserved', 'reserved'], '70': ['reserved', 'reserved'], '71': ['reserved', 'reserved'], '72': ['reserved', 'reserved'], '73': ['reserved', 'reserved'], '74': ['reserved', 'reserved'], '75': ['reserved', 'reserved'], '76': ['reserved', 'reserved'], '77': ['reserved', 'reserved'], '78': ['reserved', 'reserved'], '79': ['reserved', 'reserved'], '80': ['reserved', 'reserved'], '81': ['reserved', 'reserved'], '82': ['reserved', 'reserved'], '83': ['reserved', 'reserved'], '84': ['reserved', 'reserved'], '85': ['reserved', 'reserved'], '86': ['reserved', 'reserved'], '87': ['reserved', 'reserved'], '88': ['reserved', 'reserved'], '89': ['reserved', 'reserved'], '90': ['reserved', 'reserved'], '91': ['reserved', 'reserved'], '92': ['reserved', 'reserved'], '93': ['reserved', 'reserved'], '94': ['reserved', 'reserved'], '95': ['reserved', 'reserved'], '96': ['reserved', 'reserved'], '97': ['reserved', 'reserved'], '98': ['reserved', 'reserved'], '99': ['reserved', 'reserved'], '100': ['%g mb', '%g-%g mb'], '101': ['mean sea level', 'reserved'], '102': ['%g m above mean sea level', '%g-%g m above mean sea level'], '103': ['%g m above ground', '%g-%g m above ground'], '104': ['%g sigma level', '%g-%g sigma layer'], '105': ['%g hybrid level', '%g-%g hybrid layer'], '106': ['%g m underground', '%g-%g m underground'], '107': ['%g K isentropic level', '%g-%g K isentropic layer'], '108': ['%g mb above ground', '%g-%g mb above ground'], '109': ['PV=%g (Km^2/kg/s) surface', 'reserved'], '110': ['reserved', 'reserved'], '111': ['%g Eta level', '%g-%g Eta layer'], '112': ['reserved', 'reserved'], '113': ['%g logarithmic hybrid level', 'reserved'], '114': ['snow level', 'reserved'], '115': ['%g sigma height level', '%g-%g sigma heigh layer'], '116': ['reserved', 'reserved'], '117': ['mixed layer depth', 'reserved'], '118': ['%g hybrid height level', '%g-%g hybrid height layer'], '119': ['%g hybrid pressure level', '%g-%g hybrid pressure layer'], '120': ['reserved', 'reserved'], '121': ['reserved', 'reserved'], '122': ['reserved', 'reserved'], '123': ['reserved', 'reserved'], '124': ['reserved', 'reserved'], '125': ['reserved', 'reserved'], '126': ['reserved', 'reserved'], '127': ['reserved', 'reserved'], '128': ['reserved', 'reserved'], '129': ['reserved', 'reserved'], '130': ['reserved', 'reserved'], '131': ['reserved', 'reserved'], '132': ['reserved', 'reserved'], '133': ['reserved', 'reserved'], '134': ['reserved', 'reserved'], '135': ['reserved', 'reserved'], '136': ['reserved', 'reserved'], '137': ['reserved', 'reserved'], '138': ['reserved', 'reserved'], '139': ['reserved', 'reserved'], '140': ['reserved', 'reserved'], '141': ['reserved', 'reserved'], '142': ['reserved', 'reserved'], '143': ['reserved', 'reserved'], '144': ['reserved', 'reserved'], '145': ['reserved', 'reserved'], '146': ['reserved', 'reserved'], '147': ['reserved', 'reserved'], '148': ['reserved', 'reserved'], '149': ['reserved', 'reserved'], '150': ['%g generalized vertical height coordinate', 'reserved'], '151': ['soil level %g', 'reserved'], '152': ['reserved', 'reserved'], '153': ['reserved', 'reserved'], '154': ['reserved', 'reserved'], '155': ['reserved', 'reserved'], '156': ['reserved', 'reserved'], '157': ['reserved', 'reserved'], '158': ['reserved', 'reserved'], '159': ['reserved', 'reserved'], '160': ['%g m below sea level', '%g-%g m below sea level'], '161': ['%g m below water surface', '%g-%g m ocean layer'], '162': ['lake or river bottom', 'reserved'], '163': ['bottom of sediment layer', 'reserved'], '164': ['bottom of thermally active sediment layer', 'reserved'], '165': ['bottom of sediment layer penetrated by thermal wave', 'reserved'], '166': ['maxing layer', 'reserved'], '167': ['bottom of root zone', 'reserved'], '168': ['reserved', 'reserved'], '169': ['reserved', 'reserved'], '170': ['reserved', 'reserved'], '171': ['reserved', 'reserved'], '172': ['reserved', 'reserved'], '173': ['reserved', 'reserved'], '174': ['top surface of ice on sea, lake or river', 'reserved'], '175': ['top surface of ice, und snow on sea, lake or river', 'reserved'], '176': ['bottom surface ice on sea, lake or river', 'reserved'], '177': ['deep soil', 'reserved'], '178': ['reserved', 'reserved'], '179': ['top surface of glacier ice and inland ice', 'reserved'], '180': ['deep inland or glacier ice', 'reserved'], '181': ['grid tile land fraction as a model surface', 'reserved'], '182': ['grid tile water fraction as a model surface', 'reserved'], '183': ['grid tile ice fraction on sea, lake or river as a model surface', 'reserved'], '184': ['grid tile glacier ice and inland ice fraction as a model surface', 'reserved'], '185': ['reserved', 'reserved'], '186': ['reserved', 'reserved'], '187': ['reserved', 'reserved'], '188': ['reserved', 'reserved'], '189': ['reserved', 'reserved'], '190': ['reserved', 'reserved'], '191': ['reserved', 'reserved'], '192': ['reserved', 'reserved'], '193': ['reserved', 'reserved'], '194': ['reserved', 'reserved'], '195': ['reserved', 'reserved'], '196': ['reserved', 'reserved'], '197': ['reserved', 'reserved'], '198': ['reserved', 'reserved'], '199': ['reserved', 'reserved'], '200': ['entire atmosphere (considered as a single layer)', 'reserved'], '201': ['entire ocean (considered as a single layer)', 'reserved'], '202': ['reserved', 'reserved'], '203': ['reserved', 'reserved'], '204': ['highest tropospheric freezing level', 'reserved'], '205': ['reserved', 'reserved'], '206': ['grid scale cloud bottom level', 'reserved'], '207': ['grid scale cloud top level', 'reserved'], '208': ['reserved', 'reserved'], '209': ['boundary layer cloud bottom level', 'reserved'], '210': ['boundary layer cloud top level', 'reserved'], '211': ['boundary layer cloud layer', 'reserved'], '212': ['low cloud bottom level', 'reserved'], '213': ['low cloud top level', 'reserved'], '214': ['low cloud layer', 'reserved'], '215': ['cloud ceiling', 'reserved'], '216': ['reserved', 'reserved'], '217': ['reserved', 'reserved'], '218': ['reserved', 'reserved'], '219': ['reserved', 'reserved'], '220': ['planetary boundary layer', 'reserved'], '221': ['layer between two hybrid levels', 'reserved'], '222': ['middle cloud bottom level', 'reserved'], '223': ['middle cloud top level', 'reserved'], '224': ['middle cloud layer', 'reserved'], '225': ['reserved', 'reserved'], '226': ['reserved', 'reserved'], '227': ['reserved', 'reserved'], '228': ['reserved', 'reserved'], '229': ['reserved', 'reserved'], '230': ['reserved', 'reserved'], '231': ['reserved', 'reserved'], '232': ['high cloud bottom level', 'reserved'], '233': ['high cloud top level', 'reserved'], '234': ['high cloud layer', 'reserved'], '235': ['%gC ocean isotherm', '%g-%gC ocean isotherm layer'], '236': ['layer between two depths below ocean surface', '%g-%g m ocean layer'], '237': ['bottom of ocean mixed layer', 'reserved'], '238': ['bottom of ocean isothermal layer', 'reserved'], '239': ['layer ocean surface and 26C ocean isothermal level', 'reserved'], '240': ['ocean mixed layer', 'reserved'], '241': ['%g in sequence', 'reserved'], '242': ['convective cloud bottom level', 'reserved'], '243': ['convective cloud top level', 'reserved'], '244': ['convective cloud layer', 'reserved'], '245': ['lowest level of the wet bulb zero', 'reserved'], '246': ['maximum equivalent potential temperature level', 'reserved'], '247': ['equilibrium level', 'reserved'], '248': ['shallow convective cloud bottom level', 'reserved'], '249': ['shallow convective cloud top level', 'reserved'], '250': ['reserved', 'reserved'], '251': ['deep convective cloud bottom level', 'reserved'], '252': ['deep convective cloud top level', 'reserved'], '253': ['lowest bottom level of supercooled liquid water layer', 'reserved'], '254': ['highest top level of supercooled liquid water layer', 'reserved'], '255': ['missing', 'reserved']}"}, {"fullname": "grib2io.tables.section4_discipline0", "modulename": "grib2io.tables.section4_discipline0", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_0", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_0", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Temperature', 'K', 'TMP'], '1': ['Virtual Temperature', 'K', 'VTMP'], '2': ['Potential Temperature', 'K', 'POT'], '3': ['Pseudo-Adiabatic Potential Temperature (or Equivalent Potential Temperature)', 'K', 'EPOT'], '4': ['Maximum Temperature', 'K', 'TMAX'], '5': ['Minimum Temperature', 'K', 'TMIN'], '6': ['Dew Point Temperature', 'K', 'DPT'], '7': ['Dew Point Depression (or Deficit)', 'K', 'DEPR'], '8': ['Lapse Rate', 'K m-1', 'LAPR'], '9': ['Temperature Anomaly', 'K', 'TMPA'], '10': ['Latent Heat Net Flux', 'W m-2', 'LHTFL'], '11': ['Sensible Heat Net Flux', 'W m-2', 'SHTFL'], '12': ['Heat Index', 'K', 'HEATX'], '13': ['Wind Chill Factor', 'K', 'WCF'], '14': ['Minimum Dew Point Depression', 'K', 'MINDPD'], '15': ['Virtual Potential Temperature', 'K', 'VPTMP'], '16': ['Snow Phase Change Heat Flux', 'W m-2', 'SNOHF'], '17': ['Skin Temperature', 'K', 'SKINT'], '18': ['Snow Temperature (top of snow)', 'K', 'SNOT'], '19': ['Turbulent Transfer Coefficient for Heat', 'Numeric', 'TTCHT'], '20': ['Turbulent Diffusion Coefficient for Heat', 'm2s-1', 'TDCHT'], '21': ['Apparent Temperature', 'K', 'APTMP'], '22': ['Temperature Tendency due to Short-Wave Radiation', 'K s-1', 'TTSWR'], '23': ['Temperature Tendency due to Long-Wave Radiation', 'K s-1', 'TTLWR'], '24': ['Temperature Tendency due to Short-Wave Radiation, Clear Sky', 'K s-1', 'TTSWRCS'], '25': ['Temperature Tendency due to Long-Wave Radiation, Clear Sky', 'K s-1', 'TTLWRCS'], '26': ['Temperature Tendency due to parameterizations', 'K s-1', 'TTPARM'], '27': ['Wet Bulb Temperature', 'K', 'WETBT'], '28': ['Unbalanced Component of Temperature', 'K', 'UCTMP'], '29': ['Temperature Advection', 'K s-1', 'TMPADV'], '30': ['Latent Heat Net Flux Due to Evaporation', 'W m-2', 'LHFLXE'], '31': ['Latent Heat Net Flux Due to Sublimation', 'W m-2', 'LHFLXS'], '32': ['Wet-Bulb Potential Temperature', 'K', 'WETBPT'], '33-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Snow Phase Change Heat Flux', 'W m-2', 'SNOHF'], '193': ['Temperature Tendency by All Radiation', 'K s-1', 'TTRAD'], '194': ['Relative Error Variance', 'unknown', 'REV'], '195': ['Large Scale Condensate Heating Rate', 'K s-1', 'LRGHR'], '196': ['Deep Convective Heating Rate', 'K s-1', 'CNVHR'], '197': ['Total Downward Heat Flux at Surface', 'W m-2', 'THFLX'], '198': ['Temperature Tendency by All Physics', 'K s-1', 'TTDIA'], '199': ['Temperature Tendency by Non-radiation Physics', 'K s-1', 'TTPHY'], '200': ['Standard Dev. of IR Temp. over 1x1 deg. area', 'K', 'TSD1D'], '201': ['Shallow Convective Heating Rate', 'K s-1', 'SHAHR'], '202': ['Vertical Diffusion Heating rate', 'K s-1', 'VDFHR'], '203': ['Potential Temperature at Top of Viscous Sublayer', 'K', 'THZ0'], '204': ['Tropical Cyclone Heat Potential', 'J m-2 K', 'TCHP'], '205': ['Effective Layer (EL) Temperature', 'C', 'ELMELT'], '206': ['Wet Bulb Globe Temperature', 'K', 'WETGLBT'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_1", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_1", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Specific Humidity', 'kg kg-1', 'SPFH'], '1': ['Relative Humidity', '%', 'RH'], '2': ['Humidity Mixing Ratio', 'kg kg-1', 'MIXR'], '3': ['Precipitable Water', 'kg m-2', 'PWAT'], '4': ['Vapour Pressure', 'Pa', 'VAPP'], '5': ['Saturation Deficit', 'Pa', 'SATD'], '6': ['Evaporation', 'kg m-2', 'EVP'], '7': ['Precipitation Rate', 'kg m-2 s-1', 'PRATE'], '8': ['Total Precipitation', 'kg m-2', 'APCP'], '9': ['Large-Scale Precipitation (non-convective)', 'kg m-2', 'NCPCP'], '10': ['Convective Precipitation', 'kg m-2', 'ACPCP'], '11': ['Snow Depth', 'm', 'SNOD'], '12': ['Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'SRWEQ'], '13': ['Water Equivalent of Accumulated Snow Depth', 'kg m-2', 'WEASD'], '14': ['Convective Snow', 'kg m-2', 'SNOC'], '15': ['Large-Scale Snow', 'kg m-2', 'SNOL'], '16': ['Snow Melt', 'kg m-2', 'SNOM'], '17': ['Snow Age', 'day', 'SNOAG'], '18': ['Absolute Humidity', 'kg m-3', 'ABSH'], '19': ['Precipitation Type', 'See Table 4.201', 'PTYPE'], '20': ['Integrated Liquid Water', 'kg m-2', 'ILIQW'], '21': ['Condensate', 'kg kg-1', 'TCOND'], '22': ['Cloud Mixing Ratio', 'kg kg-1', 'CLMR'], '23': ['Ice Water Mixing Ratio', 'kg kg-1', 'ICMR'], '24': ['Rain Mixing Ratio', 'kg kg-1', 'RWMR'], '25': ['Snow Mixing Ratio', 'kg kg-1', 'SNMR'], '26': ['Horizontal Moisture Convergence', 'kg kg-1 s-1', 'MCONV'], '27': ['Maximum Relative Humidity', '%', 'MAXRH'], '28': ['Maximum Absolute Humidity', 'kg m-3', 'MAXAH'], '29': ['Total Snowfall', 'm', 'ASNOW'], '30': ['Precipitable Water Category', 'See Table 4.202', 'PWCAT'], '31': ['Hail', 'm', 'HAIL'], '32': ['Graupel', 'kg kg-1', 'GRLE'], '33': ['Categorical Rain', 'Code table 4.222', 'CRAIN'], '34': ['Categorical Freezing Rain', 'Code table 4.222', 'CFRZR'], '35': ['Categorical Ice Pellets', 'Code table 4.222', 'CICEP'], '36': ['Categorical Snow', 'Code table 4.222', 'CSNOW'], '37': ['Convective Precipitation Rate', 'kg m-2 s-1', 'CPRAT'], '38': ['Horizontal Moisture Divergence', 'kg kg-1 s-1', 'MDIVER'], '39': ['Percent frozen precipitation', '%', 'CPOFP'], '40': ['Potential Evaporation', 'kg m-2', 'PEVAP'], '41': ['Potential Evaporation Rate', 'W m-2', 'PEVPR'], '42': ['Snow Cover', '%', 'SNOWC'], '43': ['Rain Fraction of Total Cloud Water', 'Proportion', 'FRAIN'], '44': ['Rime Factor', 'Numeric', 'RIME'], '45': ['Total Column Integrated Rain', 'kg m-2', 'TCOLR'], '46': ['Total Column Integrated Snow', 'kg m-2', 'TCOLS'], '47': ['Large Scale Water Precipitation (Non-Convective)', 'kg m-2', 'LSWP'], '48': ['Convective Water Precipitation', 'kg m-2', 'CWP'], '49': ['Total Water Precipitation', 'kg m-2', 'TWATP'], '50': ['Total Snow Precipitation', 'kg m-2', 'TSNOWP'], '51': ['Total Column Water (Vertically integrated total water (vapour+cloud water/ice)', 'kg m-2', 'TCWAT'], '52': ['Total Precipitation Rate', 'kg m-2 s-1', 'TPRATE'], '53': ['Total Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'TSRWE'], '54': ['Large Scale Precipitation Rate', 'kg m-2 s-1', 'LSPRATE'], '55': ['Convective Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'CSRWE'], '56': ['Large Scale Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'LSSRWE'], '57': ['Total Snowfall Rate', 'm s-1', 'TSRATE'], '58': ['Convective Snowfall Rate', 'm s-1', 'CSRATE'], '59': ['Large Scale Snowfall Rate', 'm s-1', 'LSSRATE'], '60': ['Snow Depth Water Equivalent', 'kg m-2', 'SDWE'], '61': ['Snow Density', 'kg m-3', 'SDEN'], '62': ['Snow Evaporation', 'kg m-2', 'SEVAP'], '63': ['Reserved', 'unknown', 'unknown'], '64': ['Total Column Integrated Water Vapour', 'kg m-2', 'TCIWV'], '65': ['Rain Precipitation Rate', 'kg m-2 s-1', 'RPRATE'], '66': ['Snow Precipitation Rate', 'kg m-2 s-1', 'SPRATE'], '67': ['Freezing Rain Precipitation Rate', 'kg m-2 s-1', 'FPRATE'], '68': ['Ice Pellets Precipitation Rate', 'kg m-2 s-1', 'IPRATE'], '69': ['Total Column Integrate Cloud Water', 'kg m-2', 'TCOLW'], '70': ['Total Column Integrate Cloud Ice', 'kg m-2', 'TCOLI'], '71': ['Hail Mixing Ratio', 'kg kg-1', 'HAILMXR'], '72': ['Total Column Integrate Hail', 'kg m-2', 'TCOLH'], '73': ['Hail Prepitation Rate', 'kg m-2 s-1', 'HAILPR'], '74': ['Total Column Integrate Graupel', 'kg m-2', 'TCOLG'], '75': ['Graupel (Snow Pellets) Prepitation Rate', 'kg m-2 s-1', 'GPRATE'], '76': ['Convective Rain Rate', 'kg m-2 s-1', 'CRRATE'], '77': ['Large Scale Rain Rate', 'kg m-2 s-1', 'LSRRATE'], '78': ['Total Column Integrate Water (All components including precipitation)', 'kg m-2', 'TCOLWA'], '79': ['Evaporation Rate', 'kg m-2 s-1', 'EVARATE'], '80': ['Total Condensate', 'kg kg-1', 'TOTCON'], '81': ['Total Column-Integrate Condensate', 'kg m-2', 'TCICON'], '82': ['Cloud Ice Mixing Ratio', 'kg kg-1', 'CIMIXR'], '83': ['Specific Cloud Liquid Water Content', 'kg kg-1', 'SCLLWC'], '84': ['Specific Cloud Ice Water Content', 'kg kg-1', 'SCLIWC'], '85': ['Specific Rain Water Content', 'kg kg-1', 'SRAINW'], '86': ['Specific Snow Water Content', 'kg kg-1', 'SSNOWW'], '87': ['Stratiform Precipitation Rate', 'kg m-2 s-1', 'STRPRATE'], '88': ['Categorical Convective Precipitation', 'Code table 4.222', 'CATCP'], '89': ['Reserved', 'unknown', 'unknown'], '90': ['Total Kinematic Moisture Flux', 'kg kg-1 m s-1', 'TKMFLX'], '91': ['U-component (zonal) Kinematic Moisture Flux', 'kg kg-1 m s-1', 'UKMFLX'], '92': ['V-component (meridional) Kinematic Moisture Flux', 'kg kg-1 m s-1', 'VKMFLX'], '93': ['Relative Humidity With Respect to Water', '%', 'RHWATER'], '94': ['Relative Humidity With Respect to Ice', '%', 'RHICE'], '95': ['Freezing or Frozen Precipitation Rate', 'kg m-2 s-1', 'FZPRATE'], '96': ['Mass Density of Rain', 'kg m-3', 'MASSDR'], '97': ['Mass Density of Snow', 'kg m-3', 'MASSDS'], '98': ['Mass Density of Graupel', 'kg m-3', 'MASSDG'], '99': ['Mass Density of Hail', 'kg m-3', 'MASSDH'], '100': ['Specific Number Concentration of Rain', 'kg-1', 'SPNCR'], '101': ['Specific Number Concentration of Snow', 'kg-1', 'SPNCS'], '102': ['Specific Number Concentration of Graupel', 'kg-1', 'SPNCG'], '103': ['Specific Number Concentration of Hail', 'kg-1', 'SPNCH'], '104': ['Number Density of Rain', 'm-3', 'NUMDR'], '105': ['Number Density of Snow', 'm-3', 'NUMDS'], '106': ['Number Density of Graupel', 'm-3', 'NUMDG'], '107': ['Number Density of Hail', 'm-3', 'NUMDH'], '108': ['Specific Humidity Tendency due to Parameterizations', 'kg kg-1 s-1', 'SHTPRM'], '109': ['Mass Density of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Volume of Air', 'kg m-3', 'MDLWHVA'], '110': ['Specific Mass of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Mass of Moist Air', 'kg kg-1', 'SMLWHMA'], '111': ['Mass Mixing Ratio of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Mass of Dry Air', 'kg kg-1', 'MMLWHDA'], '112': ['Mass Density of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Volume of Air', 'kg m-3', 'MDLWGVA'], '113': ['Specific Mass of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Mass of Moist Air', 'kg kg-1', 'SMLWGMA'], '114': ['Mass Mixing Ratio of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Mass of Dry Air', 'kg kg-1', 'MMLWGDA'], '115': ['Mass Density of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Volume of Air', 'kg m-3', 'MDLWSVA'], '116': ['Specific Mass of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Mass of Moist Air', 'kg kg-1', 'SMLWSMA'], '117': ['Mass Mixing Ratio of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Mass of Dry Air', 'kg kg-1', 'MMLWSDA'], '118': ['Unbalanced Component of Specific Humidity', 'kg kg-1', 'UNCSH'], '119': ['Unbalanced Component of Specific Cloud Liquid Water content', 'kg kg-1', 'UCSCLW'], '120': ['Unbalanced Component of Specific Cloud Ice Water content', 'kg kg-1', 'UCSCIW'], '121': ['Fraction of Snow Cover', 'Proportion', 'FSNOWC'], '122': ['Precipitation intensity index', 'See Table 4.247', 'PIIDX'], '123': ['Domiunknownt precipitation type', 'See Table 4.201', 'DPTYPE'], '124': ['Presence of showers', 'See Table 4.222', 'PSHOW'], '125': ['Presence of blowing snow', 'See Table 4.222', 'PBSNOW'], '126': ['Presence of blizzard', 'See Table 4.222', 'PBLIZZ'], '127': ['Ice pellets (non-water equivalent) precipitation rate', 'm s-1', 'ICEP'], '128': ['Total solid precipitation rate', 'kg m-2 s-1', 'TSPRATE'], '129': ['Effective Radius of Cloud Water', 'm', 'EFRCWAT'], '130': ['Effective Radius of Rain', 'm', 'EFRRAIN'], '131': ['Effective Radius of Cloud Ice', 'm', 'EFRCICE'], '132': ['Effective Radius of Snow', 'm', 'EFRSNOW'], '133': ['Effective Radius of Graupel', 'm', 'EFRGRL'], '134': ['Effective Radius of Hail', 'm', 'EFRHAIL'], '135': ['Effective Radius of Subgrid Liquid Clouds', 'm', 'EFRSLC'], '136': ['Effective Radius of Subgrid Ice Clouds', 'm', 'EFRSICEC'], '137': ['Effective Aspect Ratio of Rain', 'unknown', 'EFARRAIN'], '138': ['Effective Aspect Ratio of Cloud Ice', 'unknown', 'EFARCICE'], '139': ['Effective Aspect Ratio of Snow', 'unknown', 'EFARSNOW'], '140': ['Effective Aspect Ratio of Graupel', 'unknown', 'EFARGRL'], '141': ['Effective Aspect Ratio of Hail', 'unknown', 'EFARHAIL'], '142': ['Effective Aspect Ratio of Subgrid Ice Clouds', 'unknown', 'EFARSIC'], '143': ['Potential evaporation rate', 'kg m-2 s-1', 'PERATE'], '144': ['Specific rain water content (convective)', 'kg kg-1', 'SRWATERC'], '145': ['Specific snow water content (convective)', 'kg kg-1', 'SSNOWWC'], '146': ['Cloud ice precipitation rate', 'kg m-2 s-1', 'CICEPR'], '147': ['Character of precipitation', 'See Table 4.249', 'CHPRECIP'], '148': ['Snow evaporation rate', 'kg m-2 s-1', 'SNOWERAT'], '149': ['Cloud water mixing ratio', 'kg kg-1', 'CWATERMR'], '150': ['Column integrated eastward water vapour mass flux', 'kg m-1s-1', 'CEWVMF'], '151': ['Column integrated northward water vapour mass flux', 'kg m-1s-1', 'CNWVMF'], '152': ['Column integrated eastward cloud liquid water mass flux', 'kg m-1s-1', 'CECLWMF'], '153': ['Column integrated northward cloud liquid water mass flux', 'kg m-1s-1', 'CNCLWMF'], '154': ['Column integrated eastward cloud ice mass flux', 'kg m-1s-1', 'CECIMF'], '155': ['Column integrated northward cloud ice mass flux', 'kg m-1s-1', 'CNCIMF'], '156': ['Column integrated eastward rain mass flux', 'kg m-1s-1', 'CERMF'], '157': ['Column integrated northward rain mass flux', 'kg m-1s-1', 'CNRMF'], '158': ['Column integrated eastward snow mass flux', 'kg m-1s-1', 'CEFMF'], '159': ['Column integrated northward snow mass flux', 'kg m-1s-1', 'CNSMF'], '160': ['Column integrated divergence of water vapour mass flux', 'kg m-1s-1', 'CDWFMF'], '161': ['Column integrated divergence of cloud liquid water mass flux', 'kg m-1s-1', 'CDCLWMF'], '162': ['Column integrated divergence of cloud ice mass flux', 'kg m-1s-1', 'CDCIMF'], '163': ['Column integrated divergence of rain mass flux', 'kg m-1s-1', 'CDRMF'], '164': ['Column integrated divergence of snow mass flux', 'kg m-1s-1', 'CDSMF'], '165': ['Column integrated divergence of total water mass flux', 'kg m-1s-1', 'CDTWMF'], '166': ['Column integrated water vapour flux', 'kg m-1s-1', 'CWVF'], '167': ['Total column supercooled liquid water', 'kg m-2', 'TCSLW'], '168': ['Saturation specific humidity with respect to water', 'kg m-3', 'SSPFHW'], '169': ['Total column integrated saturation specific humidity with respect to water', 'kg m-2', 'TCISSPFHW'], '170-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Categorical Rain', 'Code table 4.222', 'CRAIN'], '193': ['Categorical Freezing Rain', 'Code table 4.222', 'CFRZR'], '194': ['Categorical Ice Pellets', 'Code table 4.222', 'CICEP'], '195': ['Categorical Snow', 'Code table 4.222', 'CSNOW'], '196': ['Convective Precipitation Rate', 'kg m-2 s-1', 'CPRAT'], '197': ['Horizontal Moisture Divergence', 'kg kg-1 s-1', 'MDIV'], '198': ['Minimum Relative Humidity', '%', 'MINRH'], '199': ['Potential Evaporation', 'kg m-2', 'PEVAP'], '200': ['Potential Evaporation Rate', 'W m-2', 'PEVPR'], '201': ['Snow Cover', '%', 'SNOWC'], '202': ['Rain Fraction of Total Liquid Water', 'non-dim', 'FRAIN'], '203': ['Rime Factor', 'non-dim', 'RIME'], '204': ['Total Column Integrated Rain', 'kg m-2', 'TCOLR'], '205': ['Total Column Integrated Snow', 'kg m-2', 'TCOLS'], '206': ['Total Icing Potential Diagnostic', 'non-dim', 'TIPD'], '207': ['Number concentration for ice particles', 'non-dim', 'NCIP'], '208': ['Snow temperature', 'K', 'SNOT'], '209': ['Total column-integrated supercooled liquid water', 'kg m-2', 'TCLSW'], '210': ['Total column-integrated melting ice', 'kg m-2', 'TCOLM'], '211': ['Evaporation - Precipitation', 'cm/day', 'EMNP'], '212': ['Sublimation (evaporation from snow)', 'W m-2', 'SBSNO'], '213': ['Deep Convective Moistening Rate', 'kg kg-1 s-1', 'CNVMR'], '214': ['Shallow Convective Moistening Rate', 'kg kg-1 s-1', 'SHAMR'], '215': ['Vertical Diffusion Moistening Rate', 'kg kg-1 s-1', 'VDFMR'], '216': ['Condensation Pressure of Parcali Lifted From Indicate Surface', 'Pa', 'CONDP'], '217': ['Large scale moistening rate', 'kg kg-1 s-1', 'LRGMR'], '218': ['Specific humidity at top of viscous sublayer', 'kg kg-1', 'QZ0'], '219': ['Maximum specific humidity at 2m', 'kg kg-1', 'QMAX'], '220': ['Minimum specific humidity at 2m', 'kg kg-1', 'QMIN'], '221': ['Liquid precipitation (Rainfall)', 'kg m-2', 'ARAIN'], '222': ['Snow temperature, depth-avg', 'K', 'SNOWT'], '223': ['Total precipitation (nearest grid point)', 'kg m-2', 'APCPN'], '224': ['Convective precipitation (nearest grid point)', 'kg m-2', 'ACPCPN'], '225': ['Freezing Rain', 'kg m-2', 'FRZR'], '226': ['Predominant Weather (see Local Use Note A)', 'Numeric', 'PWTHER'], '227': ['Frozen Rain', 'kg m-2', 'FROZR'], '228': ['Flat Ice Accumulation (FRAM)', 'kg m-2', 'FICEAC'], '229': ['Line Ice Accumulation (FRAM)', 'kg m-2', 'LICEAC'], '230': ['Sleet Accumulation', 'kg m-2', 'SLACC'], '231': ['Precipitation Potential Index', '%', 'PPINDX'], '232': ['Probability Cloud Ice Present', '%', 'PROBCIP'], '233': ['Snow Liquid ratio', 'kg kg-1', 'SNOWLR'], '234': ['Precipitation Duration', 'hour', 'PCPDUR'], '235': ['Cloud Liquid Mixing Ratio', 'kg kg-1', 'CLLMR'], '236-240': ['Reserved', 'unknown', 'unknown'], '241': ['Total Snow', 'kg m-2', 'TSNOW'], '242': ['Relative Humidity with Respect to Precipitable Water', '%', 'RHPW'], '245': ['Hourly Maximum of Column Vertical Integrated Graupel on Entire Atmosphere', 'kg m-2', 'MAXVIG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_2", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_2", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Wind Direction (from which blowing)', '\u00b0', 'WDIR'], '1': ['Wind Speed', 'm s-1', 'WIND'], '2': ['U-Component of Wind', 'm s-1', 'UGRD'], '3': ['V-Component of Wind', 'm s-1', 'VGRD'], '4': ['Stream Function', 'm2 s-1', 'STRM'], '5': ['Velocity Potential', 'm2 s-1', 'VPOT'], '6': ['Montgomery Stream Function', 'm2 s-2', 'MNTSF'], '7': ['Sigma Coordinate Vertical Velocity', 's-1', 'SGCVV'], '8': ['Vertical Velocity (Pressure)', 'Pa s-1', 'VVEL'], '9': ['Vertical Velocity (Geometric)', 'm s-1', 'DZDT'], '10': ['Absolute Vorticity', 's-1', 'ABSV'], '11': ['Absolute Divergence', 's-1', 'ABSD'], '12': ['Relative Vorticity', 's-1', 'RELV'], '13': ['Relative Divergence', 's-1', 'RELD'], '14': ['Potential Vorticity', 'K m2 kg-1 s-1', 'PVORT'], '15': ['Vertical U-Component Shear', 's-1', 'VUCSH'], '16': ['Vertical V-Component Shear', 's-1', 'VVCSH'], '17': ['Momentum Flux, U-Component', 'N m-2', 'UFLX'], '18': ['Momentum Flux, V-Component', 'N m-2', 'VFLX'], '19': ['Wind Mixing Energy', 'J', 'WMIXE'], '20': ['Boundary Layer Dissipation', 'W m-2', 'BLYDP'], '21': ['Maximum Wind Speed', 'm s-1', 'MAXGUST'], '22': ['Wind Speed (Gust)', 'm s-1', 'GUST'], '23': ['U-Component of Wind (Gust)', 'm s-1', 'UGUST'], '24': ['V-Component of Wind (Gust)', 'm s-1', 'VGUST'], '25': ['Vertical Speed Shear', 's-1', 'VWSH'], '26': ['Horizontal Momentum Flux', 'N m-2', 'MFLX'], '27': ['U-Component Storm Motion', 'm s-1', 'USTM'], '28': ['V-Component Storm Motion', 'm s-1', 'VSTM'], '29': ['Drag Coefficient', 'Numeric', 'CD'], '30': ['Frictional Velocity', 'm s-1', 'FRICV'], '31': ['Turbulent Diffusion Coefficient for Momentum', 'm2 s-1', 'TDCMOM'], '32': ['Eta Coordinate Vertical Velocity', 's-1', 'ETACVV'], '33': ['Wind Fetch', 'm', 'WINDF'], '34': ['Normal Wind Component', 'm s-1', 'NWIND'], '35': ['Tangential Wind Component', 'm s-1', 'TWIND'], '36': ['Amplitude Function for Rossby Wave Envelope for Meridional Wind', 'm s-1', 'AFRWE'], '37': ['Northward Turbulent Surface Stress', 'N m-2 s', 'NTSS'], '38': ['Eastward Turbulent Surface Stress', 'N m-2 s', 'ETSS'], '39': ['Eastward Wind Tendency Due to Parameterizations', 'm s-2', 'EWTPARM'], '40': ['Northward Wind Tendency Due to Parameterizations', 'm s-2', 'NWTPARM'], '41': ['U-Component of Geostrophic Wind', 'm s-1', 'UGWIND'], '42': ['V-Component of Geostrophic Wind', 'm s-1', 'VGWIND'], '43': ['Geostrophic Wind Direction', '\u00b0', 'GEOWD'], '44': ['Geostrophic Wind Speed', 'm s-1', 'GEOWS'], '45': ['Unbalanced Component of Divergence', 's-1', 'UNDIV'], '46': ['Vorticity Advection', 's-2', 'VORTADV'], '47': ['Surface roughness for heat,(see Note 5)', 'm', 'SFRHEAT'], '48': ['Surface roughness for moisture,(see Note 6)', 'm', 'SFRMOIST'], '49': ['Wind stress', 'N m-2', 'WINDSTR'], '50': ['Eastward wind stress', 'N m-2', 'EWINDSTR'], '51': ['Northward wind stress', 'N m-2', 'NWINDSTR'], '52': ['u-component of wind stress', 'N m-2', 'UWINDSTR'], '53': ['v-component of wind stress', 'N m-2', 'VWINDSTR'], '54': ['Natural logarithm of surface roughness length for heat', 'm', 'NLSRLH'], '55': ['Natural logarithm of surface roughness length for moisture', 'm', 'NLSRLM'], '56': ['u-component of neutral wind', 'm s-1', 'UNWIND'], '57': ['v-component of neutral wind', 'm s-1', 'VNWIND'], '58': ['Magnitude of turbulent surface stress', 'N m-2', 'TSFCSTR'], '59': ['Vertical divergence', 's-1', 'VDIV'], '60': ['Drag thermal coefficient', 'Numeric', 'DTC'], '61': ['Drag evaporation coefficient', 'Numeric', 'DEC'], '62': ['Eastward turbulent surface stress', 'N m-2', 'EASTTSS'], '63': ['Northward turbulent surface stress', 'N m-2', 'NRTHTSS'], '64': ['Eastward turbulent surface stress due to orographic form drag', 'N m-2', 'EASTTSSOD'], '65': ['Northward turbulent surface stress due to orographic form drag', 'N m-2', 'NRTHTSSOD'], '66': ['Eastward turbulent surface stress due to surface roughness', 'N m-2', 'EASTTSSSR'], '67': ['Northward turbulent surface stress due to surface roughness', 'N m-2', 'NRTHTSSSR'], '68-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Vertical Speed Shear', 's-1', 'VWSH'], '193': ['Horizontal Momentum Flux', 'N m-2', 'MFLX'], '194': ['U-Component Storm Motion', 'm s-1', 'USTM'], '195': ['V-Component Storm Motion', 'm s-1', 'VSTM'], '196': ['Drag Coefficient', 'non-dim', 'CD'], '197': ['Frictional Velocity', 'm s-1', 'FRICV'], '198': ['Latitude of U Wind Component of Velocity', 'deg', 'LAUV'], '199': ['Longitude of U Wind Component of Velocity', 'deg', 'LOUV'], '200': ['Latitude of V Wind Component of Velocity', 'deg', 'LAVV'], '201': ['Longitude of V Wind Component of Velocity', 'deg', 'LOVV'], '202': ['Latitude of Presure Point', 'deg', 'LAPP'], '203': ['Longitude of Presure Point', 'deg', 'LOPP'], '204': ['Vertical Eddy Diffusivity Heat exchange', 'm2 s-1', 'VEDH'], '205': ['Covariance between Meridional and Zonal Components of the wind.', 'm2 s-2', 'COVMZ'], '206': ['Covariance between Temperature and Zonal Components of the wind.', 'K*m s-1', 'COVTZ'], '207': ['Covariance between Temperature and Meridional Components of the wind.', 'K*m s-1', 'COVTM'], '208': ['Vertical Diffusion Zonal Acceleration', 'm s-2', 'VDFUA'], '209': ['Vertical Diffusion Meridional Acceleration', 'm s-2', 'VDFVA'], '210': ['Gravity wave drag zonal acceleration', 'm s-2', 'GWDU'], '211': ['Gravity wave drag meridional acceleration', 'm s-2', 'GWDV'], '212': ['Convective zonal momentum mixing acceleration', 'm s-2', 'CNVU'], '213': ['Convective meridional momentum mixing acceleration', 'm s-2', 'CNVV'], '214': ['Tendency of vertical velocity', 'm s-2', 'WTEND'], '215': ['Omega (Dp/Dt) divide by density', 'K', 'OMGALF'], '216': ['Convective Gravity wave drag zonal acceleration', 'm s-2', 'CNGWDU'], '217': ['Convective Gravity wave drag meridional acceleration', 'm s-2', 'CNGWDV'], '218': ['Velocity Point Model Surface', 'unknown', 'LMV'], '219': ['Potential Vorticity (Mass-Weighted)', '1/s/m', 'PVMWW'], '220': ['Hourly Maximum of Upward Vertical Velocity', 'm s-1', 'MAXUVV'], '221': ['Hourly Maximum of Downward Vertical Velocity', 'm s-1', 'MAXDVV'], '222': ['U Component of Hourly Maximum 10m Wind Speed', 'm s-1', 'MAXUW'], '223': ['V Component of Hourly Maximum 10m Wind Speed', 'm s-1', 'MAXVW'], '224': ['Ventilation Rate', 'm2 s-1', 'VRATE'], '225': ['Transport Wind Speed', 'm s-1', 'TRWSPD'], '226': ['Transport Wind Direction', 'Deg', 'TRWDIR'], '227': ['Earliest Reasonable Arrival Time (10% exceedance)', 's', 'TOA10'], '228': ['Most Likely Arrival Time (50% exceedance)', 's', 'TOA50'], '229': ['Most Likely Departure Time (50% exceedance)', 's', 'TOD50'], '230': ['Latest Reasonable Departure Time (90% exceedance)', 's', 'TOD90'], '231': ['Tropical Wind Direction', '\u00b0', 'TPWDIR'], '232': ['Tropical Wind Speed', 'm s-1', 'TPWSPD'], '233': ['Inflow Based (ESFC) to 50% EL Shear Magnitude', 'kt', 'ESHR'], '234': ['U Component Inflow Based to 50% EL Shear Vector', 'kt', 'UESH'], '235': ['V Component Inflow Based to 50% EL Shear Vector', 'kt', 'VESH'], '236': ['U Component Bunkers Effective Right Motion', 'kt', 'UEID'], '237': ['V Component Bunkers Effective Right Motion', 'kt', 'VEID'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_3", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_3", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Pressure', 'Pa', 'PRES'], '1': ['Pressure Reduced to MSL', 'Pa', 'PRMSL'], '2': ['Pressure Tendency', 'Pa s-1', 'PTEND'], '3': ['ICAO Standard Atmosphere Reference Height', 'm', 'ICAHT'], '4': ['Geopotential', 'm2 s-2', 'GP'], '5': ['Geopotential Height', 'gpm', 'HGT'], '6': ['Geometric Height', 'm', 'DIST'], '7': ['Standard Deviation of Height', 'm', 'HSTDV'], '8': ['Pressure Anomaly', 'Pa', 'PRESA'], '9': ['Geopotential Height Anomaly', 'gpm', 'GPA'], '10': ['Density', 'kg m-3', 'DEN'], '11': ['Altimeter Setting', 'Pa', 'ALTS'], '12': ['Thickness', 'm', 'THICK'], '13': ['Pressure Altitude', 'm', 'PRESALT'], '14': ['Density Altitude', 'm', 'DENALT'], '15': ['5-Wave Geopotential Height', 'gpm', '5WAVH'], '16': ['Zonal Flux of Gravity Wave Stress', 'N m-2', 'U-GWD'], '17': ['Meridional Flux of Gravity Wave Stress', 'N m-2', 'V-GWD'], '18': ['Planetary Boundary Layer Height', 'm', 'HPBL'], '19': ['5-Wave Geopotential Height Anomaly', 'gpm', '5WAVA'], '20': ['Standard Deviation of Sub-Grid Scale Orography', 'm', 'SDSGSO'], '21': ['Angle of Sub-Grid Scale Orography', 'rad', 'AOSGSO'], '22': ['Slope of Sub-Grid Scale Orography', 'Numeric', 'SSGSO'], '23': ['Gravity Wave Dissipation', 'W m-2', 'GWD'], '24': ['Anisotropy of Sub-Grid Scale Orography', 'Numeric', 'ASGSO'], '25': ['Natural Logarithm of Pressure in Pa', 'Numeric', 'NLPRES'], '26': ['Exner Pressure', 'Numeric', 'EXPRES'], '27': ['Updraught Mass Flux', 'kg m-2 s-1', 'UMFLX'], '28': ['Downdraught Mass Flux', 'kg m-2 s-1', 'DMFLX'], '29': ['Updraught Detrainment Rate', 'kg m-3 s-1', 'UDRATE'], '30': ['Downdraught Detrainment Rate', 'kg m-3 s-1', 'DDRATE'], '31': ['Unbalanced Component of Logarithm of Surface Pressure', '-', 'UCLSPRS'], '32': ['Saturation water vapour pressure', 'Pa', 'SWATERVP'], '33': ['Geometric altitude above mean sea level', 'm', 'GAMSL'], '34': ['Geometric height above ground level', 'm', 'GHAGRD'], '35': ['Column integrated divergence of total mass flux', 'kg m-2 s-1', 'CDTMF'], '36': ['Column integrated eastward total mass flux', 'kg m-2 s-1', 'CETMF'], '37': ['Column integrated northward total mass flux', 'kg m-2 s-1', 'CNTMF'], '38': ['Standard deviation of filtered subgrid orography', 'm', 'SDFSO'], '39': ['Column integrated mass of atmosphere', 'kg m-2 s-1', 'CMATMOS'], '40': ['Column integrated eastward geopotential flux', 'W m-1', 'CEGFLUX'], '41': ['Column integrated northward geopotential flux', 'W m-1', 'CNGFLUX'], '42': ['Column integrated divergence of water geopotential flux', 'W m-2', 'CDWGFLUX'], '43': ['Column integrated divergence of geopotential flux', 'W m-2', 'CDGFLUX'], '44': ['Height of zero-degree wet-bulb temperature', 'm', 'HWBT'], '45': ['Height of one-degree wet-bulb temperature', 'm', 'WOBT'], '46': ['Pressure departure from hydrostatic state', 'Pa', 'PRESDHS'], '47-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['MSLP (Eta model reduction)', 'Pa', 'MSLET'], '193': ['5-Wave Geopotential Height', 'gpm', '5WAVH'], '194': ['Zonal Flux of Gravity Wave Stress', 'N m-2', 'U-GWD'], '195': ['Meridional Flux of Gravity Wave Stress', 'N m-2', 'V-GWD'], '196': ['Planetary Boundary Layer Height', 'm', 'HPBL'], '197': ['5-Wave Geopotential Height Anomaly', 'gpm', '5WAVA'], '198': ['MSLP (MAPS System Reduction)', 'Pa', 'MSLMA'], '199': ['3-hr pressure tendency (Std. Atmos. Reduction)', 'Pa s-1', 'TSLSA'], '200': ['Pressure of level from which parcel was lifted', 'Pa', 'PLPL'], '201': ['X-gradient of Log Pressure', 'm-1', 'LPSX'], '202': ['Y-gradient of Log Pressure', 'm-1', 'LPSY'], '203': ['X-gradient of Height', 'm-1', 'HGTX'], '204': ['Y-gradient of Height', 'm-1', 'HGTY'], '205': ['Layer Thickness', 'm', 'LAYTH'], '206': ['Natural Log of Surface Pressure', 'ln (kPa)', 'NLGSP'], '207': ['Convective updraft mass flux', 'kg m-2 s-1', 'CNVUMF'], '208': ['Convective downdraft mass flux', 'kg m-2 s-1', 'CNVDMF'], '209': ['Convective detrainment mass flux', 'kg m-2 s-1', 'CNVDEMF'], '210': ['Mass Point Model Surface', 'unknown', 'LMH'], '211': ['Geopotential Height (nearest grid point)', 'gpm', 'HGTN'], '212': ['Pressure (nearest grid point)', 'Pa', 'PRESN'], '213': ['Orographic Convexity', 'unknown', 'ORCONV'], '214': ['Orographic Asymmetry, W Component', 'unknown', 'ORASW'], '215': ['Orographic Asymmetry, S Component', 'unknown', 'ORASS'], '216': ['Orographic Asymmetry, SW Component', 'unknown', 'ORASSW'], '217': ['Orographic Asymmetry, NW Component', 'unknown', 'ORASNW'], '218': ['Orographic Length Scale, W Component', 'unknown', 'ORLSW'], '219': ['Orographic Length Scale, S Component', 'unknown', 'ORLSS'], '220': ['Orographic Length Scale, SW Component', 'unknown', 'ORLSSW'], '221': ['Orographic Length Scale, NW Component', 'unknown', 'ORLSNW'], '222': ['Effective Surface Height', 'm', 'EFSH'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_4", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_4", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Net Short-Wave Radiation Flux (Surface)', 'W m-2', 'NSWRS'], '1': ['Net Short-Wave Radiation Flux (Top of Atmosphere)', 'W m-2', 'NSWRT'], '2': ['Short-Wave Radiation Flux', 'W m-2', 'SWAVR'], '3': ['Global Radiation Flux', 'W m-2', 'GRAD'], '4': ['Brightness Temperature', 'K', 'BRTMP'], '5': ['Radiance (with respect to wave number)', 'W m-1 sr-1', 'LWRAD'], '6': ['Radiance (with respect to wavelength)', 'W m-3 sr-1', 'SWRAD'], '7': ['Downward Short-Wave Radiation Flux', 'W m-2', 'DSWRF'], '8': ['Upward Short-Wave Radiation Flux', 'W m-2', 'USWRF'], '9': ['Net Short Wave Radiation Flux', 'W m-2', 'NSWRF'], '10': ['Photosynthetically Active Radiation', 'W m-2', 'PHOTAR'], '11': ['Net Short-Wave Radiation Flux, Clear Sky', 'W m-2', 'NSWRFCS'], '12': ['Downward UV Radiation', 'W m-2', 'DWUVR'], '13': ['Direct Short Wave Radiation Flux', 'W m-2', 'DSWRFLX'], '14': ['Diffuse Short Wave Radiation Flux', 'W m-2', 'DIFSWRF'], '15': ['Upward UV radiation emitted/reflected from the Earths surface', 'W m-2', 'UVVEARTH'], '16-49': ['Reserved', 'unknown', 'unknown'], '50': ['UV Index (Under Clear Sky)', 'Numeric', 'UVIUCS'], '51': ['UV Index', 'Numeric', 'UVI'], '52': ['Downward Short-Wave Radiation Flux, Clear Sky', 'W m-2', 'DSWRFCS'], '53': ['Upward Short-Wave Radiation Flux, Clear Sky', 'W m-2', 'USWRFCS'], '54': ['Direct normal short-wave radiation flux,(see Note 3)', 'W m-2', 'DNSWRFLX'], '55': ['UV visible albedo for diffuse radiation', '%', 'UVALBDIF'], '56': ['UV visible albedo for direct radiation', '%', 'UVALBDIR'], '57': ['UV visible albedo for direct radiation, geometric component', '%', 'UBALBDIRG'], '58': ['UV visible albedo for direct radiation, isotropic component', '%', 'UVALBDIRI'], '59': ['UV visible albedo for direct radiation, volumetric component', '%', 'UVBDIRV'], '60': ['Photosynthetically active radiation flux, clear sky', 'W m-2', 'PHOARFCS'], '61': ['Direct short-wave radiation flux, clear sky', 'W m-2', 'DSWRFLXCS'], '62-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Downward Short-Wave Radiation Flux', 'W m-2', 'DSWRF'], '193': ['Upward Short-Wave Radiation Flux', 'W m-2', 'USWRF'], '194': ['UV-B Downward Solar Flux', 'W m-2', 'DUVB'], '195': ['Clear sky UV-B Downward Solar Flux', 'W m-2', 'CDUVB'], '196': ['Clear Sky Downward Solar Flux', 'W m-2', 'CSDSF'], '197': ['Solar Radiative Heating Rate', 'K s-1', 'SWHR'], '198': ['Clear Sky Upward Solar Flux', 'W m-2', 'CSUSF'], '199': ['Cloud Forcing Net Solar Flux', 'W m-2', 'CFNSF'], '200': ['Visible Beam Downward Solar Flux', 'W m-2', 'VBDSF'], '201': ['Visible Diffuse Downward Solar Flux', 'W m-2', 'VDDSF'], '202': ['Near IR Beam Downward Solar Flux', 'W m-2', 'NBDSF'], '203': ['Near IR Diffuse Downward Solar Flux', 'W m-2', 'NDDSF'], '204': ['Downward Total Radiation Flux', 'W m-2', 'DTRF'], '205': ['Upward Total Radiation Flux', 'W m-2', 'UTRF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_5", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_5", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Net Long-Wave Radiation Flux (Surface)', 'W m-2', 'NLWRS'], '1': ['Net Long-Wave Radiation Flux (Top of Atmosphere)', 'W m-2', 'NLWRT'], '2': ['Long-Wave Radiation Flux', 'W m-2', 'LWAVR'], '3': ['Downward Long-Wave Rad. Flux', 'W m-2', 'DLWRF'], '4': ['Upward Long-Wave Rad. Flux', 'W m-2', 'ULWRF'], '5': ['Net Long-Wave Radiation Flux', 'W m-2', 'NLWRF'], '6': ['Net Long-Wave Radiation Flux, Clear Sky', 'W m-2', 'NLWRCS'], '7': ['Brightness Temperature', 'K', 'BRTEMP'], '8': ['Downward Long-Wave Radiation Flux, Clear Sky', 'W m-2', 'DLWRFCS'], '9': ['Near IR albedo for diffuse radiation', '%', 'NIRALBDIF'], '10': ['Near IR albedo for direct radiation', '%', 'NIRALBDIR'], '11': ['Near IR albedo for direct radiation, geometric component', '%', 'NIRALBDIRG'], '12': ['Near IR albedo for direct radiation, isotropic component', '%', 'NIRALBDIRI'], '13': ['Near IR albedo for direct radiation, volumetric component', '%', 'NIRALBDIRV'], '14-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Downward Long-Wave Rad. Flux', 'W m-2', 'DLWRF'], '193': ['Upward Long-Wave Rad. Flux', 'W m-2', 'ULWRF'], '194': ['Long-Wave Radiative Heating Rate', 'K s-1', 'LWHR'], '195': ['Clear Sky Upward Long Wave Flux', 'W m-2', 'CSULF'], '196': ['Clear Sky Downward Long Wave Flux', 'W m-2', 'CSDLF'], '197': ['Cloud Forcing Net Long Wave Flux', 'W m-2', 'CFNLF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_6", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_6", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Cloud Ice', 'kg m-2', 'CICE'], '1': ['Total Cloud Cover', '%', 'TCDC'], '2': ['Convective Cloud Cover', '%', 'CDCON'], '3': ['Low Cloud Cover', '%', 'LCDC'], '4': ['Medium Cloud Cover', '%', 'MCDC'], '5': ['High Cloud Cover', '%', 'HCDC'], '6': ['Cloud Water', 'kg m-2', 'CWAT'], '7': ['Cloud Amount', '%', 'CDCA'], '8': ['Cloud Type', 'See Table 4.203', 'CDCT'], '9': ['Thunderstorm Maximum Tops', 'm', 'TMAXT'], '10': ['Thunderstorm Coverage', 'See Table 4.204', 'THUNC'], '11': ['Cloud Base', 'm', 'CDCB'], '12': ['Cloud Top', 'm', 'CDCTOP'], '13': ['Ceiling', 'm', 'CEIL'], '14': ['Non-Convective Cloud Cover', '%', 'CDLYR'], '15': ['Cloud Work Function', 'J kg-1', 'CWORK'], '16': ['Convective Cloud Efficiency', 'Proportion', 'CUEFI'], '17': ['Total Condensate', 'kg kg-1', 'TCONDO'], '18': ['Total Column-Integrated Cloud Water', 'kg m-2', 'TCOLWO'], '19': ['Total Column-Integrated Cloud Ice', 'kg m-2', 'TCOLIO'], '20': ['Total Column-Integrated Condensate', 'kg m-2', 'TCOLC'], '21': ['Ice fraction of total condensate', 'Proportion', 'FICE'], '22': ['Cloud Cover', '%', 'CDCC'], '23': ['Cloud Ice Mixing Ratio', 'kg kg-1', 'CDCIMR'], '24': ['Sunshine', 'Numeric', 'SUNS'], '25': ['Horizontal Extent of Cumulonimbus (CB)', '%', 'CBHE'], '26': ['Height of Convective Cloud Base', 'm', 'HCONCB'], '27': ['Height of Convective Cloud Top', 'm', 'HCONCT'], '28': ['Number Concentration of Cloud Droplets', 'kg-1', 'NCONCD'], '29': ['Number Concentration of Cloud Ice', 'kg-1', 'NCCICE'], '30': ['Number Density of Cloud Droplets', 'm-3', 'NDENCD'], '31': ['Number Density of Cloud Ice', 'm-3', 'NDCICE'], '32': ['Fraction of Cloud Cover', 'Numeric', 'FRACCC'], '33': ['Sunshine Duration', 's', 'SUNSD'], '34': ['Surface Long Wave Effective Total Cloudiness', 'Numeric', 'SLWTC'], '35': ['Surface Short Wave Effective Total Cloudiness', 'Numeric', 'SSWTC'], '36': ['Fraction of Stratiform Precipitation Cover', 'Proportion', 'FSTRPC'], '37': ['Fraction of Convective Precipitation Cover', 'Proportion', 'FCONPC'], '38': ['Mass Density of Cloud Droplets', 'kg m-3', 'MASSDCD'], '39': ['Mass Density of Cloud Ice', 'kg m-3', 'MASSDCI'], '40': ['Mass Density of Convective Cloud Water Droplets', 'kg m-3', 'MDCCWD'], '41-46': ['Reserved', 'unknown', 'unknown'], '47': ['Volume Fraction of Cloud Water Droplets', 'Numeric', 'VFRCWD'], '48': ['Volume Fraction of Cloud Ice Particles', 'Numeric', 'VFRCICE'], '49': ['Volume Fraction of Cloud (Ice and/or Water)', 'Numeric', 'VFRCIW'], '50': ['Fog', '%', 'FOG'], '51': ['Sunshine Duration Fraction', 'Proportion', 'SUNFRAC'], '52-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Non-Convective Cloud Cover', '%', 'CDLYR'], '193': ['Cloud Work Function', 'J kg-1', 'CWORK'], '194': ['Convective Cloud Efficiency', 'non-dim', 'CUEFI'], '195': ['Total Condensate', 'kg kg-1', 'TCOND'], '196': ['Total Column-Integrated Cloud Water', 'kg m-2', 'TCOLW'], '197': ['Total Column-Integrated Cloud Ice', 'kg m-2', 'TCOLI'], '198': ['Total Column-Integrated Condensate', 'kg m-2', 'TCOLC'], '199': ['Ice fraction of total condensate', 'non-dim', 'FICE'], '200': ['Convective Cloud Mass Flux', 'Pa s-1', 'MFLUX'], '201': ['Sunshine Duration', 's', 'SUNSD'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_7", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_7", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Parcel Lifted Index (to 500 hPa)', 'K', 'PLI'], '1': ['Best Lifted Index (to 500 hPa)', 'K', 'BLI'], '2': ['K Index', 'K', 'KX'], '3': ['KO Index', 'K', 'KOX'], '4': ['Total Totals Index', 'K', 'TOTALX'], '5': ['Sweat Index', 'Numeric', 'SX'], '6': ['Convective Available Potential Energy', 'J kg-1', 'CAPE'], '7': ['Convective Inhibition', 'J kg-1', 'CIN'], '8': ['Storm Relative Helicity', 'm2 s-2', 'HLCY'], '9': ['Energy Helicity Index', 'Numeric', 'EHLX'], '10': ['Surface Lifted Index', 'K', 'LFT X'], '11': ['Best (4 layer) Lifted Index', 'K', '4LFTX'], '12': ['Richardson Number', 'Numeric', 'RI'], '13': ['Showalter Index', 'K', 'SHWINX'], '14': ['Reserved', 'unknown', 'unknown'], '15': ['Updraft Helicity', 'm2 s-2', 'UPHL'], '16': ['Bulk Richardson Number', 'Numeric', 'BLKRN'], '17': ['Gradient Richardson Number', 'Numeric', 'GRDRN'], '18': ['Flux Richardson Number', 'Numeric', 'FLXRN'], '19': ['Convective Available Potential Energy Shear', 'm2 s-2', 'CONAPES'], '20': ['Thunderstorm intensity index', 'See Table 4.246', 'TIIDEX'], '21-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Surface Lifted Index', 'K', 'LFT X'], '193': ['Best (4 layer) Lifted Index', 'K', '4LFTX'], '194': ['Richardson Number', 'Numeric', 'RI'], '195': ['Convective Weather Detection Index', 'unknown', 'CWDI'], '196': ['Ultra Violet Index', 'W m-2', 'UVI'], '197': ['Updraft Helicity', 'm2 s-2', 'UPHL'], '198': ['Leaf Area Index', 'Numeric', 'LAI'], '199': ['Hourly Maximum of Updraft Helicity', 'm2 s-2', 'MXUPHL'], '200': ['Hourly Minimum of Updraft Helicity', 'm2 s-2', 'MNUPHL'], '201': ['Bourgoiun Negative Energy Layer (surface to freezing level)', 'J kg-1', 'BNEGELAY'], '202': ['Bourgoiun Positive Energy Layer (2k ft AGL to 400 hPa)', 'J kg-1', 'BPOSELAY'], '203': ['Downdraft CAPE', 'J kg-1', 'DCAPE'], '204': ['Effective Storm Relative Helicity', 'm2 s-2', 'EFHL'], '205': ['Enhanced Stretching Potential', 'Numeric', 'ESP'], '206': ['Critical Angle', 'Degree', 'CANGLE'], '207': ['Effective Surface Helicity', 'm2 s-2', 'E3KH'], '208': ['Significant Tornado Parameter with CIN-Effective Layer', 'numeric', 'STPC'], '209': ['Significant Hail Parameter', 'numeric', 'SIGH'], '210': ['Supercell Composite Parameter-Effective Layer', 'numeric', 'SCCP'], '211': ['Significant Tornado parameter-Fixed Layer', 'numeric', 'SIGT'], '212': ['Mixed Layer (100 mb) Virtual LFC', 'numeric', 'MLFC'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_13", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_13", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Aerosol Type', 'See Table 4.205', 'AEROT'], '1-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Particulate matter (coarse)', '\u00b5g m-3', 'PMTC'], '193': ['Particulate matter (fine)', '\u00b5g m-3', 'PMTF'], '194': ['Particulate matter (fine)', 'log10 (\u00b5g m-3)', 'LPMTF'], '195': ['Integrated column particulate matter (fine)', 'log10 (\u00b5g m-3)', 'LIPMF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_14", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_14", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Total Ozone', 'DU', 'TOZNE'], '1': ['Ozone Mixing Ratio', 'kg kg-1', 'O3MR'], '2': ['Total Column Integrated Ozone', 'DU', 'TCIOZ'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Ozone Mixing Ratio', 'kg kg-1', 'O3MR'], '193': ['Ozone Concentration', 'ppb', 'OZCON'], '194': ['Categorical Ozone Concentration', 'Non-Dim', 'OZCAT'], '195': ['Ozone Vertical Diffusion', 'kg kg-1 s-1', 'VDFOZ'], '196': ['Ozone Production', 'kg kg-1 s-1', 'POZ'], '197': ['Ozone Tendency', 'kg kg-1 s-1', 'TOZ'], '198': ['Ozone Production from Temperature Term', 'kg kg-1 s-1', 'POZT'], '199': ['Ozone Production from Column Ozone Term', 'kg kg-1 s-1', 'POZO'], '200': ['Ozone Daily Max from 1-hour Average', 'ppbV', 'OZMAX1'], '201': ['Ozone Daily Max from 8-hour Average', 'ppbV', 'OZMAX8'], '202': ['PM 2.5 Daily Max from 1-hour Average', '\u03bcg m-3', 'PDMAX1'], '203': ['PM 2.5 Daily Max from 24-hour Average', '\u03bcg m-3', 'PDMAX24'], '204': ['Acetaldehyde & Higher Aldehydes', 'ppbV', 'ALD2'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_15", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_15", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Base Spectrum Width', 'm s-1', 'BSWID'], '1': ['Base Reflectivity', 'dB', 'BREF'], '2': ['Base Radial Velocity', 'm s-1', 'BRVEL'], '3': ['Vertically-Integrated Liquid Water', 'kg m-2', 'VIL'], '4': ['Layer Maximum Base Reflectivity', 'dB', 'LMAXBR'], '5': ['Precipitation', 'kg m-2', 'PREC'], '6': ['Radar Spectra (1)', 'unknown', 'RDSP1'], '7': ['Radar Spectra (2)', 'unknown', 'RDSP2'], '8': ['Radar Spectra (3)', 'unknown', 'RDSP3'], '9': ['Reflectivity of Cloud Droplets', 'dB', 'RFCD'], '10': ['Reflectivity of Cloud Ice', 'dB', 'RFCI'], '11': ['Reflectivity of Snow', 'dB', 'RFSNOW'], '12': ['Reflectivity of Rain', 'dB', 'RFRAIN'], '13': ['Reflectivity of Graupel', 'dB', 'RFGRPL'], '14': ['Reflectivity of Hail', 'dB', 'RFHAIL'], '15': ['Hybrid Scan Reflectivity', 'dB', 'HSR'], '16': ['Hybrid Scan Reflectivity Height', 'm', 'HSRHT'], '17-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_16", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_16", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Equivalent radar reflectivity factor for rain', 'm m6 m-3', 'REFZR'], '1': ['Equivalent radar reflectivity factor for snow', 'm m6 m-3', 'REFZI'], '2': ['Equivalent radar reflectivity factor for parameterized convection', 'm m6 m-3', 'REFZC'], '3': ['Echo Top', 'm', 'RETOP'], '4': ['Reflectivity', 'dB', 'REFD'], '5': ['Composite reflectivity', 'dB', 'REFC'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Equivalent radar reflectivity factor for rain', 'm m6 m-3', 'REFZR'], '193': ['Equivalent radar reflectivity factor for snow', 'm m6 m-3', 'REFZI'], '194': ['Equivalent radar reflectivity factor for parameterized convection', 'm m6 m-3', 'REFZC'], '195': ['Reflectivity', 'dB', 'REFD'], '196': ['Composite reflectivity', 'dB', 'REFC'], '197': ['Echo Top', 'm', 'RETOP'], '198': ['Hourly Maximum of Simulated Reflectivity', 'dB', 'MAXREF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_17", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_17", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Lightning Strike Density', 'm-2 s-1', 'LTNGSD'], '1': ['Lightning Potential Index (LPI)', 'J kg-1', 'LTPINX'], '2': ['Cloud-to-Ground Lightning Flash Density', 'km-2 day-1', 'CDGDLTFD'], '3': ['Cloud-to-Cloud Lightning Flash Density', 'km-2 day-1', 'CDCDLTFD'], '4': ['Total Lightning Flash Density', 'km-2 day-1', 'TLGTFD'], '5': ['Subgrid-scale lightning potential index', 'J kg-1', 'SLNGPIDX'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Lightning', 'non-dim', 'LTNG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_18", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_18", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Air Concentration of Caesium 137', 'Bq m-3', 'ACCES'], '1': ['Air Concentration of Iodine 131', 'Bq m-3', 'ACIOD'], '2': ['Air Concentration of Radioactive Pollutant', 'Bq m-3', 'ACRADP'], '3': ['Ground Deposition of Caesium 137', 'Bq m-2', 'GDCES'], '4': ['Ground Deposition of Iodine 131', 'Bq m-2', 'GDIOD'], '5': ['Ground Deposition of Radioactive Pollutant', 'Bq m-2', 'GDRADP'], '6': ['Time Integrated Air Concentration of Cesium Pollutant', 'Bq s m-3', 'TIACCP'], '7': ['Time Integrated Air Concentration of Iodine Pollutant', 'Bq s m-3', 'TIACIP'], '8': ['Time Integrated Air Concentration of Radioactive Pollutant', 'Bq s m-3', 'TIACRP'], '9': ['Reserved', 'unknown', 'unknown'], '10': ['Air Concentration', 'Bq m-3', 'AIRCON'], '11': ['Wet Deposition', 'Bq m-2', 'WETDEP'], '12': ['Dry Deposition', 'Bq m-2', 'DRYDEP'], '13': ['Total Deposition (Wet + Dry)', 'Bq m-2', 'TOTLWD'], '14': ['Specific Activity Concentration', 'Bq kg-1', 'SACON'], '15': ['Maximum of Air Concentration in Layer', 'Bq m-3', 'MAXACON'], '16': ['Height of Maximum of Air Concentration', 'm', 'HMXACON'], '17': ['Column-Integrated Air Concentration', 'Bq m-2', 'CIAIRC'], '18': ['Column-Averaged Air Concentration in Layer', 'Bq m-3', 'CAACL'], '19-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_19", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_19", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Visibility', 'm', 'VIS'], '1': ['Albedo', '%', 'ALBDO'], '2': ['Thunderstorm Probability', '%', 'TSTM'], '3': ['Mixed Layer Depth', 'm', 'MIXHT'], '4': ['Volcanic Ash', 'See Table 4.206', 'VOLASH'], '5': ['Icing Top', 'm', 'ICIT'], '6': ['Icing Base', 'm', 'ICIB'], '7': ['Icing', 'See Table 4.207', 'ICI'], '8': ['Turbulence Top', 'm', 'TURBT'], '9': ['Turbulence Base', 'm', 'TURBB'], '10': ['Turbulence', 'See Table 4.208', 'TURB'], '11': ['Turbulent Kinetic Energy', 'J kg-1', 'TKE'], '12': ['Planetary Boundary Layer Regime', 'See Table 4.209', 'PBLREG'], '13': ['Contrail Intensity', 'See Table 4.210', 'CONTI'], '14': ['Contrail Engine Type', 'See Table 4.211', 'CONTET'], '15': ['Contrail Top', 'm', 'CONTT'], '16': ['Contrail Base', 'm', 'CONTB'], '17': ['Maximum Snow Albedo', '%', 'MXSALB'], '18': ['Snow-Free Albedo', '%', 'SNFALB'], '19': ['Snow Albedo', '%', 'SALBD'], '20': ['Icing', '%', 'ICIP'], '21': ['In-Cloud Turbulence', '%', 'CTP'], '22': ['Clear Air Turbulence (CAT)', '%', 'CAT'], '23': ['Supercooled Large Droplet Probability', '%', 'SLDP'], '24': ['Convective Turbulent Kinetic Energy', 'J kg-1', 'CONTKE'], '25': ['Weather', 'See Table 4.225', 'WIWW'], '26': ['Convective Outlook', 'See Table 4.224', 'CONVO'], '27': ['Icing Scenario', 'See Table 4.227', 'ICESC'], '28': ['Mountain Wave Turbulence (Eddy Dissipation Rate)', 'm2/3 s-1', 'MWTURB'], '29': ['Clear Air Turbulence (CAT) (Eddy Dissipation Rate)', 'm2/3 s-1', 'CATEDR'], '30': ['Eddy Dissipation Parameter', 'm2/3 s-1', 'EDPARM'], '31': ['Maximum of Eddy Dissipation Parameter in Layer', 'm2/3 s-1', 'MXEDPRM'], '32': ['Highest Freezing Level', 'm', 'HIFREL'], '33': ['Visibility Through Liquid Fog', 'm', 'VISLFOG'], '34': ['Visibility Through Ice Fog', 'm', 'VISIFOG'], '35': ['Visibility Through Blowing Snow', 'm', 'VISBSN'], '36': ['Presence of Snow Squalls', 'See Table 4.222', 'PSNOWS'], '37': ['Icing Severity', 'See Table 4.228', 'ICESEV'], '38': ['Sky transparency index', 'See Table 4.214', 'SKYIDX'], '39': ['Seeing index', 'See Table 4.214', 'SEEINDEX'], '40': ['Snow level', 'm', 'SNOWLVL'], '41': ['Duct base height', 'm', 'DBHEIGHT'], '42': ['Trapping layer base height', 'm', 'TLBHEIGHT'], '43': ['Trapping layer top height', 'm', 'TLTHEIGHT'], '44': ['Mean vertical gradient of refractivity inside trapping layer', 'm-1', 'MEANVGRTL'], '45': ['Minimum vertical gradient of refractivity inside trapping layer', 'm-1', 'MINVGRTL'], '46': ['Net radiation flux', 'W m-2', 'NETRADFLUX'], '47': ['Global irradiance on tilted surfaces', 'W m-2', 'GLIRRTS'], '48': ['Top of persistent contrails', 'm', 'PCONTT'], '49': ['Base of persistent contrails', 'm', 'PCONTB'], '50': ['Convectively-induced turbulence (CIT) (eddy dissipation rate)', 'm2/3 s-1', 'CITEDR'], '51-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Maximum Snow Albedo', '%', 'MXSALB'], '193': ['Snow-Free Albedo', '%', 'SNFALB'], '194': ['Slight risk convective outlook', 'categorical', 'SRCONO'], '195': ['Moderate risk convective outlook', 'categorical', 'MRCONO'], '196': ['High risk convective outlook', 'categorical', 'HRCONO'], '197': ['Tornado probability', '%', 'TORPROB'], '198': ['Hail probability', '%', 'HAILPROB'], '199': ['Wind probability', '%', 'WINDPROB'], '200': ['Significant Tornado probability', '%', 'STORPROB'], '201': ['Significant Hail probability', '%', 'SHAILPRO'], '202': ['Significant Wind probability', '%', 'SWINDPRO'], '203': ['Categorical Thunderstorm', 'Code table 4.222', 'TSTMC'], '204': ['Number of mixed layers next to surface', 'integer', 'MIXLY'], '205': ['Flight Category', 'unknown', 'FLGHT'], '206': ['Confidence - Ceiling', 'unknown', 'CICEL'], '207': ['Confidence - Visibility', 'unknown', 'CIVIS'], '208': ['Confidence - Flight Category', 'unknown', 'CIFLT'], '209': ['Low-Level aviation interest', 'unknown', 'LAVNI'], '210': ['High-Level aviation interest', 'unknown', 'HAVNI'], '211': ['Visible, Black Sky Albedo', '%', 'SBSALB'], '212': ['Visible, White Sky Albedo', '%', 'SWSALB'], '213': ['Near IR, Black Sky Albedo', '%', 'NBSALB'], '214': ['Near IR, White Sky Albedo', '%', 'NWSALB'], '215': ['Total Probability of Severe Thunderstorms (Days 2,3)', '%', 'PRSVR'], '216': ['Total Probability of Extreme Severe Thunderstorms (Days 2,3)', '%', 'PRSIGSVR'], '217': ['Supercooled Large Droplet (SLD) Icing', 'See Table 4.207', 'SIPD'], '218': ['Radiative emissivity', 'unknown', 'EPSR'], '219': ['Turbulence Potential Forecast Index', 'unknown', 'TPFI'], '220': ['Categorical Severe Thunderstorm', 'Code table 4.222', 'SVRTS'], '221': ['Probability of Convection', '%', 'PROCON'], '222': ['Convection Potential', 'Code table 4.222', 'CONVP'], '223-231': ['Reserved', 'unknown', 'unknown'], '232': ['Volcanic Ash Forecast Transport and Dispersion', 'log10 (kg m-3)', 'VAFTD'], '233': ['Icing probability', 'non-dim', 'ICPRB'], '234': ['Icing Severity', 'non-dim', 'ICSEV'], '235': ['Joint Fire Weather Probability', '%', 'JFWPRB'], '236': ['Snow Level', 'm', 'SNOWLVL'], '237': ['Dry Thunderstorm Probability', '%', 'DRYTPROB'], '238': ['Ellrod Index', 'unknown', 'ELLINX'], '239': ['Craven-Wiedenfeld Aggregate Severe Parameter', 'Numeric', 'CWASP'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_20", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_20", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Mass Density (Concentration)', 'kg m-3', 'MASSDEN'], '1': ['Column-Integrated Mass Density', 'kg m-2', 'COLMD'], '2': ['Mass Mixing Ratio (Mass Fraction in Air)', 'kg kg-1', 'MASSMR'], '3': ['Atmosphere Emission Mass Flux', 'kg m-2s-1', 'AEMFLX'], '4': ['Atmosphere Net Production Mass Flux', 'kg m-2s-1', 'ANPMFLX'], '5': ['Atmosphere Net Production And Emision Mass Flux', 'kg m-2s-1', 'ANPEMFLX'], '6': ['Surface Dry Deposition Mass Flux', 'kg m-2s-1', 'SDDMFLX'], '7': ['Surface Wet Deposition Mass Flux', 'kg m-2s-1', 'SWDMFLX'], '8': ['Atmosphere Re-Emission Mass Flux', 'kg m-2s-1', 'AREMFLX'], '9': ['Wet Deposition by Large-Scale Precipitation Mass Flux', 'kg m-2s-1', 'WLSMFLX'], '10': ['Wet Deposition by Convective Precipitation Mass Flux', 'kg m-2s-1', 'WDCPMFLX'], '11': ['Sedimentation Mass Flux', 'kg m-2s-1', 'SEDMFLX'], '12': ['Dry Deposition Mass Flux', 'kg m-2s-1', 'DDMFLX'], '13': ['Transfer From Hydrophobic to Hydrophilic', 'kg kg-1s-1', 'TRANHH'], '14': ['Transfer From SO2 (Sulphur Dioxide) to SO4 (Sulphate)', 'kg kg-1s-1', 'TRSDS'], '15': ['Dry deposition velocity', 'm s-1', 'DDVEL'], '16': ['Mass mixing ratio with respect to dry air', 'kg kg-1', 'MSSRDRYA'], '17': ['Mass mixing ratio with respect to wet air', 'kg kg-1', 'MSSRWETA'], '18': ['Potential of hydrogen (pH)', 'pH', 'POTHPH'], '19-49': ['Reserved', 'unknown', 'unknown'], '50': ['Amount in Atmosphere', 'mol', 'AIA'], '51': ['Concentration In Air', 'mol m-3', 'CONAIR'], '52': ['Volume Mixing Ratio (Fraction in Air)', 'mol mol-1', 'VMXR'], '53': ['Chemical Gross Production Rate of Concentration', 'mol m-3s-1', 'CGPRC'], '54': ['Chemical Gross Destruction Rate of Concentration', 'mol m-3s-1', 'CGDRC'], '55': ['Surface Flux', 'mol m-2s-1', 'SFLUX'], '56': ['Changes Of Amount in Atmosphere', 'mol s-1', 'COAIA'], '57': ['Total Yearly Average Burden of The Atmosphere>', 'mol', 'TYABA'], '58': ['Total Yearly Average Atmospheric Loss', 'mol s-1', 'TYAAL'], '59': ['Aerosol Number Concentration', 'm-3', 'ANCON'], '60': ['Aerosol Specific Number Concentration', 'kg-1', 'ASNCON'], '61': ['Maximum of Mass Density', 'kg m-3', 'MXMASSD'], '62': ['Height of Mass Density', 'm', 'HGTMD'], '63': ['Column-Averaged Mass Density in Layer', 'kg m-3', 'CAVEMDL'], '64': ['Mole fraction with respect to dry air', 'mol mol-1', 'MOLRDRYA'], '65': ['Mole fraction with respect to wet air', 'mol mol-1', 'MOLRWETA'], '66': ['Column-integrated in-cloud scavenging rate by precipitation', 'kg m-2 s-1', 'CINCLDSP'], '67': ['Column-integrated below-cloud scavenging rate by precipitation', 'kg m-2 s-1', 'CBLCLDSP'], '68': ['Column-integrated release rate from evaporating precipitation', 'kg m-2 s-1', 'CIRELREP'], '69': ['Column-integrated in-cloud scavenging rate by large-scale precipitation', 'kg m-2 s-1', 'CINCSLSP'], '70': ['Column-integrated below-cloud scavenging rate by large-scale precipitation', 'kg m-2 s-1', 'CBECSLSP'], '71': ['Column-integrated release rate from evaporating large-scale precipitation', 'kg m-2 s-1', 'CRERELSP'], '72': ['Column-integrated in-cloud scavenging rate by convective precipitation', 'kg m-2 s-1', 'CINCSRCP'], '73': ['Column-integrated below-cloud scavenging rate by convective precipitation', 'kg m-2 s-1', 'CBLCSRCP'], '74': ['Column-integrated release rate from evaporating convective precipitation', 'kg m-2 s-1', 'CIRERECP'], '75': ['Wildfire flux', 'kg m-2 s-1', 'WFIREFLX'], '76': ['Emission Rate', 'kg kg-1 s-1', 'EMISFLX'], '77': ['Surface Emission flux', 'kg m-2 s-1', 'SFCEFLX'], '78': ['Column integrated eastward mass flux', 'kg m-2 s-1', 'CEMF'], '79': ['Column integrated northward mass flux', 'kg m-2 s-1', 'CNMF'], '80': ['Column integrated divergence of mass flux', 'kg m-2 s-1', 'CDIVMF'], '81': ['Column integrated net source', 'kg m-2 s-1', 'CDNETS'], '82-99': ['Reserved', 'unknown', 'unknown'], '100': ['Surface Area Density (Aerosol)', 'm-1', 'SADEN'], '101': ['Vertical Visual Range', 'm', 'ATMTK'], '102': ['Aerosol Optical Thickness', 'Numeric', 'AOTK'], '103': ['Single Scattering Albedo', 'Numeric', 'SSALBK'], '104': ['Asymmetry Factor', 'Numeric', 'ASYSFK'], '105': ['Aerosol Extinction Coefficient', 'm-1', 'AECOEF'], '106': ['Aerosol Absorption Coefficient', 'm-1', 'AACOEF'], '107': ['Aerosol Lidar Backscatter from Satellite', 'm-1sr-1', 'ALBSAT'], '108': ['Aerosol Lidar Backscatter from the Ground', 'm-1sr-1', 'ALBGRD'], '109': ['Aerosol Lidar Extinction from Satellite', 'm-1', 'ALESAT'], '110': ['Aerosol Lidar Extinction from the Ground', 'm-1', 'ALEGRD'], '111': ['Angstrom Exponent', 'Numeric', 'ANGSTEXP'], '112': ['Scattering Aerosol Optical Thickness', 'Numeric', 'SCTAOTK'], '113-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_190", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_190", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Arbitrary Text String', 'CCITTIA5', 'ATEXT'], '1-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_191", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_191", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Seconds prior to initial reference time (defined in Section 1)', 's', 'TSEC'], '1': ['Geographical Latitude', '\u00b0 N', 'GEOLAT'], '2': ['Geographical Longitude', '\u00b0 E', 'GEOLON'], '3': ['Days Since Last Observation', 'd', 'DSLOBS'], '4': ['Tropical cyclone density track', 'Numeric', 'TCDTRACK'], '5-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Latitude (-90 to 90)', '\u00b0', 'NLAT'], '193': ['East Longitude (0 to 360)', '\u00b0', 'ELON'], '194': ['Seconds prior to initial reference time', 's', 'RTSEC'], '195': ['Model Layer number (From bottom up)', 'unknown', 'MLYNO'], '196': ['Latitude (nearest neighbor) (-90 to 90)', '\u00b0', 'NLATN'], '197': ['East Longitude (nearest neighbor) (0 to 360)', '\u00b0', 'ELONN'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_192", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_192", "kind": "variable", "doc": "\n", "default_value": "{'1': ['Covariance between zonal and meridional components of the wind. Defined as [uv]-[u][v], where "[]" indicates the mean over the indicated time span.', 'm2/s2', 'COVMZ'], '2': ['Covariance between zonal component of the wind and temperature. Defined as [uT]-[u][T], where "[]" indicates the mean over the indicated time span.', 'K*m/s', 'COVTZ'], '3': ['Covariance between meridional component of the wind and temperature. Defined as [vT]-[v][T], where "[]" indicates the mean over the indicated time span.', 'K*m/s', 'COVTM'], '4': ['Covariance between temperature and vertical component of the wind. Defined as [wT]-[w][T], where "[]" indicates the mean over the indicated time span.', 'K*m/s', 'COVTW'], '5': ['Covariance between zonal and zonal components of the wind. Defined as [uu]-[u][u], where "[]" indicates the mean over the indicated time span.', 'm2/s2', 'COVZZ'], '6': ['Covariance between meridional and meridional components of the wind. Defined as [vv]-[v][v], where "[]" indicates the mean over the indicated time span.', 'm2/s2', 'COVMM'], '7': ['Covariance between specific humidity and zonal components of the wind. Defined as [uq]-[u][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*m/s', 'COVQZ'], '8': ['Covariance between specific humidity and meridional components of the wind. Defined as [vq]-[v][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*m/s', 'COVQM'], '9': ['Covariance between temperature and vertical components of the wind. Defined as [\u03a9T]-[\u03a9][T], where "[]" indicates the mean over the indicated time span.', 'K*Pa/s', 'COVTVV'], '10': ['Covariance between specific humidity and vertical components of the wind. Defined as [\u03a9q]-[\u03a9][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*Pa/s', 'COVQVV'], '11': ['Covariance between surface pressure and surface pressure. Defined as [Psfc]-[Psfc][Psfc], where "[]" indicates the mean over the indicated time span.', 'Pa*Pa', 'COVPSPS'], '12': ['Covariance between specific humidity and specific humidy. Defined as [qq]-[q][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*kg/kg', 'COVQQ'], '13': ['Covariance between vertical and vertical components of the wind. Defined as [\u03a9\u03a9]-[\u03a9][\u03a9], where "[]" indicates the mean over the indicated time span.', 'Pa2/s2', 'COVVVVV'], '14': ['Covariance between temperature and temperature. Defined as [TT]-[T][T], where "[]" indicates the mean over the indicated time span.', 'K*K', 'COVTT'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_0_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_0_ndfd", "kind": "variable", "doc": "\n", "default_value": "{'193': ['Apparent Temperature', 'K', 'APPT']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_1_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_1_ndfd", "kind": "variable", "doc": "\n", "default_value": "{'192': ['Weather Information', 'WxInfo', 'WX']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_19_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_19_ndfd", "kind": "variable", "doc": "\n", "default_value": "{'194': ['Convective Hazard Outlook', 'categorical', 'CONVOUTLOOK'], '197': ['Probability of Tornado', '%', 'PTORNADO'], '198': ['Probability of Hail', '%', 'PHAIL'], '199': ['Probability of Damaging Wind', '%', 'PWIND'], '200': ['Probability of Extreme Tornado', '%', 'PXTRMTORN'], '201': ['Probability of Extreme Hail', '%', 'PXTRMHAIL'], '202': ['Probability of Extreme Wind', '%', 'PXTRMWIND'], '215': ['Total Probability of Severe Thunderstorms', '%', 'TOTALSVRPROB'], '216': ['Total Probability of Extreme Severe Thunderstorms', '%', 'TOTALXTRMPROB'], '217': ['Watch Warning Advisory', 'WxInfo', 'WWA']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_192_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_192_ndfd", "kind": "variable", "doc": "\n", "default_value": "{'192': ['Critical Fire Weather', '', 'FIREWX'], '194': ['Dry Lightning', '', 'DRYLIGHTNING']}"}, {"fullname": "grib2io.tables.section4_discipline1", "modulename": "grib2io.tables.section4_discipline1", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline1.table_4_2_1_0", "modulename": "grib2io.tables.section4_discipline1", "qualname": "table_4_2_1_0", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Flash Flood Guidance (Encoded as an accumulation over a floating subinterval of time between the reference time and valid time)', 'kg m-2', 'FFLDG'], '1': ['Flash Flood Runoff (Encoded as an accumulation over a floating subinterval of time)', 'kg m-2', 'FFLDRO'], '2': ['Remotely Sensed Snow Cover', 'See Table 4.215', 'RSSC'], '3': ['Elevation of Snow Covered Terrain', 'See Table 4.216', 'ESCT'], '4': ['Snow Water Equivalent Percent of Normal', '%', 'SWEPON'], '5': ['Baseflow-Groundwater Runoff', 'kg m-2', 'BGRUN'], '6': ['Storm Surface Runoff', 'kg m-2', 'SSRUN'], '7': ['Discharge from Rivers or Streams', 'm3 s-1', 'DISRS'], '8': ['Group Water Upper Storage', 'kg m-2', 'GWUPS'], '9': ['Group Water Lower Storage', 'kg m-2', 'GWLOWS'], '10': ['Side Flow into River Channel', 'm3 s-1 m-1', 'SFLORC'], '11': ['River Storage of Water', 'm3', 'RVERSW'], '12': ['Flood Plain Storage of Water', 'm3', 'FLDPSW'], '13': ['Depth of Water on Soil Surface', 'kg m-2', 'DEPWSS'], '14': ['Upstream Accumulated Precipitation', 'kg m-2', 'UPAPCP'], '15': ['Upstream Accumulated Snow Melt', 'kg m-2', 'UPASM'], '16': ['Percolation Rate', 'kg m-2 s-1', 'PERRATE'], '17-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Baseflow-Groundwater Runoff', 'kg m-2', 'BGRUN'], '193': ['Storm Surface Runoff', 'kg m-2', 'SSRUN'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline1.table_4_2_1_1", "modulename": "grib2io.tables.section4_discipline1", "qualname": "table_4_2_1_1", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Conditional percent precipitation amount fractile for an overall period (encoded as an accumulation)', 'kg m-2', 'CPPOP'], '1': ['Percent Precipitation in a sub-period of an overall period (encoded as a percent accumulation over the sub-period)', '%', 'PPOSP'], '2': ['Probability of 0.01 inch of precipitation (POP)', '%', 'POP'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Probability of Freezing Precipitation', '%', 'CPOZP'], '193': ['Percent of Frozen Precipitation', '%', 'CPOFP'], '194': ['Probability of precipitation exceeding flash flood guidance values', '%', 'PPFFG'], '195': ['Probability of Wetting Rain, exceeding in 0.10" in a given time period', '%', 'CWR'], '196': ['Binary Probability of precipitation exceeding average recurrence intervals (ARI)', 'see Code table 4.222', 'QPFARI'], '197': ['Binary Probability of precipitation exceeding flash flood guidance values', 'see Code table 4.222', 'QPFFFG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline1.table_4_2_1_2", "modulename": "grib2io.tables.section4_discipline1", "qualname": "table_4_2_1_2", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Water Depth', 'm', 'WDPTHIL'], '1': ['Water Temperature', 'K', 'WTMPIL'], '2': ['Water Fraction', 'Proportion', 'WFRACT'], '3': ['Sediment Thickness', 'm', 'SEDTK'], '4': ['Sediment Temperature', 'K', 'SEDTMP'], '5': ['Ice Thickness', 'm', 'ICTKIL'], '6': ['Ice Temperature', 'K', 'ICETIL'], '7': ['Ice Cover', 'Proportion', 'ICECIL'], '8': ['Land Cover (0=water, 1=land)', 'Proportion', 'LANDIL'], '9': ['Shape Factor with Respect to Salinity Profile', 'unknown', 'SFSAL'], '10': ['Shape Factor with Respect to Temperature Profile in Thermocline', 'unknown', 'SFTMP'], '11': ['Attenuation Coefficient of Water with Respect to Solar Radiation', 'm-1', 'ACWSR'], '12': ['Salinity', 'kg kg-1', 'SALTIL'], '13': ['Cross Sectional Area of Flow in Channel', 'm2', 'CSAFC'], '14': ['Snow temperature', 'K', 'LNDSNOWT'], '15': ['Lake depth', 'm', 'LDEPTH'], '16': ['River depth', 'm', 'RDEPTH'], '17-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10", "modulename": "grib2io.tables.section4_discipline10", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_0", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_0", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Wave Spectra (1)', '-', 'WVSP1'], '1': ['Wave Spectra (2)', '-', 'WVSP2'], '2': ['Wave Spectra (3)', '-', 'WVSP3'], '3': ['Significant Height of Combined Wind Waves and Swell', 'm', 'HTSGW'], '4': ['Direction of Wind Waves', 'degree true', 'WVDIR'], '5': ['Significant Height of Wind Waves', 'm', 'WVHGT'], '6': ['Mean Period of Wind Waves', 's', 'WVPER'], '7': ['Direction of Swell Waves', 'degree true', 'SWDIR'], '8': ['Significant Height of Swell Waves', 'm', 'SWELL'], '9': ['Mean Period of Swell Waves', 's', 'SWPER'], '10': ['Primary Wave Direction', 'degree true', 'DIRPW'], '11': ['Primary Wave Mean Period', 's', 'PERPW'], '12': ['Secondary Wave Direction', 'degree true', 'DIRSW'], '13': ['Secondary Wave Mean Period', 's', 'PERSW'], '14': ['Direction of Combined Wind Waves and Swell', 'degree true', 'WWSDIR'], '15': ['Mean Period of Combined Wind Waves and Swell', 's', 'MWSPER'], '16': ['Coefficient of Drag With Waves', '-', 'CDWW'], '17': ['Friction Velocity', 'm s-1', 'FRICVW'], '18': ['Wave Stress', 'N m-2', 'WSTR'], '19': ['Normalised Waves Stress', '-', 'NWSTR'], '20': ['Mean Square Slope of Waves', '-', 'MSSW'], '21': ['U-component Surface Stokes Drift', 'm s-1', 'USSD'], '22': ['V-component Surface Stokes Drift', 'm s-1', 'VSSD'], '23': ['Period of Maximum Individual Wave Height', 's', 'PMAXWH'], '24': ['Maximum Individual Wave Height', 'm', 'MAXWH'], '25': ['Inverse Mean Wave Frequency', 's', 'IMWF'], '26': ['Inverse Mean Frequency of The Wind Waves', 's', 'IMFWW'], '27': ['Inverse Mean Frequency of The Total Swell', 's', 'IMFTSW'], '28': ['Mean Zero-Crossing Wave Period', 's', 'MZWPER'], '29': ['Mean Zero-Crossing Period of The Wind Waves', 's', 'MZPWW'], '30': ['Mean Zero-Crossing Period of The Total Swell', 's', 'MZPTSW'], '31': ['Wave Directional Width', '-', 'WDIRW'], '32': ['Directional Width of The Wind Waves', '-', 'DIRWWW'], '33': ['Directional Width of The Total Swell', '-', 'DIRWTS'], '34': ['Peak Wave Period', 's', 'PWPER'], '35': ['Peak Period of The Wind Waves', 's', 'PPERWW'], '36': ['Peak Period of The Total Swell', 's', 'PPERTS'], '37': ['Altimeter Wave Height', 'm', 'ALTWH'], '38': ['Altimeter Corrected Wave Height', 'm', 'ALCWH'], '39': ['Altimeter Range Relative Correction', '-', 'ALRRC'], '40': ['10 Metre Neutral Wind Speed Over Waves', 'm s-1', 'MNWSOW'], '41': ['10 Metre Wind Direction Over Waves', 'degree true', 'MWDIRW'], '42': ['Wave Engery Spectrum', 'm-2 s rad-1', 'WESP'], '43': ['Kurtosis of The Sea Surface Elevation Due to Waves', '-', 'KSSEW'], '44': ['Benjamin-Feir Index', '-', 'BENINX'], '45': ['Spectral Peakedness Factor', 's-1', 'SPFTR'], '46': ['Peak wave direction', '°', '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', '°', 'MWDFSWEL'], '54': ['Mean wave direction of second swell partition', '°', 'MWDSSWEL'], '55': ['Mean wave direction of third swell partition', '°', 'MWDTSWEL'], '56': ['Wave directional width of first swell partition', '-', 'WDWFSWEL'], '57': ['Wave directional width of second swell partition', '-', 'WDWSSWEL'], '58': ['Wave directional width of third swell partition', '-', 'WDWTSWEL'], '59': ['Wave frequency width of first swell partition', '-', 'WFWFSWEL'], '60': ['Wave frequency width of second swell partition', '-', 'WFWSSWEL'], '61': ['Wave frequency width of third swell partition', '-', 'WFWTSWEL'], '62': ['Wave frequency width', '-', 'WAVEFREW'], '63': ['Frequency width of wind waves', '-', 'FREWWW'], '64': ['Frequency width of total swell', '-', 'FREWTSW'], '65': ['Peak Wave Period of First Swell Partition', 's', 'PWPFSPAR'], '66': ['Peak Wave Period of Second Swell Partition', 's', 'PWPSSPAR'], '67': ['Peak Wave Period of Third Swell Partition', 's', 'PWPTSPAR'], '68': ['Peak Wave Direction of First Swell Partition', 'degree true', 'PWDFSPAR'], '69': ['Peak Wave Direction of Second Swell Partition', 'degree true', 'PWDSSPAR'], '70': ['Peak Wave Direction of Third Swell Partition', 'degree true', 'PWDTSPAR'], '71': ['Peak Direction of Wind Waves', 'degree true', 'PDWWAVE'], '72': ['Peak Direction of Total Swell', 'degree true', 'PDTSWELL'], '73': ['Whitecap Fraction', 'fraction', 'WCAPFRAC'], '74': ['Mean Direction of Total Swell', 'degree', 'MDTSWEL'], '75': ['Mean Direction of Wind Waves', 'degree', 'MDWWAVE'], '76': ['Charnock', 'Numeric', 'CHNCK'], '77': ['Wave Spectral Skewness', 'Numeric', 'WAVESPSK'], '78': ['Wave Energy Flux Magnitude', 'W m-1', 'WAVEFMAG'], '79': ['Wave Energy Flux Mean Direction', 'degree true', 'WAVEFDIR'], '80': ['Raio of Wave Angular and Frequency width', 'Numeric', 'RWAVEAFW'], '81': ['Free Convective Velocity over the Oceans', 'm s-1', 'FCVOCEAN'], '82': ['Air Density over the Oceans', 'kg m-3', 'AIRDENOC'], '83': ['Normalized Energy Flux into Waves', 'Numeric', 'NEFW'], '84': ['Normalized Stress into Ocean', 'Numeric', 'NSOCEAN'], '85': ['Normalized Energy Flux into Ocean', 'Numeric', 'NEFOCEAN'], '86': ['Surface Elevation Variance due to Waves (over all frequencies and directions)', 'm2 s rad-1', 'SEVWAVE'], '87': ['Wave Induced Mean Se Level Correction', 'm', 'WAVEMSLC'], '88': ['Spectral Width Index', 'Numeric', 'SPECWI'], '89': ['Number of Events in Freak Wave Statistics', 'Numeric', 'EFWS'], '90': ['U-Component of Surface Momentum Flux into Ocean', 'N m-2', 'USMFO'], '91': ['U-Component of Surface Momentum Flux into Ocean', 'N m-2', 'VSMFO'], '92': ['Wave Turbulent Energy Flux into Ocean', 'W m-2', 'WAVETEFO'], '93': ['Envelop maximum individual wave height', 'm', 'EMIWAVE'], '94': ['Time domain maximum individual crest height', 'm', 'TDMCREST'], '95': ['Time domain maximum individual wave height', 'm', 'TDMWAVE'], '96': ['Space time maximum individual crest height', 'm', 'STMCREST'], '97': ['Space time maximum individual wave height', 'm', 'STMWAVE'], '98-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Wave Steepness', 'proportion', 'WSTP'], '193': ['Wave Length', 'unknown', 'WLENG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_1", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_1", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Current Direction', 'degree True', 'DIRC'], '1': ['Current Speed', 'm s-1', 'SPC'], '2': ['U-Component of Current', 'm s-1', 'UOGRD'], '3': ['V-Component of Current', 'm s-1', 'VOGRD'], '4': ['Rip Current Occurrence Probability', '%', 'RIPCOP'], '5': ['Eastward Current', 'm s-1', 'EASTCUR'], '6': ['Northward Current', 'm s-1', 'NRTHCUR'], '7-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Ocean Mixed Layer U Velocity', 'm s-1', 'OMLU'], '193': ['Ocean Mixed Layer V Velocity', 'm s-1', 'OMLV'], '194': ['Barotropic U velocity', 'm s-1', 'UBARO'], '195': ['Barotropic V velocity', 'm s-1', 'VBARO'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_2", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_2", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Ice Cover', 'Proportion', 'ICEC'], '1': ['Ice Thickness', 'm', 'ICETK'], '2': ['Direction of Ice Drift', 'degree True', 'DICED'], '3': ['Speed of Ice Drift', 'm s-1', 'SICED'], '4': ['U-Component of Ice Drift', 'm s-1', 'UICE'], '5': ['V-Component of Ice Drift', 'm s-1', 'VICE'], '6': ['Ice Growth Rate', 'm s-1', 'ICEG'], '7': ['Ice Divergence', 's-1', 'ICED'], '8': ['Ice Temperature', 'K', 'ICETMP'], '9': ['Module of Ice Internal Pressure', 'Pa m', 'ICEPRS'], '10': ['Zonal Vector Component of Vertically Integrated Ice Internal Pressure', 'Pa m', 'ZVCICEP'], '11': ['Meridional Vector Component of Vertically Integrated Ice Internal Pressure', 'Pa m', 'MVCICEP'], '12': ['Compressive Ice Strength', 'N m-1', 'CICES'], '13': ['Snow Temperature (over sea ice)', 'K', 'SNOWTSI'], '14': ['Albedo', 'Numeric', 'ALBDOICE'], '15': ['Sea Ice Volume per Unit Area', 'm3m-2', 'SICEVOL'], '16': ['Snow Volume Over Sea Ice per Unit Area', 'm3m-2', 'SNVOLSI'], '17': ['Sea Ice Heat Content', 'J m-2', 'SICEHC'], '18': ['Snow over Sea Ice Heat Content', 'J m-2', 'SNCEHC'], '19': ['Ice Freeboard Thickness', 'm', 'ICEFTHCK'], '20': ['Ice Melt Pond Fraction', 'fraction', 'ICEMPF'], '21': ['Ice Melt Pond Depth', 'm', 'ICEMPD'], '22': ['Ice Melt Pond Volume per Unit Area', 'm3m-2', 'ICEMPV'], '23': ['Sea Ice Fraction Tendency due to Parameterization', 's-1', 'SIFTP'], '24': ['x-component of ice drift', 'm s-1', 'XICE'], '25': ['y-component of ice drift', 'm s-1', 'YICE'], '26': ['Reserved', 'unknown', 'unknown'], '27': ['Freezing/melting potential (Tentatively accepted)', 'W m-2', 'FRZMLTPOT'], '28': ['Melt onset date (Tentatively accepted)', 'Numeric', 'MLTDATE'], '29': ['Freeze onset date (Tentatively accepted)', 'Numeric', 'FRZDATE'], '30-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_3", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_3", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Water Temperature', 'K', 'WTMP'], '1': ['Deviation of Sea Level from Mean', 'm', 'DSLM'], '2': ['Heat Exchange Coefficient', 'unknown', 'CH'], '3': ['Practical Salinity', 'Numeric', 'PRACTSAL'], '4': ['Downward Heat Flux', 'W m-2', 'DWHFLUX'], '5': ['Eastward Surface Stress', 'N m-2', 'EASTWSS'], '6': ['Northward surface stress', 'N m-2', 'NORTHWSS'], '7': ['x-component Surface Stress', 'N m-2', 'XCOMPSS'], '8': ['y-component Surface Stress', 'N m-2', 'YCOMPSS'], '9': ['Thermosteric Change in Sea Surface Height', 'm', 'THERCSSH'], '10': ['Halosteric Change in Sea Surface Height', 'm', 'HALOCSSH'], '11': ['Steric Change in Sea Surface Height', 'm', 'STERCSSH'], '12': ['Sea Salt Flux', 'kg m-2s-1', 'SEASFLUX'], '13': ['Net upward water flux', 'kg m-2s-1', 'NETUPWFLUX'], '14': ['Eastward surface water velocity', 'm s-1', 'ESURFWVEL'], '15': ['Northward surface water velocity', 'm s-1', 'NSURFWVEL'], '16': ['x-component of surface water velocity', 'm s-1', 'XSURFWVEL'], '17': ['y-component of surface water velocity', 'm s-1', 'YSURFWVEL'], '18': ['Heat flux correction', 'W m-2', 'HFLUXCOR'], '19': ['Sea surface height tendency due to parameterization', 'm s-1', 'SSHGTPARM'], '20': ['Deviation of sea level from mean with inverse barometer correction', 'm', 'DSLIBARCOR'], '21': ['Salinity', 'kg kg-1', 'SALIN'], '22-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Hurricane Storm Surge', 'm', 'SURGE'], '193': ['Extra Tropical Storm Surge', 'm', 'ETSRG'], '194': ['Ocean Surface Elevation Relative to Geoid', 'm', 'ELEV'], '195': ['Sea Surface Height Relative to Geoid', 'm', 'SSHG'], '196': ['Ocean Mixed Layer Potential Density (Reference 2000m)', 'kg m-3', 'P2OMLT'], '197': ['Net Air-Ocean Heat Flux', 'W m-2', 'AOHFLX'], '198': ['Assimilative Heat Flux', 'W m-2', 'ASHFL'], '199': ['Surface Temperature Trend', 'degree per day', 'SSTT'], '200': ['Surface Salinity Trend', 'psu per day', 'SSST'], '201': ['Kinetic Energy', 'J kg-1', 'KENG'], '202': ['Salt Flux', 'kg m-2s-1', 'SLTFL'], '203': ['Heat Exchange Coefficient', 'unknown', 'LCH'], '204': ['Freezing Spray', 'unknown', 'FRZSPR'], '205': ['Total Water Level Accounting for Tide, Wind and Waves', 'm', 'TWLWAV'], '206': ['Total Water Level Increase due to Waves', 'm', 'RUNUP'], '207': ['Mean Increase in Water Level due to Waves', 'm', 'SETUP'], '208': ['Time-varying Increase in Water Level due to Waves', 'm', 'SWASH'], '209': ['Total Water Level Above Dune Toe', 'm', 'TWLDT'], '210': ['Total Water Level Above Dune Crest', 'm', 'TWLDC'], '211-241': ['Reserved', 'unknown', 'unknown'], '242': ['20% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG20'], '243': ['30% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG30'], '244': ['40% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG40'], '245': ['50% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG50'], '246': ['60% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG60'], '247': ['70% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG70'], '248': ['80% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG80'], '249': ['90% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG90'], '250': ['Extra Tropical Storm Surge Combined Surge and Tide', 'm', 'ETCWL'], '251': ['Tide', 'm', 'TIDE'], '252': ['Erosion Occurrence Probability', '%', 'EROSNP'], '253': ['Overwash Occurrence Probability', '%', 'OWASHP'], '254': ['Reserved', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_4", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_4", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Main Thermocline Depth', 'm', 'MTHD'], '1': ['Main Thermocline Anomaly', 'm', 'MTHA'], '2': ['Transient Thermocline Depth', 'm', 'TTHDP'], '3': ['Salinity', 'kg kg-1', 'SALTY'], '4': ['Ocean Vertical Heat Diffusivity', 'm2 s-1', 'OVHD'], '5': ['Ocean Vertical Salt Diffusivity', 'm2 s-1', 'OVSD'], '6': ['Ocean Vertical Momentum Diffusivity', 'm2 s-1', 'OVMD'], '7': ['Bathymetry', 'm', 'BATHY'], '8-10': ['Reserved', 'unknown', 'unknown'], '11': ['Shape Factor With Respect To Salinity Profile', 'unknown', 'SFSALP'], '12': ['Shape Factor With Respect To Temperature Profile In Thermocline', 'unknown', 'SFTMPP'], '13': ['Attenuation Coefficient Of Water With Respect to Solar Radiation', 'm-1', 'ACWSRD'], '14': ['Water Depth', 'm', 'WDEPTH'], '15': ['Water Temperature', 'K', 'WTMPSS'], '16': ['Water Density (rho)', 'kg m-3', 'WATERDEN'], '17': ['Water Density Anomaly (sigma)', 'kg m-3', 'WATDENA'], '18': ['Water potential temperature (theta)', 'K', 'WATPTEMP'], '19': ['Water potential density (rho theta)', 'kg m-3', 'WATPDEN'], '20': ['Water potential density anomaly (sigma theta)', 'kg m-3', 'WATPDENA'], '21': ['Practical Salinity', 'psu (numeric)', 'PRTSAL'], '22': ['Water Column-integrated Heat Content', 'J m-2', 'WCHEATC'], '23': ['Eastward Water Velocity', 'm s-1', 'EASTWVEL'], '24': ['Northward Water Velocity', 'm s-1', 'NRTHWVEL'], '25': ['X-Component Water Velocity', 'm s-1', 'XCOMPWV'], '26': ['Y-Component Water Velocity', 'm s-1', 'YCOMPWV'], '27': ['Upward Water Velocity', 'm s-1', 'UPWWVEL'], '28': ['Vertical Eddy Diffusivity', 'm2 s-1', 'VEDDYDIF'], '29': ['Bottom Pressure Equivalent Height', 'm', 'BPEH'], '30': ['Fresh Water Flux into Sea Water from Rivers', 'kg m-2s-1', 'FWFSW'], '31': ['Fresh Water Flux Correction', 'kg m-2s-1', 'FWFC'], '32': ['Virtual Salt Flux into Sea Water', 'g kg-1 m-2s-1', 'VSFSW'], '33': ['Virtual Salt Flux Correction', 'g kg -1 m-2s-1', 'VSFC'], '34': ['Sea Water Temperature Tendency due to Newtonian Relaxation', 'K s-1', 'SWTTNR'], '35': ['Sea Water Salinity Tendency due to Newtonian Relaxation', 'g kg -1s-1', 'SWSTNR'], '36': ['Sea Water Temperature Tendency due to Parameterization', 'K s-1', 'SWTTP'], '37': ['Sea Water Salinity Tendency due to Parameterization', 'g kg -1s-1', 'SWSTP'], '38': ['Eastward Sea Water Velocity Tendency Due To Parameterization', 'm s-2', 'ESWVP'], '39': ['Northward Sea Water Velocity Tendency Due To Parameterization', 'm s-2', 'NSWVP'], '40': ['Sea Water Temperature Tendency Due to Direct Bias Correction', 'K s-1', 'SWTTBC'], '41': ['Sea Water Salinity Tendency due to Direct Bias Correction', 'g kg -1s-1', 'SWSTBC'], '42': ['Sea water meridional volume transport', 'm 3 m -2 s -1', 'SEAMVT'], '43': ['Sea water zonal volume transport', 'm 3 m -2 s -1', 'SEAZVT'], '44': ['Sea water column integrated meridional volume transport', 'm 3 m -2 s -1', 'SEACMVT'], '45': ['Sea water column integrated zonal volume transport', 'm 3 m -2 s -1', 'SEACZVT'], '46': ['Sea water meridional mass transport', 'kg m -2 s -1', 'SEAMMT'], '47': ['Sea water zonal mass transport', 'kg m -2 s -1', 'SEAZMT'], '48': ['Sea water column integrated meridional mass transport', 'kg m -2 s -1', 'SEACMMT'], '49': ['Sea water column integrated zonal mass transport', 'kg m -2 s -1', 'SEACZMT'], '50': ['Sea water column integrated practical salinity', 'g kg-1 m', 'SEACPSALT'], '51': ['Sea water column integrated salinity', 'kg kg-1 m', 'SEACSALT'], '52-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['3-D Temperature', '\u00b0 c', 'WTMPC'], '193': ['3-D Salinity', 'psu', 'SALIN'], '194': ['Barotropic Kinectic Energy', 'J kg-1', 'BKENG'], '195': ['Geometric Depth Below Sea Surface', 'm', 'DBSS'], '196': ['Interface Depths', 'm', 'INTFD'], '197': ['Ocean Heat Content', 'J m-2', 'OHC'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_191", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_191", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Seconds Prior To Initial Reference Time (Defined In Section 1)', 's', 'IRTSEC'], '1': ['Meridional Overturning Stream Function', 'm3 s-1', 'MOSF'], '2': ['Reserved', 'unknown', 'unknown'], '3': ['Days Since Last Observation', 'd', 'DSLOBSO'], '4': ['Barotropic Stream Function', 'm3 s-1', 'BARDSF'], '5-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2", "modulename": "grib2io.tables.section4_discipline2", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_0", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_0", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Land Cover (0=sea, 1=land)', 'Proportion', 'LAND'], '1': ['Surface Roughness', 'm', 'SFCR'], '2': ['Soil Temperature (Parameter Deprecated, see Note 3)', 'K', 'TSOIL'], '3': ['Soil Moisture Content (Parameter Deprecated, see Note 1)', 'unknown', 'unknown'], '4': ['Vegetation', '%', 'VEG'], '5': ['Water Runoff', 'kg m-2', 'WATR'], '6': ['Evapotranspiration', 'kg-2 s-1', 'EVAPT'], '7': ['Model Terrain Height', 'm', 'MTERH'], '8': ['Land Use', 'See Table 4.212', 'LANDU'], '9': ['Volumetric Soil Moisture Content', 'Proportion', 'SOILW'], '10': ['Ground Heat Flux', 'W m-2', 'GFLUX'], '11': ['Moisture Availability', '%', 'MSTAV'], '12': ['Exchange Coefficient', 'kg m-2 s-1', 'SFEXC'], '13': ['Plant Canopy Surface Water', 'kg m-2', 'CNWAT'], '14': ['Blackadars Mixing Length Scale', 'm', 'BMIXL'], '15': ['Canopy Conductance', 'm s-1', 'CCOND'], '16': ['Minimal Stomatal Resistance', 's m-1', 'RSMIN'], '17': ['Wilting Point (Parameter Deprecated, see Note 1)', 'Proportion', 'WILT'], '18': ['Solar parameter in canopy conductance', 'Proportion', 'RCS'], '19': ['Temperature parameter in canopy', 'Proportion', 'RCT'], '20': ['Humidity parameter in canopy conductance', 'Proportion', 'RCQ'], '21': ['Soil moisture parameter in canopy conductance', 'Proportion', 'RCSOL'], '22': ['Soil Moisture (Parameter Deprecated, See Note 3)', 'unknown', 'unknown'], '23': ['Column-Integrated Soil Water (Parameter Deprecated, See Note 3)', 'kg m-2', 'CISOILW'], '24': ['Heat Flux', 'W m-2', 'HFLUX'], '25': ['Volumetric Soil Moisture', 'm3 m-3', 'VSOILM'], '26': ['Wilting Point', 'kg m-3', 'WILT'], '27': ['Volumetric Wilting Point', 'm3 m-3', 'VWILTP'], '28': ['Leaf Area Index', 'Numeric', 'LEAINX'], '29': ['Evergreen Forest Cover', 'Proportion', 'EVGFC'], '30': ['Deciduous Forest Cover', 'Proportion', 'DECFC'], '31': ['Normalized Differential Vegetation Index (NDVI)', 'Numeric', 'NDVINX'], '32': ['Root Depth of Vegetation', 'm', 'RDVEG'], '33': ['Water Runoff and Drainage', 'kg m-2', 'WROD'], '34': ['Surface Water Runoff', 'kg m-2', 'SFCWRO'], '35': ['Tile Class', 'See Table 4.243', 'TCLASS'], '36': ['Tile Fraction', 'Proportion', 'TFRCT'], '37': ['Tile Percentage', '%', 'TPERCT'], '38': ['Soil Volumetric Ice Content (Water Equivalent)', 'm3 m-3', 'SOILVIC'], '39': ['Evapotranspiration Rate', 'kg m-2 s-1', 'EVAPTRAT'], '40': ['Potential Evapotranspiration Rate', 'kg m-2 s-1', 'PEVAPTRAT'], '41': ['Snow Melt Rate', 'kg m-2 s-1', 'SMRATE'], '42': ['Water Runoff and Drainage Rate', 'kg m-2 s-1', 'WRDRATE'], '43': ['Drainage direction', 'See Table 4.250', 'DRAINDIR'], '44': ['Upstream Area', 'm2', 'UPSAREA'], '45': ['Wetland Cover', 'Proportion', 'WETCOV'], '46': ['Wetland Type', 'See Table 4.239', 'WETTYPE'], '47': ['Irrigation Cover', 'Proportion', 'IRRCOV'], '48': ['C4 Crop Cover', 'Proportion', 'CROPCOV'], '49': ['C4 Grass Cover', 'Proportion', 'GRASSCOV'], '50': ['Skin Resovoir Content', 'kg m-2', 'SKINRC'], '51': ['Surface Runoff Rate', 'kg m-2 s-1', 'SURFRATE'], '52': ['Subsurface Runoff Rate', 'kg m-2 s-1', 'SUBSRATE'], '53': ['Low-Vegetation Cover', 'Proportion', 'LOVEGCOV'], '54': ['High-Vegetation Cover', 'Proportion', 'HIVEGCOV'], '55': ['Leaf Area Index (Low-Vegetation)', 'm2 m-2', 'LAILO'], '56': ['Leaf Area Index (High-Vegetation)', 'm2 m-2', 'LAIHI'], '57': ['Type of Low-Vegetation', 'See Table 4.234', 'TYPLOVEG'], '58': ['Type of High-Vegetation', 'See Table 4.234', 'TYPHIVEG'], '59': ['Net Ecosystem Exchange Flux', 'kg-2 s-1', 'NECOFLUX'], '60': ['Gross Primary Production Flux', 'kg-2 s-1', 'GROSSFLUX'], '61': ['Ecosystem Respiration Flux', 'kg-2 s-1', 'ECORFLUX'], '62': ['Emissivity', 'Proportion', 'EMISS'], '63': ['Canopy air temperature', 'K', 'CANTMP'], '64-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Volumetric Soil Moisture Content', 'Fraction', 'SOILW'], '193': ['Ground Heat Flux', 'W m-2', 'GFLUX'], '194': ['Moisture Availability', '%', 'MSTAV'], '195': ['Exchange Coefficient', '(kg m-3) (m s-1)', 'SFEXC'], '196': ['Plant Canopy Surface Water', 'kg m-2', 'CNWAT'], '197': ['Blackadar\u2019s Mixing Length Scale', 'm', 'BMIXL'], '198': ['Vegetation Type', 'Integer (0-13)', 'VGTYP'], '199': ['Canopy Conductance', 'm s-1', 'CCOND'], '200': ['Minimal Stomatal Resistance', 's m-1', 'RSMIN'], '201': ['Wilting Point', 'Fraction', 'WILT'], '202': ['Solar parameter in canopy conductance', 'Fraction', 'RCS'], '203': ['Temperature parameter in canopy conductance', 'Fraction', 'RCT'], '204': ['Humidity parameter in canopy conductance', 'Fraction', 'RCQ'], '205': ['Soil moisture parameter in canopy conductance', 'Fraction', 'RCSOL'], '206': ['Rate of water dropping from canopy to ground', 'unknown', 'RDRIP'], '207': ['Ice-free water surface', '%', 'ICWAT'], '208': ['Surface exchange coefficients for T and Q divided by delta z', 'm s-1', 'AKHS'], '209': ['Surface exchange coefficients for U and V divided by delta z', 'm s-1', 'AKMS'], '210': ['Vegetation canopy temperature', 'K', 'VEGT'], '211': ['Surface water storage', 'kg m-2', 'SSTOR'], '212': ['Liquid soil moisture content (non-frozen)', 'kg m-2', 'LSOIL'], '213': ['Open water evaporation (standing water)', 'W m-2', 'EWATR'], '214': ['Groundwater recharge', 'kg m-2', 'GWREC'], '215': ['Flood plain recharge', 'kg m-2', 'QREC'], '216': ['Roughness length for heat', 'm', 'SFCRH'], '217': ['Normalized Difference Vegetation Index', 'unknown', 'NDVI'], '218': ['Land-sea coverage (nearest neighbor) [land=1,sea=0]', 'unknown', 'LANDN'], '219': ['Asymptotic mixing length scale', 'm', 'AMIXL'], '220': ['Water vapor added by precip assimilation', 'kg m-2', 'WVINC'], '221': ['Water condensate added by precip assimilation', 'kg m-2', 'WCINC'], '222': ['Water Vapor Flux Convergance (Vertical Int)', 'kg m-2', 'WVCONV'], '223': ['Water Condensate Flux Convergance (Vertical Int)', 'kg m-2', 'WCCONV'], '224': ['Water Vapor Zonal Flux (Vertical Int)', 'kg m-2', 'WVUFLX'], '225': ['Water Vapor Meridional Flux (Vertical Int)', 'kg m-2', 'WVVFLX'], '226': ['Water Condensate Zonal Flux (Vertical Int)', 'kg m-2', 'WCUFLX'], '227': ['Water Condensate Meridional Flux (Vertical Int)', 'kg m-2', 'WCVFLX'], '228': ['Aerodynamic conductance', 'm s-1', 'ACOND'], '229': ['Canopy water evaporation', 'W m-2', 'EVCW'], '230': ['Transpiration', 'W m-2', 'TRANS'], '231': ['Seasonally Minimum Green Vegetation Fraction (over 1-year period)', '%', 'VEGMIN'], '232': ['Seasonally Maximum Green Vegetation Fraction (over 1-year period)', '%', 'VEGMAX'], '233': ['Land Fraction', 'Fraction', 'LANDFRC'], '234': ['Lake Fraction', 'Fraction', 'LAKEFRC'], '235': ['Precipitation Advected Heat Flux', 'W m-2', 'PAHFLX'], '236': ['Water Storage in Aquifer', 'kg m-2', 'WATERSA'], '237': ['Evaporation of Intercepted Water', 'kg m-2', 'EIWATER'], '238': ['Plant Transpiration', 'kg m-2', 'PLANTTR'], '239': ['Soil Surface Evaporation', 'kg m-2', 'SOILSE'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_1", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_1", "kind": "variable", "doc": "\n", "default_value": "{'0-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Cold Advisory for Newborn Livestock', 'unknown', 'CANL'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_3", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_3", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Soil Type', 'See Table 4.213', 'SOTYP'], '1': ['Upper Layer Soil Temperature', 'K', 'UPLST'], '2': ['Upper Layer Soil Moisture', 'kg m-3', 'UPLSM'], '3': ['Lower Layer Soil Moisture', 'kg m-3', 'LOWLSM'], '4': ['Bottom Layer Soil Temperature', 'K', 'BOTLST'], '5': ['Liquid Volumetric Soil Moisture(non-frozen)', 'Proportion', 'SOILL'], '6': ['Number of Soil Layers in Root Zone', 'Numeric', 'RLYRS'], '7': ['Transpiration Stress-onset (soil moisture)', 'Proportion', 'SMREF'], '8': ['Direct Evaporation Cease (soil moisture)', 'Proportion', 'SMDRY'], '9': ['Soil Porosity', 'Proportion', 'POROS'], '10': ['Liquid Volumetric Soil Moisture (Non-Frozen)', 'm3 m-3', 'LIQVSM'], '11': ['Volumetric Transpiration Stree-Onset(Soil Moisture)', 'm3 m-3', 'VOLTSO'], '12': ['Transpiration Stree-Onset(Soil Moisture)', 'kg m-3', 'TRANSO'], '13': ['Volumetric Direct Evaporation Cease(Soil Moisture)', 'm3 m-3', 'VOLDEC'], '14': ['Direct Evaporation Cease(Soil Moisture)', 'kg m-3', 'DIREC'], '15': ['Soil Porosity', 'm3 m-3', 'SOILP'], '16': ['Volumetric Saturation Of Soil Moisture', 'm3 m-3', 'VSOSM'], '17': ['Saturation Of Soil Moisture', 'kg m-3', 'SATOSM'], '18': ['Soil Temperature', 'K', 'SOILTMP'], '19': ['Soil Moisture', 'kg m-3', 'SOILMOI'], '20': ['Column-Integrated Soil Moisture', 'kg m-2', 'CISOILM'], '21': ['Soil Ice', 'kg m-3', 'SOILICE'], '22': ['Column-Integrated Soil Ice', 'kg m-2', 'CISICE'], '23': ['Liquid Water in Snow Pack', 'kg m-2', 'LWSNWP'], '24': ['Frost Index', 'kg day-1', 'FRSTINX'], '25': ['Snow Depth at Elevation Bands', 'kg m-2', 'SNWDEB'], '26': ['Soil Heat Flux', 'W m-2', 'SHFLX'], '27': ['Soil Depth', 'm', 'SOILDEP'], '28': ['Snow Temperature', 'K', 'SNOWTMP'], '29': ['Ice Temperature', 'K', 'ICETMP'], '30': ['Soil wetness index', 'Numeric', 'SWET'], '31-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Liquid Volumetric Soil Moisture (non Frozen)', 'Proportion', 'SOILL'], '193': ['Number of Soil Layers in Root Zone', 'non-dim', 'RLYRS'], '194': ['Surface Slope Type', 'Index', 'SLTYP'], '195': ['Transpiration Stress-onset (soil moisture)', 'Proportion', 'SMREF'], '196': ['Direct Evaporation Cease (soil moisture)', 'Proportion', 'SMDRY'], '197': ['Soil Porosity', 'Proportion', 'POROS'], '198': ['Direct Evaporation from Bare Soil', 'W m-2', 'EVBS'], '199': ['Land Surface Precipitation Accumulation', 'kg m-2', 'LSPA'], '200': ['Bare Soil Surface Skin temperature', 'K', 'BARET'], '201': ['Average Surface Skin Temperature', 'K', 'AVSFT'], '202': ['Effective Radiative Skin Temperature', 'K', 'RADT'], '203': ['Field Capacity', 'Fraction', 'FLDCP'], '204': ['Soil Moisture Availability In The Top Soil Layer', '%', 'MSTAV'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_4", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_4", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Fire Outlook', 'See Table 4.224', 'FIREOLK'], '1': ['Fire Outlook Due to Dry Thunderstorm', 'See Table 4.224', 'FIREODT'], '2': ['Haines Index', 'Numeric', 'HINDEX'], '3': ['Fire Burned Area', '%', 'FBAREA'], '4': ['Fosberg Index', 'Numeric', 'FOSINDX'], '5': ['Fire Weath Index (Canadian Forest Service)', 'Numeric', 'FWINX'], '6': ['Fine Fuel Moisture Code (Canadian Forest Service)', 'Numeric', 'FFMCODE'], '7': ['Duff Moisture Code (Canadian Forest Service)', 'Numeric', 'DUFMCODE'], '8': ['Drought Code (Canadian Forest Service)', 'Numeric', 'DRTCODE'], '9': ['Initial Fire Spread Index (Canadian Forest Service)', 'Numeric', 'INFSINX'], '10': ['Fire Build Up Index (Canadian Forest Service)', 'Numeric', 'FBUPINX'], '11': ['Fire Daily Severity Rating (Canadian Forest Service)', 'Numeric', 'FDSRTE'], '12': ['Keetch-Byram Drought Index', 'Numeric', 'KRIDX'], '13': ['Drought Factor (as defined by the Australian forest service)', 'Numeric', 'DRFACT'], '14': ['Rate of Spread (as defined by the Australian forest service)', 'm s-1', 'RATESPRD'], '15': ['Fire Danger index (as defined by the Australian forest service)', 'Numeric', 'FIREDIDX'], '16': ['Spread component (as defined by the US Forest Service National Fire Danger Rating System)', 'Numeric', 'SPRDCOMP'], '17': ['Burning Index (as defined by the Australian forest service)', 'Numeric', 'BURNIDX'], '18': ['Ignition Component (as defined by the Australian forest service)', '%', 'IGNCOMP'], '19': ['Energy Release Component (as defined by the Australian forest service)', 'J m-2', 'ENRELCOM'], '20': ['Burning Area', '%', 'BURNAREA'], '21': ['Burnable Area', '%', 'BURNABAREA'], '22': ['Unburnable Area', '%', 'UNBURNAREA'], '23': ['Fuel Load', 'kg m-2', 'FUELLOAD'], '24': ['Combustion Completeness', '%', 'COMBCO'], '25': ['Fuel Moisture Content', 'kg kg-1', 'FUELMC'], '26': ['Wildfire Potential (as defined by NOAA Global Systems Laboratory)', 'Numeric', 'WFIREPOT'], '27': ['Live leaf fuel load', 'kg m-2', 'LLFL'], '28': ['Live wood fuel load', 'kg m-2', 'LWFL'], '29': ['Dead leaf fuel load', 'kg m-2', 'DLFL'], '30': ['Dead wood fuel load', 'kg m-2', 'DWFL'], '31': ['Live fuel moisture content', 'kg kg-1', 'LFMC'], '32': ['Fine dead leaf moisture content', 'kg kg-1', 'FDLMC'], '33': ['Dense dead leaf moisture content', 'kg kg-1', 'DDLMC'], '34': ['Fine dead wood moisture content', 'kg kg-1', 'FDWMC'], '35': ['Dense dead wood moisture content', 'kg kg-1', 'DDWMC'], '36': ['Fire radiative power\\t(Tentatively accpeted)', 'W', 'FRADPOW'], '37-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_5", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_5", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Glacier Cover', 'Proportion', 'GLACCOV'], '1': ['Glacier Temperature', 'K', 'GLACTMP'], '2-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline20", "modulename": "grib2io.tables.section4_discipline20", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline20.table_4_2_20_0", "modulename": "grib2io.tables.section4_discipline20", "qualname": "table_4_2_20_0", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Universal Thermal Climate Index', 'K', 'UTHCIDX'], '1': ['Mean Radiant Temperature', 'K', 'MEANRTMP'], '2': ['Wet-bulb Globe Temperature (see Note)', 'K', 'WETBGTMP'], '3': ['Globe Temperature (see Note)', 'K', 'GLOBETMP'], '4': ['Humidex', 'K', 'HUMIDX'], '5': ['Effective Temperature', 'K', 'EFFTEMP'], '6': ['Normal Effective Temperature', 'K', 'NOREFTMP'], '7': ['Standard Effective Temperature', 'K', 'STDEFTMP'], '8': ['Physiological Equivalent Temperature', 'K', 'PEQUTMP'], '9-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline20.table_4_2_20_1", "modulename": "grib2io.tables.section4_discipline20", "qualname": "table_4_2_20_1", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Malaria Cases', 'Fraction', 'MALACASE'], '1': ['Malaria Circumsporozoite Protein Rate', 'Fraction', 'MACPRATE'], '2': ['Plasmodium Falciparum Entomological Inoculation Rate', 'Bites per day per person', 'PFEIRATE'], '3': ['Human Bite Rate by Anopheles Vectors', 'Bites per day per person', 'HBRATEAV'], '4': ['Malaria Immunity', 'Fraction', 'MALAIMM'], '5': ['Falciparum Parasite Rates', 'Fraction', 'FALPRATE'], '6': ['Detectable Falciparum Parasite Ratio (after day 10)', 'Fraction', 'DFPRATIO'], '7': ['Anopheles Vector to Host Ratio', 'Fraction', 'AVHRATIO'], '8': ['Anopheles Vector Number', 'Number m-2', 'AVECTNUM'], '9': ['Fraction of Malarial Vector Reproductive Habitat', 'Fraction', 'FMALVRH'], '10-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline20.table_4_2_20_2", "modulename": "grib2io.tables.section4_discipline20", "qualname": "table_4_2_20_2", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Population Density', 'Person m-2', 'POPDEN'], '1-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline209", "modulename": "grib2io.tables.section4_discipline209", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_2", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_2", "kind": "variable", "doc": "\n", "default_value": "{'0': ['CG Average Lightning Density 1-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_001min_AvgDensity'], '1': ['CG Average Lightning Density 5-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_005min_AvgDensity'], '2': ['CG Average Lightning Density 15-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_015min_AvgDensity'], '3': ['CG Average Lightning Density 30-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_030min_AvgDensity'], '5': ['Lightning Probability 0-30 minutes - NLDN', '%', 'LightningProbabilityNext30minGrid'], '6': ['Lightning Probability 0-30 minutes - NLDN', '%', 'LightningProbabilityNext60minGrid'], '7': ['Rapid lightning increases and decreases ', 'non-dim', 'LightningJumpGrid'], '8': ['Rapid lightning increases and decreases over 5-minutes ', 'non-dim', 'LightningJumpGrid_Max_005min']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_3", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_3", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Azimuth Shear 0-2km AGL', '0.001/s', 'MergedAzShear0to2kmAGL'], '1': ['Azimuth Shear 3-6km AGL', '0.001/s', 'MergedAzShear3to6kmAGL'], '2': ['Rotation Track 0-2km AGL 30-min', '0.001/s', 'RotationTrack30min'], '3': ['Rotation Track 0-2km AGL 60-min', '0.001/s', 'RotationTrack60min'], '4': ['Rotation Track 0-2km AGL 120-min', '0.001/s', 'RotationTrack120min'], '5': ['Rotation Track 0-2km AGL 240-min', '0.001/s', 'RotationTrack240min'], '6': ['Rotation Track 0-2km AGL 360-min', '0.001/s', 'RotationTrack360min'], '7': ['Rotation Track 0-2km AGL 1440-min', '0.001/s', 'RotationTrack1440min'], '14': ['Rotation Track 3-6km AGL 30-min', '0.001/s', 'RotationTrackML30min'], '15': ['Rotation Track 3-6km AGL 60-min', '0.001/s', 'RotationTrackML60min'], '16': ['Rotation Track 3-6km AGL 120-min', '0.001/s', 'RotationTrackML120min'], '17': ['Rotation Track 3-6km AGL 240-min', '0.001/s', 'RotationTrackML240min'], '18': ['Rotation Track 3-6km AGL 360-min', '0.001/s', 'RotationTrackML360min'], '19': ['Rotation Track 3-6km AGL 1440-min', '0.001/s', 'RotationTrackML1440min'], '26': ['Severe Hail Index', 'index', 'SHI'], '27': ['Prob of Severe Hail', '%', 'POSH'], '28': ['Maximum Estimated Size of Hail (MESH)', 'mm', 'MESH'], '29': ['MESH Hail Swath 30-min', 'mm', 'MESHMax30min'], '30': ['MESH Hail Swath 60-min', 'mm', 'MESHMax60min'], '31': ['MESH Hail Swath 120-min', 'mm', 'MESHMax120min'], '32': ['MESH Hail Swath 240-min', 'mm', 'MESHMax240min'], '33': ['MESH Hail Swath 360-min', 'mm', 'MESHMax360min'], '34': ['MESH Hail Swath 1440-min', 'mm', 'MESHMax1440min'], '37': ['VIL Swath 120-min', 'kg/m^2', 'VIL_Max_120min'], '40': ['VIL Swath 1440-min', 'kg/m^2', 'VIL_Max_1440min'], '41': ['Vertically Integrated Liquid', 'kg/m^2', 'VIL'], '42': ['Vertically Integrated Liquid Density', 'g/m^3', 'VIL_Density'], '43': ['Vertically Integrated Ice', 'kg/m^2', 'VII'], '44': ['Echo Top - 18 dBZ', 'km MSL', 'EchoTop_18'], '45': ['Echo Top - 30 dBZ', 'km MSL', 'EchoTop_30'], '46': ['Echo Top - 50 dBZ', 'km MSL', 'EchoTop_50'], '47': ['Echo Top - 60 dBZ', 'km MSL', 'EchoTop_60'], '48': ['Thickness [50 dBZ top - (-20C)]', 'km', 'H50AboveM20C'], '49': ['Thickness [50 dBZ top - 0C]', 'km', 'H50Above0C'], '50': ['Thickness [60 dBZ top - (-20C)]', 'km', 'H60AboveM20C'], '51': ['Thickness [60 dBZ top - 0C]', 'km', 'H60Above0C'], '52': ['Isothermal Reflectivity at 0C', 'dBZ', 'Reflectivity_0C'], '53': ['Isothermal Reflectivity at -5C', 'dBZ', 'Reflectivity_-5C'], '54': ['Isothermal Reflectivity at -10C', 'dBZ', 'Reflectivity_-10C'], '55': ['Isothermal Reflectivity at -15C', 'dBZ', 'Reflectivity_-15C'], '56': ['Isothermal Reflectivity at -20C', 'dBZ', 'Reflectivity_-20C'], '57': ['ReflectivityAtLowestAltitude resampled from 1 to 5km resolution', 'dBZ', 'ReflectivityAtLowestAltitude5km'], '58': ['Non Quality Controlled Reflectivity At Lowest Altitude', 'dBZ', 'MergedReflectivityAtLowestAltitude']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_6", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_6", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Surface Precipitation Type (Convective, Stratiform, Tropical, Hail, Snow)', 'flag', 'PrecipFlag'], '1': ['Radar Precipitation Rate', 'mm/hr', 'PrecipRate'], '2': ['Radar precipitation accumulation 1-hour', 'mm', 'RadarOnly_QPE_01H'], '3': ['Radar precipitation accumulation 3-hour', 'mm', 'RadarOnly_QPE_03H'], '4': ['Radar precipitation accumulation 6-hour', 'mm', 'RadarOnly_QPE_06H'], '5': ['Radar precipitation accumulation 12-hour', 'mm', 'RadarOnly_QPE_12H'], '6': ['Radar precipitation accumulation 24-hour', 'mm', 'RadarOnly_QPE_24H'], '7': ['Radar precipitation accumulation 48-hour', 'mm', 'RadarOnly_QPE_48H'], '8': ['Radar precipitation accumulation 72-hour', 'mm', 'RadarOnly_QPE_72H'], '30': ['Multi-sensor accumulation 1-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_01H_Pass1'], '31': ['Multi-sensor accumulation 3-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_03H_Pass1'], '32': ['Multi-sensor accumulation 6-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_06H_Pass1'], '33': ['Multi-sensor accumulation 12-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_12H_Pass1'], '34': ['Multi-sensor accumulation 24-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_24H_Pass1'], '35': ['Multi-sensor accumulation 48-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_48H_Pass1'], '36': ['Multi-sensor accumulation 72-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_72H_Pass1'], '37': ['Multi-sensor accumulation 1-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_01H_Pass2'], '38': ['Multi-sensor accumulation 3-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_03H_Pass2'], '39': ['Multi-sensor accumulation 6-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_06H_Pass2'], '40': ['Multi-sensor accumulation 12-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_12H_Pass2'], '41': ['Multi-sensor accumulation 24-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_24H_Pass2'], '42': ['Multi-sensor accumulation 48-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_48H_Pass2'], '43': ['Multi-sensor accumulation 72-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_72H_Pass2'], '44': ['Method IDs for blended single and dual-pol derived precip rates ', 'flag', 'SyntheticPrecipRateID'], '45': ['Radar precipitation accumulation 15-minute', 'mm', 'RadarOnly_QPE_15M'], '46': ['Radar precipitation accumulation since 12Z', 'mm', 'RadarOnly_QPE_Since12Z']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_7", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_7", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Model Surface temperature', 'C', 'Model_SurfaceTemp'], '1': ['Model Surface wet bulb temperature', 'C', 'Model_WetBulbTemp'], '2': ['Probability of warm rain', '%', 'WarmRainProbability'], '3': ['Model Freezing Level Height', 'm MSL', 'Model_0degC_Height'], '4': ['Brightband Top Height', 'm AGL', 'BrightBandTopHeight'], '5': ['Brightband Bottom Height', 'm AGL', 'BrightBandBottomHeight']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_8", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_8", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Radar Quality Index', 'non-dim', 'RadarQualityIndex'], '1': ['Gauge Influence Index for 1-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_01H_Pass1'], '2': ['Gauge Influence Index for 3-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_03H_Pass1'], '3': ['Gauge Influence Index for 6-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_06H_Pass1'], '4': ['Gauge Influence Index for 12-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_12H_Pass1'], '5': ['Gauge Influence Index for 24-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_24H_Pass1'], '6': ['Gauge Influence Index for 48-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_48H_Pass1'], '7': ['Gauge Influence Index for 72-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_72H_Pass1'], '8': ['Seamless Hybrid Scan Reflectivity with VPR correction', 'dBZ', 'SeamlessHSR'], '9': ['Height of Seamless Hybrid Scan Reflectivity', 'km AGL', 'SeamlessHSRHeight'], '10': ['Radar 1-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_01H'], '11': ['Radar 3-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_03H'], '12': ['Radar 6-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_06H'], '13': ['Radar 12-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_12H'], '14': ['Radar 24-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_24H'], '15': ['Radar 48-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_48H'], '16': ['Radar 72-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_72H'], '17': ['Gauge Influence Index for 1-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_01H_Pass2'], '18': ['Gauge Influence Index for 3-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_03H_Pass2'], '19': ['Gauge Influence Index for 6-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_06H_Pass2'], '20': ['Gauge Influence Index for 12-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_12H_Pass2'], '21': ['Gauge Influence Index for 24-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_24H_Pass2'], '22': ['Gauge Influence Index for 48-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_48H_Pass2'], '23': ['Gauge Influence Index for 72-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_72H_Pass2']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_9", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_9", "kind": "variable", "doc": "\n", "default_value": "{'0': ['3D Reflectivty Mosaic - 33 CAPPIS (500-19000m)', 'dBZ', 'MergedReflectivityQC'], '3': ['3D RhoHV Mosaic - 33 CAPPIS (500-19000m)', 'non-dim', 'MergedRhoHV'], '4': ['3D Zdr Mosaic - 33 CAPPIS (500-19000m)', 'dB', 'MergedZdr']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_10", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_10", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Composite Reflectivity Mosaic (optimal method) resampled from 1 to 5km', 'dBZ', 'MergedReflectivityQCComposite5km'], '1': ['Height of Composite Reflectivity Mosaic (optimal method)', 'm MSL', 'HeightCompositeReflectivity'], '2': ['Low-Level Composite Reflectivity Mosaic (0-4km)', 'dBZ', 'LowLevelCompositeReflectivity'], '3': ['Height of Low-Level Composite Reflectivity Mosaic (0-4km)', 'm MSL', 'HeightLowLevelCompositeReflectivity'], '4': ['Layer Composite Reflectivity Mosaic 0-24kft (low altitude)', 'dBZ', 'LayerCompositeReflectivity_Low'], '5': ['Layer Composite Reflectivity Mosaic 24-60 kft (highest altitude)', 'dBZ', 'LayerCompositeReflectivity_High'], '6': ['Layer Composite Reflectivity Mosaic 33-60 kft (super high altitude)', 'dBZ', 'LayerCompositeReflectivity_Super'], '7': ['Composite Reflectivity Hourly Maximum', 'dBZ', 'CREF_1HR_MAX'], '9': ['Layer Composite Reflectivity Mosaic (2-4.5km) (for ANC)', 'dBZ', 'LayerCompositeReflectivity_ANC'], '10': ['Base Reflectivity Hourly Maximum', 'dBZ', 'BREF_1HR_MAX']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_11", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_11", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Base Reflectivity Mosaic (optimal method)', 'dBZ', 'MergedBaseReflectivityQC'], '1': ['Raw Composite Reflectivity Mosaic (max ref)', 'dBZ', 'MergedReflectivityComposite'], '2': ['Composite Reflectivity Mosaic (max ref)', 'dBZ', 'MergedReflectivityQComposite'], '3': ['Raw Base Reflectivity Mosaic (optimal method)', 'dBZ', 'MergedBaseReflectivity']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_12", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_12", "kind": "variable", "doc": "\n", "default_value": "{'0': ['FLASH QPE-CREST Unit Streamflow', 'm^3/s/km^2', 'FLASH_CREST_MAXUNITSTREAMFLOW'], '1': ['FLASH QPE-CREST Streamflow', 'm^3/s', 'FLASH_CREST_MAXSTREAMFLOW'], '2': ['FLASH QPE-CREST Soil Saturation', '%', 'FLASH_CREST_MAXSOILSAT'], '4': ['FLASH QPE-SAC Unit Streamflow', 'm^3/s/km^2', 'FLASH_SAC_MAXUNITSTREAMFLOW'], '5': ['FLASH QPE-SAC Streamflow', 'm^3/s', 'FLASH_SAC_MAXSTREAMFLOW'], '6': ['FLASH QPE-SAC Soil Saturation', '%', 'FLASH_SAC_MAXSOILSAT'], '14': ['FLASH QPE Average Recurrence Interval 30-min', 'years', 'FLASH_QPE_ARI30M'], '15': ['FLASH QPE Average Recurrence Interval 01H', 'years', 'FLASH_QPE_ARI01H'], '16': ['FLASH QPE Average Recurrence Interval 03H', 'years', 'FLASH_QPE_ARI03H'], '17': ['FLASH QPE Average Recurrence Interval 06H', 'years', 'FLASH_QPE_ARI06H'], '18': ['FLASH QPE Average Recurrence Interval 12H', 'years', 'FLASH_QPE_ARI12H'], '19': ['FLASH QPE Average Recurrence Interval 24H', 'years', 'FLASH_QPE_ARI24H'], '20': ['FLASH QPE Average Recurrence Interval Maximum', 'years', 'FLASH_QPE_ARIMAX'], '26': ['FLASH QPE-to-FFG Ratio 01H', 'non-dim', 'FLASH_QPE_FFG01H'], '27': ['FLASH QPE-to-FFG Ratio 03H', 'non-dim', 'FLASH_QPE_FFG03H'], '28': ['FLASH QPE-to-FFG Ratio 06H', 'non-dim', 'FLASH_QPE_FFG06H'], '29': ['FLASH QPE-to-FFG Ratio Maximum', 'non-dim', 'FLASH_QPE_FFGMAX'], '39': ['FLASH QPE-Hydrophobic Unit Streamflow', 'm^3/s/km^2', 'FLASH_HP_MAXUNITSTREAMFLOW'], '40': ['FLASH QPE-Hydrophobic Streamflow', 'm^3/s', 'FLASH_HP_MAXSTREAMFLOW']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_13", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_13", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Likelihood of convection over the next 01H', 'non-dim', 'ANC_ConvectiveLikelihood'], '1': ['01H reflectivity forecast', 'dBZ', 'ANC_FinalForecast']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_14", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_14", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Level III High Resolution Enhanced Echo Top mosaic', 'kft', 'LVL3_HREET'], '1': ['Level III High Resouion VIL mosaic', 'kg/m^2', 'LVL3_HighResVIL']}"}, {"fullname": "grib2io.tables.section4_discipline3", "modulename": "grib2io.tables.section4_discipline3", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_0", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_0", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Scaled Radiance', 'Numeric', 'SRAD'], '1': ['Scaled Albedo', 'Numeric', 'SALBEDO'], '2': ['Scaled Brightness Temperature', 'Numeric', 'SBTMP'], '3': ['Scaled Precipitable Water', 'Numeric', 'SPWAT'], '4': ['Scaled Lifted Index', 'Numeric', 'SLFTI'], '5': ['Scaled Cloud Top Pressure', 'Numeric', 'SCTPRES'], '6': ['Scaled Skin Temperature', 'Numeric', 'SSTMP'], '7': ['Cloud Mask', 'See Table 4.217', 'CLOUDM'], '8': ['Pixel scene type', 'See Table 4.218', 'PIXST'], '9': ['Fire Detection Indicator', 'See Table 4.223', 'FIREDI'], '10-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_1", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_1", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Estimated Precipitation', 'kg m-2', 'ESTP'], '1': ['Instantaneous Rain Rate', 'kg m-2 s-1', 'IRRATE'], '2': ['Cloud Top Height', 'm', 'CTOPH'], '3': ['Cloud Top Height Quality Indicator', 'Code table 4.219', 'CTOPHQI'], '4': ['Estimated u-Component of Wind', 'm s-1', 'ESTUGRD'], '5': ['Estimated v-Component of Wind', 'm s-1', 'ESTVGRD'], '6': ['Number Of Pixels Used', 'Numeric', 'NPIXU'], '7': ['Solar Zenith Angle', '\u00b0', 'SOLZA'], '8': ['Relative Azimuth Angle', '\u00b0', 'RAZA'], '9': ['Reflectance in 0.6 Micron Channel', '%', 'RFL06'], '10': ['Reflectance in 0.8 Micron Channel', '%', 'RFL08'], '11': ['Reflectance in 1.6 Micron Channel', '%', 'RFL16'], '12': ['Reflectance in 3.9 Micron Channel', '%', 'RFL39'], '13': ['Atmospheric Divergence', 's-1', 'ATMDIV'], '14': ['Cloudy Brightness Temperature', 'K', 'CBTMP'], '15': ['Clear Sky Brightness Temperature', 'K', 'CSBTMP'], '16': ['Cloudy Radiance (with respect to wave number)', 'W m-1 sr-1', 'CLDRAD'], '17': ['Clear Sky Radiance (with respect to wave number)', 'W m-1 sr-1', 'CSKYRAD'], '18': ['Reserved', 'unknown', 'unknown'], '19': ['Wind Speed', 'm s-1', 'WINDS'], '20': ['Aerosol Optical Thickness at 0.635 \u00b5m', 'unknown', 'AOT06'], '21': ['Aerosol Optical Thickness at 0.810 \u00b5m', 'unknown', 'AOT08'], '22': ['Aerosol Optical Thickness at 1.640 \u00b5m', 'unknown', 'AOT16'], '23': ['Angstrom Coefficient', 'unknown', 'ANGCOE'], '24-26': ['Reserved', 'unknown', 'unknown'], '27': ['Bidirectional Reflecance Factor', 'Numeric', 'BRFLF'], '28': ['Brightness Temperature', 'K', 'SPBRT'], '29': ['Scaled Radiance', 'Numeric', 'SCRAD'], '30': ['Reflectance in 0.4 Micron Channel', '%', 'RFL04'], '31': ['Cloudy reflectance', '%', 'CLDREF'], '32': ['Clear reflectance', '%', 'CLRREF'], '33-97': ['Reserved', 'unknown', 'unknown'], '98': ['Correlation coefficient between MPE rain rates for the co-located IR data and the microwave data rain rates', 'Numeric', 'CCMPEMRR'], '99': ['Standard deviation between MPE rain rates for the co-located IR data and the microwave data rain rates', 'Numeric', 'SDMPEMRR'], '100-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Scatterometer Estimated U Wind Component', 'm s-1', 'USCT'], '193': ['Scatterometer Estimated V Wind Component', 'm s-1', 'VSCT'], '194': ['Scatterometer Wind Quality', 'unknown', 'SWQI'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_2", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_2", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Clear Sky Probability', '%', 'CSKPROB'], '1': ['Cloud Top Temperature', 'K', 'CTOPTMP'], '2': ['Cloud Top Pressure', 'Pa', 'CTOPRES'], '3': ['Cloud Type', 'See Table 4.218', 'CLDTYPE'], '4': ['Cloud Phase', 'See Table 4.218', 'CLDPHAS'], '5': ['Cloud Optical Depth', 'Numeric', 'CLDODEP'], '6': ['Cloud Particle Effective Radius', 'm', 'CLDPER'], '7': ['Cloud Liquid Water Path', 'kg m-2', 'CLDLWP'], '8': ['Cloud Ice Water Path', 'kg m-2', 'CLDIWP'], '9': ['Cloud Albedo', 'Numeric', 'CLDALB'], '10': ['Cloud Emissivity', 'Numeric', 'CLDEMISS'], '11': ['Effective Absorption Optical Depth Ratio', 'Numeric', 'EAODR'], '12-29': ['Reserved', 'unknown', 'unknown'], '30': ['Measurement cost', 'Numeric', 'MEACST'], '41-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_3", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_3", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Probability of Encountering Marginal Visual Flight Rules Conditions', '%', 'PBMVFRC'], '1': ['Probability of Encountering Low Instrument Flight Rules Conditions', '%', 'PBLIFRC'], '2': ['Probability of Encountering Instrument Flight Rules Conditions', '%', 'PBINFRC'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_4", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_4", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Volcanic Ash Probability', '%', 'VOLAPROB'], '1': ['Volcanic Ash Cloud Top Temperature', 'K', 'VOLACDTT'], '2': ['Volcanic Ash Cloud Top Pressure', 'Pa', 'VOLACDTP'], '3': ['Volcanic Ash Cloud Top Height', 'm', 'VOLACDTH'], '4': ['Volcanic Ash Cloud Emissity', 'Numeric', 'VOLACDEM'], '5': ['Volcanic Ash Effective Absorption Depth Ratio', 'Numeric', 'VOLAEADR'], '6': ['Volcanic Ash Cloud Optical Depth', 'Numeric', 'VOLACDOD'], '7': ['Volcanic Ash Column Density', 'kg m-2', 'VOLACDEN'], '8': ['Volcanic Ash Particle Effective Radius', 'm', 'VOLAPER'], '9-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_5", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_5", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Interface Sea-Surface Temperature', 'K', 'ISSTMP'], '1': ['Skin Sea-Surface Temperature', 'K', 'SKSSTMP'], '2': ['Sub-Skin Sea-Surface Temperature', 'K', 'SSKSSTMP'], '3': ['Foundation Sea-Surface Temperature', 'K', 'FDNSSTMP'], '4': ['Estimated bias between Sea-Surface Temperature and Standard', 'K', 'EBSSTSTD'], '5': ['Estimated bias Standard Deviation between Sea-Surface Temperature and Standard', 'K', 'EBSDSSTS'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_6", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_6", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Global Solar Irradiance', 'W m-2', 'GSOLIRR'], '1': ['Global Solar Exposure', 'J m-2', 'GSOLEXP'], '2': ['Direct Solar Irradiance', 'W m-2', 'DIRSOLIR'], '3': ['Direct Solar Exposure', 'J m-2', 'DIRSOLEX'], '4': ['Diffuse Solar Irradiance', 'W m-2', 'DIFSOLIR'], '5': ['Diffuse Solar Exposure', 'J m-2', 'DIFSOLEX'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_192", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_192", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Simulated Brightness Temperature for GOES 12, Channel 2', 'K', 'SBT122'], '1': ['Simulated Brightness Temperature for GOES 12, Channel 3', 'K', 'SBT123'], '2': ['Simulated Brightness Temperature for GOES 12, Channel 4', 'K', 'SBT124'], '3': ['Simulated Brightness Temperature for GOES 12, Channel 6', 'K', 'SBT126'], '4': ['Simulated Brightness Counts for GOES 12, Channel 3', 'Byte', 'SBC123'], '5': ['Simulated Brightness Counts for GOES 12, Channel 4', 'Byte', 'SBC124'], '6': ['Simulated Brightness Temperature for GOES 11, Channel 2', 'K', 'SBT112'], '7': ['Simulated Brightness Temperature for GOES 11, Channel 3', 'K', 'SBT113'], '8': ['Simulated Brightness Temperature for GOES 11, Channel 4', 'K', 'SBT114'], '9': ['Simulated Brightness Temperature for GOES 11, Channel 5', 'K', 'SBT115'], '10': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 9', 'K', 'AMSRE9'], '11': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 10', 'K', 'AMSRE10'], '12': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 11', 'K', 'AMSRE11'], '13': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 12', 'K', 'AMSRE12'], '14': ['Simulated Reflectance Factor for ABI GOES-16, Band-1', 'unknown', 'SRFA161'], '15': ['Simulated Reflectance Factor for ABI GOES-16, Band-2', 'unknown', 'SRFA162'], '16': ['Simulated Reflectance Factor for ABI GOES-16, Band-3', 'unknown', 'SRFA163'], '17': ['Simulated Reflectance Factor for ABI GOES-16, Band-4', 'unknown', 'SRFA164'], '18': ['Simulated Reflectance Factor for ABI GOES-16, Band-5', 'unknown', 'SRFA165'], '19': ['Simulated Reflectance Factor for ABI GOES-16, Band-6', 'unknown', 'SRFA166'], '20': ['Simulated Brightness Temperature for ABI GOES-16, Band-7', 'K', 'SBTA167'], '21': ['Simulated Brightness Temperature for ABI GOES-16, Band-8', 'K', 'SBTA168'], '22': ['Simulated Brightness Temperature for ABI GOES-16, Band-9', 'K', 'SBTA169'], '23': ['Simulated Brightness Temperature for ABI GOES-16, Band-10', 'K', 'SBTA1610'], '24': ['Simulated Brightness Temperature for ABI GOES-16, Band-11', 'K', 'SBTA1611'], '25': ['Simulated Brightness Temperature for ABI GOES-16, Band-12', 'K', 'SBTA1612'], '26': ['Simulated Brightness Temperature for ABI GOES-16, Band-13', 'K', 'SBTA1613'], '27': ['Simulated Brightness Temperature for ABI GOES-16, Band-14', 'K', 'SBTA1614'], '28': ['Simulated Brightness Temperature for ABI GOES-16, Band-15', 'K', 'SBTA1615'], '29': ['Simulated Brightness Temperature for ABI GOES-16, Band-16', 'K', 'SBTA1616'], '30': ['Simulated Reflectance Factor for ABI GOES-17, Band-1', 'unknown', 'SRFA171'], '31': ['Simulated Reflectance Factor for ABI GOES-17, Band-2', 'unknown', 'SRFA172'], '32': ['Simulated Reflectance Factor for ABI GOES-17, Band-3', 'unknown', 'SRFA173'], '33': ['Simulated Reflectance Factor for ABI GOES-17, Band-4', 'unknown', 'SRFA174'], '34': ['Simulated Reflectance Factor for ABI GOES-17, Band-5', 'unknown', 'SRFA175'], '35': ['Simulated Reflectance Factor for ABI GOES-17, Band-6', 'unknown', 'SRFA176'], '36': ['Simulated Brightness Temperature for ABI GOES-17, Band-7', 'K', 'SBTA177'], '37': ['Simulated Brightness Temperature for ABI GOES-17, Band-8', 'K', 'SBTA178'], '38': ['Simulated Brightness Temperature for ABI GOES-17, Band-9', 'K', 'SBTA179'], '39': ['Simulated Brightness Temperature for ABI GOES-17, Band-10', 'K', 'SBTA1710'], '40': ['Simulated Brightness Temperature for ABI GOES-17, Band-11', 'K', 'SBTA1711'], '41': ['Simulated Brightness Temperature for ABI GOES-17, Band-12', 'K', 'SBTA1712'], '42': ['Simulated Brightness Temperature for ABI GOES-17, Band-13', 'K', 'SBTA1713'], '43': ['Simulated Brightness Temperature for ABI GOES-17, Band-14', 'K', 'SBTA1714'], '44': ['Simulated Brightness Temperature for ABI GOES-17, Band-15', 'K', 'SBTA1715'], '45': ['Simulated Brightness Temperature for ABI GOES-17, Band-16', 'K', 'SBTA1716'], '46': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-1', 'unknown', 'SRFAGR1'], '47': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-2', 'unknown', 'SRFAGR2'], '48': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-3', 'unknown', 'SRFAGR3'], '49': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-4', 'unknown', 'SRFAGR4'], '50': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-5', 'unknown', 'SRFAGR5'], '51': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-6', 'unknown', 'SRFAGR6'], '52': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-7', 'unknown', 'SBTAGR7'], '53': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-8', 'unknown', 'SBTAGR8'], '54': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-9', 'unknown', 'SBTAGR9'], '55': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-10', 'unknown', 'SBTAGR10'], '56': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-11', 'unknown', 'SBTAGR11'], '57': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-12', 'unknown', 'SBTAGR12'], '58': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-13', 'unknown', 'SBTAGR13'], '59': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-14', 'unknown', 'SBTAGR14'], '60': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-15', 'unknown', 'SBTAGR15'], '61': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-16', 'unknown', 'SBTAGR16'], '62': ['Simulated Brightness Temperature for SSMIS-F17, Channel 15', 'K', 'SSMS1715'], '63': ['Simulated Brightness Temperature for SSMIS-F17, Channel 16', 'K', 'SSMS1716'], '64': ['Simulated Brightness Temperature for SSMIS-F17, Channel 17', 'K', 'SSMS1717'], '65': ['Simulated Brightness Temperature for SSMIS-F17, Channel 18', 'K', 'SSMS1718'], '66': ['Simulated Brightness Temperature for Himawari-8, Band-7', 'K', 'SBTAHI7'], '67': ['Simulated Brightness Temperature for Himawari-8, Band-8', 'K', 'SBTAHI8'], '68': ['Simulated Brightness Temperature for Himawari-8, Band-9', 'K', 'SBTAHI9'], '69': ['Simulated Brightness Temperature for Himawari-8, Band-10', 'K', 'SBTAHI10'], '70': ['Simulated Brightness Temperature for Himawari-8, Band-11', 'K', 'SBTAHI11'], '71': ['Simulated Brightness Temperature for Himawari-8, Band-12', 'K', 'SBTAHI12'], '72': ['Simulated Brightness Temperature for Himawari-8, Band-13', 'K', 'SBTAHI13'], '73': ['Simulated Brightness Temperature for Himawari-8, Band-14', 'K', 'SBTAHI14'], '74': ['Simulated Brightness Temperature for Himawari-8, Band-15', 'K', 'SBTAHI15'], '75': ['Simulated Brightness Temperature for Himawari-8, Band-16', 'K', 'SBTAHI16'], '76': ['Simulated Brightness Temperature for ABI GOES-18, Band-7', 'K', 'SBTA187'], '77': ['Simulated Brightness Temperature for ABI GOES-18, Band-8', 'K', 'SBTA188'], '78': ['Simulated Brightness Temperature for ABI GOES-18, Band-9', 'K', 'SBTA189'], '79': ['Simulated Brightness Temperature for ABI GOES-18, Band-10', 'K', 'SBTA1810'], '80': ['Simulated Brightness Temperature for ABI GOES-18, Band-11', 'K', 'SBTA1811'], '81': ['Simulated Brightness Temperature for ABI GOES-18, Band-12', 'K', 'SBTA1812'], '82': ['Simulated Brightness Temperature for ABI GOES-18, Band-13', 'K', 'SBTA1813'], '83': ['Simulated Brightness Temperature for ABI GOES-18, Band-14', 'K', 'SBTA1814'], '84': ['Simulated Brightness Temperature for ABI GOES-18, Band-15', 'K', 'SBTA1815'], '85': ['Simulated Brightness Temperature for ABI GOES-18, Band-16', 'K', 'SBTA1816'], '86-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4", "modulename": "grib2io.tables.section4_discipline4", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_0", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_0", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Temperature', 'K', 'TMPSWP'], '1': ['Electron Temperature', 'K', 'ELECTMP'], '2': ['Proton Temperature', 'K', 'PROTTMP'], '3': ['Ion Temperature', 'K', 'IONTMP'], '4': ['Parallel Temperature', 'K', 'PRATMP'], '5': ['Perpendicular Temperature', 'K', 'PRPTMP'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_1", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_1", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Velocity Magnitude (Speed)', 'm s-1', 'SPEED'], '1': ['1st Vector Component of Velocity (Coordinate system dependent)', 'm s-1', 'VEL1'], '2': ['2nd Vector Component of Velocity (Coordinate system dependent)', 'm s-1', 'VEL2'], '3': ['3rd Vector Component of Velocity (Coordinate system dependent)', 'm s-1', 'VEL3'], '4-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_2", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_2", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Particle Number Density', 'm-3', 'PLSMDEN'], '1': ['Electron Density', 'm-3', 'ELCDEN'], '2': ['Proton Density', 'm-3', 'PROTDEN'], '3': ['Ion Density', 'm-3', 'IONDEN'], '4': ['Vertical Total Electron Content', 'TECU', 'VTEC'], '5': ['HF Absorption Frequency', 'Hz', 'ABSFRQ'], '6': ['HF Absorption', 'dB', 'ABSRB'], '7': ['Spread F', 'm', 'SPRDF'], '8': ['hF', 'm', 'HPRIMF'], '9': ['Critical Frequency', 'Hz', 'CRTFRQ'], '10': ['Maximal Usable Frequency (MUF)', 'Hz', 'MAXUFZ'], '11': ['Peak Height (hm)', 'm', 'PEAKH'], '12': ['Peak Density', 'm-3', 'PEAKDEN'], '13': ['Equivalent Slab Thickness (tau)', 'km', 'EQSLABT'], '14-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_3", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_3", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Magnetic Field Magnitude', 'T', 'BTOT'], '1': ['1st Vector Component of Magnetic Field', 'T', 'BVEC1'], '2': ['2nd Vector Component of Magnetic Field', 'T', 'BVEC2'], '3': ['3rd Vector Component of Magnetic Field', 'T', 'BVEC3'], '4': ['Electric Field Magnitude', 'V m-1', 'ETOT'], '5': ['1st Vector Component of Electric Field', 'V m-1', 'EVEC1'], '6': ['2nd Vector Component of Electric Field', 'V m-1', 'EVEC2'], '7': ['3rd Vector Component of Electric Field', 'V m-1', 'EVEC3'], '8-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_4", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_4", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Proton Flux (Differential)', '(m2 s sr eV)-1', 'DIFPFLUX'], '1': ['Proton Flux (Integral)', '(m2 s sr)-1', 'INTPFLUX'], '2': ['Electron Flux (Differential)', '(m2 s sr eV)-1', 'DIFEFLUX'], '3': ['Electron Flux (Integral)', '(m2 s sr)-1', 'INTEFLUX'], '4': ['Heavy Ion Flux (Differential)', '(m2 s sr eV / nuc)-1', 'DIFIFLUX'], '5': ['Heavy Ion Flux (iIntegral)', '(m2 s sr)-1', 'INTIFLUX'], '6': ['Cosmic Ray Neutron Flux', 'h-1', 'NTRNFLUX'], '7-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_5", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_5", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Amplitude', 'rad', 'AMPL'], '1': ['Phase', 'rad', 'PHASE'], '2': ['Frequency', 'Hz', 'FREQ'], '3': ['Wavelength', 'm', 'WAVELGTH'], '4-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_6", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_6", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Integrated Solar Irradiance', 'W m-2', 'TSI'], '1': ['Solar X-ray Flux (XRS Long)', 'W m-2', 'XLONG'], '2': ['Solar X-ray Flux (XRS Short)', 'W m-2', 'XSHRT'], '3': ['Solar EUV Irradiance', 'W m-2', 'EUVIRR'], '4': ['Solar Spectral Irradiance', 'W m-2 nm-1', 'SPECIRR'], '5': ['F10.7', 'W m-2 Hz-1', 'F107'], '6': ['Solar Radio Emissions', 'W m-2 Hz-1', 'SOLRF'], '7-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_7", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_7", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Limb Intensity', 'J m-2 s-1', 'LMBINT'], '1': ['Disk Intensity', 'J m-2 s-1', 'DSKINT'], '2': ['Disk Intensity Day', 'J m-2 s-1', 'DSKDAY'], '3': ['Disk Intensity Night', 'J m-2 s-1', 'DSKNGT'], '4-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_8", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_8", "kind": "variable", "doc": "\n", "default_value": "{'0': ['X-Ray Radiance', 'W sr-1 m-2', 'XRAYRAD'], '1': ['EUV Radiance', 'W sr-1 m-2', 'EUVRAD'], '2': ['H-Alpha Radiance', 'W sr-1 m-2', 'HARAD'], '3': ['White Light Radiance', 'W sr-1 m-2', 'WHTRAD'], '4': ['CaII-K Radiance', 'W sr-1 m-2', 'CAIIRAD'], '5': ['White Light Coronagraph Radiance', 'W sr-1 m-2', 'WHTCOR'], '6': ['Heliospheric Radiance', 'W sr-1 m-2', 'HELCOR'], '7': ['Thematic Mask', 'Numeric', 'MASK'], '8': ['Solar Induced Chlorophyll Fluorscence', 'W sr-1 m-2', 'SICFL'], '9-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_9", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_9", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Pedersen Conductivity', 'S m-1', 'SIGPED'], '1': ['Hall Conductivity', 'S m-1', 'SIGHAL'], '2': ['Parallel Conductivity', 'S m-1', 'SIGPAR'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section5", "modulename": "grib2io.tables.section5", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section5.table_5_0", "modulename": "grib2io.tables.section5", "qualname": "table_5_0", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Grid Point Data - Simple Packing (see Template 5.0)', '1': 'Matrix Value at Grid Point - Simple Packing (see Template 5.1)', '2': 'Grid Point Data - Complex Packing (see Template 5.2)', '3': 'Grid Point Data - Complex Packing and Spatial Differencing (see Template 5.3)', '4': 'Grid Point Data - IEEE Floating Point Data (see Template 5.4)', '5-39': 'Reserved', '40': 'Grid point data - JPEG 2000 code stream format (see Template 5.40)', '41': 'Grid point data - Portable Network Graphics (PNG) (see Template 5.41)', '42': 'Grid point data - CCSDS recommended lossless compression (see Template 5.42)', '43-49': 'Reserved', '50': 'Spectral Data - Simple Packing (see Template 5.50)', '51': 'Spectral Data - Complex Packing (see Template 5.51)', '52': 'Reserved', '53': 'Spectral data for limited area models - complex packing (see Template 5.53)', '54-60': 'Reserved', '61': 'Grid Point Data - Simple Packing With Logarithm Pre-processing (see Template 5.61)', '62-199': 'Reserved', '200': 'Run Length Packing With Level Values (see Template 5.200)', '201-49151': 'Reserved', '49152-65534': 'Reserved for Local Use', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_1", "modulename": "grib2io.tables.section5", "qualname": "table_5_1", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Floating Point', '1': 'Integer', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_2", "modulename": "grib2io.tables.section5", "qualname": "table_5_2", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Explicit Coordinate Values Set', '1': 'Linear Coordinates f(1) = C1 f(n) = f(n-1) + C2', '2-10': 'Reserved', '11': 'Geometric Coordinates f(1) = C1 f(n) = C2 x f(n-1)', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_3", "modulename": "grib2io.tables.section5", "qualname": "table_5_3", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Direction Degrees True', '2': 'Frequency (s-1)', '3': 'Radial Number (2pi/lamda) (m-1)', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_4", "modulename": "grib2io.tables.section5", "qualname": "table_5_4", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Row by Row Splitting', '1': 'General Group Splitting', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_5", "modulename": "grib2io.tables.section5", "qualname": "table_5_5", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No explicit missing values included within the data values', '1': 'Primary missing values included within the data values', '2': 'Primary and secondary missing values included within the data values', '3-191': 'Reserved', '192-254': 'Reserved for Local Use'}"}, {"fullname": "grib2io.tables.section5.table_5_6", "modulename": "grib2io.tables.section5", "qualname": "table_5_6", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'First-Order Spatial Differencing', '2': 'Second-Order Spatial Differencing', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_7", "modulename": "grib2io.tables.section5", "qualname": "table_5_7", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'IEEE 32-bit (I=4 in Section 7)', '2': 'IEEE 64-bit (I=8 in Section 7)', '3': 'IEEE 128-bit (I=16 in Section 7)', '4-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_40", "modulename": "grib2io.tables.section5", "qualname": "table_5_40", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Lossless', '1': 'Lossy', '2-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section6", "modulename": "grib2io.tables.section6", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section6.table_6_0", "modulename": "grib2io.tables.section6", "qualname": "table_6_0", "kind": "variable", "doc": "\n", "default_value": "{'0': 'A bit map applies to this product and is specified in this section.', '1-253': 'A bit map pre-determined by the orginating/generating center applies to this product and is not specified in this section.', '254': 'A bit map previously defined in the same GRIB2 message applies to this product.', '255': 'A bit map does not apply to this product.'}"}, {"fullname": "grib2io.templates", "modulename": "grib2io.templates", "kind": "module", "doc": "GRIB2 section templates classes and metadata descriptor classes
\n"}, {"fullname": "grib2io.templates.Grib2Metadata", "modulename": "grib2io.templates", "qualname": "Grib2Metadata", "kind": "class", "doc": "Class to hold GRIB2 metadata both as numeric code value as stored in\nGRIB2 and its plain langauge definition.
\n\nAttributes
\n\n\n\n
value : int
\n GRIB2 metadata integer code value.\n\n
table : str, optional
\n GRIB2 table to lookup thevalue
. Default is None.\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": "
definition : str
\n Plain language description of numeric metadata.Provide the table related to this metadata.
\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "grib2io.templates.IndicatorSection", "modulename": "grib2io.templates", "qualname": "IndicatorSection", "kind": "class", "doc": "\n"}, {"fullname": "grib2io.templates.Discipline", "modulename": "grib2io.templates", "qualname": "Discipline", "kind": "class", "doc": "\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": "\n"}, {"fullname": "grib2io.templates.OriginatingSubCenter", "modulename": "grib2io.templates", "qualname": "OriginatingSubCenter", "kind": "class", "doc": "\n"}, {"fullname": "grib2io.templates.MasterTableInfo", "modulename": "grib2io.templates", "qualname": "MasterTableInfo", "kind": "class", "doc": "\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
\n"}, {"fullname": "grib2io.templates.ProductionStatus", "modulename": "grib2io.templates", "qualname": "ProductionStatus", "kind": "class", "doc": "datetime.datetime
object.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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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\nParameters
\n\n\n\n
gdtn : int
\n Grid definition template number.Returns
\n\nGrid definition template class object (not an instance).
\n", "signature": "(gdtn):", "funcdef": "def"}, {"fullname": "grib2io.templates.ProductDefinitionTemplateNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplateNumber", "kind": "class", "doc": "Product Definition Template Number
\n"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate", "kind": "class", "doc": "Product Definition Template
\n"}, {"fullname": "grib2io.templates.ParameterCategory", "modulename": "grib2io.templates", "qualname": "ParameterCategory", "kind": "class", "doc": "\n"}, {"fullname": "grib2io.templates.ParameterNumber", "modulename": "grib2io.templates", "qualname": "ParameterNumber", "kind": "class", "doc": "\n"}, {"fullname": "grib2io.templates.VarInfo", "modulename": "grib2io.templates", "qualname": "VarInfo", "kind": "class", "doc": "Variable Information. These are the metadata returned for a specific variable according\nto discipline, parameter category, and parameter number.
\n"}, {"fullname": "grib2io.templates.FullName", "modulename": "grib2io.templates", "qualname": "FullName", "kind": "class", "doc": "Full name of the Variable
\n"}, {"fullname": "grib2io.templates.Units", "modulename": "grib2io.templates", "qualname": "Units", "kind": "class", "doc": "Units of the Variable
\n"}, {"fullname": "grib2io.templates.ShortName", "modulename": "grib2io.templates", "qualname": "ShortName", "kind": "class", "doc": "Short name of the variable (i.e. the variable abbreviation)
\n"}, {"fullname": "grib2io.templates.TypeOfGeneratingProcess", "modulename": "grib2io.templates", "qualname": "TypeOfGeneratingProcess", "kind": "class", "doc": "\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": "\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": "\n"}, {"fullname": "grib2io.templates.ValueOfForecastTime", "modulename": "grib2io.templates", "qualname": "ValueOfForecastTime", "kind": "class", "doc": "Value of forecast time in units defined by
\n"}, {"fullname": "grib2io.templates.LeadTime", "modulename": "grib2io.templates", "qualname": "LeadTime", "kind": "class", "doc": "UnitofForecastTime
Forecast Lead Time. NOTE: This is a
\n"}, {"fullname": "grib2io.templates.FixedSfc1Info", "modulename": "grib2io.templates", "qualname": "FixedSfc1Info", "kind": "class", "doc": "datetime.timedelta
object.Information of the first fixed surface via table 4.5
\n"}, {"fullname": "grib2io.templates.FixedSfc2Info", "modulename": "grib2io.templates", "qualname": "FixedSfc2Info", "kind": "class", "doc": "Information of the seconds fixed surface via table 4.5
\n"}, {"fullname": "grib2io.templates.TypeOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "TypeOfFirstFixedSurface", "kind": "class", "doc": "\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": "\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": "\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": "\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": "\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
\n"}, {"fullname": "grib2io.templates.ValidDate", "modulename": "grib2io.templates", "qualname": "ValidDate", "kind": "class", "doc": "datetime.timedelta
object.Valid Date of the forecast. NOTE: This is a
\n"}, {"fullname": "grib2io.templates.NumberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "NumberOfTimeRanges", "kind": "class", "doc": "datetime.datetime
object.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": "\n"}, {"fullname": "grib2io.templates.TypeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "TypeOfTimeIncrementOfStatisticalProcess", "kind": "class", "doc": "Type of Time Increment of Statistical Process
\n"}, {"fullname": "grib2io.templates.UnitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "UnitOfTimeRangeOfStatisticalProcess", "kind": "class", "doc": "Unit of Time Range of Statistical Process
\n"}, {"fullname": "grib2io.templates.TimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "TimeRangeOfStatisticalProcess", "kind": "class", "doc": "Time Range of Statistical Process
\n"}, {"fullname": "grib2io.templates.UnitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "UnitOfTimeRangeOfSuccessiveFields", "kind": "class", "doc": "Unit of Time Range of Successive Fields
\n"}, {"fullname": "grib2io.templates.TimeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "TimeIncrementOfSuccessiveFields", "kind": "class", "doc": "Time Increment of Successive Fields
\n"}, {"fullname": "grib2io.templates.TypeOfStatisticalProcessing", "modulename": "grib2io.templates", "qualname": "TypeOfStatisticalProcessing", "kind": "class", "doc": "Type of Statistical Processing
\n"}, {"fullname": "grib2io.templates.NumberOfDataPointsForSpatialProcessing", "modulename": "grib2io.templates", "qualname": "NumberOfDataPointsForSpatialProcessing", "kind": "class", "doc": "Number of Data Points for Spatial Processing
\n"}, {"fullname": "grib2io.templates.TypeOfAerosol", "modulename": "grib2io.templates", "qualname": "TypeOfAerosol", "kind": "class", "doc": "\n"}, {"fullname": "grib2io.templates.TypeOfIntervalForAerosolSize", "modulename": "grib2io.templates", "qualname": "TypeOfIntervalForAerosolSize", "kind": "class", "doc": "Type of Interval for Aerosol Size
\n"}, {"fullname": "grib2io.templates.ScaleFactorOfFirstSize", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfFirstSize", "kind": "class", "doc": "Scale Factor of First Size
\n"}, {"fullname": "grib2io.templates.ScaledValueOfFirstSize", "modulename": "grib2io.templates", "qualname": "ScaledValueOfFirstSize", "kind": "class", "doc": "Scaled Value of First Size
\n"}, {"fullname": "grib2io.templates.ScaleFactorOfSecondSize", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfSecondSize", "kind": "class", "doc": "Scale Factor of Second Size
\n"}, {"fullname": "grib2io.templates.ScaledValueOfSecondSize", "modulename": "grib2io.templates", "qualname": "ScaledValueOfSecondSize", "kind": "class", "doc": "Scaled Value of Second Size
\n"}, {"fullname": "grib2io.templates.TypeOfIntervalForAerosolWavelength", "modulename": "grib2io.templates", "qualname": "TypeOfIntervalForAerosolWavelength", "kind": "class", "doc": "Type of Interval for Aerosol Wavelength
\n"}, {"fullname": "grib2io.templates.ScaleFactorOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfFirstWavelength", "kind": "class", "doc": "Scale Factor of First Wavelength
\n"}, {"fullname": "grib2io.templates.ScaledValueOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ScaledValueOfFirstWavelength", "kind": "class", "doc": "Scaled Value of First Wavelength
\n"}, {"fullname": "grib2io.templates.ScaleFactorOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfSecondWavelength", "kind": "class", "doc": "Scale Factor of Second Wavelength
\n"}, {"fullname": "grib2io.templates.ScaledValueOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ScaledValueOfSecondWavelength", "kind": "class", "doc": "Scaled Value of Second Wavelength
\n"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0", "kind": "class", "doc": "\n"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.parameterCategory", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.parameterCategory", "kind": "variable", "doc": "\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.parameterNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.parameterNumber", "kind": "variable", "doc": "\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.typeOfGeneratingProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.typeOfGeneratingProcess", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.generatingProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.generatingProcess", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.backgroundGeneratingProcessIdentifier", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.backgroundGeneratingProcessIdentifier", "kind": "variable", "doc": "Background Generating Process Identifier
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.hoursAfterDataCutoff", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.hoursAfterDataCutoff", "kind": "variable", "doc": "Hours of observational data cutoff after reference time
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.minutesAfterDataCutoff", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.minutesAfterDataCutoff", "kind": "variable", "doc": "Minutes of observational data cutoff after reference time
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.unitOfForecastTime", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.unitOfForecastTime", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.valueOfForecastTime", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.valueOfForecastTime", "kind": "variable", "doc": "Value of forecast time in units defined by
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.typeOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.typeOfFirstFixedSurface", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaleFactorOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaleFactorOfFirstFixedSurface", "kind": "variable", "doc": "UnitofForecastTime
Scale Factor of First Fixed Surface
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaledValueOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaledValueOfFirstFixedSurface", "kind": "variable", "doc": "Scaled Value Of First Fixed Surface
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.typeOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.typeOfSecondFixedSurface", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaleFactorOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaleFactorOfSecondFixedSurface", "kind": "variable", "doc": "Scale Factor of Second Fixed Surface
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaledValueOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaledValueOfSecondFixedSurface", "kind": "variable", "doc": "Scaled Value Of Second Fixed Surface
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate1", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate1", "kind": "class", "doc": "\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate1.typeOfEnsembleForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate1.typeOfEnsembleForecast", "kind": "variable", "doc": "\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": "\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate2.typeOfDerivedForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate2.typeOfDerivedForecast", "kind": "variable", "doc": "\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": "\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.forecastProbabilityNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.forecastProbabilityNumber", "kind": "variable", "doc": "Forecast Probability Number
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.totalNumberOfForecastProbabilities", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.totalNumberOfForecastProbabilities", "kind": "variable", "doc": "Total Number of Forecast Probabilities
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.typeOfProbability", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.typeOfProbability", "kind": "variable", "doc": "\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": "\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate6.percentileValue", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate6.percentileValue", "kind": "variable", "doc": "Percentile Value
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8", "kind": "class", "doc": "\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.yearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.yearOfEndOfTimePeriod", "kind": "variable", "doc": "Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.monthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.monthOfEndOfTimePeriod", "kind": "variable", "doc": "Month Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.dayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.dayOfEndOfTimePeriod", "kind": "variable", "doc": "Day Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.hourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.hourOfEndOfTimePeriod", "kind": "variable", "doc": "Hour Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.minuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.minuteOfEndOfTimePeriod", "kind": "variable", "doc": "Minute Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.secondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.secondOfEndOfTimePeriod", "kind": "variable", "doc": "Second Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.numberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.numberOfTimeRanges", "kind": "variable", "doc": "Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.numberOfMissingValues", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.numberOfMissingValues", "kind": "variable", "doc": "Total number of data values missing in statistical process
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.statisticalProcess", "kind": "variable", "doc": "\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": "\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.forecastProbabilityNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.forecastProbabilityNumber", "kind": "variable", "doc": "Forecast Probability Number
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.totalNumberOfForecastProbabilities", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.totalNumberOfForecastProbabilities", "kind": "variable", "doc": "Total Number of Forecast Probabilities
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.typeOfProbability", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.typeOfProbability", "kind": "variable", "doc": "\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": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "Type of Time Increment of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "Unit of Time Range of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "Time Range of Statistical Process
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "Unit of Time Range of Successive Fields
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "Time Increment of Successive Fields
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10", "kind": "class", "doc": "Product Definition Template 10
\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.percentileValue", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.percentileValue", "kind": "variable", "doc": "Percentile Value
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.yearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.yearOfEndOfTimePeriod", "kind": "variable", "doc": "Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.monthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.monthOfEndOfTimePeriod", "kind": "variable", "doc": "Month Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.dayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.dayOfEndOfTimePeriod", "kind": "variable", "doc": "Day Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.hourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.hourOfEndOfTimePeriod", "kind": "variable", "doc": "Hour Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.minuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.minuteOfEndOfTimePeriod", "kind": "variable", "doc": "Minute Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.secondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.secondOfEndOfTimePeriod", "kind": "variable", "doc": "Second Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.numberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.numberOfTimeRanges", "kind": "variable", "doc": "Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.numberOfMissingValues", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.numberOfMissingValues", "kind": "variable", "doc": "Total number of data values missing in statistical process
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.statisticalProcess", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "Type of Time Increment of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "Unit of Time Range of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "Time Range of Statistical Process
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "Unit of Time Range of Successive Fields
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "Time Increment of Successive Fields
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11", "kind": "class", "doc": "Product Definition Template 11
\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.typeOfEnsembleForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.typeOfEnsembleForecast", "kind": "variable", "doc": "\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": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "Type of Time Increment of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "Unit of Time Range of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "Time Range of Statistical Process
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "Unit of Time Range of Successive Fields
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "Time Increment of Successive Fields
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12", "kind": "class", "doc": "Product Definition Template 12
\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.typeOfDerivedForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.typeOfDerivedForecast", "kind": "variable", "doc": "\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": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "Type of Time Increment of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "Unit of Time Range of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "Time Range of Statistical Process
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "Unit of Time Range of Successive Fields
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "Time Increment of Successive Fields
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15", "kind": "class", "doc": "Product Definition Template 15
\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15.statisticalProcess", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15.typeOfStatisticalProcessing", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15.typeOfStatisticalProcessing", "kind": "variable", "doc": "Type of Statistical Processing
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15.numberOfDataPointsForSpatialProcessing", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15.numberOfDataPointsForSpatialProcessing", "kind": "variable", "doc": "Number of Data Points for Spatial Processing
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48", "kind": "class", "doc": "Product Definition Template 48
\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.typeOfAerosol", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.typeOfAerosol", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.typeOfIntervalForAerosolSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.typeOfIntervalForAerosolSize", "kind": "variable", "doc": "Type of Interval for Aerosol Size
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfFirstSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfFirstSize", "kind": "variable", "doc": "Scale Factor of First Size
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfFirstSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfFirstSize", "kind": "variable", "doc": "Scaled Value of First Size
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfSecondSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfSecondSize", "kind": "variable", "doc": "Scale Factor of Second Size
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfSecondSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfSecondSize", "kind": "variable", "doc": "Scaled Value of Second Size
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.typeOfIntervalForAerosolWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.typeOfIntervalForAerosolWavelength", "kind": "variable", "doc": "Type of Interval for Aerosol Wavelength
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfFirstWavelength", "kind": "variable", "doc": "Scale Factor of First Wavelength
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfFirstWavelength", "kind": "variable", "doc": "Scaled Value of First Wavelength
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfSecondWavelength", "kind": "variable", "doc": "Scale Factor of Second Wavelength
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfSecondWavelength", "kind": "variable", "doc": "Scaled Value of Second Wavelength
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.pdt_class_by_pdtn", "modulename": "grib2io.templates", "qualname": "pdt_class_by_pdtn", "kind": "function", "doc": "Provides a Product Definition Template class via the template number
\n\nParameters
\n\n\n\n
pdtn : int
\n Product definition template number.Returns
\n\nProduct definition template class object (not an instance).
\n", "signature": "(pdtn):", "funcdef": "def"}, {"fullname": "grib2io.templates.NumberOfPackedValues", "modulename": "grib2io.templates", "qualname": "NumberOfPackedValues", "kind": "class", "doc": "Number of Packed Values
\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplateNumber", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplateNumber", "kind": "class", "doc": "Data Representation Template Number
\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate", "kind": "class", "doc": "Data Representation Template
\n"}, {"fullname": "grib2io.templates.RefValue", "modulename": "grib2io.templates", "qualname": "RefValue", "kind": "class", "doc": "Reference Value (represented as an IEEE 32-bit floating point value)
\n"}, {"fullname": "grib2io.templates.BinScaleFactor", "modulename": "grib2io.templates", "qualname": "BinScaleFactor", "kind": "class", "doc": "Binary Scale Factor
\n"}, {"fullname": "grib2io.templates.DecScaleFactor", "modulename": "grib2io.templates", "qualname": "DecScaleFactor", "kind": "class", "doc": "Decimal Scale Factor
\n"}, {"fullname": "grib2io.templates.NBitsPacking", "modulename": "grib2io.templates", "qualname": "NBitsPacking", "kind": "class", "doc": "Minimum number of bits for packing
\n"}, {"fullname": "grib2io.templates.TypeOfValues", "modulename": "grib2io.templates", "qualname": "TypeOfValues", "kind": "class", "doc": "\n"}, {"fullname": "grib2io.templates.GroupSplittingMethod", "modulename": "grib2io.templates", "qualname": "GroupSplittingMethod", "kind": "class", "doc": "\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": "\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": "\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": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.typeOfMissingValueManagement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.typeOfMissingValueManagement", "kind": "variable", "doc": "Type of Missing Value Management
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.priMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.priMissingValue", "kind": "variable", "doc": "Primary Missing Value
\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.secMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.secMissingValue", "kind": "variable", "doc": "Secondary Missing Value
\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.nGroups", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.nGroups", "kind": "variable", "doc": "Number of Groups
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.refGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.refGroupWidth", "kind": "variable", "doc": "Reference Group Width
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.nBitsGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.nBitsGroupWidth", "kind": "variable", "doc": "Number of bits for Group Width
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.refGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.refGroupLength", "kind": "variable", "doc": "Reference Group Length
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.groupLengthIncrement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.groupLengthIncrement", "kind": "variable", "doc": "Group Length Increment
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.lengthOfLastGroup", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.lengthOfLastGroup", "kind": "variable", "doc": "Length of Last Group
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.nBitsScaledGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.nBitsScaledGroupLength", "kind": "variable", "doc": "Number of bits of Scaled Group Length
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3", "kind": "class", "doc": "Data Representation Template 3
\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.refValue", "kind": "variable", "doc": "Reference Value (represented as an IEEE 32-bit floating point value)
\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.binScaleFactor", "kind": "variable", "doc": "Binary Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.decScaleFactor", "kind": "variable", "doc": "Decimal Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nBitsPacking", "kind": "variable", "doc": "Minimum number of bits for packing
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.groupSplittingMethod", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.groupSplittingMethod", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.typeOfMissingValueManagement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.typeOfMissingValueManagement", "kind": "variable", "doc": "Type of Missing Value Management
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.priMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.priMissingValue", "kind": "variable", "doc": "Primary Missing Value
\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.secMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.secMissingValue", "kind": "variable", "doc": "Secondary Missing Value
\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nGroups", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nGroups", "kind": "variable", "doc": "Number of Groups
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.refGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.refGroupWidth", "kind": "variable", "doc": "Reference Group Width
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nBitsGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nBitsGroupWidth", "kind": "variable", "doc": "Number of bits for Group Width
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.refGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.refGroupLength", "kind": "variable", "doc": "Reference Group Length
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.groupLengthIncrement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.groupLengthIncrement", "kind": "variable", "doc": "Group Length Increment
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.lengthOfLastGroup", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.lengthOfLastGroup", "kind": "variable", "doc": "Length of Last Group
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nBitsScaledGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nBitsScaledGroupLength", "kind": "variable", "doc": "Number of bits of Scaled Group Length
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.spatialDifferenceOrder", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.spatialDifferenceOrder", "kind": "variable", "doc": "\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": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40.targetCompressionRatio", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40.targetCompressionRatio", "kind": "variable", "doc": "Target Compression Ratio
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41", "kind": "class", "doc": "Data Representation Template 41
\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.refValue", "kind": "variable", "doc": "Reference Value (represented as an IEEE 32-bit floating point value)
\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.binScaleFactor", "kind": "variable", "doc": "Binary Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.decScaleFactor", "kind": "variable", "doc": "Decimal Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.nBitsPacking", "kind": "variable", "doc": "Minimum number of bits for packing
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42", "kind": "class", "doc": "Data Representation Template 42
\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.refValue", "kind": "variable", "doc": "Reference Value (represented as an IEEE 32-bit floating point value)
\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.binScaleFactor", "kind": "variable", "doc": "Binary Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.decScaleFactor", "kind": "variable", "doc": "Decimal Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.nBitsPacking", "kind": "variable", "doc": "Minimum number of bits for packing
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.compressionOptionsMask", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.compressionOptionsMask", "kind": "variable", "doc": "Compression Options Mask for AEC/CCSDS
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.blockSize", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.blockSize", "kind": "variable", "doc": "Block Size for AEC/CCSDS
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.refSampleInterval", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.refSampleInterval", "kind": "variable", "doc": "Reference Sample Interval for AEC/CCSDS
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50", "kind": "class", "doc": "Data Representation Template 50
\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.refValue", "kind": "variable", "doc": "Reference Value (represented as an IEEE 32-bit floating point value)
\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.binScaleFactor", "kind": "variable", "doc": "Binary Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.decScaleFactor", "kind": "variable", "doc": "Decimal Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.nBitsPacking", "kind": "variable", "doc": "Minimum number of bits for packing
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.realOfCoefficient", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.realOfCoefficient", "kind": "variable", "doc": "Real of Coefficient
\n", "annotation": ": float"}, {"fullname": "grib2io.templates.drt_class_by_drtn", "modulename": "grib2io.templates", "qualname": "drt_class_by_drtn", "kind": "function", "doc": "Provides a Data Representation Template class via the template number
\n\nParameters
\n\n\n\n
drtn : int
\n Data Representation template number.Returns
\n\nData Representation template class object (not an instance).
\n", "signature": "(drtn):", "funcdef": "def"}, {"fullname": "grib2io.utils", "modulename": "grib2io.utils", "kind": "module", "doc": "Collection of utility functions to assist in the encoding and decoding\nof GRIB2 Messages.
\n"}, {"fullname": "grib2io.utils.int2bin", "modulename": "grib2io.utils", "qualname": "int2bin", "kind": "function", "doc": "Convert integer to binary string or list
\n\nParameters
\n\n\n\n
i : int
\n Integer value to convert to binary representation.\n\n
nbits : int, optional
\n Number of bits to return. Valid values are 8 [DEFAULT], 16, 32, and 64.\n\n
output : type
\n Return data asstr
[DEFAULT] orlist
(list of ints).Returns
\n\n\n", "signature": "(i, nbits=8, output=<class 'str'>):", "funcdef": "def"}, {"fullname": "grib2io.utils.ieee_float_to_int", "modulename": "grib2io.utils", "qualname": "ieee_float_to_int", "kind": "function", "doc": "
str
orlist
(list of ints) of binary representation of the integer value.Convert an IEEE 32-bit float to a 32-bit integer.
\n\nParameters
\n\n\n\n
f : float
\n Floating-point value.Returns
\n\n\n", "signature": "(f):", "funcdef": "def"}, {"fullname": "grib2io.utils.ieee_int_to_float", "modulename": "grib2io.utils", "qualname": "ieee_int_to_float", "kind": "function", "doc": "
numpy.int32
representation of an IEEE 32-bit float.Convert a 32-bit integer to an IEEE 32-bit float.
\n\nParameters
\n\n\n\n
i : int
\n Integer value.Returns
\n\n\n", "signature": "(i):", "funcdef": "def"}, {"fullname": "grib2io.utils.get_leadtime", "modulename": "grib2io.utils", "qualname": "get_leadtime", "kind": "function", "doc": "
numpy.float32
representation of a 32-bit int.Computes lead time as a datetime.timedelta object using information from\nGRIB2 Identification Section (Section 1), Product Definition Template\nNumber, and Product Definition Template (Section 4).
\n\nParameters
\n\n\n\n
idsec : list or array_like
\n Seqeunce containing GRIB2 Identification Section (Section 1).\n\n
pdtn : int
\n GRIB2 Product Definition Template Number\n\n
pdt : list or array_like
\n Seqeunce containing GRIB2 Product Definition Template (Section 4).Returns
\n\n\n", "signature": "(idsec, pdtn, pdt):", "funcdef": "def"}, {"fullname": "grib2io.utils.get_duration", "modulename": "grib2io.utils", "qualname": "get_duration", "kind": "function", "doc": "
datetime.timedelta
object representing the lead time of the GRIB2 message.Computes a time duration as a datetime.timedelta using information from\nProduct Definition Template Number, and Product Definition Template (Section 4).
\n\nParameters
\n\n\n\n
pdtn : int
\n GRIB2 Product Definition Template Number\n\n
pdt : list or array_like
\n Sequence containing GRIB2 Product Definition Template (Section 4).Returns
\n\n\n", "signature": "(pdtn, pdt):", "funcdef": "def"}, {"fullname": "grib2io.utils.decode_wx_strings", "modulename": "grib2io.utils", "qualname": "decode_wx_strings", "kind": "function", "doc": "
datetime.timedelta
object representing the time duration of the GRIB2 message.Decode GRIB2 Local Use Section to obtain NDFD/MDL Weather Strings. The\ndecode procedure is defined here.
\n\nParameters
\n\n\n\n
lus : bytes
\n GRIB2 Local Use Section containing NDFD weather strings.Returns
\n\n\n", "signature": "(lus):", "funcdef": "def"}, {"fullname": "grib2io.utils.get_wgrib2_prob_string", "modulename": "grib2io.utils", "qualname": "get_wgrib2_prob_string", "kind": "function", "doc": "
dict
of NDFD/MDL weather strings. Keys are an integer value that represent \nthe sequential order of the key in the packed local use section and the value is \nthe weather key.Return a wgrib2-formatted string explaining probabilistic\nthreshold informaiton. Logic from wgrib2 source, Prob.c,\nis replicated here.
\n\nParameters
\n\n\n\n
probtype : int
\n Type of probability (Code Table 4.9).\n\n
sfacl : int
\n Scale factor of lower limit.\n\n
svall : int
\n Scaled value of lower limit.\n\n
sfacu : int
\n Scale factor of upper limit.\n\n
svalu : int
\n Scaled value of upper limit.Returns
\n\nwgrib2-formatted string of probability threshold.
\n", "signature": "(probtype, sfacl, svall, sfacu, svalu):", "funcdef": "def"}, {"fullname": "grib2io.utils.arakawa_rotated_grid", "modulename": "grib2io.utils.arakawa_rotated_grid", "kind": "module", "doc": "Functions for handling an Arakawa Rotated Lat/Lon Grids.
\n\nThis grid is not often used, but is currently used for the NCEP/RAP using\nGRIB2 Grid Definition Template 32769
\n\nThese 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\nParameters
\n\n\n\n
latin
:float
\n Latitudes in units of degrees.\n\n
lonin
:float
\n Longitudes in units of degrees.\n\n
latpole
:float
\n Latitude of Pole.\n\n
lonpole
:float
\n Longitude of Pole.Returns
\n\n\n", "signature": "(latin, lonin, latpole, lonpole):", "funcdef": "def"}, {"fullname": "grib2io.utils.arakawa_rotated_grid.rot2ll", "modulename": "grib2io.utils.arakawa_rotated_grid", "qualname": "rot2ll", "kind": "function", "doc": "
tlat, tlons
\n Returns two floats of rotated latitude and longitude in units of degrees.Unrotate a latitude/longitude pair.
\n\nParameters
\n\n\n\n
latin
:float
\n Latitudes in units of degrees.\n\n
lonin
:float
\n Longitudes in units of degrees.\n\n
latpole
:float
\n Latitude of Pole.\n\n
lonpole
:float
\n Longitude of Pole.Returns
\n\n\n", "signature": "(latin, lonin, latpole, lonpole):", "funcdef": "def"}, {"fullname": "grib2io.utils.arakawa_rotated_grid.vector_rotation_angles", "modulename": "grib2io.utils.arakawa_rotated_grid", "qualname": "vector_rotation_angles", "kind": "function", "doc": "
tlat, tlons
\n Returns two floats of unrotated latitude and longitude in units of degrees.Generate a rotation angle value that can be applied to a vector quantity to\nmake it Earth-oriented.
\n\nParameters
\n\n\n\n
tlat
:float
\n True latitude in units of degrees.**tlon
\n\n**:
float`\n True longitude in units of degrees..\n\n
clat
:float
\n Latitude of center grid point in units of degrees.\n\n
losp
:float
\n Longitude of the southern pole in units of degrees.\n\n
xlat
:float
\n Latitude of the rotated grid in units of degrees.Returns
\n\n\n", "signature": "(tlat, tlon, clat, losp, xlat):", "funcdef": "def"}, {"fullname": "grib2io.utils.gauss_grid", "modulename": "grib2io.utils.gauss_grid", "kind": "module", "doc": "
rot : float
\n Rotation angle in units of radians.Tools for working with Gaussian grids.
\n\nAdopted 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\nParameters
\n\n\n\n
nlat : int
\n The number of latitudes in the Gaussian grid.Returns
\n\n\n", "signature": "(nlat):", "funcdef": "def"}, {"fullname": "grib2io.utils.rotated_grid", "modulename": "grib2io.utils.rotated_grid", "kind": "module", "doc": "
numpy.ndarray
of latitudes (in degrees) with a length ofnlat
.Tools for working with Rotated Lat/Lon Grids.
\n"}, {"fullname": "grib2io.utils.rotated_grid.RAD2DEG", "modulename": "grib2io.utils.rotated_grid", "qualname": "RAD2DEG", "kind": "variable", "doc": "\n", "default_value": "57.29577951308232"}, {"fullname": "grib2io.utils.rotated_grid.DEG2RAD", "modulename": "grib2io.utils.rotated_grid", "qualname": "DEG2RAD", "kind": "variable", "doc": "\n", "default_value": "0.017453292519943295"}, {"fullname": "grib2io.utils.rotated_grid.rotate", "modulename": "grib2io.utils.rotated_grid", "qualname": "rotate", "kind": "function", "doc": "Perform grid rotation. This function is adapted from ECMWF's ecCodes library\nvoid function, rotate().
\n\nhttps://github.com/ecmwf/eccodes/blob/develop/src/grib_geography.cc
\n\nParameters
\n\n\n\n
latin : float or array_like
\n Latitudes in units of degrees.\n\n
lonin : float or array_like
\n Longitudes in units of degrees.\n\n
aor : float
\n Angle of rotation as defined in GRIB2 GDTN 4.1.\n\n
splat : float
\n Latitude of South Pole as defined in GRIB2 GDTN 4.1.\n\n
splon : float
\n Longitude of South Pole as defined in GRIB2 GDTN 4.1.Returns
\n\n\n", "signature": "(latin, lonin, aor, splat, splon):", "funcdef": "def"}, {"fullname": "grib2io.utils.rotated_grid.unrotate", "modulename": "grib2io.utils.rotated_grid", "qualname": "unrotate", "kind": "function", "doc": "
lats, lons : numpy.ndarray
\nnumpy.ndarrays
withdtype=numpy.float32
of grid latitudes and\n longitudes in units of degrees.Perform grid un-rotation. This function is adapted from ECMWF's ecCodes library\nvoid function, unrotate().
\n\nhttps://github.com/ecmwf/eccodes/blob/develop/src/grib_geography.cc
\n\nParameters
\n\n\n\n
latin : float or array_like
\n Latitudes in units of degrees.\n\n
lonin : float or array_like
\n Longitudes in units of degrees.\n\n
aor : float
\n Angle of rotation as defined in GRIB2 GDTN 4.1.\n\n
splat : float
\n Latitude of South Pole as defined in GRIB2 GDTN 4.1.\n\n
splon : float
\n Longitude of South Pole as defined in GRIB2 GDTN 4.1.Returns
\n\n\n", "signature": "(latin, lonin, aor, splat, splon):", "funcdef": "def"}]; + /** pdoc search index */const docs = [{"fullname": "grib2io", "modulename": "grib2io", "kind": "module", "doc": "
lats, lons : numpy.ndarray
\nnumpy.ndarrays
withdtype=numpy.float32
of grid latitudes and\n longitudes in units of degrees.Introduction
\n\ngrib2io is a Python package that provides an interface to the NCEP GRIB2 C (g2c)\nlibrary for the purpose of reading and writing WMO GRIdded Binary, Edition 2 (GRIB2) messages. A physical file can contain one\nor more GRIB2 messages.
\n\nGRIB2 file IO is performed directly in Python. The unpacking/packing of GRIB2 integer, coded metadata and data sections is performed\nby the g2c library functions via the g2clib Cython wrapper module. The decoding/encoding of GRIB2 metadata is translated into more\ndescriptive, plain language metadata by looking up the integer code values against the appropriate GRIB2 code tables. These code tables\nare a part of the grib2io module.
\n\nTutorials
\n\nThe following Jupyter Notebooks are available as tutorials:
\n\n\n"}, {"fullname": "grib2io.open", "modulename": "grib2io", "qualname": "open", "kind": "class", "doc": "GRIB2 File Object.
\n\nA physical file can contain one or more GRIB2 messages. When instantiated, class
\n\ngrib2io.open
, \nthe file namedfilename
is opened for reading (mode = 'r'
) and is automatically indexed.
\nThe indexing procedure reads some of the GRIB2 metadata for all GRIB2 Messages. A GRIB2 Message \nmay contain submessages whereby Section 2-7 can be repeated. grib2io accommodates for this by \nflattening any GRIB2 submessages into multiple individual messages.It is important to note that GRIB2 files from some Meteorological agencies contain other data\nthan GRIB2 messages. GRIB2 files from NWS NDFD and NAVGEM have text-based \"header\" data and\nfiles from ECMWF can contain GRIB1 and GRIB2 messages. grib2io checks for these and safely\nignores them.
\n\nAttributes
\n\n\n\n
mode : str
\n File IO mode of opening the file.\n\n
name : str
\n Full path name of the GRIB2 file.\n\n
messages : int
\n Count of GRIB2 Messages contained in the file.\n\n
current_message : int
\n Current position of the file in units of GRIB2 Messages.\n\n
size : int
\n Size of the file in units of bytes.\n\n
closed : bool
\nTrue
is file handle is close;False
otherwise.\n\n
variables : tuple
\n Tuple containing a unique list of variable short names (i.e. GRIB2 abbreviation names).\n"}, {"fullname": "grib2io.open.__init__", "modulename": "grib2io", "qualname": "open.__init__", "kind": "function", "doc": "
levels : tuple
\n Tuple containing a unique list of wgrib2-formatted level/layer strings.Initialize GRIB2 File object instance.
\n\nParameters
\n\n\n\n
filename : str
\n File name containing GRIB2 messages.\n", "signature": "(filename, mode='r', **kwargs)"}, {"fullname": "grib2io.open.mode", "modulename": "grib2io", "qualname": "open.mode", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.name", "modulename": "grib2io", "qualname": "open.name", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.messages", "modulename": "grib2io", "qualname": "open.messages", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.current_message", "modulename": "grib2io", "qualname": "open.current_message", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.size", "modulename": "grib2io", "qualname": "open.size", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.closed", "modulename": "grib2io", "qualname": "open.closed", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.levels", "modulename": "grib2io", "qualname": "open.levels", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.variables", "modulename": "grib2io", "qualname": "open.variables", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.open.close", "modulename": "grib2io", "qualname": "open.close", "kind": "function", "doc": "
mode : str, optional
\n File access mode wherer
opens the files for reading only;w
opens the file for writing.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\nIf no argument is given, then size is None and all messages are returned from \nthe current position in the file. This read method follows the behavior of \nPython's builtin open() function, but whereas that operates on units of bytes, \nwe operate on units of GRIB2 messages.
\n\nParameters
\n\n\n\n
size : int, optional
\n The number of GRIB2 messages to read from the current position. If no argument is\n give, the default value isNone
and remainder of the file is read.Returns
\n\n\n", "signature": "(self, size=None):", "funcdef": "def"}, {"fullname": "grib2io.open.seek", "modulename": "grib2io", "qualname": "open.seek", "kind": "function", "doc": "
Grib2Message
object when size = 1 or alist
of Grib2Messages when size > 1.Set the position within the file in units of GRIB2 messages.
\n\nParameters
\n\n\n", "signature": "(self, pos):", "funcdef": "def"}, {"fullname": "grib2io.open.tell", "modulename": "grib2io", "qualname": "open.tell", "kind": "function", "doc": "
pos : int
\n The GRIB2 Message number to set the file pointer to.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
\n", "signature": "(self, **kwargs):", "funcdef": "def"}, {"fullname": "grib2io.open.write", "modulename": "grib2io", "qualname": "open.write", "kind": "function", "doc": "Grib2Message
attributes.Writes GRIB2 message object to file.
\n\nParameters
\n\n\n", "signature": "(self, msg):", "funcdef": "def"}, {"fullname": "grib2io.open.flush", "modulename": "grib2io", "qualname": "open.flush", "kind": "function", "doc": "
msg : Grib2Message or sequence of Grib2Messages
\n GRIB2 message objects to write to file.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\nParameters
\n\n\n\n
name : str
\n Grib2Message variable shortNameReturns
\n\nA list of strings of unique level strings.
\n", "signature": "(self, name):", "funcdef": "def"}, {"fullname": "grib2io.open.vars_by_level", "modulename": "grib2io", "qualname": "open.vars_by_level", "kind": "function", "doc": "Return a list of variable shortName strings given a level.
\n\nParameters
\n\n\n\n
level : str
\n Grib2Message variable levelReturns
\n\nA list of strings of variable shortName strings.
\n", "signature": "(self, level):", "funcdef": "def"}, {"fullname": "grib2io.Grib2Message", "modulename": "grib2io", "qualname": "Grib2Message", "kind": "class", "doc": "Creation class for a GRIB2 message.
\n"}, {"fullname": "grib2io.show_config", "modulename": "grib2io", "qualname": "show_config", "kind": "function", "doc": "Print grib2io build configuration information.
\n", "signature": "():", "funcdef": "def"}, {"fullname": "grib2io.interpolate", "modulename": "grib2io", "qualname": "interpolate", "kind": "function", "doc": "This is the module-level interpolation function that interfaces with the grib2io_interp\ncomponent pakcage that interfaces to the NCEPLIBS-ip library.
\n\nParameters
\n\n\n\n
a : numpy.ndarray or tuple
\n Input data. Ifa
is anumpy.ndarray
, scalar interpolation will be\n performed. Ifa
is atuple
, then vector interpolation will be performed\n with the assumption that u = a[0] and v = a[1] and are bothnumpy.ndarray
.\n\nThese data are expected to be in 2-dimensional form with shape (ny, nx) or\n3-dimensional (:, ny, nx) where the 1st dimension represents another spatial,\ntemporal, or classification (i.e. ensemble members) dimension. The function will\nproperly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into\nthe interpolation subroutines.\n
\n\n
method : int or str
\n Interpolate method to use. This can either be an integer or string using\n the following mapping:\n\n
\n\n\n \n\n\nInterpolate Scheme \nInteger Value \n\n \n'bilinear' \n0 \n\n \n'bicubic' \n1 \n\n \n'neighbor' \n2 \n\n \n'budget' \n3 \n\n \n'spectral' \n4 \n\n \n\n'neighbor-budget' \n6 \n\n\n
grid_def_in : grib2io.Grib2GridDef
\n Grib2GridDef object for the input grid.\n\n
grid_def_out : grib2io.Grib2GridDef
\n Grib2GridDef object for the output grid or station points.\n\n
method_options : list of ints, optional
\n Interpolation options. See the NCEPLIBS-ip doucmentation for\n more information on how these are used.Returns
\n\nReturns a
\n", "signature": "(a, method, grid_def_in, grid_def_out, method_options=None):", "funcdef": "def"}, {"fullname": "grib2io.interpolate_to_stations", "modulename": "grib2io", "qualname": "interpolate_to_stations", "kind": "function", "doc": "numpy.ndarray
when scalar interpolation is performed or\natuple
ofnumpy.ndarray
s when vector interpolation is performed\nwith the assumptions that 0-index is the interpolated u and 1-index\nis the interpolated v.This is the module-level interpolation function for interpolation to stations\nthat interfaces with the grib2io_interp component pakcage that interfaces to\nthe NCEPLIBS-ip library. It supports\nscalar and vector interpolation according to the type of object a.
\n\nParameters
\n\n\n\n
a : numpy.ndarray or tuple
\n Input data. Ifa
is anumpy.ndarray
, scalar interpolation will be\n performed. Ifa
is atuple
, then vector interpolation will be performed\n with the assumption that u = a[0] and v = a[1] and are bothnumpy.ndarray
.\n\nThese data are expected to be in 2-dimensional form with shape (ny, nx) or\n3-dimensional (:, ny, nx) where the 1st dimension represents another spatial,\ntemporal, or classification (i.e. ensemble members) dimension. The function will\nproperly flatten the (ny,nx) dimensions into (nx * ny) acceptable for input into\nthe interpolation subroutines.\n
\n\n
method : int or str
\n Interpolate method to use. This can either be an integer or string using\n the following mapping:\n\n
\n\n\n \n\n\nInterpolate Scheme \nInteger Value \n\n \n'bilinear' \n0 \n\n \n'bicubic' \n1 \n\n \n'neighbor' \n2 \n\n \n'budget' \n3 \n\n \n'spectral' \n4 \n\n \n\n'neighbor-budget' \n6 \n\n\n
grid_def_in : grib2io.Grib2GridDef
\n Grib2GridDef object for the input grid.\n\n
lats : numpy.ndarray or list
\n Latitudes for station points\n\n
lons : numpy.ndarray or list
\n Longitudes for station points\n\n
method_options : list of ints, optional
\n Interpolation options. See the NCEPLIBS-ip doucmentation for\n more information on how these are used.Returns
\n\nReturns a
\n", "signature": "(a, method, grid_def_in, lats, lons, method_options=None):", "funcdef": "def"}, {"fullname": "grib2io.Grib2GridDef", "modulename": "grib2io", "qualname": "Grib2GridDef", "kind": "class", "doc": "numpy.ndarray
when scalar interpolation is performed or\natuple
ofnumpy.ndarray
s when vector interpolation is performed\nwith the assumptions that 0-index is the interpolated u and 1-index\nis the interpolated v.Class to hold GRIB2 Grid Definition Template Number and Template as\nclass attributes. This allows for cleaner looking code when passing these\nmetadata around. For example, the
\n"}, {"fullname": "grib2io.Grib2GridDef.__init__", "modulename": "grib2io", "qualname": "Grib2GridDef.__init__", "kind": "function", "doc": "\n", "signature": "(gdtn: int, gdt: <built-in function array>)"}, {"fullname": "grib2io.Grib2GridDef.gdtn", "modulename": "grib2io", "qualname": "Grib2GridDef.gdtn", "kind": "variable", "doc": "\n", "annotation": ": int"}, {"fullname": "grib2io.Grib2GridDef.gdt", "modulename": "grib2io", "qualname": "Grib2GridDef.gdt", "kind": "variable", "doc": "\n", "annotation": ": <built-in function array>"}, {"fullname": "grib2io.Grib2GridDef.from_section3", "modulename": "grib2io", "qualname": "Grib2GridDef.from_section3", "kind": "function", "doc": "\n", "signature": "(cls, section3):", "funcdef": "def"}, {"fullname": "grib2io.Grib2GridDef.nx", "modulename": "grib2io", "qualname": "Grib2GridDef.nx", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.Grib2GridDef.ny", "modulename": "grib2io", "qualname": "Grib2GridDef.ny", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.Grib2GridDef.npoints", "modulename": "grib2io", "qualname": "Grib2GridDef.npoints", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.Grib2GridDef.shape", "modulename": "grib2io", "qualname": "Grib2GridDef.shape", "kind": "variable", "doc": "\n"}, {"fullname": "grib2io.tables", "modulename": "grib2io.tables", "kind": "module", "doc": "grib2io._Grib2Message.interpolate
\nmethod andgrib2io.interpolate
function accepts these objects.Functions for retreiving data from NCEP GRIB2 Tables.
\n"}, {"fullname": "grib2io.tables.GRIB2_DISCIPLINES", "modulename": "grib2io.tables", "qualname": "GRIB2_DISCIPLINES", "kind": "variable", "doc": "\n", "default_value": "[0, 1, 2, 3, 4, 10, 20]"}, {"fullname": "grib2io.tables.get_table", "modulename": "grib2io.tables", "qualname": "get_table", "kind": "function", "doc": "Return GRIB2 code table as a dictionary.
\n\nParameters
\n\n\n\n
table : str
\n Code table number (e.g. '1.0'). NOTE: Code table '4.1' requires a 3rd value\n representing the product discipline (e.g. '4.1.0').\n\n
expand : bool, optional
\n IfTrue
, expand output dictionary where keys are a range.Returns
\n\nTable as a
\n", "signature": "(table, expand=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_value_from_table", "modulename": "grib2io.tables", "qualname": "get_value_from_table", "kind": "function", "doc": "dict
.Return the definition given a GRIB2 code table.
\n\nParameters
\n\n\n\n
value : int or str
\n Code table value.\n\n
table : str
\n Code table number.\n\n
expand : bool, optional
\n IfTrue
, expand output dictionary where keys are a range.Returns
\n\nTable value or
\n", "signature": "(value, table, expand=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_varinfo_from_table", "modulename": "grib2io.tables", "qualname": "get_varinfo_from_table", "kind": "function", "doc": "None
if not found.Return the GRIB2 variable information given values of
\n\ndiscipline
,\nparmcat
, andparmnum
. NOTE: This functions allows for all arguments\nto be converted to a string type if arguments are integer.Parameters
\n\n\n\n
discipline : int or str
\n Discipline code value of a GRIB2 message.\n\n
parmcat : int or str
\n Parameter Category value of a GRIB2 message.\n\n
parmnum : int or str
\n Parameter Number value of a GRIB2 message.\n\n
isNDFD : bool, optional
\n IfTrue
, signals function to try to get variable information from \n the supplemental NDFD tables.Returns
\n\n\n", "signature": "(discipline, parmcat, parmnum, isNDFD=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_shortnames", "modulename": "grib2io.tables", "qualname": "get_shortnames", "kind": "function", "doc": "
list
containing variable information. \"Unknown\" is given for item of\ninformation if variable is not found.\n - list[0] = full name\n - list[1] = units\n - list[2] = short name (abbreviated name)Returns a list of variable shortNames given GRIB2 discipline, parameter\ncategory, and parameter number. If all 3 args are None, then shortNames\nfrom all disciplines, parameter categories, and numbers will be returned.
\n\nParameters
\n\n\n\n
discipline : int
\n GRIB2 discipline code value.\n\n
parmcat : int
\n GRIB2 parameter category value.\n\n
parmnum : int or str
\n Parameter Number value of a GRIB2 message.Returns
\n\n\n", "signature": "(discipline=None, parmcat=None, parmnum=None, isNDFD=False):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_metadata_from_shortname", "modulename": "grib2io.tables", "qualname": "get_metadata_from_shortname", "kind": "function", "doc": "
list
of GRIB2 shortNames.Provide GRIB2 variable metadata attributes given a GRIB2 shortName.
\n\nParameters
\n\n\n\n
shortname : str
\n GRIB2 variable shortName.Returns
\n\n\n", "signature": "(shortname):", "funcdef": "def"}, {"fullname": "grib2io.tables.get_wgrib2_level_string", "modulename": "grib2io.tables", "qualname": "get_wgrib2_level_string", "kind": "function", "doc": "
list
of dictionary items where each dictionary items contains the variable\nmetadata key:value pairs. NOTE: Some variable shortNames will exist in multiple\nparameter category/number tables according to the GRIB2 discipline.Return a string that describes the level or layer of the GRIB2 message. The\nformat and language of the string is an exact replica of how wgrib2 produces\nthe level/layer string in its inventory output.
\n\nContents of wgrib2 source, Level.c,\nwere converted into a Python dictionary and stored in grib2io as table\n'wgrib2_level_string'.
\n\nParameters
\n\n\n\n
pdtn : int
\n GRIB2 Product Definition Template Number\n\n
pdt : list or array_like
\n Sequence containing GRIB2 Product Definition Template (Section 4).Returns
\n\nwgrib2-formatted level/layer string.
\n", "signature": "(pdtn, pdt):", "funcdef": "def"}, {"fullname": "grib2io.tables.originating_centers", "modulename": "grib2io.tables.originating_centers", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.originating_centers.table_originating_centers", "modulename": "grib2io.tables.originating_centers", "qualname": "table_originating_centers", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Melbourne (WMC)', '2': 'Melbourne (WMC)', '3': 'Melbourne (WMC)', '4': 'Moscow (WMC)', '5': 'Moscow (WMC)', '6': 'Moscow (WMC)', '7': 'US National Weather Service - NCEP (WMC)', '8': 'US National Weather Service - NWSTG (WMC)', '9': 'US National Weather Service - Other (WMC)', '10': 'Cairo (RSMC/RAFC)', '11': 'Cairo (RSMC/RAFC)', '12': 'Dakar (RSMC/RAFC)', '13': 'Dakar (RSMC/RAFC)', '14': 'Nairobi (RSMC/RAFC)', '15': 'Nairobi (RSMC/RAFC)', '16': 'Casablanca (RSMC)', '17': 'Tunis (RSMC)', '18': 'Tunis-Casablanca (RSMC)', '19': 'Tunis-Casablanca (RSMC)', '20': 'Las Palmas (RAFC)', '21': 'Algiers (RSMC)', '22': 'ACMAD', '23': 'Mozambique (NMC)', '24': 'Pretoria (RSMC)', '25': 'La Reunion (RSMC)', '26': 'Khabarovsk (RSMC)', '27': 'Khabarovsk (RSMC)', '28': 'New Delhi (RSMC/RAFC)', '29': 'New Delhi (RSMC/RAFC)', '30': 'Novosibirsk (RSMC)', '31': 'Novosibirsk (RSMC)', '32': 'Tashkent (RSMC)', '33': 'Jeddah (RSMC)', '34': 'Tokyo (RSMC), Japanese Meteorological Agency', '35': 'Tokyo (RSMC), Japanese Meteorological Agency', '36': 'Bankok', '37': 'Ulan Bator', '38': 'Beijing (RSMC)', '39': 'Beijing (RSMC)', '40': 'Seoul', '41': 'Buenos Aires (RSMC/RAFC)', '42': 'Buenos Aires (RSMC/RAFC)', '43': 'Brasilia (RSMC/RAFC)', '44': 'Brasilia (RSMC/RAFC)', '45': 'Santiago', '46': 'Brazilian Space Agency - INPE', '47': 'Columbia (NMC)', '48': 'Ecuador (NMC)', '49': 'Peru (NMC)', '50': 'Venezuela (NMC)', '51': 'Miami (RSMC/RAFC)', '52': 'Miami (RSMC), National Hurricane Center', '53': 'Canadian Meteorological Service - Montreal (RSMC)', '54': 'Canadian Meteorological Service - Montreal (RSMC)', '55': 'San Francisco', '56': 'ARINC Center', '57': 'US Air Force - Air Force Global Weather Center', '58': 'Fleet Numerical Meteorology and Oceanography Center,Monterey,CA,USA', '59': 'The NOAA Forecast Systems Lab, Boulder, CO, USA', '60': 'National Center for Atmospheric Research (NCAR), Boulder, CO', '61': 'Service ARGOS - Landover, MD, USA', '62': 'US Naval Oceanographic Office', '63': 'International Research Institude for Climate and Society', '64': 'Honolulu', '65': 'Darwin (RSMC)', '66': 'Darwin (RSMC)', '67': 'Melbourne (RSMC)', '68': 'Reserved', '69': 'Wellington (RSMC/RAFC)', '70': 'Wellington (RSMC/RAFC)', '71': 'Nadi (RSMC)', '72': 'Singapore', '73': 'Malaysia (NMC)', '74': 'U.K. Met Office - Exeter (RSMC)', '75': 'U.K. Met Office - Exeter (RSMC)', '76': 'Moscow (RSMC/RAFC)', '77': 'Reserved', '78': 'Offenbach (RSMC)', '79': 'Offenbach (RSMC)', '80': 'Rome (RSMC)', '81': 'Rome (RSMC)', '82': 'Norrkoping', '83': 'Norrkoping', '84': 'French Weather Service - Toulouse', '85': 'French Weather Service - Toulouse', '86': 'Helsinki', '87': 'Belgrade', '88': 'Oslo', '89': 'Prague', '90': 'Episkopi', '91': 'Ankara', '92': 'Frankfurt/Main (RAFC)', '93': 'London (WAFC)', '94': 'Copenhagen', '95': 'Rota', '96': 'Athens', '97': 'European Space Agency (ESA)', '98': 'European Center for Medium-Range Weather Forecasts (RSMC)', '99': 'De Bilt, Netherlands', '100': 'Brazzaville', '101': 'Abidjan', '102': 'Libyan Arab Jamahiriya (NMC)', '103': 'Madagascar (NMC)', '104': 'Mauritius (NMC)', '105': 'Niger (NMC)', '106': 'Seychelles (NMC)', '107': 'Uganda (NMC)', '108': 'United Republic of Tanzania (NMC)', '109': 'Zimbabwe (NMC)', '110': 'Hong-Kong', '111': 'Afghanistan (NMC)', '112': 'Bahrain (NMC)', '113': 'Bangladesh (NMC)', '114': 'Bhutan (NMC)', '115': 'Cambodia (NMC)', '116': 'Democratic Peoples Republic of Korea (NMC)', '117': 'Islamic Republic of Iran (NMC)', '118': 'Iraq (NMC)', '119': 'Kazakhstan (NMC)', '120': 'Kuwait (NMC)', '121': 'Kyrgyz Republic (NMC)', '122': 'Lao Peoples Democratic Republic (NMC)', '123': 'Macao, China', '124': 'Maldives (NMC)', '125': 'Myanmar (NMC)', '126': 'Nepal (NMC)', '127': 'Oman (NMC)', '128': 'Pakistan (NMC)', '129': 'Qatar (NMC)', '130': 'Yemen (NMC)', '131': 'Sri Lanka (NMC)', '132': 'Tajikistan (NMC)', '133': 'Turkmenistan (NMC)', '134': 'United Arab Emirates (NMC)', '135': 'Uzbekistan (NMC)', '136': 'Viet Nam (NMC)', '137-139': 'Reserved', '140': 'Bolivia (NMC)', '141': 'Guyana (NMC)', '142': 'Paraguay (NMC)', '143': 'Suriname (NMC)', '144': 'Uruguay (NMC)', '145': 'French Guyana', '146': 'Brazilian Navy Hydrographic Center', '147': 'National Commission on Space Activities - Argentina', '148': 'Brazilian Department of Airspace Control - DECEA', '149': 'Reserved', '150': 'Antigua and Barbuda (NMC)', '151': 'Bahamas (NMC)', '152': 'Barbados (NMC)', '153': 'Belize (NMC)', '154': 'British Caribbean Territories Center', '155': 'San Jose', '156': 'Cuba (NMC)', '157': 'Dominica (NMC)', '158': 'Dominican Republic (NMC)', '159': 'El Salvador (NMC)', '160': 'US NOAA/NESDIS', '161': 'US NOAA Office of Oceanic and Atmospheric Research', '162': 'Guatemala (NMC)', '163': 'Haiti (NMC)', '164': 'Honduras (NMC)', '165': 'Jamaica (NMC)', '166': 'Mexico City', '167': 'Netherlands Antilles and Aruba (NMC)', '168': 'Nicaragua (NMC)', '169': 'Panama (NMC)', '170': 'Saint Lucia (NMC)', '171': 'Trinidad and Tobago (NMC)', '172': 'French Departments in RA IV', '173': 'US National Aeronautics and Space Administration (NASA)', '174': 'Integrated System Data Management/Marine Environmental Data Service (ISDM/MEDS) - Canada', '175': 'Reserved', '176': 'US Cooperative Institude for Meteorological Satellite Studies', '177-189': 'Reserved', '190': 'Cook Islands (NMC)', '191': 'French Polynesia (NMC)', '192': 'Tonga (NMC)', '193': 'Vanuatu (NMC)', '194': 'Brunei (NMC)', '195': 'Indonesia (NMC)', '196': 'Kiribati (NMC)', '197': 'Federated States of Micronesia (NMC)', '198': 'New Caledonia (NMC)', '199': 'Niue', '200': 'Papua New Guinea (NMC)', '201': 'Philippines (NMC)', '202': 'Samoa (NMC)', '203': 'Solomon Islands (NMC)', '204': 'Narional Institude of Water and Atmospheric Research - New Zealand', '205-209': 'Reserved', '210': 'Frascati (ESA/ESRIN)', '211': 'Lanion', '212': 'Lisbon', '213': 'Reykjavik', '214': 'Madrid', '215': 'Zurich', '216': 'Service ARGOS - Toulouse', '217': 'Bratislava', '218': 'Budapest', '219': 'Ljubljana', '220': 'Warsaw', '221': 'Zagreb', '222': 'Albania (NMC)', '223': 'Armenia (NMC)', '224': 'Austria (NMC)', '225': 'Azerbaijan (NMC)', '226': 'Belarus (NMC)', '227': 'Belgium (NMC)', '228': 'Bosnia and Herzegovina (NMC)', '229': 'Bulgaria (NMC)', '230': 'Cyprus (NMC)', '231': 'Estonia (NMC)', '232': 'Georgia (NMC)', '233': 'Dublin', '234': 'Israel (NMC)', '235': 'Jordan (NMC)', '236': 'Latvia (NMC)', '237': 'Lebanon (NMC)', '238': 'Lithuania (NMC)', '239': 'Luxembourg', '240': 'Malta (NMC)', '241': 'Monaco', '242': 'Romania (NMC)', '243': 'Syrian Arab Republic (NMC)', '244': 'The former Yugoslav Republic of Macedonia (NMC)', '245': 'Ukraine (NMC)', '246': 'Republic of Moldova (NMC)', '247': 'Operational Programme for the Exchange of Weather RAdar Information (OPERA) - EUMETNET', '248-249': 'Reserved', '250': 'COnsortium for Small scale MOdelling (COSMO)', '251-253': 'Reserved', '254': 'EUMETSAT Operations Center', '255': 'Missing Value'}"}, {"fullname": "grib2io.tables.originating_centers.table_originating_subcenters", "modulename": "grib2io.tables.originating_centers", "qualname": "table_originating_subcenters", "kind": "variable", "doc": "\n", "default_value": "{'1': 'NCEP Re-Analysis Project', '2': 'NCEP Ensemble Products', '3': 'NCEP Central Operations', '4': 'Environmental Modeling Center', '5': 'Weather Prediction Center', '6': 'Ocean Prediction Center', '7': 'Climate Prediction Center', '8': 'Aviation Weather Center', '9': 'Storm Prediction Center', '10': 'National Hurricane Center', '11': 'NWS Techniques Development Laboratory', '12': 'NESDIS Office of Research and Applications', '13': 'Federal Aviation Administration', '14': 'NWS Meteorological Development Laboratory', '15': 'North American Regional Reanalysis Project', '16': 'Space Weather Prediction Center', '17': 'ESRL Global Systems Division'}"}, {"fullname": "grib2io.tables.originating_centers.table_generating_process", "modulename": "grib2io.tables.originating_centers", "qualname": "table_generating_process", "kind": "variable", "doc": "\n", "default_value": "{'0-1': 'Reserved', '2': 'Ultra Violet Index Model', '3': 'NCEP/ARL Transport and Dispersion Model', '4': 'NCEP/ARL Smoke Model', '5': 'Satellite Derived Precipitation and temperatures, from IR (See PDS Octet 41 ... for specific satellite ID)', '6': 'NCEP/ARL Dust Model', '7-9': 'Reserved', '10': 'Global Wind-Wave Forecast Model', '11': 'Global Multi-Grid Wave Model (Static Grids)', '12': 'Probabilistic Storm Surge (P-Surge)', '13': 'Hurricane Multi-Grid Wave Model', '14': 'Extra-tropical Storm Surge Atlantic Domain', '15': 'Nearshore Wave Prediction System (NWPS)', '16': 'Extra-Tropical Storm Surge (ETSS)', '17': 'Extra-tropical Storm Surge Pacific Domain', '18': 'Probabilistic Extra-Tropical Storm Surge (P-ETSS)', '19': 'Reserved', '20': 'Extra-tropical Storm Surge Micronesia Domain', '21': 'Extra-tropical Storm Surge Atlantic Domain (3D)', '22': 'Extra-tropical Storm Surge Pacific Domain (3D)', '23': 'Extra-tropical Storm Surge Micronesia Domain (3D)', '24': 'Reserved', '25': 'Snow Cover Analysis', '26-29': 'Reserved', '30': 'Forecaster generated field', '31': 'Value added post processed field', '32-41': 'Reserved', '42': 'Global Optimum Interpolation Analysis (GOI) from GFS model', '43': 'Global Optimum Interpolation Analysis (GOI) from "Final" run', '44': 'Sea Surface Temperature Analysis', '45': 'Coastal Ocean Circulation Model', '46': 'HYCOM - Global', '47': 'HYCOM - North Pacific basin', '48': 'HYCOM - North Atlantic basin', '49': 'Ozone Analysis from TIROS Observations', '50-51': 'Reserved', '52': 'Ozone Analysis from Nimbus 7 Observations', '53-63': 'Reserved', '64': 'Regional Optimum Interpolation Analysis (ROI)', '65-67': 'Reserved', '68': '80 wave triangular, 18-layer Spectral model from GFS model', '69': '80 wave triangular, 18 layer Spectral model from "Medium Range Forecast" run', '70': 'Quasi-Lagrangian Hurricane Model (QLM)', '71': 'Hurricane Weather Research and Forecasting (HWRF)', '72': 'Hurricane Non-Hydrostatic Multiscale Model on the B Grid (HNMMB)', '73': 'Fog Forecast model - Ocean Prod. Center', '74': 'Gulf of Mexico Wind/Wave', '75': 'Gulf of Alaska Wind/Wave', '76': 'Bias corrected Medium Range Forecast', '77': '126 wave triangular, 28 layer Spectral model from GFS model', '78': '126 wave triangular, 28 layer Spectral model from "Medium Range Forecast" run', '79': 'Reserved', '80': '62 wave triangular, 28 layer Spectral model from "Medium Range Forecast" run', '81': 'Analysis from GFS (Global Forecast System)', '82': 'Analysis from GDAS (Global Data Assimilation System)', '83': 'High Resolution Rapid Refresh (HRRR)', '84': 'MESO NAM Model (currently 12 km)', '85': 'Real Time Ocean Forecast System (RTOFS)', '86': 'Early Hurricane Wind Speed Probability Model', '87': 'CAC Ensemble Forecasts from Spectral (ENSMB)', '88': 'NOAA Wave Watch III (NWW3) Ocean Wave Model', '89': 'Non-hydrostatic Meso Model (NMM) (Currently 8 km)', '90': '62 wave triangular, 28 layer spectral model extension of the "Medium Range Forecast" run', '91': '62 wave triangular, 28 layer spectral model extension of the GFS model', '92': '62 wave triangular, 28 layer spectral model run from the "Medium Range Forecast" final analysis', '93': '62 wave triangular, 28 layer spectral model run from the T62 GDAS analysis of the "Medium Range Forecast" run', '94': 'T170/L42 Global Spectral Model from MRF run', '95': 'T126/L42 Global Spectral Model from MRF run', '96': 'Global Forecast System Model T1534 - Forecast hours 00-384 T574 - Forecast hours 00-192 T190 - Forecast hours 204-384', '97': 'Reserved', '98': 'Climate Forecast System Model -- Atmospheric model (GFS) coupled to a multi level ocean model . Currently GFS spectral model at T62, 64 levels coupled to 40 level MOM3 ocean model.', '99': 'Miscellaneous Test ID', '100': 'Miscellaneous Test ID', '101': 'Conventional Observation Re-Analysis (CORE)', '102-103': 'Reserved', '104': 'National Blend GRIB', '105': 'Rapid Refresh (RAP)', '106': 'Reserved', '107': 'Global Ensemble Forecast System (GEFS)', '108': 'Localized Aviation MOS Program (LAMP)', '109': 'Real Time Mesoscale Analysis (RTMA)', '110': 'NAM Model - 15km version', '111': 'NAM model, generic resolution (Used in SREF processing)', '112': 'WRF-NMM model, generic resolution (Used in various runs) NMM=Nondydrostatic Mesoscale Model (NCEP)', '113': 'Products from NCEP SREF processing', '114': 'NAEFS Products from joined NCEP, CMC global ensembles', '115': 'Downscaled GFS from NAM eXtension', '116': 'WRF-EM model, generic resolution (Used in various runs) EM - Eulerian Mass-core (NCAR - aka Advanced Research WRF)', '117': 'NEMS GFS Aerosol Component', '118': 'UnRestricted Mesoscale Analysis (URMA)', '119': 'WAM (Whole Atmosphere Model)', '120': 'Ice Concentration Analysis', '121': 'Western North Atlantic Regional Wave Model', '122': 'Alaska Waters Regional Wave Model', '123': 'North Atlantic Hurricane Wave Model', '124': 'Eastern North Pacific Regional Wave Model', '125': 'North Pacific Hurricane Wave Model', '126': 'Sea Ice Forecast Model', '127': 'Lake Ice Forecast Model', '128': 'Global Ocean Forecast Model', '129': 'Global Ocean Data Analysis System (GODAS)', '130': 'Merge of fields from the RUC, NAM, and Spectral Model', '131': 'Great Lakes Wave Model', '132': 'High Resolution Ensemble Forecast (HREF)', '133': 'Great Lakes Short Range Wave Model', '134': 'Rapid Refresh Forecast System (RRFS)', '135': 'Hurricane Analysis and Forecast System (HAFS)', '136-139': 'Reserved', '140': 'North American Regional Reanalysis (NARR)', '141': 'Land Data Assimilation and Forecast System', '142-149': 'Reserved', '150': 'NWS River Forecast System (NWSRFS)', '151': 'NWS Flash Flood Guidance System (NWSFFGS)', '152': 'WSR-88D Stage II Precipitation Analysis', '153': 'WSR-88D Stage III Precipitation Analysis', '154-179': 'Reserved', '180': 'Quantitative Precipitation Forecast generated by NCEP', '181': 'River Forecast Center Quantitative Precipitation Forecast mosaic generated by NCEP', '182': 'River Forecast Center Quantitative Precipitation estimate mosaic generated by NCEP', '183': 'NDFD product generated by NCEP/HPC', '184': 'Climatological Calibrated Precipitation Analysis (CCPA)', '185-189': 'Reserved', '190': 'National Convective Weather Diagnostic generated by NCEP/AWC', '191': 'Current Icing Potential automated product genterated by NCEP/AWC', '192': 'Analysis product from NCEP/AWC', '193': 'Forecast product from NCEP/AWC', '194': 'Reserved', '195': 'Climate Data Assimilation System 2 (CDAS2)', '196': 'Climate Data Assimilation System 2 (CDAS2) - used for regeneration runs', '197': 'Climate Data Assimilation System (CDAS)', '198': 'Climate Data Assimilation System (CDAS) - used for regeneration runs', '199': 'Climate Forecast System Reanalysis (CFSR) -- Atmospheric model (GFS) coupled to a multi level ocean, land and seaice model. GFS spectral model at T382, 64 levels coupled to 40 level MOM4 ocean model.', '200': 'CPC Manual Forecast Product', '201': 'CPC Automated Product', '202-209': 'Reserved', '210': 'EPA Air Quality Forecast - Currently North East US domain', '211': 'EPA Air Quality Forecast - Currently Eastern US domain', '212-214': 'Reserved', '215': 'SPC Manual Forecast Product', '216-219': 'Reserved', '220': 'NCEP/OPC automated product', '221-230': 'Reserved for WPC products', '231-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section0", "modulename": "grib2io.tables.section0", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section0.table_0_0", "modulename": "grib2io.tables.section0", "qualname": "table_0_0", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Meteorological Products', '1': 'Hydrological Products', '2': 'Land Surface Products', '3': 'Satellite Remote Sensing Products', '4': 'Space Weather Products', '5-9': 'Reserved', '10': 'Oceanographic Products', '11-19': 'Reserved', '20': 'Health and Socioeconomic Impacts', '21-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1", "modulename": "grib2io.tables.section1", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section1.table_1_0", "modulename": "grib2io.tables.section1", "qualname": "table_1_0", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Experimental', '1': 'Version Implemented on 7 November 2001', '2': 'Version Implemented on 4 November 2003', '3': 'Version Implemented on 2 November 2005', '4': 'Version Implemented on 7 November 2007', '5': 'Version Implemented on 4 November 2009', '6': 'Version Implemented on 15 September 2010', '7': 'Version Implemented on 4 May 2011', '8': 'Version Implemented on 8 November 2011', '9': 'Version Implemented on 2 May 2012', '10': 'Version Implemented on 7 November 2012', '11': 'Version Implemented on 8 May 2013', '12': 'Version Implemented on 14 November 2013', '13': 'Version Implemented on 7 May 2014', '14': 'Version Implemented on 5 November 2014', '16': 'Version Implemented on 11 November 2015', '17': 'Version Implemented on 4 May 2016', '18': 'Version Implemented on 2 November 2016', '19': 'Version Implemented on 3 May 2017', '20': 'Version Implemented on 8 November 2017', '21': 'Version Implemented on 2 May 2018', '22': 'Version Implemented on 7 November 2018', '23': 'Version Implemented on 15 May 2019', '24': 'Version Implemented on 06 November 2019', '25': 'Version Implemented on 06 May 2020', '26': 'Version Implemented on 16 November 2020', '27': 'Version Implemented on 16 June 2021', '28': 'Version Implemented on 15 November 2021', '29': 'Version Implemented on 15 May 2022', '30': 'Version Implemented on 15 November 2022', '31': 'Version Implemented on 15 June 2023', '32': 'Version Implemented on 30 November 2023', '33': 'Pre-operational to be implemented by next amendment', '34-254': 'Future Version', '255': 'Missing"'}"}, {"fullname": "grib2io.tables.section1.table_1_1", "modulename": "grib2io.tables.section1", "qualname": "table_1_1", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Local tables not used. Only table entries and templates from the current master table are valid.', '1-254': 'Number of local table version used.', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_2", "modulename": "grib2io.tables.section1", "qualname": "table_1_2", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Analysis', '1': 'Start of Forecast', '2': 'Verifying Time of Forecast', '3': 'Observation Time', '4': 'Local Time', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_3", "modulename": "grib2io.tables.section1", "qualname": "table_1_3", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Operational Products', '1': 'Operational Test Products', '2': 'Research Products', '3': 'Re-Analysis Products', '4': 'THORPEX Interactive Grand Global Ensemble (TIGGE)', '5': 'THORPEX Interactive Grand Global Ensemble (TIGGE) test', '6': 'S2S Operational Products', '7': 'S2S Test Products', '8': 'Uncertainties in ensembles of regional reanalysis project (UERRA)', '9': 'Uncertainties in ensembles of regional reanalysis project (UERRA) Test', '10': 'Copernicus Regional Reanalysis', '11': 'Copernicus Regional Reanalysis Test', '12': 'Destination Earth', '13': 'Destination Earth test', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_4", "modulename": "grib2io.tables.section1", "qualname": "table_1_4", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Analysis Products', '1': 'Forecast Products', '2': 'Analysis and Forecast Products', '3': 'Control Forecast Products', '4': 'Perturbed Forecast Products', '5': 'Control and Perturbed Forecast Products', '6': 'Processed Satellite Observations', '7': 'Processed Radar Observations', '8': 'Event Probability', '9-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Experimental Products', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_5", "modulename": "grib2io.tables.section1", "qualname": "table_1_5", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Calendar Definition', '1': 'Paleontological Offset', '2': 'Calendar Definition and Paleontological Offset', '3-32767': 'Reserved', '32768-65534': 'Reserved for Local Use', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section1.table_1_6", "modulename": "grib2io.tables.section1", "qualname": "table_1_6", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Gregorian', '1': '360-day', '2': '365-day', '3': 'Proleptic Gregorian', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section3", "modulename": "grib2io.tables.section3", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section3.table_3_0", "modulename": "grib2io.tables.section3", "qualname": "table_3_0", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Specified in Code Table 3.1', '1': 'Predetermined Grid Definition - Defined by Originating Center', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'A grid definition does not apply to this product.'}"}, {"fullname": "grib2io.tables.section3.table_3_1", "modulename": "grib2io.tables.section3", "qualname": "table_3_1", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Latitude/Longitude', '1': 'Rotated Latitude/Longitude', '2': 'Stretched Latitude/Longitude', '3': 'Rotated and Stretched Latitude/Longitude', '4': 'Variable Resolution Latitude/longitude ', '5': 'Variable Resolution Rotated Latitude/longitude ', '6-9': 'Reserved', '10': 'Mercator', '11': 'Reserved', '12': 'Transverse Mercator ', '13': 'Mercator with modelling subdomains definition ', '14-19': 'Reserved', '20': 'Polar Stereographic Projection (Can be North or South)', '21-22': 'Reserved', '23': 'Polar Stereographic with modelling subdomains definition ', '24-29': 'Reserved', '30': 'Lambert Conformal (Can be Secant, Tangent, Conical, or Bipolar)', '31': 'Albers Equal Area', '32': 'Reserved', '33': 'Lambert conformal with modelling subdomains definition ', '34-39': 'Reserved', '40': 'Gaussian Latitude/Longitude', '41': 'Rotated Gaussian Latitude/Longitude', '42': 'Stretched Gaussian Latitude/Longitude', '43': 'Rotated and Stretched Gaussian Latitude/Longitude', '44-49': 'Reserved', '50': 'Spherical Harmonic Coefficients', '51': 'Rotated Spherical Harmonic Coefficients', '52': 'Stretched Spherical Harmonic Coefficients', '53': 'Rotated and Stretched Spherical Harmonic Coefficients', '54-59': 'Reserved', '60': 'Cubed-Sphere Gnomonic ', '61': 'Spectral Mercator with modelling subdomains definition ', '62': 'Spectral Polar Stereographic with modelling subdomains definition ', '63': 'Spectral Lambert conformal with modelling subdomains definition ', '64-89': 'Reserved', '90': 'Space View Perspective or Orthographic', '91-99': 'Reserved', '100': 'Triangular Grid Based on an Icosahedron', '101': 'General Unstructured Grid (see Template 3.101)', '102-109': 'Reserved', '110': 'Equatorial Azimuthal Equidistant Projection', '111-119': 'Reserved', '120': 'Azimuth-Range Projection', '121-139': 'Reserved', '140': 'Lambert Azimuthal Equal Area Projection ', '141-149': 'Reserved', '150': 'Hierarchical Equal Area isoLatitude Pixelization grid (HEALPix)', '151-203': 'Reserved', '204': 'Curvilinear Orthogonal Grids', '205-999': 'Reserved', '1000': 'Cross Section Grid with Points Equally Spaced on the Horizontal', '1001-1099': 'Reserved', '1100': 'Hovmoller Diagram with Points Equally Spaced on the Horizontal', '1101-1199': 'Reserved', '1200': 'Time Section Grid', '1201-32767': 'Reserved', '32768-65534': 'Reserved for Local Use', '32768': 'Rotated Latitude/Longitude (Arakawa Staggeblack E-Grid)', '32769': 'Rotated Latitude/Longitude (Arakawa Non-E Staggeblack Grid)', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section3.table_3_2", "modulename": "grib2io.tables.section3", "qualname": "table_3_2", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Earth assumed spherical with radius = 6,367,470.0 m', '1': 'Earth assumed spherical with radius specified (in m) by data producer', '2': 'Earth assumed oblate spheriod with size as determined by IAU in 1965 (major axis = 6,378,160.0 m, minor axis = 6,356,775.0 m, f = 1/297.0)', '3': 'Earth assumed oblate spheriod with major and minor axes specified (in km) by data producer', '4': 'Earth assumed oblate spheriod as defined in IAG-GRS80 model (major axis = 6,378,137.0 m, minor axis = 6,356,752.314 m, f = 1/298.257222101)', '5': 'Earth assumed represented by WGS84 (as used by ICAO since 1998) (Uses IAG-GRS80 as a basis)', '6': 'Earth assumed spherical with radius = 6,371,229.0 m', '7': 'Earth assumed oblate spheroid with major and minor axes specified (in m) by data producer', '8': 'Earth model assumed spherical with radius 6,371,200 m, but the horizontal datum of the resulting Latitude/Longitude field is the WGS84 reference frame', '9': 'Earth represented by the OSGB 1936 Datum, using the Airy_1830 Spheroid, the Greenwich meridian as 0 Longitude, the Newlyn datum as mean sea level, 0 height.', '10': 'Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992".', '11': 'Sun assumed spherical with radius = 695 990 000 m (Allen, C.W., Astrophysical Quantities, 3rd ed.; Athlone: London, 1976) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W., Coordinate systems for solar image data, Astron. Astrophys. 2006, 449, 791-803)', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section3.table_3_11", "modulename": "grib2io.tables.section3", "qualname": "table_3_11", "kind": "variable", "doc": "\n", "default_value": "{'0': 'There is no appended list', '1': 'Numbers define number of points corresponding to full coordinate circles (i.e. parallels). Coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition may not be reached in all rows.', '2': 'Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition which are present in each row.', '3': 'Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scale by 106) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the "scanning mode flag" (bit no. 2)', '4-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section3.table_earth_params", "modulename": "grib2io.tables.section3", "qualname": "table_earth_params", "kind": "variable", "doc": "\n", "default_value": "{'0': {'shape': 'spherical', 'radius': 6367470.0}, '1': {'shape': 'spherical', 'radius': None}, '2': {'shape': 'oblateSpheriod', 'major_axis': 6378160.0, 'minor_axis': 6356775.0, 'flattening': 0.003367003367003367}, '3': {'shape': 'oblateSpheriod', 'major_axis': None, 'minor_axis': None, 'flattening': None}, '4': {'shape': 'oblateSpheriod', 'major_axis': 6378137.0, 'minor_axis': 6356752.314, 'flattening': 0.003352810681182319}, '5': {'shape': 'ellipsoid', 'major_axis': 6378137.0, 'minor_axis': 6356752.3142, 'flattening': 0.003352810681182319}, '6': {'shape': 'spherical', 'radius': 6371229.0}, '7': {'shape': 'oblateSpheriod', 'major_axis': None, 'minor_axis': None, 'flattening': None}, '8': {'shape': 'spherical', 'radius': 6371200.0}, '9': {'shape': 'unknown', 'radius': None}, '10': {'shape': 'unknown', 'radius': None}, '11': {'shape': 'unknown', 'radius': None}, '12': {'shape': 'unknown', 'radius': None}, '13': {'shape': 'unknown', 'radius': None}, '14': {'shape': 'unknown', 'radius': None}, '15': {'shape': 'unknown', 'radius': None}, '16': {'shape': 'unknown', 'radius': None}, '17': {'shape': 'unknown', 'radius': None}, '18': {'shape': 'unknown', 'radius': None}, '19': {'shape': 'unknown', 'radius': None}, '20': {'shape': 'unknown', 'radius': None}, '21': {'shape': 'unknown', 'radius': None}, '22': {'shape': 'unknown', 'radius': None}, '23': {'shape': 'unknown', 'radius': None}, '24': {'shape': 'unknown', 'radius': None}, '25': {'shape': 'unknown', 'radius': None}, '26': {'shape': 'unknown', 'radius': None}, '27': {'shape': 'unknown', 'radius': None}, '28': {'shape': 'unknown', 'radius': None}, '29': {'shape': 'unknown', 'radius': None}, '30': {'shape': 'unknown', 'radius': None}, '31': {'shape': 'unknown', 'radius': None}, '32': {'shape': 'unknown', 'radius': None}, '33': {'shape': 'unknown', 'radius': None}, '34': {'shape': 'unknown', 'radius': None}, '35': {'shape': 'unknown', 'radius': None}, '36': {'shape': 'unknown', 'radius': None}, '37': {'shape': 'unknown', 'radius': None}, '38': {'shape': 'unknown', 'radius': None}, '39': {'shape': 'unknown', 'radius': None}, '40': {'shape': 'unknown', 'radius': None}, '41': {'shape': 'unknown', 'radius': None}, '42': {'shape': 'unknown', 'radius': None}, '43': {'shape': 'unknown', 'radius': None}, '44': {'shape': 'unknown', 'radius': None}, '45': {'shape': 'unknown', 'radius': None}, '46': {'shape': 'unknown', 'radius': None}, '47': {'shape': 'unknown', 'radius': None}, '48': {'shape': 'unknown', 'radius': None}, '49': {'shape': 'unknown', 'radius': None}, '50': {'shape': 'unknown', 'radius': None}, '51': {'shape': 'unknown', 'radius': None}, '52': {'shape': 'unknown', 'radius': None}, '53': {'shape': 'unknown', 'radius': None}, '54': {'shape': 'unknown', 'radius': None}, '55': {'shape': 'unknown', 'radius': None}, '56': {'shape': 'unknown', 'radius': None}, '57': {'shape': 'unknown', 'radius': None}, '58': {'shape': 'unknown', 'radius': None}, '59': {'shape': 'unknown', 'radius': None}, '60': {'shape': 'unknown', 'radius': None}, '61': {'shape': 'unknown', 'radius': None}, '62': {'shape': 'unknown', 'radius': None}, '63': {'shape': 'unknown', 'radius': None}, '64': {'shape': 'unknown', 'radius': None}, '65': {'shape': 'unknown', 'radius': None}, '66': {'shape': 'unknown', 'radius': None}, '67': {'shape': 'unknown', 'radius': None}, '68': {'shape': 'unknown', 'radius': None}, '69': {'shape': 'unknown', 'radius': None}, '70': {'shape': 'unknown', 'radius': None}, '71': {'shape': 'unknown', 'radius': None}, '72': {'shape': 'unknown', 'radius': None}, '73': {'shape': 'unknown', 'radius': None}, '74': {'shape': 'unknown', 'radius': None}, '75': {'shape': 'unknown', 'radius': None}, '76': {'shape': 'unknown', 'radius': None}, '77': {'shape': 'unknown', 'radius': None}, '78': {'shape': 'unknown', 'radius': None}, '79': {'shape': 'unknown', 'radius': None}, '80': {'shape': 'unknown', 'radius': None}, '81': {'shape': 'unknown', 'radius': None}, '82': {'shape': 'unknown', 'radius': None}, '83': {'shape': 'unknown', 'radius': None}, '84': {'shape': 'unknown', 'radius': None}, '85': {'shape': 'unknown', 'radius': None}, '86': {'shape': 'unknown', 'radius': None}, '87': {'shape': 'unknown', 'radius': None}, '88': {'shape': 'unknown', 'radius': None}, '89': {'shape': 'unknown', 'radius': None}, '90': {'shape': 'unknown', 'radius': None}, '91': {'shape': 'unknown', 'radius': None}, '92': {'shape': 'unknown', 'radius': None}, '93': {'shape': 'unknown', 'radius': None}, '94': {'shape': 'unknown', 'radius': None}, '95': {'shape': 'unknown', 'radius': None}, '96': {'shape': 'unknown', 'radius': None}, '97': {'shape': 'unknown', 'radius': None}, '98': {'shape': 'unknown', 'radius': None}, '99': {'shape': 'unknown', 'radius': None}, '100': {'shape': 'unknown', 'radius': None}, '101': {'shape': 'unknown', 'radius': None}, '102': {'shape': 'unknown', 'radius': None}, '103': {'shape': 'unknown', 'radius': None}, '104': {'shape': 'unknown', 'radius': None}, '105': {'shape': 'unknown', 'radius': None}, '106': {'shape': 'unknown', 'radius': None}, '107': {'shape': 'unknown', 'radius': None}, '108': {'shape': 'unknown', 'radius': None}, '109': {'shape': 'unknown', 'radius': None}, '110': {'shape': 'unknown', 'radius': None}, '111': {'shape': 'unknown', 'radius': None}, '112': {'shape': 'unknown', 'radius': None}, '113': {'shape': 'unknown', 'radius': None}, '114': {'shape': 'unknown', 'radius': None}, '115': {'shape': 'unknown', 'radius': None}, '116': {'shape': 'unknown', 'radius': None}, '117': {'shape': 'unknown', 'radius': None}, '118': {'shape': 'unknown', 'radius': None}, '119': {'shape': 'unknown', 'radius': None}, '120': {'shape': 'unknown', 'radius': None}, '121': {'shape': 'unknown', 'radius': None}, '122': {'shape': 'unknown', 'radius': None}, '123': {'shape': 'unknown', 'radius': None}, '124': {'shape': 'unknown', 'radius': None}, '125': {'shape': 'unknown', 'radius': None}, '126': {'shape': 'unknown', 'radius': None}, '127': {'shape': 'unknown', 'radius': None}, '128': {'shape': 'unknown', 'radius': None}, '129': {'shape': 'unknown', 'radius': None}, '130': {'shape': 'unknown', 'radius': None}, '131': {'shape': 'unknown', 'radius': None}, '132': {'shape': 'unknown', 'radius': None}, '133': {'shape': 'unknown', 'radius': None}, '134': {'shape': 'unknown', 'radius': None}, '135': {'shape': 'unknown', 'radius': None}, '136': {'shape': 'unknown', 'radius': None}, '137': {'shape': 'unknown', 'radius': None}, '138': {'shape': 'unknown', 'radius': None}, '139': {'shape': 'unknown', 'radius': None}, '140': {'shape': 'unknown', 'radius': None}, '141': {'shape': 'unknown', 'radius': None}, '142': {'shape': 'unknown', 'radius': None}, '143': {'shape': 'unknown', 'radius': None}, '144': {'shape': 'unknown', 'radius': None}, '145': {'shape': 'unknown', 'radius': None}, '146': {'shape': 'unknown', 'radius': None}, '147': {'shape': 'unknown', 'radius': None}, '148': {'shape': 'unknown', 'radius': None}, '149': {'shape': 'unknown', 'radius': None}, '150': {'shape': 'unknown', 'radius': None}, '151': {'shape': 'unknown', 'radius': None}, '152': {'shape': 'unknown', 'radius': None}, '153': {'shape': 'unknown', 'radius': None}, '154': {'shape': 'unknown', 'radius': None}, '155': {'shape': 'unknown', 'radius': None}, '156': {'shape': 'unknown', 'radius': None}, '157': {'shape': 'unknown', 'radius': None}, '158': {'shape': 'unknown', 'radius': None}, '159': {'shape': 'unknown', 'radius': None}, '160': {'shape': 'unknown', 'radius': None}, '161': {'shape': 'unknown', 'radius': None}, '162': {'shape': 'unknown', 'radius': None}, '163': {'shape': 'unknown', 'radius': None}, '164': {'shape': 'unknown', 'radius': None}, '165': {'shape': 'unknown', 'radius': None}, '166': {'shape': 'unknown', 'radius': None}, '167': {'shape': 'unknown', 'radius': None}, '168': {'shape': 'unknown', 'radius': None}, '169': {'shape': 'unknown', 'radius': None}, '170': {'shape': 'unknown', 'radius': None}, '171': {'shape': 'unknown', 'radius': None}, '172': {'shape': 'unknown', 'radius': None}, '173': {'shape': 'unknown', 'radius': None}, '174': {'shape': 'unknown', 'radius': None}, '175': {'shape': 'unknown', 'radius': None}, '176': {'shape': 'unknown', 'radius': None}, '177': {'shape': 'unknown', 'radius': None}, '178': {'shape': 'unknown', 'radius': None}, '179': {'shape': 'unknown', 'radius': None}, '180': {'shape': 'unknown', 'radius': None}, '181': {'shape': 'unknown', 'radius': None}, '182': {'shape': 'unknown', 'radius': None}, '183': {'shape': 'unknown', 'radius': None}, '184': {'shape': 'unknown', 'radius': None}, '185': {'shape': 'unknown', 'radius': None}, '186': {'shape': 'unknown', 'radius': None}, '187': {'shape': 'unknown', 'radius': None}, '188': {'shape': 'unknown', 'radius': None}, '189': {'shape': 'unknown', 'radius': None}, '190': {'shape': 'unknown', 'radius': None}, '191': {'shape': 'unknown', 'radius': None}, '192': {'shape': 'unknown', 'radius': None}, '193': {'shape': 'unknown', 'radius': None}, '194': {'shape': 'unknown', 'radius': None}, '195': {'shape': 'unknown', 'radius': None}, '196': {'shape': 'unknown', 'radius': None}, '197': {'shape': 'unknown', 'radius': None}, '198': {'shape': 'unknown', 'radius': None}, '199': {'shape': 'unknown', 'radius': None}, '200': {'shape': 'unknown', 'radius': None}, '201': {'shape': 'unknown', 'radius': None}, '202': {'shape': 'unknown', 'radius': None}, '203': {'shape': 'unknown', 'radius': None}, '204': {'shape': 'unknown', 'radius': None}, '205': {'shape': 'unknown', 'radius': None}, '206': {'shape': 'unknown', 'radius': None}, '207': {'shape': 'unknown', 'radius': None}, '208': {'shape': 'unknown', 'radius': None}, '209': {'shape': 'unknown', 'radius': None}, '210': {'shape': 'unknown', 'radius': None}, '211': {'shape': 'unknown', 'radius': None}, '212': {'shape': 'unknown', 'radius': None}, '213': {'shape': 'unknown', 'radius': None}, '214': {'shape': 'unknown', 'radius': None}, '215': {'shape': 'unknown', 'radius': None}, '216': {'shape': 'unknown', 'radius': None}, '217': {'shape': 'unknown', 'radius': None}, '218': {'shape': 'unknown', 'radius': None}, '219': {'shape': 'unknown', 'radius': None}, '220': {'shape': 'unknown', 'radius': None}, '221': {'shape': 'unknown', 'radius': None}, '222': {'shape': 'unknown', 'radius': None}, '223': {'shape': 'unknown', 'radius': None}, '224': {'shape': 'unknown', 'radius': None}, '225': {'shape': 'unknown', 'radius': None}, '226': {'shape': 'unknown', 'radius': None}, '227': {'shape': 'unknown', 'radius': None}, '228': {'shape': 'unknown', 'radius': None}, '229': {'shape': 'unknown', 'radius': None}, '230': {'shape': 'unknown', 'radius': None}, '231': {'shape': 'unknown', 'radius': None}, '232': {'shape': 'unknown', 'radius': None}, '233': {'shape': 'unknown', 'radius': None}, '234': {'shape': 'unknown', 'radius': None}, '235': {'shape': 'unknown', 'radius': None}, '236': {'shape': 'unknown', 'radius': None}, '237': {'shape': 'unknown', 'radius': None}, '238': {'shape': 'unknown', 'radius': None}, '239': {'shape': 'unknown', 'radius': None}, '240': {'shape': 'unknown', 'radius': None}, '241': {'shape': 'unknown', 'radius': None}, '242': {'shape': 'unknown', 'radius': None}, '243': {'shape': 'unknown', 'radius': None}, '244': {'shape': 'unknown', 'radius': None}, '245': {'shape': 'unknown', 'radius': None}, '246': {'shape': 'unknown', 'radius': None}, '247': {'shape': 'unknown', 'radius': None}, '248': {'shape': 'unknown', 'radius': None}, '249': {'shape': 'unknown', 'radius': None}, '250': {'shape': 'unknown', 'radius': None}, '251': {'shape': 'unknown', 'radius': None}, '252': {'shape': 'unknown', 'radius': None}, '253': {'shape': 'unknown', 'radius': None}, '254': {'shape': 'unknown', 'radius': None}, '255': {'shape': 'unknown', 'radius': None}}"}, {"fullname": "grib2io.tables.section4", "modulename": "grib2io.tables.section4", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4.table_4_1_0", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_0", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Temperature', '1': 'Moisture', '2': 'Momentum', '3': 'Mass', '4': 'Short-wave radiation', '5': 'Long-wave radiation', '6': 'Cloud', '7': 'Thermodynamic Stability indicies', '8': 'Kinematic Stability indicies', '9': 'Temperature Probabilities*', '10': 'Moisture Probabilities*', '11': 'Momentum Probabilities*', '12': 'Mass Probabilities*', '13': 'Aerosols', '14': 'Trace gases', '15': 'Radar', '16': 'Forecast Radar Imagery', '17': 'Electrodynamics', '18': 'Nuclear/radiology', '19': 'Physical atmospheric properties', '20': 'Atmospheric chemical Constituents', '21': 'Thermodynamic Properties', '22-189': 'Reserved', '190': 'CCITT IA5 string', '191': 'Miscellaneous', '192-254': 'Reserved for Local Use', '192': 'Covariance', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_1", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_1", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Hydrology basic products', '1': 'Hydrology probabilities', '2': 'Inland water and sediment properties', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_2", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_2", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Vegetation/Biomass', '1': 'Agricultural/Aquacultural Special Products', '2': 'Transportation-related Products', '3': 'Soil Products', '4': 'Fire Weather Products', '5': 'Land Surface Products', '6': 'Urban areas', '7-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_3", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_3", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Image format products', '1': 'Quantitative products', '2': 'Cloud Properties', '3': 'Flight Rules Conditions', '4': 'Volcanic Ash', '5': 'Sea-surface Temperature', '6': 'Solar Radiation', '7-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Forecast Satellite Imagery', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_4", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_4", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Temperature', '1': 'Momentum', '2': 'Charged Particle Mass and Number', '3': 'Electric and Magnetic Fields', '4': 'Energetic Particles', '5': 'Waves', '6': 'Solar Electromagnetic Emissions', '7': 'Terrestrial Electromagnetic Emissions', '8': 'Imagery', '9': 'Ion-Neutral Coupling', '10': 'Space Weather Indices', '11-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_10", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_10", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Waves', '1': 'Currents', '2': 'Ice', '3': 'Surface Properties', '4': 'Sub-surface Properties', '5-190': 'Reserved', '191': 'Miscellaneous', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_1_20", "modulename": "grib2io.tables.section4", "qualname": "table_4_1_20", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Health Indicators', '1': 'Epidemiology', '2': 'Socioeconomic indicators', '3': 'Renewable energy sector', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_0", "modulename": "grib2io.tables.section4", "qualname": "table_4_0", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.0)', '1': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.1)', '2': 'Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time. (see Template 4.2)', '3': 'Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.3)', '4': 'Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.4)', '5': 'Probability forecasts at a horizontal level or in a horizontal layer at a point in time. (see Template 4.5)', '6': 'Percentile forecasts at a horizontal level or in a horizontal layer at a point in time. (see Template 4.6)', '7': 'Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time. (see Template 4.7)', '8': 'Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.8)', '9': 'Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.9)', '10': 'Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.10)', '11': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.11)', '12': 'Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.12)', '13': 'Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.13)', '14': 'Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.14)', '15': 'Average, accumulation, extreme values or other statistically-processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.15)', '16-19': 'Reserved', '20': 'Radar product (see Template 4.20)', '21-29': 'Reserved', '30': 'Satellite product (see Template 4.30) NOTE: This template is deprecated. Template 4.31 should be used instead.', '31': 'Satellite product (see Template 4.31)', '32': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulate (synthetic) satellite data (see Template 4.32)', '33': 'Individual Ensemble Forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data (see Template 4.33)', '34': 'Individual Ensemble Forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data(see Template 4.34)', '35': 'Satellite product with or without associated quality values (see Template 4.35)', '36-39': 'Reserved', '40': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents. (see Template 4.40)', '41': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents. (see Template 4.41)', '42': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents. (see Template 4.42)', '43': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for atmospheric chemical constituents. (see Template 4.43)', '44': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol. (see Template 4.44)', '45': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for aerosol. (see Template 4.45)', '46': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol. (see Template 4.46)', '47': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for aerosol. (see Template 4.47)', '48': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol. (see Template 4.48)', '49': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol. (see Template 4.49)', '50': 'Reserved', '51': 'Categorical forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.51)', '52': 'Reserved', '53': 'Partitioned parameters at a horizontal level or horizontal layer at a point in time. (see Template 4.53)', '54': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters. (see Template 4.54)', '55': 'Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time (see Template 4.55)', '56': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (DEPRECATED) (see Template 4.56)', '57': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function (see Template 4.57)', '58': 'Individual Ensemble Forecast, Control and Perturbed, at a horizontal level or in a horizontal layer at a point in time interval for Atmospheric Chemical Constituents based on a distribution function (see Template 4.58)', '59': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56 - See Template 4.59)', '60': 'Individual Ensemble Reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.60)', '61': 'Individual Ensemble Reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval (see Template 4.61)', '62': 'Average, Accumulation and/or Extreme values or other Statistically-processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time (see Template 4.62)', '63': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles (see Template 4.63)', '64-66': 'Reserved', '67': 'Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function (see Template 4.67)', '68': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function. (see Template 4.68)', '69': 'Reserved', '70': 'Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.70)', '71': 'Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.71)', '72': 'Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.72)', '73': 'Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.73)', '74-75': 'Reserved', '76': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink. (see Template 4.76)', '77': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink. (see Template 4.77)', '78': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink. (see Template 4.78)', '79': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink. (see Template 4.79)', '80': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink. (see Template 4.80)', '81': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink. (see Template 4.81)', '82': 'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink. (see Template 4.82)', '83': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink. (see Template 4.83)', '84': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink. (see Template 4.84)', '85': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol. (see Template 4.85)', '86': 'Quantile forecasts at a horizontal level or in a horizontal layer at a point in time. (see Template 4.86)', '87': 'Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.87)', '88': 'Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.88)', '89-90': 'Reserved', '91': 'Categorical forecast at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.91)', '92': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.92)', '93': 'Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.93)', '94': 'Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.94)', '95': 'Average, accumulation, extreme values or other statiscally processed value at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.95)', '96': 'Average, accumulation, extreme values or other statistically processed values of an individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.96)', '97': 'Average, accumulation, extreme values or other statistically processed values of post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.97)', '98': 'Average, accumulation, extreme values or other statistically processed values of a post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time. (see Template 4.98)', '99': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions (see Template 4.99)', '100': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions (see Template 4.100)', '101': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae (see Template 4.101)', '102': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae (see Template 4.102)', '103': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for waves selected by period range (see Template 4.103)', '104': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for waves selected by period range (see Template 4.104)', '105': 'Anomalies, significance and other derived products from an analysis or forecast in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.105)', '106': 'Anomalies, significance and other derived products from an individual ensemble forecast, control and perturbed in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.106)', '107': 'Anomalies, significance and other derived products from derived forecasts based on all ensemble members in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.107)', '108': 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for generic optical products (see Template 4.108)', '109': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for generic optical products (see Template 4.109)', '110': 'Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for generic optical products (see Template 4.110)', '111': 'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for generic optical products (see Template 4.111)', '112': 'Anomalies, significance and other derived products as probability forecasts in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (see Template 4.112)', '113-253': 'Reserved', '254': 'CCITT IA5 character string (see Template 4.254)', '255-999': 'Reserved', '1000': 'Cross-section of analysis and forecast at a point in time. (see Template 4.1000)', '1001': 'Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time. (see Template 4.1001)', '1002': 'Cross-section of analysis and forecast, averaged or otherwise statistically-processed over latitude or longitude. (see Template 4.1002)', '1003-1099': 'Reserved', '1100': 'Hovmoller-type grid with no averaging or other statistical processing (see Template 4.1100)', '1101': 'Hovmoller-type grid with averaging or other statistical processing (see Template 4.1101)', '1102-32767': 'Reserved', '32768-65534': 'Reserved for Local Use', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_3", "modulename": "grib2io.tables.section4", "qualname": "table_4_3", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Analysis', '1': 'Initialization', '2': 'Forecast', '3': 'Bias Corrected Forecast', '4': 'Ensemble Forecast', '5': 'Probability Forecast', '6': 'Forecast Error', '7': 'Analysis Error', '8': 'Observation', '9': 'Climatological', '10': 'Probability-Weighted Forecast', '11': 'Bias-Corrected Ensemble Forecast', '12': 'Post-processed Analysis (See Note)', '13': 'Post-processed Forecast (See Note)', '14': 'Nowcast', '15': 'Hindcast', '16': 'Physical Retrieval', '17': 'Regression Analysis', '18': 'Difference Between Two Forecasts', '19': 'First guess', '20': 'Analysis increment', '21': 'Initialization increment for analysis', '22-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Forecast Confidence Indicator', '193': 'Probability-matched Mean', '194': 'Neighborhood Probability', '195': 'Bias-Corrected and Downscaled Ensemble Forecast', '196': 'Perturbed Analysis for Ensemble Initialization', '197': 'Ensemble Agreement Scale Probability', '198': 'Post-Processed Deterministic-Expert-Weighted Forecast', '199': 'Ensemble Forecast Based on Counting', '200': 'Local Probability-matched Mean', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_4", "modulename": "grib2io.tables.section4", "qualname": "table_4_4", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Minute', '1': 'Hour', '2': 'Day', '3': 'Month', '4': 'Year', '5': 'Decade (10 Years)', '6': 'Normal (30 Years)', '7': 'Century (100 Years)', '8': 'Reserved', '9': 'Reserved', '10': '3 Hours', '11': '6 Hours', '12': '12 Hours', '13': 'Second', '14-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_5", "modulename": "grib2io.tables.section4", "qualname": "table_4_5", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Reserved', 'unknown'], '1': ['Ground or Water Surface', 'unknown'], '2': ['Cloud Base Level', 'unknown'], '3': ['Level of Cloud Tops', 'unknown'], '4': ['Level of 0o C Isotherm', 'unknown'], '5': ['Level of Adiabatic Condensation Lifted from the Surface', 'unknown'], '6': ['Maximum Wind Level', 'unknown'], '7': ['Tropopause', 'unknown'], '8': ['Nominal Top of the Atmosphere', 'unknown'], '9': ['Sea Bottom', 'unknown'], '10': ['Entire Atmosphere', 'unknown'], '11': ['Cumulonimbus Base (CB)', 'm'], '12': ['Cumulonimbus Top (CT)', 'm'], '13': ['Lowest level where vertically integrated cloud cover exceeds the specified percentage (cloud base for a given percentage cloud cover)', '%'], '14': ['Level of free convection (LFC)', 'unknown'], '15': ['Convection condensation level (CCL)', 'unknown'], '16': ['Level of neutral buoyancy or equilibrium (LNB)', 'unknown'], '17': ['Departure level of the most unstable parcel of air (MUDL)', 'unknown'], '18': ['Departure level of a mixed layer parcel of air with specified layer depth', 'Pa'], '19': ['Reserved', 'unknown'], '20': ['Isothermal Level', 'K'], '21': ['Lowest level where mass density exceeds the specified value (base for a given threshold of mass density)', 'kg m-3'], '22': ['Highest level where mass density exceeds the specified value (top for a given threshold of mass density)', 'kg m-3'], '23': ['Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration', 'Bq m-3'], '24': ['Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration)', 'Bq m-3'], '25': ['Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity)', 'dBZ'], '26': ['Convective cloud layer base', 'm'], '27': ['Convective cloud layer top', 'm'], '28-29': ['Reserved', 'unknown'], '30': ['Specified radius from the centre of the Sun', 'm'], '31': ['Solar photosphere', 'unknown'], '32': ['Ionospheric D-region level', 'unknown'], '33': ['Ionospheric E-region level', 'unknown'], '34': ['Ionospheric F1-region level', 'unknown'], '35': ['Ionospheric F2-region level', 'unknown'], '36-99': ['Reserved', 'unknown'], '100': ['Isobaric Surface', 'Pa'], '101': ['Mean Sea Level', 'unknown'], '102': ['Specific Altitude Above Mean Sea Level', 'm'], '103': ['Specified Height Level Above Ground', 'm'], '104': ['Sigma Level', 'unknown'], '105': ['Hybrid Level', 'unknown'], '106': ['Depth Below Land Surface', 'm'], '107': ['Isentropic (theta) Level', 'K'], '108': ['Level at Specified Pressure Difference from Ground to Level', 'Pa'], '109': ['Potential Vorticity Surface', 'K m2 kg-1 s-1'], '110': ['Reserved', 'unknown'], '111': ['Eta Level', 'unknown'], '112': ['Reserved', 'unknown'], '113': ['Logarithmic Hybrid Level', 'unknown'], '114': ['Snow Level', 'Numeric'], '115': ['Sigma height level', 'unknown'], '116': ['Reserved', 'unknown'], '117': ['Mixed Layer Depth', 'm'], '118': ['Hybrid Height Level', 'unknown'], '119': ['Hybrid Pressure Level', 'unknown'], '120-149': ['Reserved', 'unknown'], '150': ['Generalized Vertical Height Coordinate', 'unknown'], '151': ['Soil level', 'Numeric'], '152': ['Sea-ice level,(see Note 8)', 'Numeric'], '153-159': ['Reserved', 'unknown'], '160': ['Depth Below Sea Level', 'm'], '161': ['Depth Below Water Surface', 'm'], '162': ['Lake or River Bottom', 'unknown'], '163': ['Bottom Of Sediment Layer', 'unknown'], '164': ['Bottom Of Thermally Active Sediment Layer', 'unknown'], '165': ['Bottom Of Sediment Layer Penetrated By Thermal Wave', 'unknown'], '166': ['Mixing Layer', 'unknown'], '167': ['Bottom of Root Zone', 'unknown'], '168': ['Ocean Model Level', 'Numeric'], '169': ['Ocean level defined by water density (sigma-theta) difference from near-surface to level', 'kg m-3'], '170': ['Ocean level defined by water potential temperature difference from near-surface to level', 'K'], '171': ['Ocean level defined by vertical eddy diffusivity difference from near-surface to level', 'm2 s-1'], '172': ['Ocean level defined by water density (rho) difference from near-surface to level (*Tentatively accepted)', 'kg m-3'], '173': ['Top of Snow Over Sea Ice on Sea, Lake or River', 'unknown'], '174': ['Top Surface of Ice on Sea, Lake or River', 'unknown'], '175': ['Top Surface of Ice, under Snow, on Sea, Lake or River', 'unknown'], '176': ['Bottom Surface (underside) Ice on Sea, Lake or River', 'unknown'], '177': ['Deep Soil (of indefinite depth)', 'unknown'], '178': ['Reserved', 'unknown'], '179': ['Top Surface of Glacier Ice and Inland Ice', 'unknown'], '180': ['Deep Inland or Glacier Ice (of indefinite depth)', 'unknown'], '181': ['Grid Tile Land Fraction as a Model Surface', 'unknown'], '182': ['Grid Tile Water Fraction as a Model Surface', 'unknown'], '183': ['Grid Tile Ice Fraction on Sea, Lake or River as a Model Surface', 'unknown'], '184': ['Grid Tile Glacier Ice and Inland Ice Fraction as a Model Surface', 'unknown'], '185': ['Roof Level', 'unknown'], '186': ['Wall level', 'unknown'], '187': ['Road Level', 'unknown'], '188': ['Melt pond Top Surface', 'unknown'], '189': ['Melt Pond Bottom Surface', 'unknown'], '190-191': ['Reserved', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown'], '200': ['Entire atmosphere (considered as a single layer)', 'unknown'], '201': ['Entire ocean (considered as a single layer)', 'unknown'], '204': ['Highest tropospheric freezing level', 'unknown'], '206': ['Grid scale cloud bottom level', 'unknown'], '207': ['Grid scale cloud top level', 'unknown'], '209': ['Boundary layer cloud bottom level', 'unknown'], '210': ['Boundary layer cloud top level', 'unknown'], '211': ['Boundary layer cloud layer', 'unknown'], '212': ['Low cloud bottom level', 'unknown'], '213': ['Low cloud top level', 'unknown'], '214': ['Low cloud layer', 'unknown'], '215': ['Cloud ceiling', 'unknown'], '216': ['Effective Layer Top Level', 'm'], '217': ['Effective Layer Bottom Level', 'm'], '218': ['Effective Layer', 'm'], '220': ['Planetary Boundary Layer', 'unknown'], '221': ['Layer Between Two Hybrid Levels', 'unknown'], '222': ['Middle cloud bottom level', 'unknown'], '223': ['Middle cloud top level', 'unknown'], '224': ['Middle cloud layer', 'unknown'], '232': ['High cloud bottom level', 'unknown'], '233': ['High cloud top level', 'unknown'], '234': ['High cloud layer', 'unknown'], '235': ['Ocean Isotherm Level (1/10 \u00b0 C)', 'unknown'], '236': ['Layer between two depths below ocean surface', 'unknown'], '237': ['Bottom of Ocean Mixed Layer (m)', 'unknown'], '238': ['Bottom of Ocean Isothermal Layer (m)', 'unknown'], '239': ['Layer Ocean Surface and 26C Ocean Isothermal Level', 'unknown'], '240': ['Ocean Mixed Layer', 'unknown'], '241': ['Ordered Sequence of Data', 'unknown'], '242': ['Convective cloud bottom level', 'unknown'], '243': ['Convective cloud top level', 'unknown'], '244': ['Convective cloud layer', 'unknown'], '245': ['Lowest level of the wet bulb zero', 'unknown'], '246': ['Maximum equivalent potential temperature level', 'unknown'], '247': ['Equilibrium level', 'unknown'], '248': ['Shallow convective cloud bottom level', 'unknown'], '249': ['Shallow convective cloud top level', 'unknown'], '251': ['Deep convective cloud bottom level', 'unknown'], '252': ['Deep convective cloud top level', 'unknown'], '253': ['Lowest bottom level of supercooled liquid water layer', 'unknown'], '254': ['Highest top level of supercooled liquid water layer', 'unknown'], '255': ['Missing', 'unknown']}"}, {"fullname": "grib2io.tables.section4.table_4_6", "modulename": "grib2io.tables.section4", "qualname": "table_4_6", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Unperturbed High-Resolution Control Forecast', '1': 'Unperturbed Low-Resolution Control Forecast', '2': 'Negatively Perturbed Forecast', '3': 'Positively Perturbed Forecast', '4': 'Multi-Model Forecast', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Perturbed Ensemble Member', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_7", "modulename": "grib2io.tables.section4", "qualname": "table_4_7", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Unweighted Mean of All Members', '1': 'Weighted Mean of All Members', '2': 'Standard Deviation with respect to Cluster Mean', '3': 'Standard Deviation with respect to Cluster Mean, Normalized', '4': 'Spread of All Members', '5': 'Large Anomaly Index of All Members', '6': 'Unweighted Mean of the Cluster Members', '7': 'Interquartile Range (Range between the 25th and 75th quantile)', '8': 'Minimum Of All Ensemble Members', '9': 'Maximum Of All Ensemble Members', '10-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Unweighted Mode of All Members', '193': 'Percentile value (10%) of All Members', '194': 'Percentile value (50%) of All Members', '195': 'Percentile value (90%) of All Members', '196': 'Statistically decided weights for each ensemble member', '197': 'Climate Percentile (percentile values from climate distribution)', '198': 'Deviation of Ensemble Mean from Daily Climatology', '199': 'Extreme Forecast Index', '200': 'Equally Weighted Mean', '201': 'Percentile value (5%) of All Members', '202': 'Percentile value (25%) of All Members', '203': 'Percentile value (75%) of All Members', '204': 'Percentile value (95%) of All Members', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_8", "modulename": "grib2io.tables.section4", "qualname": "table_4_8", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Anomoly Correlation', '1': 'Root Mean Square', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_9", "modulename": "grib2io.tables.section4", "qualname": "table_4_9", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Probability of event below lower limit', '1': 'Probability of event above upper limit', '2': 'Probability of event between upper and lower limits (the range includes lower limit but no the upper limit)', '3': 'Probability of event above lower limit', '4': 'Probability of event below upper limit', '5': 'Probability of event equal to lower limit', '6': 'Probability of event in above normal category (see Notes 1 and 2)', '9-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_10", "modulename": "grib2io.tables.section4", "qualname": "table_4_10", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Average', '1': 'Accumulation', '2': 'Maximum', '3': 'Minimum', '4': 'Difference (value at the end of the time range minus value at the beginning)', '5': 'Root Mean Square', '6': 'Standard Deviation', '7': 'Covariance (temporal variance)', '8': 'Difference ( value at the beginning of the time range minus value at the end)', '9': 'Ratio', '10': 'Standardized Anomaly', '11': 'Summation', '12': 'Return period', '13-99': 'Reserved', '100': 'Severity', '101': 'Mode', '102-191': 'Reserved', '192-254': 'Reserved for Local Use', '192': 'Climatological Mean Value: multiple year averages of quantities which are themselves means over some period of time (P2) less than a year. The reference time (R) indicates the date and time of the start of a period of time, given by R to R + P2, over which a mean is formed; N indicates the number of such period-means that are averaged together to form the climatological value, assuming that the N period-mean fields are separated by one year. The reference time indicates the start of the N-year climatology. N is given in octets 22-23 of the PDS. If P1 = 0 then the data averaged in the basic interval P2 are assumed to be continuous, i.e., all available data are simply averaged together. If P1 = 1 (the units of time - octet 18, code table 4 - are not relevant here) then the data averaged together in the basic interval P2 are valid only at the time (hour, minute) given in the reference time, for all the days included in the P2 period. The units of P2 are given by the contents of octet 18 and Table 4.', '193': 'Average of N forecasts (or initialized analyses); each product has forecast period of P1 (P1=0 for initialized analyses); products have reference times at intervals of P2, beginning at the given reference time.', '194': 'Average of N uninitialized analyses, starting at reference time, at intervals of P2.', '195': 'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 24-hour intervals. Number in Ave = number of forecasts used.', '196': 'Average of successive forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at (P2 - P1) intervals. Number in Ave = number of forecasts used', '197': 'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 24-hour intervals. Number in Ave = number of forecast used', '198': 'Average of successive forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at (P2 - P1) intervals. Number in Ave = number of forecasts used', '199': 'Climatological Average of N analyses, each a year apart, starting from initial time R and for the period from R+P1 to R+P2.', '200': 'Climatological Average of N forecasts, each a year apart, starting from initial time R and for the period from R+P1 to R+P2.', '201': 'Climatological Root Mean Square difference between N forecasts and their verifying analyses, each a year apart, starting with initial time R and for the period from R+P1 to R+P2.', '202': 'Climatological Standard Deviation of N forecasts from the mean of the same N forecasts, for forecasts one year apart. The first forecast starts wtih initial time R and is for the period from R+P1 to R+P2.', '203': 'Climatological Standard Deviation of N analyses from the mean of the same N analyses, for analyses one year apart. The first analyses is valid for period R+P1 to R+P2.', '204': 'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 6-hour intervals. Number in Ave = number of forecast used', '205': 'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 6-hour intervals. Number in Ave = number of forecast used', '206': 'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 12-hour intervals. Number in Ave = number of forecast used', '207': 'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 12-hour intervals. Number in Ave = number of forecast used', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_11", "modulename": "grib2io.tables.section4", "qualname": "table_4_11", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Successive times processed have same forecast time, start time of forecast is incremented.', '2': 'Successive times processed have same start time of forecast, forecast time is incremented.', '3': 'Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant.', '4': 'Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant.', '5': 'Floating subinterval of time between forecast time and end of overall time interval.(see Note 1)', '6-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_12", "modulename": "grib2io.tables.section4", "qualname": "table_4_12", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Mainteunknownce Mode', '1': 'Clear Air', '2': 'Precipitation', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_13", "modulename": "grib2io.tables.section4", "qualname": "table_4_13", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No Quality Control Applied', '1': 'Quality Control Applied', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_14", "modulename": "grib2io.tables.section4", "qualname": "table_4_14", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No Clutter Filter Used', '1': 'Clutter Filter Used', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_15", "modulename": "grib2io.tables.section4", "qualname": "table_4_15", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Data is calculated directly from the source grid with no interpolation', '1': 'Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '2': 'Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '3': 'Using the value from the source grid grid-point which is nearest to the nominal grid-point', '4': 'Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '5': 'Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '6': 'Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point', '7-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_91", "modulename": "grib2io.tables.section4", "qualname": "table_4_91", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Smaller than first limit', '1': 'Greater than second limit', '2': 'Between first and second limit. The range includes the first limit but not the second limit.', '3': 'Greater than first limit', '4': 'Smaller than second limit', '5': 'Smaller or equal first limit', '6': 'Greater or equal second limit', '7': 'Between first and second limit. The range includes the first limit and the second limit.', '8': 'Greater or equal first limit', '9': 'Smaller or equal second limit', '10': 'Between first and second limit. The range includes the second limit but not the first limit.', '11': 'Equal to first limit', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_201", "modulename": "grib2io.tables.section4", "qualname": "table_4_201", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Rain', '2': 'Thunderstorm', '3': 'Freezing Rain', '4': 'Mixed/Ice', '5': 'Snow', '6': 'Wet Snow', '7': 'Mixture of Rain and Snow', '8': 'Ice Pellets', '9': 'Graupel', '10': 'Hail', '11': 'Drizzle', '12': 'Freezing Drizzle', '13-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_202", "modulename": "grib2io.tables.section4", "qualname": "table_4_202", "kind": "variable", "doc": "\n", "default_value": "{'0-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_203", "modulename": "grib2io.tables.section4", "qualname": "table_4_203", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Clear', '1': 'Cumulonimbus', '2': 'Stratus', '3': 'Stratocumulus', '4': 'Cumulus', '5': 'Altostratus', '6': 'Nimbostratus', '7': 'Altocumulus', '8': 'Cirrostratus', '9': 'Cirrorcumulus', '10': 'Cirrus', '11': 'Cumulonimbus - ground-based fog beneath the lowest layer', '12': 'Stratus - ground-based fog beneath the lowest layer', '13': 'Stratocumulus - ground-based fog beneath the lowest layer', '14': 'Cumulus - ground-based fog beneath the lowest layer', '15': 'Altostratus - ground-based fog beneath the lowest layer', '16': 'Nimbostratus - ground-based fog beneath the lowest layer', '17': 'Altocumulus - ground-based fog beneath the lowest layer', '18': 'Cirrostratus - ground-based fog beneath the lowest layer', '19': 'Cirrorcumulus - ground-based fog beneath the lowest layer', '20': 'Cirrus - ground-based fog beneath the lowest layer', '21-190': 'Reserved', '191': 'Unknown', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_204", "modulename": "grib2io.tables.section4", "qualname": "table_4_204", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Isolated (1-2%)', '2': 'Few (3-5%)', '3': 'Scattered (16-45%)', '4': 'Numerous (>45%)', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_205", "modulename": "grib2io.tables.section4", "qualname": "table_4_205", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Aerosol not present', '1': 'Aerosol present', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_206", "modulename": "grib2io.tables.section4", "qualname": "table_4_206", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Not Present', '1': 'Present', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_207", "modulename": "grib2io.tables.section4", "qualname": "table_4_207", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Light', '2': 'Moderate', '3': 'Severe', '4': 'Trace', '5': 'Heavy', '6-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_208", "modulename": "grib2io.tables.section4", "qualname": "table_4_208", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Light', '2': 'Moderate', '3': 'Severe', '4': 'Extreme', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_209", "modulename": "grib2io.tables.section4", "qualname": "table_4_209", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Stable', '2': 'Mechanically-Driven Turbulence', '3': 'Force Convection', '4': 'Free Convection', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_210", "modulename": "grib2io.tables.section4", "qualname": "table_4_210", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Contrail Not Present', '1': 'Contrail Present', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_211", "modulename": "grib2io.tables.section4", "qualname": "table_4_211", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Low Bypass', '1': 'High Bypass', '2': 'Non-Bypass', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_212", "modulename": "grib2io.tables.section4", "qualname": "table_4_212", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Urban Land', '2': 'Agricultural', '3': 'Range Land', '4': 'Deciduous Forest', '5': 'Coniferous Forest', '6': 'Forest/Wetland', '7': 'Water', '8': 'Wetlands', '9': 'Desert', '10': 'Tundra', '11': 'Ice', '12': 'Tropical Forest', '13': 'Savannah', '14-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_213", "modulename": "grib2io.tables.section4", "qualname": "table_4_213", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Sand', '2': 'Loamy Sand', '3': 'Sandy Loam', '4': 'Silt Loam', '5': 'Organic', '6': 'Sandy Clay Loam', '7': 'Silt Clay Loam', '8': 'Clay Loam', '9': 'Sandy Clay', '10': 'Silty Clay', '11': 'Clay', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_215", "modulename": "grib2io.tables.section4", "qualname": "table_4_215", "kind": "variable", "doc": "\n", "default_value": "{'0-49': 'Reserved', '50': 'No-Snow/No-Cloud', '51-99': 'Reserved', '100': 'Clouds', '101-249': 'Reserved', '250': 'Snow', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_216", "modulename": "grib2io.tables.section4", "qualname": "table_4_216", "kind": "variable", "doc": "\n", "default_value": "{'0-90': 'Elevation in increments of 100 m', '91-253': 'Reserved', '254': 'Clouds', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_217", "modulename": "grib2io.tables.section4", "qualname": "table_4_217", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Clear over water', '1': 'Clear over land', '2': 'Cloud', '3': 'No data', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_218", "modulename": "grib2io.tables.section4", "qualname": "table_4_218", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No Scene Identified', '1': 'Green Needle-Leafed Forest', '2': 'Green Broad-Leafed Forest', '3': 'Deciduous Needle-Leafed Forest', '4': 'Deciduous Broad-Leafed Forest', '5': 'Deciduous Mixed Forest', '6': 'Closed Shrub-Land', '7': 'Open Shrub-Land', '8': 'Woody Savannah', '9': 'Savannah', '10': 'Grassland', '11': 'Permanent Wetland', '12': 'Cropland', '13': 'Urban', '14': 'Vegetation / Crops', '15': 'Permanent Snow / Ice', '16': 'Barren Desert', '17': 'Water Bodies', '18': 'Tundra', '19': 'Warm Liquid Water Cloud', '20': 'Supercooled Liquid Water Cloud', '21': 'Mixed Phase Cloud', '22': 'Optically Thin Ice Cloud', '23': 'Optically Thick Ice Cloud', '24': 'Multi-Layeblack Cloud', '25-96': 'Reserved', '97': 'Snow / Ice on Land', '98': 'Snow / Ice on Water', '99': 'Sun-Glint', '100': 'General Cloud', '101': 'Low Cloud / Fog / Stratus', '102': 'Low Cloud / Stratocumulus', '103': 'Low Cloud / Unknown Type', '104': 'Medium Cloud / Nimbostratus', '105': 'Medium Cloud / Altostratus', '106': 'Medium Cloud / Unknown Type', '107': 'High Cloud / Cumulus', '108': 'High Cloud / Cirrus', '109': 'High Cloud / Unknown Type', '110': 'Unknown Cloud Type', '111': 'Single layer water cloud', '112': 'Single layer ice cloud', '113-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_222", "modulename": "grib2io.tables.section4", "qualname": "table_4_222", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No', '1': 'Yes', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_223", "modulename": "grib2io.tables.section4", "qualname": "table_4_223", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No Fire Detected', '1': 'Possible Fire Detected', '2': 'Probable Fire Detected', '3': 'Missing', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_224", "modulename": "grib2io.tables.section4", "qualname": "table_4_224", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No Risk Area', '1': 'Reserved', '2': 'General Thunderstorm Risk Area', '3': 'Reserved', '4': 'Slight Risk Area', '5': 'Reserved', '6': 'Moderate Risk Area', '7': 'Reserved', '8': 'High Risk Area', '9-10': 'Reserved', '11': 'Dry Thunderstorm (Dry Lightning) Risk Area', '12-13': 'Reserved', '14': 'Critical Risk Area', '15-17': 'Reserved', '18': 'Extreamly Critical Risk Area', '19-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_227", "modulename": "grib2io.tables.section4", "qualname": "table_4_227", "kind": "variable", "doc": "\n", "default_value": "{'1': 'General', '2': 'Convective', '3': 'Stratiform', '4': 'Freezing', '5-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_228", "modulename": "grib2io.tables.section4", "qualname": "table_4_228", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Trace', '2': 'Light', '3': 'Moderate', '4': 'Severe', '6-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_233", "modulename": "grib2io.tables.section4", "qualname": "table_4_233", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Ozone', 'O3'], '1': ['Water Vapour', 'H2O'], '2': ['Methane', 'CH4'], '3': ['Carbon Dioxide', 'CO2'], '4': ['Carbon Monoxide', 'CO'], '5': ['Nitrogen Dioxide', 'NO2'], '6': ['Nitrous Oxide', 'N2O'], '7': ['Formaldehyde', 'HCHO'], '8': ['Sulphur Dioxide', 'SO2'], '9': ['Ammonia', 'NH3'], '10': ['Ammonium', 'NH4+'], '11': ['Nitrogen Monoxide', 'NO'], '12': ['Atomic Oxygen', 'O'], '13': ['Nitrate Radical', 'NO3'], '14': ['Hydroperoxyl Radical', 'HO2'], '15': ['Dinitrogen Pentoxide', 'H2O5'], '16': ['Nitrous Acid', 'HONO'], '17': ['Nitric Acid', 'HNO3'], '18': ['Peroxynitric Acid', 'HO2NO2'], '19': ['Hydrogen Peroxide', 'H2O2'], '20': ['Molecular Hydrogen', 'H'], '21': ['Atomic Nitrogen', 'N'], '22': ['Sulphate', 'SO42-'], '23': ['Radon', 'Rn'], '24': ['Elemental Mercury', 'Hg(O)'], '25': ['Divalent Mercury', 'Hg2+'], '26': ['Atomic Chlorine', 'Cl'], '27': ['Chlorine Monoxide', 'ClO'], '28': ['Dichlorine Peroxide', 'Cl2O2'], '29': ['Hypochlorous Acid', 'HClO'], '30': ['Chlorine Nitrate', 'ClONO2'], '31': ['Chlorine Dioxide', 'ClO2'], '32': ['Atomic Bromide', 'Br'], '33': ['Bromine Monoxide', 'BrO'], '34': ['Bromine Chloride', 'BrCl'], '35': ['Hydrogen Bromide', 'HBr'], '36': ['Hypobromous Acid', 'HBrO'], '37': ['Bromine Nitrate', 'BrONO2'], '38': ['Oxygen', 'O2'], '39-9999': ['Reserved', 'unknown'], '10000': ['Hydroxyl Radical', 'OH'], '10001': ['Methyl Peroxy Radical', 'CH3O2'], '10002': ['Methyl Hydroperoxide', 'CH3O2H'], '10003': ['Reserved', 'unknown'], '10004': ['Methanol', 'CH3OH'], '10005': ['Formic Acid', 'CH3OOH'], '10006': ['Hydrogen Cyanide', 'HCN'], '10007': ['Aceto Nitrile', 'CH3CN'], '10008': ['Ethane', 'C2H6'], '10009': ['Ethene (= Ethylene)', 'C2H4'], '10010': ['Ethyne (= Acetylene)', 'C2H2'], '10011': ['Ethanol', 'C2H5OH'], '10012': ['Acetic Acid', 'C2H5OOH'], '10013': ['Peroxyacetyl Nitrate', 'CH3C(O)OONO2'], '10014': ['Propane', 'C3H8'], '10015': ['Propene', 'C3H6'], '10016': ['Butanes', 'C4H10'], '10017': ['Isoprene', 'C5H10'], '10018': ['Alpha Pinene', 'C10H16'], '10019': ['Beta Pinene', 'C10H16'], '10020': ['Limonene', 'C10H16'], '10021': ['Benzene', 'C6H6'], '10022': ['Toluene', 'C7H8'], '10023': ['Xylene', 'C8H10'], '10024-10499': ['Reserved', 'unknown'], '10500': ['Dimethyl Sulphide', 'CH3SCH3'], '10501-20000': ['Reserved', 'unknown'], '20001': ['Hydrogen Chloride', 'HCL'], '20002': ['CFC-11', 'unknown'], '20003': ['CFC-12', 'unknown'], '20004': ['CFC-113', 'unknown'], '20005': ['CFC-113a', 'unknown'], '20006': ['CFC-114', 'unknown'], '20007': ['CFC-115', 'unknown'], '20008': ['HCFC-22', 'unknown'], '20009': ['HCFC-141b', 'unknown'], '20010': ['HCFC-142b', 'unknown'], '20011': ['Halon-1202', 'unknown'], '20012': ['Halon-1211', 'unknown'], '20013': ['Halon-1301', 'unknown'], '20014': ['Halon-2402', 'unknown'], '20015': ['Methyl Chloride (HCC-40)', 'unknown'], '20016': ['Carbon Tetrachloride (HCC-10)', 'unknown'], '20017': ['HCC-140a', 'CH3CCl3'], '20018': ['Methyl Bromide (HBC-40B1)', 'unknown'], '20019': ['Hexachlorocyclohexane (HCH)', 'unknown'], '20020': ['Alpha Hexachlorocyclohexane', 'unknown'], '20021': ['Hexachlorobiphenyl (PCB-153)', 'unknown'], '20022-29999': ['Reserved', 'unknown'], '30000': ['Radioactive Pollutant (Tracer, defined by originating centre)', 'unknown'], '30001-50000': ['Reserved', 'unknown'], '60000': ['HOx Radical (OH+HO2)', 'unknown'], '60001': ['Total Inorganic and Organic Peroxy Radicals (HO2+RO2)', 'RO2'], '60002': ['Passive Ozone', 'unknown'], '60003': ['NOx Expressed As Nitrogen', 'NOx'], '60004': ['All Nitrogen Oxides (NOy) Expressed As Nitrogen', 'NOy'], '60005': ['Total Inorganic Chlorine', 'Clx'], '60006': ['Total Inorganic Bromine', 'Brx'], '60007': ['Total Inorganic Chlorine Except HCl, ClONO2: ClOx', 'unknown'], '60008': ['Total Inorganic Bromine Except Hbr, BrONO2:BrOx', 'unknown'], '60009': ['Lumped Alkanes', 'unknown'], '60010': ['Lumped Alkenes', 'unknown'], '60011': ['Lumped Aromatic Coumpounds', 'unknown'], '60012': ['Lumped Terpenes', 'unknown'], '60013': ['Non-Methane Volatile Organic Compounds Expressed as Carbon', 'NMVOC'], '60014': ['Anthropogenic Non-Methane Volatile Organic Compounds Expressed as Carbon', 'aNMVOC'], '60015': ['Biogenic Non-Methane Volatile Organic Compounds Expressed as Carbon', 'bNMVOC'], '60016': ['Lumped Oxygenated Hydrocarbons', 'OVOC'], '60017-61999': ['Reserved', 'unknown'], '62000': ['Total Aerosol', 'unknown'], '62001': ['Dust Dry', 'unknown'], '62002': ['water In Ambient', 'unknown'], '62003': ['Ammonium Dry', 'unknown'], '62004': ['Nitrate Dry', 'unknown'], '62005': ['Nitric Acid Trihydrate', 'unknown'], '62006': ['Sulphate Dry', 'unknown'], '62007': ['Mercury Dry', 'unknown'], '62008': ['Sea Salt Dry', 'unknown'], '62009': ['Black Carbon Dry', 'unknown'], '62010': ['Particulate Organic Matter Dry', 'unknown'], '62011': ['Primary Particulate Organic Matter Dry', 'unknown'], '62012': ['Secondary Particulate Organic Matter Dry', 'unknown'], '62013': ['Black carbon hydrophilic dry', 'unknown'], '62014': ['Black carbon hydrophobic dry', 'unknown'], '62015': ['Particulate organic matter hydrophilic dry', 'unknown'], '62016': ['Particulate organic matter hydrophobic dry', 'unknown'], '62017': ['Nitrate hydrophilic dry', 'unknown'], '62018': ['Nitrate hydrophobic dry', 'unknown'], '62019': ['Reserved', 'unknown'], '62020': ['Smoke - high absorption', 'unknown'], '62021': ['Smoke - low absorption', 'unknown'], '62022': ['Aerosol - high absorption', 'unknown'], '62023': ['Aerosol - low absorption', 'unknown'], '62024': ['Reserved', 'unknown'], '62025': ['Volcanic ash', 'unknown'], '62036': ['Brown Carbon Dry', 'unknown'], '62037-65534': ['Reserved', 'unknown'], '65535': ['Missing', 'unknown']}"}, {"fullname": "grib2io.tables.section4.table_4_234", "modulename": "grib2io.tables.section4", "qualname": "table_4_234", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Crops, mixed farming', '2': 'Short grass', '3': 'Evergreen needleleaf trees', '4': 'Deciduous needleleaf trees', '5': 'Deciduous broadleaf trees', '6': 'Evergreen broadleaf trees', '7': 'Tall grass', '8': 'Desert', '9': 'Tundra', '10': 'Irrigated corps', '11': 'Semidesert', '12': 'Ice caps and glaciers', '13': 'Bogs and marshes', '14': 'Inland water', '15': 'Ocean', '16': 'Evergreen shrubs', '17': 'Deciduous shrubs', '18': 'Mixed forest', '19': 'Interrupted forest', '20': 'Water and land mixtures', '21-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_235", "modulename": "grib2io.tables.section4", "qualname": "table_4_235", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Total Wave Spectrum (combined wind waves and swell)', '1': 'Generalized Partition', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_236", "modulename": "grib2io.tables.section4", "qualname": "table_4_236", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Coarse', '2': 'Medium', '3': 'Medium-fine', '4': 'Fine', '5': 'Very-fine', '6': 'Organic', '7': 'Tropical-organic', '8-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_238", "modulename": "grib2io.tables.section4", "qualname": "table_4_238", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Aviation', '2': 'Lightning', '3': 'Biogenic Sources', '4': 'Anthropogenic sources', '5': 'Wild fires', '6': 'Natural sources', '7': 'Bio-fuel', '8': 'Volcanoes', '9': 'Fossil-fuel', '10': 'Wetlands', '11': 'Oceans', '12': 'Elevated anthropogenic sources', '13': 'Surface anthropogenic sources', '14': 'Agriculture livestock', '15': 'Agriculture soils', '16': 'Agriculture waste burning', '17': 'Agriculture (all)', '18': 'Residential, commercial and other combustion', '19': 'Power generation', '20': 'Super power stations', '21': 'Fugitives', '22': 'Industrial process', '23': 'Solvents', '24': 'Ships', '25': 'Wastes', '26': 'Road transportation', '27': 'Off-road transportation', '28-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_239", "modulename": "grib2io.tables.section4", "qualname": "table_4_239", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Bog', '2': 'Drained', '3': 'Fen', '4': 'Floodplain', '5': 'Mangrove', '6': 'Marsh', '7': 'Rice', '8': 'Riverine', '9': 'Salt Marsh', '10': 'Swamp', '11': 'Upland', '12': 'Wet tundra', '13-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_243", "modulename": "grib2io.tables.section4", "qualname": "table_4_243", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Evergreen broadleaved forest', '2': 'Deciduous broadleaved closed forest', '3': 'Deciduous broadleaved open forest', '4': 'Evergreen needle-leaf forest', '5': 'Deciduous needle-leaf forest', '6': 'Mixed leaf trees', '7': 'Fresh water flooded trees', '8': 'Saline water flooded trees', '9': 'Mosaic tree/natural vegetation', '10': 'Burnt tree cover', '11': 'Evergreen shurbs closed-open', '12': 'Deciduous shurbs closed-open', '13': 'Herbaceous vegetation closed-open', '14': 'Sparse herbaceous or grass', '15': 'Flooded shurbs or herbaceous', '16': 'Cultivated and managed areas', '17': 'Mosaic crop/tree/natural vegetation', '18': 'Mosaic crop/shrub/grass', '19': 'Bare areas', '20': 'Water', '21': 'Snow and ice', '22': 'Artificial surface', '23': 'Ocean', '24': 'Irrigated croplands', '25': 'Rain fed croplands', '26': 'Mosaic cropland (50-70%)-vegetation (20-50%)', '27': 'Mosaic vegetation (50-70%)-cropland (20-50%)', '28': 'Closed broadleaved evergreen forest', '29': 'Closed needle-leaved evergreen forest', '30': 'Open needle-leaved deciduous forest', '31': 'Mixed broadleaved and needle-leave forest', '32': 'Mosaic shrubland (50-70%)-grassland (20-50%)', '33': 'Mosaic grassland (50-70%)-shrubland (20-50%)', '34': 'Closed to open shrubland', '35': 'Sparse vegetation', '36': 'Closed to open forest regularly flooded', '37': 'Closed forest or shrubland permanently flooded', '38': 'Closed to open grassland regularly flooded', '39': 'Undefined', '40-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_244", "modulename": "grib2io.tables.section4", "qualname": "table_4_244", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No Quality Information Available', '1': 'Failed', '2': 'Passed', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_246", "modulename": "grib2io.tables.section4", "qualname": "table_4_246", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No thunderstorm occurrence', '1': 'Weak thunderstorm', '2': 'Moderate thunderstorm', '3': 'Severe thunderstorm', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_247", "modulename": "grib2io.tables.section4", "qualname": "table_4_247", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No precipitation occurrence', '1': 'Light precipitation', '2': 'Moderate precipitation', '3': 'Heavy precipitation', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_248", "modulename": "grib2io.tables.section4", "qualname": "table_4_248", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Nearest forecast or analysis time to specified local time', '1': 'Interpolated to be valid at the specified local time', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_249", "modulename": "grib2io.tables.section4", "qualname": "table_4_249", "kind": "variable", "doc": "\n", "default_value": "{'1': 'Showers', '2': 'Intermittent', '3': 'Continuous', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_250", "modulename": "grib2io.tables.section4", "qualname": "table_4_250", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'South-West', '2': 'South', '3': 'South-East', '4': 'West', '5': 'No direction', '6': 'East', '7': 'North-West', '8': 'North', '9': 'North-East', '10-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_4_251", "modulename": "grib2io.tables.section4", "qualname": "table_4_251", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Undefined Sequence', '1': 'Geometric sequence,(see Note 1)', '2': 'Arithmetic sequence,(see Note 2)', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section4.table_scale_time_hours", "modulename": "grib2io.tables.section4", "qualname": "table_scale_time_hours", "kind": "variable", "doc": "\n", "default_value": "{'0': 60.0, '1': 1.0, '2': 0.041666666666666664, '3': 0.001388888888888889, '4': 0.00011415525114155251, '5': 1.1415525114155251e-05, '6': 3.80517503805175e-06, '7': 1.1415525114155251e-06, '8': 1.0, '9': 1.0, '10': 3.0, '11': 6.0, '12': 12.0, '13': 3600.0, '14-255': 1.0}"}, {"fullname": "grib2io.tables.section4.table_wgrib2_level_string", "modulename": "grib2io.tables.section4", "qualname": "table_wgrib2_level_string", "kind": "variable", "doc": "\n", "default_value": "{'0': ['reserved', 'reserved'], '1': ['surface', 'reserved'], '2': ['cloud base', 'reserved'], '3': ['cloud top', 'reserved'], '4': ['0C isotherm', 'reserved'], '5': ['level of adiabatic condensation from sfc', 'reserved'], '6': ['max wind', 'reserved'], '7': ['tropopause', 'reserved'], '8': ['top of atmosphere', 'reserved'], '9': ['sea bottom', 'reserved'], '10': ['entire atmosphere', 'reserved'], '11': ['cumulonimbus base', 'reserved'], '12': ['cumulonimbus top', 'reserved'], '13': ['lowest level %g%% integrated cloud cover', 'reserved'], '14': ['level of free convection', 'reserved'], '15': ['convection condensation level', 'reserved'], '16': ['level of neutral buoyancy', 'reserved'], '17': ['reserved', 'reserved'], '18': ['reserved', 'reserved'], '19': ['reserved', 'reserved'], '20': ['%g K level', 'reserved'], '21': ['lowest level > %g kg/m^3', 'reserved'], '22': ['highest level > %g kg/m^3', 'reserved'], '23': ['lowest level > %g Bq/m^3', 'reserved'], '24': ['highest level > %g Bg/m^3', 'reserved'], '25': ['reserved', 'reserved'], '26': ['reserved', 'reserved'], '27': ['reserved', 'reserved'], '28': ['reserved', 'reserved'], '29': ['reserved', 'reserved'], '30': ['reserved', 'reserved'], '31': ['reserved', 'reserved'], '32': ['reserved', 'reserved'], '33': ['reserved', 'reserved'], '34': ['reserved', 'reserved'], '35': ['reserved', 'reserved'], '36': ['reserved', 'reserved'], '37': ['reserved', 'reserved'], '38': ['reserved', 'reserved'], '39': ['reserved', 'reserved'], '40': ['reserved', 'reserved'], '41': ['reserved', 'reserved'], '42': ['reserved', 'reserved'], '43': ['reserved', 'reserved'], '44': ['reserved', 'reserved'], '45': ['reserved', 'reserved'], '46': ['reserved', 'reserved'], '47': ['reserved', 'reserved'], '48': ['reserved', 'reserved'], '49': ['reserved', 'reserved'], '50': ['reserved', 'reserved'], '51': ['reserved', 'reserved'], '52': ['reserved', 'reserved'], '53': ['reserved', 'reserved'], '54': ['reserved', 'reserved'], '55': ['reserved', 'reserved'], '56': ['reserved', 'reserved'], '57': ['reserved', 'reserved'], '58': ['reserved', 'reserved'], '59': ['reserved', 'reserved'], '60': ['reserved', 'reserved'], '61': ['reserved', 'reserved'], '62': ['reserved', 'reserved'], '63': ['reserved', 'reserved'], '64': ['reserved', 'reserved'], '65': ['reserved', 'reserved'], '66': ['reserved', 'reserved'], '67': ['reserved', 'reserved'], '68': ['reserved', 'reserved'], '69': ['reserved', 'reserved'], '70': ['reserved', 'reserved'], '71': ['reserved', 'reserved'], '72': ['reserved', 'reserved'], '73': ['reserved', 'reserved'], '74': ['reserved', 'reserved'], '75': ['reserved', 'reserved'], '76': ['reserved', 'reserved'], '77': ['reserved', 'reserved'], '78': ['reserved', 'reserved'], '79': ['reserved', 'reserved'], '80': ['reserved', 'reserved'], '81': ['reserved', 'reserved'], '82': ['reserved', 'reserved'], '83': ['reserved', 'reserved'], '84': ['reserved', 'reserved'], '85': ['reserved', 'reserved'], '86': ['reserved', 'reserved'], '87': ['reserved', 'reserved'], '88': ['reserved', 'reserved'], '89': ['reserved', 'reserved'], '90': ['reserved', 'reserved'], '91': ['reserved', 'reserved'], '92': ['reserved', 'reserved'], '93': ['reserved', 'reserved'], '94': ['reserved', 'reserved'], '95': ['reserved', 'reserved'], '96': ['reserved', 'reserved'], '97': ['reserved', 'reserved'], '98': ['reserved', 'reserved'], '99': ['reserved', 'reserved'], '100': ['%g mb', '%g-%g mb'], '101': ['mean sea level', 'reserved'], '102': ['%g m above mean sea level', '%g-%g m above mean sea level'], '103': ['%g m above ground', '%g-%g m above ground'], '104': ['%g sigma level', '%g-%g sigma layer'], '105': ['%g hybrid level', '%g-%g hybrid layer'], '106': ['%g m underground', '%g-%g m underground'], '107': ['%g K isentropic level', '%g-%g K isentropic layer'], '108': ['%g mb above ground', '%g-%g mb above ground'], '109': ['PV=%g (Km^2/kg/s) surface', 'reserved'], '110': ['reserved', 'reserved'], '111': ['%g Eta level', '%g-%g Eta layer'], '112': ['reserved', 'reserved'], '113': ['%g logarithmic hybrid level', 'reserved'], '114': ['snow level', 'reserved'], '115': ['%g sigma height level', '%g-%g sigma heigh layer'], '116': ['reserved', 'reserved'], '117': ['mixed layer depth', 'reserved'], '118': ['%g hybrid height level', '%g-%g hybrid height layer'], '119': ['%g hybrid pressure level', '%g-%g hybrid pressure layer'], '120': ['reserved', 'reserved'], '121': ['reserved', 'reserved'], '122': ['reserved', 'reserved'], '123': ['reserved', 'reserved'], '124': ['reserved', 'reserved'], '125': ['reserved', 'reserved'], '126': ['reserved', 'reserved'], '127': ['reserved', 'reserved'], '128': ['reserved', 'reserved'], '129': ['reserved', 'reserved'], '130': ['reserved', 'reserved'], '131': ['reserved', 'reserved'], '132': ['reserved', 'reserved'], '133': ['reserved', 'reserved'], '134': ['reserved', 'reserved'], '135': ['reserved', 'reserved'], '136': ['reserved', 'reserved'], '137': ['reserved', 'reserved'], '138': ['reserved', 'reserved'], '139': ['reserved', 'reserved'], '140': ['reserved', 'reserved'], '141': ['reserved', 'reserved'], '142': ['reserved', 'reserved'], '143': ['reserved', 'reserved'], '144': ['reserved', 'reserved'], '145': ['reserved', 'reserved'], '146': ['reserved', 'reserved'], '147': ['reserved', 'reserved'], '148': ['reserved', 'reserved'], '149': ['reserved', 'reserved'], '150': ['%g generalized vertical height coordinate', 'reserved'], '151': ['soil level %g', 'reserved'], '152': ['reserved', 'reserved'], '153': ['reserved', 'reserved'], '154': ['reserved', 'reserved'], '155': ['reserved', 'reserved'], '156': ['reserved', 'reserved'], '157': ['reserved', 'reserved'], '158': ['reserved', 'reserved'], '159': ['reserved', 'reserved'], '160': ['%g m below sea level', '%g-%g m below sea level'], '161': ['%g m below water surface', '%g-%g m ocean layer'], '162': ['lake or river bottom', 'reserved'], '163': ['bottom of sediment layer', 'reserved'], '164': ['bottom of thermally active sediment layer', 'reserved'], '165': ['bottom of sediment layer penetrated by thermal wave', 'reserved'], '166': ['maxing layer', 'reserved'], '167': ['bottom of root zone', 'reserved'], '168': ['reserved', 'reserved'], '169': ['reserved', 'reserved'], '170': ['reserved', 'reserved'], '171': ['reserved', 'reserved'], '172': ['reserved', 'reserved'], '173': ['reserved', 'reserved'], '174': ['top surface of ice on sea, lake or river', 'reserved'], '175': ['top surface of ice, und snow on sea, lake or river', 'reserved'], '176': ['bottom surface ice on sea, lake or river', 'reserved'], '177': ['deep soil', 'reserved'], '178': ['reserved', 'reserved'], '179': ['top surface of glacier ice and inland ice', 'reserved'], '180': ['deep inland or glacier ice', 'reserved'], '181': ['grid tile land fraction as a model surface', 'reserved'], '182': ['grid tile water fraction as a model surface', 'reserved'], '183': ['grid tile ice fraction on sea, lake or river as a model surface', 'reserved'], '184': ['grid tile glacier ice and inland ice fraction as a model surface', 'reserved'], '185': ['reserved', 'reserved'], '186': ['reserved', 'reserved'], '187': ['reserved', 'reserved'], '188': ['reserved', 'reserved'], '189': ['reserved', 'reserved'], '190': ['reserved', 'reserved'], '191': ['reserved', 'reserved'], '192': ['reserved', 'reserved'], '193': ['reserved', 'reserved'], '194': ['reserved', 'reserved'], '195': ['reserved', 'reserved'], '196': ['reserved', 'reserved'], '197': ['reserved', 'reserved'], '198': ['reserved', 'reserved'], '199': ['reserved', 'reserved'], '200': ['entire atmosphere (considered as a single layer)', 'reserved'], '201': ['entire ocean (considered as a single layer)', 'reserved'], '202': ['reserved', 'reserved'], '203': ['reserved', 'reserved'], '204': ['highest tropospheric freezing level', 'reserved'], '205': ['reserved', 'reserved'], '206': ['grid scale cloud bottom level', 'reserved'], '207': ['grid scale cloud top level', 'reserved'], '208': ['reserved', 'reserved'], '209': ['boundary layer cloud bottom level', 'reserved'], '210': ['boundary layer cloud top level', 'reserved'], '211': ['boundary layer cloud layer', 'reserved'], '212': ['low cloud bottom level', 'reserved'], '213': ['low cloud top level', 'reserved'], '214': ['low cloud layer', 'reserved'], '215': ['cloud ceiling', 'reserved'], '216': ['reserved', 'reserved'], '217': ['reserved', 'reserved'], '218': ['reserved', 'reserved'], '219': ['reserved', 'reserved'], '220': ['planetary boundary layer', 'reserved'], '221': ['layer between two hybrid levels', 'reserved'], '222': ['middle cloud bottom level', 'reserved'], '223': ['middle cloud top level', 'reserved'], '224': ['middle cloud layer', 'reserved'], '225': ['reserved', 'reserved'], '226': ['reserved', 'reserved'], '227': ['reserved', 'reserved'], '228': ['reserved', 'reserved'], '229': ['reserved', 'reserved'], '230': ['reserved', 'reserved'], '231': ['reserved', 'reserved'], '232': ['high cloud bottom level', 'reserved'], '233': ['high cloud top level', 'reserved'], '234': ['high cloud layer', 'reserved'], '235': ['%gC ocean isotherm', '%g-%gC ocean isotherm layer'], '236': ['layer between two depths below ocean surface', '%g-%g m ocean layer'], '237': ['bottom of ocean mixed layer', 'reserved'], '238': ['bottom of ocean isothermal layer', 'reserved'], '239': ['layer ocean surface and 26C ocean isothermal level', 'reserved'], '240': ['ocean mixed layer', 'reserved'], '241': ['%g in sequence', 'reserved'], '242': ['convective cloud bottom level', 'reserved'], '243': ['convective cloud top level', 'reserved'], '244': ['convective cloud layer', 'reserved'], '245': ['lowest level of the wet bulb zero', 'reserved'], '246': ['maximum equivalent potential temperature level', 'reserved'], '247': ['equilibrium level', 'reserved'], '248': ['shallow convective cloud bottom level', 'reserved'], '249': ['shallow convective cloud top level', 'reserved'], '250': ['reserved', 'reserved'], '251': ['deep convective cloud bottom level', 'reserved'], '252': ['deep convective cloud top level', 'reserved'], '253': ['lowest bottom level of supercooled liquid water layer', 'reserved'], '254': ['highest top level of supercooled liquid water layer', 'reserved'], '255': ['missing', 'reserved']}"}, {"fullname": "grib2io.tables.section4_discipline0", "modulename": "grib2io.tables.section4_discipline0", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_0", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_0", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Temperature', 'K', 'TMP'], '1': ['Virtual Temperature', 'K', 'VTMP'], '2': ['Potential Temperature', 'K', 'POT'], '3': ['Pseudo-Adiabatic Potential Temperature (or Equivalent Potential Temperature)', 'K', 'EPOT'], '4': ['Maximum Temperature', 'K', 'TMAX'], '5': ['Minimum Temperature', 'K', 'TMIN'], '6': ['Dew Point Temperature', 'K', 'DPT'], '7': ['Dew Point Depression (or Deficit)', 'K', 'DEPR'], '8': ['Lapse Rate', 'K m-1', 'LAPR'], '9': ['Temperature Anomaly', 'K', 'TMPA'], '10': ['Latent Heat Net Flux', 'W m-2', 'LHTFL'], '11': ['Sensible Heat Net Flux', 'W m-2', 'SHTFL'], '12': ['Heat Index', 'K', 'HEATX'], '13': ['Wind Chill Factor', 'K', 'WCF'], '14': ['Minimum Dew Point Depression', 'K', 'MINDPD'], '15': ['Virtual Potential Temperature', 'K', 'VPTMP'], '16': ['Snow Phase Change Heat Flux', 'W m-2', 'SNOHF'], '17': ['Skin Temperature', 'K', 'SKINT'], '18': ['Snow Temperature (top of snow)', 'K', 'SNOT'], '19': ['Turbulent Transfer Coefficient for Heat', 'Numeric', 'TTCHT'], '20': ['Turbulent Diffusion Coefficient for Heat', 'm2s-1', 'TDCHT'], '21': ['Apparent Temperature', 'K', 'APTMP'], '22': ['Temperature Tendency due to Short-Wave Radiation', 'K s-1', 'TTSWR'], '23': ['Temperature Tendency due to Long-Wave Radiation', 'K s-1', 'TTLWR'], '24': ['Temperature Tendency due to Short-Wave Radiation, Clear Sky', 'K s-1', 'TTSWRCS'], '25': ['Temperature Tendency due to Long-Wave Radiation, Clear Sky', 'K s-1', 'TTLWRCS'], '26': ['Temperature Tendency due to parameterizations', 'K s-1', 'TTPARM'], '27': ['Wet Bulb Temperature', 'K', 'WETBT'], '28': ['Unbalanced Component of Temperature', 'K', 'UCTMP'], '29': ['Temperature Advection', 'K s-1', 'TMPADV'], '30': ['Latent Heat Net Flux Due to Evaporation', 'W m-2', 'LHFLXE'], '31': ['Latent Heat Net Flux Due to Sublimation', 'W m-2', 'LHFLXS'], '32': ['Wet-Bulb Potential Temperature', 'K', 'WETBPT'], '33-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Snow Phase Change Heat Flux', 'W m-2', 'SNOHF'], '193': ['Temperature Tendency by All Radiation', 'K s-1', 'TTRAD'], '194': ['Relative Error Variance', 'unknown', 'REV'], '195': ['Large Scale Condensate Heating Rate', 'K s-1', 'LRGHR'], '196': ['Deep Convective Heating Rate', 'K s-1', 'CNVHR'], '197': ['Total Downward Heat Flux at Surface', 'W m-2', 'THFLX'], '198': ['Temperature Tendency by All Physics', 'K s-1', 'TTDIA'], '199': ['Temperature Tendency by Non-radiation Physics', 'K s-1', 'TTPHY'], '200': ['Standard Dev. of IR Temp. over 1x1 deg. area', 'K', 'TSD1D'], '201': ['Shallow Convective Heating Rate', 'K s-1', 'SHAHR'], '202': ['Vertical Diffusion Heating rate', 'K s-1', 'VDFHR'], '203': ['Potential Temperature at Top of Viscous Sublayer', 'K', 'THZ0'], '204': ['Tropical Cyclone Heat Potential', 'J m-2 K', 'TCHP'], '205': ['Effective Layer (EL) Temperature', 'C', 'ELMELT'], '206': ['Wet Bulb Globe Temperature', 'K', 'WETGLBT'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_1", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_1", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Specific Humidity', 'kg kg-1', 'SPFH'], '1': ['Relative Humidity', '%', 'RH'], '2': ['Humidity Mixing Ratio', 'kg kg-1', 'MIXR'], '3': ['Precipitable Water', 'kg m-2', 'PWAT'], '4': ['Vapour Pressure', 'Pa', 'VAPP'], '5': ['Saturation Deficit', 'Pa', 'SATD'], '6': ['Evaporation', 'kg m-2', 'EVP'], '7': ['Precipitation Rate', 'kg m-2 s-1', 'PRATE'], '8': ['Total Precipitation', 'kg m-2', 'APCP'], '9': ['Large-Scale Precipitation (non-convective)', 'kg m-2', 'NCPCP'], '10': ['Convective Precipitation', 'kg m-2', 'ACPCP'], '11': ['Snow Depth', 'm', 'SNOD'], '12': ['Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'SRWEQ'], '13': ['Water Equivalent of Accumulated Snow Depth', 'kg m-2', 'WEASD'], '14': ['Convective Snow', 'kg m-2', 'SNOC'], '15': ['Large-Scale Snow', 'kg m-2', 'SNOL'], '16': ['Snow Melt', 'kg m-2', 'SNOM'], '17': ['Snow Age', 'day', 'SNOAG'], '18': ['Absolute Humidity', 'kg m-3', 'ABSH'], '19': ['Precipitation Type', 'See Table 4.201', 'PTYPE'], '20': ['Integrated Liquid Water', 'kg m-2', 'ILIQW'], '21': ['Condensate', 'kg kg-1', 'TCOND'], '22': ['Cloud Mixing Ratio', 'kg kg-1', 'CLMR'], '23': ['Ice Water Mixing Ratio', 'kg kg-1', 'ICMR'], '24': ['Rain Mixing Ratio', 'kg kg-1', 'RWMR'], '25': ['Snow Mixing Ratio', 'kg kg-1', 'SNMR'], '26': ['Horizontal Moisture Convergence', 'kg kg-1 s-1', 'MCONV'], '27': ['Maximum Relative Humidity', '%', 'MAXRH'], '28': ['Maximum Absolute Humidity', 'kg m-3', 'MAXAH'], '29': ['Total Snowfall', 'm', 'ASNOW'], '30': ['Precipitable Water Category', 'See Table 4.202', 'PWCAT'], '31': ['Hail', 'm', 'HAIL'], '32': ['Graupel', 'kg kg-1', 'GRLE'], '33': ['Categorical Rain', 'Code table 4.222', 'CRAIN'], '34': ['Categorical Freezing Rain', 'Code table 4.222', 'CFRZR'], '35': ['Categorical Ice Pellets', 'Code table 4.222', 'CICEP'], '36': ['Categorical Snow', 'Code table 4.222', 'CSNOW'], '37': ['Convective Precipitation Rate', 'kg m-2 s-1', 'CPRAT'], '38': ['Horizontal Moisture Divergence', 'kg kg-1 s-1', 'MDIVER'], '39': ['Percent frozen precipitation', '%', 'CPOFP'], '40': ['Potential Evaporation', 'kg m-2', 'PEVAP'], '41': ['Potential Evaporation Rate', 'W m-2', 'PEVPR'], '42': ['Snow Cover', '%', 'SNOWC'], '43': ['Rain Fraction of Total Cloud Water', 'Proportion', 'FRAIN'], '44': ['Rime Factor', 'Numeric', 'RIME'], '45': ['Total Column Integrated Rain', 'kg m-2', 'TCOLR'], '46': ['Total Column Integrated Snow', 'kg m-2', 'TCOLS'], '47': ['Large Scale Water Precipitation (Non-Convective)', 'kg m-2', 'LSWP'], '48': ['Convective Water Precipitation', 'kg m-2', 'CWP'], '49': ['Total Water Precipitation', 'kg m-2', 'TWATP'], '50': ['Total Snow Precipitation', 'kg m-2', 'TSNOWP'], '51': ['Total Column Water (Vertically integrated total water (vapour+cloud water/ice)', 'kg m-2', 'TCWAT'], '52': ['Total Precipitation Rate', 'kg m-2 s-1', 'TPRATE'], '53': ['Total Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'TSRWE'], '54': ['Large Scale Precipitation Rate', 'kg m-2 s-1', 'LSPRATE'], '55': ['Convective Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'CSRWE'], '56': ['Large Scale Snowfall Rate Water Equivalent', 'kg m-2 s-1', 'LSSRWE'], '57': ['Total Snowfall Rate', 'm s-1', 'TSRATE'], '58': ['Convective Snowfall Rate', 'm s-1', 'CSRATE'], '59': ['Large Scale Snowfall Rate', 'm s-1', 'LSSRATE'], '60': ['Snow Depth Water Equivalent', 'kg m-2', 'SDWE'], '61': ['Snow Density', 'kg m-3', 'SDEN'], '62': ['Snow Evaporation', 'kg m-2', 'SEVAP'], '63': ['Reserved', 'unknown', 'unknown'], '64': ['Total Column Integrated Water Vapour', 'kg m-2', 'TCIWV'], '65': ['Rain Precipitation Rate', 'kg m-2 s-1', 'RPRATE'], '66': ['Snow Precipitation Rate', 'kg m-2 s-1', 'SPRATE'], '67': ['Freezing Rain Precipitation Rate', 'kg m-2 s-1', 'FPRATE'], '68': ['Ice Pellets Precipitation Rate', 'kg m-2 s-1', 'IPRATE'], '69': ['Total Column Integrate Cloud Water', 'kg m-2', 'TCOLW'], '70': ['Total Column Integrate Cloud Ice', 'kg m-2', 'TCOLI'], '71': ['Hail Mixing Ratio', 'kg kg-1', 'HAILMXR'], '72': ['Total Column Integrate Hail', 'kg m-2', 'TCOLH'], '73': ['Hail Prepitation Rate', 'kg m-2 s-1', 'HAILPR'], '74': ['Total Column Integrate Graupel', 'kg m-2', 'TCOLG'], '75': ['Graupel (Snow Pellets) Prepitation Rate', 'kg m-2 s-1', 'GPRATE'], '76': ['Convective Rain Rate', 'kg m-2 s-1', 'CRRATE'], '77': ['Large Scale Rain Rate', 'kg m-2 s-1', 'LSRRATE'], '78': ['Total Column Integrate Water (All components including precipitation)', 'kg m-2', 'TCOLWA'], '79': ['Evaporation Rate', 'kg m-2 s-1', 'EVARATE'], '80': ['Total Condensate', 'kg kg-1', 'TOTCON'], '81': ['Total Column-Integrate Condensate', 'kg m-2', 'TCICON'], '82': ['Cloud Ice Mixing Ratio', 'kg kg-1', 'CIMIXR'], '83': ['Specific Cloud Liquid Water Content', 'kg kg-1', 'SCLLWC'], '84': ['Specific Cloud Ice Water Content', 'kg kg-1', 'SCLIWC'], '85': ['Specific Rain Water Content', 'kg kg-1', 'SRAINW'], '86': ['Specific Snow Water Content', 'kg kg-1', 'SSNOWW'], '87': ['Stratiform Precipitation Rate', 'kg m-2 s-1', 'STRPRATE'], '88': ['Categorical Convective Precipitation', 'Code table 4.222', 'CATCP'], '89': ['Reserved', 'unknown', 'unknown'], '90': ['Total Kinematic Moisture Flux', 'kg kg-1 m s-1', 'TKMFLX'], '91': ['U-component (zonal) Kinematic Moisture Flux', 'kg kg-1 m s-1', 'UKMFLX'], '92': ['V-component (meridional) Kinematic Moisture Flux', 'kg kg-1 m s-1', 'VKMFLX'], '93': ['Relative Humidity With Respect to Water', '%', 'RHWATER'], '94': ['Relative Humidity With Respect to Ice', '%', 'RHICE'], '95': ['Freezing or Frozen Precipitation Rate', 'kg m-2 s-1', 'FZPRATE'], '96': ['Mass Density of Rain', 'kg m-3', 'MASSDR'], '97': ['Mass Density of Snow', 'kg m-3', 'MASSDS'], '98': ['Mass Density of Graupel', 'kg m-3', 'MASSDG'], '99': ['Mass Density of Hail', 'kg m-3', 'MASSDH'], '100': ['Specific Number Concentration of Rain', 'kg-1', 'SPNCR'], '101': ['Specific Number Concentration of Snow', 'kg-1', 'SPNCS'], '102': ['Specific Number Concentration of Graupel', 'kg-1', 'SPNCG'], '103': ['Specific Number Concentration of Hail', 'kg-1', 'SPNCH'], '104': ['Number Density of Rain', 'm-3', 'NUMDR'], '105': ['Number Density of Snow', 'm-3', 'NUMDS'], '106': ['Number Density of Graupel', 'm-3', 'NUMDG'], '107': ['Number Density of Hail', 'm-3', 'NUMDH'], '108': ['Specific Humidity Tendency due to Parameterizations', 'kg kg-1 s-1', 'SHTPRM'], '109': ['Mass Density of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Volume of Air', 'kg m-3', 'MDLWHVA'], '110': ['Specific Mass of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Mass of Moist Air', 'kg kg-1', 'SMLWHMA'], '111': ['Mass Mixing Ratio of Liquid Water Coating on Hail Expressed as Mass of Liquid Water per Unit Mass of Dry Air', 'kg kg-1', 'MMLWHDA'], '112': ['Mass Density of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Volume of Air', 'kg m-3', 'MDLWGVA'], '113': ['Specific Mass of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Mass of Moist Air', 'kg kg-1', 'SMLWGMA'], '114': ['Mass Mixing Ratio of Liquid Water Coating on Graupel Expressed as Mass of Liquid Water per Unit Mass of Dry Air', 'kg kg-1', 'MMLWGDA'], '115': ['Mass Density of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Volume of Air', 'kg m-3', 'MDLWSVA'], '116': ['Specific Mass of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Mass of Moist Air', 'kg kg-1', 'SMLWSMA'], '117': ['Mass Mixing Ratio of Liquid Water Coating on Snow Expressed as Mass of Liquid Water per Unit Mass of Dry Air', 'kg kg-1', 'MMLWSDA'], '118': ['Unbalanced Component of Specific Humidity', 'kg kg-1', 'UNCSH'], '119': ['Unbalanced Component of Specific Cloud Liquid Water content', 'kg kg-1', 'UCSCLW'], '120': ['Unbalanced Component of Specific Cloud Ice Water content', 'kg kg-1', 'UCSCIW'], '121': ['Fraction of Snow Cover', 'Proportion', 'FSNOWC'], '122': ['Precipitation intensity index', 'See Table 4.247', 'PIIDX'], '123': ['Domiunknownt precipitation type', 'See Table 4.201', 'DPTYPE'], '124': ['Presence of showers', 'See Table 4.222', 'PSHOW'], '125': ['Presence of blowing snow', 'See Table 4.222', 'PBSNOW'], '126': ['Presence of blizzard', 'See Table 4.222', 'PBLIZZ'], '127': ['Ice pellets (non-water equivalent) precipitation rate', 'm s-1', 'ICEP'], '128': ['Total solid precipitation rate', 'kg m-2 s-1', 'TSPRATE'], '129': ['Effective Radius of Cloud Water', 'm', 'EFRCWAT'], '130': ['Effective Radius of Rain', 'm', 'EFRRAIN'], '131': ['Effective Radius of Cloud Ice', 'm', 'EFRCICE'], '132': ['Effective Radius of Snow', 'm', 'EFRSNOW'], '133': ['Effective Radius of Graupel', 'm', 'EFRGRL'], '134': ['Effective Radius of Hail', 'm', 'EFRHAIL'], '135': ['Effective Radius of Subgrid Liquid Clouds', 'm', 'EFRSLC'], '136': ['Effective Radius of Subgrid Ice Clouds', 'm', 'EFRSICEC'], '137': ['Effective Aspect Ratio of Rain', 'unknown', 'EFARRAIN'], '138': ['Effective Aspect Ratio of Cloud Ice', 'unknown', 'EFARCICE'], '139': ['Effective Aspect Ratio of Snow', 'unknown', 'EFARSNOW'], '140': ['Effective Aspect Ratio of Graupel', 'unknown', 'EFARGRL'], '141': ['Effective Aspect Ratio of Hail', 'unknown', 'EFARHAIL'], '142': ['Effective Aspect Ratio of Subgrid Ice Clouds', 'unknown', 'EFARSIC'], '143': ['Potential evaporation rate', 'kg m-2 s-1', 'PERATE'], '144': ['Specific rain water content (convective)', 'kg kg-1', 'SRWATERC'], '145': ['Specific snow water content (convective)', 'kg kg-1', 'SSNOWWC'], '146': ['Cloud ice precipitation rate', 'kg m-2 s-1', 'CICEPR'], '147': ['Character of precipitation', 'See Table 4.249', 'CHPRECIP'], '148': ['Snow evaporation rate', 'kg m-2 s-1', 'SNOWERAT'], '149': ['Cloud water mixing ratio', 'kg kg-1', 'CWATERMR'], '150': ['Column integrated eastward water vapour mass flux', 'kg m-1s-1', 'CEWVMF'], '151': ['Column integrated northward water vapour mass flux', 'kg m-1s-1', 'CNWVMF'], '152': ['Column integrated eastward cloud liquid water mass flux', 'kg m-1s-1', 'CECLWMF'], '153': ['Column integrated northward cloud liquid water mass flux', 'kg m-1s-1', 'CNCLWMF'], '154': ['Column integrated eastward cloud ice mass flux', 'kg m-1s-1', 'CECIMF'], '155': ['Column integrated northward cloud ice mass flux', 'kg m-1s-1', 'CNCIMF'], '156': ['Column integrated eastward rain mass flux', 'kg m-1s-1', 'CERMF'], '157': ['Column integrated northward rain mass flux', 'kg m-1s-1', 'CNRMF'], '158': ['Column integrated eastward snow mass flux', 'kg m-1s-1', 'CEFMF'], '159': ['Column integrated northward snow mass flux', 'kg m-1s-1', 'CNSMF'], '160': ['Column integrated divergence of water vapour mass flux', 'kg m-1s-1', 'CDWFMF'], '161': ['Column integrated divergence of cloud liquid water mass flux', 'kg m-1s-1', 'CDCLWMF'], '162': ['Column integrated divergence of cloud ice mass flux', 'kg m-1s-1', 'CDCIMF'], '163': ['Column integrated divergence of rain mass flux', 'kg m-1s-1', 'CDRMF'], '164': ['Column integrated divergence of snow mass flux', 'kg m-1s-1', 'CDSMF'], '165': ['Column integrated divergence of total water mass flux', 'kg m-1s-1', 'CDTWMF'], '166': ['Column integrated water vapour flux', 'kg m-1s-1', 'CWVF'], '167': ['Total column supercooled liquid water', 'kg m-2', 'TCSLW'], '168': ['Saturation specific humidity with respect to water', 'kg m-3', 'SSPFHW'], '169': ['Total column integrated saturation specific humidity with respect to water', 'kg m-2', 'TCISSPFHW'], '170-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Categorical Rain', 'Code table 4.222', 'CRAIN'], '193': ['Categorical Freezing Rain', 'Code table 4.222', 'CFRZR'], '194': ['Categorical Ice Pellets', 'Code table 4.222', 'CICEP'], '195': ['Categorical Snow', 'Code table 4.222', 'CSNOW'], '196': ['Convective Precipitation Rate', 'kg m-2 s-1', 'CPRAT'], '197': ['Horizontal Moisture Divergence', 'kg kg-1 s-1', 'MDIV'], '198': ['Minimum Relative Humidity', '%', 'MINRH'], '199': ['Potential Evaporation', 'kg m-2', 'PEVAP'], '200': ['Potential Evaporation Rate', 'W m-2', 'PEVPR'], '201': ['Snow Cover', '%', 'SNOWC'], '202': ['Rain Fraction of Total Liquid Water', 'non-dim', 'FRAIN'], '203': ['Rime Factor', 'non-dim', 'RIME'], '204': ['Total Column Integrated Rain', 'kg m-2', 'TCOLR'], '205': ['Total Column Integrated Snow', 'kg m-2', 'TCOLS'], '206': ['Total Icing Potential Diagnostic', 'non-dim', 'TIPD'], '207': ['Number concentration for ice particles', 'non-dim', 'NCIP'], '208': ['Snow temperature', 'K', 'SNOT'], '209': ['Total column-integrated supercooled liquid water', 'kg m-2', 'TCLSW'], '210': ['Total column-integrated melting ice', 'kg m-2', 'TCOLM'], '211': ['Evaporation - Precipitation', 'cm/day', 'EMNP'], '212': ['Sublimation (evaporation from snow)', 'W m-2', 'SBSNO'], '213': ['Deep Convective Moistening Rate', 'kg kg-1 s-1', 'CNVMR'], '214': ['Shallow Convective Moistening Rate', 'kg kg-1 s-1', 'SHAMR'], '215': ['Vertical Diffusion Moistening Rate', 'kg kg-1 s-1', 'VDFMR'], '216': ['Condensation Pressure of Parcali Lifted From Indicate Surface', 'Pa', 'CONDP'], '217': ['Large scale moistening rate', 'kg kg-1 s-1', 'LRGMR'], '218': ['Specific humidity at top of viscous sublayer', 'kg kg-1', 'QZ0'], '219': ['Maximum specific humidity at 2m', 'kg kg-1', 'QMAX'], '220': ['Minimum specific humidity at 2m', 'kg kg-1', 'QMIN'], '221': ['Liquid precipitation (Rainfall)', 'kg m-2', 'ARAIN'], '222': ['Snow temperature, depth-avg', 'K', 'SNOWT'], '223': ['Total precipitation (nearest grid point)', 'kg m-2', 'APCPN'], '224': ['Convective precipitation (nearest grid point)', 'kg m-2', 'ACPCPN'], '225': ['Freezing Rain', 'kg m-2', 'FRZR'], '226': ['Predominant Weather (see Local Use Note A)', 'Numeric', 'PWTHER'], '227': ['Frozen Rain', 'kg m-2', 'FROZR'], '228': ['Flat Ice Accumulation (FRAM)', 'kg m-2', 'FICEAC'], '229': ['Line Ice Accumulation (FRAM)', 'kg m-2', 'LICEAC'], '230': ['Sleet Accumulation', 'kg m-2', 'SLACC'], '231': ['Precipitation Potential Index', '%', 'PPINDX'], '232': ['Probability Cloud Ice Present', '%', 'PROBCIP'], '233': ['Snow Liquid ratio', 'kg kg-1', 'SNOWLR'], '234': ['Precipitation Duration', 'hour', 'PCPDUR'], '235': ['Cloud Liquid Mixing Ratio', 'kg kg-1', 'CLLMR'], '236-240': ['Reserved', 'unknown', 'unknown'], '241': ['Total Snow', 'kg m-2', 'TSNOW'], '242': ['Relative Humidity with Respect to Precipitable Water', '%', 'RHPW'], '245': ['Hourly Maximum of Column Vertical Integrated Graupel on Entire Atmosphere', 'kg m-2', 'MAXVIG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_2", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_2", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Wind Direction (from which blowing)', '\u00b0', 'WDIR'], '1': ['Wind Speed', 'm s-1', 'WIND'], '2': ['U-Component of Wind', 'm s-1', 'UGRD'], '3': ['V-Component of Wind', 'm s-1', 'VGRD'], '4': ['Stream Function', 'm2 s-1', 'STRM'], '5': ['Velocity Potential', 'm2 s-1', 'VPOT'], '6': ['Montgomery Stream Function', 'm2 s-2', 'MNTSF'], '7': ['Sigma Coordinate Vertical Velocity', 's-1', 'SGCVV'], '8': ['Vertical Velocity (Pressure)', 'Pa s-1', 'VVEL'], '9': ['Vertical Velocity (Geometric)', 'm s-1', 'DZDT'], '10': ['Absolute Vorticity', 's-1', 'ABSV'], '11': ['Absolute Divergence', 's-1', 'ABSD'], '12': ['Relative Vorticity', 's-1', 'RELV'], '13': ['Relative Divergence', 's-1', 'RELD'], '14': ['Potential Vorticity', 'K m2 kg-1 s-1', 'PVORT'], '15': ['Vertical U-Component Shear', 's-1', 'VUCSH'], '16': ['Vertical V-Component Shear', 's-1', 'VVCSH'], '17': ['Momentum Flux, U-Component', 'N m-2', 'UFLX'], '18': ['Momentum Flux, V-Component', 'N m-2', 'VFLX'], '19': ['Wind Mixing Energy', 'J', 'WMIXE'], '20': ['Boundary Layer Dissipation', 'W m-2', 'BLYDP'], '21': ['Maximum Wind Speed', 'm s-1', 'MAXGUST'], '22': ['Wind Speed (Gust)', 'm s-1', 'GUST'], '23': ['U-Component of Wind (Gust)', 'm s-1', 'UGUST'], '24': ['V-Component of Wind (Gust)', 'm s-1', 'VGUST'], '25': ['Vertical Speed Shear', 's-1', 'VWSH'], '26': ['Horizontal Momentum Flux', 'N m-2', 'MFLX'], '27': ['U-Component Storm Motion', 'm s-1', 'USTM'], '28': ['V-Component Storm Motion', 'm s-1', 'VSTM'], '29': ['Drag Coefficient', 'Numeric', 'CD'], '30': ['Frictional Velocity', 'm s-1', 'FRICV'], '31': ['Turbulent Diffusion Coefficient for Momentum', 'm2 s-1', 'TDCMOM'], '32': ['Eta Coordinate Vertical Velocity', 's-1', 'ETACVV'], '33': ['Wind Fetch', 'm', 'WINDF'], '34': ['Normal Wind Component', 'm s-1', 'NWIND'], '35': ['Tangential Wind Component', 'm s-1', 'TWIND'], '36': ['Amplitude Function for Rossby Wave Envelope for Meridional Wind', 'm s-1', 'AFRWE'], '37': ['Northward Turbulent Surface Stress', 'N m-2 s', 'NTSS'], '38': ['Eastward Turbulent Surface Stress', 'N m-2 s', 'ETSS'], '39': ['Eastward Wind Tendency Due to Parameterizations', 'm s-2', 'EWTPARM'], '40': ['Northward Wind Tendency Due to Parameterizations', 'm s-2', 'NWTPARM'], '41': ['U-Component of Geostrophic Wind', 'm s-1', 'UGWIND'], '42': ['V-Component of Geostrophic Wind', 'm s-1', 'VGWIND'], '43': ['Geostrophic Wind Direction', '\u00b0', 'GEOWD'], '44': ['Geostrophic Wind Speed', 'm s-1', 'GEOWS'], '45': ['Unbalanced Component of Divergence', 's-1', 'UNDIV'], '46': ['Vorticity Advection', 's-2', 'VORTADV'], '47': ['Surface roughness for heat,(see Note 5)', 'm', 'SFRHEAT'], '48': ['Surface roughness for moisture,(see Note 6)', 'm', 'SFRMOIST'], '49': ['Wind stress', 'N m-2', 'WINDSTR'], '50': ['Eastward wind stress', 'N m-2', 'EWINDSTR'], '51': ['Northward wind stress', 'N m-2', 'NWINDSTR'], '52': ['u-component of wind stress', 'N m-2', 'UWINDSTR'], '53': ['v-component of wind stress', 'N m-2', 'VWINDSTR'], '54': ['Natural logarithm of surface roughness length for heat', 'm', 'NLSRLH'], '55': ['Natural logarithm of surface roughness length for moisture', 'm', 'NLSRLM'], '56': ['u-component of neutral wind', 'm s-1', 'UNWIND'], '57': ['v-component of neutral wind', 'm s-1', 'VNWIND'], '58': ['Magnitude of turbulent surface stress', 'N m-2', 'TSFCSTR'], '59': ['Vertical divergence', 's-1', 'VDIV'], '60': ['Drag thermal coefficient', 'Numeric', 'DTC'], '61': ['Drag evaporation coefficient', 'Numeric', 'DEC'], '62': ['Eastward turbulent surface stress', 'N m-2', 'EASTTSS'], '63': ['Northward turbulent surface stress', 'N m-2', 'NRTHTSS'], '64': ['Eastward turbulent surface stress due to orographic form drag', 'N m-2', 'EASTTSSOD'], '65': ['Northward turbulent surface stress due to orographic form drag', 'N m-2', 'NRTHTSSOD'], '66': ['Eastward turbulent surface stress due to surface roughness', 'N m-2', 'EASTTSSSR'], '67': ['Northward turbulent surface stress due to surface roughness', 'N m-2', 'NRTHTSSSR'], '68-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Vertical Speed Shear', 's-1', 'VWSH'], '193': ['Horizontal Momentum Flux', 'N m-2', 'MFLX'], '194': ['U-Component Storm Motion', 'm s-1', 'USTM'], '195': ['V-Component Storm Motion', 'm s-1', 'VSTM'], '196': ['Drag Coefficient', 'non-dim', 'CD'], '197': ['Frictional Velocity', 'm s-1', 'FRICV'], '198': ['Latitude of U Wind Component of Velocity', 'deg', 'LAUV'], '199': ['Longitude of U Wind Component of Velocity', 'deg', 'LOUV'], '200': ['Latitude of V Wind Component of Velocity', 'deg', 'LAVV'], '201': ['Longitude of V Wind Component of Velocity', 'deg', 'LOVV'], '202': ['Latitude of Presure Point', 'deg', 'LAPP'], '203': ['Longitude of Presure Point', 'deg', 'LOPP'], '204': ['Vertical Eddy Diffusivity Heat exchange', 'm2 s-1', 'VEDH'], '205': ['Covariance between Meridional and Zonal Components of the wind.', 'm2 s-2', 'COVMZ'], '206': ['Covariance between Temperature and Zonal Components of the wind.', 'K*m s-1', 'COVTZ'], '207': ['Covariance between Temperature and Meridional Components of the wind.', 'K*m s-1', 'COVTM'], '208': ['Vertical Diffusion Zonal Acceleration', 'm s-2', 'VDFUA'], '209': ['Vertical Diffusion Meridional Acceleration', 'm s-2', 'VDFVA'], '210': ['Gravity wave drag zonal acceleration', 'm s-2', 'GWDU'], '211': ['Gravity wave drag meridional acceleration', 'm s-2', 'GWDV'], '212': ['Convective zonal momentum mixing acceleration', 'm s-2', 'CNVU'], '213': ['Convective meridional momentum mixing acceleration', 'm s-2', 'CNVV'], '214': ['Tendency of vertical velocity', 'm s-2', 'WTEND'], '215': ['Omega (Dp/Dt) divide by density', 'K', 'OMGALF'], '216': ['Convective Gravity wave drag zonal acceleration', 'm s-2', 'CNGWDU'], '217': ['Convective Gravity wave drag meridional acceleration', 'm s-2', 'CNGWDV'], '218': ['Velocity Point Model Surface', 'unknown', 'LMV'], '219': ['Potential Vorticity (Mass-Weighted)', '1/s/m', 'PVMWW'], '220': ['Hourly Maximum of Upward Vertical Velocity', 'm s-1', 'MAXUVV'], '221': ['Hourly Maximum of Downward Vertical Velocity', 'm s-1', 'MAXDVV'], '222': ['U Component of Hourly Maximum 10m Wind Speed', 'm s-1', 'MAXUW'], '223': ['V Component of Hourly Maximum 10m Wind Speed', 'm s-1', 'MAXVW'], '224': ['Ventilation Rate', 'm2 s-1', 'VRATE'], '225': ['Transport Wind Speed', 'm s-1', 'TRWSPD'], '226': ['Transport Wind Direction', 'Deg', 'TRWDIR'], '227': ['Earliest Reasonable Arrival Time (10% exceedance)', 's', 'TOA10'], '228': ['Most Likely Arrival Time (50% exceedance)', 's', 'TOA50'], '229': ['Most Likely Departure Time (50% exceedance)', 's', 'TOD50'], '230': ['Latest Reasonable Departure Time (90% exceedance)', 's', 'TOD90'], '231': ['Tropical Wind Direction', '\u00b0', 'TPWDIR'], '232': ['Tropical Wind Speed', 'm s-1', 'TPWSPD'], '233': ['Inflow Based (ESFC) to 50% EL Shear Magnitude', 'kt', 'ESHR'], '234': ['U Component Inflow Based to 50% EL Shear Vector', 'kt', 'UESH'], '235': ['V Component Inflow Based to 50% EL Shear Vector', 'kt', 'VESH'], '236': ['U Component Bunkers Effective Right Motion', 'kt', 'UEID'], '237': ['V Component Bunkers Effective Right Motion', 'kt', 'VEID'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_3", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_3", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Pressure', 'Pa', 'PRES'], '1': ['Pressure Reduced to MSL', 'Pa', 'PRMSL'], '2': ['Pressure Tendency', 'Pa s-1', 'PTEND'], '3': ['ICAO Standard Atmosphere Reference Height', 'm', 'ICAHT'], '4': ['Geopotential', 'm2 s-2', 'GP'], '5': ['Geopotential Height', 'gpm', 'HGT'], '6': ['Geometric Height', 'm', 'DIST'], '7': ['Standard Deviation of Height', 'm', 'HSTDV'], '8': ['Pressure Anomaly', 'Pa', 'PRESA'], '9': ['Geopotential Height Anomaly', 'gpm', 'GPA'], '10': ['Density', 'kg m-3', 'DEN'], '11': ['Altimeter Setting', 'Pa', 'ALTS'], '12': ['Thickness', 'm', 'THICK'], '13': ['Pressure Altitude', 'm', 'PRESALT'], '14': ['Density Altitude', 'm', 'DENALT'], '15': ['5-Wave Geopotential Height', 'gpm', '5WAVH'], '16': ['Zonal Flux of Gravity Wave Stress', 'N m-2', 'U-GWD'], '17': ['Meridional Flux of Gravity Wave Stress', 'N m-2', 'V-GWD'], '18': ['Planetary Boundary Layer Height', 'm', 'HPBL'], '19': ['5-Wave Geopotential Height Anomaly', 'gpm', '5WAVA'], '20': ['Standard Deviation of Sub-Grid Scale Orography', 'm', 'SDSGSO'], '21': ['Angle of Sub-Grid Scale Orography', 'rad', 'AOSGSO'], '22': ['Slope of Sub-Grid Scale Orography', 'Numeric', 'SSGSO'], '23': ['Gravity Wave Dissipation', 'W m-2', 'GWD'], '24': ['Anisotropy of Sub-Grid Scale Orography', 'Numeric', 'ASGSO'], '25': ['Natural Logarithm of Pressure in Pa', 'Numeric', 'NLPRES'], '26': ['Exner Pressure', 'Numeric', 'EXPRES'], '27': ['Updraught Mass Flux', 'kg m-2 s-1', 'UMFLX'], '28': ['Downdraught Mass Flux', 'kg m-2 s-1', 'DMFLX'], '29': ['Updraught Detrainment Rate', 'kg m-3 s-1', 'UDRATE'], '30': ['Downdraught Detrainment Rate', 'kg m-3 s-1', 'DDRATE'], '31': ['Unbalanced Component of Logarithm of Surface Pressure', '-', 'UCLSPRS'], '32': ['Saturation water vapour pressure', 'Pa', 'SWATERVP'], '33': ['Geometric altitude above mean sea level', 'm', 'GAMSL'], '34': ['Geometric height above ground level', 'm', 'GHAGRD'], '35': ['Column integrated divergence of total mass flux', 'kg m-2 s-1', 'CDTMF'], '36': ['Column integrated eastward total mass flux', 'kg m-2 s-1', 'CETMF'], '37': ['Column integrated northward total mass flux', 'kg m-2 s-1', 'CNTMF'], '38': ['Standard deviation of filtered subgrid orography', 'm', 'SDFSO'], '39': ['Column integrated mass of atmosphere', 'kg m-2 s-1', 'CMATMOS'], '40': ['Column integrated eastward geopotential flux', 'W m-1', 'CEGFLUX'], '41': ['Column integrated northward geopotential flux', 'W m-1', 'CNGFLUX'], '42': ['Column integrated divergence of water geopotential flux', 'W m-2', 'CDWGFLUX'], '43': ['Column integrated divergence of geopotential flux', 'W m-2', 'CDGFLUX'], '44': ['Height of zero-degree wet-bulb temperature', 'm', 'HWBT'], '45': ['Height of one-degree wet-bulb temperature', 'm', 'WOBT'], '46': ['Pressure departure from hydrostatic state', 'Pa', 'PRESDHS'], '47-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['MSLP (Eta model reduction)', 'Pa', 'MSLET'], '193': ['5-Wave Geopotential Height', 'gpm', '5WAVH'], '194': ['Zonal Flux of Gravity Wave Stress', 'N m-2', 'U-GWD'], '195': ['Meridional Flux of Gravity Wave Stress', 'N m-2', 'V-GWD'], '196': ['Planetary Boundary Layer Height', 'm', 'HPBL'], '197': ['5-Wave Geopotential Height Anomaly', 'gpm', '5WAVA'], '198': ['MSLP (MAPS System Reduction)', 'Pa', 'MSLMA'], '199': ['3-hr pressure tendency (Std. Atmos. Reduction)', 'Pa s-1', 'TSLSA'], '200': ['Pressure of level from which parcel was lifted', 'Pa', 'PLPL'], '201': ['X-gradient of Log Pressure', 'm-1', 'LPSX'], '202': ['Y-gradient of Log Pressure', 'm-1', 'LPSY'], '203': ['X-gradient of Height', 'm-1', 'HGTX'], '204': ['Y-gradient of Height', 'm-1', 'HGTY'], '205': ['Layer Thickness', 'm', 'LAYTH'], '206': ['Natural Log of Surface Pressure', 'ln (kPa)', 'NLGSP'], '207': ['Convective updraft mass flux', 'kg m-2 s-1', 'CNVUMF'], '208': ['Convective downdraft mass flux', 'kg m-2 s-1', 'CNVDMF'], '209': ['Convective detrainment mass flux', 'kg m-2 s-1', 'CNVDEMF'], '210': ['Mass Point Model Surface', 'unknown', 'LMH'], '211': ['Geopotential Height (nearest grid point)', 'gpm', 'HGTN'], '212': ['Pressure (nearest grid point)', 'Pa', 'PRESN'], '213': ['Orographic Convexity', 'unknown', 'ORCONV'], '214': ['Orographic Asymmetry, W Component', 'unknown', 'ORASW'], '215': ['Orographic Asymmetry, S Component', 'unknown', 'ORASS'], '216': ['Orographic Asymmetry, SW Component', 'unknown', 'ORASSW'], '217': ['Orographic Asymmetry, NW Component', 'unknown', 'ORASNW'], '218': ['Orographic Length Scale, W Component', 'unknown', 'ORLSW'], '219': ['Orographic Length Scale, S Component', 'unknown', 'ORLSS'], '220': ['Orographic Length Scale, SW Component', 'unknown', 'ORLSSW'], '221': ['Orographic Length Scale, NW Component', 'unknown', 'ORLSNW'], '222': ['Effective Surface Height', 'm', 'EFSH'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_4", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_4", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Net Short-Wave Radiation Flux (Surface)', 'W m-2', 'NSWRS'], '1': ['Net Short-Wave Radiation Flux (Top of Atmosphere)', 'W m-2', 'NSWRT'], '2': ['Short-Wave Radiation Flux', 'W m-2', 'SWAVR'], '3': ['Global Radiation Flux', 'W m-2', 'GRAD'], '4': ['Brightness Temperature', 'K', 'BRTMP'], '5': ['Radiance (with respect to wave number)', 'W m-1 sr-1', 'LWRAD'], '6': ['Radiance (with respect to wavelength)', 'W m-3 sr-1', 'SWRAD'], '7': ['Downward Short-Wave Radiation Flux', 'W m-2', 'DSWRF'], '8': ['Upward Short-Wave Radiation Flux', 'W m-2', 'USWRF'], '9': ['Net Short Wave Radiation Flux', 'W m-2', 'NSWRF'], '10': ['Photosynthetically Active Radiation', 'W m-2', 'PHOTAR'], '11': ['Net Short-Wave Radiation Flux, Clear Sky', 'W m-2', 'NSWRFCS'], '12': ['Downward UV Radiation', 'W m-2', 'DWUVR'], '13': ['Direct Short Wave Radiation Flux', 'W m-2', 'DSWRFLX'], '14': ['Diffuse Short Wave Radiation Flux', 'W m-2', 'DIFSWRF'], '15': ['Upward UV radiation emitted/reflected from the Earths surface', 'W m-2', 'UVVEARTH'], '16-49': ['Reserved', 'unknown', 'unknown'], '50': ['UV Index (Under Clear Sky)', 'Numeric', 'UVIUCS'], '51': ['UV Index', 'Numeric', 'UVI'], '52': ['Downward Short-Wave Radiation Flux, Clear Sky', 'W m-2', 'DSWRFCS'], '53': ['Upward Short-Wave Radiation Flux, Clear Sky', 'W m-2', 'USWRFCS'], '54': ['Direct normal short-wave radiation flux,(see Note 3)', 'W m-2', 'DNSWRFLX'], '55': ['UV visible albedo for diffuse radiation', '%', 'UVALBDIF'], '56': ['UV visible albedo for direct radiation', '%', 'UVALBDIR'], '57': ['UV visible albedo for direct radiation, geometric component', '%', 'UBALBDIRG'], '58': ['UV visible albedo for direct radiation, isotropic component', '%', 'UVALBDIRI'], '59': ['UV visible albedo for direct radiation, volumetric component', '%', 'UVBDIRV'], '60': ['Photosynthetically active radiation flux, clear sky', 'W m-2', 'PHOARFCS'], '61': ['Direct short-wave radiation flux, clear sky', 'W m-2', 'DSWRFLXCS'], '62-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Downward Short-Wave Radiation Flux', 'W m-2', 'DSWRF'], '193': ['Upward Short-Wave Radiation Flux', 'W m-2', 'USWRF'], '194': ['UV-B Downward Solar Flux', 'W m-2', 'DUVB'], '195': ['Clear sky UV-B Downward Solar Flux', 'W m-2', 'CDUVB'], '196': ['Clear Sky Downward Solar Flux', 'W m-2', 'CSDSF'], '197': ['Solar Radiative Heating Rate', 'K s-1', 'SWHR'], '198': ['Clear Sky Upward Solar Flux', 'W m-2', 'CSUSF'], '199': ['Cloud Forcing Net Solar Flux', 'W m-2', 'CFNSF'], '200': ['Visible Beam Downward Solar Flux', 'W m-2', 'VBDSF'], '201': ['Visible Diffuse Downward Solar Flux', 'W m-2', 'VDDSF'], '202': ['Near IR Beam Downward Solar Flux', 'W m-2', 'NBDSF'], '203': ['Near IR Diffuse Downward Solar Flux', 'W m-2', 'NDDSF'], '204': ['Downward Total Radiation Flux', 'W m-2', 'DTRF'], '205': ['Upward Total Radiation Flux', 'W m-2', 'UTRF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_5", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_5", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Net Long-Wave Radiation Flux (Surface)', 'W m-2', 'NLWRS'], '1': ['Net Long-Wave Radiation Flux (Top of Atmosphere)', 'W m-2', 'NLWRT'], '2': ['Long-Wave Radiation Flux', 'W m-2', 'LWAVR'], '3': ['Downward Long-Wave Rad. Flux', 'W m-2', 'DLWRF'], '4': ['Upward Long-Wave Rad. Flux', 'W m-2', 'ULWRF'], '5': ['Net Long-Wave Radiation Flux', 'W m-2', 'NLWRF'], '6': ['Net Long-Wave Radiation Flux, Clear Sky', 'W m-2', 'NLWRCS'], '7': ['Brightness Temperature', 'K', 'BRTEMP'], '8': ['Downward Long-Wave Radiation Flux, Clear Sky', 'W m-2', 'DLWRFCS'], '9': ['Near IR albedo for diffuse radiation', '%', 'NIRALBDIF'], '10': ['Near IR albedo for direct radiation', '%', 'NIRALBDIR'], '11': ['Near IR albedo for direct radiation, geometric component', '%', 'NIRALBDIRG'], '12': ['Near IR albedo for direct radiation, isotropic component', '%', 'NIRALBDIRI'], '13': ['Near IR albedo for direct radiation, volumetric component', '%', 'NIRALBDIRV'], '14-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Downward Long-Wave Rad. Flux', 'W m-2', 'DLWRF'], '193': ['Upward Long-Wave Rad. Flux', 'W m-2', 'ULWRF'], '194': ['Long-Wave Radiative Heating Rate', 'K s-1', 'LWHR'], '195': ['Clear Sky Upward Long Wave Flux', 'W m-2', 'CSULF'], '196': ['Clear Sky Downward Long Wave Flux', 'W m-2', 'CSDLF'], '197': ['Cloud Forcing Net Long Wave Flux', 'W m-2', 'CFNLF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_6", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_6", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Cloud Ice', 'kg m-2', 'CICE'], '1': ['Total Cloud Cover', '%', 'TCDC'], '2': ['Convective Cloud Cover', '%', 'CDCON'], '3': ['Low Cloud Cover', '%', 'LCDC'], '4': ['Medium Cloud Cover', '%', 'MCDC'], '5': ['High Cloud Cover', '%', 'HCDC'], '6': ['Cloud Water', 'kg m-2', 'CWAT'], '7': ['Cloud Amount', '%', 'CDCA'], '8': ['Cloud Type', 'See Table 4.203', 'CDCT'], '9': ['Thunderstorm Maximum Tops', 'm', 'TMAXT'], '10': ['Thunderstorm Coverage', 'See Table 4.204', 'THUNC'], '11': ['Cloud Base', 'm', 'CDCB'], '12': ['Cloud Top', 'm', 'CDCTOP'], '13': ['Ceiling', 'm', 'CEIL'], '14': ['Non-Convective Cloud Cover', '%', 'CDLYR'], '15': ['Cloud Work Function', 'J kg-1', 'CWORK'], '16': ['Convective Cloud Efficiency', 'Proportion', 'CUEFI'], '17': ['Total Condensate', 'kg kg-1', 'TCONDO'], '18': ['Total Column-Integrated Cloud Water', 'kg m-2', 'TCOLWO'], '19': ['Total Column-Integrated Cloud Ice', 'kg m-2', 'TCOLIO'], '20': ['Total Column-Integrated Condensate', 'kg m-2', 'TCOLC'], '21': ['Ice fraction of total condensate', 'Proportion', 'FICE'], '22': ['Cloud Cover', '%', 'CDCC'], '23': ['Cloud Ice Mixing Ratio', 'kg kg-1', 'CDCIMR'], '24': ['Sunshine', 'Numeric', 'SUNS'], '25': ['Horizontal Extent of Cumulonimbus (CB)', '%', 'CBHE'], '26': ['Height of Convective Cloud Base', 'm', 'HCONCB'], '27': ['Height of Convective Cloud Top', 'm', 'HCONCT'], '28': ['Number Concentration of Cloud Droplets', 'kg-1', 'NCONCD'], '29': ['Number Concentration of Cloud Ice', 'kg-1', 'NCCICE'], '30': ['Number Density of Cloud Droplets', 'm-3', 'NDENCD'], '31': ['Number Density of Cloud Ice', 'm-3', 'NDCICE'], '32': ['Fraction of Cloud Cover', 'Numeric', 'FRACCC'], '33': ['Sunshine Duration', 's', 'SUNSD'], '34': ['Surface Long Wave Effective Total Cloudiness', 'Numeric', 'SLWTC'], '35': ['Surface Short Wave Effective Total Cloudiness', 'Numeric', 'SSWTC'], '36': ['Fraction of Stratiform Precipitation Cover', 'Proportion', 'FSTRPC'], '37': ['Fraction of Convective Precipitation Cover', 'Proportion', 'FCONPC'], '38': ['Mass Density of Cloud Droplets', 'kg m-3', 'MASSDCD'], '39': ['Mass Density of Cloud Ice', 'kg m-3', 'MASSDCI'], '40': ['Mass Density of Convective Cloud Water Droplets', 'kg m-3', 'MDCCWD'], '41-46': ['Reserved', 'unknown', 'unknown'], '47': ['Volume Fraction of Cloud Water Droplets', 'Numeric', 'VFRCWD'], '48': ['Volume Fraction of Cloud Ice Particles', 'Numeric', 'VFRCICE'], '49': ['Volume Fraction of Cloud (Ice and/or Water)', 'Numeric', 'VFRCIW'], '50': ['Fog', '%', 'FOG'], '51': ['Sunshine Duration Fraction', 'Proportion', 'SUNFRAC'], '52-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Non-Convective Cloud Cover', '%', 'CDLYR'], '193': ['Cloud Work Function', 'J kg-1', 'CWORK'], '194': ['Convective Cloud Efficiency', 'non-dim', 'CUEFI'], '195': ['Total Condensate', 'kg kg-1', 'TCOND'], '196': ['Total Column-Integrated Cloud Water', 'kg m-2', 'TCOLW'], '197': ['Total Column-Integrated Cloud Ice', 'kg m-2', 'TCOLI'], '198': ['Total Column-Integrated Condensate', 'kg m-2', 'TCOLC'], '199': ['Ice fraction of total condensate', 'non-dim', 'FICE'], '200': ['Convective Cloud Mass Flux', 'Pa s-1', 'MFLUX'], '201': ['Sunshine Duration', 's', 'SUNSD'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_7", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_7", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Parcel Lifted Index (to 500 hPa)', 'K', 'PLI'], '1': ['Best Lifted Index (to 500 hPa)', 'K', 'BLI'], '2': ['K Index', 'K', 'KX'], '3': ['KO Index', 'K', 'KOX'], '4': ['Total Totals Index', 'K', 'TOTALX'], '5': ['Sweat Index', 'Numeric', 'SX'], '6': ['Convective Available Potential Energy', 'J kg-1', 'CAPE'], '7': ['Convective Inhibition', 'J kg-1', 'CIN'], '8': ['Storm Relative Helicity', 'm2 s-2', 'HLCY'], '9': ['Energy Helicity Index', 'Numeric', 'EHLX'], '10': ['Surface Lifted Index', 'K', 'LFT X'], '11': ['Best (4 layer) Lifted Index', 'K', '4LFTX'], '12': ['Richardson Number', 'Numeric', 'RI'], '13': ['Showalter Index', 'K', 'SHWINX'], '14': ['Reserved', 'unknown', 'unknown'], '15': ['Updraft Helicity', 'm2 s-2', 'UPHL'], '16': ['Bulk Richardson Number', 'Numeric', 'BLKRN'], '17': ['Gradient Richardson Number', 'Numeric', 'GRDRN'], '18': ['Flux Richardson Number', 'Numeric', 'FLXRN'], '19': ['Convective Available Potential Energy Shear', 'm2 s-2', 'CONAPES'], '20': ['Thunderstorm intensity index', 'See Table 4.246', 'TIIDEX'], '21-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Surface Lifted Index', 'K', 'LFT X'], '193': ['Best (4 layer) Lifted Index', 'K', '4LFTX'], '194': ['Richardson Number', 'Numeric', 'RI'], '195': ['Convective Weather Detection Index', 'unknown', 'CWDI'], '196': ['Ultra Violet Index', 'W m-2', 'UVI'], '197': ['Updraft Helicity', 'm2 s-2', 'UPHL'], '198': ['Leaf Area Index', 'Numeric', 'LAI'], '199': ['Hourly Maximum of Updraft Helicity', 'm2 s-2', 'MXUPHL'], '200': ['Hourly Minimum of Updraft Helicity', 'm2 s-2', 'MNUPHL'], '201': ['Bourgoiun Negative Energy Layer (surface to freezing level)', 'J kg-1', 'BNEGELAY'], '202': ['Bourgoiun Positive Energy Layer (2k ft AGL to 400 hPa)', 'J kg-1', 'BPOSELAY'], '203': ['Downdraft CAPE', 'J kg-1', 'DCAPE'], '204': ['Effective Storm Relative Helicity', 'm2 s-2', 'EFHL'], '205': ['Enhanced Stretching Potential', 'Numeric', 'ESP'], '206': ['Critical Angle', 'Degree', 'CANGLE'], '207': ['Effective Surface Helicity', 'm2 s-2', 'E3KH'], '208': ['Significant Tornado Parameter with CIN-Effective Layer', 'numeric', 'STPC'], '209': ['Significant Hail Parameter', 'numeric', 'SIGH'], '210': ['Supercell Composite Parameter-Effective Layer', 'numeric', 'SCCP'], '211': ['Significant Tornado parameter-Fixed Layer', 'numeric', 'SIGT'], '212': ['Mixed Layer (100 mb) Virtual LFC', 'numeric', 'MLFC'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_13", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_13", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Aerosol Type', 'See Table 4.205', 'AEROT'], '1-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Particulate matter (coarse)', '\u00b5g m-3', 'PMTC'], '193': ['Particulate matter (fine)', '\u00b5g m-3', 'PMTF'], '194': ['Particulate matter (fine)', 'log10 (\u00b5g m-3)', 'LPMTF'], '195': ['Integrated column particulate matter (fine)', 'log10 (\u00b5g m-3)', 'LIPMF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_14", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_14", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Total Ozone', 'DU', 'TOZNE'], '1': ['Ozone Mixing Ratio', 'kg kg-1', 'O3MR'], '2': ['Total Column Integrated Ozone', 'DU', 'TCIOZ'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Ozone Mixing Ratio', 'kg kg-1', 'O3MR'], '193': ['Ozone Concentration', 'ppb', 'OZCON'], '194': ['Categorical Ozone Concentration', 'Non-Dim', 'OZCAT'], '195': ['Ozone Vertical Diffusion', 'kg kg-1 s-1', 'VDFOZ'], '196': ['Ozone Production', 'kg kg-1 s-1', 'POZ'], '197': ['Ozone Tendency', 'kg kg-1 s-1', 'TOZ'], '198': ['Ozone Production from Temperature Term', 'kg kg-1 s-1', 'POZT'], '199': ['Ozone Production from Column Ozone Term', 'kg kg-1 s-1', 'POZO'], '200': ['Ozone Daily Max from 1-hour Average', 'ppbV', 'OZMAX1'], '201': ['Ozone Daily Max from 8-hour Average', 'ppbV', 'OZMAX8'], '202': ['PM 2.5 Daily Max from 1-hour Average', '\u03bcg m-3', 'PDMAX1'], '203': ['PM 2.5 Daily Max from 24-hour Average', '\u03bcg m-3', 'PDMAX24'], '204': ['Acetaldehyde & Higher Aldehydes', 'ppbV', 'ALD2'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_15", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_15", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Base Spectrum Width', 'm s-1', 'BSWID'], '1': ['Base Reflectivity', 'dB', 'BREF'], '2': ['Base Radial Velocity', 'm s-1', 'BRVEL'], '3': ['Vertically-Integrated Liquid Water', 'kg m-2', 'VIL'], '4': ['Layer Maximum Base Reflectivity', 'dB', 'LMAXBR'], '5': ['Precipitation', 'kg m-2', 'PREC'], '6': ['Radar Spectra (1)', 'unknown', 'RDSP1'], '7': ['Radar Spectra (2)', 'unknown', 'RDSP2'], '8': ['Radar Spectra (3)', 'unknown', 'RDSP3'], '9': ['Reflectivity of Cloud Droplets', 'dB', 'RFCD'], '10': ['Reflectivity of Cloud Ice', 'dB', 'RFCI'], '11': ['Reflectivity of Snow', 'dB', 'RFSNOW'], '12': ['Reflectivity of Rain', 'dB', 'RFRAIN'], '13': ['Reflectivity of Graupel', 'dB', 'RFGRPL'], '14': ['Reflectivity of Hail', 'dB', 'RFHAIL'], '15': ['Hybrid Scan Reflectivity', 'dB', 'HSR'], '16': ['Hybrid Scan Reflectivity Height', 'm', 'HSRHT'], '17-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_16", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_16", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Equivalent radar reflectivity factor for rain', 'm m6 m-3', 'REFZR'], '1': ['Equivalent radar reflectivity factor for snow', 'm m6 m-3', 'REFZI'], '2': ['Equivalent radar reflectivity factor for parameterized convection', 'm m6 m-3', 'REFZC'], '3': ['Echo Top', 'm', 'RETOP'], '4': ['Reflectivity', 'dB', 'REFD'], '5': ['Composite reflectivity', 'dB', 'REFC'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Equivalent radar reflectivity factor for rain', 'm m6 m-3', 'REFZR'], '193': ['Equivalent radar reflectivity factor for snow', 'm m6 m-3', 'REFZI'], '194': ['Equivalent radar reflectivity factor for parameterized convection', 'm m6 m-3', 'REFZC'], '195': ['Reflectivity', 'dB', 'REFD'], '196': ['Composite reflectivity', 'dB', 'REFC'], '197': ['Echo Top', 'm', 'RETOP'], '198': ['Hourly Maximum of Simulated Reflectivity', 'dB', 'MAXREF'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_17", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_17", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Lightning Strike Density', 'm-2 s-1', 'LTNGSD'], '1': ['Lightning Potential Index (LPI)', 'J kg-1', 'LTPINX'], '2': ['Cloud-to-Ground Lightning Flash Density', 'km-2 day-1', 'CDGDLTFD'], '3': ['Cloud-to-Cloud Lightning Flash Density', 'km-2 day-1', 'CDCDLTFD'], '4': ['Total Lightning Flash Density', 'km-2 day-1', 'TLGTFD'], '5': ['Subgrid-scale lightning potential index', 'J kg-1', 'SLNGPIDX'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Lightning', 'non-dim', 'LTNG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_18", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_18", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Air Concentration of Caesium 137', 'Bq m-3', 'ACCES'], '1': ['Air Concentration of Iodine 131', 'Bq m-3', 'ACIOD'], '2': ['Air Concentration of Radioactive Pollutant', 'Bq m-3', 'ACRADP'], '3': ['Ground Deposition of Caesium 137', 'Bq m-2', 'GDCES'], '4': ['Ground Deposition of Iodine 131', 'Bq m-2', 'GDIOD'], '5': ['Ground Deposition of Radioactive Pollutant', 'Bq m-2', 'GDRADP'], '6': ['Time Integrated Air Concentration of Cesium Pollutant', 'Bq s m-3', 'TIACCP'], '7': ['Time Integrated Air Concentration of Iodine Pollutant', 'Bq s m-3', 'TIACIP'], '8': ['Time Integrated Air Concentration of Radioactive Pollutant', 'Bq s m-3', 'TIACRP'], '9': ['Reserved', 'unknown', 'unknown'], '10': ['Air Concentration', 'Bq m-3', 'AIRCON'], '11': ['Wet Deposition', 'Bq m-2', 'WETDEP'], '12': ['Dry Deposition', 'Bq m-2', 'DRYDEP'], '13': ['Total Deposition (Wet + Dry)', 'Bq m-2', 'TOTLWD'], '14': ['Specific Activity Concentration', 'Bq kg-1', 'SACON'], '15': ['Maximum of Air Concentration in Layer', 'Bq m-3', 'MAXACON'], '16': ['Height of Maximum of Air Concentration', 'm', 'HMXACON'], '17': ['Column-Integrated Air Concentration', 'Bq m-2', 'CIAIRC'], '18': ['Column-Averaged Air Concentration in Layer', 'Bq m-3', 'CAACL'], '19-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_19", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_19", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Visibility', 'm', 'VIS'], '1': ['Albedo', '%', 'ALBDO'], '2': ['Thunderstorm Probability', '%', 'TSTM'], '3': ['Mixed Layer Depth', 'm', 'MIXHT'], '4': ['Volcanic Ash', 'See Table 4.206', 'VOLASH'], '5': ['Icing Top', 'm', 'ICIT'], '6': ['Icing Base', 'm', 'ICIB'], '7': ['Icing', 'See Table 4.207', 'ICI'], '8': ['Turbulence Top', 'm', 'TURBT'], '9': ['Turbulence Base', 'm', 'TURBB'], '10': ['Turbulence', 'See Table 4.208', 'TURB'], '11': ['Turbulent Kinetic Energy', 'J kg-1', 'TKE'], '12': ['Planetary Boundary Layer Regime', 'See Table 4.209', 'PBLREG'], '13': ['Contrail Intensity', 'See Table 4.210', 'CONTI'], '14': ['Contrail Engine Type', 'See Table 4.211', 'CONTET'], '15': ['Contrail Top', 'm', 'CONTT'], '16': ['Contrail Base', 'm', 'CONTB'], '17': ['Maximum Snow Albedo', '%', 'MXSALB'], '18': ['Snow-Free Albedo', '%', 'SNFALB'], '19': ['Snow Albedo', '%', 'SALBD'], '20': ['Icing', '%', 'ICIP'], '21': ['In-Cloud Turbulence', '%', 'CTP'], '22': ['Clear Air Turbulence (CAT)', '%', 'CAT'], '23': ['Supercooled Large Droplet Probability', '%', 'SLDP'], '24': ['Convective Turbulent Kinetic Energy', 'J kg-1', 'CONTKE'], '25': ['Weather', 'See Table 4.225', 'WIWW'], '26': ['Convective Outlook', 'See Table 4.224', 'CONVO'], '27': ['Icing Scenario', 'See Table 4.227', 'ICESC'], '28': ['Mountain Wave Turbulence (Eddy Dissipation Rate)', 'm2/3 s-1', 'MWTURB'], '29': ['Clear Air Turbulence (CAT) (Eddy Dissipation Rate)', 'm2/3 s-1', 'CATEDR'], '30': ['Eddy Dissipation Parameter', 'm2/3 s-1', 'EDPARM'], '31': ['Maximum of Eddy Dissipation Parameter in Layer', 'm2/3 s-1', 'MXEDPRM'], '32': ['Highest Freezing Level', 'm', 'HIFREL'], '33': ['Visibility Through Liquid Fog', 'm', 'VISLFOG'], '34': ['Visibility Through Ice Fog', 'm', 'VISIFOG'], '35': ['Visibility Through Blowing Snow', 'm', 'VISBSN'], '36': ['Presence of Snow Squalls', 'See Table 4.222', 'PSNOWS'], '37': ['Icing Severity', 'See Table 4.228', 'ICESEV'], '38': ['Sky transparency index', 'See Table 4.214', 'SKYIDX'], '39': ['Seeing index', 'See Table 4.214', 'SEEINDEX'], '40': ['Snow level', 'm', 'SNOWLVL'], '41': ['Duct base height', 'm', 'DBHEIGHT'], '42': ['Trapping layer base height', 'm', 'TLBHEIGHT'], '43': ['Trapping layer top height', 'm', 'TLTHEIGHT'], '44': ['Mean vertical gradient of refractivity inside trapping layer', 'm-1', 'MEANVGRTL'], '45': ['Minimum vertical gradient of refractivity inside trapping layer', 'm-1', 'MINVGRTL'], '46': ['Net radiation flux', 'W m-2', 'NETRADFLUX'], '47': ['Global irradiance on tilted surfaces', 'W m-2', 'GLIRRTS'], '48': ['Top of persistent contrails', 'm', 'PCONTT'], '49': ['Base of persistent contrails', 'm', 'PCONTB'], '50': ['Convectively-induced turbulence (CIT) (eddy dissipation rate)', 'm2/3 s-1', 'CITEDR'], '51-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Maximum Snow Albedo', '%', 'MXSALB'], '193': ['Snow-Free Albedo', '%', 'SNFALB'], '194': ['Slight risk convective outlook', 'categorical', 'SRCONO'], '195': ['Moderate risk convective outlook', 'categorical', 'MRCONO'], '196': ['High risk convective outlook', 'categorical', 'HRCONO'], '197': ['Tornado probability', '%', 'TORPROB'], '198': ['Hail probability', '%', 'HAILPROB'], '199': ['Wind probability', '%', 'WINDPROB'], '200': ['Significant Tornado probability', '%', 'STORPROB'], '201': ['Significant Hail probability', '%', 'SHAILPRO'], '202': ['Significant Wind probability', '%', 'SWINDPRO'], '203': ['Categorical Thunderstorm', 'Code table 4.222', 'TSTMC'], '204': ['Number of mixed layers next to surface', 'integer', 'MIXLY'], '205': ['Flight Category', 'unknown', 'FLGHT'], '206': ['Confidence - Ceiling', 'unknown', 'CICEL'], '207': ['Confidence - Visibility', 'unknown', 'CIVIS'], '208': ['Confidence - Flight Category', 'unknown', 'CIFLT'], '209': ['Low-Level aviation interest', 'unknown', 'LAVNI'], '210': ['High-Level aviation interest', 'unknown', 'HAVNI'], '211': ['Visible, Black Sky Albedo', '%', 'SBSALB'], '212': ['Visible, White Sky Albedo', '%', 'SWSALB'], '213': ['Near IR, Black Sky Albedo', '%', 'NBSALB'], '214': ['Near IR, White Sky Albedo', '%', 'NWSALB'], '215': ['Total Probability of Severe Thunderstorms (Days 2,3)', '%', 'PRSVR'], '216': ['Total Probability of Extreme Severe Thunderstorms (Days 2,3)', '%', 'PRSIGSVR'], '217': ['Supercooled Large Droplet (SLD) Icing', 'See Table 4.207', 'SIPD'], '218': ['Radiative emissivity', 'unknown', 'EPSR'], '219': ['Turbulence Potential Forecast Index', 'unknown', 'TPFI'], '220': ['Categorical Severe Thunderstorm', 'Code table 4.222', 'SVRTS'], '221': ['Probability of Convection', '%', 'PROCON'], '222': ['Convection Potential', 'Code table 4.222', 'CONVP'], '223-231': ['Reserved', 'unknown', 'unknown'], '232': ['Volcanic Ash Forecast Transport and Dispersion', 'log10 (kg m-3)', 'VAFTD'], '233': ['Icing probability', 'non-dim', 'ICPRB'], '234': ['Icing Severity', 'non-dim', 'ICSEV'], '235': ['Joint Fire Weather Probability', '%', 'JFWPRB'], '236': ['Snow Level', 'm', 'SNOWLVL'], '237': ['Dry Thunderstorm Probability', '%', 'DRYTPROB'], '238': ['Ellrod Index', 'unknown', 'ELLINX'], '239': ['Craven-Wiedenfeld Aggregate Severe Parameter', 'Numeric', 'CWASP'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_20", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_20", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Mass Density (Concentration)', 'kg m-3', 'MASSDEN'], '1': ['Column-Integrated Mass Density', 'kg m-2', 'COLMD'], '2': ['Mass Mixing Ratio (Mass Fraction in Air)', 'kg kg-1', 'MASSMR'], '3': ['Atmosphere Emission Mass Flux', 'kg m-2s-1', 'AEMFLX'], '4': ['Atmosphere Net Production Mass Flux', 'kg m-2s-1', 'ANPMFLX'], '5': ['Atmosphere Net Production And Emision Mass Flux', 'kg m-2s-1', 'ANPEMFLX'], '6': ['Surface Dry Deposition Mass Flux', 'kg m-2s-1', 'SDDMFLX'], '7': ['Surface Wet Deposition Mass Flux', 'kg m-2s-1', 'SWDMFLX'], '8': ['Atmosphere Re-Emission Mass Flux', 'kg m-2s-1', 'AREMFLX'], '9': ['Wet Deposition by Large-Scale Precipitation Mass Flux', 'kg m-2s-1', 'WLSMFLX'], '10': ['Wet Deposition by Convective Precipitation Mass Flux', 'kg m-2s-1', 'WDCPMFLX'], '11': ['Sedimentation Mass Flux', 'kg m-2s-1', 'SEDMFLX'], '12': ['Dry Deposition Mass Flux', 'kg m-2s-1', 'DDMFLX'], '13': ['Transfer From Hydrophobic to Hydrophilic', 'kg kg-1s-1', 'TRANHH'], '14': ['Transfer From SO2 (Sulphur Dioxide) to SO4 (Sulphate)', 'kg kg-1s-1', 'TRSDS'], '15': ['Dry deposition velocity', 'm s-1', 'DDVEL'], '16': ['Mass mixing ratio with respect to dry air', 'kg kg-1', 'MSSRDRYA'], '17': ['Mass mixing ratio with respect to wet air', 'kg kg-1', 'MSSRWETA'], '18': ['Potential of hydrogen (pH)', 'pH', 'POTHPH'], '19-49': ['Reserved', 'unknown', 'unknown'], '50': ['Amount in Atmosphere', 'mol', 'AIA'], '51': ['Concentration In Air', 'mol m-3', 'CONAIR'], '52': ['Volume Mixing Ratio (Fraction in Air)', 'mol mol-1', 'VMXR'], '53': ['Chemical Gross Production Rate of Concentration', 'mol m-3s-1', 'CGPRC'], '54': ['Chemical Gross Destruction Rate of Concentration', 'mol m-3s-1', 'CGDRC'], '55': ['Surface Flux', 'mol m-2s-1', 'SFLUX'], '56': ['Changes Of Amount in Atmosphere', 'mol s-1', 'COAIA'], '57': ['Total Yearly Average Burden of The Atmosphere>', 'mol', 'TYABA'], '58': ['Total Yearly Average Atmospheric Loss', 'mol s-1', 'TYAAL'], '59': ['Aerosol Number Concentration', 'm-3', 'ANCON'], '60': ['Aerosol Specific Number Concentration', 'kg-1', 'ASNCON'], '61': ['Maximum of Mass Density', 'kg m-3', 'MXMASSD'], '62': ['Height of Mass Density', 'm', 'HGTMD'], '63': ['Column-Averaged Mass Density in Layer', 'kg m-3', 'CAVEMDL'], '64': ['Mole fraction with respect to dry air', 'mol mol-1', 'MOLRDRYA'], '65': ['Mole fraction with respect to wet air', 'mol mol-1', 'MOLRWETA'], '66': ['Column-integrated in-cloud scavenging rate by precipitation', 'kg m-2 s-1', 'CINCLDSP'], '67': ['Column-integrated below-cloud scavenging rate by precipitation', 'kg m-2 s-1', 'CBLCLDSP'], '68': ['Column-integrated release rate from evaporating precipitation', 'kg m-2 s-1', 'CIRELREP'], '69': ['Column-integrated in-cloud scavenging rate by large-scale precipitation', 'kg m-2 s-1', 'CINCSLSP'], '70': ['Column-integrated below-cloud scavenging rate by large-scale precipitation', 'kg m-2 s-1', 'CBECSLSP'], '71': ['Column-integrated release rate from evaporating large-scale precipitation', 'kg m-2 s-1', 'CRERELSP'], '72': ['Column-integrated in-cloud scavenging rate by convective precipitation', 'kg m-2 s-1', 'CINCSRCP'], '73': ['Column-integrated below-cloud scavenging rate by convective precipitation', 'kg m-2 s-1', 'CBLCSRCP'], '74': ['Column-integrated release rate from evaporating convective precipitation', 'kg m-2 s-1', 'CIRERECP'], '75': ['Wildfire flux', 'kg m-2 s-1', 'WFIREFLX'], '76': ['Emission Rate', 'kg kg-1 s-1', 'EMISFLX'], '77': ['Surface Emission flux', 'kg m-2 s-1', 'SFCEFLX'], '78': ['Column integrated eastward mass flux', 'kg m-2 s-1', 'CEMF'], '79': ['Column integrated northward mass flux', 'kg m-2 s-1', 'CNMF'], '80': ['Column integrated divergence of mass flux', 'kg m-2 s-1', 'CDIVMF'], '81': ['Column integrated net source', 'kg m-2 s-1', 'CDNETS'], '82-99': ['Reserved', 'unknown', 'unknown'], '100': ['Surface Area Density (Aerosol)', 'm-1', 'SADEN'], '101': ['Vertical Visual Range', 'm', 'ATMTK'], '102': ['Aerosol Optical Thickness', 'Numeric', 'AOTK'], '103': ['Single Scattering Albedo', 'Numeric', 'SSALBK'], '104': ['Asymmetry Factor', 'Numeric', 'ASYSFK'], '105': ['Aerosol Extinction Coefficient', 'm-1', 'AECOEF'], '106': ['Aerosol Absorption Coefficient', 'm-1', 'AACOEF'], '107': ['Aerosol Lidar Backscatter from Satellite', 'm-1sr-1', 'ALBSAT'], '108': ['Aerosol Lidar Backscatter from the Ground', 'm-1sr-1', 'ALBGRD'], '109': ['Aerosol Lidar Extinction from Satellite', 'm-1', 'ALESAT'], '110': ['Aerosol Lidar Extinction from the Ground', 'm-1', 'ALEGRD'], '111': ['Angstrom Exponent', 'Numeric', 'ANGSTEXP'], '112': ['Scattering Aerosol Optical Thickness', 'Numeric', 'SCTAOTK'], '113-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_190", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_190", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Arbitrary Text String', 'CCITTIA5', 'ATEXT'], '1-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_191", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_191", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Seconds prior to initial reference time (defined in Section 1)', 's', 'TSEC'], '1': ['Geographical Latitude', '\u00b0 N', 'GEOLAT'], '2': ['Geographical Longitude', '\u00b0 E', 'GEOLON'], '3': ['Days Since Last Observation', 'd', 'DSLOBS'], '4': ['Tropical cyclone density track', 'Numeric', 'TCDTRACK'], '5-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Latitude (-90 to 90)', '\u00b0', 'NLAT'], '193': ['East Longitude (0 to 360)', '\u00b0', 'ELON'], '194': ['Seconds prior to initial reference time', 's', 'RTSEC'], '195': ['Model Layer number (From bottom up)', 'unknown', 'MLYNO'], '196': ['Latitude (nearest neighbor) (-90 to 90)', '\u00b0', 'NLATN'], '197': ['East Longitude (nearest neighbor) (0 to 360)', '\u00b0', 'ELONN'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_192", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_192", "kind": "variable", "doc": "\n", "default_value": "{'1': ['Covariance between zonal and meridional components of the wind. Defined as [uv]-[u][v], where "[]" indicates the mean over the indicated time span.', 'm2/s2', 'COVMZ'], '2': ['Covariance between zonal component of the wind and temperature. Defined as [uT]-[u][T], where "[]" indicates the mean over the indicated time span.', 'K*m/s', 'COVTZ'], '3': ['Covariance between meridional component of the wind and temperature. Defined as [vT]-[v][T], where "[]" indicates the mean over the indicated time span.', 'K*m/s', 'COVTM'], '4': ['Covariance between temperature and vertical component of the wind. Defined as [wT]-[w][T], where "[]" indicates the mean over the indicated time span.', 'K*m/s', 'COVTW'], '5': ['Covariance between zonal and zonal components of the wind. Defined as [uu]-[u][u], where "[]" indicates the mean over the indicated time span.', 'm2/s2', 'COVZZ'], '6': ['Covariance between meridional and meridional components of the wind. Defined as [vv]-[v][v], where "[]" indicates the mean over the indicated time span.', 'm2/s2', 'COVMM'], '7': ['Covariance between specific humidity and zonal components of the wind. Defined as [uq]-[u][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*m/s', 'COVQZ'], '8': ['Covariance between specific humidity and meridional components of the wind. Defined as [vq]-[v][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*m/s', 'COVQM'], '9': ['Covariance between temperature and vertical components of the wind. Defined as [\u03a9T]-[\u03a9][T], where "[]" indicates the mean over the indicated time span.', 'K*Pa/s', 'COVTVV'], '10': ['Covariance between specific humidity and vertical components of the wind. Defined as [\u03a9q]-[\u03a9][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*Pa/s', 'COVQVV'], '11': ['Covariance between surface pressure and surface pressure. Defined as [Psfc]-[Psfc][Psfc], where "[]" indicates the mean over the indicated time span.', 'Pa*Pa', 'COVPSPS'], '12': ['Covariance between specific humidity and specific humidy. Defined as [qq]-[q][q], where "[]" indicates the mean over the indicated time span.', 'kg/kg*kg/kg', 'COVQQ'], '13': ['Covariance between vertical and vertical components of the wind. Defined as [\u03a9\u03a9]-[\u03a9][\u03a9], where "[]" indicates the mean over the indicated time span.', 'Pa2/s2', 'COVVVVV'], '14': ['Covariance between temperature and temperature. Defined as [TT]-[T][T], where "[]" indicates the mean over the indicated time span.', 'K*K', 'COVTT'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_0_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_0_ndfd", "kind": "variable", "doc": "\n", "default_value": "{'193': ['Apparent Temperature', 'K', 'APPT']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_1_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_1_ndfd", "kind": "variable", "doc": "\n", "default_value": "{'192': ['Weather Information', 'WxInfo', 'WX']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_19_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_19_ndfd", "kind": "variable", "doc": "\n", "default_value": "{'194': ['Convective Hazard Outlook', 'categorical', 'CONVOUTLOOK'], '197': ['Probability of Tornado', '%', 'PTORNADO'], '198': ['Probability of Hail', '%', 'PHAIL'], '199': ['Probability of Damaging Wind', '%', 'PWIND'], '200': ['Probability of Extreme Tornado', '%', 'PXTRMTORN'], '201': ['Probability of Extreme Hail', '%', 'PXTRMHAIL'], '202': ['Probability of Extreme Wind', '%', 'PXTRMWIND'], '215': ['Total Probability of Severe Thunderstorms', '%', 'TOTALSVRPROB'], '216': ['Total Probability of Extreme Severe Thunderstorms', '%', 'TOTALXTRMPROB'], '217': ['Watch Warning Advisory', 'WxInfo', 'WWA']}"}, {"fullname": "grib2io.tables.section4_discipline0.table_4_2_0_192_ndfd", "modulename": "grib2io.tables.section4_discipline0", "qualname": "table_4_2_0_192_ndfd", "kind": "variable", "doc": "\n", "default_value": "{'192': ['Critical Fire Weather', '', 'FIREWX'], '194': ['Dry Lightning', '', 'DRYLIGHTNING']}"}, {"fullname": "grib2io.tables.section4_discipline1", "modulename": "grib2io.tables.section4_discipline1", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline1.table_4_2_1_0", "modulename": "grib2io.tables.section4_discipline1", "qualname": "table_4_2_1_0", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Flash Flood Guidance (Encoded as an accumulation over a floating subinterval of time between the reference time and valid time)', 'kg m-2', 'FFLDG'], '1': ['Flash Flood Runoff (Encoded as an accumulation over a floating subinterval of time)', 'kg m-2', 'FFLDRO'], '2': ['Remotely Sensed Snow Cover', 'See Table 4.215', 'RSSC'], '3': ['Elevation of Snow Covered Terrain', 'See Table 4.216', 'ESCT'], '4': ['Snow Water Equivalent Percent of Normal', '%', 'SWEPON'], '5': ['Baseflow-Groundwater Runoff', 'kg m-2', 'BGRUN'], '6': ['Storm Surface Runoff', 'kg m-2', 'SSRUN'], '7': ['Discharge from Rivers or Streams', 'm3 s-1', 'DISRS'], '8': ['Group Water Upper Storage', 'kg m-2', 'GWUPS'], '9': ['Group Water Lower Storage', 'kg m-2', 'GWLOWS'], '10': ['Side Flow into River Channel', 'm3 s-1 m-1', 'SFLORC'], '11': ['River Storage of Water', 'm3', 'RVERSW'], '12': ['Flood Plain Storage of Water', 'm3', 'FLDPSW'], '13': ['Depth of Water on Soil Surface', 'kg m-2', 'DEPWSS'], '14': ['Upstream Accumulated Precipitation', 'kg m-2', 'UPAPCP'], '15': ['Upstream Accumulated Snow Melt', 'kg m-2', 'UPASM'], '16': ['Percolation Rate', 'kg m-2 s-1', 'PERRATE'], '17-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Baseflow-Groundwater Runoff', 'kg m-2', 'BGRUN'], '193': ['Storm Surface Runoff', 'kg m-2', 'SSRUN'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline1.table_4_2_1_1", "modulename": "grib2io.tables.section4_discipline1", "qualname": "table_4_2_1_1", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Conditional percent precipitation amount fractile for an overall period (encoded as an accumulation)', 'kg m-2', 'CPPOP'], '1': ['Percent Precipitation in a sub-period of an overall period (encoded as a percent accumulation over the sub-period)', '%', 'PPOSP'], '2': ['Probability of 0.01 inch of precipitation (POP)', '%', 'POP'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Probability of Freezing Precipitation', '%', 'CPOZP'], '193': ['Percent of Frozen Precipitation', '%', 'CPOFP'], '194': ['Probability of precipitation exceeding flash flood guidance values', '%', 'PPFFG'], '195': ['Probability of Wetting Rain, exceeding in 0.10" in a given time period', '%', 'CWR'], '196': ['Binary Probability of precipitation exceeding average recurrence intervals (ARI)', 'see Code table 4.222', 'QPFARI'], '197': ['Binary Probability of precipitation exceeding flash flood guidance values', 'see Code table 4.222', 'QPFFFG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline1.table_4_2_1_2", "modulename": "grib2io.tables.section4_discipline1", "qualname": "table_4_2_1_2", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Water Depth', 'm', 'WDPTHIL'], '1': ['Water Temperature', 'K', 'WTMPIL'], '2': ['Water Fraction', 'Proportion', 'WFRACT'], '3': ['Sediment Thickness', 'm', 'SEDTK'], '4': ['Sediment Temperature', 'K', 'SEDTMP'], '5': ['Ice Thickness', 'm', 'ICTKIL'], '6': ['Ice Temperature', 'K', 'ICETIL'], '7': ['Ice Cover', 'Proportion', 'ICECIL'], '8': ['Land Cover (0=water, 1=land)', 'Proportion', 'LANDIL'], '9': ['Shape Factor with Respect to Salinity Profile', 'unknown', 'SFSAL'], '10': ['Shape Factor with Respect to Temperature Profile in Thermocline', 'unknown', 'SFTMP'], '11': ['Attenuation Coefficient of Water with Respect to Solar Radiation', 'm-1', 'ACWSR'], '12': ['Salinity', 'kg kg-1', 'SALTIL'], '13': ['Cross Sectional Area of Flow in Channel', 'm2', 'CSAFC'], '14': ['Snow temperature', 'K', 'LNDSNOWT'], '15': ['Lake depth', 'm', 'LDEPTH'], '16': ['River depth', 'm', 'RDEPTH'], '17-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10", "modulename": "grib2io.tables.section4_discipline10", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_0", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_0", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Wave Spectra (1)', '-', 'WVSP1'], '1': ['Wave Spectra (2)', '-', 'WVSP2'], '2': ['Wave Spectra (3)', '-', 'WVSP3'], '3': ['Significant Height of Combined Wind Waves and Swell', 'm', 'HTSGW'], '4': ['Direction of Wind Waves', 'degree true', 'WVDIR'], '5': ['Significant Height of Wind Waves', 'm', 'WVHGT'], '6': ['Mean Period of Wind Waves', 's', 'WVPER'], '7': ['Direction of Swell Waves', 'degree true', 'SWDIR'], '8': ['Significant Height of Swell Waves', 'm', 'SWELL'], '9': ['Mean Period of Swell Waves', 's', 'SWPER'], '10': ['Primary Wave Direction', 'degree true', 'DIRPW'], '11': ['Primary Wave Mean Period', 's', 'PERPW'], '12': ['Secondary Wave Direction', 'degree true', 'DIRSW'], '13': ['Secondary Wave Mean Period', 's', 'PERSW'], '14': ['Direction of Combined Wind Waves and Swell', 'degree true', 'WWSDIR'], '15': ['Mean Period of Combined Wind Waves and Swell', 's', 'MWSPER'], '16': ['Coefficient of Drag With Waves', '-', 'CDWW'], '17': ['Friction Velocity', 'm s-1', 'FRICVW'], '18': ['Wave Stress', 'N m-2', 'WSTR'], '19': ['Normalised Waves Stress', '-', 'NWSTR'], '20': ['Mean Square Slope of Waves', '-', 'MSSW'], '21': ['U-component Surface Stokes Drift', 'm s-1', 'USSD'], '22': ['V-component Surface Stokes Drift', 'm s-1', 'VSSD'], '23': ['Period of Maximum Individual Wave Height', 's', 'PMAXWH'], '24': ['Maximum Individual Wave Height', 'm', 'MAXWH'], '25': ['Inverse Mean Wave Frequency', 's', 'IMWF'], '26': ['Inverse Mean Frequency of The Wind Waves', 's', 'IMFWW'], '27': ['Inverse Mean Frequency of The Total Swell', 's', 'IMFTSW'], '28': ['Mean Zero-Crossing Wave Period', 's', 'MZWPER'], '29': ['Mean Zero-Crossing Period of The Wind Waves', 's', 'MZPWW'], '30': ['Mean Zero-Crossing Period of The Total Swell', 's', 'MZPTSW'], '31': ['Wave Directional Width', '-', 'WDIRW'], '32': ['Directional Width of The Wind Waves', '-', 'DIRWWW'], '33': ['Directional Width of The Total Swell', '-', 'DIRWTS'], '34': ['Peak Wave Period', 's', 'PWPER'], '35': ['Peak Period of The Wind Waves', 's', 'PPERWW'], '36': ['Peak Period of The Total Swell', 's', 'PPERTS'], '37': ['Altimeter Wave Height', 'm', 'ALTWH'], '38': ['Altimeter Corrected Wave Height', 'm', 'ALCWH'], '39': ['Altimeter Range Relative Correction', '-', 'ALRRC'], '40': ['10 Metre Neutral Wind Speed Over Waves', 'm s-1', 'MNWSOW'], '41': ['10 Metre Wind Direction Over Waves', 'degree true', 'MWDIRW'], '42': ['Wave Engery Spectrum', 'm-2 s rad-1', 'WESP'], '43': ['Kurtosis of The Sea Surface Elevation Due to Waves', '-', 'KSSEW'], '44': ['Benjamin-Feir Index', '-', 'BENINX'], '45': ['Spectral Peakedness Factor', 's-1', 'SPFTR'], '46': ['Peak wave direction', '°', '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', '°', 'MWDFSWEL'], '54': ['Mean wave direction of second swell partition', '°', 'MWDSSWEL'], '55': ['Mean wave direction of third swell partition', '°', 'MWDTSWEL'], '56': ['Wave directional width of first swell partition', '-', 'WDWFSWEL'], '57': ['Wave directional width of second swell partition', '-', 'WDWSSWEL'], '58': ['Wave directional width of third swell partition', '-', 'WDWTSWEL'], '59': ['Wave frequency width of first swell partition', '-', 'WFWFSWEL'], '60': ['Wave frequency width of second swell partition', '-', 'WFWSSWEL'], '61': ['Wave frequency width of third swell partition', '-', 'WFWTSWEL'], '62': ['Wave frequency width', '-', 'WAVEFREW'], '63': ['Frequency width of wind waves', '-', 'FREWWW'], '64': ['Frequency width of total swell', '-', 'FREWTSW'], '65': ['Peak Wave Period of First Swell Partition', 's', 'PWPFSPAR'], '66': ['Peak Wave Period of Second Swell Partition', 's', 'PWPSSPAR'], '67': ['Peak Wave Period of Third Swell Partition', 's', 'PWPTSPAR'], '68': ['Peak Wave Direction of First Swell Partition', 'degree true', 'PWDFSPAR'], '69': ['Peak Wave Direction of Second Swell Partition', 'degree true', 'PWDSSPAR'], '70': ['Peak Wave Direction of Third Swell Partition', 'degree true', 'PWDTSPAR'], '71': ['Peak Direction of Wind Waves', 'degree true', 'PDWWAVE'], '72': ['Peak Direction of Total Swell', 'degree true', 'PDTSWELL'], '73': ['Whitecap Fraction', 'fraction', 'WCAPFRAC'], '74': ['Mean Direction of Total Swell', 'degree', 'MDTSWEL'], '75': ['Mean Direction of Wind Waves', 'degree', 'MDWWAVE'], '76': ['Charnock', 'Numeric', 'CHNCK'], '77': ['Wave Spectral Skewness', 'Numeric', 'WAVESPSK'], '78': ['Wave Energy Flux Magnitude', 'W m-1', 'WAVEFMAG'], '79': ['Wave Energy Flux Mean Direction', 'degree true', 'WAVEFDIR'], '80': ['Raio of Wave Angular and Frequency width', 'Numeric', 'RWAVEAFW'], '81': ['Free Convective Velocity over the Oceans', 'm s-1', 'FCVOCEAN'], '82': ['Air Density over the Oceans', 'kg m-3', 'AIRDENOC'], '83': ['Normalized Energy Flux into Waves', 'Numeric', 'NEFW'], '84': ['Normalized Stress into Ocean', 'Numeric', 'NSOCEAN'], '85': ['Normalized Energy Flux into Ocean', 'Numeric', 'NEFOCEAN'], '86': ['Surface Elevation Variance due to Waves (over all frequencies and directions)', 'm2 s rad-1', 'SEVWAVE'], '87': ['Wave Induced Mean Se Level Correction', 'm', 'WAVEMSLC'], '88': ['Spectral Width Index', 'Numeric', 'SPECWI'], '89': ['Number of Events in Freak Wave Statistics', 'Numeric', 'EFWS'], '90': ['U-Component of Surface Momentum Flux into Ocean', 'N m-2', 'USMFO'], '91': ['U-Component of Surface Momentum Flux into Ocean', 'N m-2', 'VSMFO'], '92': ['Wave Turbulent Energy Flux into Ocean', 'W m-2', 'WAVETEFO'], '93': ['Envelop maximum individual wave height', 'm', 'EMIWAVE'], '94': ['Time domain maximum individual crest height', 'm', 'TDMCREST'], '95': ['Time domain maximum individual wave height', 'm', 'TDMWAVE'], '96': ['Space time maximum individual crest height', 'm', 'STMCREST'], '97': ['Space time maximum individual wave height', 'm', 'STMWAVE'], '98-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Wave Steepness', 'proportion', 'WSTP'], '193': ['Wave Length', 'unknown', 'WLENG'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_1", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_1", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Current Direction', 'degree True', 'DIRC'], '1': ['Current Speed', 'm s-1', 'SPC'], '2': ['U-Component of Current', 'm s-1', 'UOGRD'], '3': ['V-Component of Current', 'm s-1', 'VOGRD'], '4': ['Rip Current Occurrence Probability', '%', 'RIPCOP'], '5': ['Eastward Current', 'm s-1', 'EASTCUR'], '6': ['Northward Current', 'm s-1', 'NRTHCUR'], '7-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Ocean Mixed Layer U Velocity', 'm s-1', 'OMLU'], '193': ['Ocean Mixed Layer V Velocity', 'm s-1', 'OMLV'], '194': ['Barotropic U velocity', 'm s-1', 'UBARO'], '195': ['Barotropic V velocity', 'm s-1', 'VBARO'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_2", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_2", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Ice Cover', 'Proportion', 'ICEC'], '1': ['Ice Thickness', 'm', 'ICETK'], '2': ['Direction of Ice Drift', 'degree True', 'DICED'], '3': ['Speed of Ice Drift', 'm s-1', 'SICED'], '4': ['U-Component of Ice Drift', 'm s-1', 'UICE'], '5': ['V-Component of Ice Drift', 'm s-1', 'VICE'], '6': ['Ice Growth Rate', 'm s-1', 'ICEG'], '7': ['Ice Divergence', 's-1', 'ICED'], '8': ['Ice Temperature', 'K', 'ICETMP'], '9': ['Module of Ice Internal Pressure', 'Pa m', 'ICEPRS'], '10': ['Zonal Vector Component of Vertically Integrated Ice Internal Pressure', 'Pa m', 'ZVCICEP'], '11': ['Meridional Vector Component of Vertically Integrated Ice Internal Pressure', 'Pa m', 'MVCICEP'], '12': ['Compressive Ice Strength', 'N m-1', 'CICES'], '13': ['Snow Temperature (over sea ice)', 'K', 'SNOWTSI'], '14': ['Albedo', 'Numeric', 'ALBDOICE'], '15': ['Sea Ice Volume per Unit Area', 'm3m-2', 'SICEVOL'], '16': ['Snow Volume Over Sea Ice per Unit Area', 'm3m-2', 'SNVOLSI'], '17': ['Sea Ice Heat Content', 'J m-2', 'SICEHC'], '18': ['Snow over Sea Ice Heat Content', 'J m-2', 'SNCEHC'], '19': ['Ice Freeboard Thickness', 'm', 'ICEFTHCK'], '20': ['Ice Melt Pond Fraction', 'fraction', 'ICEMPF'], '21': ['Ice Melt Pond Depth', 'm', 'ICEMPD'], '22': ['Ice Melt Pond Volume per Unit Area', 'm3m-2', 'ICEMPV'], '23': ['Sea Ice Fraction Tendency due to Parameterization', 's-1', 'SIFTP'], '24': ['x-component of ice drift', 'm s-1', 'XICE'], '25': ['y-component of ice drift', 'm s-1', 'YICE'], '26': ['Reserved', 'unknown', 'unknown'], '27': ['Freezing/melting potential (Tentatively accepted)', 'W m-2', 'FRZMLTPOT'], '28': ['Melt onset date (Tentatively accepted)', 'Numeric', 'MLTDATE'], '29': ['Freeze onset date (Tentatively accepted)', 'Numeric', 'FRZDATE'], '30-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_3", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_3", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Water Temperature', 'K', 'WTMP'], '1': ['Deviation of Sea Level from Mean', 'm', 'DSLM'], '2': ['Heat Exchange Coefficient', 'unknown', 'CH'], '3': ['Practical Salinity', 'Numeric', 'PRACTSAL'], '4': ['Downward Heat Flux', 'W m-2', 'DWHFLUX'], '5': ['Eastward Surface Stress', 'N m-2', 'EASTWSS'], '6': ['Northward surface stress', 'N m-2', 'NORTHWSS'], '7': ['x-component Surface Stress', 'N m-2', 'XCOMPSS'], '8': ['y-component Surface Stress', 'N m-2', 'YCOMPSS'], '9': ['Thermosteric Change in Sea Surface Height', 'm', 'THERCSSH'], '10': ['Halosteric Change in Sea Surface Height', 'm', 'HALOCSSH'], '11': ['Steric Change in Sea Surface Height', 'm', 'STERCSSH'], '12': ['Sea Salt Flux', 'kg m-2s-1', 'SEASFLUX'], '13': ['Net upward water flux', 'kg m-2s-1', 'NETUPWFLUX'], '14': ['Eastward surface water velocity', 'm s-1', 'ESURFWVEL'], '15': ['Northward surface water velocity', 'm s-1', 'NSURFWVEL'], '16': ['x-component of surface water velocity', 'm s-1', 'XSURFWVEL'], '17': ['y-component of surface water velocity', 'm s-1', 'YSURFWVEL'], '18': ['Heat flux correction', 'W m-2', 'HFLUXCOR'], '19': ['Sea surface height tendency due to parameterization', 'm s-1', 'SSHGTPARM'], '20': ['Deviation of sea level from mean with inverse barometer correction', 'm', 'DSLIBARCOR'], '21': ['Salinity', 'kg kg-1', 'SALIN'], '22-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Hurricane Storm Surge', 'm', 'SURGE'], '193': ['Extra Tropical Storm Surge', 'm', 'ETSRG'], '194': ['Ocean Surface Elevation Relative to Geoid', 'm', 'ELEV'], '195': ['Sea Surface Height Relative to Geoid', 'm', 'SSHG'], '196': ['Ocean Mixed Layer Potential Density (Reference 2000m)', 'kg m-3', 'P2OMLT'], '197': ['Net Air-Ocean Heat Flux', 'W m-2', 'AOHFLX'], '198': ['Assimilative Heat Flux', 'W m-2', 'ASHFL'], '199': ['Surface Temperature Trend', 'degree per day', 'SSTT'], '200': ['Surface Salinity Trend', 'psu per day', 'SSST'], '201': ['Kinetic Energy', 'J kg-1', 'KENG'], '202': ['Salt Flux', 'kg m-2s-1', 'SLTFL'], '203': ['Heat Exchange Coefficient', 'unknown', 'LCH'], '204': ['Freezing Spray', 'unknown', 'FRZSPR'], '205': ['Total Water Level Accounting for Tide, Wind and Waves', 'm', 'TWLWAV'], '206': ['Total Water Level Increase due to Waves', 'm', 'RUNUP'], '207': ['Mean Increase in Water Level due to Waves', 'm', 'SETUP'], '208': ['Time-varying Increase in Water Level due to Waves', 'm', 'SWASH'], '209': ['Total Water Level Above Dune Toe', 'm', 'TWLDT'], '210': ['Total Water Level Above Dune Crest', 'm', 'TWLDC'], '211-241': ['Reserved', 'unknown', 'unknown'], '242': ['20% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG20'], '243': ['30% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG30'], '244': ['40% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG40'], '245': ['50% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG50'], '246': ['60% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG60'], '247': ['70% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG70'], '248': ['80% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG80'], '249': ['90% Tropical Cyclone Storm Surge Exceedance', 'm', 'TCSRG90'], '250': ['Extra Tropical Storm Surge Combined Surge and Tide', 'm', 'ETCWL'], '251': ['Tide', 'm', 'TIDE'], '252': ['Erosion Occurrence Probability', '%', 'EROSNP'], '253': ['Overwash Occurrence Probability', '%', 'OWASHP'], '254': ['Reserved', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_4", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_4", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Main Thermocline Depth', 'm', 'MTHD'], '1': ['Main Thermocline Anomaly', 'm', 'MTHA'], '2': ['Transient Thermocline Depth', 'm', 'TTHDP'], '3': ['Salinity', 'kg kg-1', 'SALTY'], '4': ['Ocean Vertical Heat Diffusivity', 'm2 s-1', 'OVHD'], '5': ['Ocean Vertical Salt Diffusivity', 'm2 s-1', 'OVSD'], '6': ['Ocean Vertical Momentum Diffusivity', 'm2 s-1', 'OVMD'], '7': ['Bathymetry', 'm', 'BATHY'], '8-10': ['Reserved', 'unknown', 'unknown'], '11': ['Shape Factor With Respect To Salinity Profile', 'unknown', 'SFSALP'], '12': ['Shape Factor With Respect To Temperature Profile In Thermocline', 'unknown', 'SFTMPP'], '13': ['Attenuation Coefficient Of Water With Respect to Solar Radiation', 'm-1', 'ACWSRD'], '14': ['Water Depth', 'm', 'WDEPTH'], '15': ['Water Temperature', 'K', 'WTMPSS'], '16': ['Water Density (rho)', 'kg m-3', 'WATERDEN'], '17': ['Water Density Anomaly (sigma)', 'kg m-3', 'WATDENA'], '18': ['Water potential temperature (theta)', 'K', 'WATPTEMP'], '19': ['Water potential density (rho theta)', 'kg m-3', 'WATPDEN'], '20': ['Water potential density anomaly (sigma theta)', 'kg m-3', 'WATPDENA'], '21': ['Practical Salinity', 'psu (numeric)', 'PRTSAL'], '22': ['Water Column-integrated Heat Content', 'J m-2', 'WCHEATC'], '23': ['Eastward Water Velocity', 'm s-1', 'EASTWVEL'], '24': ['Northward Water Velocity', 'm s-1', 'NRTHWVEL'], '25': ['X-Component Water Velocity', 'm s-1', 'XCOMPWV'], '26': ['Y-Component Water Velocity', 'm s-1', 'YCOMPWV'], '27': ['Upward Water Velocity', 'm s-1', 'UPWWVEL'], '28': ['Vertical Eddy Diffusivity', 'm2 s-1', 'VEDDYDIF'], '29': ['Bottom Pressure Equivalent Height', 'm', 'BPEH'], '30': ['Fresh Water Flux into Sea Water from Rivers', 'kg m-2s-1', 'FWFSW'], '31': ['Fresh Water Flux Correction', 'kg m-2s-1', 'FWFC'], '32': ['Virtual Salt Flux into Sea Water', 'g kg-1 m-2s-1', 'VSFSW'], '33': ['Virtual Salt Flux Correction', 'g kg -1 m-2s-1', 'VSFC'], '34': ['Sea Water Temperature Tendency due to Newtonian Relaxation', 'K s-1', 'SWTTNR'], '35': ['Sea Water Salinity Tendency due to Newtonian Relaxation', 'g kg -1s-1', 'SWSTNR'], '36': ['Sea Water Temperature Tendency due to Parameterization', 'K s-1', 'SWTTP'], '37': ['Sea Water Salinity Tendency due to Parameterization', 'g kg -1s-1', 'SWSTP'], '38': ['Eastward Sea Water Velocity Tendency Due To Parameterization', 'm s-2', 'ESWVP'], '39': ['Northward Sea Water Velocity Tendency Due To Parameterization', 'm s-2', 'NSWVP'], '40': ['Sea Water Temperature Tendency Due to Direct Bias Correction', 'K s-1', 'SWTTBC'], '41': ['Sea Water Salinity Tendency due to Direct Bias Correction', 'g kg -1s-1', 'SWSTBC'], '42': ['Sea water meridional volume transport', 'm 3 m -2 s -1', 'SEAMVT'], '43': ['Sea water zonal volume transport', 'm 3 m -2 s -1', 'SEAZVT'], '44': ['Sea water column integrated meridional volume transport', 'm 3 m -2 s -1', 'SEACMVT'], '45': ['Sea water column integrated zonal volume transport', 'm 3 m -2 s -1', 'SEACZVT'], '46': ['Sea water meridional mass transport', 'kg m -2 s -1', 'SEAMMT'], '47': ['Sea water zonal mass transport', 'kg m -2 s -1', 'SEAZMT'], '48': ['Sea water column integrated meridional mass transport', 'kg m -2 s -1', 'SEACMMT'], '49': ['Sea water column integrated zonal mass transport', 'kg m -2 s -1', 'SEACZMT'], '50': ['Sea water column integrated practical salinity', 'g kg-1 m', 'SEACPSALT'], '51': ['Sea water column integrated salinity', 'kg kg-1 m', 'SEACSALT'], '52-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['3-D Temperature', '\u00b0 c', 'WTMPC'], '193': ['3-D Salinity', 'psu', 'SALIN'], '194': ['Barotropic Kinectic Energy', 'J kg-1', 'BKENG'], '195': ['Geometric Depth Below Sea Surface', 'm', 'DBSS'], '196': ['Interface Depths', 'm', 'INTFD'], '197': ['Ocean Heat Content', 'J m-2', 'OHC'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline10.table_4_2_10_191", "modulename": "grib2io.tables.section4_discipline10", "qualname": "table_4_2_10_191", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Seconds Prior To Initial Reference Time (Defined In Section 1)', 's', 'IRTSEC'], '1': ['Meridional Overturning Stream Function', 'm3 s-1', 'MOSF'], '2': ['Reserved', 'unknown', 'unknown'], '3': ['Days Since Last Observation', 'd', 'DSLOBSO'], '4': ['Barotropic Stream Function', 'm3 s-1', 'BARDSF'], '5-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2", "modulename": "grib2io.tables.section4_discipline2", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_0", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_0", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Land Cover (0=sea, 1=land)', 'Proportion', 'LAND'], '1': ['Surface Roughness', 'm', 'SFCR'], '2': ['Soil Temperature (Parameter Deprecated, see Note 3)', 'K', 'TSOIL'], '3': ['Soil Moisture Content (Parameter Deprecated, see Note 1)', 'unknown', 'unknown'], '4': ['Vegetation', '%', 'VEG'], '5': ['Water Runoff', 'kg m-2', 'WATR'], '6': ['Evapotranspiration', 'kg-2 s-1', 'EVAPT'], '7': ['Model Terrain Height', 'm', 'MTERH'], '8': ['Land Use', 'See Table 4.212', 'LANDU'], '9': ['Volumetric Soil Moisture Content', 'Proportion', 'SOILW'], '10': ['Ground Heat Flux', 'W m-2', 'GFLUX'], '11': ['Moisture Availability', '%', 'MSTAV'], '12': ['Exchange Coefficient', 'kg m-2 s-1', 'SFEXC'], '13': ['Plant Canopy Surface Water', 'kg m-2', 'CNWAT'], '14': ['Blackadars Mixing Length Scale', 'm', 'BMIXL'], '15': ['Canopy Conductance', 'm s-1', 'CCOND'], '16': ['Minimal Stomatal Resistance', 's m-1', 'RSMIN'], '17': ['Wilting Point (Parameter Deprecated, see Note 1)', 'Proportion', 'WILT'], '18': ['Solar parameter in canopy conductance', 'Proportion', 'RCS'], '19': ['Temperature parameter in canopy', 'Proportion', 'RCT'], '20': ['Humidity parameter in canopy conductance', 'Proportion', 'RCQ'], '21': ['Soil moisture parameter in canopy conductance', 'Proportion', 'RCSOL'], '22': ['Soil Moisture (Parameter Deprecated, See Note 3)', 'unknown', 'unknown'], '23': ['Column-Integrated Soil Water (Parameter Deprecated, See Note 3)', 'kg m-2', 'CISOILW'], '24': ['Heat Flux', 'W m-2', 'HFLUX'], '25': ['Volumetric Soil Moisture', 'm3 m-3', 'VSOILM'], '26': ['Wilting Point', 'kg m-3', 'WILT'], '27': ['Volumetric Wilting Point', 'm3 m-3', 'VWILTP'], '28': ['Leaf Area Index', 'Numeric', 'LEAINX'], '29': ['Evergreen Forest Cover', 'Proportion', 'EVGFC'], '30': ['Deciduous Forest Cover', 'Proportion', 'DECFC'], '31': ['Normalized Differential Vegetation Index (NDVI)', 'Numeric', 'NDVINX'], '32': ['Root Depth of Vegetation', 'm', 'RDVEG'], '33': ['Water Runoff and Drainage', 'kg m-2', 'WROD'], '34': ['Surface Water Runoff', 'kg m-2', 'SFCWRO'], '35': ['Tile Class', 'See Table 4.243', 'TCLASS'], '36': ['Tile Fraction', 'Proportion', 'TFRCT'], '37': ['Tile Percentage', '%', 'TPERCT'], '38': ['Soil Volumetric Ice Content (Water Equivalent)', 'm3 m-3', 'SOILVIC'], '39': ['Evapotranspiration Rate', 'kg m-2 s-1', 'EVAPTRAT'], '40': ['Potential Evapotranspiration Rate', 'kg m-2 s-1', 'PEVAPTRAT'], '41': ['Snow Melt Rate', 'kg m-2 s-1', 'SMRATE'], '42': ['Water Runoff and Drainage Rate', 'kg m-2 s-1', 'WRDRATE'], '43': ['Drainage direction', 'See Table 4.250', 'DRAINDIR'], '44': ['Upstream Area', 'm2', 'UPSAREA'], '45': ['Wetland Cover', 'Proportion', 'WETCOV'], '46': ['Wetland Type', 'See Table 4.239', 'WETTYPE'], '47': ['Irrigation Cover', 'Proportion', 'IRRCOV'], '48': ['C4 Crop Cover', 'Proportion', 'CROPCOV'], '49': ['C4 Grass Cover', 'Proportion', 'GRASSCOV'], '50': ['Skin Resovoir Content', 'kg m-2', 'SKINRC'], '51': ['Surface Runoff Rate', 'kg m-2 s-1', 'SURFRATE'], '52': ['Subsurface Runoff Rate', 'kg m-2 s-1', 'SUBSRATE'], '53': ['Low-Vegetation Cover', 'Proportion', 'LOVEGCOV'], '54': ['High-Vegetation Cover', 'Proportion', 'HIVEGCOV'], '55': ['Leaf Area Index (Low-Vegetation)', 'm2 m-2', 'LAILO'], '56': ['Leaf Area Index (High-Vegetation)', 'm2 m-2', 'LAIHI'], '57': ['Type of Low-Vegetation', 'See Table 4.234', 'TYPLOVEG'], '58': ['Type of High-Vegetation', 'See Table 4.234', 'TYPHIVEG'], '59': ['Net Ecosystem Exchange Flux', 'kg-2 s-1', 'NECOFLUX'], '60': ['Gross Primary Production Flux', 'kg-2 s-1', 'GROSSFLUX'], '61': ['Ecosystem Respiration Flux', 'kg-2 s-1', 'ECORFLUX'], '62': ['Emissivity', 'Proportion', 'EMISS'], '63': ['Canopy air temperature', 'K', 'CANTMP'], '64-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Volumetric Soil Moisture Content', 'Fraction', 'SOILW'], '193': ['Ground Heat Flux', 'W m-2', 'GFLUX'], '194': ['Moisture Availability', '%', 'MSTAV'], '195': ['Exchange Coefficient', '(kg m-3) (m s-1)', 'SFEXC'], '196': ['Plant Canopy Surface Water', 'kg m-2', 'CNWAT'], '197': ['Blackadar\u2019s Mixing Length Scale', 'm', 'BMIXL'], '198': ['Vegetation Type', 'Integer (0-13)', 'VGTYP'], '199': ['Canopy Conductance', 'm s-1', 'CCOND'], '200': ['Minimal Stomatal Resistance', 's m-1', 'RSMIN'], '201': ['Wilting Point', 'Fraction', 'WILT'], '202': ['Solar parameter in canopy conductance', 'Fraction', 'RCS'], '203': ['Temperature parameter in canopy conductance', 'Fraction', 'RCT'], '204': ['Humidity parameter in canopy conductance', 'Fraction', 'RCQ'], '205': ['Soil moisture parameter in canopy conductance', 'Fraction', 'RCSOL'], '206': ['Rate of water dropping from canopy to ground', 'unknown', 'RDRIP'], '207': ['Ice-free water surface', '%', 'ICWAT'], '208': ['Surface exchange coefficients for T and Q divided by delta z', 'm s-1', 'AKHS'], '209': ['Surface exchange coefficients for U and V divided by delta z', 'm s-1', 'AKMS'], '210': ['Vegetation canopy temperature', 'K', 'VEGT'], '211': ['Surface water storage', 'kg m-2', 'SSTOR'], '212': ['Liquid soil moisture content (non-frozen)', 'kg m-2', 'LSOIL'], '213': ['Open water evaporation (standing water)', 'W m-2', 'EWATR'], '214': ['Groundwater recharge', 'kg m-2', 'GWREC'], '215': ['Flood plain recharge', 'kg m-2', 'QREC'], '216': ['Roughness length for heat', 'm', 'SFCRH'], '217': ['Normalized Difference Vegetation Index', 'unknown', 'NDVI'], '218': ['Land-sea coverage (nearest neighbor) [land=1,sea=0]', 'unknown', 'LANDN'], '219': ['Asymptotic mixing length scale', 'm', 'AMIXL'], '220': ['Water vapor added by precip assimilation', 'kg m-2', 'WVINC'], '221': ['Water condensate added by precip assimilation', 'kg m-2', 'WCINC'], '222': ['Water Vapor Flux Convergance (Vertical Int)', 'kg m-2', 'WVCONV'], '223': ['Water Condensate Flux Convergance (Vertical Int)', 'kg m-2', 'WCCONV'], '224': ['Water Vapor Zonal Flux (Vertical Int)', 'kg m-2', 'WVUFLX'], '225': ['Water Vapor Meridional Flux (Vertical Int)', 'kg m-2', 'WVVFLX'], '226': ['Water Condensate Zonal Flux (Vertical Int)', 'kg m-2', 'WCUFLX'], '227': ['Water Condensate Meridional Flux (Vertical Int)', 'kg m-2', 'WCVFLX'], '228': ['Aerodynamic conductance', 'm s-1', 'ACOND'], '229': ['Canopy water evaporation', 'W m-2', 'EVCW'], '230': ['Transpiration', 'W m-2', 'TRANS'], '231': ['Seasonally Minimum Green Vegetation Fraction (over 1-year period)', '%', 'VEGMIN'], '232': ['Seasonally Maximum Green Vegetation Fraction (over 1-year period)', '%', 'VEGMAX'], '233': ['Land Fraction', 'Fraction', 'LANDFRC'], '234': ['Lake Fraction', 'Fraction', 'LAKEFRC'], '235': ['Precipitation Advected Heat Flux', 'W m-2', 'PAHFLX'], '236': ['Water Storage in Aquifer', 'kg m-2', 'WATERSA'], '237': ['Evaporation of Intercepted Water', 'kg m-2', 'EIWATER'], '238': ['Plant Transpiration', 'kg m-2', 'PLANTTR'], '239': ['Soil Surface Evaporation', 'kg m-2', 'SOILSE'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_1", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_1", "kind": "variable", "doc": "\n", "default_value": "{'0-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Cold Advisory for Newborn Livestock', 'unknown', 'CANL'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_3", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_3", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Soil Type', 'See Table 4.213', 'SOTYP'], '1': ['Upper Layer Soil Temperature', 'K', 'UPLST'], '2': ['Upper Layer Soil Moisture', 'kg m-3', 'UPLSM'], '3': ['Lower Layer Soil Moisture', 'kg m-3', 'LOWLSM'], '4': ['Bottom Layer Soil Temperature', 'K', 'BOTLST'], '5': ['Liquid Volumetric Soil Moisture(non-frozen)', 'Proportion', 'SOILL'], '6': ['Number of Soil Layers in Root Zone', 'Numeric', 'RLYRS'], '7': ['Transpiration Stress-onset (soil moisture)', 'Proportion', 'SMREF'], '8': ['Direct Evaporation Cease (soil moisture)', 'Proportion', 'SMDRY'], '9': ['Soil Porosity', 'Proportion', 'POROS'], '10': ['Liquid Volumetric Soil Moisture (Non-Frozen)', 'm3 m-3', 'LIQVSM'], '11': ['Volumetric Transpiration Stree-Onset(Soil Moisture)', 'm3 m-3', 'VOLTSO'], '12': ['Transpiration Stree-Onset(Soil Moisture)', 'kg m-3', 'TRANSO'], '13': ['Volumetric Direct Evaporation Cease(Soil Moisture)', 'm3 m-3', 'VOLDEC'], '14': ['Direct Evaporation Cease(Soil Moisture)', 'kg m-3', 'DIREC'], '15': ['Soil Porosity', 'm3 m-3', 'SOILP'], '16': ['Volumetric Saturation Of Soil Moisture', 'm3 m-3', 'VSOSM'], '17': ['Saturation Of Soil Moisture', 'kg m-3', 'SATOSM'], '18': ['Soil Temperature', 'K', 'SOILTMP'], '19': ['Soil Moisture', 'kg m-3', 'SOILMOI'], '20': ['Column-Integrated Soil Moisture', 'kg m-2', 'CISOILM'], '21': ['Soil Ice', 'kg m-3', 'SOILICE'], '22': ['Column-Integrated Soil Ice', 'kg m-2', 'CISICE'], '23': ['Liquid Water in Snow Pack', 'kg m-2', 'LWSNWP'], '24': ['Frost Index', 'kg day-1', 'FRSTINX'], '25': ['Snow Depth at Elevation Bands', 'kg m-2', 'SNWDEB'], '26': ['Soil Heat Flux', 'W m-2', 'SHFLX'], '27': ['Soil Depth', 'm', 'SOILDEP'], '28': ['Snow Temperature', 'K', 'SNOWTMP'], '29': ['Ice Temperature', 'K', 'ICETMP'], '30': ['Soil wetness index', 'Numeric', 'SWET'], '31-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Liquid Volumetric Soil Moisture (non Frozen)', 'Proportion', 'SOILL'], '193': ['Number of Soil Layers in Root Zone', 'non-dim', 'RLYRS'], '194': ['Surface Slope Type', 'Index', 'SLTYP'], '195': ['Transpiration Stress-onset (soil moisture)', 'Proportion', 'SMREF'], '196': ['Direct Evaporation Cease (soil moisture)', 'Proportion', 'SMDRY'], '197': ['Soil Porosity', 'Proportion', 'POROS'], '198': ['Direct Evaporation from Bare Soil', 'W m-2', 'EVBS'], '199': ['Land Surface Precipitation Accumulation', 'kg m-2', 'LSPA'], '200': ['Bare Soil Surface Skin temperature', 'K', 'BARET'], '201': ['Average Surface Skin Temperature', 'K', 'AVSFT'], '202': ['Effective Radiative Skin Temperature', 'K', 'RADT'], '203': ['Field Capacity', 'Fraction', 'FLDCP'], '204': ['Soil Moisture Availability In The Top Soil Layer', '%', 'MSTAV'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_4", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_4", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Fire Outlook', 'See Table 4.224', 'FIREOLK'], '1': ['Fire Outlook Due to Dry Thunderstorm', 'See Table 4.224', 'FIREODT'], '2': ['Haines Index', 'Numeric', 'HINDEX'], '3': ['Fire Burned Area', '%', 'FBAREA'], '4': ['Fosberg Index', 'Numeric', 'FOSINDX'], '5': ['Fire Weath Index (Canadian Forest Service)', 'Numeric', 'FWINX'], '6': ['Fine Fuel Moisture Code (Canadian Forest Service)', 'Numeric', 'FFMCODE'], '7': ['Duff Moisture Code (Canadian Forest Service)', 'Numeric', 'DUFMCODE'], '8': ['Drought Code (Canadian Forest Service)', 'Numeric', 'DRTCODE'], '9': ['Initial Fire Spread Index (Canadian Forest Service)', 'Numeric', 'INFSINX'], '10': ['Fire Build Up Index (Canadian Forest Service)', 'Numeric', 'FBUPINX'], '11': ['Fire Daily Severity Rating (Canadian Forest Service)', 'Numeric', 'FDSRTE'], '12': ['Keetch-Byram Drought Index', 'Numeric', 'KRIDX'], '13': ['Drought Factor (as defined by the Australian forest service)', 'Numeric', 'DRFACT'], '14': ['Rate of Spread (as defined by the Australian forest service)', 'm s-1', 'RATESPRD'], '15': ['Fire Danger index (as defined by the Australian forest service)', 'Numeric', 'FIREDIDX'], '16': ['Spread component (as defined by the US Forest Service National Fire Danger Rating System)', 'Numeric', 'SPRDCOMP'], '17': ['Burning Index (as defined by the Australian forest service)', 'Numeric', 'BURNIDX'], '18': ['Ignition Component (as defined by the Australian forest service)', '%', 'IGNCOMP'], '19': ['Energy Release Component (as defined by the Australian forest service)', 'J m-2', 'ENRELCOM'], '20': ['Burning Area', '%', 'BURNAREA'], '21': ['Burnable Area', '%', 'BURNABAREA'], '22': ['Unburnable Area', '%', 'UNBURNAREA'], '23': ['Fuel Load', 'kg m-2', 'FUELLOAD'], '24': ['Combustion Completeness', '%', 'COMBCO'], '25': ['Fuel Moisture Content', 'kg kg-1', 'FUELMC'], '26': ['Wildfire Potential (as defined by NOAA Global Systems Laboratory)', 'Numeric', 'WFIREPOT'], '27': ['Live leaf fuel load', 'kg m-2', 'LLFL'], '28': ['Live wood fuel load', 'kg m-2', 'LWFL'], '29': ['Dead leaf fuel load', 'kg m-2', 'DLFL'], '30': ['Dead wood fuel load', 'kg m-2', 'DWFL'], '31': ['Live fuel moisture content', 'kg kg-1', 'LFMC'], '32': ['Fine dead leaf moisture content', 'kg kg-1', 'FDLMC'], '33': ['Dense dead leaf moisture content', 'kg kg-1', 'DDLMC'], '34': ['Fine dead wood moisture content', 'kg kg-1', 'FDWMC'], '35': ['Dense dead wood moisture content', 'kg kg-1', 'DDWMC'], '36': ['Fire radiative power\\t(Tentatively accpeted)', 'W', 'FRADPOW'], '37-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline2.table_4_2_2_5", "modulename": "grib2io.tables.section4_discipline2", "qualname": "table_4_2_2_5", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Glacier Cover', 'Proportion', 'GLACCOV'], '1': ['Glacier Temperature', 'K', 'GLACTMP'], '2-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline20", "modulename": "grib2io.tables.section4_discipline20", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline20.table_4_2_20_0", "modulename": "grib2io.tables.section4_discipline20", "qualname": "table_4_2_20_0", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Universal Thermal Climate Index', 'K', 'UTHCIDX'], '1': ['Mean Radiant Temperature', 'K', 'MEANRTMP'], '2': ['Wet-bulb Globe Temperature (see Note)', 'K', 'WETBGTMP'], '3': ['Globe Temperature (see Note)', 'K', 'GLOBETMP'], '4': ['Humidex', 'K', 'HUMIDX'], '5': ['Effective Temperature', 'K', 'EFFTEMP'], '6': ['Normal Effective Temperature', 'K', 'NOREFTMP'], '7': ['Standard Effective Temperature', 'K', 'STDEFTMP'], '8': ['Physiological Equivalent Temperature', 'K', 'PEQUTMP'], '9-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline20.table_4_2_20_1", "modulename": "grib2io.tables.section4_discipline20", "qualname": "table_4_2_20_1", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Malaria Cases', 'Fraction', 'MALACASE'], '1': ['Malaria Circumsporozoite Protein Rate', 'Fraction', 'MACPRATE'], '2': ['Plasmodium Falciparum Entomological Inoculation Rate', 'Bites per day per person', 'PFEIRATE'], '3': ['Human Bite Rate by Anopheles Vectors', 'Bites per day per person', 'HBRATEAV'], '4': ['Malaria Immunity', 'Fraction', 'MALAIMM'], '5': ['Falciparum Parasite Rates', 'Fraction', 'FALPRATE'], '6': ['Detectable Falciparum Parasite Ratio (after day 10)', 'Fraction', 'DFPRATIO'], '7': ['Anopheles Vector to Host Ratio', 'Fraction', 'AVHRATIO'], '8': ['Anopheles Vector Number', 'Number m-2', 'AVECTNUM'], '9': ['Fraction of Malarial Vector Reproductive Habitat', 'Fraction', 'FMALVRH'], '10-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline20.table_4_2_20_2", "modulename": "grib2io.tables.section4_discipline20", "qualname": "table_4_2_20_2", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Population Density', 'Person m-2', 'POPDEN'], '1-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline209", "modulename": "grib2io.tables.section4_discipline209", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_2", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_2", "kind": "variable", "doc": "\n", "default_value": "{'0': ['CG Average Lightning Density 1-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_001min_AvgDensity'], '1': ['CG Average Lightning Density 5-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_005min_AvgDensity'], '2': ['CG Average Lightning Density 15-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_015min_AvgDensity'], '3': ['CG Average Lightning Density 30-min - NLDN', 'flashes/km^2/min', 'NLDN_CG_030min_AvgDensity'], '5': ['Lightning Probability 0-30 minutes - NLDN', '%', 'LightningProbabilityNext30minGrid'], '6': ['Lightning Probability 0-30 minutes - NLDN', '%', 'LightningProbabilityNext60minGrid'], '7': ['Rapid lightning increases and decreases ', 'non-dim', 'LightningJumpGrid'], '8': ['Rapid lightning increases and decreases over 5-minutes ', 'non-dim', 'LightningJumpGrid_Max_005min']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_3", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_3", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Azimuth Shear 0-2km AGL', '0.001/s', 'MergedAzShear0to2kmAGL'], '1': ['Azimuth Shear 3-6km AGL', '0.001/s', 'MergedAzShear3to6kmAGL'], '2': ['Rotation Track 0-2km AGL 30-min', '0.001/s', 'RotationTrack30min'], '3': ['Rotation Track 0-2km AGL 60-min', '0.001/s', 'RotationTrack60min'], '4': ['Rotation Track 0-2km AGL 120-min', '0.001/s', 'RotationTrack120min'], '5': ['Rotation Track 0-2km AGL 240-min', '0.001/s', 'RotationTrack240min'], '6': ['Rotation Track 0-2km AGL 360-min', '0.001/s', 'RotationTrack360min'], '7': ['Rotation Track 0-2km AGL 1440-min', '0.001/s', 'RotationTrack1440min'], '14': ['Rotation Track 3-6km AGL 30-min', '0.001/s', 'RotationTrackML30min'], '15': ['Rotation Track 3-6km AGL 60-min', '0.001/s', 'RotationTrackML60min'], '16': ['Rotation Track 3-6km AGL 120-min', '0.001/s', 'RotationTrackML120min'], '17': ['Rotation Track 3-6km AGL 240-min', '0.001/s', 'RotationTrackML240min'], '18': ['Rotation Track 3-6km AGL 360-min', '0.001/s', 'RotationTrackML360min'], '19': ['Rotation Track 3-6km AGL 1440-min', '0.001/s', 'RotationTrackML1440min'], '26': ['Severe Hail Index', 'index', 'SHI'], '27': ['Prob of Severe Hail', '%', 'POSH'], '28': ['Maximum Estimated Size of Hail (MESH)', 'mm', 'MESH'], '29': ['MESH Hail Swath 30-min', 'mm', 'MESHMax30min'], '30': ['MESH Hail Swath 60-min', 'mm', 'MESHMax60min'], '31': ['MESH Hail Swath 120-min', 'mm', 'MESHMax120min'], '32': ['MESH Hail Swath 240-min', 'mm', 'MESHMax240min'], '33': ['MESH Hail Swath 360-min', 'mm', 'MESHMax360min'], '34': ['MESH Hail Swath 1440-min', 'mm', 'MESHMax1440min'], '37': ['VIL Swath 120-min', 'kg/m^2', 'VIL_Max_120min'], '40': ['VIL Swath 1440-min', 'kg/m^2', 'VIL_Max_1440min'], '41': ['Vertically Integrated Liquid', 'kg/m^2', 'VIL'], '42': ['Vertically Integrated Liquid Density', 'g/m^3', 'VIL_Density'], '43': ['Vertically Integrated Ice', 'kg/m^2', 'VII'], '44': ['Echo Top - 18 dBZ', 'km MSL', 'EchoTop_18'], '45': ['Echo Top - 30 dBZ', 'km MSL', 'EchoTop_30'], '46': ['Echo Top - 50 dBZ', 'km MSL', 'EchoTop_50'], '47': ['Echo Top - 60 dBZ', 'km MSL', 'EchoTop_60'], '48': ['Thickness [50 dBZ top - (-20C)]', 'km', 'H50AboveM20C'], '49': ['Thickness [50 dBZ top - 0C]', 'km', 'H50Above0C'], '50': ['Thickness [60 dBZ top - (-20C)]', 'km', 'H60AboveM20C'], '51': ['Thickness [60 dBZ top - 0C]', 'km', 'H60Above0C'], '52': ['Isothermal Reflectivity at 0C', 'dBZ', 'Reflectivity_0C'], '53': ['Isothermal Reflectivity at -5C', 'dBZ', 'Reflectivity_-5C'], '54': ['Isothermal Reflectivity at -10C', 'dBZ', 'Reflectivity_-10C'], '55': ['Isothermal Reflectivity at -15C', 'dBZ', 'Reflectivity_-15C'], '56': ['Isothermal Reflectivity at -20C', 'dBZ', 'Reflectivity_-20C'], '57': ['ReflectivityAtLowestAltitude resampled from 1 to 5km resolution', 'dBZ', 'ReflectivityAtLowestAltitude5km'], '58': ['Non Quality Controlled Reflectivity At Lowest Altitude', 'dBZ', 'MergedReflectivityAtLowestAltitude']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_6", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_6", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Surface Precipitation Type (Convective, Stratiform, Tropical, Hail, Snow)', 'flag', 'PrecipFlag'], '1': ['Radar Precipitation Rate', 'mm/hr', 'PrecipRate'], '2': ['Radar precipitation accumulation 1-hour', 'mm', 'RadarOnly_QPE_01H'], '3': ['Radar precipitation accumulation 3-hour', 'mm', 'RadarOnly_QPE_03H'], '4': ['Radar precipitation accumulation 6-hour', 'mm', 'RadarOnly_QPE_06H'], '5': ['Radar precipitation accumulation 12-hour', 'mm', 'RadarOnly_QPE_12H'], '6': ['Radar precipitation accumulation 24-hour', 'mm', 'RadarOnly_QPE_24H'], '7': ['Radar precipitation accumulation 48-hour', 'mm', 'RadarOnly_QPE_48H'], '8': ['Radar precipitation accumulation 72-hour', 'mm', 'RadarOnly_QPE_72H'], '30': ['Multi-sensor accumulation 1-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_01H_Pass1'], '31': ['Multi-sensor accumulation 3-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_03H_Pass1'], '32': ['Multi-sensor accumulation 6-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_06H_Pass1'], '33': ['Multi-sensor accumulation 12-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_12H_Pass1'], '34': ['Multi-sensor accumulation 24-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_24H_Pass1'], '35': ['Multi-sensor accumulation 48-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_48H_Pass1'], '36': ['Multi-sensor accumulation 72-hour (1-hour latency)', 'mm', 'MultiSensor_QPE_72H_Pass1'], '37': ['Multi-sensor accumulation 1-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_01H_Pass2'], '38': ['Multi-sensor accumulation 3-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_03H_Pass2'], '39': ['Multi-sensor accumulation 6-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_06H_Pass2'], '40': ['Multi-sensor accumulation 12-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_12H_Pass2'], '41': ['Multi-sensor accumulation 24-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_24H_Pass2'], '42': ['Multi-sensor accumulation 48-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_48H_Pass2'], '43': ['Multi-sensor accumulation 72-hour (2-hour latency)', 'mm', 'MultiSensor_QPE_72H_Pass2'], '44': ['Method IDs for blended single and dual-pol derived precip rates ', 'flag', 'SyntheticPrecipRateID'], '45': ['Radar precipitation accumulation 15-minute', 'mm', 'RadarOnly_QPE_15M'], '46': ['Radar precipitation accumulation since 12Z', 'mm', 'RadarOnly_QPE_Since12Z']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_7", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_7", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Model Surface temperature', 'C', 'Model_SurfaceTemp'], '1': ['Model Surface wet bulb temperature', 'C', 'Model_WetBulbTemp'], '2': ['Probability of warm rain', '%', 'WarmRainProbability'], '3': ['Model Freezing Level Height', 'm MSL', 'Model_0degC_Height'], '4': ['Brightband Top Height', 'm AGL', 'BrightBandTopHeight'], '5': ['Brightband Bottom Height', 'm AGL', 'BrightBandBottomHeight']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_8", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_8", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Radar Quality Index', 'non-dim', 'RadarQualityIndex'], '1': ['Gauge Influence Index for 1-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_01H_Pass1'], '2': ['Gauge Influence Index for 3-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_03H_Pass1'], '3': ['Gauge Influence Index for 6-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_06H_Pass1'], '4': ['Gauge Influence Index for 12-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_12H_Pass1'], '5': ['Gauge Influence Index for 24-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_24H_Pass1'], '6': ['Gauge Influence Index for 48-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_48H_Pass1'], '7': ['Gauge Influence Index for 72-hour QPE (1-hour latency)', 'non-dim', 'GaugeInflIndex_72H_Pass1'], '8': ['Seamless Hybrid Scan Reflectivity with VPR correction', 'dBZ', 'SeamlessHSR'], '9': ['Height of Seamless Hybrid Scan Reflectivity', 'km AGL', 'SeamlessHSRHeight'], '10': ['Radar 1-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_01H'], '11': ['Radar 3-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_03H'], '12': ['Radar 6-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_06H'], '13': ['Radar 12-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_12H'], '14': ['Radar 24-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_24H'], '15': ['Radar 48-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_48H'], '16': ['Radar 72-hour QPE Accumulation Quality', 'non-dim', 'RadarAccumulationQualityIndex_72H'], '17': ['Gauge Influence Index for 1-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_01H_Pass2'], '18': ['Gauge Influence Index for 3-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_03H_Pass2'], '19': ['Gauge Influence Index for 6-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_06H_Pass2'], '20': ['Gauge Influence Index for 12-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_12H_Pass2'], '21': ['Gauge Influence Index for 24-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_24H_Pass2'], '22': ['Gauge Influence Index for 48-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_48H_Pass2'], '23': ['Gauge Influence Index for 72-hour QPE (2-hour latency)', 'non-dim', 'GaugeInflIndex_72H_Pass2']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_9", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_9", "kind": "variable", "doc": "\n", "default_value": "{'0': ['3D Reflectivty Mosaic - 33 CAPPIS (500-19000m)', 'dBZ', 'MergedReflectivityQC'], '3': ['3D RhoHV Mosaic - 33 CAPPIS (500-19000m)', 'non-dim', 'MergedRhoHV'], '4': ['3D Zdr Mosaic - 33 CAPPIS (500-19000m)', 'dB', 'MergedZdr']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_10", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_10", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Composite Reflectivity Mosaic (optimal method) resampled from 1 to 5km', 'dBZ', 'MergedReflectivityQCComposite5km'], '1': ['Height of Composite Reflectivity Mosaic (optimal method)', 'm MSL', 'HeightCompositeReflectivity'], '2': ['Low-Level Composite Reflectivity Mosaic (0-4km)', 'dBZ', 'LowLevelCompositeReflectivity'], '3': ['Height of Low-Level Composite Reflectivity Mosaic (0-4km)', 'm MSL', 'HeightLowLevelCompositeReflectivity'], '4': ['Layer Composite Reflectivity Mosaic 0-24kft (low altitude)', 'dBZ', 'LayerCompositeReflectivity_Low'], '5': ['Layer Composite Reflectivity Mosaic 24-60 kft (highest altitude)', 'dBZ', 'LayerCompositeReflectivity_High'], '6': ['Layer Composite Reflectivity Mosaic 33-60 kft (super high altitude)', 'dBZ', 'LayerCompositeReflectivity_Super'], '7': ['Composite Reflectivity Hourly Maximum', 'dBZ', 'CREF_1HR_MAX'], '9': ['Layer Composite Reflectivity Mosaic (2-4.5km) (for ANC)', 'dBZ', 'LayerCompositeReflectivity_ANC'], '10': ['Base Reflectivity Hourly Maximum', 'dBZ', 'BREF_1HR_MAX']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_11", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_11", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Base Reflectivity Mosaic (optimal method)', 'dBZ', 'MergedBaseReflectivityQC'], '1': ['Raw Composite Reflectivity Mosaic (max ref)', 'dBZ', 'MergedReflectivityComposite'], '2': ['Composite Reflectivity Mosaic (max ref)', 'dBZ', 'MergedReflectivityQComposite'], '3': ['Raw Base Reflectivity Mosaic (optimal method)', 'dBZ', 'MergedBaseReflectivity']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_12", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_12", "kind": "variable", "doc": "\n", "default_value": "{'0': ['FLASH QPE-CREST Unit Streamflow', 'm^3/s/km^2', 'FLASH_CREST_MAXUNITSTREAMFLOW'], '1': ['FLASH QPE-CREST Streamflow', 'm^3/s', 'FLASH_CREST_MAXSTREAMFLOW'], '2': ['FLASH QPE-CREST Soil Saturation', '%', 'FLASH_CREST_MAXSOILSAT'], '4': ['FLASH QPE-SAC Unit Streamflow', 'm^3/s/km^2', 'FLASH_SAC_MAXUNITSTREAMFLOW'], '5': ['FLASH QPE-SAC Streamflow', 'm^3/s', 'FLASH_SAC_MAXSTREAMFLOW'], '6': ['FLASH QPE-SAC Soil Saturation', '%', 'FLASH_SAC_MAXSOILSAT'], '14': ['FLASH QPE Average Recurrence Interval 30-min', 'years', 'FLASH_QPE_ARI30M'], '15': ['FLASH QPE Average Recurrence Interval 01H', 'years', 'FLASH_QPE_ARI01H'], '16': ['FLASH QPE Average Recurrence Interval 03H', 'years', 'FLASH_QPE_ARI03H'], '17': ['FLASH QPE Average Recurrence Interval 06H', 'years', 'FLASH_QPE_ARI06H'], '18': ['FLASH QPE Average Recurrence Interval 12H', 'years', 'FLASH_QPE_ARI12H'], '19': ['FLASH QPE Average Recurrence Interval 24H', 'years', 'FLASH_QPE_ARI24H'], '20': ['FLASH QPE Average Recurrence Interval Maximum', 'years', 'FLASH_QPE_ARIMAX'], '26': ['FLASH QPE-to-FFG Ratio 01H', 'non-dim', 'FLASH_QPE_FFG01H'], '27': ['FLASH QPE-to-FFG Ratio 03H', 'non-dim', 'FLASH_QPE_FFG03H'], '28': ['FLASH QPE-to-FFG Ratio 06H', 'non-dim', 'FLASH_QPE_FFG06H'], '29': ['FLASH QPE-to-FFG Ratio Maximum', 'non-dim', 'FLASH_QPE_FFGMAX'], '39': ['FLASH QPE-Hydrophobic Unit Streamflow', 'm^3/s/km^2', 'FLASH_HP_MAXUNITSTREAMFLOW'], '40': ['FLASH QPE-Hydrophobic Streamflow', 'm^3/s', 'FLASH_HP_MAXSTREAMFLOW']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_13", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_13", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Likelihood of convection over the next 01H', 'non-dim', 'ANC_ConvectiveLikelihood'], '1': ['01H reflectivity forecast', 'dBZ', 'ANC_FinalForecast']}"}, {"fullname": "grib2io.tables.section4_discipline209.table_4_2_209_14", "modulename": "grib2io.tables.section4_discipline209", "qualname": "table_4_2_209_14", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Level III High Resolution Enhanced Echo Top mosaic', 'kft', 'LVL3_HREET'], '1': ['Level III High Resouion VIL mosaic', 'kg/m^2', 'LVL3_HighResVIL']}"}, {"fullname": "grib2io.tables.section4_discipline3", "modulename": "grib2io.tables.section4_discipline3", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_0", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_0", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Scaled Radiance', 'Numeric', 'SRAD'], '1': ['Scaled Albedo', 'Numeric', 'SALBEDO'], '2': ['Scaled Brightness Temperature', 'Numeric', 'SBTMP'], '3': ['Scaled Precipitable Water', 'Numeric', 'SPWAT'], '4': ['Scaled Lifted Index', 'Numeric', 'SLFTI'], '5': ['Scaled Cloud Top Pressure', 'Numeric', 'SCTPRES'], '6': ['Scaled Skin Temperature', 'Numeric', 'SSTMP'], '7': ['Cloud Mask', 'See Table 4.217', 'CLOUDM'], '8': ['Pixel scene type', 'See Table 4.218', 'PIXST'], '9': ['Fire Detection Indicator', 'See Table 4.223', 'FIREDI'], '10-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_1", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_1", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Estimated Precipitation', 'kg m-2', 'ESTP'], '1': ['Instantaneous Rain Rate', 'kg m-2 s-1', 'IRRATE'], '2': ['Cloud Top Height', 'm', 'CTOPH'], '3': ['Cloud Top Height Quality Indicator', 'Code table 4.219', 'CTOPHQI'], '4': ['Estimated u-Component of Wind', 'm s-1', 'ESTUGRD'], '5': ['Estimated v-Component of Wind', 'm s-1', 'ESTVGRD'], '6': ['Number Of Pixels Used', 'Numeric', 'NPIXU'], '7': ['Solar Zenith Angle', '\u00b0', 'SOLZA'], '8': ['Relative Azimuth Angle', '\u00b0', 'RAZA'], '9': ['Reflectance in 0.6 Micron Channel', '%', 'RFL06'], '10': ['Reflectance in 0.8 Micron Channel', '%', 'RFL08'], '11': ['Reflectance in 1.6 Micron Channel', '%', 'RFL16'], '12': ['Reflectance in 3.9 Micron Channel', '%', 'RFL39'], '13': ['Atmospheric Divergence', 's-1', 'ATMDIV'], '14': ['Cloudy Brightness Temperature', 'K', 'CBTMP'], '15': ['Clear Sky Brightness Temperature', 'K', 'CSBTMP'], '16': ['Cloudy Radiance (with respect to wave number)', 'W m-1 sr-1', 'CLDRAD'], '17': ['Clear Sky Radiance (with respect to wave number)', 'W m-1 sr-1', 'CSKYRAD'], '18': ['Reserved', 'unknown', 'unknown'], '19': ['Wind Speed', 'm s-1', 'WINDS'], '20': ['Aerosol Optical Thickness at 0.635 \u00b5m', 'unknown', 'AOT06'], '21': ['Aerosol Optical Thickness at 0.810 \u00b5m', 'unknown', 'AOT08'], '22': ['Aerosol Optical Thickness at 1.640 \u00b5m', 'unknown', 'AOT16'], '23': ['Angstrom Coefficient', 'unknown', 'ANGCOE'], '24-26': ['Reserved', 'unknown', 'unknown'], '27': ['Bidirectional Reflecance Factor', 'Numeric', 'BRFLF'], '28': ['Brightness Temperature', 'K', 'SPBRT'], '29': ['Scaled Radiance', 'Numeric', 'SCRAD'], '30': ['Reflectance in 0.4 Micron Channel', '%', 'RFL04'], '31': ['Cloudy reflectance', '%', 'CLDREF'], '32': ['Clear reflectance', '%', 'CLRREF'], '33-97': ['Reserved', 'unknown', 'unknown'], '98': ['Correlation coefficient between MPE rain rates for the co-located IR data and the microwave data rain rates', 'Numeric', 'CCMPEMRR'], '99': ['Standard deviation between MPE rain rates for the co-located IR data and the microwave data rain rates', 'Numeric', 'SDMPEMRR'], '100-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '192': ['Scatterometer Estimated U Wind Component', 'm s-1', 'USCT'], '193': ['Scatterometer Estimated V Wind Component', 'm s-1', 'VSCT'], '194': ['Scatterometer Wind Quality', 'unknown', 'SWQI'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_2", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_2", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Clear Sky Probability', '%', 'CSKPROB'], '1': ['Cloud Top Temperature', 'K', 'CTOPTMP'], '2': ['Cloud Top Pressure', 'Pa', 'CTOPRES'], '3': ['Cloud Type', 'See Table 4.218', 'CLDTYPE'], '4': ['Cloud Phase', 'See Table 4.218', 'CLDPHAS'], '5': ['Cloud Optical Depth', 'Numeric', 'CLDODEP'], '6': ['Cloud Particle Effective Radius', 'm', 'CLDPER'], '7': ['Cloud Liquid Water Path', 'kg m-2', 'CLDLWP'], '8': ['Cloud Ice Water Path', 'kg m-2', 'CLDIWP'], '9': ['Cloud Albedo', 'Numeric', 'CLDALB'], '10': ['Cloud Emissivity', 'Numeric', 'CLDEMISS'], '11': ['Effective Absorption Optical Depth Ratio', 'Numeric', 'EAODR'], '12-29': ['Reserved', 'unknown', 'unknown'], '30': ['Measurement cost', 'Numeric', 'MEACST'], '41-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_3", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_3", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Probability of Encountering Marginal Visual Flight Rules Conditions', '%', 'PBMVFRC'], '1': ['Probability of Encountering Low Instrument Flight Rules Conditions', '%', 'PBLIFRC'], '2': ['Probability of Encountering Instrument Flight Rules Conditions', '%', 'PBINFRC'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_4", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_4", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Volcanic Ash Probability', '%', 'VOLAPROB'], '1': ['Volcanic Ash Cloud Top Temperature', 'K', 'VOLACDTT'], '2': ['Volcanic Ash Cloud Top Pressure', 'Pa', 'VOLACDTP'], '3': ['Volcanic Ash Cloud Top Height', 'm', 'VOLACDTH'], '4': ['Volcanic Ash Cloud Emissity', 'Numeric', 'VOLACDEM'], '5': ['Volcanic Ash Effective Absorption Depth Ratio', 'Numeric', 'VOLAEADR'], '6': ['Volcanic Ash Cloud Optical Depth', 'Numeric', 'VOLACDOD'], '7': ['Volcanic Ash Column Density', 'kg m-2', 'VOLACDEN'], '8': ['Volcanic Ash Particle Effective Radius', 'm', 'VOLAPER'], '9-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_5", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_5", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Interface Sea-Surface Temperature', 'K', 'ISSTMP'], '1': ['Skin Sea-Surface Temperature', 'K', 'SKSSTMP'], '2': ['Sub-Skin Sea-Surface Temperature', 'K', 'SSKSSTMP'], '3': ['Foundation Sea-Surface Temperature', 'K', 'FDNSSTMP'], '4': ['Estimated bias between Sea-Surface Temperature and Standard', 'K', 'EBSSTSTD'], '5': ['Estimated bias Standard Deviation between Sea-Surface Temperature and Standard', 'K', 'EBSDSSTS'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_6", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_6", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Global Solar Irradiance', 'W m-2', 'GSOLIRR'], '1': ['Global Solar Exposure', 'J m-2', 'GSOLEXP'], '2': ['Direct Solar Irradiance', 'W m-2', 'DIRSOLIR'], '3': ['Direct Solar Exposure', 'J m-2', 'DIRSOLEX'], '4': ['Diffuse Solar Irradiance', 'W m-2', 'DIFSOLIR'], '5': ['Diffuse Solar Exposure', 'J m-2', 'DIFSOLEX'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline3.table_4_2_3_192", "modulename": "grib2io.tables.section4_discipline3", "qualname": "table_4_2_3_192", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Simulated Brightness Temperature for GOES 12, Channel 2', 'K', 'SBT122'], '1': ['Simulated Brightness Temperature for GOES 12, Channel 3', 'K', 'SBT123'], '2': ['Simulated Brightness Temperature for GOES 12, Channel 4', 'K', 'SBT124'], '3': ['Simulated Brightness Temperature for GOES 12, Channel 6', 'K', 'SBT126'], '4': ['Simulated Brightness Counts for GOES 12, Channel 3', 'Byte', 'SBC123'], '5': ['Simulated Brightness Counts for GOES 12, Channel 4', 'Byte', 'SBC124'], '6': ['Simulated Brightness Temperature for GOES 11, Channel 2', 'K', 'SBT112'], '7': ['Simulated Brightness Temperature for GOES 11, Channel 3', 'K', 'SBT113'], '8': ['Simulated Brightness Temperature for GOES 11, Channel 4', 'K', 'SBT114'], '9': ['Simulated Brightness Temperature for GOES 11, Channel 5', 'K', 'SBT115'], '10': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 9', 'K', 'AMSRE9'], '11': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 10', 'K', 'AMSRE10'], '12': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 11', 'K', 'AMSRE11'], '13': ['Simulated Brightness Temperature for AMSRE on Aqua, Channel 12', 'K', 'AMSRE12'], '14': ['Simulated Reflectance Factor for ABI GOES-16, Band-1', 'unknown', 'SRFA161'], '15': ['Simulated Reflectance Factor for ABI GOES-16, Band-2', 'unknown', 'SRFA162'], '16': ['Simulated Reflectance Factor for ABI GOES-16, Band-3', 'unknown', 'SRFA163'], '17': ['Simulated Reflectance Factor for ABI GOES-16, Band-4', 'unknown', 'SRFA164'], '18': ['Simulated Reflectance Factor for ABI GOES-16, Band-5', 'unknown', 'SRFA165'], '19': ['Simulated Reflectance Factor for ABI GOES-16, Band-6', 'unknown', 'SRFA166'], '20': ['Simulated Brightness Temperature for ABI GOES-16, Band-7', 'K', 'SBTA167'], '21': ['Simulated Brightness Temperature for ABI GOES-16, Band-8', 'K', 'SBTA168'], '22': ['Simulated Brightness Temperature for ABI GOES-16, Band-9', 'K', 'SBTA169'], '23': ['Simulated Brightness Temperature for ABI GOES-16, Band-10', 'K', 'SBTA1610'], '24': ['Simulated Brightness Temperature for ABI GOES-16, Band-11', 'K', 'SBTA1611'], '25': ['Simulated Brightness Temperature for ABI GOES-16, Band-12', 'K', 'SBTA1612'], '26': ['Simulated Brightness Temperature for ABI GOES-16, Band-13', 'K', 'SBTA1613'], '27': ['Simulated Brightness Temperature for ABI GOES-16, Band-14', 'K', 'SBTA1614'], '28': ['Simulated Brightness Temperature for ABI GOES-16, Band-15', 'K', 'SBTA1615'], '29': ['Simulated Brightness Temperature for ABI GOES-16, Band-16', 'K', 'SBTA1616'], '30': ['Simulated Reflectance Factor for ABI GOES-17, Band-1', 'unknown', 'SRFA171'], '31': ['Simulated Reflectance Factor for ABI GOES-17, Band-2', 'unknown', 'SRFA172'], '32': ['Simulated Reflectance Factor for ABI GOES-17, Band-3', 'unknown', 'SRFA173'], '33': ['Simulated Reflectance Factor for ABI GOES-17, Band-4', 'unknown', 'SRFA174'], '34': ['Simulated Reflectance Factor for ABI GOES-17, Band-5', 'unknown', 'SRFA175'], '35': ['Simulated Reflectance Factor for ABI GOES-17, Band-6', 'unknown', 'SRFA176'], '36': ['Simulated Brightness Temperature for ABI GOES-17, Band-7', 'K', 'SBTA177'], '37': ['Simulated Brightness Temperature for ABI GOES-17, Band-8', 'K', 'SBTA178'], '38': ['Simulated Brightness Temperature for ABI GOES-17, Band-9', 'K', 'SBTA179'], '39': ['Simulated Brightness Temperature for ABI GOES-17, Band-10', 'K', 'SBTA1710'], '40': ['Simulated Brightness Temperature for ABI GOES-17, Band-11', 'K', 'SBTA1711'], '41': ['Simulated Brightness Temperature for ABI GOES-17, Band-12', 'K', 'SBTA1712'], '42': ['Simulated Brightness Temperature for ABI GOES-17, Band-13', 'K', 'SBTA1713'], '43': ['Simulated Brightness Temperature for ABI GOES-17, Band-14', 'K', 'SBTA1714'], '44': ['Simulated Brightness Temperature for ABI GOES-17, Band-15', 'K', 'SBTA1715'], '45': ['Simulated Brightness Temperature for ABI GOES-17, Band-16', 'K', 'SBTA1716'], '46': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-1', 'unknown', 'SRFAGR1'], '47': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-2', 'unknown', 'SRFAGR2'], '48': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-3', 'unknown', 'SRFAGR3'], '49': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-4', 'unknown', 'SRFAGR4'], '50': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-5', 'unknown', 'SRFAGR5'], '51': ['Simulated Reflectance Factor for nadir ABI GOES-R, Band-6', 'unknown', 'SRFAGR6'], '52': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-7', 'unknown', 'SBTAGR7'], '53': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-8', 'unknown', 'SBTAGR8'], '54': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-9', 'unknown', 'SBTAGR9'], '55': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-10', 'unknown', 'SBTAGR10'], '56': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-11', 'unknown', 'SBTAGR11'], '57': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-12', 'unknown', 'SBTAGR12'], '58': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-13', 'unknown', 'SBTAGR13'], '59': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-14', 'unknown', 'SBTAGR14'], '60': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-15', 'unknown', 'SBTAGR15'], '61': ['Simulated Brightness Temperature for nadir ABI GOES-R, Band-16', 'unknown', 'SBTAGR16'], '62': ['Simulated Brightness Temperature for SSMIS-F17, Channel 15', 'K', 'SSMS1715'], '63': ['Simulated Brightness Temperature for SSMIS-F17, Channel 16', 'K', 'SSMS1716'], '64': ['Simulated Brightness Temperature for SSMIS-F17, Channel 17', 'K', 'SSMS1717'], '65': ['Simulated Brightness Temperature for SSMIS-F17, Channel 18', 'K', 'SSMS1718'], '66': ['Simulated Brightness Temperature for Himawari-8, Band-7', 'K', 'SBTAHI7'], '67': ['Simulated Brightness Temperature for Himawari-8, Band-8', 'K', 'SBTAHI8'], '68': ['Simulated Brightness Temperature for Himawari-8, Band-9', 'K', 'SBTAHI9'], '69': ['Simulated Brightness Temperature for Himawari-8, Band-10', 'K', 'SBTAHI10'], '70': ['Simulated Brightness Temperature for Himawari-8, Band-11', 'K', 'SBTAHI11'], '71': ['Simulated Brightness Temperature for Himawari-8, Band-12', 'K', 'SBTAHI12'], '72': ['Simulated Brightness Temperature for Himawari-8, Band-13', 'K', 'SBTAHI13'], '73': ['Simulated Brightness Temperature for Himawari-8, Band-14', 'K', 'SBTAHI14'], '74': ['Simulated Brightness Temperature for Himawari-8, Band-15', 'K', 'SBTAHI15'], '75': ['Simulated Brightness Temperature for Himawari-8, Band-16', 'K', 'SBTAHI16'], '76': ['Simulated Brightness Temperature for ABI GOES-18, Band-7', 'K', 'SBTA187'], '77': ['Simulated Brightness Temperature for ABI GOES-18, Band-8', 'K', 'SBTA188'], '78': ['Simulated Brightness Temperature for ABI GOES-18, Band-9', 'K', 'SBTA189'], '79': ['Simulated Brightness Temperature for ABI GOES-18, Band-10', 'K', 'SBTA1810'], '80': ['Simulated Brightness Temperature for ABI GOES-18, Band-11', 'K', 'SBTA1811'], '81': ['Simulated Brightness Temperature for ABI GOES-18, Band-12', 'K', 'SBTA1812'], '82': ['Simulated Brightness Temperature for ABI GOES-18, Band-13', 'K', 'SBTA1813'], '83': ['Simulated Brightness Temperature for ABI GOES-18, Band-14', 'K', 'SBTA1814'], '84': ['Simulated Brightness Temperature for ABI GOES-18, Band-15', 'K', 'SBTA1815'], '85': ['Simulated Brightness Temperature for ABI GOES-18, Band-16', 'K', 'SBTA1816'], '86-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4", "modulename": "grib2io.tables.section4_discipline4", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_0", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_0", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Temperature', 'K', 'TMPSWP'], '1': ['Electron Temperature', 'K', 'ELECTMP'], '2': ['Proton Temperature', 'K', 'PROTTMP'], '3': ['Ion Temperature', 'K', 'IONTMP'], '4': ['Parallel Temperature', 'K', 'PRATMP'], '5': ['Perpendicular Temperature', 'K', 'PRPTMP'], '6-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_1", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_1", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Velocity Magnitude (Speed)', 'm s-1', 'SPEED'], '1': ['1st Vector Component of Velocity (Coordinate system dependent)', 'm s-1', 'VEL1'], '2': ['2nd Vector Component of Velocity (Coordinate system dependent)', 'm s-1', 'VEL2'], '3': ['3rd Vector Component of Velocity (Coordinate system dependent)', 'm s-1', 'VEL3'], '4-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_2", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_2", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Particle Number Density', 'm-3', 'PLSMDEN'], '1': ['Electron Density', 'm-3', 'ELCDEN'], '2': ['Proton Density', 'm-3', 'PROTDEN'], '3': ['Ion Density', 'm-3', 'IONDEN'], '4': ['Vertical Total Electron Content', 'TECU', 'VTEC'], '5': ['HF Absorption Frequency', 'Hz', 'ABSFRQ'], '6': ['HF Absorption', 'dB', 'ABSRB'], '7': ['Spread F', 'm', 'SPRDF'], '8': ['hF', 'm', 'HPRIMF'], '9': ['Critical Frequency', 'Hz', 'CRTFRQ'], '10': ['Maximal Usable Frequency (MUF)', 'Hz', 'MAXUFZ'], '11': ['Peak Height (hm)', 'm', 'PEAKH'], '12': ['Peak Density', 'm-3', 'PEAKDEN'], '13': ['Equivalent Slab Thickness (tau)', 'km', 'EQSLABT'], '14-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_3", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_3", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Magnetic Field Magnitude', 'T', 'BTOT'], '1': ['1st Vector Component of Magnetic Field', 'T', 'BVEC1'], '2': ['2nd Vector Component of Magnetic Field', 'T', 'BVEC2'], '3': ['3rd Vector Component of Magnetic Field', 'T', 'BVEC3'], '4': ['Electric Field Magnitude', 'V m-1', 'ETOT'], '5': ['1st Vector Component of Electric Field', 'V m-1', 'EVEC1'], '6': ['2nd Vector Component of Electric Field', 'V m-1', 'EVEC2'], '7': ['3rd Vector Component of Electric Field', 'V m-1', 'EVEC3'], '8-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_4", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_4", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Proton Flux (Differential)', '(m2 s sr eV)-1', 'DIFPFLUX'], '1': ['Proton Flux (Integral)', '(m2 s sr)-1', 'INTPFLUX'], '2': ['Electron Flux (Differential)', '(m2 s sr eV)-1', 'DIFEFLUX'], '3': ['Electron Flux (Integral)', '(m2 s sr)-1', 'INTEFLUX'], '4': ['Heavy Ion Flux (Differential)', '(m2 s sr eV / nuc)-1', 'DIFIFLUX'], '5': ['Heavy Ion Flux (iIntegral)', '(m2 s sr)-1', 'INTIFLUX'], '6': ['Cosmic Ray Neutron Flux', 'h-1', 'NTRNFLUX'], '7-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_5", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_5", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Amplitude', 'rad', 'AMPL'], '1': ['Phase', 'rad', 'PHASE'], '2': ['Frequency', 'Hz', 'FREQ'], '3': ['Wavelength', 'm', 'WAVELGTH'], '4-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_6", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_6", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Integrated Solar Irradiance', 'W m-2', 'TSI'], '1': ['Solar X-ray Flux (XRS Long)', 'W m-2', 'XLONG'], '2': ['Solar X-ray Flux (XRS Short)', 'W m-2', 'XSHRT'], '3': ['Solar EUV Irradiance', 'W m-2', 'EUVIRR'], '4': ['Solar Spectral Irradiance', 'W m-2 nm-1', 'SPECIRR'], '5': ['F10.7', 'W m-2 Hz-1', 'F107'], '6': ['Solar Radio Emissions', 'W m-2 Hz-1', 'SOLRF'], '7-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_7", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_7", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Limb Intensity', 'J m-2 s-1', 'LMBINT'], '1': ['Disk Intensity', 'J m-2 s-1', 'DSKINT'], '2': ['Disk Intensity Day', 'J m-2 s-1', 'DSKDAY'], '3': ['Disk Intensity Night', 'J m-2 s-1', 'DSKNGT'], '4-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_8", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_8", "kind": "variable", "doc": "\n", "default_value": "{'0': ['X-Ray Radiance', 'W sr-1 m-2', 'XRAYRAD'], '1': ['EUV Radiance', 'W sr-1 m-2', 'EUVRAD'], '2': ['H-Alpha Radiance', 'W sr-1 m-2', 'HARAD'], '3': ['White Light Radiance', 'W sr-1 m-2', 'WHTRAD'], '4': ['CaII-K Radiance', 'W sr-1 m-2', 'CAIIRAD'], '5': ['White Light Coronagraph Radiance', 'W sr-1 m-2', 'WHTCOR'], '6': ['Heliospheric Radiance', 'W sr-1 m-2', 'HELCOR'], '7': ['Thematic Mask', 'Numeric', 'MASK'], '8': ['Solar Induced Chlorophyll Fluorscence', 'W sr-1 m-2', 'SICFL'], '9-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section4_discipline4.table_4_2_4_9", "modulename": "grib2io.tables.section4_discipline4", "qualname": "table_4_2_4_9", "kind": "variable", "doc": "\n", "default_value": "{'0': ['Pedersen Conductivity', 'S m-1', 'SIGPED'], '1': ['Hall Conductivity', 'S m-1', 'SIGHAL'], '2': ['Parallel Conductivity', 'S m-1', 'SIGPAR'], '3-191': ['Reserved', 'unknown', 'unknown'], '192-254': ['Reserved for Local Use', 'unknown', 'unknown'], '255': ['Missing', 'unknown', 'unknown']}"}, {"fullname": "grib2io.tables.section5", "modulename": "grib2io.tables.section5", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section5.table_5_0", "modulename": "grib2io.tables.section5", "qualname": "table_5_0", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Grid Point Data - Simple Packing (see Template 5.0)', '1': 'Matrix Value at Grid Point - Simple Packing (see Template 5.1)', '2': 'Grid Point Data - Complex Packing (see Template 5.2)', '3': 'Grid Point Data - Complex Packing and Spatial Differencing (see Template 5.3)', '4': 'Grid Point Data - IEEE Floating Point Data (see Template 5.4)', '5-39': 'Reserved', '40': 'Grid point data - JPEG 2000 code stream format (see Template 5.40)', '41': 'Grid point data - Portable Network Graphics (PNG) (see Template 5.41)', '42': 'Grid point data - CCSDS recommended lossless compression (see Template 5.42)', '43-49': 'Reserved', '50': 'Spectral Data - Simple Packing (see Template 5.50)', '51': 'Spectral Data - Complex Packing (see Template 5.51)', '52': 'Reserved', '53': 'Spectral data for limited area models - complex packing (see Template 5.53)', '54-60': 'Reserved', '61': 'Grid Point Data - Simple Packing With Logarithm Pre-processing (see Template 5.61)', '62-199': 'Reserved', '200': 'Run Length Packing With Level Values (see Template 5.200)', '201-49151': 'Reserved', '49152-65534': 'Reserved for Local Use', '65535': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_1", "modulename": "grib2io.tables.section5", "qualname": "table_5_1", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Floating Point', '1': 'Integer', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_2", "modulename": "grib2io.tables.section5", "qualname": "table_5_2", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Explicit Coordinate Values Set', '1': 'Linear Coordinates f(1) = C1 f(n) = f(n-1) + C2', '2-10': 'Reserved', '11': 'Geometric Coordinates f(1) = C1 f(n) = C2 x f(n-1)', '12-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_3", "modulename": "grib2io.tables.section5", "qualname": "table_5_3", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'Direction Degrees True', '2': 'Frequency (s-1)', '3': 'Radial Number (2pi/lamda) (m-1)', '4-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_4", "modulename": "grib2io.tables.section5", "qualname": "table_5_4", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Row by Row Splitting', '1': 'General Group Splitting', '2-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_5", "modulename": "grib2io.tables.section5", "qualname": "table_5_5", "kind": "variable", "doc": "\n", "default_value": "{'0': 'No explicit missing values included within the data values', '1': 'Primary missing values included within the data values', '2': 'Primary and secondary missing values included within the data values', '3-191': 'Reserved', '192-254': 'Reserved for Local Use'}"}, {"fullname": "grib2io.tables.section5.table_5_6", "modulename": "grib2io.tables.section5", "qualname": "table_5_6", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'First-Order Spatial Differencing', '2': 'Second-Order Spatial Differencing', '3-191': 'Reserved', '192-254': 'Reserved for Local Use', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_7", "modulename": "grib2io.tables.section5", "qualname": "table_5_7", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Reserved', '1': 'IEEE 32-bit (I=4 in Section 7)', '2': 'IEEE 64-bit (I=8 in Section 7)', '3': 'IEEE 128-bit (I=16 in Section 7)', '4-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section5.table_5_40", "modulename": "grib2io.tables.section5", "qualname": "table_5_40", "kind": "variable", "doc": "\n", "default_value": "{'0': 'Lossless', '1': 'Lossy', '2-254': 'Reserved', '255': 'Missing'}"}, {"fullname": "grib2io.tables.section6", "modulename": "grib2io.tables.section6", "kind": "module", "doc": "\n"}, {"fullname": "grib2io.tables.section6.table_6_0", "modulename": "grib2io.tables.section6", "qualname": "table_6_0", "kind": "variable", "doc": "\n", "default_value": "{'0': 'A bit map applies to this product and is specified in this section.', '1-253': 'A bit map pre-determined by the orginating/generating center applies to this product and is not specified in this section.', '254': 'A bit map previously defined in the same GRIB2 message applies to this product.', '255': 'A bit map does not apply to this product.'}"}, {"fullname": "grib2io.templates", "modulename": "grib2io.templates", "kind": "module", "doc": "GRIB2 section templates classes and metadata descriptor classes
\n"}, {"fullname": "grib2io.templates.Grib2Metadata", "modulename": "grib2io.templates", "qualname": "Grib2Metadata", "kind": "class", "doc": "Class to hold GRIB2 metadata both as numeric code value as stored in\nGRIB2 and its plain langauge definition.
\n\nAttributes
\n\n\n\n
value : int
\n GRIB2 metadata integer code value.\n\n
table : str, optional
\n GRIB2 table to lookup thevalue
. Default is None.\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": "
definition : str
\n Plain language description of numeric metadata.Provide the table related to this metadata.
\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "grib2io.templates.IndicatorSection", "modulename": "grib2io.templates", "qualname": "IndicatorSection", "kind": "class", "doc": "\n"}, {"fullname": "grib2io.templates.Discipline", "modulename": "grib2io.templates", "qualname": "Discipline", "kind": "class", "doc": "\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": "\n"}, {"fullname": "grib2io.templates.OriginatingSubCenter", "modulename": "grib2io.templates", "qualname": "OriginatingSubCenter", "kind": "class", "doc": "\n"}, {"fullname": "grib2io.templates.MasterTableInfo", "modulename": "grib2io.templates", "qualname": "MasterTableInfo", "kind": "class", "doc": "\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
\n"}, {"fullname": "grib2io.templates.ProductionStatus", "modulename": "grib2io.templates", "qualname": "ProductionStatus", "kind": "class", "doc": "datetime.datetime
object.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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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": "\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\nParameters
\n\n\n\n
gdtn : int
\n Grid definition template number.Returns
\n\nGrid definition template class object (not an instance).
\n", "signature": "(gdtn):", "funcdef": "def"}, {"fullname": "grib2io.templates.ProductDefinitionTemplateNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplateNumber", "kind": "class", "doc": "Product Definition Template Number
\n"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate", "kind": "class", "doc": "Product Definition Template
\n"}, {"fullname": "grib2io.templates.ParameterCategory", "modulename": "grib2io.templates", "qualname": "ParameterCategory", "kind": "class", "doc": "\n"}, {"fullname": "grib2io.templates.ParameterNumber", "modulename": "grib2io.templates", "qualname": "ParameterNumber", "kind": "class", "doc": "\n"}, {"fullname": "grib2io.templates.VarInfo", "modulename": "grib2io.templates", "qualname": "VarInfo", "kind": "class", "doc": "Variable Information. These are the metadata returned for a specific variable according\nto discipline, parameter category, and parameter number.
\n"}, {"fullname": "grib2io.templates.FullName", "modulename": "grib2io.templates", "qualname": "FullName", "kind": "class", "doc": "Full name of the Variable
\n"}, {"fullname": "grib2io.templates.Units", "modulename": "grib2io.templates", "qualname": "Units", "kind": "class", "doc": "Units of the Variable
\n"}, {"fullname": "grib2io.templates.ShortName", "modulename": "grib2io.templates", "qualname": "ShortName", "kind": "class", "doc": "Short name of the variable (i.e. the variable abbreviation)
\n"}, {"fullname": "grib2io.templates.TypeOfGeneratingProcess", "modulename": "grib2io.templates", "qualname": "TypeOfGeneratingProcess", "kind": "class", "doc": "\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": "\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": "\n"}, {"fullname": "grib2io.templates.ValueOfForecastTime", "modulename": "grib2io.templates", "qualname": "ValueOfForecastTime", "kind": "class", "doc": "Value of forecast time in units defined by
\n"}, {"fullname": "grib2io.templates.LeadTime", "modulename": "grib2io.templates", "qualname": "LeadTime", "kind": "class", "doc": "UnitofForecastTime
Forecast Lead Time. NOTE: This is a
\n"}, {"fullname": "grib2io.templates.FixedSfc1Info", "modulename": "grib2io.templates", "qualname": "FixedSfc1Info", "kind": "class", "doc": "datetime.timedelta
object.Information of the first fixed surface via table 4.5
\n"}, {"fullname": "grib2io.templates.FixedSfc2Info", "modulename": "grib2io.templates", "qualname": "FixedSfc2Info", "kind": "class", "doc": "Information of the seconds fixed surface via table 4.5
\n"}, {"fullname": "grib2io.templates.TypeOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "TypeOfFirstFixedSurface", "kind": "class", "doc": "\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": "\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": "\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": "\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": "\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
\n"}, {"fullname": "grib2io.templates.ValidDate", "modulename": "grib2io.templates", "qualname": "ValidDate", "kind": "class", "doc": "datetime.timedelta
object.Valid Date of the forecast. NOTE: This is a
\n"}, {"fullname": "grib2io.templates.NumberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "NumberOfTimeRanges", "kind": "class", "doc": "datetime.datetime
object.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": "\n"}, {"fullname": "grib2io.templates.TypeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "TypeOfTimeIncrementOfStatisticalProcess", "kind": "class", "doc": "Type of Time Increment of Statistical Process
\n"}, {"fullname": "grib2io.templates.UnitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "UnitOfTimeRangeOfStatisticalProcess", "kind": "class", "doc": "Unit of Time Range of Statistical Process
\n"}, {"fullname": "grib2io.templates.TimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "TimeRangeOfStatisticalProcess", "kind": "class", "doc": "Time Range of Statistical Process
\n"}, {"fullname": "grib2io.templates.UnitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "UnitOfTimeRangeOfSuccessiveFields", "kind": "class", "doc": "Unit of Time Range of Successive Fields
\n"}, {"fullname": "grib2io.templates.TimeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "TimeIncrementOfSuccessiveFields", "kind": "class", "doc": "Time Increment of Successive Fields
\n"}, {"fullname": "grib2io.templates.TypeOfStatisticalProcessing", "modulename": "grib2io.templates", "qualname": "TypeOfStatisticalProcessing", "kind": "class", "doc": "Type of Statistical Processing
\n"}, {"fullname": "grib2io.templates.NumberOfDataPointsForSpatialProcessing", "modulename": "grib2io.templates", "qualname": "NumberOfDataPointsForSpatialProcessing", "kind": "class", "doc": "Number of Data Points for Spatial Processing
\n"}, {"fullname": "grib2io.templates.TypeOfAerosol", "modulename": "grib2io.templates", "qualname": "TypeOfAerosol", "kind": "class", "doc": "\n"}, {"fullname": "grib2io.templates.TypeOfIntervalForAerosolSize", "modulename": "grib2io.templates", "qualname": "TypeOfIntervalForAerosolSize", "kind": "class", "doc": "Type of Interval for Aerosol Size
\n"}, {"fullname": "grib2io.templates.ScaleFactorOfFirstSize", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfFirstSize", "kind": "class", "doc": "Scale Factor of First Size
\n"}, {"fullname": "grib2io.templates.ScaledValueOfFirstSize", "modulename": "grib2io.templates", "qualname": "ScaledValueOfFirstSize", "kind": "class", "doc": "Scaled Value of First Size
\n"}, {"fullname": "grib2io.templates.ScaleFactorOfSecondSize", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfSecondSize", "kind": "class", "doc": "Scale Factor of Second Size
\n"}, {"fullname": "grib2io.templates.ScaledValueOfSecondSize", "modulename": "grib2io.templates", "qualname": "ScaledValueOfSecondSize", "kind": "class", "doc": "Scaled Value of Second Size
\n"}, {"fullname": "grib2io.templates.TypeOfIntervalForAerosolWavelength", "modulename": "grib2io.templates", "qualname": "TypeOfIntervalForAerosolWavelength", "kind": "class", "doc": "Type of Interval for Aerosol Wavelength
\n"}, {"fullname": "grib2io.templates.ScaleFactorOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfFirstWavelength", "kind": "class", "doc": "Scale Factor of First Wavelength
\n"}, {"fullname": "grib2io.templates.ScaledValueOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ScaledValueOfFirstWavelength", "kind": "class", "doc": "Scaled Value of First Wavelength
\n"}, {"fullname": "grib2io.templates.ScaleFactorOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ScaleFactorOfSecondWavelength", "kind": "class", "doc": "Scale Factor of Second Wavelength
\n"}, {"fullname": "grib2io.templates.ScaledValueOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ScaledValueOfSecondWavelength", "kind": "class", "doc": "Scaled Value of Second Wavelength
\n"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0", "kind": "class", "doc": "\n"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.parameterCategory", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.parameterCategory", "kind": "variable", "doc": "\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.parameterNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.parameterNumber", "kind": "variable", "doc": "\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.typeOfGeneratingProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.typeOfGeneratingProcess", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.generatingProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.generatingProcess", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.backgroundGeneratingProcessIdentifier", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.backgroundGeneratingProcessIdentifier", "kind": "variable", "doc": "Background Generating Process Identifier
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.hoursAfterDataCutoff", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.hoursAfterDataCutoff", "kind": "variable", "doc": "Hours of observational data cutoff after reference time
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.minutesAfterDataCutoff", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.minutesAfterDataCutoff", "kind": "variable", "doc": "Minutes of observational data cutoff after reference time
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.unitOfForecastTime", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.unitOfForecastTime", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.valueOfForecastTime", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.valueOfForecastTime", "kind": "variable", "doc": "Value of forecast time in units defined by
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.typeOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.typeOfFirstFixedSurface", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaleFactorOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaleFactorOfFirstFixedSurface", "kind": "variable", "doc": "UnitofForecastTime
Scale Factor of First Fixed Surface
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaledValueOfFirstFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaledValueOfFirstFixedSurface", "kind": "variable", "doc": "Scaled Value Of First Fixed Surface
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.typeOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.typeOfSecondFixedSurface", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaleFactorOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaleFactorOfSecondFixedSurface", "kind": "variable", "doc": "Scale Factor of Second Fixed Surface
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate0.scaledValueOfSecondFixedSurface", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate0.scaledValueOfSecondFixedSurface", "kind": "variable", "doc": "Scaled Value Of Second Fixed Surface
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate1", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate1", "kind": "class", "doc": "\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate1.typeOfEnsembleForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate1.typeOfEnsembleForecast", "kind": "variable", "doc": "\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": "\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate2.typeOfDerivedForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate2.typeOfDerivedForecast", "kind": "variable", "doc": "\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": "\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.forecastProbabilityNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.forecastProbabilityNumber", "kind": "variable", "doc": "Forecast Probability Number
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.totalNumberOfForecastProbabilities", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.totalNumberOfForecastProbabilities", "kind": "variable", "doc": "Total Number of Forecast Probabilities
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate5.typeOfProbability", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate5.typeOfProbability", "kind": "variable", "doc": "\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": "\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate6.percentileValue", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate6.percentileValue", "kind": "variable", "doc": "Percentile Value
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8", "kind": "class", "doc": "\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.yearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.yearOfEndOfTimePeriod", "kind": "variable", "doc": "Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.monthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.monthOfEndOfTimePeriod", "kind": "variable", "doc": "Month Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.dayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.dayOfEndOfTimePeriod", "kind": "variable", "doc": "Day Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.hourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.hourOfEndOfTimePeriod", "kind": "variable", "doc": "Hour Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.minuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.minuteOfEndOfTimePeriod", "kind": "variable", "doc": "Minute Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.secondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.secondOfEndOfTimePeriod", "kind": "variable", "doc": "Second Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.numberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.numberOfTimeRanges", "kind": "variable", "doc": "Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.numberOfMissingValues", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.numberOfMissingValues", "kind": "variable", "doc": "Total number of data values missing in statistical process
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate8.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate8.statisticalProcess", "kind": "variable", "doc": "\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": "\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.forecastProbabilityNumber", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.forecastProbabilityNumber", "kind": "variable", "doc": "Forecast Probability Number
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.totalNumberOfForecastProbabilities", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.totalNumberOfForecastProbabilities", "kind": "variable", "doc": "Total Number of Forecast Probabilities
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.typeOfProbability", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.typeOfProbability", "kind": "variable", "doc": "\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": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "Type of Time Increment of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "Unit of Time Range of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "Time Range of Statistical Process
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "Unit of Time Range of Successive Fields
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate9.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate9.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "Time Increment of Successive Fields
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10", "kind": "class", "doc": "Product Definition Template 10
\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.percentileValue", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.percentileValue", "kind": "variable", "doc": "Percentile Value
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.yearOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.yearOfEndOfTimePeriod", "kind": "variable", "doc": "Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.monthOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.monthOfEndOfTimePeriod", "kind": "variable", "doc": "Month Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.dayOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.dayOfEndOfTimePeriod", "kind": "variable", "doc": "Day Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.hourOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.hourOfEndOfTimePeriod", "kind": "variable", "doc": "Hour Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.minuteOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.minuteOfEndOfTimePeriod", "kind": "variable", "doc": "Minute Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.secondOfEndOfTimePeriod", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.secondOfEndOfTimePeriod", "kind": "variable", "doc": "Second Year of End of Forecast Time Period
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.numberOfTimeRanges", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.numberOfTimeRanges", "kind": "variable", "doc": "Number of time ranges specifications describing the time intervals used to calculate the statistically-processed field
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.numberOfMissingValues", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.numberOfMissingValues", "kind": "variable", "doc": "Total number of data values missing in statistical process
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.statisticalProcess", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "Type of Time Increment of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "Unit of Time Range of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "Time Range of Statistical Process
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "Unit of Time Range of Successive Fields
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate10.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate10.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "Time Increment of Successive Fields
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11", "kind": "class", "doc": "Product Definition Template 11
\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.typeOfEnsembleForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.typeOfEnsembleForecast", "kind": "variable", "doc": "\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": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "Type of Time Increment of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "Unit of Time Range of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "Time Range of Statistical Process
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "Unit of Time Range of Successive Fields
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate11.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate11.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "Time Increment of Successive Fields
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12", "kind": "class", "doc": "Product Definition Template 12
\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.typeOfDerivedForecast", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.typeOfDerivedForecast", "kind": "variable", "doc": "\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": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.typeOfTimeIncrementOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.typeOfTimeIncrementOfStatisticalProcess", "kind": "variable", "doc": "Type of Time Increment of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.unitOfTimeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.unitOfTimeRangeOfStatisticalProcess", "kind": "variable", "doc": "Unit of Time Range of Statistical Process
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.timeRangeOfStatisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.timeRangeOfStatisticalProcess", "kind": "variable", "doc": "Time Range of Statistical Process
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.unitOfTimeRangeOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.unitOfTimeRangeOfSuccessiveFields", "kind": "variable", "doc": "Unit of Time Range of Successive Fields
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate12.timeIncrementOfSuccessiveFields", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate12.timeIncrementOfSuccessiveFields", "kind": "variable", "doc": "Time Increment of Successive Fields
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15", "kind": "class", "doc": "Product Definition Template 15
\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15.statisticalProcess", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15.statisticalProcess", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15.typeOfStatisticalProcessing", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15.typeOfStatisticalProcessing", "kind": "variable", "doc": "Type of Statistical Processing
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate15.numberOfDataPointsForSpatialProcessing", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate15.numberOfDataPointsForSpatialProcessing", "kind": "variable", "doc": "Number of Data Points for Spatial Processing
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48", "kind": "class", "doc": "Product Definition Template 48
\n", "bases": "ProductDefinitionTemplate0"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.typeOfAerosol", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.typeOfAerosol", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.typeOfIntervalForAerosolSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.typeOfIntervalForAerosolSize", "kind": "variable", "doc": "Type of Interval for Aerosol Size
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfFirstSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfFirstSize", "kind": "variable", "doc": "Scale Factor of First Size
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfFirstSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfFirstSize", "kind": "variable", "doc": "Scaled Value of First Size
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfSecondSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfSecondSize", "kind": "variable", "doc": "Scale Factor of Second Size
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfSecondSize", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfSecondSize", "kind": "variable", "doc": "Scaled Value of Second Size
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.typeOfIntervalForAerosolWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.typeOfIntervalForAerosolWavelength", "kind": "variable", "doc": "Type of Interval for Aerosol Wavelength
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfFirstWavelength", "kind": "variable", "doc": "Scale Factor of First Wavelength
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfFirstWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfFirstWavelength", "kind": "variable", "doc": "Scaled Value of First Wavelength
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaleFactorOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaleFactorOfSecondWavelength", "kind": "variable", "doc": "Scale Factor of Second Wavelength
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.ProductDefinitionTemplate48.scaledValueOfSecondWavelength", "modulename": "grib2io.templates", "qualname": "ProductDefinitionTemplate48.scaledValueOfSecondWavelength", "kind": "variable", "doc": "Scaled Value of Second Wavelength
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.pdt_class_by_pdtn", "modulename": "grib2io.templates", "qualname": "pdt_class_by_pdtn", "kind": "function", "doc": "Provides a Product Definition Template class via the template number
\n\nParameters
\n\n\n\n
pdtn : int
\n Product definition template number.Returns
\n\nProduct definition template class object (not an instance).
\n", "signature": "(pdtn):", "funcdef": "def"}, {"fullname": "grib2io.templates.NumberOfPackedValues", "modulename": "grib2io.templates", "qualname": "NumberOfPackedValues", "kind": "class", "doc": "Number of Packed Values
\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplateNumber", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplateNumber", "kind": "class", "doc": "Data Representation Template Number
\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate", "kind": "class", "doc": "Data Representation Template
\n"}, {"fullname": "grib2io.templates.RefValue", "modulename": "grib2io.templates", "qualname": "RefValue", "kind": "class", "doc": "Reference Value (represented as an IEEE 32-bit floating point value)
\n"}, {"fullname": "grib2io.templates.BinScaleFactor", "modulename": "grib2io.templates", "qualname": "BinScaleFactor", "kind": "class", "doc": "Binary Scale Factor
\n"}, {"fullname": "grib2io.templates.DecScaleFactor", "modulename": "grib2io.templates", "qualname": "DecScaleFactor", "kind": "class", "doc": "Decimal Scale Factor
\n"}, {"fullname": "grib2io.templates.NBitsPacking", "modulename": "grib2io.templates", "qualname": "NBitsPacking", "kind": "class", "doc": "Minimum number of bits for packing
\n"}, {"fullname": "grib2io.templates.TypeOfValues", "modulename": "grib2io.templates", "qualname": "TypeOfValues", "kind": "class", "doc": "\n"}, {"fullname": "grib2io.templates.GroupSplittingMethod", "modulename": "grib2io.templates", "qualname": "GroupSplittingMethod", "kind": "class", "doc": "\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": "\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": "\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": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.typeOfMissingValueManagement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.typeOfMissingValueManagement", "kind": "variable", "doc": "Type of Missing Value Management
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.priMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.priMissingValue", "kind": "variable", "doc": "Primary Missing Value
\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.secMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.secMissingValue", "kind": "variable", "doc": "Secondary Missing Value
\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.nGroups", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.nGroups", "kind": "variable", "doc": "Number of Groups
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.refGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.refGroupWidth", "kind": "variable", "doc": "Reference Group Width
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.nBitsGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.nBitsGroupWidth", "kind": "variable", "doc": "Number of bits for Group Width
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.refGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.refGroupLength", "kind": "variable", "doc": "Reference Group Length
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.groupLengthIncrement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.groupLengthIncrement", "kind": "variable", "doc": "Group Length Increment
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.lengthOfLastGroup", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.lengthOfLastGroup", "kind": "variable", "doc": "Length of Last Group
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate2.nBitsScaledGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate2.nBitsScaledGroupLength", "kind": "variable", "doc": "Number of bits of Scaled Group Length
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3", "kind": "class", "doc": "Data Representation Template 3
\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.refValue", "kind": "variable", "doc": "Reference Value (represented as an IEEE 32-bit floating point value)
\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.binScaleFactor", "kind": "variable", "doc": "Binary Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.decScaleFactor", "kind": "variable", "doc": "Decimal Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nBitsPacking", "kind": "variable", "doc": "Minimum number of bits for packing
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.groupSplittingMethod", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.groupSplittingMethod", "kind": "variable", "doc": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.typeOfMissingValueManagement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.typeOfMissingValueManagement", "kind": "variable", "doc": "Type of Missing Value Management
\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.priMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.priMissingValue", "kind": "variable", "doc": "Primary Missing Value
\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.secMissingValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.secMissingValue", "kind": "variable", "doc": "Secondary Missing Value
\n", "annotation": ": [<class 'float'>, <class 'int'>]"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nGroups", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nGroups", "kind": "variable", "doc": "Number of Groups
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.refGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.refGroupWidth", "kind": "variable", "doc": "Reference Group Width
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nBitsGroupWidth", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nBitsGroupWidth", "kind": "variable", "doc": "Number of bits for Group Width
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.refGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.refGroupLength", "kind": "variable", "doc": "Reference Group Length
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.groupLengthIncrement", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.groupLengthIncrement", "kind": "variable", "doc": "Group Length Increment
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.lengthOfLastGroup", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.lengthOfLastGroup", "kind": "variable", "doc": "Length of Last Group
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.nBitsScaledGroupLength", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.nBitsScaledGroupLength", "kind": "variable", "doc": "Number of bits of Scaled Group Length
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate3.spatialDifferenceOrder", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate3.spatialDifferenceOrder", "kind": "variable", "doc": "\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": "\n", "annotation": ": grib2io.templates.Grib2Metadata"}, {"fullname": "grib2io.templates.DataRepresentationTemplate40.targetCompressionRatio", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate40.targetCompressionRatio", "kind": "variable", "doc": "Target Compression Ratio
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41", "kind": "class", "doc": "Data Representation Template 41
\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.refValue", "kind": "variable", "doc": "Reference Value (represented as an IEEE 32-bit floating point value)
\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.binScaleFactor", "kind": "variable", "doc": "Binary Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.decScaleFactor", "kind": "variable", "doc": "Decimal Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate41.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate41.nBitsPacking", "kind": "variable", "doc": "Minimum number of bits for packing
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42", "kind": "class", "doc": "Data Representation Template 42
\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.refValue", "kind": "variable", "doc": "Reference Value (represented as an IEEE 32-bit floating point value)
\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.binScaleFactor", "kind": "variable", "doc": "Binary Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.decScaleFactor", "kind": "variable", "doc": "Decimal Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.nBitsPacking", "kind": "variable", "doc": "Minimum number of bits for packing
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.compressionOptionsMask", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.compressionOptionsMask", "kind": "variable", "doc": "Compression Options Mask for AEC/CCSDS
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.blockSize", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.blockSize", "kind": "variable", "doc": "Block Size for AEC/CCSDS
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate42.refSampleInterval", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate42.refSampleInterval", "kind": "variable", "doc": "Reference Sample Interval for AEC/CCSDS
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50", "kind": "class", "doc": "Data Representation Template 50
\n"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.refValue", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.refValue", "kind": "variable", "doc": "Reference Value (represented as an IEEE 32-bit floating point value)
\n", "annotation": ": float"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.binScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.binScaleFactor", "kind": "variable", "doc": "Binary Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.decScaleFactor", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.decScaleFactor", "kind": "variable", "doc": "Decimal Scale Factor
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.nBitsPacking", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.nBitsPacking", "kind": "variable", "doc": "Minimum number of bits for packing
\n", "annotation": ": int"}, {"fullname": "grib2io.templates.DataRepresentationTemplate50.realOfCoefficient", "modulename": "grib2io.templates", "qualname": "DataRepresentationTemplate50.realOfCoefficient", "kind": "variable", "doc": "Real of Coefficient
\n", "annotation": ": float"}, {"fullname": "grib2io.templates.drt_class_by_drtn", "modulename": "grib2io.templates", "qualname": "drt_class_by_drtn", "kind": "function", "doc": "Provides a Data Representation Template class via the template number
\n\nParameters
\n\n\n\n
drtn : int
\n Data Representation template number.Returns
\n\nData Representation template class object (not an instance).
\n", "signature": "(drtn):", "funcdef": "def"}, {"fullname": "grib2io.utils", "modulename": "grib2io.utils", "kind": "module", "doc": "Collection of utility functions to assist in the encoding and decoding\nof GRIB2 Messages.
\n"}, {"fullname": "grib2io.utils.int2bin", "modulename": "grib2io.utils", "qualname": "int2bin", "kind": "function", "doc": "Convert integer to binary string or list
\n\nParameters
\n\n\n\n
i : int
\n Integer value to convert to binary representation.\n\n
nbits : int, optional
\n Number of bits to return. Valid values are 8 [DEFAULT], 16, 32, and 64.\n\n
output : type
\n Return data asstr
[DEFAULT] orlist
(list of ints).Returns
\n\n\n", "signature": "(i, nbits=8, output=<class 'str'>):", "funcdef": "def"}, {"fullname": "grib2io.utils.ieee_float_to_int", "modulename": "grib2io.utils", "qualname": "ieee_float_to_int", "kind": "function", "doc": "
str
orlist
(list of ints) of binary representation of the integer value.Convert an IEEE 32-bit float to a 32-bit integer.
\n\nParameters
\n\n\n\n
f : float
\n Floating-point value.Returns
\n\n\n", "signature": "(f):", "funcdef": "def"}, {"fullname": "grib2io.utils.ieee_int_to_float", "modulename": "grib2io.utils", "qualname": "ieee_int_to_float", "kind": "function", "doc": "
numpy.int32
representation of an IEEE 32-bit float.Convert a 32-bit integer to an IEEE 32-bit float.
\n\nParameters
\n\n\n\n
i : int
\n Integer value.Returns
\n\n\n", "signature": "(i):", "funcdef": "def"}, {"fullname": "grib2io.utils.get_leadtime", "modulename": "grib2io.utils", "qualname": "get_leadtime", "kind": "function", "doc": "
numpy.float32
representation of a 32-bit int.Computes lead time as a datetime.timedelta object using information from\nGRIB2 Identification Section (Section 1), Product Definition Template\nNumber, and Product Definition Template (Section 4).
\n\nParameters
\n\n\n\n
idsec : list or array_like
\n Seqeunce containing GRIB2 Identification Section (Section 1).\n\n
pdtn : int
\n GRIB2 Product Definition Template Number\n\n
pdt : list or array_like
\n Seqeunce containing GRIB2 Product Definition Template (Section 4).Returns
\n\n\n", "signature": "(idsec, pdtn, pdt):", "funcdef": "def"}, {"fullname": "grib2io.utils.get_duration", "modulename": "grib2io.utils", "qualname": "get_duration", "kind": "function", "doc": "
datetime.timedelta
object representing the lead time of the GRIB2 message.Computes a time duration as a datetime.timedelta using information from\nProduct Definition Template Number, and Product Definition Template (Section 4).
\n\nParameters
\n\n\n\n
pdtn : int
\n GRIB2 Product Definition Template Number\n\n
pdt : list or array_like
\n Sequence containing GRIB2 Product Definition Template (Section 4).Returns
\n\n\n", "signature": "(pdtn, pdt):", "funcdef": "def"}, {"fullname": "grib2io.utils.decode_wx_strings", "modulename": "grib2io.utils", "qualname": "decode_wx_strings", "kind": "function", "doc": "
datetime.timedelta
object representing the time duration of the GRIB2 message.Decode GRIB2 Local Use Section to obtain NDFD/MDL Weather Strings. The\ndecode procedure is defined here.
\n\nParameters
\n\n\n\n
lus : bytes
\n GRIB2 Local Use Section containing NDFD weather strings.Returns
\n\n\n", "signature": "(lus):", "funcdef": "def"}, {"fullname": "grib2io.utils.get_wgrib2_prob_string", "modulename": "grib2io.utils", "qualname": "get_wgrib2_prob_string", "kind": "function", "doc": "
dict
of NDFD/MDL weather strings. Keys are an integer value that represent \nthe sequential order of the key in the packed local use section and the value is \nthe weather key.Return a wgrib2-formatted string explaining probabilistic\nthreshold informaiton. Logic from wgrib2 source, Prob.c,\nis replicated here.
\n\nParameters
\n\n\n\n
probtype : int
\n Type of probability (Code Table 4.9).\n\n
sfacl : int
\n Scale factor of lower limit.\n\n
svall : int
\n Scaled value of lower limit.\n\n
sfacu : int
\n Scale factor of upper limit.\n\n
svalu : int
\n Scaled value of upper limit.Returns
\n\nwgrib2-formatted string of probability threshold.
\n", "signature": "(probtype, sfacl, svall, sfacu, svalu):", "funcdef": "def"}, {"fullname": "grib2io.utils.arakawa_rotated_grid", "modulename": "grib2io.utils.arakawa_rotated_grid", "kind": "module", "doc": "Functions for handling an Arakawa Rotated Lat/Lon Grids.
\n\nThis grid is not often used, but is currently used for the NCEP/RAP using\nGRIB2 Grid Definition Template 32769
\n\nThese 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\nParameters
\n\n\n\n
latin
:float
\n Latitudes in units of degrees.\n\n
lonin
:float
\n Longitudes in units of degrees.\n\n
latpole
:float
\n Latitude of Pole.\n\n
lonpole
:float
\n Longitude of Pole.Returns
\n\n\n", "signature": "(latin, lonin, latpole, lonpole):", "funcdef": "def"}, {"fullname": "grib2io.utils.arakawa_rotated_grid.rot2ll", "modulename": "grib2io.utils.arakawa_rotated_grid", "qualname": "rot2ll", "kind": "function", "doc": "
tlat, tlons
\n Returns two floats of rotated latitude and longitude in units of degrees.Unrotate a latitude/longitude pair.
\n\nParameters
\n\n\n\n
latin
:float
\n Latitudes in units of degrees.\n\n
lonin
:float
\n Longitudes in units of degrees.\n\n
latpole
:float
\n Latitude of Pole.\n\n
lonpole
:float
\n Longitude of Pole.Returns
\n\n\n", "signature": "(latin, lonin, latpole, lonpole):", "funcdef": "def"}, {"fullname": "grib2io.utils.arakawa_rotated_grid.vector_rotation_angles", "modulename": "grib2io.utils.arakawa_rotated_grid", "qualname": "vector_rotation_angles", "kind": "function", "doc": "
tlat, tlons
\n Returns two floats of unrotated latitude and longitude in units of degrees.Generate a rotation angle value that can be applied to a vector quantity to\nmake it Earth-oriented.
\n\nParameters
\n\n\n\n
tlat
:float
\n True latitude in units of degrees.**tlon
\n\n**:
float`\n True longitude in units of degrees..\n\n
clat
:float
\n Latitude of center grid point in units of degrees.\n\n
losp
:float
\n Longitude of the southern pole in units of degrees.\n\n
xlat
:float
\n Latitude of the rotated grid in units of degrees.Returns
\n\n\n", "signature": "(tlat, tlon, clat, losp, xlat):", "funcdef": "def"}, {"fullname": "grib2io.utils.gauss_grid", "modulename": "grib2io.utils.gauss_grid", "kind": "module", "doc": "
rot : float
\n Rotation angle in units of radians.Tools for working with Gaussian grids.
\n\nAdopted 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\nParameters
\n\n\n\n
nlat : int
\n The number of latitudes in the Gaussian grid.Returns
\n\n\n", "signature": "():", "funcdef": "def"}, {"fullname": "grib2io.utils.rotated_grid", "modulename": "grib2io.utils.rotated_grid", "kind": "module", "doc": "
numpy.ndarray
of latitudes (in degrees) with a length ofnlat
.Tools for working with Rotated Lat/Lon Grids.
\n"}, {"fullname": "grib2io.utils.rotated_grid.RAD2DEG", "modulename": "grib2io.utils.rotated_grid", "qualname": "RAD2DEG", "kind": "variable", "doc": "\n", "default_value": "57.29577951308232"}, {"fullname": "grib2io.utils.rotated_grid.DEG2RAD", "modulename": "grib2io.utils.rotated_grid", "qualname": "DEG2RAD", "kind": "variable", "doc": "\n", "default_value": "0.017453292519943295"}, {"fullname": "grib2io.utils.rotated_grid.rotate", "modulename": "grib2io.utils.rotated_grid", "qualname": "rotate", "kind": "function", "doc": "Perform grid rotation. This function is adapted from ECMWF's ecCodes library\nvoid function, rotate().
\n\nhttps://github.com/ecmwf/eccodes/blob/develop/src/grib_geography.cc
\n\nParameters
\n\n\n\n
latin : float or array_like
\n Latitudes in units of degrees.\n\n
lonin : float or array_like
\n Longitudes in units of degrees.\n\n
aor : float
\n Angle of rotation as defined in GRIB2 GDTN 4.1.\n\n
splat : float
\n Latitude of South Pole as defined in GRIB2 GDTN 4.1.\n\n
splon : float
\n Longitude of South Pole as defined in GRIB2 GDTN 4.1.Returns
\n\n\n", "signature": "(latin, lonin, aor, splat, splon):", "funcdef": "def"}, {"fullname": "grib2io.utils.rotated_grid.unrotate", "modulename": "grib2io.utils.rotated_grid", "qualname": "unrotate", "kind": "function", "doc": "
lats, lons : numpy.ndarray
\nnumpy.ndarrays
withdtype=numpy.float32
of grid latitudes and\n longitudes in units of degrees.Perform grid un-rotation. This function is adapted from ECMWF's ecCodes library\nvoid function, unrotate().
\n\nhttps://github.com/ecmwf/eccodes/blob/develop/src/grib_geography.cc
\n\nParameters
\n\n\n\n
latin : float or array_like
\n Latitudes in units of degrees.\n\n
lonin : float or array_like
\n Longitudes in units of degrees.\n\n
aor : float
\n Angle of rotation as defined in GRIB2 GDTN 4.1.\n\n
splat : float
\n Latitude of South Pole as defined in GRIB2 GDTN 4.1.\n\n
splon : float
\n Longitude of South Pole as defined in GRIB2 GDTN 4.1.Returns
\n\n\n", "signature": "(latin, lonin, aor, splat, splon):", "funcdef": "def"}]; // mirrored in build-search-index.js (part 1) // Also split on html tags. this is a cheap heuristic, but good enough. diff --git a/grib2io/_grib2io.py b/grib2io/_grib2io.py index decb2bb..b0ef601 100644 --- a/grib2io/_grib2io.py +++ b/grib2io/_grib2io.py @@ -29,6 +29,7 @@ import re import struct import sys +import warnings from dataclasses import dataclass, field from numpy import ma @@ -66,6 +67,11 @@ class open(): may contain submessages whereby Section 2-7 can be repeated. grib2io accommodates for this by flattening any GRIB2 submessages into multiple individual messages. + It is important to note that GRIB2 files from some Meteorological agencies contain other data + than GRIB2 messages. GRIB2 files from NWS NDFD and NAVGEM have text-based "header" data and + files from ECMWF can contain GRIB1 and GRIB2 messages. grib2io checks for these and safely + ignores them. + Attributes ---------- **`mode : str`** @@ -199,23 +205,23 @@ def _build_index(self, no_data=False): """ # Initialize index dictionary if not self._hasindex: - self._index['offset'] = [] - self._index['bitmap_offset'] = [] - self._index['data_offset'] = [] - self._index['size'] = [] - self._index['data_size'] = [] - self._index['submessageOffset'] = [] - self._index['submessageBeginSection'] = [] - self._index['isSubmessage'] = [] - self._index['messageNumber'] = [] + self._index['sectionOffset'] = [] + self._index['sectionSize'] = [] + self._index['msgSize'] = [] + self._index['msgNumber'] = [] self._index['msg'] = [] self._hasindex = True # Iterate while True: try: - # Read first 4 bytes and decode...looking for "GRIB" + # Initialize + bmapflag = None pos = self._filehandle.tell() + section2 = b'' + trailer = b'' + _secpos = dict.fromkeys(range(8)) + _secsize = dict.fromkeys(range(8)) # Ignore headers (usually text) that are not part of the GRIB2 # file. For example, NAVGEM files have a http header at the @@ -233,149 +239,118 @@ def _build_index(self, no_data=False): pos = pos + test_offset break - # Test header. Then get information from GRIB2 Section 0: the discipline - # number, edition number (should always be 2), and GRIB2 message size. - # Then iterate to check for submessages. - - _issubmessage = False - _submsgoffset = 0 - _submsgbegin = 0 - _bmapflag = None - # Read the rest of Section 0 using struct. - section0 = np.concatenate(([header],list(struct.unpack('>HBBQ',self._filehandle.read(12)))),dtype=np.int64) + _secpos[0] = self._filehandle.tell()-4 + _secsize[0] = 16 + secmsg = self._filehandle.read(12) + section0 = np.concatenate(([header],list(struct.unpack('>HBBQ',secmsg))),dtype=np.int64) + # Make sure message is GRIB2. if section0[3] != 2: - raise ValueError( - "This is a GRIB version 1 file. grib2io only supports GRIB version 2." - ) - - # Read and unpack Section 1 - secsize = struct.unpack('>i',self._filehandle.read(4))[0] - secnum = struct.unpack('>B',self._filehandle.read(1))[0] - assert secnum == 1 - self._filehandle.seek(self._filehandle.tell()-5) - _grbmsg = self._filehandle.read(secsize) - _grbpos = 0 - section1,_grbpos = g2clib.unpack1(_grbmsg,_grbpos,np.empty) - secrange = range(2,8) + # Check for GRIB1 and ignore. + if secmsg[3] == 1: + warnings.warn("GRIB version 1 message detected. Ignoring...") + grib1_size = int.from_bytes(secmsg[:3],"big") + self._filehandle.seek(self._filehandle.tell()+grib1_size-16) + continue + else: + raise ValueError("Bad GRIB version number.") + + # Read and unpack sections 1 through 8 which all follow a pattern of + # section size, number, and content. while 1: - section2 = b'' - for num in secrange: - secsize = struct.unpack('>i',self._filehandle.read(4))[0] - secnum = struct.unpack('>B',self._filehandle.read(1))[0] - if secnum == num: - if secnum == 2: - if secsize > 0: - section2 = self._filehandle.read(secsize-5) - elif secnum == 3: - self._filehandle.seek(self._filehandle.tell()-5) - _grbmsg = self._filehandle.read(secsize) - _grbpos = 0 - # Unpack Section 3 - _gds,_gdt,_deflist,_grbpos = g2clib.unpack3(_grbmsg,_grbpos,np.empty) - _gds = _gds.tolist() - _gdt = _gdt.tolist() - section3 = np.concatenate((_gds,_gdt)) - section3 = np.where(section3==4294967295,-1,section3) - elif secnum == 4: - self._filehandle.seek(self._filehandle.tell()-5) - _grbmsg = self._filehandle.read(secsize) - _grbpos = 0 - # Unpack Section 4 - _numcoord,_pdt,_pdtnum,_coordlist,_grbpos = g2clib.unpack4(_grbmsg,_grbpos,np.empty) - _pdt = _pdt.tolist() - section4 = np.concatenate((np.array((_numcoord,_pdtnum)),_pdt)) - elif secnum == 5: - self._filehandle.seek(self._filehandle.tell()-5) - _grbmsg = self._filehandle.read(secsize) - _grbpos = 0 - # Unpack Section 5 - _drt,_drtn,_npts,self._pos = g2clib.unpack5(_grbmsg,_grbpos,np.empty) - section5 = np.concatenate((np.array((_npts,_drtn)),_drt)) - section5 = np.where(section5==4294967295,-1,section5) - elif secnum == 6: - # Unpack Section 6. Not really...just get the flag value. - _bmapflag = struct.unpack('>B',self._filehandle.read(1))[0] - if _bmapflag == 0: - _bmappos = self._filehandle.tell()-6 - elif _bmapflag == 254: - pass # Do this to keep the previous position value - else: - _bmappos = None - self._filehandle.seek(self._filehandle.tell()+secsize-6) - elif secnum == 7: - # Unpack Section 7. No need to read it, just index the position in file. - _datapos = self._filehandle.tell()-5 - _datasize = secsize - self._filehandle.seek(self._filehandle.tell()+secsize-5) - else: - self._filehandle.seek(self._filehandle.tell()+secsize-5) + # Read first 5 bytes of the section which contains the size of the + # section (4 bytes) and the section number (1 byte). + secmsg = self._filehandle.read(5) + secsize, secnum = struct.unpack('>iB',secmsg) + + # Record the offset of the section number and "append" the rest of + # the section to secmsg. + _secpos[secnum] = self._filehandle.tell()-5 + _secsize[secnum] = secsize + if secnum in {1,3,4,5}: + secmsg += self._filehandle.read(secsize-5) + grbpos = 0 + + # Unpack section + if secnum == 1: + # Unpack Section 1 + section1, grbpos = g2clib.unpack1(secmsg,grbpos,np.empty) + elif secnum == 2: + # Unpack Section 2 + section2 = self._filehandle.read(secsize-5) + elif secnum == 3: + # Unpack Section 3 + gds, gdt, deflist, grbpos = g2clib.unpack3(secmsg,grbpos,np.empty) + gds = gds.tolist() + gdt = gdt.tolist() + section3 = np.concatenate((gds,gdt)) + section3 = np.where(section3==4294967295,-1,section3) + elif secnum == 4: + # Unpack Section 4 + numcoord, pdt, pdtnum, coordlist, grbpos = g2clib.unpack4(secmsg,grbpos,np.empty) + pdt = pdt.tolist() + section4 = np.concatenate((np.array((numcoord,pdtnum)),pdt)) + elif secnum == 5: + # Unpack Section 5 + drt, drtn, npts, self._pos = g2clib.unpack5(secmsg,grbpos,np.empty) + section5 = np.concatenate((np.array((npts,drtn)),drt)) + section5 = np.where(section5==4294967295,-1,section5) + elif secnum == 6: + # Unpack Section 6 - Just the bitmap flag + bmapflag = struct.unpack('>B',self._filehandle.read(1))[0] + if bmapflag == 0: + bmappos = self._filehandle.tell()-6 + elif bmapflag == 254: + # Do this to keep the previous position value + pass else: - if num == 2 and secnum == 3: - pass # Allow this. Just means no Local Use Section. - else: - _issubmessage = True - _submsgoffset = (self._filehandle.tell()-5)-(self._index['offset'][-1]) - _submsgbegin = secnum - self._filehandle.seek(self._filehandle.tell()-5) - continue - trailer = struct.unpack('>4s',self._filehandle.read(4))[0] - if trailer == b'7777': + bmappos = None + self._filehandle.seek(self._filehandle.tell()+secsize-6) + elif secnum == 7: + # Do not unpack section 7 here, but move the file pointer + # to after section 7. + self._filehandle.seek(self._filehandle.tell()+secsize-5) + + # Update the file index. self.messages += 1 - self._index['offset'].append(pos) - self._index['bitmap_offset'].append(_bmappos) - self._index['data_offset'].append(_datapos) - self._index['size'].append(section0[-1]) - self._index['data_size'].append(_datasize) - self._index['messageNumber'].append(self.messages) - self._index['isSubmessage'].append(_issubmessage) - if _issubmessage: - self._index['submessageOffset'].append(_submsgoffset) - self._index['submessageBeginSection'].append(_submsgbegin) - else: - self._index['submessageOffset'].append(0) - self._index['submessageBeginSection'].append(_submsgbegin) + self._index['sectionOffset'].append(_secpos) + self._index['sectionSize'].append(_secsize) + self._index['msgSize'].append(section0[-1]) + self._index['msgNumber'].append(self.messages) # Create Grib2Message with data. - msg = Grib2Message(section0,section1,section2,section3,section4,section5,_bmapflag) + msg = Grib2Message(section0,section1,section2,section3,section4,section5,bmapflag) msg._msgnum = self.messages-1 - msg._deflist = _deflist - msg._coordlist = _coordlist + msg._deflist = deflist + msg._coordlist = coordlist if not no_data: msg._data = Grib2MessageOnDiskArray((msg.ny,msg.nx), 2, TYPE_OF_VALUES_DTYPE[msg.typeOfValues], self._filehandle, - msg, pos, _bmappos, _datapos) + msg, pos, _secpos[6], _secpos[7]) self._index['msg'].append(msg) - break - else: - self._filehandle.seek(self._filehandle.tell()-4) - self.messages += 1 - self._index['offset'].append(pos) - self._index['bitmap_offset'].append(_bmappos) - self._index['data_offset'].append(_datapos) - self._index['size'].append(section0[-1]) - self._index['data_size'].append(_datasize) - self._index['messageNumber'].append(self.messages) - self._index['isSubmessage'].append(_issubmessage) - self._index['submessageOffset'].append(_submsgoffset) - self._index['submessageBeginSection'].append(_submsgbegin) - - # Create Grib2Message with data. - msg = Grib2Message(section0,section1,section2,section3,section4,section5,_bmapflag) - msg._msgnum = self.messages-1 - msg._deflist = _deflist - msg._coordlist = _coordlist - if not no_data: - msg._data = Grib2MessageOnDiskArray((msg.ny,msg.nx), 2, - TYPE_OF_VALUES_DTYPE[msg.typeOfValues], - self._filehandle, - msg, pos, _bmappos, _datapos) - self._index['msg'].append(msg) + # If here, then we have moved through GRIB2 section 1-7. Now we + # need to check the next 4 bytes after section 7. + trailer = struct.unpack('>i',self._filehandle.read(4))[0] - continue + # If we reach the GRIB2 trailer string ('7777'), then we can break + # begin processing the next GRIB2 message. If not, then we continue + # within the same iteration to process a GRIB2 submessage. + if trailer.to_bytes(4, "big") == b'7777': + break + else: + # If here, trailer should be the size of the first section + # of the next submessage, then the next byte is the section + # number. Check this value. + nextsec = struct.unpack('>B',self._filehandle.read(1))[0] + if nextsec not in {2,3,4}: + raise ValueError("Bad GRIB2 message structure.") + self._filehandle.seek(self._filehandle.tell()-5) + continue + else: + raise ValueError("Bad GRIB2 section number.") except(struct.error): if 'r' in self.mode: @@ -445,7 +420,7 @@ def seek(self, pos): The GRIB2 Message number to set the file pointer to. """ if self._hasindex: - self._filehandle.seek(self._index['offset'][pos]) + self._filehandle.seek(self._index['sectionOffset'][0][pos]) self.current_message = pos @@ -558,7 +533,12 @@ def __new__(self, section0: np.array = np.array([struct.unpack('>I',b'GRIB')[0], section5: np.array = None, *args, **kwargs): if np.all(section1==0): - section1[5:11] = datetime.datetime.utcfromtimestamp(0).timetuple()[:6] + try: + # Python >= 3.10 + section1[5:11] = datetime.datetime.fromtimestamp(0, datetime.UTC).timetuple()[:6] + except(AttributeError): + # Python < 3.10 + section1[5:11] = datetime.datetime.utcfromtimestamp(0).timetuple()[:6] bases = list() if section3 is None: @@ -1225,14 +1205,14 @@ class Grib2MessageOnDiskArray: filehandle: open msg: Grib2Message offset: int - bmap_offset: int + bitmap_offset: int data_offset: int def __array__(self, dtype=None): - return np.asarray(_data(self.filehandle, self.msg, self.bmap_offset, self.data_offset),dtype=dtype) + return np.asarray(_data(self.filehandle, self.msg, self.bitmap_offset, self.data_offset),dtype=dtype) -def _data(filehandle: open, msg: Grib2Message, bmap_offset: int, data_offset: int)-> np.array: +def _data(filehandle: open, msg: Grib2Message, bitmap_offset: int, data_offset: int)-> np.array: """ Returns an unpacked data grid. @@ -1260,8 +1240,8 @@ def _data(filehandle: open, msg: Grib2Message, bmap_offset: int, data_offset: in fill_value = np.nan # Read bitmap data. - if bmap_offset is not None: - filehandle.seek(bmap_offset) # Position file pointer to the beginning of bitmap section. + if bitmap_offset is not None: + filehandle.seek(bitmap_offset) # Position file pointer to the beginning of bitmap section. bmap_size,num = struct.unpack('>IB',filehandle.read(5)) filehandle.seek(filehandle.tell()-5) ipos = 0 diff --git a/grib2io/xarray_backend.py b/grib2io/xarray_backend.py index 480496c..ef4defd 100755 --- a/grib2io/xarray_backend.py +++ b/grib2io/xarray_backend.py @@ -233,7 +233,7 @@ def __post_init__(self): self.shape = tuple([len(i) for i in self.index.index.levels]) + geo_shape self.ndim = len(self.shape) - cols = ['msg', 'data_offset','bitmap_offset'] + cols = ['msg', 'sectionOffset'] self.index = self.index[cols] def __getitem__(self, item) -> np.array: @@ -268,8 +268,8 @@ def __getitem__(self, item) -> np.array: with open(self.file_name, mode='rb', buffering=ONE_MB) as filehandle: for key, row in index.iterrows(): - bitmap_offset = None if pd.isna(row['bitmap_offset']) else int(row['bitmap_offset']) - values = _data(filehandle, row.msg, bitmap_offset, row['data_offset']) + bitmap_offset = None if pd.isna(row['sectionOffset'][6]) else int(row['sectionOffset'][6]) + values = _data(filehandle, row.msg, bitmap_offset, row['sectionOffset'][7]) if len(index_slicer_inclusive) >= 1: array_field[row.miloc] = values @@ -346,7 +346,7 @@ def parse_grib_index(index, filters): index = index.assign(typeOfGeneratingProcess=index.msg.apply(lambda msg: msg.typeOfGeneratingProcess)) index = index.assign(productDefinitionTemplateNumber=index.msg.apply(lambda msg: msg.productDefinitionTemplateNumber)) index = index.assign(typeOfFirstFixedSurface=index.msg.apply(lambda msg: msg.typeOfFirstFixedSurface)) - index = index.astype({'data_offset':'int', 'ny':'int','nx':'int'}) + index = index.astype({'ny':'int','nx':'int'}) # apply common filters(to all definition templates) to reduce dataset to single cube
lats, lons : numpy.ndarray
\nnumpy.ndarrays
withdtype=numpy.float32
of grid latitudes and\n longitudes in units of degrees.