Changelog2 2 0
This is the changelog for MeteoIO release 2.2.0
-
Improvements, cleanup
- better error messages for file handling
- c++ name demangling when throwing exceptions (only for gcc)
- cleaned up unnecessary copies of identical objects in IOManager and its objects
- code security audit with Flawfinder: several small corrections
- outputs warning/error messages done on stderr in order to avoid polluting the application's stdout
- bug fixes in HNW_melt, Nearestneighbour scaling, valgrind checks, SimpleDEMWindInterpolate, 64 bit
- warnings fixes (including for VC++)
- artithmetic exceptions fixes (FilterRate, SimpleDEMWindInterpolate, libsmet, etc)
- IOManager memory error fixed (ref to an external Config object)
- documentation fixes and improvements (plugins summary table)
-
Speed optimizations
- lots of benchmarking
- replacing std::endl by "\n" to avoid flushing buffers (performance improvement)
- callgrind speed improvements
- speed improvements for IDW with large number of stations
- speed enhancements by helping auto-vectorization
- code speed up and cleanup (consts, reserve())
- optimization in dates comparisons (almost 30% speed increase)
- resampling rewite (see below)
- BUFF_GRIDS=0 bypasses grids buffering
-
Interface changes
- better structured handling of gridded data: the grid specification is passed to the plugin which handles it according to its own rules (for building a file name for example)
- added the () operator on 2D and 3D grids for convenience
- grids: add isEmpty(), clear() and getNx()/Ny()/Nz()
- standardized options for grids handling: GRID2DPATH, GRID2DEXT and GRID2DPREFIX
- support for rotated coordinates in Coords
- move coordinates in Coords
- IOManager API extensions (point interpolation, new calls for reading/writing grids, new calls for spatial interpolations)
-
Resampling
- code cleanup and massive rewrite. Now the search window behaves as expected
- re-accumulation now works as expected with arbitrary input data and with consistent nodata handling (up sampling, down sampling)
- large speed up of window handling for resampling/reaccumulating (roughtly by a factor of 5 the the whole data reading process)
- some resampling algorithms were silently extrapolating, this has been fixed
-
filters
- code cleanup in filters (cleaner inheritance, separation between filtering and extra processing)
- rewrite of the filtering window so that it behaves as expected: specifying 4 points and 6 hours will guarantee both conditions
- ADD, MULT and UNDERCATCH processing elements (with WMO+Japanese RT3+Swiss Hellmann corrections) and unheated_raingauge
- FilterWindAvg now handles nodata correctly
-
plugins
- SMETIO
- more checks and error messages in to help identify errors in files (including duplicated timestamps or non-chronological order)
- fixed end of lines issues
- read special points in smet format
- fixed handling of output time zone
- PNGIO plugin for reading PNGs
- support for several methods of rescaling, legend, indexed color map, lots of color gradients including several isomorphic gradients, speed or size optimization, metadata, autoscale, world file, 1 bit alpha, arbitrary number of colors.
- File size is up to 87% smaller than a full color file.
- PGMIO
- fixed an arithmetic error
- Min and Max written in the metadata
- ARCIO
- generate standard names or A3Dviewer names
- 6x faster grid reading
- GRIBIO for handling GRIB files
- read specific grids or time series from virtual stations, computing requested parameters from alternate parameters if needed
- A3DIO
- cleanup in special points handling
- handled like any other plugin
- SNIO
- better error messages
- GEOTOPIO
- plugion adapted to the latest GeoTop
- speed improvements
- more features (use only a subset of stations, flexible sequence of metadata, consistency checks)
- IMISIO
- use SNOWPACK SWE to infere precipitation if USE_SNOWPACK_HNW
- IMIS precipitation input validated
- better error messages
- RPSIO
- ability to read more fields. But the format is so sick that there is no way to be sure of anything...
- GSNIO
- now compiles with code::blocks
- SMETIO
-
compilation
- fixed variable names starting with "_"
- Math constants redefined in meteoconst.h for portability
- Improvements for popc support through cmake (but the compiler has to be manually forced to popcc)
- better detection of MeteoIO by cmake
-
New models
- Crawford and Duchon ILWR model, Unsworth ILWR model, Prata 1996 and Dilley 1998 clear sky radiation models and Kasten cloudiness model
- Windchill and heat index implemented
- Wind log scaling law for wind speed correction
- getSolarTime added to SunTrajectory