0.5.0
vol2bird 0.5.0
All issues and PRs included in this release can be found here.
mistnet
The main PR add functionality for using the MistNet deep convolution neural net for segmentation of meteorological echoes, following Lin et al. 2019:
- new function
segmentScansUsingMistnet()
which identifies cells with precipitation using the MistNet deep convolution neural net. Regions with rain are added to theCELL
PolarScanParameter, just like for the other rain segmentation methods (#130). - new user options available in
options.conf
to specify MistNet options (USE_MISTNET
,MISTNET_ELEVS
,MISTNET_ELEVS_ONLY
,MISTNET_PATH
) - updated build system that integrates with libtorch, the C++ library used to interface with PyTorch deep learning models.
- C++ library libmistnet.cpp, containing the new function
run_mistnet()
which calls MistNet segmentation model - C library librender.c, containing functions for rendering and projecting polar scans onto a Cartesian grid
- functions to map Cartesian rain segmentation generated by MistNet back onto PolarVolume objects (see next two points)
addTensorToPolarVolume()
adds PolarScanParametersBIOLOGY
,WEATHER
,BACKGROUND
to the scans, containing the class probability for each of these three classes as a value between 0 and 1.addClassificationToPolarVolume()
adds the final segmentation to PolarScanParameterCELL
- new functions
distance2height()
,distance2range()
,range2distance()
,range2height()
for converting down range, slant range and height above ground. - Functions extending Rave library to make subselections of scans in a polar volume:
PolarVolume_selectScansByElevation()
,PolarVolume_selectScansByScanUse()
- Functions for allocating and deconstructing 3D tensors used as MistNet input (
init3DTensor()
,fill3DTensor()
,flatten3DTensor()
,free3DTensor()
) and 4D tensors used as MistNet output (create4DTensor()
,free4DTensor()
) - final linking of vol2bird occurs now with c++, as required when mixing c and c++ code
rsl2odim
executable can add mistnet segmentation to a polar volume file, just likevol2bird
executable.
other new features
- fix a bug that assumed incorrect range bin size for certain sweeps in NEXRAD legacy data (#125)
- beam height calculations now account for earth's curvature and diffraction (#28)
- radial velocity standard deviation threshold (
sd_vvp_threshold
) for S-band now defaults to 1 m/s (#102) - made application of gap criterion consistent with bioRad's
sd_vvp_threshold()
function. Bird densities are no longer set to zero in case of a large azimuthal data gap that prevents a velocity (VVP) fit. As a result, we now allow layers to have a valid animal density even when there is no valid speed/direction (#86, #96) - provide information on installed components in
vol2bird --help
(dbb19f4) - fix RSL compilation on Ubuntu, by changing flex to flex-old (9c2e77b) (adokter/rsl#10)
- updated and simplified install instructions, now one file for Ubuntu/Linux and Mac OSX (
4bb6795, #52)