diff --git a/doxygen/config b/doxygen/config index 87b47615..fb4797fd 100644 --- a/doxygen/config +++ b/doxygen/config @@ -151,7 +151,7 @@ SHORT_NAMES = NO # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) -JAVADOC_AUTOBRIEF = NO +JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style @@ -694,7 +694,7 @@ EXCLUDE_SYMLINKS = NO # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* -EXCLUDE_PATTERNS = +EXCLUDE_PATTERNS = */Testing/* */devel/* # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the diff --git a/src/Calibrator/Cloud.h b/src/Calibrator/Cloud.h index 60dbec23..16707f64 100644 --- a/src/Calibrator/Cloud.h +++ b/src/Calibrator/Cloud.h @@ -3,7 +3,7 @@ #include "Calibrator.h" #include "../Variable.h" -// Ensure that if a member has precip it also has full cloud cover +//! Ensures that if a member has precip it also has full cloud cover class CalibratorCloud : public Calibrator { public: CalibratorCloud(Variable::Type iPrecip=Variable::Precip, Variable::Type iCloud=Variable::Cloud); diff --git a/src/Calibrator/Phase.h b/src/Calibrator/Phase.h index 06c7e192..a9eff7be 100644 --- a/src/Calibrator/Phase.h +++ b/src/Calibrator/Phase.h @@ -3,7 +3,7 @@ #include "Calibrator.h" class ParameterFile; -// Ensure that if a member has precip it also has full cloud cover +//! Creates a precipitation-phase field class CalibratorPhase : public Calibrator { public: CalibratorPhase(const ParameterFile* iParameterFile); diff --git a/src/Calibrator/Smooth.h b/src/Calibrator/Smooth.h index 94ab48d2..55e13613 100644 --- a/src/Calibrator/Smooth.h +++ b/src/Calibrator/Smooth.h @@ -6,6 +6,7 @@ class ParameterFile; class Parameters; +//! Smooths a field by averaging across a neighbourhood class CalibratorSmooth : public Calibrator { public: CalibratorSmooth(Variable::Type iVariable); diff --git a/src/Calibrator/Zaga.h b/src/Calibrator/Zaga.h index f42a1e82..e8b50bdb 100644 --- a/src/Calibrator/Zaga.h +++ b/src/Calibrator/Zaga.h @@ -6,10 +6,10 @@ class ParameterFile; class Parameters; -// Zero-adjusted gamma distribution, using predictors: -// - ensemble mean -// - ensemble fraction -// Designed for precip +//! Ensemble calibration using zero-adjusted gamma distribution. Its predictors are: +//! - ensemble mean +//! - ensemble fraction +//! Designed for precip class CalibratorZaga : public Calibrator { public: CalibratorZaga(const ParameterFile* iParameterFile, Variable::Type iMainPredictor); diff --git a/src/Downscaler/Bypass.h b/src/Downscaler/Bypass.h index 954ae915..780d0215 100644 --- a/src/Downscaler/Bypass.h +++ b/src/Downscaler/Bypass.h @@ -4,6 +4,8 @@ #include "../Variable.h" #include "../Util.h" typedef std::vector > vec2Int; + +//! Skip the downscaling stage class DownscalerBypass : public Downscaler { public: DownscalerBypass(Variable::Type iVariable); diff --git a/src/Downscaler/Downscaler.h b/src/Downscaler/Downscaler.h index 77ad398a..539b0cb3 100644 --- a/src/Downscaler/Downscaler.h +++ b/src/Downscaler/Downscaler.h @@ -8,6 +8,7 @@ class File; typedef std::vector > vec2Int; +//! Converts fields from one grid to another class Downscaler { public: Downscaler(Variable::Type iVariable); diff --git a/src/Downscaler/Smart.h b/src/Downscaler/Smart.h index c3fa073b..37d68632 100644 --- a/src/Downscaler/Smart.h +++ b/src/Downscaler/Smart.h @@ -5,6 +5,8 @@ #include "../Util.h" typedef std::vector > vec2Int; typedef std::vector > > vec3Int; // lat, lon, neighbour index + +//! Downscale using neighbours at similar elevation class DownscalerSmart : public Downscaler { public: //! Downscale the specified variable diff --git a/src/Field.h b/src/Field.h index ae41064b..d7b84069 100644 --- a/src/Field.h +++ b/src/Field.h @@ -4,7 +4,7 @@ #include #include "Util.h" -//! /brief Encapsulates gridded data in 3 dimensions: latitude, longitude, ensemble member. +//! Encapsulates gridded data in 3 dimensions: latitude, longitude, ensemble member. //! Latitude generally represents the north-south direction and longitude the east-west, but the //! grid does not necessarily need to follow a lat/lon grid. Any 2D grid will do. // TODO: Rename latitude to x and longitude to y, as this is more generally correct. diff --git a/src/File/Fake.h b/src/File/Fake.h index e0a59fe5..47bcc20d 100644 --- a/src/File/Fake.h +++ b/src/File/Fake.h @@ -2,10 +2,10 @@ #define FILE_FAKE_H #include "File.h" +//! A file type giving fake data, useful for testing class FileFake : public File { public: FileFake(int nLat=10, int nLon=10, int nEns=2, int nTime=10); - std::string name() const {return "fake";}; protected: void writeCore(std::vector iVariables); diff --git a/src/File/File.h b/src/File/File.h index a052935d..72be5d57 100644 --- a/src/File/File.h +++ b/src/File/File.h @@ -12,7 +12,7 @@ // 3D array of data: [lat][lon][ensemble_member] typedef std::vector > vec2; // Lat, Lon -//! Represents a Netcdf data file +//! Represents a data file containing spatial and temporal data initialized at one particular time class File { public: File(std::string iFilename); @@ -20,10 +20,11 @@ class File { static File* getScheme(std::string iFilename, bool iReadOnly=false); FieldPtr getField(Variable::Type iVariable, int iTime) const; + //! Get a new field initialized with missing values FieldPtr getEmptyField(float iFillValue=Util::MV) const; - // Add a field to the file, overwriting existing ones (if available) + // Add a field to the file, overwriting existing ones (if necessary) void addField(FieldPtr iField, Variable::Type iVariable, int iTime) const; // Write these variables to file diff --git a/src/Setup.h b/src/Setup.h index 972ec4cb..02c9a758 100644 --- a/src/Setup.h +++ b/src/Setup.h @@ -19,10 +19,9 @@ struct VariableConfiguration { Options variableOptions; }; -//! Represents what and how the post-processing should be done including which -//! input file to post-process, which output file to place the results in, -//! which variables to post-process, and what post-processing methods to invoke -//! on each variable. +//! Represents what and how the post-processing should be done. Includes which input file to +//! post-process, which output file to place the results in, which variables to post-process, +//! and what post-processing methods to invoke on each variable. class Setup { public: File* inputFile; diff --git a/src/Variable.h b/src/Variable.h index ff8780a3..1475a999 100644 --- a/src/Variable.h +++ b/src/Variable.h @@ -3,22 +3,23 @@ #include #include -// Represents a meteorological variable +//! Represents a meteorological variable and its metadata class Variable { public: + //! Variable types enum Type { - Precip = 0, // Hourly amount ending at the specified time + Precip = 0, // Hourly amount ending at the specified time PrecipAcc = 1, // Accumulated ending at the specified time - Cloud = 10, // Cloud cover (between 0 and 1) - T = 20, // 2m temperature (K) - U = 30, // 10m U-wind (m/s) - V = 40, // 10m V-wind (m/s) - W = 50, // 10m windspeed (m/s) - WD = 55, // Wind direction (degrees, from north 0) - RH = 60, // Reliative humidity (%) - Phase = 70, // Precip phase - P = 80, // Surface pressure (pa) - Fake = 90 // Fake variable used for testing + Cloud = 10, // Cloud cover (between 0 and 1) + T = 20, // 2m temperature (K) + U = 30, // 10m U-wind (m/s) + V = 40, // 10m V-wind (m/s) + W = 50, // 10m windspeed (m/s) + WD = 55, // Wind direction (degrees, from north 0) + RH = 60, // Reliative humidity (%) + Phase = 70, // Precip phase + P = 80, // Surface pressure (pa) + Fake = 90 // Fake variable used for testing }; //! Convert type to string