Skip to content

Commit 06ee3ea

Browse files
committed
update rad
1 parent 5c2f8a2 commit 06ee3ea

File tree

2 files changed

+25
-36
lines changed

2 files changed

+25
-36
lines changed

agrolib/solarRadiation/radiationSettings.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ float Crit3DRadiationSettings::getLinke(int month) const
158158
if (linkeMode == PARAM_MODE_FIXED)
159159
return linkeDefault;
160160

161-
if (LinkeMonthly.size() == 12 && month > 0 && month < 12)
161+
if (month >= 0 && month < 12 && LinkeMonthly.size() > month)
162162
return LinkeMonthly[month];
163163
else
164164
return linkeDefault;

src/pragaProject/pragaProject.cpp

Lines changed: 24 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5508,6 +5508,16 @@ bool PragaProject::saveLogProceduresGrid(QString nameProc, QDate date)
55085508
}
55095509

55105510

5511+
void incDateTime(Crit3DDate &myDate, int &myHour)
5512+
{
5513+
++myHour;
5514+
if (myHour >= 24)
5515+
{
5516+
myHour -= 24;
5517+
myDate = myDate.addDays(1);
5518+
}
5519+
}
5520+
55115521
bool PragaProject::computeRadiationList(const QString &fileName, QString folderString)
55125522
{
55135523
if (! meteoPointsLoaded)
@@ -5653,9 +5663,10 @@ bool PragaProject::computeRadiationList(const QString &fileName, QString folderS
56535663
Crit3DDate myDate = myPoint.iniDate;
56545664
int myHour = myPoint.iniHour;
56555665
float myLinke;
5666+
bool isLast = false;
56565667

56575668
// main cycle (days and hours)
5658-
while ((myDate < myPoint.endDate) || (myHour <= myPoint.endHour))
5669+
while (! isLast)
56595670
{
56605671
myTime.date = myDate;
56615672
myTime.time = (myHour-0.5) * 3600;
@@ -5688,12 +5699,7 @@ bool PragaProject::computeRadiationList(const QString &fileName, QString folderS
56885699
{
56895700
logInfo("Error elaborating point " + QString::fromStdString(myPoint.fileName.substr(myPoint.fileName.rfind('/') + 1)));
56905701
logInfo("Error interpolating temperature.");
5691-
myHour++;
5692-
if (myHour >= 24)
5693-
{
5694-
myHour -= 24;
5695-
myDate = myDate.addDays(1);
5696-
}
5702+
incDateTime(myDate, myHour);
56975703
continue;
56985704
}
56995705

@@ -5713,14 +5719,9 @@ bool PragaProject::computeRadiationList(const QString &fileName, QString folderS
57135719

57145720
if (! computeTransmissivity(&radSettings, meteoPoints, intervalWidth, myTime, DEM))
57155721
{
5716-
logInfo("Error elaborating point " + QString::fromStdString(myPoint.fileName.substr(myPoint.fileName.rfind('/') + 1)));
5722+
logInfo("Error elaborating point: " + QString::fromStdString(myPoint.fileName.substr(myPoint.fileName.rfind('/') + 1)));
57175723
logInfo("Error computing transmissivity.");
5718-
myHour++;
5719-
if (myHour >= 24)
5720-
{
5721-
myHour -= 24;
5722-
myDate = myDate.addDays(1);
5723-
}
5724+
incDateTime(myDate, myHour);
57245725
continue;
57255726
}
57265727

@@ -5738,30 +5739,20 @@ bool PragaProject::computeRadiationList(const QString &fileName, QString folderS
57385739
}
57395740
else
57405741
{
5741-
logInfo("Error elaborating point " + QString::fromStdString(myPoint.fileName.substr(myPoint.fileName.rfind('/') + 1)));
5742+
logInfo("Error elaborating point: " + QString::fromStdString(myPoint.fileName.substr(myPoint.fileName.rfind('/') + 1)));
57425743
logInfo("Error interpolating transmissivity.");
5743-
myHour++;
5744-
if (myHour >= 24)
5745-
{
5746-
myHour -= 24;
5747-
myDate = myDate.addDays(1);
5748-
}
5744+
incDateTime(myDate, myHour);
57495745
continue;
57505746
}
57515747

5752-
//radiation
5748+
// radiation
57535749
if (! radiation::computeRadiationRsun(&radSettings, myTemperature, myPressure, myTime,
57545750
myLinke, radSettings.getAlbedo(), radSettings.getClearSky(),
57555751
myTransmissivity, sunPosition, myPoint.radPoint, DEM))
57565752
{
5757-
logInfo("Error elaborating point " + QString::fromStdString(myPoint.fileName.substr(myPoint.fileName.rfind('/') + 1)));
5753+
logInfo("Error elaborating point: " + QString::fromStdString(myPoint.fileName.substr(myPoint.fileName.rfind('/') + 1)));
57585754
logInfo("Error computing point radiation.");
5759-
myHour++;
5760-
if (myHour >= 24)
5761-
{
5762-
myHour -= 24;
5763-
myDate = myDate.addDays(1);
5764-
}
5755+
incDateTime(myDate, myHour);
57655756
continue;
57665757
}
57675758
}
@@ -5788,12 +5779,10 @@ bool PragaProject::computeRadiationList(const QString &fileName, QString folderS
57885779

57895780
outStream << "\n";
57905781

5791-
myHour++;
5792-
if (myHour >= 24)
5793-
{
5794-
myHour -= 24;
5795-
myDate = myDate.addDays(1);
5796-
}
5782+
if (myDate == myPoint.endDate && myHour == myPoint.endHour)
5783+
isLast = true;
5784+
5785+
incDateTime(myDate, myHour);
57975786
}
57985787

57995788
logInfo("Elaboration finished for " + QString::fromStdString(myPoint.fileName.substr(myPoint.fileName.rfind('/') + 1)));

0 commit comments

Comments
 (0)