#779 Added support for filtering of zero and negative values in setSamplesFromDateAndValues

This commit is contained in:
Magne Sjaastad
2016-10-12 13:49:57 +02:00
parent ee367487de
commit ae1eea4ac6
10 changed files with 44 additions and 14 deletions

View File

@@ -25,7 +25,7 @@
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigCurveDataTools::calculateIntervalsOfValidValues(const std::vector<double>& values, std::vector< std::pair<size_t, size_t> >* intervals)
void RigCurveDataTools::calculateIntervalsOfValidValues(const std::vector<double>& values, std::vector< std::pair<size_t, size_t> >* intervals, bool removeNegativeValues)
{
CVF_ASSERT(intervals);
@@ -36,7 +36,19 @@ void RigCurveDataTools::calculateIntervalsOfValidValues(const std::vector<double
while (vIdx < valueCount)
{
double value = values[vIdx];
bool isInvalidValueDetected = false;
if (value == HUGE_VAL || value == -HUGE_VAL || value != value)
{
isInvalidValueDetected = true;
}
if (removeNegativeValues && value <= 0.0)
{
isInvalidValueDetected = true;
}
if (isInvalidValueDetected)
{
if (startIdx >= 0)
{

View File

@@ -32,7 +32,8 @@ class RigCurveDataTools
{
public:
static void calculateIntervalsOfValidValues(const std::vector<double>& values,
std::vector< std::pair<size_t, size_t> >* intervals);
std::vector< std::pair<size_t, size_t> >* intervals,
bool removeNegativeValues);
template <typename T>
static void getValuesByIntervals(const std::vector<T>& values,

View File

@@ -250,7 +250,7 @@ cvf::ref<RigWellLogCurveData> RigWellLogCurveData::calculateResampledCurveData(d
void RigWellLogCurveData::calculateIntervalsOfContinousValidValues()
{
std::vector< std::pair<size_t, size_t> > intervalsOfValidValues;
RigCurveDataTools::calculateIntervalsOfValidValues(m_xValues, &intervalsOfValidValues);
RigCurveDataTools::calculateIntervalsOfValidValues(m_xValues, &intervalsOfValidValues, false);
m_intervalsOfContinousValidValues.clear();