WSL/SLF GitLab Repository

  1. 06 Feb, 2015 1 commit
  2. 30 Oct, 2014 1 commit
    • Mathias Bavay's avatar
      In order to make it more modular and allow more advanced processing (virtual... · 7af06c60
      Mathias Bavay authored
      In order to make it more modular and allow more advanced processing (virtual stations, downscaling, multiple io sources) the IOManager is now a proper wrapper: the processing is fully delegated to either a GridsManager or a TimeSeriesManager. These can in turn be reused at some other places (like in the Meteo2DInterpolator) to offer full buffering and processing of "local" time series. The buffering is now done by these two new classes (therefore the BufferedIOHandler class has been removed) and it is planned that dataClasses will be implemented for proper ringbuffers (one for time series, one for grids and one for isolated points) and receive the generic buffering code later on. 
      
      A new fastPow(double, int) has been implemented for positive exponents. The begining of a generic handling of units also appeared in IOUtils. Finally, the ProcessingLevels are now defined in IOUtils instead of IOManager.
      7af06c60
  3. 12 Aug, 2014 1 commit
  4. 04 Aug, 2014 1 commit
  5. 31 Jul, 2014 1 commit
  6. 19 Jun, 2014 1 commit
    • Mathias Bavay's avatar
      Removing nodata values seemed like a good idea when doing a sort(), but this... · 2146669a
      Mathias Bavay authored
      Removing nodata values seemed like a good idea when doing a sort(), but this created some bugs (sometimes it is still valuable to know that y=nodata after sorting). This is now an optional behavior. The interpolated grids are now buffered in Meteo2DInterpolator. The grid buffering code has been cleaned up and backported to BufferedIOHandler. The spatial interpolations specific points (for virtual stations, etc) has been moved to Meteo2DInterpolator in order to make IOManager smaller and more focused on general data flow handling.
      2146669a
  7. 01 Sep, 2013 1 commit
    • Mathias Bavay's avatar
      Finally, here we are: the spatial interpolation algorithms are constructed... · 29a18c18
      Mathias Bavay authored
      Finally, here we are: the spatial interpolation algorithms are constructed only once and remain as long as the Meteo2DInterpolator remains (generally, as long as IOManager remains). This means that an interpolation algorithm can now keep its own copy of whatever data it wants (for example, dem) to tweak it between calls.
      29a18c18
  8. 30 Aug, 2013 1 commit
    • Mathias Bavay's avatar
      Getting closer to the goal of persistent spatial interpolation objects. There... · 88e7cb8e
      Mathias Bavay authored
      Getting closer to the goal of persistent spatial interpolation objects. There are no "initialize" and "getQualityRating" anymore, the initializations are performed by "getQualityRating". The arguments that used to be passed to the constructors are now split between constructor and getQualityRating. A few hacks will have to be removed: we should be able to get rid of some of the callbacks, the plain copy of Date and Dem will have to be avoided (most probably by working with pointers) and the map of objects that has been implemented (but commented out) will be enabled. So, a few hacks remain, but this is already a nice, big step forward!
      88e7cb8e
  9. 29 Aug, 2013 1 commit
  10. 17 Apr, 2013 1 commit
    • Mathias Bavay's avatar
      In order to implement an efficient and portable object serialization, it has... · ba0b7d3e
      Mathias Bavay authored
      In order to implement an efficient and portable object serialization, it has been decided that all serializable objects would be manually serialized to an std::iostream. Then, the parallelization framework (mpi, popc, etc) can take over this stream and move it to another node. Therefore, the operators "<<" and ">>" are now reserved for serialization (as seems to be standard) and the debug outputs are obtained by printing "object.toString()". This means that all debug code has potentially to be fixed, by replacing "std::cout << object" by "std::cout << object.toString()".
      ba0b7d3e
  11. 22 Mar, 2013 1 commit
  12. 21 Mar, 2013 1 commit
    • Mathias Bavay's avatar
      The METEO_TIMSERIES and STATION_TIMESERIES have been renamed in METEO_SET and... · 82b555ad
      Mathias Bavay authored
      The METEO_TIMSERIES and STATION_TIMESERIES have been renamed in METEO_SET and STATIONS_SET in order to better reflect their content. 
      
      The concept of data generators is introduced. A new section has been created [Generators] to define how to generate data for each parameter when everything else failed. Soon, you will be able to generate ILWR directly by declaring it in your io.ini!
      82b555ad
  13. 29 Oct, 2012 1 commit
  14. 25 May, 2012 1 commit
  15. 10 Feb, 2012 1 commit
    • Thomas Egger's avatar
      IOManager: added another interpolate procedure that takes as arguments a Date,... · b2991182
      Thomas Egger authored
      IOManager: added another interpolate procedure that takes as arguments a Date, a DEMObject, the parameter to interpolate, a vector of Coords objects and a vector of doubles. The Coords represent different points in the DEM. The interpolation is only performed for these points and for each point one double value is stored in a vector. 
      
      Furthermore IOManager now has a member variable called interpolater of type Meteo2DInterpolator. A circular inclusion problem has been solved between IOManager and Meteo2DInterpolator.
      
      libinterpol2D bugfix: The SimpleDEMWindInterpolate algorithm had  a small bug in it, it wasn't interpolating values in the last row or last column of the 2D grid.
      b2991182
  16. 27 Jan, 2012 1 commit
  17. 17 May, 2011 1 commit
  18. 04 May, 2011 1 commit
    • Mathias Bavay's avatar
      The POPC version has been heavily transformed. Since we would need IOManager... · 0394dcf3
      Mathias Bavay authored
      The POPC version has been heavily transformed. Since we would need IOManager has a popc object and this is quite hard (we need a backreference in Meteo2DInterpolator), all parclasses have been removed. Instead, the user will have the responsability to packaged IOManager in his own parclass if needed. This makes the code simpler and skips difficult issues...
      
      A new fill method has been added to the Array2D and Array3D templates that does the reverse of subset (ie: reassemble arrays).
      
      Better error messages have been put in SNIO.
      
      A new Date setter that takes a Date object has been created.
      
      This version does NOT correctly compile with the autotools (it leads to a segfault when running code using MeteoIO), but the cmake compiled library works fine.
      0394dcf3
  19. 09 Feb, 2011 1 commit
  20. 31 Jan, 2011 1 commit
    • Mathias Bavay's avatar
      The (advanced) configuration of the BufferedIOHandler through io.ini (General... · be423136
      Mathias Bavay authored
      The (advanced) configuration of the BufferedIOHandler through io.ini (General section) has been added. It currently introduces two keywords (BUFF_CHUNKS_SIZE and BUFF_CHUNKS) to drive how much data to read at once and how much data to buffer. Currently, their product is directly used in the read, thus not reading anything by chunks smaller than a full buffer.
      
      Fixed some << outputs, two compilation warnings found on Hera as well as introduced.
      be423136
  21. 26 Jan, 2011 1 commit
    • Mathias Bavay's avatar
      A new group of classes has been created, under the meteolaws subdirectory.... · 4b63f416
      Mathias Bavay authored
      A new group of classes has been created, under the meteolaws subdirectory. This contains various general meteorological laws, such as a sun radiation model, standard atmosphere, etc
      
      The first implementation (not tested yet) of a non-linear least square fit algorithm has been implemented in the libfit1D. 
      
      Several documentation issues have been fixed (obsolete code examples, etc) and classes grouped by modules. This should help the user to quickly locate the classes of interest. 
      4b63f416
  22. 14 Jan, 2011 1 commit
    • Thomas Egger's avatar
      Added functionality to the Meteo2DInterpolator: it is now possible to access... · 622b5979
      Thomas Egger authored
      Added functionality to the Meteo2DInterpolator: it is now possible to access the iomanager and hence to access historical data points from within any spatial interpolation.
      
      The IOManager has been expanded to:
      1) cache already filtered data points and
      2) provide a getAvgSamplingRate() function that returns the average data points seen per day.
      622b5979
  23. 07 Jan, 2011 1 commit
    • Mathias Bavay's avatar
      The documentation and examples have been updated to reflect the latest changes... · f7afddcf
      Mathias Bavay authored
      The documentation and examples have been updated to reflect the latest changes in MeteoIO (namely: the merging of MeteoData with StationData). A documentation bug has been fixed, that involved deleting the doxygen comments for the commented "clone()" method in IOInterface. Since this is not used anywhere and has been commented out for a while, this method has been fully deleted.
      
      Meteo2DInterpolator now has its own << operator for debugging purposes.
      f7afddcf
  24. 09 Dec, 2010 1 commit
  25. 02 Nov, 2010 1 commit
    • Mathias Bavay's avatar
      An error was found: the linear regression returns the regression coefficient... · da0c9321
      Mathias Bavay authored
      An error was found: the linear regression returns the regression coefficient r, not r2!! It has been modified so that it returns |r| and prints r2 in the info strings.
      
      The HNW_SNOW spatial interpolation algorithm had errors. It was not properly calling its base algorithm (the one computing the initial distribution) and its rating was too low. It has now the same rating as CST_LAPSE for one station when the lapse rate is provided. This could be improved in the future, to make it depend on the rating of the base algorithm...
      da0c9321
  26. 29 Oct, 2010 2 commits
    • Mathias Bavay's avatar
      The "frac" optional argument (for fractional lapse rate, or relative lapse... · 9394b505
      Mathias Bavay authored
      The "frac" optional argument (for fractional lapse rate, or relative lapse rate) has been added to IDW_LAPSE. The documentation has been updated. If HS is interpolated, it is now checked for min/max to be greater than 0.
      9394b505
    • Mathias Bavay's avatar
      The SMET plugin was the only plugin not to use "STATION#" for specifying its... · 713481af
      Mathias Bavay authored
      The SMET plugin was the only plugin not to use "STATION#" for specifying its input files/stations (besides plugin reading a path). It has been modified for consistency. This WILL break older io.ini files...
      
      A new projection method has been added in lib2Dinterpol: fracProject that projects a value according to the elevation based on a fractional (or relative) change of the value with the elevation. This can be enabled in CST_LAPSE by adding the "frac" keyword as the second argument (after the rate value). 
      
      The documentation "how to write a spatial interpolation algorithm" has been updated to reflect recent changes in the code.
      
      The FindMeteoIO and FindOCCI files for cmake were not compatible with cmake<2.6.1. They have been rewriten to be compatible with older versions (specially like the 2.6.0 deployed on Debian). A bug in CMakeList for the IMIS plugin has been fixed (wrong cmake variable name used).
      713481af
  27. 27 Oct, 2010 1 commit
    • Mathias Bavay's avatar
      A new spatial interpolation algorithm, LocalLapse_IDW (key being LIDW_LAPSE)... · 0b6179bc
      Mathias Bavay authored
      A new spatial interpolation algorithm, LocalLapse_IDW (key being LIDW_LAPSE) has been implemented. It takes a number of stations  as mandatory parameter, and computes for each pixel the IDW_LAPSE only using the closest n stations. This is specially useful when dealing with large number of stations over a wide area. Please keep in mind that since the linear regression calculation might exclude some outliers, a sufficiently large number of stations should be given.
      
      The algorithm that is computing a linear regression with the possibility of excluding some outliers has been renamed as NoisyLinRegression and moved to Interpol1D. Moreover, the regression algorithm provide an information stringstream that can be directly printed to the screen (usual behavior) or differently handled (specially useful for mutliple regressions calculations or when using GUIs).
      
      The spatial interpolation algorithm MUST now be initialized by calling their initialize(param) method. This makes it possible to optimize their processing (not recomputing the list of stations to process, etc) and also allow to build an info string that can be returned with the interpolation and contain various useful information (specially for GUIs).
      0b6179bc
  28. 25 Oct, 2010 1 commit
    • Mathias Bavay's avatar
      First (non working) implementation of the ordinary kriging. The variogram fit... · 9cbc0659
      Mathias Bavay authored
      First (non working) implementation of the ordinary kriging. The variogram fit still has to be done... But a few const issues have been fixed in Matrix and a new method added (to read a 1x1 matrix as a scalar).
      
      Fixed some doxygen warnings, added a howto for writing spatial interpolations.
      
      Better Oracle OCCI detection, renammed into FindOCCI.cmake and used by the ImisIO plugin compilation.
      9cbc0659
  29. 16 Aug, 2010 1 commit
  30. 26 Jul, 2010 1 commit
  31. 21 Jun, 2010 1 commit
    • Thomas Egger's avatar
      Directory structure change: src folder now called meteoio · 752c0068
      Thomas Egger authored
      Overall all include statements within in the library have been replaced by angle brackets, the default install path for the include file is $CMAKE_INSTALL_DIR/include/meteoio, the meteoio libraries (static and shared) will be installed in $CMAKE_INSTALL_DIR/lib per default.
      
      The plugins will be installed in the subdirectory $CMAKE_INSTALL_DIR/lib/meteoio/plugins
      752c0068
  32. 30 Apr, 2010 1 commit
  33. 21 Apr, 2010 1 commit
  34. 12 Apr, 2010 1 commit
  35. 26 Mar, 2010 1 commit
  36. 25 Mar, 2010 1 commit
    • Thomas Egger's avatar
      The new interpolations interface with all algorithms that used to reside... · a318acec
      Thomas Egger authored
      The new interpolations interface with all algorithms that used to reside within libinterpol2D exclusively. Every algorithm is an own class derived from InterpolationAlgorithm abstract base class. An AlgorithmFactory instantiates the required algorithm within class Meteo2DInterpolator. The user needs to configured which algorithms to be used within the section [Interpolations2D] in the io.ini:
      
      [Interpolations2D]
      TA::algorithms = cst cst_lapse idw_lapse
      TA::cst_lapse = -0.008
      
      libinterpol1D has a new function for the calculation of arithmetic means. all of libinterpol2D is static. the rest will be thrown out in the coming days.
      a318acec
  37. 16 Feb, 2010 1 commit
    • Mathias Bavay's avatar
      The class Stationdata now properly uses the new Coords class. All usual... · b40dedb4
      Mathias Bavay authored
      The class Stationdata now properly uses the new Coords class. All usual dependencies have been fixed (A3DIO.cc) but not (yet) the optional plugins. The Coords class has been modified so that it computes the matching coordinates as soon as possible instead of the previous implementation that was delaying it as much as possible (thus making "const Coords..." impossible).
      
      The includes have been cleaned up (compilation was failing because of multiple "using namespace" in header files) and all "using namespace" have been removed from header files (please don't put any of these back!!). The doxygen comments has been updated.
      b40dedb4
  38. 28 Jan, 2010 1 commit
    • Mathias Bavay's avatar
      The parallelization was lagging behind, so this has been fixed: One internal... · f1989ba4
      Mathias Bavay authored
      The parallelization was lagging behind, so this has been fixed: One internal variable was not serialized in DEMObject, there was no serialization at all in Meteo2DInterpolator and some marshalling methods had to be written (in marshall_meteoio). The serialization of Meteo2DInterpolator should be tested however!
      
      The marshalling code has been cleaned up and some missing "std::" added in FilterAlgorithms (doxygen was complaining).
      f1989ba4
  39. 18 Jan, 2010 1 commit
    • Thomas Egger's avatar
      A new interface for the Meteo2DInterpolator: · 0637f7fd
      Thomas Egger authored
      void interpolate(const MeteoData::Parameters& meteoparam, Grid2DObject& result);
      
      The new Meteo2DInterpolator class parses the ConfigReader object passed to it and stores all possible algorithms for each MeteoData variable (user configured). In the next step the user configured algorithms shall be invoked and a quality estimator chooses the most appropiate of the algorithms to interpolate the 2D grid for a given meteo parameter.
      
      Adjustments needed to be made to the ConfigReader class (function findKeys) and a few comments have been added to MeteoFilter for more clarity of the ConfgReader parsing process.
      0637f7fd