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; }
 
  131         virtual std::map<std::string, std::string> 
getInfo() 
const = 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);
 
  531         virtual Raster* 
clip(
const std::vector< te::gm::Geometry const *> geometries, 
 
  532                              const std::map<std::string, std::string>& rinfo,
 
  533                              const std::string& rType ) 
const;        
 
  553         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;
 
  568         virtual Raster* 
resample(
int method, 
int scale, 
const std::map<std::string, std::string>& rinfo) 
const;
 
  595         virtual Raster* 
transform(
int srid, 
const std::map<std::string, std::string>& rinfo, 
int m = 1) 
const;
 
  615         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;
 
  637         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;
 
  650         virtual void vectorize(std::vector<te::gm::Geometry*>& g, std::size_t b, 
unsigned int mp = 0, std::vector< double > * 
const polygonsValues = 0);
 
  660         virtual void rasterize(std::vector<te::gm::Geometry*> g, std::vector<double> vp, std::size_t b = 0);
 
  702         void setMetaData( 
const std::map<std::string, std::string>& metaData );
 
It implements the vectorizer, based on TerraLib 4 algorithm.
 
A base class for values that can be retrieved from the data access module.
 
An Envelope defines a 2D rectangular region.
 
A raster band description.
 
A rectified grid is the spatial support for raster data.
 
An abstract class for raster data strucutures.
 
const std::map< std::string, std::string > & getMetaData() const
Returns the current raster metadata in a form [metadada name, metadata value].
 
int getTypeCode() const
It returns the data type code associated to the data value.
 
virtual void setValue(unsigned int c, unsigned int r, const double value, std::size_t b=0)
Sets the attribute value in a band of a cell.
 
void setAccessPolicy(te::common::AccessPolicy p)
Sets the raster access policy.
 
virtual const Band * getBand(std::size_t i) const =0
Returns the raster i-th band.
 
virtual Raster * trim(const te::gm::Envelope *env, const std::map< std::string, std::string > &rinfo) const
Subsetting operation for trimming (cropping) the raster.
 
virtual void setValues(unsigned int c, unsigned int r, const std::vector< std::complex< double > > &values)
Sets the imaginary attribute values in all complex bands of a cell.
 
virtual ~Raster()
Virtual destructor.
 
const te::gm::Envelope * getExtent() const
Returns the geographic extension of the raster data.
 
virtual void setValue(unsigned int c, unsigned int r, const std::complex< double > &value, std::size_t b=0)
Sets the imaginary attribute value in a complex band of a cell.
 
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
Resample a subset of the raster, given a box.
 
Raster(Grid *grid, te::common::AccessPolicy p=te::common::RAccess)
Constructor to create a raster from parameters.
 
void setName(const std::string name)
Sets the raster name.
 
virtual Raster & operator+=(std::complex< double > &cvalue)
It returns the sum of a constant value to all pixels in the raster.
 
std::map< std::string, std::string > m_metaData
Raster metadata in a form [metadada name, metadata value].
 
Raster(const Raster &rhs)
Copy constructor.
 
virtual void open(const std::map< std::string, std::string > &rinfo, te::common::AccessPolicy p=te::common::RAccess)=0
Opens a raster.
 
virtual std::size_t getNumberOfBands() const =0
Returns the number of bands (dimension of cells attribute values) in the raster.
 
std::string toString(void) const
It returns the data value in a string notation.
 
te::gm::Envelope * getExtent(int srid, te::gm::Envelope *roi=0) const
Returns the geographic extension of the raster data, in a given SRS (distinct from its original one).
 
virtual unsigned int getMultiResLevelsCount() const =0
Returns the current number of multi-resolution pyramid levels.
 
virtual int getBandDataType(std::size_t i) const =0
Returns the data type in a particular band (or dimension).
 
virtual Raster & operator+=(Raster &rhs)
It returns the raster sum (pixel by pixel).
 
double getResolutionY() const
Returns the raster vertical (y-axis) resolution.
 
virtual void getValues(unsigned int c, unsigned int r, std::vector< std::complex< double > > &values) const
Returns the imaginary attribute values in all complex bands of a cell.
 
virtual bool removeMultiResolution()=0
Remove/Destroy a sub-sampled multi-resolution pyramid, if there is one.
 
int getSRID() const
Returns the raster spatial reference system identifier.
 
virtual Raster & operator=(const Raster &rhs)
Assignment operator.
 
virtual void setValues(unsigned int c, unsigned int r, const std::vector< double > &values)
Sets the imaginary attribute values in all complex bands of a cell.
 
te::gm::Envelope * getExtent()
Returns the geographic extension of the raster data.
 
virtual Raster & operator*=(Raster &rhs)
It returns the raster product (pixel by pixel).
 
Grid * getResampledGrid(int scale) const
Return the raster grid for a specific scale.
 
