WSL/SLF GitLab Repository

Commit 4cee4bee authored by Mathias Bavay's avatar Mathias Bavay
Browse files

better file structure: all the classes purely focused on data storage (such as...

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.
parent eabac982
......@@ -120,9 +120,10 @@ SET(CMAKE_CXX_FLAGS_CXXFLAGS "$ENV{CXXFLAGS}" CACHE STRING "" FORCE)
MARK_AS_ADVANCED(FORCE CMAKE_CXX_FLAGS_CXXFLAGS)
#Add subdirectory, so they can inherit all variables defined above
ADD_SUBDIRECTORY(meteoio/dataClasses)
ADD_SUBDIRECTORY(meteoio/plugins)
ADD_SUBDIRECTORY(meteoio/meteolaws)
ADD_SUBDIRECTORY(meteoio/meteofilters)
ADD_SUBDIRECTORY(meteoio/meteoLaws)
ADD_SUBDIRECTORY(meteoio/meteoFilters)
ADD_SUBDIRECTORY(meteoio)
###########################################################
#plugins
......
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/")
INCLUDE("${PROJECT_SOURCE_DIR}/meteoio/dataClasses/CMakeLists.txt")
INCLUDE("${PROJECT_SOURCE_DIR}/meteoio/plugins/CMakeLists.txt")
INCLUDE("${PROJECT_SOURCE_DIR}/meteoio/meteolaws/CMakeLists.txt")
INCLUDE("${PROJECT_SOURCE_DIR}/meteoio/meteostats/CMakeLists.txt")
INCLUDE("${PROJECT_SOURCE_DIR}/meteoio/meteofilters/CMakeLists.txt")
INCLUDE("${PROJECT_SOURCE_DIR}/meteoio/meteoLaws/CMakeLists.txt")
INCLUDE("${PROJECT_SOURCE_DIR}/meteoio/meteoStats/CMakeLists.txt")
INCLUDE("${PROJECT_SOURCE_DIR}/meteoio/meteoFilters/CMakeLists.txt")
IF(PROJ4)
FIND_PATH(LIBPROJ_INCLUDE_DIR "proj_api.h")
......@@ -25,8 +26,8 @@ IF(DATA_QA)
ENDIF(DATA_QA)
SET(meteoio_sources
${dataClasses_sources}
IOManager.cc
Matrix.cc
IOPlugin.cc
MeteoProcessor.cc
ResamplingAlgorithms.cc
......@@ -35,28 +36,21 @@ SET(meteoio_sources
InterpolationAlgorithms.cc
DataGenerator.cc
GeneratorAlgorithms.cc
Date.cc
Timer.cc
Grid2DObject.cc
IOHandler.cc
Coords.cc
Graphics.cc
Meteo2DInterpolator.cc
BufferedIOHandler.cc
DEMObject.cc
Grid3DObject.cc
IOInterface.cc
StationData.cc
Config.cc
IOExceptions.cc
IOUtils.cc
FileUtils.cc
MeteoData.cc
plugins/libsmet.cc
${plugins_sources}
${meteolaws_sources}
${meteostats_sources}
${meteofilters_sources}
${meteoLaws_sources}
${meteoStats_sources}
${meteoFilters_sources}
)
IF(GUI_EXCEPTIONS)
......
......@@ -20,7 +20,7 @@
#define __DATAGENERATOR_H__
#include <meteoio/Config.h>
#include <meteoio/MeteoData.h>
#include <meteoio/dataClasses/MeteoData.h>
#include <meteoio/GeneratorAlgorithms.h>
#include <vector>
......@@ -92,7 +92,7 @@ namespace mio {
* order to offer some high level interface. It basically reads the arguments and creates the objects for
* the various data generators in its constructor and loop through the parameters and stations when called to fill the data.
*
* @ingroup meteolaws
* @ingroup meteoLaws
* @author Mathias Bavay
* @date 2013-03-20
*/
......
......@@ -23,7 +23,7 @@
#include <vector>
#include <list>
#include <meteoio/Date.h>
#include <meteoio/dataClasses/Date.h>
namespace mio {
namespace IOUtils {
......
......@@ -17,9 +17,9 @@
*/
#include <meteoio/GeneratorAlgorithms.h>
#include <meteoio/MathOptim.h>
#include <meteoio/meteolaws/Atmosphere.h>
#include <meteoio/meteolaws/Meteoconst.h>
#include <meteoio/meteofilters/ProcHNWDistribute.h> //for the precipitation distribution
#include <meteoio/meteoLaws/Atmosphere.h>
#include <meteoio/meteoLaws/Meteoconst.h>
#include <meteoio/meteoFilters/ProcHNWDistribute.h> //for the precipitation distribution
using namespace std;
......
......@@ -18,8 +18,8 @@
#ifndef __GENERATORALGORITHMS_H__
#define __GENERATORALGORITHMS_H__
#include <meteoio/MeteoData.h>
#include <meteoio/meteolaws/Sun.h>
#include <meteoio/dataClasses/MeteoData.h>
#include <meteoio/meteoLaws/Sun.h>
#include <vector>
#include <set>
......@@ -107,7 +107,7 @@ namespace mio {
* a totally different approach: either generic data (constant value, etc) or generate the data from other
* meteorological parameters (relying on a parametrization, like clear sky for ILWR).
*
* @ingroup meteolaws
* @ingroup meteoLaws
* @author Mathias Bavay
* @date 2013-03-20
*/
......
......@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with MeteoIO. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Graphics.h"
#include <meteoio/Graphics.h>
#include <cmath>
#include <iomanip>
......
......@@ -18,7 +18,7 @@
#ifndef __GRAPHICS_H__
#define __GRAPHICS_H__
#include <meteoio/Array2D.h>
#include <meteoio/dataClasses/Array2D.h>
#include <string>
#include <vector>
......
......@@ -18,13 +18,13 @@
#ifndef __IOINTERFACE_H__
#define __IOINTERFACE_H__
#include <meteoio/Array1D.h>
#include <meteoio/Array2D.h>
#include <meteoio/Date.h>
#include <meteoio/DEMObject.h>
#include <meteoio/Grid2DObject.h>
#include <meteoio/MeteoData.h>
#include <meteoio/StationData.h>
#include <meteoio/dataClasses/Array1D.h>
#include <meteoio/dataClasses/Array2D.h>
#include <meteoio/dataClasses/Date.h>
#include <meteoio/dataClasses/DEMObject.h>
#include <meteoio/dataClasses/Grid2DObject.h>
#include <meteoio/dataClasses/MeteoData.h>
#include <meteoio/dataClasses/StationData.h>
#include <vector>
......
......@@ -22,8 +22,8 @@
#include <meteoio/Meteo2DInterpolator.h>
#include <meteoio/BufferedIOHandler.h>
#include <meteoio/MeteoProcessor.h>
#include <meteoio/MeteoData.h>
#include <meteoio/Coords.h>
#include <meteoio/dataClasses/MeteoData.h>
#include <meteoio/dataClasses/Coords.h>
namespace mio {
......
......@@ -20,9 +20,8 @@
#include <algorithm>
#include <meteoio/IOUtils.h>
#include <meteoio/meteolaws/Meteoconst.h> //for math constants
#include <meteoio/Config.h> // to avoid forward declaration hell
#include <meteoio/MeteoData.h> // to avoid forward declaration hell
#include <meteoio/dataClasses/MeteoData.h> // to avoid forward declaration hell
namespace mio {
......
......@@ -26,10 +26,10 @@
#include <limits>
#include <cmath>
#include <meteoio/Coords.h>
#include <meteoio/Date.h>
#include <meteoio/dataClasses/Coords.h>
#include <meteoio/dataClasses/Date.h>
#include <meteoio/IOExceptions.h>
#include <meteoio/meteolaws/Meteoconst.h>
#include <meteoio/meteoLaws/Meteoconst.h>
#ifndef C_TO_K
#define C_TO_K( T ) ( T + Cst::t_water_freezing_pt ) // degree Celsius to kelvin
......
......@@ -16,7 +16,7 @@
along with MeteoIO. If not, see <http://www.gnu.org/licenses/>.
*/
#include <meteoio/InterpolationAlgorithms.h>
#include <meteoio/meteolaws/Atmosphere.h>
#include <meteoio/meteoLaws/Atmosphere.h>
#include <meteoio/Meteo2DInterpolator.h>
#include <meteoio/IOManager.h>
#include <meteoio/MathOptim.h>
......
......@@ -18,11 +18,11 @@
#ifndef __INTERPOLATIONALGORITHMS_H__
#define __INTERPOLATIONALGORITHMS_H__
#include <meteoio/DEMObject.h>
#include <meteoio/MeteoData.h>
#include <meteoio/meteostats/libinterpol1D.h>
#include <meteoio/meteostats/libinterpol2D.h>
#include <meteoio/meteostats/libfit1D.h>
#include <meteoio/dataClasses/DEMObject.h>
#include <meteoio/dataClasses/MeteoData.h>
#include <meteoio/meteoStats/libinterpol1D.h>
#include <meteoio/meteoStats/libinterpol2D.h>
#include <meteoio/meteoStats/libfit1D.h>
#include <vector>
#include <string>
......
......@@ -20,7 +20,7 @@
namespace mio {
//groups
/*! \defgroup meteolaws Meteorological Laws
/*! \defgroup meteoLaws Meteorological Laws
Documentation for meteorological laws and constants.
*/
......@@ -36,8 +36,8 @@ namespace mio {
Documentation for available data processing components. These can be used on incoming meteorological data. See \ref processing "Available data processing elements".
*/
/*! \defgroup data_str Data structures
Documentation for available data structures.
/*! \defgroup data_str Data classes
Documentation for available data classes.
*/
/*! \defgroup graphics Graphical elements and operations
......@@ -77,6 +77,7 @@ namespace mio {
* -# Programing using MeteoIO
* -# \subpage workflow "Example Workflow"
* -# \subpage quick_overview "Quick overview" of the functionnality provided by MeteoIO
* -# <A HREF="modules.html">Modules list</a>
* -# \subpage examples "Usage examples"
* -# Expanding MeteoIO
* -# How to \subpage dev_plugins "write a Plugin"
......@@ -321,8 +322,8 @@ namespace mio {
* @page dev_processing Processing elements developer's guide
*
* In order to add a new filter/processing element to the already existing set of components, the developer only needs to
* add a class derived from either ProcessingBlock, FilterBlock or WindowedFilter in meteoio/meteofilters (depending on the kind of filter
* that is developed). Templates header and code files are available to get you started, look into the "meteofilters" subdirectory of the source directory (files "template.cc" and "template.h").
* add a class derived from either ProcessingBlock, FilterBlock or WindowedFilter in meteoio/meteoFilters (depending on the kind of filter
* that is developed). Templates header and code files are available to get you started, look into the "meteoFilters" subdirectory of the source directory (files "template.cc" and "template.h").
*
* It is important to understand that the processing elements operate on a "per parameter" basis.
* This means that an element might be executed for the parameter TA and another one for the parameter HNW, so the
......@@ -331,7 +332,7 @@ namespace mio {
* To implement a new processing element, the following steps are necessary:
*
* -# Implementing the element, as a derived class of ProcessingBlock or FilterBlock or WindowedFilter, by creating
* two files: the header file and its implementation file, in the meteofilters subdirectory of the source code.
* two files: the header file and its implementation file, in the meteoFilters subdirectory of the source code.
* The class will contain two public methods: a constructor and a "process" method and at least one private method,
* "parse_args" to read the arguments from a provided vector of strings.
* -# The <b>constructor</b> takes a vector of strings containing the element's arguments and a constant string (that contains
......@@ -352,7 +353,7 @@ namespace mio {
* @code
* parse_args(std::vector<std::string> vec_args)
* @endcode
* -# Adding the created implementation file to meteofilters/CMakeLists.txt in a similar way as for the other
* -# Adding the created implementation file to meteoFilters/CMakeLists.txt in a similar way as for the other
* filters
* -# Adding the filter in the processing loop, in BlockFactory::getBlock(), by adding three lines similar to:
* @code
......@@ -361,9 +362,9 @@ namespace mio {
* }
* @endcode
* The key (here the string "MIN_MAX") is the key that the user will put in his io.ini to select the processing block.
* -# Including the filter's header file in meteofilters/ProcessingBlocks.cc
* -# Including the filter's header file in meteoFilters/ProcessingBlocks.cc
*
* Although you are encouraged to use the provided templates (files "template.cc" and "template.h" in the meteofilters subdirectory),
* Although you are encouraged to use the provided templates (files "template.cc" and "template.h" in the meteoFilters subdirectory),
* the class FilterMax can be used as an example of implementation of a basic filter that will check whether a
* value is greater than an argument
* supplied to the filter and if so changes the value either to IOUtils::nodata (normal operation) or to the
......
......@@ -18,11 +18,11 @@
#ifndef __METEO1DINTERPOLATOR_H__
#define __METEO1DINTERPOLATOR_H__
#include <meteoio/MeteoData.h>
#include <meteoio/StationData.h>
#include <meteoio/dataClasses/MeteoData.h>
#include <meteoio/dataClasses/StationData.h>
#include <meteoio/Config.h>
#include <meteoio/ResamplingAlgorithms.h>
#include <meteoio/meteofilters/ProcessingBlock.h>
#include <meteoio/meteoFilters/ProcessingBlock.h>
#include <iostream>
#include <string>
......
......@@ -20,9 +20,9 @@
#define __METEO2DINTERPOLATOR_H__
#include <meteoio/Config.h>
#include <meteoio/Date.h>
#include <meteoio/MeteoData.h>
#include <meteoio/DEMObject.h>
#include <meteoio/dataClasses/Date.h>
#include <meteoio/dataClasses/MeteoData.h>
#include <meteoio/dataClasses/DEMObject.h>
#include <meteoio/InterpolationAlgorithms.h>
#include <memory>
......
......@@ -26,22 +26,28 @@
#endif
//list in alphabetical order
//find meteoio -name "*.h" | sort
#include <meteoio/Array1D.h>
#include <meteoio/Array2D.h>
#include <meteoio/Array3D.h>
#include <meteoio/Array4D.h>
//find meteoio -name "*.h" | sort | xargs -i echo "#include <{}>"
#include <meteoio/BufferedIOHandler.h>
#include <meteoio/Config.h>
#include <meteoio/Coords.h>
#include <meteoio/dataClasses/Array1D.h>
#include <meteoio/dataClasses/Array2D.h>
#include <meteoio/dataClasses/Array3D.h>
#include <meteoio/dataClasses/Array4D.h>
#include <meteoio/dataClasses/Coords.h>
#include <meteoio/dataClasses/Date.h>
#include <meteoio/dataClasses/DEMObject.h>
#include <meteoio/dataClasses/Grid2DObject.h>
#include <meteoio/dataClasses/Grid3DObject.h>
#include <meteoio/dataClasses/Matrix.h>
#include <meteoio/dataClasses/MeteoData.h>
#include <meteoio/dataClasses/StationData.h>
#include <meteoio/DataGenerator.h>
#include <meteoio/Date.h>
#include <meteoio/DEMObject.h>
#include <meteoio/exports.h>
#include <meteoio/FileUtils.h>
#include <meteoio/GeneratorAlgorithms.h>
#include <meteoio/Graphics.h>
#include <meteoio/Grid2DObject.h>
#include <meteoio/Grid3DObject.h>
#include <meteoio/InterpolationAlgorithms.h>
#include <meteoio/IOExceptions.h>
#include <meteoio/IOHandler.h>
......@@ -51,36 +57,36 @@
#include <meteoio/IOUtils.h>
//#include <meteoio/MainPage.h> //only for doxygen
#include <meteoio/MathOptim.h>
#include <meteoio/Matrix.h>
//#include <meteoio/MessageBoxX11.h>
#include <meteoio/Meteo1DInterpolator.h>
#include <meteoio/Meteo2DInterpolator.h>
#include <meteoio/MeteoData.h>
#include <meteoio/meteofilters/FilterBlock.h>
#include <meteoio/meteoFilters/FilterBlock.h>
//skip all the filters' implementations header files
#include <meteoio/meteofilters/ProcessingBlock.h>
#include <meteoio/meteofilters/ProcessingStack.h>
#include <meteoio/meteofilters/WindowedFilter.h>
#include <meteoio/meteoFilters/ProcessingBlock.h>
#include <meteoio/meteoFilters/ProcessingStack.h>
//#include <meteoio/meteoFilters/template.h>
#include <meteoio/meteoFilters/WindowedFilter.h>
//#include <meteoio/MeteoIO.h>
#include <meteoio/meteolaws/Atmosphere.h>
#include <meteoio/meteolaws/Meteoconst.h>
#include <meteoio/meteolaws/Sun.h>
#include <meteoio/meteolaws/Suntrajectory.h>
#include <meteoio/meteoLaws/Atmosphere.h>
#include <meteoio/meteoLaws/Meteoconst.h>
#include <meteoio/meteoLaws/Sun.h>
#include <meteoio/meteoLaws/Suntrajectory.h>
#include <meteoio/MeteoProcessor.h>
//#include <meteoio/meteostats/libfit1DCore.h>
#include <meteoio/meteostats/libfit1D.h>
#include <meteoio/meteostats/libinterpol1D.h>
#include <meteoio/meteostats/libinterpol2D.h>
//#include <meteoio/meteoStats/libfit1DCore.h>
#include <meteoio/meteoStats/libfit1D.h>
#include <meteoio/meteoStats/libinterpol1D.h>
#include <meteoio/meteoStats/libinterpol2D.h>
//skip all plugins' implementations header files
#include <meteoio/plugins/libncpp.h>
#include <meteoio/plugins/libsmet.h>
#include <meteoio/ResamplingAlgorithms.h>
#include <meteoio/ResamplingAlgorithms2D.h>
#include <meteoio/StationData.h>
#include <meteoio/ResamplingAlgorithms.h>
#include <meteoio/Timer.h>
#endif
......@@ -18,11 +18,11 @@
#ifndef __METEOPROCESSOR_H__
#define __METEOPROCESSOR_H__
#include <meteoio/MeteoData.h>
#include <meteoio/StationData.h>
#include <meteoio/dataClasses/MeteoData.h>
#include <meteoio/dataClasses/StationData.h>
#include <meteoio/Config.h>
#include <meteoio/Meteo1DInterpolator.h>
#include <meteoio/meteofilters/ProcessingStack.h>
#include <meteoio/meteoFilters/ProcessingStack.h>
#include <vector>
#include <set>
......
......@@ -17,10 +17,10 @@
*/
#include <meteoio/ResamplingAlgorithms.h>
#include <meteoio/MathOptim.h>
#include <meteoio/meteolaws/Atmosphere.h>
#include <meteoio/meteolaws/Sun.h>
#include <meteoio/meteostats/libinterpol1D.h>
#include <meteoio/meteofilters/ProcHNWDistribute.h> //for the precipitation distribution
#include <meteoio/meteoLaws/Atmosphere.h>
#include <meteoio/meteoLaws/Sun.h>
#include <meteoio/meteoStats/libinterpol1D.h>
#include <meteoio/meteoFilters/ProcHNWDistribute.h> //for the precipitation distribution
#include <cmath>
#include <algorithm>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment