...
The bufr_filter processes sequentially all bufr messages contained in the input files and applies the rules to each one of them. Input messages can be written to the output by using the "write" statement. The write statement can be parameterised so that output is sent to multiple files depending on key values used in the output file name.
Header information can be accessed witout unpacking the data. This rules_file:
will result in the the follwing output:Code Block print "[bufrHeaderCentre] [bufrHeaderSubCentre] [masterTablesVersionNumber] [localTablesVersionNumber] [numberOfSubsets]";
Code Block > bufr_filter rules_file ../data/bufr/syno_multi.bufr 98 0 13 1 1 98 0 13 1 1 98 0 13 1 1
To print values from the data section the messages have to be unpacked. This rules_file:
will print out some data values from the specified SYNOP BUFR messages.Code Block set unpack=1; print "block=[blockNumber] station=[stationNumber] lat=[latitude] lon=[longitude] t2=[airTemperatureAt2M]";
Code Block > bufr_filter rules_file ../data/bufr/syno_multi.bufr block=1 station=1 lat=70.93 lon=-8.67 t2=274.5 block=1 station=3 lat=77 lon=15.5 t2=268.4 block=1 station=7 lat=78.92 lon=11.93 t2=268.5
The transient key To print values from the data section the messages have to be unpacked. This rules_file:
will print out some data values from the specified SYNOP BUFR messages.Code Block set unpack=1; transient statid=1000*blockNumber+stationNumber; print "statid=[statid] lat=[latitude] lon=[longitude] t2=[airTemperatureAt2M]";
Code Block > bufr_filter rules_file ../data/bufr/syno_multi.bufr block=1 station=1 lat=70.93 lon=-8.67 t2=274.5 block=1 station=3 lat=77 lon=15.5 t2=268.4 block=1 station=7 lat=78.92 lon=11.93 t2=268.5