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>();
A concrete class to represent a point coverage.
PointCoverageIterator end() const
It returns an iterator that points to the end of the time series.
PointCoverage()
A constructor.
A class that represents an R-tree.
unsigned int getNumberOfProperties() const
It returns the number of properties associated to the coverage.
CoverageType
An enum for the types of coverage.
An abstract class for interpolation function or interpolator that estimate values at non-observaved l...
Coverage * clone() const
It returns a clone of this coverage.
const std::vector< int > & getPropertyTypes() const
It returns the types of the coverage properties.
virtual ~PointCoverage()
Virtual destructor.
std::pair< te::gm::Point, boost::ptr_vector< te::dt::AbstractData > > PointCoverageItem
PointCvRTreeShrPtr m_rTree
A class to traverse the observations of a PointCoverage.
boost::shared_ptr< PointCoverageItem > PointCoverageObservation
void add(const te::gm::Point &l, te::dt::AbstractData *value)
It adds an observtion to the PointCoverage.
A point with x and y coordinate values.
An Envelope defines a 2D rectangular region.
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.
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
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...
CoverageType getType() const
It returns the coverage type.
std::auto_ptr< te::rst::Raster > getRaster() const
It returns a raster associated to the coverage.
void getValue(const te::gm::Point &l, boost::ptr_vector< te::dt::AbstractData > &result) const
It returns the values associated to a given location.
PointCoverageIterator begin() const
It returns an iterator that points to the first observation of the point coverage.
This file contains a concrete class to represent a point coverage.
Polygon is a subclass of CurvePolygon whose rings are defined by linear rings.
An abstract class to represent a coverage.
te::dt::DateTime * getTime() const
It returns the time associated to the coverage.
void getDouble(const te::gm::Point &l, std::vector< double > &result) const
It returns the values as doubles associated to a given location.
te::gm::Geometry * getSpatialExtent() const
It returns the spatial extent of a coverage.