27 #include "../../../datatype/DateTime.h"
28 #include "../../../datatype/AbstractData.h"
29 #include "../../../geometry/Geometry.h"
30 #include "../../../geometry/Point.h"
31 #include "../../../raster/Raster.h"
34 #include <boost/shared_ptr.hpp>
35 #include <boost/ptr_container/ptr_vector.hpp>
39 #include "../interpolator/AbstractPointCoverageInterp.h"
40 #include "../interpolator/IDWInterpolator.h"
59 const std::vector<std::string>& pnames) :
63 m_interpolator(interp),
76 const std::vector<std::string>& pnames,
int tp) :
80 m_interpolator(interp),
103 boost::ptr_vector<te::dt::AbstractData> aux;
104 aux.push_back(value);
120 m_observations.push_back(obs);
121 std::size_t p = m_observations.size()-1;
125 m_rTree->insert(*env, p);
131 static_cast<te::gm::Geometry*>(m_sextent->clone()),
132 static_cast<te::dt::DateTime*>(m_textent->clone()), m_np,
135 PointCoverageObservationSet::const_iterator it = m_observations.begin();
136 while(it!=m_observations.end())
139 std::auto_ptr< boost::ptr_vector<te::dt::AbstractData> > data(item->second.clone());
140 result->
add(item->first, *data.release());
153 return m_sextent.get();
158 return m_textent.get();
178 for(
unsigned int i = 0; i<m_np; ++i)
179 result.push_back(m_interpolator->estimate(*
this,i,l));
185 return std::auto_ptr<te::dt::AbstractData>(m_interpolator->estimate(*
this,p,l));
189 boost::ptr_vector<te::dt::AbstractData>& )
const
197 boost::ptr_vector<te::dt::AbstractData>& )
const
206 for(
unsigned int i = 0; i<m_np; ++i)
208 std::auto_ptr<te::dt::AbstractData> aux = getValue(l,i);
209 result.push_back(atoi(aux->toString().c_str()));
215 std::auto_ptr<te::dt::AbstractData> result = getValue(l,p);
216 return atoi(result->toString().c_str());
235 for(
unsigned int i = 0; i<m_np; ++i)
237 std::auto_ptr<te::dt::AbstractData> aux = getValue(l,i);
238 result.push_back(atof(aux->toString().c_str()));
244 std::auto_ptr<te::dt::AbstractData> result = getValue(l,p);
245 return atof(result->toString().c_str());
265 return std::auto_ptr<te::rst::Raster>();
271 return std::auto_ptr<te::rst::Raster>();
Coverage * clone() const
It returns a clone of this coverage.
PointCoverageIterator end() const
It returns an iterator that points to the end of the time series.
An abstract class for interpolation function or interpolator that estimate values at non-observaved l...
Polygon is a subclass of CurvePolygon whose rings are defined by linear rings.
A concrete class to represent a point coverage.
void getDouble(const te::gm::Point &l, std::vector< double > &result) const
It returns the values as doubles associated to a given location.
std::pair< te::gm::Point, boost::ptr_vector< te::dt::AbstractData > > PointCoverageItem
A class that represents an R-tree.
const std::vector< int > & getPropertyTypes() const
It returns the types of the coverage properties.
This file contains a concrete class to represent a point coverage.
An abstract class to represent a coverage.
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
A point with x and y coordinate values.
A class to traverse the observations of a PointCoverage.
void getValue(const te::gm::Point &l, boost::ptr_vector< te::dt::AbstractData > &result) const
It returns the values associated to a given location.
PointCvRTreeShrPtr m_rTree
void add(const te::gm::Point &l, te::dt::AbstractData *value)
It adds an observtion to the PointCoverage.
CoverageType getType() const
It returns the coverage type.
te::gm::Geometry * getSpatialExtent() const
It returns the spatial extent of a coverage.
te::dt::DateTime * getTime() const
It returns the time associated to the coverage.
A base class for values that can be retrieved from the data access module.
void getInt(const te::gm::Point &l, std::vector< int > &result) const
It returns the values as integers associated to a given location.
PointCoverage()
A constructor.
PointCoverageIterator begin() const
It returns an iterator that points to the first observation of the point coverage.
CoverageType
An enum for the types of coverage.
boost::shared_ptr< PointCoverageItem > PointCoverageObservation
std::auto_ptr< te::rst::Raster > getRaster() const
It returns a raster associated to the coverage.
virtual ~PointCoverage()
Virtual destructor.
An Envelope defines a 2D rectangular region.
const std::vector< std::string > & getPropertyNames() const
It returns the names of the coverage properties.
A class that implements an inverse distance weighted (IDW) interpolationan function for PointCoverage...
unsigned int getNumberOfProperties() const
It returns the number of properties associated to the coverage.