26 #ifndef __TERRALIB_RASTER_INTERNAL_RASTER_H
27 #define __TERRALIB_RASTER_INTERNAL_RASTER_H
30 #include "../common/Enums.h"
31 #include "../datatype/AbstractData.h"
32 #include "../datatype/Enums.h"
33 #include "../geometry/Geometry.h"
44 #include <boost/shared_ptr.hpp>
49 namespace gm {
class Envelope; }
109 void setName(
const std::string name);
112 const std::string& getName()
const;
131 virtual std::map<std::string, std::string> getInfo()
const = 0;
137 const Grid* getGrid()
const;
161 unsigned int getNumberOfRows()
const;
164 unsigned int getNumberOfColumns()
const;
167 double getResolutionX()
const;
170 double getResolutionY()
const;
173 virtual std::size_t getNumberOfBands()
const = 0;
184 virtual int getBandDataType(std::size_t i)
const = 0;
193 virtual const Band* getBand(std::size_t i)
const = 0;
202 virtual Band* getBand(std::size_t i) = 0;
213 virtual const Band& operator[](std::size_t i)
const = 0;
224 virtual Band& operator[](std::size_t i) = 0;
238 virtual void getValue(
unsigned int c,
unsigned int r,
double& value, std::size_t b = 0)
const;
252 virtual void setValue(
unsigned int c,
unsigned int r,
const double value, std::size_t b = 0);
266 virtual void getIValue(
unsigned int c,
unsigned int r,
double& value, std::size_t b = 0)
const;
280 virtual void setIValue(
unsigned int c,
unsigned int r,
const double value, std::size_t b = 0);
294 virtual void getValue(
unsigned int c,
unsigned int r, std::complex<double>& value, std::size_t b = 0)
const;
308 virtual void setValue(
unsigned int c,
unsigned int r,
const std::complex<double>& value, std::size_t b = 0);
321 virtual void getValues(
unsigned int c,
unsigned int r, std::vector<double>& values)
const;
334 virtual void getValues(
unsigned int c,
unsigned int r, std::vector<std::complex<double> >& values)
const;
347 virtual void setValues(
unsigned int c,
unsigned int r,
const std::vector<double>& values);
360 virtual void setValues(
unsigned int c,
unsigned int r,
const std::vector<std::complex<double> >& values);
364 std::string toString(
void)
const;
375 Raster& callOperator(std::complex<double>(*f)(std::complex<double>, std::complex<double>),
const Raster& rhs);
402 virtual Raster& operator+=(std::complex<double>& cvalue);
429 virtual Raster& operator-=(std::complex<double>& cvalue);
456 virtual Raster& operator*=(std::complex<double>& cvalue);
483 virtual Raster& operator/=(std::complex<double>& cvalue);
524 virtual Raster* resample(
int method,
unsigned int drow,
unsigned int dcolumn,
unsigned int height,
unsigned int width,
unsigned int newheight,
unsigned int newwidth,
const std::map<std::string, std::string>& rinfo)
const;
539 virtual Raster* resample(
int method,
int scale,
const std::map<std::string, std::string>& rinfo)
const;
550 Grid* getResampledGrid(
int scale)
const;
566 virtual Raster* transform(
int srid,
const std::map<std::string, std::string>& rinfo,
int m = 1)
const;
586 virtual Raster* transform(
int srid,
double llx,
double lly,
double urx,
double ury,
const std::map<std::string, std::string>& rinfo,
int m = 1)
const;
608 virtual Raster* transform(
int srid,
double llx,
double lly,
double urx,
double ury,
double resx,
double resy,
const std::map<std::string, std::string>& rinfo,
int m = 1)
const;
619 virtual void vectorize(std::vector<te::gm::Geometry*>& g, std::size_t b,
unsigned int mp = 0);
629 virtual void rasterize(std::vector<te::gm::Geometry*> g, std::vector<double> vp, std::size_t b = 0);
639 virtual bool createMultiResolution(
const unsigned int levels,
const InterpolationMethod interpMethod ) = 0;
646 virtual bool removeMultiResolution() = 0;
653 virtual unsigned int getMultiResLevelsCount()
const = 0;
664 virtual Raster* getMultiResLevel(
const unsigned int level )
const = 0;
676 double applyScale(
int i,
const double& v)
const;
690 #endif //__TERRALIB_RASTER_INTERNAL_RASTER_H
int getTypeCode() const
It returns the data type code associated to the data value.
#define TERASTEREXPORT
You can use this macro in order to export/import classes and functions from this module.
capabilities setAccessPolicy(te::common::RWAccess)
InterpolationMethod
Allowed interpolation methods.
It implements the vectorizer, based on TerraLib 4 algorithm.
std::string m_name
The raster name.
Grid * m_grid
The spatial support for raster data.
boost::shared_ptr< Raster > RasterPtr
AccessPolicy
Supported data access policies (can be used as bitfield).
An Envelope defines a 2D rectangular region.
An abstract class for raster data strucutures.
A base class for values that can be retrieved from the data access module.
A raster band description.
Configuration flags for the Raster module of TerraLib.
A rectified grid is the spatial support for raster data.
te::common::AccessPolicy m_policy
The access policy, can be te::common::{NoAccess, RAccess, RWAccess, WAccess}.