Changeset 2c3c135 in flex_extract.git


Ignore:
Timestamp:
Jun 21, 2020, 9:47:55 AM (4 years ago)
Author:
Anne Philipp <anne.philipp@…>
Branches:
master, ctbto, dev
Children:
98f09d2, d2d6cf9
Parents:
5bf163a
Message:

eliminated bug with eccodes file opening for python3 for rrint feature

Location:
Source/Python/Classes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • Source/Python/Classes/EcFlexpart.py

    r5bf163a r2c3c135  
    14161416                                        'stepRange', 'values'],
    14171417                              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]]
    14191419                             )
    14201420            fluxfile.set_keys(tmpfile, filemode='ab',
     
    14791479
    14801480        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')       
    14871484
    14881485        return
     
    17551752                                                c.ppid +
    17561753                                                '*')[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
    17581758            if not c.cwc:
    17591759                flist = ['fort.15', fluxfile, 'fort.16', orolsm]
  • Source/Python/Classes/GribUtil.py

    r026b359 r2c3c135  
    122122
    123123
    124     def set_keys(self, fromfile, keynames, keyvalues, wherekeynames,
    125                  wherekeyvalues, filemode='wb'):
     124    def set_keys(self, fromfile, filemode='wb', keynames=[], keyvalues=[],
     125                 wherekeynames=[], wherekeyvalues=[]):
    126126        '''Opens the file to read the grib messages and then write
    127127        the selected messages (with wherekeys) to a new output file.
     
    162162
    163163        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:
    166168            gid = codes_grib_new_from_file(fin)
    167 
     169           # print('test')
     170            if gid is None:
     171                break           
     172           
    168173            select = True
    169             i = 0
    170             for wherekey in wherekeynames:
     174            #print(str(codes_get(gid,'paramId')))
     175            for i, wherekey in enumerate(wherekeynames):
    171176                if not codes_is_defined(gid, wherekey):
    172177                    raise Exception("wherekey was not defined")
     
    174179                select = (select and (str(wherekeyvalues[i]) ==
    175180                                      str(codes_get(gid, wherekey))))
    176                 i += 1
    177181
    178182            if select:
    179                 i = 0
    180                 for key in keynames:
     183                for i, key in enumerate(keynames):
    181184                    if key == 'values':
    182185                        codes_set_values(gid, keyvalues[i])
    183186                    else:
    184187                        codes_set(gid, key, keyvalues[i])
    185                     i += 1
    186188
    187189                codes_write(gid, fout)
     
    190192
    191193        fout.close()
     194        fin.close()
    192195
    193196        return
     
    229232            raise Exception("Give a value for each keyname!")
    230233
    231 
    232234        fout = open(self.filenames, filemode)
    233 
     235        fin = open(filename_in, 'rb')
     236       
    234237        fields = 0
    235 
    236         with open(filename_in, 'rb') as fin:
    237             if fields >= 1:
     238        while True:
     239            if fields >= len(keyvalues):
    238240                fout.close()
     241                fin.close()
    239242                return
    240 
     243               
    241244            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               
    246252                if not codes_is_defined(gid, key):
    247253                    raise Exception("Key was not defined")
     
    253259                    select = (select and (str(keyvalues[i]) !=
    254260                                          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                   
    261266            codes_release(gid)
    262267
    263268        fout.close()
     269        fin.close()
    264270
    265271        return
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG