27 #include "../../../datatype/DateTime.h" 
   28 #include "../../../datatype/DateTimePeriod.h" 
   29 #include "../../../datatype/DateTimeInstant.h" 
   30 #include "../../../datatype/DateTimeUtils.h" 
   31 #include "../../../datatype/SimpleData.h" 
   32 #include "../../../datatype/AbstractData.h" 
   33 #include "../../../geometry/Geometry.h" 
   38 #include "../interpolator/AbstractTimeSeriesInterp.h" 
   39 #include "../interpolator/NearestValueAtTimeInterp.h" 
   59     m_interpolator(interp),
 
   68     m_interpolator(interp),
 
   76   : m_observations(obs),
 
   77     m_interpolator(interp),
 
   86     m_interpolator(interp),
 
   91   while(it!=patch.
end())
 
   99   : m_observations(ts.m_observations),
 
  100     m_interpolator(ts.m_interpolator),
 
  101     m_location(static_cast<te::gm::Geometry*>(ts.m_location->clone())),
 
  112     m_location.reset(static_cast<te::gm::Geometry*>(other.
m_location->clone()));
 
  120   TimeSeries* result = 
new TimeSeries(m_interpolator, m_id, static_cast<te::gm::Geometry*>(m_location->clone()));
 
  121   TimeSeriesObservationSet::const_iterator it = m_observations.begin();
 
  122   TimeSeriesObservationSet::const_iterator ite = m_observations.end();
 
  135   return m_observations;
 
  140   return m_interpolator;
 
  145   m_interpolator = interp;
 
  160   return m_location.get();
 
  165   m_location.reset(geom);
 
  171   m_observations.insert(item);
 
  178   m_observations.insert(item);
 
  185   m_observations.insert(item);
 
  192   m_observations.insert(item);
 
  197   m_observations.insert(item);
 
  202   return m_observations.size();
 
  207   TimeSeriesObservationSet::const_iterator it = m_observations.begin();
 
  213   TimeSeriesObservationSet::const_iterator it = m_observations.end();
 
  220   TimeSeriesObservationSet::const_iterator it = m_observations.find(item);
 
  227   TimeSeriesObservationSet::const_iterator it = m_observations.find(item);
 
  228   TimeSeriesObservationSet::const_iterator ite = m_observations.end();
 
  230     return std::auto_ptr<te::dt::AbstractData>(it->getValue()->clone());
 
  231   return std::auto_ptr<te::dt::AbstractData>(m_interpolator->estimate(*
this,t));
 
  236   std::auto_ptr<te::dt::AbstractData> v(getValue(t));
 
  237   return atof(v->toString().c_str());
 
  242   std::auto_ptr<te::dt::AbstractData> v(getValue(t));
 
  243   return atoi(v->toString().c_str());
 
  248   std::auto_ptr<te::dt::AbstractData> v(getValue(t));
 
  249   return v->toString();
 
  254   TimeSeriesObservationSet::iterator it1 = m_observations.begin();
 
  255   TimeSeriesObservationSet::reverse_iterator it2 = m_observations.rbegin();
 
  265   minValue = m_observations.get<1>().begin()->getDouble();
 
  266   minValue = m_observations.get<1>().rbegin()->getDouble();
 
  272   minValue = m_observations.get<1>().begin()->getInt();
 
  273   minValue = m_observations.get<1>().rbegin()->getInt();
 
  278   minValue = m_observations.get<2>().begin()->getString();
 
  279   minValue = m_observations.get<2>().rbegin()->getString();
 
  286   TimeSeriesObservationSet::const_iterator itb = m_observations.
