mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4230 Grid Cross Plot: Return if required data is missing
This commit is contained in:
@@ -34,18 +34,20 @@
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RigEclipseCrossPlotResult RigEclipseCrossPlotDataExtractor::extract(RigEclipseCaseData* caseData,
|
||||
int resultTimeStep,
|
||||
const RigEclipseResultAddress& xAddress,
|
||||
const RigEclipseResultAddress& yAddress,
|
||||
RigGridCrossPlotCurveGrouping groupingType,
|
||||
const RigEclipseResultAddress& groupAddress,
|
||||
std::map<int, cvf::UByteArray> timeStepCellVisibilityMap)
|
||||
RigEclipseCrossPlotResult RigEclipseCrossPlotDataExtractor::extract(RigEclipseCaseData* caseData,
|
||||
int resultTimeStep,
|
||||
const RigEclipseResultAddress& xAddress,
|
||||
const RigEclipseResultAddress& yAddress,
|
||||
RigGridCrossPlotCurveGrouping groupingType,
|
||||
const RigEclipseResultAddress& groupAddress,
|
||||
std::map<int, cvf::UByteArray> timeStepCellVisibilityMap)
|
||||
{
|
||||
RigEclipseCrossPlotResult result;
|
||||
|
||||
RigCaseCellResultsData* resultData = caseData->results(RiaDefines::MATRIX_MODEL);
|
||||
RigFormationNames* activeFormationNames = resultData->activeFormationNames();
|
||||
RigCaseCellResultsData* resultData = caseData->results(RiaDefines::MATRIX_MODEL);
|
||||
if (!resultData) return result;
|
||||
|
||||
RigFormationNames* activeFormationNames = resultData->activeFormationNames();
|
||||
|
||||
std::unique_ptr<RigEclipseResultBinSorter> catBinSorter;
|
||||
const std::vector<std::vector<double>>* catValuesForAllSteps = nullptr;
|
||||
@@ -55,27 +57,35 @@ RigEclipseCrossPlotResult RigEclipseCrossPlotDataExtractor::extract(RigEclipseCa
|
||||
RigActiveCellInfo* activeCellInfo = resultData->activeCellInfo();
|
||||
const RigMainGrid* mainGrid = caseData->mainGrid();
|
||||
|
||||
resultData->ensureKnownResultLoaded(xAddress);
|
||||
resultData->ensureKnownResultLoaded(yAddress);
|
||||
if (!resultData->ensureKnownResultLoaded(xAddress))
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
if (!resultData->ensureKnownResultLoaded(yAddress))
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
const std::vector<std::vector<double>>& xValuesForAllSteps = resultData->cellScalarResults(xAddress);
|
||||
const std::vector<std::vector<double>>& yValuesForAllSteps = resultData->cellScalarResults(yAddress);
|
||||
|
||||
if (groupingType == GROUP_BY_RESULT && groupAddress.isValid())
|
||||
{
|
||||
resultData->ensureKnownResultLoaded(groupAddress);
|
||||
catValuesForAllSteps = &resultData->cellScalarResults(groupAddress);
|
||||
if (resultData->ensureKnownResultLoaded(groupAddress))
|
||||
{
|
||||
catValuesForAllSteps = &resultData->cellScalarResults(groupAddress);
|
||||
}
|
||||
}
|
||||
|
||||
std::set<int> timeStepsToInclude;
|
||||
if (resultTimeStep == -1)
|
||||
{
|
||||
size_t nStepsInData = std::max(xValuesForAllSteps.size(), yValuesForAllSteps.size());
|
||||
bool xValid = xValuesForAllSteps.size() == 1u || xValuesForAllSteps.size() == nStepsInData;
|
||||
bool yValid = yValuesForAllSteps.size() == 1u || yValuesForAllSteps.size() == nStepsInData;
|
||||
|
||||
if (!(xValid && yValid))
|
||||
return result;
|
||||
bool xValid = xValuesForAllSteps.size() == 1u || xValuesForAllSteps.size() == nStepsInData;
|
||||
bool yValid = yValuesForAllSteps.size() == 1u || yValuesForAllSteps.size() == nStepsInData;
|
||||
|
||||
if (!(xValid && yValid)) return result;
|
||||
|
||||
for (size_t i = 0; i < nStepsInData; ++i)
|
||||
{
|
||||
@@ -93,7 +103,7 @@ RigEclipseCrossPlotResult RigEclipseCrossPlotDataExtractor::extract(RigEclipseCa
|
||||
if (timeStepCellVisibilityMap.count(timeStep))
|
||||
{
|
||||
cellVisibility = &timeStepCellVisibilityMap[timeStep];
|
||||
}
|
||||
}
|
||||
|
||||
int xIndex = timeStep >= (int)xValuesForAllSteps.size() ? 0 : timeStep;
|
||||
int yIndex = timeStep >= (int)yValuesForAllSteps.size() ? 0 : timeStep;
|
||||
|
||||
Reference in New Issue
Block a user