WSL/SLF GitLab Repository

  1. 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
  2. 17 May, 2011 1 commit
  3. 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
  4. 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
  5. 21 Mar, 2011 1 commit
    • Thomas Egger's avatar
      Fix for issue 139: Buffering and large data gaps; If the resampling cannot... · 8d06097a
      Thomas Egger authored
      Fix for issue 139: Buffering and large data gaps; If the resampling cannot rely on any data points the old behavior was to return a MeteoData object with both data and meta data set to IOUtils::nodata. Now these points are simply skipped. Thus requesting a data point in a gap of measurements greater than the window size necessary will result in an empty result set.
      8d06097a
  6. 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
  7. 10 Mar, 2011 1 commit
  8. 08 Mar, 2011 1 commit
    • Mathias Bavay's avatar
      The SNIO and SMETIO plugins now use METEOPATH for both inputs and outputs.... · 514fa75f
      Mathias Bavay authored
      The SNIO and SMETIO plugins now use METEOPATH for both inputs and outputs. This is more consistent with other plugins and usage.
      
      Some unused variables/methods have been removed from BufferedIOHandler (namely, the "buffer_always" functionality).
      
      A first implementation of fileExists() and readDirectory() for Windows has been written. This has not yet been tested (even for compilation) since it requires Visual C++. This moves forward to address issues 143 and 144
      514fa75f
  9. 05 Mar, 2011 1 commit
    • Fierz's avatar
      Revisiting ImisIO plugin: · ab05786a
      Fierz authored
      - enhance and simplify sqlQueries. The joint snow_drift query now synchronizes the two stations queried (for example IMIS-snow w/ ENET-wind). The data query is efficient in terms of fetching time, that is 1.58 s for one full year of data (17484 rows a 17 columns) but the first conection may take forever (~50 s)
      - disentangle stationID and stationName (staion_code and station_name, respectively, in station2.v_snow_drift_standort); parse/edit station_name to not contain spaces ;-)
      - get temperature sensor depths and insert them in vecMeteoData
      => we now have a robust mapping of the MeteoData object (see r549) and can pass meta data to the application snowpack ;-)
      ab05786a
  10. 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
  11. 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
  12. 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
  13. 17 Dec, 2010 1 commit
  14. 09 Dec, 2010 1 commit
    • Thomas Egger's avatar
      MeteoData now has an extra public member variable: StationData meta. It will... · 3f940ba5
      Thomas Egger authored
      MeteoData now has an extra public member variable: StationData meta. It will hold the meta information of the measurment instead of dragging along a second vector<StationData> alongside the vector<MeteoData> everywhere.
      
      This has huge implications: the IOInterface has been rewritten, subsequently changes need to be propagated into all plugins and all modules dealing with meta data.
      3f940ba5
  15. 21 Oct, 2010 1 commit
  16. 02 Aug, 2010 1 commit
  17. 28 Jul, 2010 1 commit
  18. 26 Jul, 2010 1 commit
  19. 20 Jul, 2010 1 commit
    • Mathias Bavay's avatar
      Several bugs have been fixed in Coords: the setEPSG was not working, the... · 3e406fd0
      Mathias Bavay authored
      Several bugs have been fixed in Coords: the setEPSG was not working, the altitude was not displayed with the << operator and the formatting of decimal_to_dms was broken in its handling of seconds...
      
      The documentation for the resampling has been expanded and several other modules' documentation have been updated so their structure is built along the same lines. 
      
      An error message in IOHandler (when failing to load a plugin) was not clear and has been changed.
      
      Several bugs in SMEIO have been fixed (improper column names mapping, improper handling of easting/northing, unclear error message).
      
      The example data set has been tagged as GMT+1 and the meteo_reading and 2D_interpolations modified accordingly (so the argument read on the command line is assumed to be in GMT+1 too)
      3e406fd0
  20. 16 Jul, 2010 1 commit
    • Thomas Egger's avatar
      Bugfix: Inside the ConfigReader keys were added to the properties map by using... · d24a2873
      Thomas Egger authored
      Bugfix: Inside the ConfigReader keys were added to the properties map by using the this pointer. That leads to some weird behaviour when copying the ConfigReader object. Solution: Don't use the this pointer on private member variables if not necessary.
      
      IOUtils.h: getValueForKey now internally uses find when searching the map<string,string>, it used to do a cast, not being able to distinguish between a key with no value and a non-existent key. Now a key value pair like this is allowed:
      TEST = 
      
      i.e. an empty value.
      d24a2873
  21. 29 Jun, 2010 1 commit
    • Mathias Bavay's avatar
      Fixed the behavior of ConfigReader when throwing exceptions: it rethrows so... · adf44d82
      Mathias Bavay authored
      Fixed the behavior of ConfigReader when throwing exceptions: it rethrows so that the error message can be turned off by the receiver of the exception (if simply not printing e.what() when catching the exception). 
      
      The warnings in FilterAlgorithms have been turned off cast to void) since this is an algorithm that has to be re-written anyway. The documentation has been fixed (missing documentation, broken link, etc)
      adf44d82
  22. 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
  23. 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
  24. 16 Jun, 2010 1 commit
    • Thomas Egger's avatar
      Added a function that seeks for a given date within a vector of MeteoData.... · 041c2742
      Thomas Egger authored
      Added a function that seeks for a given date within a vector of MeteoData. There are two modes of operation, depending on a boolean argument (true per default value): 
      1) the date must exactly match one within the vector
      2) the date doesn't have to exactly match up, in that case the vector must "contain" the date given an the index returned is for the first element of the vector with the a date greater than the one sought for.
      
      In case of failure, the function returns IOUtils::npos
      
      Added a missing include in ARPSIO.h
      041c2742
  25. 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
  26. 21 Apr, 2010 1 commit
  27. 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
  28. 13 Apr, 2010 1 commit
    • Thomas Egger's avatar
      changed the way we deal with the projection parameters within the io.ini.... · 31474cb6
      Thomas Egger authored
      changed the way we deal with the projection parameters within the io.ini. COORDSYS must be declared in the [Input] section and is optional for the [Output] section (it becomes mandatory if a function is to be used, that creates output)
      
      The parsing of the ConfigReader object is done in IOUtils, this is not the final solution on that.
      31474cb6
  29. 04 Mar, 2010 1 commit
  30. 22 Feb, 2010 1 commit
    • Mathias Bavay's avatar
      A few issues have been fixed in Coords: the copyProj method had a bug, the... · c930a817
      Mathias Bavay authored
      A few issues have been fixed in Coords: the copyProj method had a bug, the distance method now uses cartesian calculation if both projections are equal, a new getProj() method is now available (but it should be rarely needed). The GridxDObject::gridify method now correctly handles "NULL" projection and the Meteo2DInterpolator makes sure that all projections agree before doing the interpolations.
      c930a817
  31. 19 Feb, 2010 1 commit
    • Mathias Bavay's avatar
      Finally, the implementation of issue 35 is here... A few bugs left with the... · cdc01c4b
      Mathias Bavay authored
      Finally, the implementation of issue 35 is here... A few bugs left with the Coords class have been fixed (namely, the methods take 1 optional parameter and not more, because for this usage scenario it was way too dangerous and the user (myself in this case!) could call the method with the wrong parameter left empty). New mebers have been added: grid_i and grid_j as well as methods to deal with them. These contain the grid indices matching the position. Since these indices depend on the chosen DEM/grid, they are NOT updated by Coords but by Grid2DObject or Grid3DObject instead. If the user calls Coords::setLatLon() or Coords::setXY(), then these grid parameters are reset to nodata.
      
      A bug in a constructor of StationData has also been fixed (assigning a temporary object to a member of the class). Some bugs/unlucky deletes in the examples have been fixed (this is the price to pay for work too late at night!)
      
      New constants "lat_epsilon" and "lon_epsilon" have been created in IOUtils. They represent the smallest latitude/longitude resolution (ie: two points within lat_epsilon are considered to have the same latitude)
      cdc01c4b
  32. 18 Feb, 2010 1 commit
    • Mathias Bavay's avatar
      The constructor Coords(ConfigReader) was a bad idea... Convenient, but way too... · e02fa994
      Mathias Bavay authored
      The constructor Coords(ConfigReader) was a bad idea... Convenient, but way too specific. It has been removed. The documentation in the Coords class has been updated.
      
      A saner handling of nodata values by the plugins has been implemented. Now, each plugin should properly get its own internal definition of nodata and return data using IOUtils::nodata to the caller. A new method has been implemented in IOUtils to help cleaning a parameter for nodata.
      
      A check for xmlParseFile (used for compiling the Boschung plugin) was working poorly and has been commented out in configure.ac.
      
      Finally, more cleanup in the ph files has been performed.
      e02fa994
  33. 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
  34. 10 Feb, 2010 1 commit
  35. 05 Feb, 2010 1 commit
    • Mathias Bavay's avatar
      In the MapProj class, a new conversion has been added: UTM to/from WGS84.... · ba74049c
      Mathias Bavay authored
      In the MapProj class, a new conversion has been added: UTM to/from WGS84. Simply give "UTM" as the coordinate system and specify in the optional arguments the zone number (for example, 31T).
      
      A (tricky) error has been fixed in the VincentyDistance. The bearing that was chosen was the average between the initial and reverse bearing. That seemd a good idea at the time, but this made reprojecting a local grid computed using Vincenty impossible: the required bearing (starting from the reference point) is the initial bearing, the average one was sending us hundreds of kilometers away from the correct coordinate (when doing (lat,lon) -> local -> (lat,lon)). 
      
      Finally, a few more powN() methods have been added to IOUtils for convenience (yes, the projection business loves these!!)
      ba74049c
  36. 09 Dec, 2009 1 commit
  37. 11 Nov, 2009 1 commit
    • Mathias Bavay's avatar
      The doxygen comments have been fixed and largely expanded: the welcome page is... · 6a54ca7e
      Mathias Bavay authored
      The doxygen comments have been fixed and largely expanded: the welcome page is now populated and some general documentation proposed. 
      
      The prototypes of the filters have been fixed (doxygen was complaining) so that we always use std:: when necessary.
      
      The Grid3DObject checkCoordinates has been implemented along the same lines as Grid2DObject. The altitude is still missing though...
      
      The check for POPC++ has been added to the autotools configuration. 
      
      A small improvement to the way the A3DIO plugins handles incoming nodata has been done. A few HACKS have been fixed and removed. Some error messages (in libinterpol2D) have been improved, their printf relpaced by a std::cerr and an extra check (using assert) has been added so that no Td would be computed if Rh<0 (and we would throw an exception).
      6a54ca7e
  38. 05 Nov, 2009 1 commit
  39. 03 Nov, 2009 1 commit
    • Mathias Bavay's avatar
      The constructor for local grid in MapProj has been changed and its prototype... · 656de316
      Mathias Bavay authored
      The constructor for local grid in MapProj has been changed and its prototype modified. It should now make more sense and allow using LOCAL in io.ini like any other projection keyword.
      
      The code that was doing IO buffering in LegacyIO when POPC was used has been deleted (this is not the right place to do caching). A method prototype has been slightly tweaked (using const string instead of char*).
      
      Since Laws.c/h is already a file that is part of Snowpack and since making it a separate library does not make so much sense (it is quite small and only 3 short functions from it are used in MeteoIO), the necessary code has been transfered to libinterpol2D and these two files have been deleted.
      
      A warning in IOUtils has been silenced.
      656de316