Skip to content

Commit dc887a7

Browse files
committed
Merge commit 'cae4252a4199467a1730c129da391514f390fb24'
2 parents 694950a + cae4252 commit dc887a7

File tree

5 files changed

+25
-15
lines changed

5 files changed

+25
-15
lines changed

agrolib/criteriaOutput/criteriaOutputElaboration.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ bool writeDtxToDB(QSqlDatabase db, QString idCase, std::vector<double>& dt30,
291291
int writeCsvOutputUnit(const QString &idCase, const QString &idCropClass, const QList<QString> &dataTables,
292292
QSqlDatabase &dbData, QSqlDatabase &dbCrop, QSqlDatabase &dbClimateData,
293293
const QDate &dateComputation, const CriteriaOutputVariable &outputVariable,
294-
const QString &csvFileName, QString &errorStr)
294+
const QString &csvFileName, int &nrMissingData, QString &errorStr)
295295
{
296296
// IRRI RATIO (parameter for elaboration on IRRIGATION variable)
297297
float irriRatio = NODATA;
@@ -311,6 +311,7 @@ int writeCsvOutputUnit(const QString &idCase, const QString &idCropClass, const
311311

312312
double result = NODATA;
313313
int periodTDX = NODATA;
314+
nrMissingData = 0;
314315

315316
// check if table for idCase exist (skip otherwise)
316317
if (! dataTables.contains(idCase))
@@ -396,6 +397,7 @@ int writeCsvOutputUnit(const QString &idCase, const QString &idCropClass, const
396397
if (selectRes == ERROR_DB_INCOMPLETE_DATA)
397398
{
398399
result = NODATA;
400+
++nrMissingData;
399401
}
400402
else if(selectRes != CRIT1D_OK)
401403
{
@@ -421,6 +423,7 @@ int writeCsvOutputUnit(const QString &idCase, const QString &idCropClass, const
421423
if (DTXRes == ERROR_DB_INCOMPLETE_DATA)
422424
{
423425
result = NODATA;
426+
++nrMissingData;
424427
}
425428
else if (DTXRes != CRIT1D_OK)
426429
{
@@ -613,7 +616,6 @@ int selectSimpleVar(QSqlDatabase& db, QString idCase, QString varName, QString c
613616
}
614617
}
615618

616-
617619
QString statement = QString("SELECT %1(`%2`) FROM `%3` WHERE DATE >= '%4' AND DATE <= '%5'")
618620
.arg(computation, varName, idCase, firstDate.toString("yyyy-MM-dd"), lastDate.toString("yyyy-MM-dd"));
619621
if(! qry.exec(statement))

agrolib/criteriaOutput/criteriaOutputElaboration.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222
std::vector<double> &dt90, std::vector<double> &dt180, QString &errorStr);
2323

2424
int writeCsvOutputUnit(const QString &idCase, const QString &idCropClass, const QList<QString> &dataTables,
25-
QSqlDatabase &dbData, QSqlDatabase &dbCrop, QSqlDatabase &dbClimateData,
26-
const QDate &dateComputation, const CriteriaOutputVariable &outputVariable,
27-
const QString &csvFileName, QString &errorStr);
25+
QSqlDatabase &dbData, QSqlDatabase &dbCrop, QSqlDatabase &dbClimateData,
26+
const QDate &dateComputation, const CriteriaOutputVariable &outputVariable,
27+
const QString &csvFileName, int &nrMissingData, QString &errorStr);
2828

2929
int selectSimpleVar(QSqlDatabase &db, QString idCase, QString varName, QString computation, QDate firstDate,
3030
QDate lastDate, float irriRatio, std::vector<float> &resultVector, QString &errorStr);

agrolib/criteriaOutput/criteriaOutputProject.cpp

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -525,23 +525,28 @@ int CriteriaOutputProject::createCsvFile()
525525
// list of data tables
526526
QList<QString> dataTables = dbData.tables();
527527

528+
int totalMissingData = 0;
528529
for (unsigned int i=0; i < compUnitList.size(); i++)
529530
{
530531
idCase = compUnitList[i].idCase;
531532
idCropClass = compUnitList[i].idCropClass;
532533

534+
int nrMissingData;
533535
myResult = writeCsvOutputUnit(idCase, idCropClass, dataTables, dbData, dbCrop, dbClimateData,
534-
dateComputation, outputVariable, outputCsvFileName, projectError);
536+
dateComputation, outputVariable, outputCsvFileName, nrMissingData, projectError);
535537
if (myResult != CRIT1D_OK)
536538
{
537539
if (QFile(outputCsvFileName).exists() && i == 0)
538540
{
539541
// delete empty file
540542
QDir().remove(outputCsvFileName);
541543
}
544+
542545
return myResult;
543546
}
544547

548+
totalMissingData += nrMissingData;
549+
545550
// counter
546551
if (i % step == 0)
547552
{
@@ -554,6 +559,11 @@ int CriteriaOutputProject::createCsvFile()
554559
}
555560
}
556561

562+
if (totalMissingData > 0)
563+
{
564+
logger.writeInfo("WARNING! Cases with missing data: " + QString::number(totalMissingData));
565+
}
566+
557567
return CRIT1D_OK;
558568
}
559569

@@ -595,15 +605,11 @@ int CriteriaOutputProject::createShapeFile()
595605
{
596606
QDir().mkdir(outputShapeFilePath);
597607
}
608+
598609
if (! shapeFromCsv(inputShape, outputCsvFileName, fieldListFileName, outputShapeFileName, projectError))
599610
{
600611
return ERROR_SHAPEFILE;
601612
}
602-
/*
603-
if (! shapeComputation(outputShapeFileName, computationListFileName, projectError))
604-
{
605-
return ERROR_SHAPEFILE;
606-
}*/
607613

608614
return CRIT1D_OK;
609615
}
@@ -1318,8 +1324,9 @@ int CriteriaOutputProject::createCsvFileFromGUI(const QDate &dateComputation, co
13181324
QString idCase = compUnitList[i].idCase;
13191325
QString idCropClass = compUnitList[i].idCropClass;
13201326

1327+
int nrMissingData = 0;
13211328
myResult = writeCsvOutputUnit(idCase, idCropClass, dataTables, dbData, dbCrop, dbClimateData,
1322-
dateComputation, outputVariable, csvFileName, projectError);
1329+
dateComputation, outputVariable, csvFileName, nrMissingData, projectError);
13231330
if (myResult != CRIT1D_OK)
13241331
{
13251332
if (QFile(csvFileName).exists() && i == 0)

agrolib/criteriaOutput/criteriaOutputProject.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
#define ERROR_MAPS -85
4141
#define ERROR_MISSING_GDAL -100
4242

43-
#define CRITERIA_VERSION "v2.0.0 (2026)"
43+
#define CRITERIA_OUTPUT_VERSION "v2.0.1 (2026)"
4444

4545

4646
class CriteriaOutputProject

agrolib/shapeUtilities/shapeFromCsv.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ bool shapeFromCsv(const Crit3DShapeHandler &refShapeFile, const QString &csvFile
317317
}
318318
if (! writeOK)
319319
{
320-
errorStr = "Error in write this cases: " + idCase;
320+
errorStr = "Error in writing case: " + idCase + "\n*** Value: " + valueToWrite;
321321
outputShapeFile.close();
322322
csvFile.close();
323323
return false;
@@ -331,7 +331,8 @@ bool shapeFromCsv(const Crit3DShapeHandler &refShapeFile, const QString &csvFile
331331
outputShapeFile.close();
332332
csvFile.close();
333333

334-
std::cout << " done.\n";
334+
std::cout << " done." << std::endl;
335+
335336
return true;
336337
}
337338

0 commit comments

Comments
 (0)