Skip to content

0.5.0

Compare
Choose a tag to compare
@adokter adokter released this 19 Feb 17:52
· 521 commits to master since this release

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 the CELL 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 PolarScanParameters BIOLOGY, 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 PolarScanParameter CELL
  • 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 like vol2bird 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)