source: flex_extract.git/python/opposite.py @ e879023

ctbtodev
Last change on this file since e879023 was 2193808, checked in by anphi <anne.philipp@…>, 5 years ago

added ensemble analysis/forecast retrievement option

  • Property mode set to 100644
File size: 1.6 KB
Line 
1import os,sys,glob
2from gribapi import *
3import numpy
4
5def opposite(prefix):
6    fclist=glob.glob(prefix+'*'+'N000')
7   
8    for fcn in fclist:
9        nprefix=fcn.split('N000')[0]
10        f=open(nprefix+'N{:0>3}'.format(0),'rb')
11        fcvalues=[]
12        while 1:
13            try:
14                fid=grib_new_from_file(f)
15                if fid is not None:
16                    fcvalues.append(grib_get_array(fid,'values'))
17                    grib_release(fid)
18                else:
19                    break
20            except:
21                break
22        for i in range(1,26):
23            try:
24                g=open(nprefix+'N{:0>3}'.format(i),'rb')
25                h=open(nprefix+'N{:0>3}'.format(i+25),'wb')
26                j=0
27                while 1:
28                    try:
29                        gid=grib_new_from_file(g)
30                        if gid is not None:
31                            values=grib_get_array(gid,'values')
32                            grib_set_array(gid,'values',values-2*(values-fcvalues[j]))
33                            grib_set(gid, 'number', i+25)
34                            grib_write(gid,h)
35                            grib_release(gid)
36                            j+=1
37                        else:
38                            break
39                    except:
40                        break
41                g.close()
42                h.close()
43                print('wrote '+nprefix+'N{:0>3}'.format(i+25))
44            except:
45                break
46        f.close()
47    return
48               
49if __name__ == "__main__":
50    opposite(os.path.expandvars('EN'))
51
52               
53       
Note: See TracBrowser for help on using the repository browser.
hosted by ZAMG