WSL/SLF GitLab Repository

  1. 13 Mar, 2013 1 commit
    • Mathias Bavay's avatar
      A rounding bug has been found in the Date class: when using a Date object in a... · 2ddc7feb
      Mathias Bavay authored
      A rounding bug has been found in the Date class: when using a Date object in a loop where it gets incremented, it accumulates errors and after ~70000 iterations, the error would get bigger than one second, making date comparisons with a fixed date impossible. This has been solved by always rounding the internal gmt Julian date to the closest second, after each assignment (from the constructors, the setDate() calls or any arithmetic operation). Moreover, the rounding methods have been re-written to be more efficient as well as other roundings (specially when computing the date decomposition from Julian). 
      
      The seek() call performing a binary search has also been simplified, in order to remove unnecessary tests, put some similar tests together and make the code clearer. 
      
      Some constification and better vector usage took place in ResamplingAlgorithms and Meteo1DInterpolator.
      2ddc7feb
  2. 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
  3. 26 Nov, 2012 1 commit
  4. 02 Nov, 2012 1 commit
  5. 31 Oct, 2012 1 commit
  6. 25 Oct, 2012 1 commit
  7. 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
  8. 31 May, 2012 1 commit
  9. 30 May, 2012 1 commit
    • Mathias Bavay's avatar
      A few "consts" have been added. The dates are now considered to be positive... · b79a85a4
      Mathias Bavay authored
      A few "consts" have been added. The dates are now considered to be positive which allows comparison operators to be optimized: converting 1 year of hourly data with data_converter got almost 30% faster. Moreover, when looking for resampling window, two extra checks have been added to quickly see if the start and end point are even in the input vector. This reduces data read miss (because we start by reading vecM[0]) and skips browsing through the whole vector if we are in a large data gap. On the same 1 year data set with one large gap for one parameter, the gain is of almost 20%. Overall, these two optimizations lead to almost a doubling of the speed with data_converter... Soon we'll be so fast that we will get the data before it is even measured!
      b79a85a4
  10. 27 Jan, 2012 1 commit
  11. 19 Sep, 2011 1 commit
    • Thomas Egger's avatar
      Performance boost: Redesign of class MeteoData. The individual public double... · 8d46d04d
      Thomas Egger authored
      Performance boost: Redesign of class MeteoData. The individual public double members like tss, ta, rh have been removed and instead of the rather complicated internal representation with the help of std::map and pointers, the MeteoData object now holds all its important information in one double vector (meteo data) and one string vector (parameter names). Thus the overloaded copy constructor could be slashed radically. This leads to huge performance gains, especially when dealing with huge vectors of MeteoData (which are needed for filtering, resampling, etc).
      
      Furthermore the access to the meteo parameters has been simpleified by overloading the operator(), replacing the old .param(size_t index) and .param(string paramname) functions:
      
      MeteoData md;
      double ta = md(MeteoData::TA);
      
      OR
      
      double ta = md("TA");
      
      These changes were propagated into all of MeteoIO.
      8d46d04d
  12. 16 Aug, 2011 1 commit
  13. 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
  14. 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
  15. 21 Mar, 2011 1 commit
  16. 10 Mar, 2011 1 commit
  17. 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
  18. 10 Feb, 2011 1 commit
  19. 08 Feb, 2011 2 commits
    • Mathias Bavay's avatar
      Another commit related to timezones... The Unix date always being in UTC, this... · 3fdc84f5
      Mathias Bavay authored
      Another commit related to timezones... The Unix date always being in UTC, this has been fixed. The resampling was not using dates in a proper way, this has been fixed. The GSN plugin has also been fixed, it now rounds time to the closest minute (in order to be consistent with our advertised "1 minute time resolution"). A rounding method has been implemented for dates.
      
      The timezone parameter in io.ini is now named TIME_ZONE instead of TZ for clarity. 
      
      Undefined dates should now be fully handled (ie: also in arithmetic).
      3fdc84f5
    • Fierz's avatar
      - Date.*: allow to handle undefined Dates (== 0. for now), add new members... · 8c40e39c
      Fierz authored
      - Date.*: allow to handle undefined Dates (== 0. for now), add new members undef, setUndef(), isUndef(), and rndJulianDate()
      - IOUtils.*: replaced TZ with time_zone and TIME_ZONE
      - ImisIO.*: correct typo seperateDrift to separateDrift
      8c40e39c
  20. 04 Feb, 2011 1 commit
    • Mathias Bavay's avatar
      The full support for timezones has been brought back. This fixes issue 71. The... · 904aeaa8
      Mathias Bavay authored
      The full support for timezones has been brought back. This fixes issue 71. The SMET, SMET, IMIS, BORMA plugins have been validated. Geotop should be validtaed if an input data set is available. A new class will have to be implemented to represent time periods. This is currently only a typedef pointing to the Date class, but a specific class would be welcomed.
      
      GSN has been fixed for some changes on the web service, but does not retrieve the correct timestamps (is this a GSN issue?). The GSN compilation has been improved: the warnings related to GSOAP have been removed. 
      
      A new long wave radiaiton model using cloudiness as input has been added (Omstedt, 1990). 
      904aeaa8
  21. 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
  22. 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
  23. 16 Dec, 2010 1 commit
  24. 08 Sep, 2010 1 commit
  25. 28 Jun, 2010 1 commit
    • Thomas Egger's avatar
      Added new plugin for WSMDF format. gzipped version of format currently not... · 8750dd19
      Thomas Egger authored
      Added new plugin for WSMDF format. gzipped version of format currently not supported. binary version works, but since the julian date does not fit into a 4 byte (32bit) float, it is unusable. ASCII format works, although unit_multiplier and unit_offset are currently not supported. For location information the easting, northing version is not yet supported.
      
      Added function IOUtils::stripComments(string&) it, deletes everything after # or ; from the string&
      8750dd19
  26. 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
  27. 30 Apr, 2010 1 commit
  28. 28 Apr, 2010 1 commit
    • Mathias Bavay's avatar
      The POPC compilation issue has been fixed (work around a POPC bug). These work... · 5f07ce00
      Mathias Bavay authored
      The POPC compilation issue has been fixed (work around a POPC bug). These work arounds have been tagged as "HACK for POPC" in DEMObject, Date, Grid2/3DObject, IOHandler.ph, LegacyIO.ph and marshall_meteoio.cc.
      
      The SNIO plugin that was forgotten at the last commit is now here and has been improved so that it correctly formats its output (it does not read yet).
      5f07ce00
  29. 22 Apr, 2010 1 commit
  30. 21 Apr, 2010 1 commit
  31. 20 Apr, 2010 3 commits
  32. 16 Apr, 2010 1 commit
    • Mathias Bavay's avatar
      Two public methods have been added to Date_IO (getJulianDayNumber and... · 3a1f6e9b
      Mathias Bavay authored
      Two public methods have been added to Date_IO (getJulianDayNumber and isLeapYear). The documentation has been slightly improved. A helper function has been added to IOUtils: getTimeZoneParameters. It will be used by the plugins in order to correctly set the timezone of their data.
      
      The Median Absolute Deviation filter has been implemented, documented and checked (in FilterAlgorithms).
      
      
      3a1f6e9b
  33. 15 Apr, 2010 2 commits
    • Mathias Bavay's avatar
      A bug has been fixed in the rate filter, a better behavior has been... · 55bc5d6f
      Mathias Bavay authored
      A bug has been fixed in the rate filter, a better behavior has been implemented for the Date_IO class (once a timezone has been set, either by the constructor or by an explicit call, all setDate() calls that don't specify a timezone will be considered to be in the pre-set timezone), the class has been documented and the example has been improved.
      55bc5d6f
    • Mathias Bavay's avatar
      The Date_IO class has been deeply rewriten. The conversion methods have been... · e88ffdc2
      Mathias Bavay authored
      The Date_IO class has been deeply rewriten. The conversion methods have been checked (with references added), the class now uses real julian date (internally as a reference) and can generate a variety of outputs (julian, modified julian, truncated julian, unix, excel). It also works properly with time zones and a simplified version of dayligh saving time (it assumes that DST always introduces a +1 hour shift, which should always be true but on one AUstralian Island: Lord Howe Island). Some now invalid calls have been fixed in plugins (the short setDate(yy,mm,dd) call is now longer supported but migth be misinterpreted by the compiler for another call, despite types mismatch).
      
      A new example code has been added: time.cc
      e88ffdc2
  34. 12 Apr, 2010 1 commit
  35. 08 Apr, 2010 1 commit
  36. 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