- 21 Oct, 2014 1 commit
-
-
Adrien Gaudard authored
-
- 12 Aug, 2014 1 commit
-
-
Mathias Bavay authored
better file structure: all the classes purely focused on data storage (such as grids, dates, etc) have been moved into a "dataClasses" directory. All subdirectories are nhow named similarly to the classes and methods: the words after the first one are capitalized.
-
- 16 May, 2014 1 commit
-
-
Mathias Bavay authored
-
- 08 May, 2014 1 commit
-
-
Mathias Bavay authored
Since IOUtils was getting bigger and bigger, all the methods dealing with low level file handling have been moved into a new file, FilesUtils. It remains in the IOUtils namespace. One method has been moved to Date. A few includes have been cleaned up.
-
- 16 Mar, 2014 1 commit
-
-
Thomas Egger authored
-
- 03 Mar, 2014 1 commit
-
-
Mathias Bavay authored
The COSMOXMLIO documentation has been updated and the plugin can now read all files in a given directory (but they must follow a loose naming scheme). Otherwise, small fixes (documentation typo, constification).
-
- 27 Jan, 2014 1 commit
-
-
Mathias Bavay authored
In order to be able to read arc grids produced by R, the headers are now read in a case insensitive manner
-
- 23 Jan, 2014 1 commit
-
-
Thomas Egger authored
speeding up IOUtils convertString<double>: Adding an explicit implementation for the conversion of strings to doubles, based on strtod from the cstdlib. This function cuts the runtime of this function to about a third.
-
- 28 Oct, 2013 1 commit
-
-
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).
-
- 18 Sep, 2013 1 commit
-
-
Mathias Bavay authored
More size_t fixes (ie trying to be consistent) and a bug was found when spatially interpolating using a few specific algorithms that would not reset their internal vectors between two calls (thanks Matteo for helping uncover this bug!)
-
- 19 Jun, 2013 1 commit
-
-
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.
-
- 14 Jun, 2013 1 commit
-
-
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.
-
- 17 Apr, 2013 1 commit
-
-
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()".
-
- 21 Feb, 2013 2 commits
-
-
Mathias Bavay authored
My previous commit was terrible... it simply made it impossible to define optional keys. This has now been fixed but required a change in the API. So, don't use Config::nothrow but IOUtils::nothrow instead.
-
Mathias Bavay authored
The "nothrow" option was not properly forwarded in Config, leading to unnecessary throw/catch. The sun.cc example was set to executable.
-
- 14 Feb, 2013 1 commit
-
-
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.
-
- 04 Dec, 2012 1 commit
-
-
Mathias Bavay authored
The FileIndexer class still had some bug (such a surprise). It is now working properly. Some constification in libsmet
-
- 30 Nov, 2012 2 commits
-
-
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).
-
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.
-
- 28 Nov, 2012 1 commit
-
-
Mathias Bavay authored
some code cleanup in GSNIO, the warnings generated by soap are now turned off (with a hack to make old versions of gcc able to do it) and the plugins directory and component are now removed from the packaging
-
- 20 Jun, 2012 1 commit
-
-
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...
-
- 19 Jun, 2012 1 commit
-
-
Mathias Bavay authored
Fixed a warning with XCode 4.3 on osX. Tried to make a more standard use of c++ (relying on std::fill for filling vectors, relying on vector.resize(sixe, value) instead of manually initializing a vector, etc). A few more const added where appropriate. It makes the benchmarks slightly faster...
-
- 17 Apr, 2012 1 commit
-
-
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.
-
- 02 Mar, 2012 1 commit
-
-
Mathias Bavay authored
The correction for undercatch from Japan has been fixed and renamed in "RT3_Jp". A readLineToVec(line, vec_double) has been added to IOUtils (it is much faster, if possible, to read directly as a vector of double than to read as vector of strings and then convert the strings to doubles).
-
- 06 Jan, 2012 1 commit
-
-
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.
-
- 02 Nov, 2011 1 commit
-
-
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.
-
- 21 Sep, 2011 1 commit
-
-
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...
-
- 24 Aug, 2011 1 commit
-
-
Mathias Bavay authored
-
- 16 Aug, 2011 1 commit
-
-
Mathias Bavay authored
Cleaning up the CMakeLists, adding a version string as well as a new method: getLibVersion() to get the said version string (with compilation date and time). A BuildVersion cmake macro has been written and will be shared with snowpack (and later with alpine3d).
-
- 27 Jul, 2011 1 commit
-
-
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.
-
- 30 Jun, 2011 1 commit
-
-
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.
-
- 20 Jun, 2011 1 commit
-
-
Mathias Bavay authored
The treatment of NODATA points in Arrays is now controled by a simple boolean, set using "setKeepNodata". This should be easier than the previous commits that require a special type for how to process NODATA. The arrays are also now properly marshaled (ie: the keep_nodata flag is kept through marshaling).
-
- 18 Jun, 2011 1 commit
-
-
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).
-
- 17 May, 2011 1 commit
-
-
Mathias Bavay authored
Fixing some unsigned int / size_t conversion issues by using more widely size_t (as it seems to be recommended and done in the STL)
-
- 04 May, 2011 1 commit
-
-
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.
-
- 23 Mar, 2011 1 commit
-
-
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.
-
- 21 Mar, 2011 1 commit
-
-
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.
-
- 15 Mar, 2011 1 commit
-
-
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).
-
- 10 Mar, 2011 1 commit
-
-
Thomas Egger authored
-
- 08 Mar, 2011 1 commit
-
-
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
-