IODA Bundle
bufrtest.py
Go to the documentation of this file.
1 #!/usr/bin/env python3
2 
3 from __future__ import print_function
4 import ncepbufr
5 import numpy as np
6 import sys
7 import os
8 import netCDF4
9 from netCDF4 import Dataset
10 import struct
11 
12 # Grab input arguemnts
13 ScriptName = os.path.basename(sys.argv[0])
14 UsageString = "USAGE: {0:s} <prepbufr>".format(ScriptName)
15 
16 if len(sys.argv) != 2:
17  print("ERROR: must supply exactly 1 arguments")
18  print(UsageString)
19  sys.exit(1)
20 
21 PbFname = sys.argv[1]
22 
23 print("Testing BUFR functions")
24 print(" Input BUFR file: {0:s}".format(PbFname))
25 
26 # open file and read through contents
27 bufr = ncepbufr.open(PbFname)
28 
29 #bufr.print_table()
30 
31 # prepBUFR mnemonics
32 Mnemonics = "TOB"
33 #Mnemonics = "POB QOB TOB ZOB UOB VOB PWO CAT PRSS TDO PMO XDR YDR HRDR"
34 
35 # BUFR mnemonics
36 #Mnemonics = "TMDB"
37 #Mnemonics = "TMDB TMDP WDIR WSPD QMAT QMWN CLAT CLON FLVL YEAR MNTH DAYS HOUR MINU"
38 
39 while (bufr.advance() == 0):
40  print(" MSG: {0:d} {1:s} {2:d} ({3:d})".format(
41  bufr.msg_counter,bufr.msg_type,bufr.msg_date,bufr._subsets()))
42 
43  isub = 0
44  while (bufr.load_subset() == 0):
45  isub += 1
46  Vals = bufr.read_subset(Mnemonics, events=True).data
47  print(" SUBSET: {0:d}: MNEMONIC VALUES: ".format(isub), Vals)
48 
49  #bufr.print_subset()
50 
51 # clean up
52 bufr.close()
53