Opened 3 years ago

Last modified 3 years ago

#251 new

Bufr Spot (utility to quickly analyse BUFR content)

Reported by: Fabrizio Baordo Owned by: Fabrizio Baordo
Priority: major Component: User Interfaces
Keywords: bufr spot; pybufr-ecmwf Cc: Jin Lee, Yi Xiao, Peter Steinle, Susan Rennie, Tan Le, Robin Bowen, Fabrizio Baordo

Description


Attachments (1)

bufr_spot_outputs.tar.gz (2.4 MB) - added by Fabrizio Baordo 3 years ago.
Example of outputs from bufr spot

Change History (7)

Changed 3 years ago by Fabrizio Baordo

Attachment: bufr_spot_outputs.tar.gz added

Example of outputs from bufr spot

comment:1 Changed 3 years ago by Fabrizio Baordo

comment:2 Changed 3 years ago by Fabrizio Baordo

bufr_spot was developed using the pybufr-ecmwf-0.80 library.
The module associated with this library is not available yet and this is reported by https://accessdev.nci.org.au/trac/ticket/248.

However, it is still possible to use bufr_spot simply installing the pybufr-ecmwf-0.80 yourself. This can be done following steps below:

1) check out utils trunk

svn co https://access-svn.nci.org.au/svn/utils/trunk

2)Move into the pybufr-ecmwf-0.80 dir

cd pybufr_ecmwf/pybufr-ecmwf-0.80/

3) Execute the 2 lines below

module load python
python setup.py build

4) Finally create your own library:
python setup.py install --user

Point 4 will create your library at:

/home/548/<USER>/.local/lib/python2.7/site-packages/pybufr_ecmwf

Now you can use bufr_spot

comment:3 Changed 3 years ago by Fabrizio Baordo


To test/modify/keep developing bufr_plot


You might want to create your own branch first:

fcm branch-create --branch-of-branch “name” “branchURL”

where “name” is a string which identifies the name of your branch and “branchURL” is the URL of the branch which contains bufr​_spot, e.g.:

branchURL = https://access-svn.nci.org.au/svn/utils/branches/dev/ffb548/r889_bufr_spot

"fcm branch-create" creates your branch in “dev/" so your branch URL is as follows: ​

https://access-svn.nci.org.au/trac/utils/browser/branches/dev/<user>/rXXX_name

comment:4 Changed 3 years ago by Fabrizio Baordo

Cc: Jin Lee Yi Xiao Peter Steinle Susan Rennie Tan Le Robin Bowen Fabrizio Baordo added

comment:5 Changed 3 years ago by Susan Rennie

We're not sure the right bufr tables are being used to decode the bufr files.
The function to add bufr tables to a bufr file object:

bfr.setup_tables(table_b_to_use=os.path.join(strBfrTablesPath,strBfrTableB), table_c_to_use=None,table_d_to_use=os.path.join(strBfrTablesPath,strBfrTableD), tables_dir=strBfrTablesPath)

comment:6 Changed 3 years ago by Fabrizio Baordo

Use of BUFR tables fix:

BUFR tables are correctly loaded from the path specified in configuration.

BUFR TABLES need to be set up before reading messages in the BUFR, e.g.

bfr = BUFRReader(input_bufr_file, warn_about_bufr_size=False)

# SET BUFR TABLES TO USE TO READ THE BUFR
bfr.table_b_to_use = strBfrTableB
bfr.table_d_to_use = strBfrTableD
bfr.tables_dir = strBfrTablesPath

#LOOP and READ MESSAGE
while True:

try:

# load message
bfr.get_next_msg()


BUFR_SPOT has been tested (works successfully) for all the following observations:

as as_300 amv34 amv160 amv254 amv254msg amdar acars ascat airs atovs ATMS CrIS gpsro iasi iasi4 PScsr ss windsat

Note: See TracTickets for help on using tickets.