Skip to content

Commit

Permalink
add fos on gui
Browse files Browse the repository at this point in the history
ftomei committed Mar 8, 2024
1 parent 81671a7 commit 76844bf
Showing 5 changed files with 45 additions and 2 deletions.
20 changes: 20 additions & 0 deletions agrolib/gis/color.cpp
Original file line number Diff line number Diff line change
@@ -203,6 +203,26 @@ bool setTemperatureScale(Crit3DColorScale* myScale)
}


bool setSlopeStabilityScale(Crit3DColorScale* myScale)
{
myScale->initialize(11, 220);

myScale->keyColor[0] = Crit3DColor(128, 0, 128); /*!< violet */
myScale->keyColor[1] = Crit3DColor(255, 0, 0); /*!< red */
myScale->keyColor[2] = Crit3DColor(255, 255, 0); /*!< yellow */
myScale->keyColor[3] = Crit3DColor(128, 220, 0); /*!< yellow/green */
myScale->keyColor[4] = Crit3DColor(64, 196, 64); /*!< green */
myScale->keyColor[5] = Crit3DColor(64, 196, 64); /*!< green */
myScale->keyColor[6] = Crit3DColor(64, 196, 64); /*!< green */
myScale->keyColor[7] = Crit3DColor(64, 196, 64); /*!< green */
myScale->keyColor[8] = Crit3DColor(64, 196, 64); /*!< green */
myScale->keyColor[9] = Crit3DColor(64, 196, 64); /*!< green */
myScale->keyColor[10] = Crit3DColor(64, 196, 64); /*!< green */

return(myScale->classify());
}


bool setAnomalyScale(Crit3DColorScale* myScale)
{
myScale->initialize(5, 256);
1 change: 1 addition & 0 deletions agrolib/gis/color.h
Original file line number Diff line number Diff line change
@@ -55,6 +55,7 @@
bool setDefaultScale(Crit3DColorScale* myScale);
bool setDTMScale(Crit3DColorScale* myScale);
bool setTemperatureScale(Crit3DColorScale* myScale);
bool setSlopeStabilityScale(Crit3DColorScale* myScale);
bool setAnomalyScale(Crit3DColorScale* myScale);
bool setPrecipitationScale(Crit3DColorScale* myScale);
bool setRelativeHumidityScale(Crit3DColorScale* myScale);
7 changes: 6 additions & 1 deletion bin/CRITERIA3D/mainwindow.cpp
Original file line number Diff line number Diff line change
@@ -2311,6 +2311,11 @@ void MainWindow::showCriteria3DVariable(criteria3DVariable var, int layerIndex,
ui->labelOutputRaster->setText("Volumetric water content [m3 m-3]");
}
}
else if (current3DVariable == factorOfSafety)
{
setSlopeStabilityScale(myProject.criteria3DMap.colorScale);
ui->labelOutputRaster->setText("Factor of safety [-]");
}

// set range
if (isFixedRange)
@@ -3146,7 +3151,7 @@ void MainWindow::on_actionView_SoilMoisture_triggered()
void MainWindow::on_actionView_factor_of_safety_triggered()
{
int layerIndex = std::max(1, ui->layerNrEdit->value());
showCriteria3DVariable(waterContent, layerIndex, false, NODATA, NODATA);
showCriteria3DVariable(factorOfSafety, layerIndex, true, 0, 10);
}


18 changes: 17 additions & 1 deletion bin/CRITERIA3D/shared/project3D.cpp
Original file line number Diff line number Diff line change
@@ -1099,7 +1099,15 @@ bool Project3D::setCriteria3DMap(criteria3DVariable var, int layerIndex)
long nodeIndex = indexMap.at(layerIndex).value[row][col];
if (nodeIndex != indexMap.at(layerIndex).header->flag)
{
double value = getCriteria3DVar(var, nodeIndex);
double value;
if (var == factorOfSafety)
{
value = computeFactorOfSafety(nodeIndex);
}
else
{
value = getCriteria3DVar(var, nodeIndex);
}

if (value == NODATA)
{
@@ -1545,6 +1553,14 @@ double Project3D::assignTranspiration(int row, int col, double currentLai, doubl
}


float Project3D::computeFactorOfSafety(int nodeIndex)
{
//TODO

return NODATA;
}


// ------------------------------ other functions ----------------------------------

bool isCrit3dError(int result, QString& error)
1 change: 1 addition & 0 deletions bin/CRITERIA3D/shared/project3D.h
Original file line number Diff line number Diff line change
@@ -169,6 +169,7 @@

bool setCriteria3DMap(criteria3DVariable var, int layerIndex);

float computeFactorOfSafety(int nodeIndex);
};

bool isCrit3dError(int result, QString &error);

0 comments on commit 76844bf

Please sign in to comment.