28 #include "../../../datatype/DateTime.h"
29 #include "../../../datatype/DateTimeUtils.h"
32 #include "../coverage/Coverage.h"
33 #include "../coverage/CoverageSeries.h"
44 std::auto_ptr<te::st::Coverage>
47 CoverageSeriesObservationSet::const_iterator itlower, itupper, itbegin, itend;
51 itlower = cvObs.lower_bound(dtshr);
52 itupper = cvObs.upper_bound(dtshr);
56 if(itlower==itupper && itlower!=cvObs.begin())
59 if(itlower!=cvObs.end() && itupper!=cvObs.end())
61 long distLower =
GetDistance(itlower->first.get(),time);
62 long distUpper =
GetDistance(itupper->first.get(),time);
63 if(distLower<distUpper)
64 return std::auto_ptr<te::st::Coverage>(itlower->second->clone());
66 return std::auto_ptr<te::st::Coverage>(itupper->second->clone());
69 if(itlower!=cvObs.end() && itupper==cvObs.end())
70 return std::auto_ptr<te::st::Coverage>(itlower->second->clone());
72 return std::auto_ptr<te::st::Coverage>(0);
This file contains an interpolation function that returns the nearest coverage at 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.
std::auto_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 .
boost::shared_ptr< DateTime > DateTimeShrPtr
const CoverageSeriesObservationSet & getObservations() const
It returns the coverage series observations.
NearestCoverageAtTimeInterp()
Constructor.
A class to represent a coverage series.
virtual AbstractData * clone() const =0
It returns a clone of this object.