iLand
climateconverter.h
Go to the documentation of this file.
1/********************************************************************************************
2** iLand - an individual based forest landscape and disturbance model
3** http://iland-model.org
4** Copyright (C) 2009- Werner Rammer, Rupert Seidl
5**
6** This program is free software: you can redistribute it and/or modify
7** it under the terms of the GNU General Public License as published by
8** the Free Software Foundation, either version 3 of the License, or
9** (at your option) any later version.
10**
11** This program is distributed in the hope that it will be useful,
12** but WITHOUT ANY WARRANTY; without even the implied warranty of
13** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14** GNU General Public License for more details.
15**
16** You should have received a copy of the GNU General Public License
17** along with this program. If not, see <http://www.gnu.org/licenses/>.
18********************************************************************************************/
19
20#ifndef CLIMATECONVERTER_H
21#define CLIMATECONVERTER_H
22#include <QObject>
23#include <QJSEngine>
24#include <QJSValue>
25
26#include "expression.h"
27
28class ClimateConverter : public QObject
29{
30 Q_OBJECT
31 Q_PROPERTY(QString fileName WRITE setFileName READ fileName);
32 Q_PROPERTY(QString tableName WRITE setTableName READ tableName);
33 Q_PROPERTY(QString database WRITE setDatabase READ database);
34 Q_PROPERTY(bool captions WRITE setCaptions READ captions);
35
36
37 Q_PROPERTY(QString year WRITE setYear READ year);
38 Q_PROPERTY(QString month WRITE setMonth READ month);
39 Q_PROPERTY(QString day WRITE setDay READ day);
40 Q_PROPERTY(QString temp WRITE setTemp READ temp);
41 Q_PROPERTY(QString minTemp WRITE setMinTemp READ minTemp);
42 Q_PROPERTY(QString prec WRITE setPrec READ prec);
43 Q_PROPERTY(QString rad WRITE setRad READ rad);
44 Q_PROPERTY(QString vpd WRITE setVpd READ vpd);
45
46public:
47 ClimateConverter(QObject *parent=0);
48 static void addToScriptEngine(QJSEngine &engine);
49 // getters
50 const QString fileName() const { return mFileName; }
51 const QString tableName() const { return mTableName; }
52 const QString database() const { return mDatabase; }
53 bool captions() const { return mCaptions; }
54 const QString year() const { return mYear; }
55 const QString month() const { return mMonth; }
56 const QString day() const { return mDay; }
57 const QString temp() const { return mTemp; }
58 const QString minTemp() const { return mMinTemp; }
59 const QString prec() const { return mPrec; }
60 const QString rad() const { return mRad; }
61 const QString vpd() const { return mVpd; }
62
63 // setters
64 void setFileName(const QString fileName) { mFileName = fileName; }
65 void setTableName(const QString tableName) { mTableName = tableName; }
66 void setDatabase(const QString db) { mDatabase = db; }
67 void setCaptions(const bool on) { mCaptions = on; }
68 void setYear(const QString value) { mYear = value; }
69 void setMonth(const QString value) { mMonth = value; }
70 void setDay(const QString value) { mDay = value; }
71 void setTemp(const QString value) { mTemp = value; }
72 void setMinTemp(const QString value) { mMinTemp = value; }
73 void setPrec(const QString value) { mPrec = value; }
74 void setRad(const QString value) { mRad = value; }
75 void setVpd(const QString value) { mVpd = value; }
76
77public slots:
78 void run();
79
80private:
81 void bindExpression(Expression &expr, int index);
82 double *mVars[100];
83 QString mFileName;
84 QString mTableName;
85 QString mDatabase;
86 bool mCaptions;
87
88 QString mYear;
89 QString mMonth;
90 QString mDay;
91 QString mTemp;
92 QString mMinTemp;
93 QString mPrec;
94 QString mRad;
95 QString mVpd;
96
97 Expression mExpYear;
98 Expression mExpMonth;
99 Expression mExpDay;
100 Expression mExpTemp;
101 Expression mExpMinTemp;
102 Expression mExpPrec;
103 Expression mExpRad;
104 Expression mExpVpd;
105
106};
107
108
109#endif // CLIMATECONVERTER_H
Converts text-file-based data into the iLand climate data format.
Definition: climateconverter.h:29
QString rad
Definition: climateconverter.h:42
const QString temp() const
Definition: climateconverter.h:57
QString fileName
Definition: climateconverter.h:31
QString month
Definition: climateconverter.h:37
void setMonth(const QString value)
Definition: climateconverter.h:69
void run()
Definition: climateconverter.cpp:74
void setYear(const QString value)
Definition: climateconverter.h:68
QString tableName
Definition: climateconverter.h:31
void setTemp(const QString value)
Definition: climateconverter.h:71
const QString rad() const
Definition: climateconverter.h:60
void setRad(const QString value)
Definition: climateconverter.h:74
const QString year() const
Definition: climateconverter.h:54
const QString vpd() const
Definition: climateconverter.h:61
void setTableName(const QString tableName)
Definition: climateconverter.h:65
QString prec
Definition: climateconverter.h:41
const QString tableName() const
Definition: climateconverter.h:51
const QString minTemp() const
Definition: climateconverter.h:58
const QString day() const
Definition: climateconverter.h:56
bool captions() const
Definition: climateconverter.h:53
QString database
Definition: climateconverter.h:32
QString vpd
Definition: climateconverter.h:43
void setDay(const QString value)
Definition: climateconverter.h:70
const QString database() const
Definition: climateconverter.h:52
void setMinTemp(const QString value)
Definition: climateconverter.h:72
void setCaptions(const bool on)
Definition: climateconverter.h:67
static void addToScriptEngine(QJSEngine &engine)
add this class to scripting engine
Definition: climateconverter.cpp:40
void setPrec(const QString value)
Definition: climateconverter.h:73
const QString month() const
Definition: climateconverter.h:55
bool captions
Definition: climateconverter.h:33
void setVpd(const QString value)
Definition: climateconverter.h:75
ClimateConverter(QObject *parent=0)
Definition: climateconverter.cpp:50
const QString prec() const
Definition: climateconverter.h:59
QString year
Definition: climateconverter.h:34
QString minTemp
Definition: climateconverter.h:40
void setFileName(const QString fileName)
Definition: climateconverter.h:64
const QString fileName() const
Definition: climateconverter.h:50
QString temp
Definition: climateconverter.h:39
void setDatabase(const QString db)
Definition: climateconverter.h:66
QString day
Definition: climateconverter.h:38
An expression engine for mathematical expressions provided as strings.
Definition: expression.h:29