5
from ecbufr.template import BUFR_Template as BT
6
from ecbufr.template import BufrDescValue
7
from ecbufr.tables import BUFR_Tables as Tables
8
from ecbufr.tables import EntryTableB as TB
9
from ecbufr.message import BUFR_Message as BM
10
from ecbufr.message import BUFR_File as BF
11
from ecbufr.dataset import BUFR_Dataset
12
from ecbufr.section1 import BufrSection1
13
from ecbufr.meta import BufrRTMD
20
print "Usage:",sys.argv[0]," input_bufr_file"
23
in_bufr=str(sys.argv[1])
25
print "Input BUFR:", in_bufr
27
def choose_bufrtable(tlist,version):
31
tmv=t.get_master_version()
33
print "Using Table version:",tmv
35
print "Using Default Table version:",tlist[0].get_master_version()
39
b=t.fetch_tableB( 10001 )
40
print b.descriptor,b.description
42
d=t.fetch_tableD( 301025 )
43
print d.descriptor,d.description
44
print d.get_descriptors()
49
t_13.load_TableB ( "../Tables/table_b_bufr-13", 0 )
50
t_13.load_TableD ( "../Tables/table_d_bufr-13", 0 )
51
print "Loaded Table master version:", t_13.get_master_version()
54
t_cmc.load_cmc_tables()
55
print "Loaded CMC Table master version:", t_cmc.get_master_version()
60
tables_list.append ( t_cmc )
61
tables_list.append ( t_13 )
64
bdv.set_desc( 0, 8034 )
65
bdv.set_desc( 1, 10034 )
68
bdv2.set_desc( 0, 8033 )
69
bdv2.set_desc( 1, 10034 )
75
bt.allocate(bdv,t_cmc,4)
79
bt2.allocate(bdv0,t_cmc,4)
80
bt2.add( bdv2, t_cmc )
82
print "Template compare:", bt.compare( bt2 )
84
#bt2.save( "t2.template" )
90
bf.open( in_bufr, "rb" )
91
except Exception as inst:
92
print "Cannot open file:",type(inst)
95
while isinstance(msg,BM):
97
msg_version=s1.master_table_version
98
print "Message Table version:",msg_version
99
print "Message edition:",msg.edition
100
print "Orig Center:",s1.orig_centre
101
print "bufr_master_table:",s1.bufr_master_table
102
table=choose_bufrtable(tables_list,msg_version)
103
dts=table.decode(msg)
104
print "Subsets count:", dts.size()
105
for i in range(len(dts)):
107
dss=dts.get_subset(i)
108
print "Descriptors count:", dss.size()
109
pos = dss.find( 4024, 0 )
110
print "found 4024 at ", pos
111
for j in range(len(dss)):
112
dsc=dss.get_descriptor(j)
113
print "descriptor:",j
115
if isinstance(meta,BufrRTMD):
117
nb=meta.len_nesting()
119
print meta.get_nesting(n),
122
print " ", dsc.descriptor, " ", dsc.get_value()
123
# print "descriptor:",j," ", dsc.descriptor, " ", dsc.get_value(), " flags=",dsc.flags