Changelog2 4 2

This is the changelog for MeteoIO release 2.4.2

  • API changes

    • more logical parameter copy syntax: TA2::COPY = TA
    • IOManager: add a clear_cache() call, force clear_cache() when successfully pushing meteo data
    • IOManager: new constructor directly taking an ini file name
    • more flexibility in 2D grids resampling (it is possible to change the aspect ratio) and more safety checks
    • properly buffer DEMs as DEMs (instead of simple 2D grids)
    • new Config::findKey implementation that can perform the matching anywhere in the string
    • new constructors for GridObjects
    • new constructor for Array2D directly extracting a given layer out of an Array3D, new method to insert into an Array3D a layer provided as Array2D
    • two new methods for data binning have been added to libinterpol1D: by equal width or by equal number of points
    • the interpolated gris are now buffered
    • added an hillshade method in DEMObject
  • Plugins

    • new PSQLIO plugin to connect to a "generic" PostgreSQL database
    • new COSMO plugin to read XML files produces by FieldExtract
    • new NetCDF plugin
    • SMET: fixed bug with OpenMP
    • GSNIO: print curl error messages so it is easier to diagnose connection errors
    • IMISIO: fixed a bug that used to mix up parameters
    • support for reading non-square cells and then rescaling them added to GribIO similarly to NetcdfIO
  • Spatial interpolations

    • new "NONE" spatial interpolation algorithm
    • new spatial interpolation algorithm: Winstral, 2002
    • new spatial interpolation algorithm: Ryan, 1977
    • rewrote the Liston & Elder wind interpolation algorithm. It now works quite well and has been renamed as LISTON_WIND
    • it is now possible to provide a fallback constant for the CST spatial interpolation algorithm
    • optimizations for spatial interpolations: cases leading to filing a grid with a constant value (no precipitation, only one station, etc) are handled separately
    • the krigging can build the variogram from past time series of variances. Unfortunatelly, this makes no difference with the previously implemented empirical variogram. Therefore the simpler version is still active
  • Filters and generators

    • split the parametrized long wave into a AllSky_LW and Clear_Sky_LW generators with multiple parametrizations to chose from
    • the AllSky_LW parametrization can interpolate the cloudiness over the night (for each station)
    • introduced the concept of data creators to create new parameters from parametrizations (currently called just before the data generators)
    • new data generator for relative humidity
    • The Add and Mult filters can now take more arguments: it is possible to provide an hourly/daily/monthly correction to add/multiply in an external file (either absolute or relative path)
    • new options and new arguments for the Unventillated_T filter. The syntax is now different!
  • Documentation and messages

    • fixed some information messages issues on Mac
    • fixed formating bug in Date
    • improved the exception messages to make them clearer and less intimidating
    • IMISIO: better documentation
    • better documentation about krigging
    • new drawing into the documentation
    • better introduction to the documentation
    • documentation: adding missing pictures
    • documentation fixes and overall small touch up
    • documentation: updating the examples
    • add new filters templates (to make it easier to develop new filters)
    • better documentation for the Sun class
  • Bugfixes and code cleanup

    • bug fix in PNGIO (segfault)
    • fixed a numerical bug in Sun that lead to an arithmetic exception
    • bug fix in GribIO: memory leak
    • fixed small bug in nearest neighbour 2D resampling
    • code cleanup: using grid(i,j)
    • small optimizations in Sun and MathOptim
    • code cleanup in GridObjects
    • code cleanup in CMake files
    • low level file handling removed from IOUtils and moved into FileUtils (but still in the same namespace)
    • implemented a workaround for MinGW bug 2152
    • turning off "long long" warnings (since we have no choice, we need "long long" and it seems that all modern compilers suport it anyway)
    • the buffering code when reading grids has been cleaned up
    • code cleanup and restructuring in IOManager
    • fixed a warning when using cmake >= 3.0
  • Build system

    • add new compilation target to make it easier for packagers ("cxxflags")
    • all plateform pre-processor variables have been replaced by standard ones