BEAM BLOCKAGE
|
Beam Blockage has been developed as a software package that should be used together with RAVE. BEAMB comes bundled with two GTOPO30 DEMs covering most of Europe starting at 40 degrees North. These so-called "tiles" are called W020N90 and E020N90. The code base is prepared to process data using W060N90, W020N40, and E020N40, but you have to get and install these yourself.
GTOPO30 resides at http://www1.gsi.go.jp/geowww/globalmap-gsi/gtopo30/gtopo30.html
BEAMB does not modify GTOPO tiles at all; it just uses them as they are. This means that processing data consumes a lot of memory, especially if your radar covers an area with topography from more than one tile. However, keep in mind that BEAMB processes a beam-blockage result for a unique location and scan geometry only once, and the result is cached and used subsequently each time the analysis for that scan is requested.
The original software has been developed by Lars Norin and adapted by Anders Henja to integrate properly with the RAVE software.
The installation is quite straight forward and there are only 3 different parameters that should be specified. –prefix where beamb should be installed (default is /opt/baltrad/beamb) –with-rave where rave installation can be found –localstatedir where the cache files should be stored.
Other than that, it is pretty much the standard configure, make, make test and make install procedure that is necessary.
%> ./configure --prefix=/opt/baltrad/beamb --with-rave=/opt/baltrad/rave --localstatedir=/var ... %> make ... %> make test ... %> make install
The beam blockage calculations are quite easy to use. The beam blockage object keeps track of the topography handling and mapping so the only thing you really have to do is to provide the object with a scan and a limit for the gaussian approximation.
In Python, it probably looks something like:
import _beamblockage import _raveio scan = _raveio.open("scan.h5").object bb = _beamblockage.new() # Determine blockage with a -6 dB beamwidth result = a.getBlockage(scan, -6.0); # Correct reflectivity for blocking up to 70%, above that "nodata" restored = _beamblockage.restore(scan, result, "DBZH", 0.7) scan.addQualityField(result) rio = _raveio.new() rio.object = scan rio.save("result.h5")
The default behaviour for beam blockage is to cache the resulting quality fields since they seldom change. These files are stored in the localstatedir mentioned in Installation. However, you might want to rewrite the cache files or even skip using cache files. This can be done by specifying
bb = _beamblockage.new() bb.rewritecache = True # Keep last result in cache directory bb.cachedir = None # Turn of caching bb.cachedir = "/tmp" # Put cache files in the tmp directory