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
14
from ecbufr.value import BufrValue
21
print ("Usage:",sys.argv[0]," input_bufr_file")
24
in_bufr=str(sys.argv[1])
26
print ("Input BUFR:", in_bufr)
28
def choose_bufrtable(tlist,version):
32
tmv=t.get_master_version()
34
print ("Using Table version:",tmv)
36
print ("Using Default Table version:",tlist[0].get_master_version())
40
b=t.fetch_tableB( 10001 )
41
print (b.descriptor,b.description)
43
d=t.fetch_tableD( 301025 )
44
print (d.descriptor,d.description)
45
print (d.get_descriptors())
50
t_13.load_TableB ( "../Tables/table_b_bufr-13", 0 )
51
t_13.load_TableD ( "../Tables/table_d_bufr-13", 0 )
52
print ("Loaded Table master version:", t_13.get_master_version())
55
t_cmc.load_cmc_tables()
56
print ("Loaded CMC Table master version:", t_cmc.get_master_version())
61
tables_list.append ( t_cmc )
62
tables_list.append ( t_13 )
65
bdv.set_desc( 0, 8034 )
66
bdv.set_desc( 1, 10034 )
69
bdv2.set_desc( 0, 8033 )
70
bdv2.set_desc( 1, 10034 )
72
print (bdv.get_desc(0))
73
print (bdv.get_desc(1))
76
bt.allocate(bdv,t_cmc,4)
80
bt2.allocate(bdv0,t_cmc,4)
81
bt2.add( bdv2, t_cmc )
83
print ("Template compare:", bt.compare( bt2 ))
85
bt2.save( "t2.template" )
89
print (bf.open.__doc__)
90
print (bf.read.__doc__)
91
bf.open( in_bufr, "rb" )
92
except Exception as inst:
93
print ("Cannot open file:",type(inst))
96
while isinstance(msg,BM):
98
msg_version=s1.master_table_version
99
print ("Message Table version:",msg_version)
100
print ("Message edition:",msg.edition)
101
print ("Orig Center:",s1.orig_centre)
102
print ("bufr_master_table:",s1.bufr_master_table)
103
table=choose_bufrtable(tables_list,msg_version)
104
dts=table.decode(msg)
105
print ("Subsets count:", dts.size())
106
for i in range(len(dts)):
108
dss=dts.get_subset(i)
109
print ("Descriptors count:", dss.size())
110
pos = dss.find( 4024, 0 )
111
print ("found 4024 at ", pos)
112
for j in range(len(dss)):
113
dsc=dss.get_descriptor(j)
114
print ("descriptor:",j,end='')
116
if isinstance(meta,BufrRTMD):
118
nb=meta.len_nesting()
120
print (meta.get_nesting(n),end='')
124
print (" ", dsc.descriptor, "MISSING")
127
print (" ", dsc.descriptor, " ", bv.get_value())
129
if isinstance(bv,BufrValue):
131
print (" ", dsc.descriptor, "MISSING")
133
print (" ", dsc.descriptor, " ", bv.get_value())
136
print (" ", dsc.descriptor)
137
# shorter but incomplete way
138
# if dsc.is_missing():
139
# print (" ", dsc.descriptor, "MISSING")
141
# print (" ", dsc.descriptor, " ", dsc.get_value())