meteoio

Changelog2-4-0

Attention! This page is marked as deprecated, use it as reference only if you are sure you need these specific information.

You are looking at an old revision of the page Changelog2-4-0. This revision was created by Mathias Bavay.

Table of Content

Not-so-brief changelog of MeteoIO-2.4.0

This is the changelog for MeteoIO release 2.4.0

  • Code cleanup
    • now using size_t everywhere it is appropriate
    • code cleanup and more comments in IOManager
    • added missing header
    • clean up includes
    • removing unnecessary code
    • simplification of the IOUtils::seek
    • removing pointers, simplifying memory management/handling
    • using ostrinstream whenever possible instead of stringstream
    • more const variables and parameters
    • fixed warnings on various platforms
      • fixed signed/unsigned warnings
      • fixed warnings in MathOptim.h
      • fixed VC++ warnings (more assignments operators)
      • fixed warnings in plugins by keeping a const cfg instead of reference
      • fixed warnings on Hera
      • turned some warnings off on osX (signed/unsigned because of clang divergence from the standards)
    • fixes suggested by static analysis
      • fixes following flawfinder
      • removed unused variables, better iterators incrementation, passing more variables as const&, relying more on STL methods for checking empty vectors (as suggested by cppcheck)
      • more use of copy constructors (instead of construct+copy)
      • remove manuall vector copies, replaced by ovec=ivec
      • relying more on STL methods: vector.front() or .back(), .empty(), empty strings constructed with string(). Leads to 4% speed improvements
    • optimizations
      • micro-optimizations
      • SIMD optimizations
  • Code refactoring

    • refactoring of the spatial interpolations
    • refactoring of the resampling algorithms, making them much more efficient
    • per parameter window size in resampling alongside a new syntax to accomodatefuture evolutions
    • Meteo2DInterpolator refactoring
    • spatial interpolations performed by persistent objects, leading to speed improvements and more possibilities for the algorithms
    • the spatial interpolations are now based on a trend/residuals approach
    • basic kriging now works. But there is no range limitation and the covariance calculation for the variogram is pretty basic...
    • matrix and fit methods now return a boolean to indicate their status instead of throwing and exception
    • simplification of the filters to make it even easier to write them
    • optimized ProcessingStack
  • Plugins

    • more robust ARC
    • A3DIO cleanup and fixed pointer bug
    • SMETIO
      • libsmet does not throw an exception when writing an empty station (but prints a warning)
      • bug fix for SMET when reading a truncated file
      • more error messages in SMETIO
      • fixed invalid error message in SMETIO
    • GeoTop plugin clean up
    • GSNIO
      • GSNIO: improved parameter names mapping
      • time out on GSN connections
      • soap files updated
    • small fixes in GRIBIO, documentation fixes
    • documented the snowpack meteo file format
    • IMISIO
      • data prefetching for Oracle querries, leading to a x2 speed improvement
      • keep the same Statement object for Oracle querries in order to avoid reallocating the object
      • better error messages in IMISIO
      • fixed HS to SWE precipitation generation in the IMIS plugin
  • INI file handling
    • added imports to ini files (IMPORT_BEFORE and IMPORT_AFTER)
    • simplification of io.ini
    • printing a config file now produces a valid config file
    • new method in Config to retrieve all values whose keys match a given pattern (for example, STATIONxx). The plugins using these keys now support arbitrarily numbered keys
    • Config::keyExist() implemented
  • Error reporting
    • better error messages (no more full path in front of cc file name)
    • dialog boxes for exception messages (optional, at compile time)
    • better colorization of console messages, stack trace now appears before error message
    • backtrace more readable
    • IOHandler checks that timestamps are unique and in increasing order
  • Build system
    • deleting static and dynamic libs when "make clean"
    • simple CMakeLists for the examples
    • improved tests (better output, more details when failing)
    • tests clean up and reorganization
    • new test for statistical methods
    • changed search order of FindMeteoIO to search first in the ../../ directory (for compiling the examples) and then in the home directory
    • fixed wrong license file
    • fixed LibXML++ detection that was not working on more recent systems
    • fixed static-only compilation
    • better detection of GribApi
    • simplification of the CMakeLists, now requiring cmake > 2.8.0
    • removed dependency of binary packages to libproj
  • Documentation
    • grid_reading example
    • better documentation
    • better diagrams in the documentation (data flow diagram)
    • METEO_TIMESERIES and STATION_TIMESERIES renamed for clarity
  • Specific bug fixes
    • estimation of average sampling rate much improved: it now handles multiple stations and partially filled buffers. Units have been fixed
    • bugfix in libinterpol1D
    • better propagation of throw/nothrow in Config, throw/nothrow options now in IOUtils
    • fixed a bug when handling nodata in Atmosphere::Unsworth
    • fixed a potential bug in Hamon undercatch filter
    • slope_algo selection was not kept through BufferedIOHandler, this has been fixed
    • fixed a double projection of potential radiation when projecting to horizontal
    • fixed bugs with the derivative of a vector of data
    • fixed the clear buffer method
    • made median computations work with newer STL implementations
  • Dates and timers
    • full ISO timestamp read/write (ie with time zone information) in Date
    • fixed rounding bug in Date, performance improvements for rounding
    • Dates can be rounded to a day
    • julian day number was numerically instable, this has been fixed
    • timer up to 1us or 1ns resolution, depending on platform
    • implemented more accurate timers for POSIX systems
  • Data Generators
    • DataGenerators introduced
    • CST data generator
    • ILWR data generator using last cloudiness during the night implemented
    • POT_RADIATION generator
    • SIN data generator
  • New algorithms implemented
    • rewrote Corripio algorithm to be cell-centered
    • Thomas algorithm for tridiagonal matrix
    • implemented a 2 poles Butterworth filter for low pass filtering
    • noisy linear regression now based on distance to the regression line instead of corelation coefficient
    • resampling algorithm for handling daily sums of solar radiation, checked on Weissflujoch data
    • the precipitation algorithm that simulates sow redistribution now pushes snow downhill in a more physically meaningful way
    • fast cubic root optimization (~3 times faster)
  • Various
    • renammed "special points" as "Point Of Interest (POI)"as this should be more familiar to the users
    • debug output moved to object.toString()
    • cross platform path expansion added (supporting relative paths)
    • generic objects serialization
    • added the == and != operators to the arays
    • default ilwr model is now Unsworth in Atmosphere
    • changed default snow albedo to 0.85 for all models relying on it

Created: 8 years 2 months ago
by Mathias Bavay

Labels:
Other:Deprecated
Phase:QA

Old Revisions