WSL/SLF GitLab Repository

  1. 27 Aug, 2015 2 commits
  2. 25 Feb, 2015 1 commit
    • Mathias Bavay's avatar
      A new readDirectory() method has been implemented that directly returns a list... · 40413ba6
      Mathias Bavay authored
      A new readDirectory() method has been implemented that directly returns a list of strings (slightly more convenient to use). An innacurracy has been fixed in IOUtils: lat_epsilon and lon_epsilon were defined in rad when they should have been in deg. The Coords::toString() method has been slightly improved by allowing more digits for lat/lon. The smet_extract.sh script can now provide a list of available fields if no field has been specified.
      40413ba6
  3. 13 Feb, 2015 1 commit
    • Mathias Bavay's avatar
      An invalid C to K conversion was fixed (it used the water triple point... · 7a94dc73
      Mathias Bavay authored
      An invalid C to K conversion was fixed (it used the water triple point temperature instead of melt/freeze). A much improved smet_extract that processes one file at a time has been committed. The config object now is much more verbose when reporting an invalid key and does not write out invalid key/values (basically, key with empty values). This makes it possible for example in Snowpack to re-run a simulation using the backed up ini file (without any changes).
      7a94dc73
  4. 04 Dec, 2014 1 commit
  5. 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
  6. 21 Oct, 2014 1 commit
  7. 12 Aug, 2014 1 commit
  8. 16 May, 2014 1 commit
  9. 08 May, 2014 1 commit
  10. 16 Mar, 2014 1 commit
  11. 03 Mar, 2014 1 commit
  12. 27 Jan, 2014 1 commit
  13. 23 Jan, 2014 1 commit
  14. 28 Oct, 2013 1 commit
    • Mathias Bavay's avatar
      The filters have been slightly simplified, some IOUtils functions optimized... · 284f1213
      Mathias Bavay authored
      The filters have been slightly simplified, some IOUtils functions optimized (after reading an interesting post about the handling of rvalues), a bug fixed in PNGIO on Windows, the macros MAX and MIN are not used anymore (relying on std::max and std::min instead). A new data generator is on its way to generate HNW from HS differences (but this will require architectural changes to the DataGenerator).
      284f1213
  15. 18 Sep, 2013 1 commit
  16. 19 Jun, 2013 1 commit
    • Mathias Bavay's avatar
      In order to properly import config files while supporting relative paths, it... · c02d0f1f
      Mathias Bavay authored
      In order to properly import config files while supporting relative paths, it is necessary to internally expand the paths (as well as the symlinks) to check for multiple inclusions, to properly look for a file located relative to another one (instead of related to the execution directory). The IOUtils::cleanPath function has been expanded to support this kind of processing (with a flag to turn it on of off) and a few functions added (getPath, getFilename). The code for Windows has been written but not tested yet. The Posix implementation should also be tested on osx.
      c02d0f1f
  17. 14 Jun, 2013 1 commit
    • Mathias Bavay's avatar
      The default ilwr model in Atmosphere as been changed to Unsworth. The fixed... · 87556084
      Mathias Bavay authored
      The default ilwr model in Atmosphere as been changed to Unsworth. The fixed snow albedo has been set to 0.85 for all filters/generators using it. 
      
      The Config class can now import an ini file from another ini file, this could greatly simplify the management of operational deployments (a station that has a special configuration now can simply import a standard config file and redefine what it needs). This is either done with IMPORT_BEFORE or IMPORT_AFTER in order to choose who has precedence. Multiple (ie recursive) inclusions are supported with some enforced limitations to prevent circular dependencies.
      87556084
  18. 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
  19. 21 Feb, 2013 2 commits
  20. 14 Feb, 2013 1 commit
    • Mathias Bavay's avatar
      In order to try to be closer to the spirit of the STL, now the empty... · 3f45c394
      Mathias Bavay authored
      In order to try to be closer to the spirit of the STL, now the empty strings/vectors/lists are tested with .empty(), the first/last elements of vectors accessed with front()/back(), the empty strings are not contructed with string("") but with string(), etc This makes a benchmark based on meteo_reading ~4% faster and this makes the code suprisingly easier to read. 
      
      Some extra constification took place as well as some minor code cleanup (optimizing the comparison between two vectors in order to perform less tests, etc).
      
      The Date class can now properly generate and parse full ISO timestamps, including time zone information. The full specification is now supported by convertString() with a helper method in the Date class. Ouputing an ISO string with its time zone is done by requesting the ISO_TZ format.
      
      
      3f45c394
  21. 04 Dec, 2012 1 commit
  22. 30 Nov, 2012 2 commits
    • Mathias Bavay's avatar
      The FileIndexer class has been expanded to cater to the needs of SMET (it is... · ebddecb6
      Mathias Bavay authored
      The FileIndexer class has been expanded to cater to the needs of SMET (it is not the most efficient, but for now...). A bug has been fixed that was leading to segfault. The explanation for the remaining slowness of SNIO has been found: the Config keys were re-read for every parsed line... It is now 10x faster, ie up to par with SMET (more or less).
      ebddecb6
    • Mathias Bavay's avatar
      The indexing for SNIO and SMETIO was not working (because of BUFF_READ_BEFORE,... · f531e8cd
      Mathias Bavay authored
      The indexing for SNIO and SMETIO was not working (because of BUFF_READ_BEFORE, we are almost never restarting exactly at the last read time step, but before). Moreover, SNIO was always reading the whole file, even past the specified dateEnd. This was extremely slow on large input file. This has been fixed. SNIO is still quite slow (it seems something like 10x compared to SMETIO), but it is much more acceptable. A file indexer class has been implemented in IOUtils.
      f531e8cd
  23. 28 Nov, 2012 1 commit
  24. 20 Jun, 2012 1 commit
    • Mathias Bavay's avatar
      The MeteoData == operator now compares with an epsilon. The... · 8e49698d
      Mathias Bavay authored
      The MeteoData == operator now compares with an epsilon. The chekEpsilonEquality function has been rewritten, according to best practise and inlined. The powN functions have been moved to MathOptim and inlined. This makes the benchmarks 2% faster, that's such a victory...
      8e49698d
  25. 19 Jun, 2012 1 commit
  26. 17 Apr, 2012 1 commit
    • Mathias Bavay's avatar
      The resampling has been deeply transformed in order to produce more consistent... · 15f08c18
      Mathias Bavay authored
      The resampling has been deeply transformed in order to produce more consistent results. By doubling the data cut window, the resampling can now properly fill a 23 hours gap with a 24 hours window. The resampling now either fills the whole gap or do not fill anything (if the gap is too large). When activating "extrapolate", a gap is now filled by the sides instead of by the middle (which was producing weird results). The drawback is that the cut window had to be doubled, which is quite costly (going from 1 day to 10 days makes it 7.5 times slower, and going to 20 days makes it 15 times slower). However, this more logical and consistent behavior will allow the user to specify the window size that he needs instead of always picking something extremely large to be on the safe side. Finally, the resampling code has been cleaned up so that each algorithm is built along similar lines.
      15f08c18
  27. 02 Mar, 2012 1 commit
  28. 06 Jan, 2012 1 commit
    • Mathias Bavay's avatar
      New methods "moveByXY" and "moveByBearing" have been added to Coords,... · e2e3db32
      Mathias Bavay authored
      New methods "moveByXY" and "moveByBearing" have been added to Coords, addressing issue 39. Code cleanup and extensive documenting have been performed on Graphics and PNGIO, that now supports creating world file (optionnally). A new option has also been added to ARCIO, "A3D_view", to generate file names compatible with the Alpine3D's grid viewer (false by default). A new function to remove the extension from a file name has been implemented in IOUtils.
      e2e3db32
  29. 02 Nov, 2011 1 commit
    • Mathias Bavay's avatar
      A new method, getExtension() has been added to IOUtils in order to return the... · 7c5227cc
      Mathias Bavay authored
      A new method, getExtension() has been added to IOUtils in order to return the extension of a given filename. This is used by the SMETIO and SNIO plugins to automatically add the proper extension to input file names if they don't already have one.
      
      The Median Average Deviation filter has been ported (and validated) to the new filtering infrastructure.
      
      Several error messages have been improved.
      7c5227cc
  30. 21 Sep, 2011 1 commit
    • Mathias Bavay's avatar
      Two new methods have been implemented in IOUtils: bearing(string) that... · 1d4aac7b
      Mathias Bavay authored
      Two new methods have been implemented in IOUtils: bearing(string) that converts a string like "NW" into a numeric bearing and isNumeric(string) that returns true if the given string represents a number.
      
      GSNIO has been modified so that the slope bearing are supported, both numeric and as strings (ie: "SSW" for example). The GSN field "NAME" is also mapped to StationData::name.
      
      Finally, an option has been added to cmake, so the user can chose to compile as static library (now false by default).
      
      And as usual, I forgot to update meteoio.lsm when doing the release...
      1d4aac7b
  31. 24 Aug, 2011 1 commit
  32. 16 Aug, 2011 1 commit
  33. 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
  34. 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
  35. 20 Jun, 2011 1 commit
  36. 18 Jun, 2011 1 commit
    • Mathias Bavay's avatar
      A new generic method "getArraySliceParams" has been added to IOUtils. This... · 14ac27f9
      Mathias Bavay authored
      A new generic method "getArraySliceParams" has been added to IOUtils. This method computes the indices for splitting an array in several, balanced sub-arrays. This is what is needed to distribute a computation on an array among several computers. This method computes the indices in one dimension, if the user wants to split along several dimensions, he can just call it again on another dimension (the splitting being usually only along one dimension).
      14ac27f9
  37. 17 May, 2011 1 commit