end();
 
  287   TimeSeriesObservationSet::const_iterator ite = m_observations.end();
 
  292     itb = m_observations.upper_bound(item);
 
  298     itb = m_observations.find(item);
 
  299     if(itb==m_observations.end())
 
  300       itb = m_observations.upper_bound(item);
 
  306     itb = m_observations.begin();
 
  307     ite = m_observations.find(item);
 
  308     if(ite==m_observations.end())
 
  309       ite = m_observations.upper_bound(item);
 
  315     itb = m_observations.begin();
 
  316     ite = m_observations.upper_bound(item); 
 
  321     std::auto_ptr<te::dt::DateTimePeriod> period(static_cast<te::dt::DateTimePeriod*>(dt.
clone()));
 
  324     itb = m_observations.find(item1);
 
  325     if(itb==m_observations.end())
 
  326       itb = m_observations.upper_bound(item1);
 
  327     ite = m_observations.upper_bound(item2); 
 
  333     std::pair<TimeSeriesObservationSet::const_iterator, TimeSeriesObservationSet::const_iterator> itPair;
 
  334     itPair = m_observations.equal_range(item);
 
  337     if(ite!= m_observations.end())
 
  346                           std::vector<TimeSeriesPatch>& result)
 const 
  349   std::map<te::dt::DateTime*, te::dt::AbstractData*, te::dt::CompareDateTime> resultTS;
 
  350   getResultOrderedByTime(v, r, resultTS);
 
  354   std::map<te::dt::DateTime*, te::dt::AbstractData*, 
 
  358   TimeSeriesObservationSet::const_iterator itOriginBegin = m_observations.find(item);
 
  359   TimeSeriesObservationSet::const_iterator itOriginEnd = m_observations.end();
 
  361   TimeSeriesObservationSet::const_iterator patchBegin;
 
  362   TimeSeriesObservationSet::const_iterator patchEnd;
 
  364   while(itResultBegin!=itResultEnd && itOriginBegin!=itOriginEnd)
 
  366      patchBegin = itOriginBegin; 
 
  369      while( (itResultBegin!=itResultEnd) && (itOriginBegin!=itOriginEnd) && 
 
  370             (itResultBegin->first == itOriginBegin->getTime())) 
 
  372         patchEnd = itOriginBegin;
 
  379      if(patchEnd!=itOriginEnd)
 
  385      if(itResultBegin!=itResultEnd)
 
  387        item.
setTime(static_cast<te::dt::DateTime*>(itResultBegin->first->clone()));
 
  388        itOriginBegin = m_observations.find(item);
 
  397                             std::vector<TimeSeriesPatch>& result)
 const 
  401   std::vector<TimeSeriesPatch> patches;
 
  404   std::vector<TimeSeriesPatch>::const_iterator it = patches.begin();
 
  405   TimeSeriesObservationSet::const_iterator ite = m_observations.end();
 
  407   while(it!=patches.end())
 
  416     if(itAuxBegin!=ts.
end())
 
  423     if(itAuxEnd==ts.
end())
 
  444                              std::map<te::dt::DateTime*, te::dt::AbstractData*, te::dt::CompareDateTime>& result)
 const 
  446   TimeSeriesByValue::const_iterator itResultBeg = m_observations.get<1>().end();
 
  447   TimeSeriesByValue::const_iterator itResultEnd = m_observations.get<1>().end();
 
  451     itResultBeg = m_observations.get<1>().begin();
 
  452     itResultEnd = m_observations.get<1>().find(v);
 
  453     if(itResultEnd==m_observations.get<1>().end())
 
  454       itResultEnd = m_observations.get<1>().upper_bound(v);
 
  458     itResultBeg = m_observations.get<1>().upper_bound(v);
 
  462     std::pair<TimeSeriesByValue::const_iterator, TimeSeriesByValue::const_iterator> itPair;
 
  463     itPair = m_observations.get<1>().equal_range(v);
 
  464     itResultBeg = itPair.first;
 
  465     itResultEnd = itPair.second;
 
  466     if(itResultEnd!= m_observations.get<1>().end())
 
  471     itResultBeg = m_observations.get<1>().begin();
 
  472     itResultEnd = m_observations.get<1>().upper_bound(v); 
 
  476     itResultBeg = m_observations.get<1>().find(v);
 
  477     if(itResultBeg==m_observations.get<1>().end())
 
  478       itResultBeg = m_observations.get<1>().upper_bound(v);
 
  482   while(itResultBeg!=itResultEnd)
 
  484     result.insert(std::pair<te::dt::DateTime*,te::dt::AbstractData*>(itResultBeg->getTime(), itResultBeg->getValue()));
 
This file contains a class to represent a time series observation. 
 
SimpleData< std::string, STRING_TYPE > String
 
TimeSeries & operator=(const TimeSeries &other)
Copy assignment operator. 
 
TimeSeries * clone() const 
It returns a clone of this time series. 
 
void setInterpolator(AbstractTimeSeriesInterp *interp)
It sets the interpolator associated to the time series. 
 
std::string getId() const 
It returns the time series identifier. 
 
BasicRelation
Relations between simple attribute values. 
 
TimeSeriesIterator at(te::dt::DateTime *t) const 
It returns an iterator that points to an observation at a given time. 
 
