Changeset 2c3c135 in flex_extract.git
- Timestamp:
- Jun 21, 2020, 9:47:55 AM (4 years ago)
- Branches:
- master, ctbto, dev
- Children:
- 98f09d2, d2d6cf9
- Parents:
- 5bf163a
- Location:
- Source/Python/Classes
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Source/Python/Classes/EcFlexpart.py
r5bf163a r2c3c135 1416 1416 'stepRange', 'values'], 1417 1417 keyvalues=[inumb, int(date.strftime('%Y%m%d')), 1418 date.hour*100, 0, lsp_new_np[inumb, :, it]] ,1418 date.hour*100, 0, lsp_new_np[inumb, :, it]] 1419 1419 ) 1420 1420 fluxfile.set_keys(tmpfile, filemode='ab', … … 1479 1479 1480 1480 gribfile = GribUtil(os.path.join(inputdir, 'rr_grib_dummy.grb')) 1481 1482 gribfile.copy_dummy_msg(ifile, keynames=['paramId'], 1483 keyvalues=[142], filemode='wb') 1484 1485 gribfile.copy_dummy_msg(ifile, keynames=['paramId'], 1486 keyvalues=[143], filemode='ab') 1481 1482 gribfile.copy_dummy_msg(ifile, keynames=['paramId','paramId'], 1483 keyvalues=[142,143], filemode='wb') 1487 1484 1488 1485 return … … 1755 1752 c.ppid + 1756 1753 '*')[0]) 1757 fluxfile = 'flux' + cdate[0:2] + suffix 1754 if c.marsclass == 'EP': 1755 fluxfile = 'flux' + suffix 1756 else: 1757 fluxfile = 'flux' + cdate[0:2] + suffix 1758 1758 if not c.cwc: 1759 1759 flist = ['fort.15', fluxfile, 'fort.16', orolsm] -
Source/Python/Classes/GribUtil.py
r026b359 r2c3c135 122 122 123 123 124 def set_keys(self, fromfile, keynames, keyvalues, wherekeynames,125 wherekey values, filemode='wb'):124 def set_keys(self, fromfile, filemode='wb', keynames=[], keyvalues=[], 125 wherekeynames=[], wherekeyvalues=[]): 126 126 '''Opens the file to read the grib messages and then write 127 127 the selected messages (with wherekeys) to a new output file. … … 162 162 163 163 fout = open(self.filenames, filemode) 164 165 with open(fromfile, 'rb') as fin: 164 # print(fout) 165 fin = open(fromfile, 'rb') 166 # print(fin) 167 while True: 166 168 gid = codes_grib_new_from_file(fin) 167 169 # print('test') 170 if gid is None: 171 break 172 168 173 select = True 169 i = 0170 for wherekey in wherekeynames:174 #print(str(codes_get(gid,'paramId'))) 175 for i, wherekey in enumerate(wherekeynames): 171 176 if not codes_is_defined(gid, wherekey): 172 177 raise Exception("wherekey was not defined") … … 174 179 select = (select and (str(wherekeyvalues[i]) == 175 180 str(codes_get(gid, wherekey)))) 176 i += 1177 181 178 182 if select: 179 i = 0 180 for key in keynames: 183 for i, key in enumerate(keynames): 181 184 if key == 'values': 182 185 codes_set_values(gid, keyvalues[i]) 183 186 else: 184 187 codes_set(gid, key, keyvalues[i]) 185 i += 1186 188 187 189 codes_write(gid, fout) … … 190 192 191 193 fout.close() 194 fin.close() 192 195 193 196 return … … 229 232 raise Exception("Give a value for each keyname!") 230 233 231 232 234 fout = open(self.filenames, filemode) 233 235 fin = open(filename_in, 'rb') 236 234 237 fields = 0 235 236 with open(filename_in, 'rb') as fin: 237 if fields >= 1: 238 while True: 239 if fields >= len(keyvalues): 238 240 fout.close() 241 fin.close() 239 242 return 240 243 241 244 gid = codes_grib_new_from_file(fin) 242 243 select = True 244 i = 0 245 for key in keynames: 245 if gid is None: 246 break 247 248 for i, key in enumerate(keynames): 249 250 select = True 251 246 252 if not codes_is_defined(gid, key): 247 253 raise Exception("Key was not defined") … … 253 259 select = (select and (str(keyvalues[i]) != 254 260 str(codes_get(gid, key)))) 255 i += 1 256 257 if select: 258 fields = fields + 1 259 codes_write(gid, fout) 260 261 262 if select: 263 fields = fields + 1 264 codes_write(gid, fout) 265 261 266 codes_release(gid) 262 267 263 268 fout.close() 269 fin.close() 264 270 265 271 return
Note: See TracChangeset
for help on using the changeset viewer.