Skip to content

Commit

Permalink
update GUI
Browse files Browse the repository at this point in the history
  • Loading branch information
ftomei committed Jun 28, 2024
1 parent 95ab782 commit 2f704a5
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 62 deletions.
Binary file modified DATA/PROJECT/test/data/crop.db
Binary file not shown.
63 changes: 32 additions & 31 deletions agrolib/criteria1DWidget/tabIrrigation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,30 +15,31 @@ TabIrrigation::TabIrrigation()

seriesLAI = new QLineSeries();
seriesMaxTransp = new QLineSeries();
seriesRealTransp = new QLineSeries();
seriesActualTransp = new QLineSeries();
seriesMaxEvap = new QLineSeries();
seriesRealEvap = new QLineSeries();

seriesLAI->setName("LAI [m2 m-2]");
seriesMaxTransp->setName("Transpiration max [mm]");
seriesRealTransp->setName("actual Transpiration [mm]");
seriesMaxEvap->setName("Evaporation max [mm]");
seriesRealEvap->setName("actual Evaporation [mm]");

seriesLAI->setColor(QColor(Qt::green));
seriesMaxTransp->setColor(QColor(0,0,1,255));
seriesRealTransp->setColor(QColor(Qt::red));
seriesActualEvap = new QLineSeries();

seriesLAI->setName("LAI [m2 m-2] ");
seriesMaxTransp->setName("max. Transpiration [mm]");
seriesActualTransp->setName("actual Transpiration [mm]");
seriesMaxEvap->setName("max. Evaporation [mm]");
seriesActualEvap->setName("actual Evaporation [mm]");

QPen pen;
pen.setWidth(2);
pen.setColor(QColor(0, 200, 0, 255));
seriesLAI->setPen(pen);

// bug with black
seriesMaxTransp->setColor(QColor(0, 0, 1, 255));
seriesActualTransp->setColor(QColor(Qt::red));
seriesMaxEvap->setColor(QColor(Qt::gray));
seriesRealEvap->setColor(QColor(Qt::yellow));
seriesActualEvap->setColor(QColor(210, 150, 20, 255));

seriesPrecIrr = new QBarSeries();

setPrec = new QBarSet("Precipitation [mm]");
setIrrigation = new QBarSet("Irrigation [mm]");
setPrec->setColor(QColor(Qt::blue));
setPrec->setBorderColor(QColor(Qt::blue));
setIrrigation->setColor(QColor(Qt::cyan));
setIrrigation->setBorderColor(QColor(Qt::cyan));

seriesPrecIrr->append(setPrec);
seriesPrecIrr->append(setIrrigation);
Expand Down Expand Up @@ -76,23 +77,23 @@ TabIrrigation::TabIrrigation()

chart->addSeries(seriesLAI);
chart->addSeries(seriesMaxTransp);
chart->addSeries(seriesRealTransp);
chart->addSeries(seriesActualTransp);
chart->addSeries(seriesMaxEvap);
chart->addSeries(seriesRealEvap);
chart->addSeries(seriesActualEvap);
chart->addSeries(seriesPrecIrr);

seriesLAI->attachAxis(axisX);
seriesMaxTransp->attachAxis(axisX);
seriesRealTransp->attachAxis(axisX);
seriesActualTransp->attachAxis(axisX);
seriesMaxEvap->attachAxis(axisX);
seriesRealEvap->attachAxis(axisX);
seriesActualEvap->attachAxis(axisX);
seriesPrecIrr->attachAxis(axisX);

seriesLAI->attachAxis(axisY);
seriesMaxTransp->attachAxis(axisY);
seriesRealTransp->attachAxis(axisY);
seriesActualTransp->attachAxis(axisY);
seriesMaxEvap->attachAxis(axisY);
seriesRealEvap->attachAxis(axisY);
seriesActualEvap->attachAxis(axisY);
seriesPrecIrr->attachAxis(axisYdx);

chart->legend()->setVisible(true);
Expand All @@ -109,9 +110,9 @@ TabIrrigation::TabIrrigation()