A class to traverse the observations of a TimeSeries. 
 
double getDouble(te::dt::DateTime *t) const 
It returns the value as a double associated to a given date and time. 
 
TimeSeriesIterator end() const 
 
std::auto_ptr< te::dt::DateTimePeriod > getTemporalExtent() const 
It returns the temporal extent or range of the time series. 
 
virtual ~TimeSeries()
It returns time series subsets that satisfy the given relations. 
 
std::size_t size() const 
It returns the size of the time series observation set. 
 
SimpleData< boost::int32_t, INT32_TYPE > Int32
 
TemporalRelation
Temporal relations between date and time (Source: Allen, 1991). 
 
te::dt::DateTime * getTime() const 
It returns the datetime pointed by the internal cursor. 
 
An auxiliary struct to compare two datetime pointers. 
 
void getValueExtent(double &minValue, double &maxValue)
It returns the minimal and maximun values of the time series. 
 
This file contains a class to represent a time series. 
 
A class to represent an observation (time and value) of a time series. 
 
std::string getString(te::dt::DateTime *t) const 
It returns the value as a string associated to a given date and time. 
 
int getInt(te::dt::DateTime *t) const 
It returns the value as an integer associated to a given date and time. 
 
void add(te::dt::DateTime *time, te::dt::AbstractData *value)
It adds an observation (time and attribute value) into the time series. 
 
std::auto_ptr< te::dt::AbstractData > getValue(te::dt::DateTime *t) const 
It returns the value associated to a given date and time. 
 
TimeSeriesIterator begin() const 
 
AbstractTimeSeriesInterp * m_interpolator
The interpolator used to estimate values at non-observed times. 
 
A base class for values that can be retrieved from the data access module. 
 
TimeSeriesPatch getPatch(const te::dt::DateTime &dt, te::dt::TemporalRelation r=te::dt::DURING) const 
It returns a time series subset that satisfies a given temporal relation. 
 
TimeSeries()
Empty constructor. 
 
const TimeSeriesObservationSet & getObservations() const 
It returns the time series observations. 
 
te::gm::Geometry * getLocation() const 
It returns the time series location. 
 
A struct to represent a patch or a continuous piece of a time series. 
 
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards. 
 
void setTime(te::dt::DateTime *t)
It sets the date time. 
 
TimeSeriesObservationSet m_observations
The time series observations. 
 
An abstract class for an interpolation function or interpolator that estimate a value at non-observav...
 
void setLocation(te::gm::Geometry *geom)
It sets the time series location. 
 
A class to represent time series. 
 
SimpleData< double, DOUBLE_TYPE > Double
 
void getResultOrderedByTime(const double &v, te::dt::BasicRelation r, std::map< te::dt::DateTime *, te::dt::AbstractData *, te::dt::CompareDateTime > &result) const 
It returns the result of a basic relation ordered by time. 
 
std::string m_id
The time series identification. 
 
void setId(const std::string &id)
It sets the time series identifier. 
 
TEDATATYPEEXPORT DateTimePeriod * GetTemporalExtent(const DateTime *t1, const DateTime *t2)
It returns the temporal extent of two date and time types. 
 
A template for atomic data types (integers, floats, strings and others). 
 
std::auto_ptr< te::gm::Geometry > m_location
The time series location. 
 
void getPatches(const double &v, te::dt::BasicRelation r, std::vector< TimeSeriesPatch > &result) const 
It returns time series subsets that satisfy a given relation. 
 
virtual AbstractData * clone() const =0
It returns a clone of this object. 
 
AbstractTimeSeriesInterp * getInterpolator() const 
It returns the interpolator associated to the time series. 
 
TimeSeriesIterator end() const 
It returns an iterator that points to the end of the time series. 
 
TimeSeriesIterator begin() const 
It returns an iterator that points to the first observation of the time series. 
 
It is an interpolation function the estimates the nearest value at a given non-observed time of a tim...
 
boost::multi_index_container< TimeSeriesObservation, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::identity< TimeSeriesObservation > >, boost::multi_index::ordered_non_unique< boost::multi_index::const_mem_fun< TimeSeriesObservation, double,&TimeSeriesObservation::getDouble > >, boost::multi_index::ordered_non_unique< boost::multi_index::const_mem_fun< TimeSeriesObservation, std::string,&TimeSeriesObservation::getString > > > > TimeSeriesObservationSet