28 #include "../../../datatype/DateTime.h" 29 #include "../../../datatype/DateTimeUtils.h" 32 #include "../coverage/Coverage.h" 33 #include "../coverage/CoverageSeries.h" 40 std::unique_ptr<te::st::Coverage>
43 CoverageSeriesObservationSet::const_iterator itlower, itupper, itbegin, itend;
47 itlower = cvObs.lower_bound(dtshr);
48 itupper = cvObs.upper_bound(dtshr);
52 if(itlower==itupper && itlower!=cvObs.begin())
55 if(itlower!=cvObs.end() && itupper!=cvObs.end())
57 long distLower =
GetDistance(itlower->first.get(),time);
58 long distUpper =
GetDistance(itupper->first.get(),time);
59 if(distLower<distUpper)
60 return std::unique_ptr<te::st::Coverage>(itlower->second->clone());
62 return std::unique_ptr<te::st::Coverage>(itupper->second->clone());
65 if(itlower!=cvObs.end() && itupper==cvObs.end())
66 return std::unique_ptr<te::st::Coverage>(itlower->second->clone());
68 return std::unique_ptr<te::st::Coverage>(
nullptr);
This file contains an interpolation function that returns the nearest coverage at time...
std::unique_ptr< Coverage > estimate(const CoverageSeries &cvs, te::dt::DateTime *time) const
It estimates a coverage of a coverage series at a given non-observed time .
std::map< te::dt::DateTimeShrPtr, CoverageShrPtr, CompareShrDateTime > CoverageSeriesObservationSet
virtual ~NearestCoverageAtTimeInterp()
Virtual destructor.
TEDATATYPEEXPORT long GetDistance(const te::dt::DateTime *t1, const te::dt::DateTime *t2)
It returns the distance between two datetime types.
boost::shared_ptr< DateTime > DateTimeShrPtr
const CoverageSeriesObservationSet & getObservations() const
It returns the coverage series observations.
NearestCoverageAtTimeInterp()
Constructor.
virtual AbstractData * clone() const =0
It returns a clone of this object.
A class to represent a coverage series.