WSL/SLF GitLab Repository

  1. 24 Oct, 2013 1 commit
    • Mathias Bavay's avatar
      The noisy linear fit now removes points based on their distance to the... · cf6784d4
      Mathias Bavay authored
      The noisy linear fit now removes points based on their distance to the regression line (this should be marginally better but is anyway simpler and faster). 
      
      The new usage timers have been slightly cleaned up for white spaces and for precision (casting to long double first in order to avoid loss of precision as shown with the previous timers). The declaration order in the class now takes care of alignments issues.
      cf6784d4
  2. 05 Oct, 2013 1 commit
  3. 18 Sep, 2013 1 commit
  4. 16 Sep, 2013 1 commit
    • Mathias Bavay's avatar
      Some "TODO" have been removed, a missing check has been added in... · 6ecfe7bc
      Mathias Bavay authored
      Some "TODO" have been removed, a missing check has been added in Interpol1D:linRegression (at least 2 valid points are required), type inconsistencies have been fixed in FilterTukey and ProcessinStack. However using size_t for the meteo parameter index is not necessarily a good idea and this will require a careful review.
      6ecfe7bc
  5. 09 Sep, 2013 1 commit
    • Mathias Bavay's avatar
      A new test has been created to cover basic statistical functions on vectors.... · 9604a0f1
      Mathias Bavay authored
      A new test has been created to cover basic statistical functions on vectors. Two bugs have been found and fixed when computing the derivative on a vector of data (the right derivative was in fact a left derivative and the case of X containing nodata was not covered).
      
      Documentation fixes in libinterpol2D and ResamplingAlgorithms. The cmake macro for finding MeteoIO now looks first in the home directory of the user on Mac (as is done on Linux).
      9604a0f1
  6. 30 Aug, 2013 1 commit
    • Mathias Bavay's avatar
      The median computations were relying on std::nth_element and wrongly assuming... · 3ec508db
      Mathias Bavay authored
      The median computations were relying on std::nth_element and wrongly assuming that the output would be sorted. This is non-standard behavior and is not the case with more recent versions of the STL. This has been fixed.
      
      The ProcessingStack constructor has been optimized by using new methods of Config to remove some now redundant code.
      3ec508db
  7. 24 Jul, 2013 1 commit
    • Mathias Bavay's avatar
      Moving forward with the trend/residuals approach for the spatial... · 597e6f48
      Mathias Bavay authored
      Moving forward with the trend/residuals approach for the spatial interpolations: here are the necessary changes in the supporting infrastructure: basically, better handling of forced lapse rates and fractional lapse rates, proper toString() methods for the fit1D object and components
      597e6f48
  8. 19 Jul, 2013 1 commit
  9. 28 Mar, 2013 1 commit
  10. 26 Mar, 2013 1 commit
  11. 10 Mar, 2013 1 commit
  12. 05 Mar, 2013 1 commit
  13. 11 Feb, 2013 1 commit
  14. 29 Jan, 2013 1 commit
  15. 03 May, 2012 1 commit
  16. 27 Jul, 2011 1 commit
    • Mathias Bavay's avatar
      A (more) intelligent handling of buffered grids has been implemented: the... · 9f230fd9
      Mathias Bavay authored
      A (more) intelligent handling of buffered grids has been implemented: the grids are stored in the equivalent of a circular buffer of a given size (user defined, or 10 by default). This prevents running out of memory when processing large numbers of grids!
      
      A method for computing quantiles has been implemented in libinterpol1D. A vector of data has to be provided as well as a vector of the desired quantiles (ex: 0.25, 0.5, 0.75) and a vector of values for these quantiles will be returned. So far, the algorithm that is used produces the same results as R in default operations. The possibility of choosing which quantiles algorithms might be added in the future.
      
      The getJulianDayNumber method was just totally wrong... This has been fixed. One can also force a GMT day of year with a flag.
      
      Finally, some documentation has been written/updated.
      9f230fd9
  17. 20 Jul, 2011 1 commit
    • Mathias Bavay's avatar
      Some methods have been moved into another class (like the simple linear... · 7797ea1c
      Mathias Bavay authored
      Some methods have been moved into another class (like the simple linear interpolation between two points that is now in ResamplingAlgorithms), some renammed (like the new weightedMean that replaces the ill-nammed "linearInterpolate"). The regression model based on two segments is now part of libinterpol1D and has been renammed. More regression models have been implemented. 
      
      The "initFit" method of Fit1D has been renammed in "fit" and the setGuess method now turns fit_ready to true, so that a user can force his provided parameters to be used by a given model (do a setGuess() with the parameters, then call f(x) without calling "fit", so no internal fit of the parameters would be performed).
      7797ea1c
  18. 19 Jul, 2011 2 commits
  19. 15 Jul, 2011 1 commit
    • Mathias Bavay's avatar
      The 1D regression component is now coming into shape: the Fit1D class receives... · 42b4e784
      Mathias Bavay authored
      The 1D regression component is now coming into shape: the Fit1D class receives two vectors (of X and Y), compute a specified regression model, then transparently provides modelled values (calling fit1D.f()). Introducing a new regression model consists of implementing this f() method as well as a method computing initial guesses. A new method has been introduced in libInterpol1D that computes the derivative of a data set, given a vector of X and a vector of Y. Another method has been implemented to sort such two vectors in order of increasing X.
      
      Partial pivoting has been implemented in Matrix, and complete pivoting has been started but is not finished yet (it will throw an exception if used).
      42b4e784
  20. 30 Jun, 2011 1 commit
    • Mathias Bavay's avatar
      Spatial resampling has been added. This is still quite primitive (no end-user... · 84a8c69f
      Mathias Bavay authored
      Spatial resampling has been added. This is still quite primitive (no end-user front end or interaction, only nearest neighbor or bilinear), but can nevertheless be convenient. Since the "round" function call was needed, the VC++ implementation has been moved to IOUtils so no matter what is the compiler, we can use "round" in the code (this is NOT in the IOUtils namespace, but still in the mio namespace). 
      
      Several obsolte comments/hacks have been removed and the DEBUG_ARITHM flag commented out, since it does not belong into a library (this is per process, not per object). The VC++ "equivalent" flag still needs to be checked (ie: is it per process or per object?). A missing "required" flag for cmake for Oracle has been added.
      
      Finally, the lsm file had been forgotten in the last release... this is now in order.
      84a8c69f
  21. 17 May, 2011 1 commit
  22. 20 Apr, 2011 1 commit
    • Mathias Bavay's avatar
      A bug has been found in the processing of the variance: we were using a naive... · 9b9ba4c3
      Mathias Bavay authored
      A bug has been found in the processing of the variance: we were using a naive formula that is ill-fitted to signals showing small variations around a large mean. This lead to catastrophic cancellation and negative values... This has been replaced by a (slower) compensated formula (that works in two passes). The standard deviation filter has been fixed. 
      
      The Tukey filter has been brought back into the new infrastructure and should now be usable. However it is not suitable to snow heights: in such a case, the standard deviation is too small (or even zero) and the signal might show some sudden variations (like in the case of a snow fall) that would therefore be falsely rejected. This filter seems much better suited to wind speeds that exhibit some constant background noise, thus a non-null standard deviation.
      
      The rate filter can now take 2 arguments: in such a case, the first one is the minimum rate and the second the maximum rate. This would allow to define a descent rate different from the climb rate.
      
      Several error messages have been improved in A3DIO and general plugin loading.
      
      Finally, two small tools for working with smet files have been contributed, one allowing transparent loading of smet files in xmgrace (smet2agr). And the example io.ini has been fixed (it had been broken and was not working with the examples anymore)
      9b9ba4c3
  23. 15 Mar, 2011 1 commit
    • Mathias Bavay's avatar
      The plugins now export their symbols when compiled with Visual C++. · ed696434
      Mathias Bavay authored
      The arrays are now using the vector filling methods when possible. A specialized template for convertString(unsigned int) has been written. 
      
      A two segments linear fit (for elevation detrending) has been implemented with a fixed inflection point. This is quite primitive but allows the LLIDW spatial interpolation to use it and therefore to behave like the traditional SLF SnowFit program. More work will be needed for fully configurable regression algorithm choice though... 
      
      Some namming issues have been fixed in COSMOXML. A better emissivity handling has been implemented in SNIO to be closer to the original Snowpack (ie: compute clear sky ILWR when no cloudiness/emissivity is given).
      ed696434
  24. 09 Mar, 2011 1 commit
    • Mathias Bavay's avatar
      In SNIO, the METAFILE can now be optional (which means that the metadata... · e9063b21
      Mathias Bavay authored
      In SNIO, the METAFILE can now be optional (which means that the metadata remain nodata, the user has therefore to fill them himself). This is used by Snowpack.
      
      After the Visual C++ compilation log from Raphael, some changes have been implemented: lots of warnigs about signed/unsigned fixed, some unreachable code removed, and some methods reimplemented for Windows. We are not there yet, but moving closer...
      e9063b21
  25. 10 Dec, 2010 1 commit
    • Mathias Bavay's avatar
      The smoothing algorithms have been renammed as Process instead of Filter. The... · 11f5bc95
      Mathias Bavay authored
      The smoothing algorithms have been renammed as Process instead of Filter. The rate and the Tukey filters have been improved so that they correctly handles nodata.
      
      A new resampling algorithm has been introduced: "none". It does just that: nothing. This is an easy way to debug filters by not performing any temporal interpolations.
      
      The getMedian method has been re-implemented using the standard nth_element method for increased performances.
      
      The doxygen documentation has been updated to reflect the latest changes.
      11f5bc95
  26. 07 Dec, 2010 1 commit
  27. 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
  28. 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
  29. 03 Sep, 2010 1 commit
    • Mathias Bavay's avatar
      The embryo of a matrix class has been implemented. It is still based on... · eb83911b
      Mathias Bavay authored
      The embryo of a matrix class has been implemented. It is still based on Array2D and therefore the indexing is still 0 to n-1 instead of being 1 to n and the coordinates are swapped compared to normal matrices.
      
      New regression models have been added, all based on the linear regression code but using variable transforms to achieve their goal. 
      
      The global header file (MeteoIO.h) was incomplete. It has therefore been reorganized and now contains everything that it should...
      eb83911b
  30. 19 Aug, 2010 1 commit
    • Mathias Bavay's avatar
      Several 1D statistical methods has been implemented while the existing ones... · 5b5cd758
      Mathias Bavay authored
      Several 1D statistical methods has been implemented while the existing ones have been made nodata safe.
      
      Added a redefinition of the << operator for IOPlugin and IOHandler. This should be convenient for debugging!
      
      Some small optimizations have been brought into the spatial interpolations following some tests with cachegrind. Nothing huge, but small improvements.
      
      
      5b5cd758
  31. 12 Aug, 2010 1 commit
  32. 25 Jun, 2010 1 commit
  33. 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
  34. 09 Jun, 2010 2 commits
    • Thomas Egger's avatar
    • Thomas Egger's avatar
      New interpolation interface: Now the 1D interpolation can be configured by the... · 8f5a7d58
      Thomas Egger authored
      New interpolation interface: Now the 1D interpolation can be configured by the user through an own section in io.ini:
      
      [Interpolations1D]
      TA::resample = linear
      TA::args     = extrapolate
      RH::resample = nearest_neighbour
      HNW::resample = no
      P::resample = linear
      
      Currently two algorithms are implemented: linear interpolation and nearest_neighbour interpolation. The interpolation can be switched off explicitly by P::resample = no
      
      The default remains linear resampling, however the linear resampling may not only resample within bounds (interpolate), but also out of bounds (extrapolate), this needs to be configured with the resampling algorithm argument "extrapolate" as seen in the example above. 
      8f5a7d58
  35. 28 May, 2010 1 commit
    • Mathias Bavay's avatar
      First, the issue 57 (angle/bearing conversion) has been addressed. · 68605c9a
      Mathias Bavay authored
      Then, the remaining namespace issues with doxygen have been fixed, by enclosing the full class implementation in the namespace (as seen for the libstdc++). This removes all these irritating issues. But the popc version has been broken by the change (as seen in LegacyIO).
      68605c9a
  36. 21 Apr, 2010 1 commit
  37. 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
  38. 11 Dec, 2009 1 commit
    • Mathias Bavay's avatar
      A new slope computation algorithm has bee added: CARD It computes the slope... · 27deca55
      Mathias Bavay authored
      A new slope computation algorithm has bee added: CARD It computes the slope using Corripio and then discretizes the azimuth along 8 cardinal directions and the slope by degrees. This should be all that GEOtop needs for its drainage direction (then simply calling a dem.update("CARDINAL")).
      
      The copyright notices have been put in place in all files (headers and cc) with proper attribution of copyright.
      
      The documentation has been improved, specially fixing issue 22. Warning messages of doxygen have been fixed. An example subdirectory has been created in /doc and contains (currently) 2 examples of code using MeteoIO.
      27deca55