connect(seriesLAI, &QLineSeries::hovered, this, &TabIrrigation::tooltipLAI);
connect(seriesMaxTransp, &QLineSeries::hovered, this, &TabIrrigation::tooltipEvapTransp);
connect(seriesRealTransp, &QLineSeries::hovered, this, &TabIrrigation::tooltipEvapTransp);
connect(seriesActualTransp, &QLineSeries::hovered, this, &TabIrrigation::tooltipEvapTransp);
connect(seriesMaxEvap, &QLineSeries::hovered, this, &TabIrrigation::tooltipEvapTransp);
connect(seriesRealEvap, &QLineSeries::hovered, this, &TabIrrigation::tooltipEvapTransp);
connect(seriesActualEvap, &QLineSeries::hovered, this, &TabIrrigation::tooltipEvapTransp);
connect(seriesPrecIrr, &QHorizontalBarSeries::hovered, this, &TabIrrigation::tooltipPrecIrr);
foreach(QLegendMarker* marker, chart->legend()->markers())
{
Expand Down Expand Up @@ -152,9 +153,9 @@ void TabIrrigation::computeIrrigation(Crit1DCase &myCase, int firstYear, int las
axisX->clear();
seriesLAI->clear();
seriesMaxTransp->clear();
seriesRealTransp->clear();
seriesActualTransp->clear();
seriesMaxEvap->clear();
seriesRealEvap->clear();
seriesActualEvap->clear();
categories.clear();

if (setPrec!= nullptr)
Expand All @@ -168,8 +169,8 @@ void TabIrrigation::computeIrrigation(Crit1DCase &myCase, int firstYear, int las
{
seriesPrecIrr->remove(setIrrigation);
setIrrigation = new QBarSet("Irrigation [mm]");
setIrrigation->setColor(QColor(Qt::cyan));
setIrrigation->setBorderColor(QColor(Qt::cyan));
setIrrigation->setColor(QColor(16,183,235,255));
setIrrigation->setBorderColor(QColor(16,183,235,255));
}

int currentDoy = 1;
Expand Down Expand Up @@ -199,9 +200,9 @@ void TabIrrigation::computeIrrigation(Crit1DCase &myCase, int firstYear, int las
categories.append(QString::number(doy));
seriesLAI->append(doy, myCase.crop.LAI);
seriesMaxTransp->append(doy, myCase.output.dailyMaxTranspiration);
seriesRealTransp->append(doy, myCase.output.dailyTranspiration);
seriesActualTransp->append(doy, myCase.output.dailyTranspiration);
seriesMaxEvap->append(doy, myCase.output.dailyMaxEvaporation);
seriesRealEvap->append(doy, myCase.output.dailyEvaporation);
seriesActualEvap->append(doy, myCase.output.dailyEvaporation);
*setPrec << myCase.output.dailyPrec;
*setIrrigation << myCase.output.dailyIrrigation;
}
Expand Down
4 changes: 2 additions & 2 deletions agrolib/criteria1DWidget/tabIrrigation.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@
QList<QString> categories;
QLineSeries* seriesLAI;
QLineSeries* seriesMaxTransp;
QLineSeries* seriesRealTransp;
QLineSeries* seriesActualTransp;
QLineSeries* seriesMaxEvap;
QLineSeries* seriesRealEvap;
QLineSeries* seriesActualEvap;
QBarSeries* seriesPrecIrr;
QBarSet *setPrec;
QBarSet *setIrrigation;
Expand Down
60 changes: 32 additions & 28 deletions agrolib/criteria1DWidget/tabLAI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,34 @@ TabLAI::TabLAI()
chartView->setChart(chart);

seriesLAI = new QLineSeries();
seriesPotentialEvap = new QLineSeries();
seriesMaxEvap = new QLineSeries();
seriesLAI->setName("Leaf Area Index [m2 m-2] ");
QPen pen;
pen.setWidth(2);
seriesLAI->setPen(pen);
seriesLAI->setColor(QColor(0, 200, 0, 255));

seriesETP = new QLineSeries();
seriesETP->setName("Potential evapotranspiration [mm] ");
// bug with black
seriesETP->setColor(QColor(0, 0, 1, 255));

seriesMaxTransp = new QLineSeries();
seriesLAI->setName("Leaf Area Index [m2 m-2]");
seriesPotentialEvap->setName("Potential evapotranspiration [mm]");
seriesPotentialEvap->setColor(QColor(Qt::darkGray));
seriesMaxEvap->setName("Evaporation max [mm]");
seriesMaxEvap->setColor(QColor(Qt::blue));
seriesMaxTransp->setName("Transpiration max [mm]");
seriesMaxTransp->setName("Maximum transpiration [mm] ");
seriesMaxTransp->setColor(QColor(Qt::red));

seriesMaxEvap = new QLineSeries();
seriesMaxEvap->setName("Maximum evaporation [mm] ");
seriesMaxEvap->setColor(QColor(Qt::blue));

axisX = new QDateTimeAxis();
axisY = new QValueAxis();
axisYdx = new QValueAxis();

chart->addSeries(seriesLAI);
chart->addSeries(seriesPotentialEvap);
chart->addSeries(seriesMaxEvap);
chart->addSeries(seriesETP);
chart->addSeries(seriesMaxTransp);
chart->addSeries(seriesMaxEvap);

QDate first(QDate::currentDate().year(), 1, 1);
QDate last(QDate::currentDate().year(), 12, 31);
axisX->setTitleText("Date");
Expand All @@ -46,32 +55,27 @@ TabLAI::TabLAI()
axisX->setTickCount(13);
chart->addAxis(axisX, Qt::AlignBottom);
seriesLAI->attachAxis(axisX);
seriesPotentialEvap->attachAxis(axisX);
seriesETP->attachAxis(axisX);
seriesMaxEvap->attachAxis(axisX);
seriesMaxTransp->attachAxis(axisX);

QFont font = axisX->titleFont();

qreal maximum = 8;
axisY->setTitleText("Leaf Area Index [m2 m-2]");
axisY->setTitleFont(font);
axisY->setRange(0,7);
axisY->setTickCount(8);

QPen pen;
pen.setWidth(3);
pen.setBrush(Qt::green);
axisY->setRange(0, maximum);
axisY->setTickCount(maximum+1);

axisYdx->setTitleText("Evapotranspiration [mm]");
axisYdx->setRange(0,7);
axisYdx->setTickCount(8);
axisYdx->setTitleFont(font);

seriesLAI->setPen(pen);
axisYdx->setRange(0, maximum);
axisYdx->setTickCount(maximum+1);

chart->addAxis(axisY, Qt::AlignLeft);
chart->addAxis(axisYdx, Qt::AlignRight);
seriesLAI->attachAxis(axisY);
seriesPotentialEvap->attachAxis(axisYdx);
seriesETP->attachAxis(axisYdx);
seriesMaxEvap->attachAxis(axisYdx);
seriesMaxTransp->attachAxis(axisYdx);

Expand All @@ -87,7 +91,7 @@ TabLAI::TabLAI()
m_tooltip->hide();

connect(seriesLAI, &QLineSeries::hovered, this, &TabLAI::tooltipLAI);
connect(seriesPotentialEvap, &QLineSeries::hovered, this, &TabLAI::tooltipPE);
connect(seriesETP, &QLineSeries::hovered, this, &TabLAI::tooltipPE);
connect(seriesMaxEvap, &QLineSeries::hovered, this, &TabLAI::tooltipME);
connect(seriesMaxTransp, &QLineSeries::hovered, this, &TabLAI::tooltipMaxTranspiration);

Expand Down Expand Up @@ -129,12 +133,12 @@ void TabLAI::computeLAI(Crit3DCrop* myCrop, Crit3DMeteoPoint *meteoPoint, int fi
std::string errorStr;

chart->removeSeries(seriesLAI);
chart->removeSeries(seriesPotentialEvap);
chart->removeSeries(seriesETP);
chart->removeSeries(seriesMaxEvap);
chart->removeSeries(seriesMaxTransp);

seriesLAI->clear();
seriesPotentialEvap->clear();
seriesETP->clear();
seriesMaxEvap->clear();
seriesMaxTransp->clear();

Expand All @@ -161,7 +165,7 @@ void TabLAI::computeLAI(Crit3DCrop* myCrop, Crit3DMeteoPoint *meteoPoint, int fi

// ET0
dailyEt0 = ET0_Hargreaves(TRANSMISSIVITY_SAMANI_COEFF_DEFAULT, meteoPoint->latitude, doy, tmax, tmin);
seriesPotentialEvap->append(x.toMSecsSinceEpoch(), dailyEt0);
seriesETP->append(x.toMSecsSinceEpoch(), dailyEt0);
seriesMaxEvap->append(x.toMSecsSinceEpoch(), myCrop->getMaxEvaporation(dailyEt0));
seriesMaxTransp->append(x.toMSecsSinceEpoch(), myCrop->getMaxTranspiration(dailyEt0));
seriesLAI->append(x.toMSecsSinceEpoch(), myCrop->LAI);
Expand All @@ -175,12 +179,12 @@ void TabLAI::computeLAI(Crit3DCrop* myCrop, Crit3DMeteoPoint *meteoPoint, int fi
axisX->setMax(QDateTime(last, QTime(0,0,0)));

chart->addSeries(seriesLAI);
chart->addSeries(seriesPotentialEvap);
chart->addSeries(seriesETP);
chart->addSeries(seriesMaxEvap);
chart->addSeries(seriesMaxTransp);

seriesLAI->attachAxis(axisY);
seriesPotentialEvap->attachAxis(axisYdx);
seriesETP->attachAxis(axisYdx);
seriesMaxEvap->attachAxis(axisYdx);
seriesMaxTransp->attachAxis(axisYdx);

Expand Down
2 changes: 1 addition & 1 deletion agrolib/criteria1DWidget/tabLAI.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
QChartView *chartView;
QChart *chart;
QLineSeries *seriesLAI;
QLineSeries *seriesPotentialEvap;
QLineSeries *seriesETP;
QLineSeries *seriesMaxEvap;
QLineSeries *seriesMaxTransp;
QDateTimeAxis *axisX;
Expand Down

0 comments on commit 2f704a5

Please sign in to comment.