virtual Raster & operator*=(std::complex< double > &cvalue)
It returns the product of a constant value to all pixels in the raster.
 
virtual void getValue(unsigned int c, unsigned int r, double &value, std::size_t b=0) const
Returns the attribute value of a band of a cell.
 
unsigned int getNumberOfRows() const
Returns the raster number of rows.
 
virtual bool createMultiResolution(const unsigned int levels, const InterpolationMethod interpMethod)=0
Create a sub-sampled multi-resolution pyramid.
 
virtual void setIValue(unsigned int c, unsigned int r, const double value, std::size_t b=0)
Sets the imaginary attribute value in a complex band of a cell.
 
virtual void rasterize(std::vector< te::gm::Geometry * > g, std::vector< double > vp, std::size_t b=0)
Rasterizes a given vector of geometries.
 
virtual Raster * clip(const std::vector< te::gm::Geometry const * > geometries, const std::map< std::string, std::string > &rinfo, const std::string &rType) const
Subsetting operation for clipping the raster.
 
Grid * getGrid()
It returns the raster grid.
 
double getResolutionX() const
Returns the raster horizontal (x-axis) resolution.
 
virtual void getIValue(unsigned int c, unsigned int r, double &value, std::size_t b=0) const
Returns the imaginary attribute value in a complex band of a cell.
 
virtual void vectorize(std::vector< te::gm::Geometry * > &g, std::size_t b, unsigned int mp=0, std::vector< double > *const polygonsValues=0)
Vectorizes a given raster band, using GDALPolygonize function.
 
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
Reprojects a squared portion of this raster to a distinct SRS. This method reprojects a squared porti...
 
virtual Raster & operator-=(Raster &rhs)
It returns the raster subtraction (pixel by pixel).
 
const std::string & getName() const
Returns the raster name.
 
virtual Raster * trim(const te::gm::Envelope *env, const std::map< std::string, std::string > &rinfo, const std::string &rType) const
Subsetting operation for trimming (cropping) the raster.
 
Grid * m_grid
The spatial support for raster data.
 
const Grid * getGrid() const
It returns the raster grid.
 
virtual const Band & operator[](std::size_t i) const =0
Access band in i position.
 
te::common::AccessPolicy m_policy
The access policy, can be te::common::{NoAccess, RAccess, RWAccess, WAccess}.
 
Raster()
Default constructor.
 
virtual Raster * resample(int method, int scale, const std::map< std::string, std::string > &rinfo) const
Resample raster.
 
virtual Raster & operator/=(std::complex< double > &cvalue)
It returns the division of all pixels in the raster by a constant value (pixels / constant).
 
virtual Raster * transform(int srid, const std::map< std::string, std::string > &rinfo, int m=1) const
Reprojects this raster to a distinct SRS. This method reprojects this raster to a distinct SRS....
 
void setMetaData(const std::map< std::string, std::string > &metaData)
Sets the raster metadata.
 
double applyScale(int i, const double &v) const
Scales a value according to a specific resampling scale.
 
std::string m_name
The raster name.
 
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
Reprojects a squared portion of this raster to another SRS with a desired resolution.
 
virtual Band * getBand(std::size_t i)=0
Returns the raster i-th band.
 
virtual void getValue(unsigned int c, unsigned int r, std::complex< double > &value, std::size_t b=0) const
Returns the imaginary attribute value in a complex band of a cell.
 
virtual Raster & operator-=(std::complex< double > &cvalue)
It returns the difference from all pixels in the raster to a constant value (pixels - constant).
 
Raster & callOperator(std::complex< double >(*f)(std::complex< double >, std::complex< double >), const Raster &rhs)
It calls a parameter function f to apply in all pixels from two rasters, e.g. pixel = f(lhs,...
 
virtual void getValues(unsigned int c, unsigned int r, std::vector< double > &values) const
Returns the imaginary attribute values in all complex bands of a cell.
 
virtual Band & operator[](std::size_t i)=0
Access band in i position.
 
virtual Raster & operator/=(Raster &rhs)
It returns the raster division (pixel by pixel).
 
unsigned int getNumberOfColumns() const
Returns the raster number of columns.
 
virtual Raster * getMultiResLevel(const unsigned int level) const =0
Returns the required level of a multi-resolution pyramid or NULL if that level does not exists.
 
te::common::AccessPolicy getAccessPolicy() const
Returns the raster access policy.
 
virtual std::map< std::string, std::string > getInfo() const =0
It returns additional information about the raster.
 
AccessPolicy
Supported data access policies (can be used as bitfield).
 
InterpolationMethod
Allowed interpolation methods.
 
boost::shared_ptr< Raster > RasterPtr
 
#define TERASTEREXPORT
You can use this macro in order to export/import classes and functions from this module.
 
Proxy configuration file for TerraView (see terraview_config.h).