WSL/SLF GitLab Repository

  1. 04 Sep, 2014 1 commit
  2. 12 Aug, 2014 1 commit
  3. 31 Jul, 2014 1 commit
  4. 16 May, 2014 1 commit
  5. 08 May, 2014 1 commit
  6. 03 Feb, 2014 1 commit
  7. 28 Jan, 2014 1 commit
    • Mathias Bavay's avatar
      A new concept has been introduced: virtual stations. These are points where... · 66541e39
      Mathias Bavay authored
      A new concept has been introduced: virtual stations. These are points where the meteo data will be transparently spatially interpolated and returned to getMeteoData calls. This allows a point model like Snowpack to work on virtual stations without any internal changes. A few new keys have been introduced in order to provide the necessary information: virtual stations location, meteo parameters to interpolate. For example:
      VIRTUAL_STATIONS = true
      VIRTUAL_PARAMETERS = TA RH HNW HS VW RSWR ILWR
      VSTATION1 = 46.8 9.833333
      VSTATION2 = 46.7 9.9
      
      A few drawbacks still exist: the time range getMeteoData call is not supported yet. A DEM must be provided (ie DEM key in ini file). Obviously, all interpolated parameters must have been associated with interpolation algorithms. The virtual stations have IDs such as VIR1, VIR2, etc For performance reasons, the interpolation is then performed on a one cell dem, which means that algorithms using dem characteristics would (currently) be messed up. Basically, this is still a work in progress before everything is robust!
      
      Otherwise, some POPC ifdef have been removed and the "iomanager.interpolate(... Grid2DObject)" call has been removed since the "iomanager.getMeteoData(... Grid2DObject)" call should be used instead (for consistency).
      66541e39
  8. 05 Oct, 2013 1 commit
  9. 15 Jul, 2013 1 commit
  10. 18 Apr, 2013 1 commit
  11. 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
  12. 05 Mar, 2013 2 commits
  13. 04 Mar, 2013 1 commit
  14. 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
  15. 03 Dec, 2012 1 commit
  16. 02 Nov, 2012 1 commit
  17. 30 Oct, 2012 1 commit
    • Mathias Bavay's avatar
      The automatic tests have shown that the code was getting slower following the... · 5bf0f221
      Mathias Bavay authored
      The automatic tests have shown that the code was getting slower following the latest commits. After investigations (thanks valgrind!), it has been found that the newly added copy constructor of Coords was used a lot as well as setFunctionPointers(). Therefore the function pointers have been removed and replaced by a simple list of if(coordsy=="") etc. The run time is now back to normal (and actually up to 6% faster on some tests).
      
      Cosmetic touch up on Date.
      5bf0f221
  18. 29 Oct, 2012 1 commit
  19. 28 Oct, 2012 1 commit
  20. 25 Oct, 2012 1 commit
  21. 24 Oct, 2012 1 commit
    • Mathias Bavay's avatar
      The Universal Polar Stereographic projection coordinates have been... · 457d5e17
      Mathias Bavay authored
      The Universal Polar Stereographic projection coordinates have been implemented. A small bug has been discovered (and fixed!) for latitude/longitude specifications as degrees/minutes/seconds for negative coordinates (the conversion to decimal was then wrong because of an improper rounding direction).
      457d5e17
  22. 07 Aug, 2012 1 commit
    • Mathias Bavay's avatar
      New warnings have been tried to detect variable shadowing (one variable... · dd895aa0
      Mathias Bavay authored
      New warnings have been tried to detect variable shadowing (one variable declared with the same name as another one), alignement issues, etc. This produces very verbose output (not all warnings are legitimate) but allowed to fix lots of cases of misalignement and shadowing issues. These options have been left in the CMakeLists but NOT enabled (since these warnings are not so easy to interpret).
      dd895aa0
  23. 17 Jul, 2012 1 commit
    • Mathias Bavay's avatar
      A small change in FindMeteoIO has been ported from Snowpack (looking for... · b1dc9300
      Mathias Bavay authored
      A small change in FindMeteoIO has been ported from Snowpack (looking for headers in METEOIO_ROOT, useful for non-install systems). The == operator for Coords now also checks the altitude. Merge methods for MeteoData and vectors of MeteoData have been implemented, following issue 45. This allows to easily reads data from multiple IOManagers and merge them together before further processing (spatial interpolations, etc).
      b1dc9300
  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. 11 Jun, 2012 1 commit
    • Mathias Bavay's avatar
      Since the autotools are obsolete (and unmaintained) in MeteoIO, they have been... · 11fb1ed6
      Mathias Bavay authored
      Since the autotools are obsolete (and unmaintained) in MeteoIO, they have been removed. The popc++ version can be compiled with cmake (with some tricks: disable GSN and force the compiler to popcc). 
      
      For consistency, the various definitions of ot_deg and to_rad have been suppressed and replaced by Cst::to_deg or Cst::to_rad. Some mentions of the Earth's radius have been replaced by Cst::earth_R0. In Coords, some variables have been declared as const.
      11fb1ed6
  26. 24 May, 2012 2 commits
  27. 10 Apr, 2012 1 commit
    • Mathias Bavay's avatar
      After auditing the code with Flawfinder version 1.27, a few things have been... · 7bcaa6bf
      Mathias Bavay authored
      After auditing the code with Flawfinder version 1.27, a few things have been fixed: IOUtils::getLogName() now truncates the log name to 64 characters maximum (since it was stored as a C++ string, it should not have been a problem but converting back as string.c_str() could have created problems in the user code in case of very large strings (ie: malicious user trying to break the system) in environment variables. In Coords, the epsg code is checked for range before casting to short int, in order to throw an exception at the proper place (and avoid a possibly corrupted return value that would have surprised the end user in the next exception). A more serious issue has been fixed in Coords::parseLatLon() where a malicious coordinate string could have overflowed on the stack.
      7bcaa6bf
  28. 26 Mar, 2012 1 commit
  29. 16 Mar, 2012 1 commit
  30. 27 Feb, 2012 1 commit
    • Mathias Bavay's avatar
      The lat/lon rotation code has been moved to Coords as a static method and some... · f354f817
      Mathias Bavay authored
      The lat/lon rotation code has been moved to Coords as a static method and some issues have been fixed (it was still not working properly). This should now work and handle correctly the South Pole coordinates as given by the GRIB file (the necessary transformation has been documented in Coords, namely -latitudeSouthPole; 180+longitudeSouthPole).
      f354f817
  31. 23 Feb, 2012 1 commit
    • Mathias Bavay's avatar
      The << operator for Coords has been slightly improved. The Gradient class now... · bbf8923c
      Mathias Bavay authored
      The << operator for Coords has been slightly improved. The Gradient class now generated true-color output when indexed=false (and is used to generate true-color PNGs when PNG_INDEXED=false).
      
      The GRIBIO plugin now reads a file name prefix from io.ini. It also properly convert the internal rotated lat/lon into geographic lat/lon and properly computes cell size. The georeferencing of grids is therefore now correct. The WMO standardized tables are now read first before trying alternate parameters. The documentation has been significantly improved.
      bbf8923c
  32. 09 Feb, 2012 1 commit
    • Mathias Bavay's avatar
      Two new methods have been implemented as static of Coords, to compute the... · f478c493
      Mathias Bavay authored
      Two new methods have been implemented as static of Coords, to compute the ground length of one degree of latitude or longitude at any given latitude.
      
      A check for 0x0 sized grids has been added to PNGIO. The ability to specify the number of colors (ie: discretization) in the io.ini has been added.
      
      A breakthrough occured with GRIBIO, that starts to be able to do some things. This is still not usable, but definitely moving forward!
      f478c493
  33. 19 Jan, 2012 1 commit
  34. 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
  35. 11 May, 2011 1 commit
  36. 24 Mar, 2011 1 commit
    • Mathias Bavay's avatar
      The array getSum() was not the most appropriate method... It has been replaced... · 44824a9c
      Mathias Bavay authored
      The array getSum() was not the most appropriate method... It has been replaced by a getCount(), which means that to really get the sum, one has to do getMean()*getCount().
      
      A new Coords::isNodata() method has been implemented as well as the possibility for two Coords objects to be equal if both are nodata. This is now used in SMETIO so that if the position of a station becomes nodata, it won't force its position information into the data section.
      
      Some comments have been cleaned up in IMISIO, better exceptions thrown in SNIO and better backtrace formatting in IOExceptions (this being only for Linux, a dark grey text color has been specified to more or less make the backtrace less intrusive and scary to the user).
      
      More Visual C++ tweaks in CMakeLists
      44824a9c
  37. 23 Mar, 2011 1 commit
    • Mathias Bavay's avatar
      The CMakeLists has been adapted so that it properly supports various Visual... · 8909bac0
      Mathias Bavay authored
      The CMakeLists has been adapted so that it properly supports various Visual C++ options. Now, options are set per compiler and per plateform (depending on the scope of the said option). Therefore, choosing a target like "optimized" really produces compilation optimized for speed on g++ as well as Visual C++.
      
      Several type casting issues (warnings) have also been addressed.
      8909bac0
  38. 21 Mar, 2011 1 commit