Raster.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file terralib/raster/Raster.h
22 
23  \brief An abstract class for raster data strucutures.
24 */
25 
26 #ifndef __TERRALIB_RASTER_INTERNAL_RASTER_H
27 #define __TERRALIB_RASTER_INTERNAL_RASTER_H
28 
29 // TerraLib
30 #include "../common/Enums.h"
31 #include "../datatype/AbstractData.h"
32 #include "../datatype/Enums.h"
33 #include "../geometry/Geometry.h"
34 #include "Config.h"
35 #include "Vectorizer.h"
36 
37 // STL
38 #include <complex>
39 #include <map>
40 #include <string>
41 #include <vector>
42 
43 // Boost
44 #include <boost/shared_ptr.hpp>
45 
46 namespace te
47 {
48 // Forward declaration
49  namespace gm { class Envelope; }
50 
51  namespace rst
52  {
53 // Forward declaration
54  class Band;
55  class BandProperty;
56  class Grid;
57 
58  /*!
59  \class Raster
60 
61  \brief An abstract class for raster data strucutures.
62 
63  A raster data structure represents a geograhical area divided into rows and columns,
64  which form a regular grid structure of cells. Each cell contains location co-ordinates and
65  one or more attribute values.
66 
67  This interface should be implemented by drivers that provide the real access to raster data.
68 
69  \ingroup rst
70  */
72  {
73  public:
74 
75  /*! \brief Default constructor. */
76  Raster();
77 
78  /*!
79  \brief Constructor to create a raster from parameters.
80 
81  \param grid The grid definition. The Raster will take its ownership.
82  \param p Access Policy.
83  */
85 
86  /*!
87  \brief Copy constructor.
88 
89  \param rhs The right-hand side Raster.
90  */
91  Raster(const Raster& rhs);
92 
93  /*! \brief Virtual destructor. */
94  virtual ~Raster();
95 
96  /*!
97  \brief Opens a raster.
98 
99  \param rinfo The information needed by each driver to open the raster.
100  \param p Access Policy.
101  */
102  virtual void open(const std::map<std::string, std::string>& rinfo, te::common::AccessPolicy p = te::common::RAccess) = 0;
103 
104  /*!
105  \brief Sets the raster name.
106 
107  \param name The new raster name.
108  */
109  void setName(const std::string name);
110 
111  /*! \brief Returns the raster name. */
112  const std::string& getName() const;
113 
114  /*!
115  \brief Sets the raster access policy.
116 
117  \param p The new raster access policy.
118  */
120 
121  /*! \brief Returns the raster access policy. */
122  te::common::AccessPolicy getAccessPolicy() const;
123 
124  /*!
125  \brief It returns additional information about the raster.
126 
127  The return of thi smethod is driver dependent.
128 
129  \return Additional information about the raster.
130  */
131  virtual std::map<std::string, std::string> getInfo() const = 0;
132 
133  /*! \brief It returns the raster grid. */
134  Grid* getGrid();
135 
136  /*! \brief It returns the raster grid. */
137  const Grid* getGrid() const;
138 
139  /*! \brief Returns the geographic extension of the raster data. */
140  te::gm::Envelope* getExtent();
141 
142  /*! \brief Returns the geographic extension of the raster data. */
143  const te::gm::Envelope* getExtent() const;
144 
145  /*!
146  \brief Returns the geographic extension of the raster data, in a given SRS (distinct from its original one).
147 
148  \param srid The target SRS id.
149  \param roi Pointer to a region of interest. If NULL the original extenstion will be considered.
150 
151  \return A pointer the raster extension in a given SRS or NULL if it fails.
152 
153  \note The caller will take the ownership of the returned pointer.
154  */
155  te::gm::Envelope* getExtent(int srid, te::gm::Envelope* roi = 0) const;
156 
157  /*! \brief Returns the raster spatial reference system identifier. */
158  int getSRID() const;
159 
160  /*! \brief Returns the raster number of rows. */
161  unsigned int getNumberOfRows() const;
162 
163  /*! \brief Returns the raster number of columns. */
164  unsigned int getNumberOfColumns() const;
165 
166  /*! \brief Returns the raster horizontal (x-axis) resolution. */
167  double getResolutionX() const;
168 
169  /*! \brief Returns the raster vertical (y-axis) resolution. */
170  double getResolutionY() const;
171 
172  /*! \brief Returns the number of bands (dimension of cells attribute values) in the raster. */
173  virtual std::size_t getNumberOfBands() const = 0;
174 
175  /*!
176  \brief Returns the data type in a particular band (or dimension).
177 
178  \note The data types are listed in terralib/datatype/DataTypes.h
179 
180  \param i The desired band.
181 
182  \return The data type in a particular band (or dimension).
183  */
184  virtual int getBandDataType(std::size_t i) const = 0;
185 
186  /*!
187  \brief Returns the raster i-th band.
188 
189  \param i The band index.
190 
191  \warning The caller is reponsible for providing a valid band index.
192  */
193  virtual const Band* getBand(std::size_t i) const = 0;
194 
195  /*!
196  \brief Returns the raster i-th band.
197 
198  \param i The band index.
199 
200  \warning The caller is reponsible for providing a valid band index.
201  */
202  virtual Band* getBand(std::size_t i) = 0;
203 
204  /*!
205  \brief Access band in i position.
206 
207  \param i The band index.
208 
209  \warning The caller is reponsible for providing a valid band index.
210 
211  \return A reference to the i-th band.
212  */
213  virtual const Band& operator[](std::size_t i) const = 0;
214 
215  /*!
216  \brief Access band in i position.
217 
218  \param i The band index.
219 
220  \warning The caller is reponsible for providing a valid band index.
221 
222  \return A reference to the i-th band.
223  */
224  virtual Band& operator[](std::size_t i) = 0;
225 
226  /*!
227  \brief Returns the attribute value of a band of a cell.
228 
229  \param c The column location of the cell.
230  \param r The row location of the cell.
231  \param value To return the attribute value.
232  \param b A particular band of the cell attribute.
233 
234  \warning The caller is responsible for providing correct values for the range [c x r x b].
235 
236  \exception Exception Subclasses may throw an exception if the data value can not be read.
237  */
238  virtual void getValue(unsigned int c, unsigned int r, double& value, std::size_t b = 0) const;
239 
240  /*!
241  \brief Sets the attribute value in a band of a cell.
242 
243  \param c The column location of the cell.
244  \param r The row location of the cell.
245  \param value The attribute value to be assigned.
246  \param b A particular band of the cell attribute.
247 
248  \warning The caller is responsible for providing correct values for the range [c x r x b].
249 
250  \exception Exception Subclasses may throw an exception if the data value can not be write.
251  */
252  virtual void setValue(unsigned int c, unsigned int r, const double value, std::size_t b = 0);
253 
254  /*!
255  \brief Returns the imaginary attribute value in a complex band of a cell.
256 
257  \param c The column location of the cell.
258  \param r The row location of the cell.
259  \param value The attribute value to be assigned.
260  \param b A particular band of the cell attribute. Default value 0.
261 
262  \warning The caller is responsible for providing correct values for the range [c x r x b].
263 
264  \exception Exception Subclasses may throw an exception if the data value can not be read.
265  */
266  virtual void getIValue(unsigned int c, unsigned int r, double& value, std::size_t b = 0) const;
267 
268  /*!
269  \brief Sets the imaginary attribute value in a complex band of a cell.
270 
271  \param c The column location of the cell.
272  \param r The row location of the cell.
273  \param value The attribute value to be assigned.
274  \param b A particular band of the cell attribute. Default value 0.
275 
276  \warning The caller is responsible for providing correct values for the range [c x r x b].
277 
278  \exception Exception Subclasses may throw an exception if the data value can not be write.
279  */
280  virtual void setIValue(unsigned int c, unsigned int r, const double value, std::size_t b = 0);
281 
282  /*!
283  \brief Returns the imaginary attribute value in a complex band of a cell.
284 
285  \param c The column location of the cell.
286  \param r The row location of the cell.
287  \param value The complex attribute value to be assigned (real, imaginary).
288  \param b A particular band of the cell attribute. Default value 0.
289 
290  \warning The caller is responsible for providing correct values for the range [c x r x b].
291 
292  \exception Exception Subclasses may throw an exception if the data value can not be read.
293  */
294  virtual void getValue(unsigned int c, unsigned int r, std::complex<double>& value, std::size_t b = 0) const;
295 
296  /*!
297  \brief Sets the imaginary attribute value in a complex band of a cell.
298 
299  \param c The column location of the cell.
300  \param r The row location of the cell.
301  \param value The complex attribute value to be assigned (real, imaginary).
302  \param b A particular band of the cell attribute. Default value 0.
303 
304  \warning The caller is responsible for providing correct values for the range [c x r x b].
305 
306  \exception Exception Subclasses may throw an exception if the data value can not be write.
307  */
308  virtual void setValue(unsigned int c, unsigned int r, const std::complex<double>& value, std::size_t b = 0);
309 
310  /*!
311  \brief Returns the imaginary attribute values in all complex bands of a cell.
312 
313  \param c The column location of the cell.
314  \param r The row location of the cell.
315  \param values A vector of attribute values to be assigned (not complex values).
316 
317  \warning The caller is responsible for providing correct values for the range [c x r].
318 
319  \exception Exception Subclasses may throw an exception if the data value can not be read.
320  */
321  virtual void getValues(unsigned int c, unsigned int r, std::vector<double>& values) const;
322 
323  /*!
324  \brief Returns the imaginary attribute values in all complex bands of a cell.
325 
326  \param c The column location of the cell.
327  \param r The row location of the cell.
328  \param values A vector of complex attribute values to be assigned (real, imaginary).
329 
330  \warning The caller is responsible for providing correct values for the range [c x r].
331 
332  \exception Exception Subclasses may throw an exception if the data value can not be read.
333  */
334  virtual void getValues(unsigned int c, unsigned int r, std::vector<std::complex<double> >& values) const;
335 
336  /*!
337  \brief Sets the imaginary attribute values in all complex bands of a cell.
338 
339  \param c The column location of the cell.
340  \param r The row location of the cell.
341  \param values A vector of attribute values to be assigned (not complex values).
342 
343  \warning The caller is responsible for providing correct values for the range [c x r].
344 
345  \exception Exception Subclasses may throw an exception if the data value can not be write.
346  */
347  virtual void setValues(unsigned int c, unsigned int r, const std::vector<double>& values);
348 
349  /*!
350  \brief Sets the imaginary attribute values in all complex bands of a cell.
351 
352  \param c The column location of the cell.
353  \param r The row location of the cell.
354  \param values A vector of complex attribute values to be assigned (real, imaginary).
355 
356  \warning The caller is responsible for providing correct values for the range [c x r].
357 
358  \exception Exception Subclasses may throw an exception if the data value can not be write.
359  */
360  virtual void setValues(unsigned int c, unsigned int r, const std::vector<std::complex<double> >& values);
361 
362  int getTypeCode() const { return te::dt::RASTER_TYPE; }
363 
364  std::string toString(void) const;
365 
366  /*!
367  \brief It calls a parameter function f to apply in all pixels from two rasters, e.g. pixel = f(lhs, rhs);
368 
369  \param (*f) a function with the signature complex<double>(*f)(complex<double>, complex<double>), const Raster& rhs)
370 
371  \param rhs The rhs raster to apply the function.
372 
373  \return The resultant raster.
374  */
375  Raster& callOperator(std::complex<double>(*f)(std::complex<double>, std::complex<double>), const Raster& rhs);
376 
377  /*!
378  \brief It returns the raster sum (pixel by pixel).
379 
380  \param rhs The raster to be added, right-hand side.
381 
382  \note Both rasters must have the same properties, #bands, #columns,
383  #rows, and data type.
384 
385  \note The caller is responsible to guarantee that resultant values
386  will not exceed the range of the data type.
387 
388  \return The raster sum.
389  */
390  virtual Raster& operator+=(Raster& rhs);
391 
392  /*!
393  \brief It returns the sum of a constant value to all pixels in the raster.
394 
395  \param cvalue The constant value to be added.
396 
397  \note The caller is responsible to guarantee that resultant values
398  will not exceed the range of the data type.
399 
400  \return The raster sum.
401  */
402  virtual Raster& operator+=(std::complex<double>& cvalue);
403 
404  /*!
405  \brief It returns the raster subtraction (pixel by pixel).
406 
407  \param rhs The raster to be subtracted, right-hand side.
408 
409  \note Both rasters must have the same properties, #bands, #columns,
410  #rows, and data type.
411 
412  \note The caller is responsible to guarantee that resultant values
413  will not exceed the range of the data type.
414 
415  \return The raster subtraction.
416  */
417  virtual Raster& operator-=(Raster& rhs);
418 
419  /*!
420  \brief It returns the difference from all pixels in the raster to a constant value (pixels - constant).
421 
422  \param cvalue The constant value to be subtracted.
423 
424  \note The caller is responsible to guarantee that resultant values
425  will not exceed the range of the data type.
426 
427  \return The raster difference.
428  */
429  virtual Raster& operator-=(std::complex<double>& cvalue);
430 
431  /*!
432  \brief It returns the raster product (pixel by pixel).
433 
434  \param rhs The raster to be multiplied, right-hand side.
435 
436  \note Both rasters must have the same properties, #bands, #columns,
437  #rows, and data type.
438 
439  \note The caller is responsible to guarantee that resultant values
440  will not exceed the range of the data type.
441 
442  \return The raster product.
443  */
444  virtual Raster& operator*=(Raster& rhs);
445 
446  /*!
447  \brief It returns the product of a constant value to all pixels in the raster.
448 
449  \param cvalue The constant value to be multiplied.
450 
451  \note The caller is responsible to guarantee that resultant values
452  will not exceed the range of the data type.
453 
454  \return The raster product.
455  */
456  virtual Raster& operator*=(std::complex<double>& cvalue);
457 
458  /*!
459  \brief It returns the raster division (pixel by pixel).
460 
461  \param rhs The raster to be divided, right-hand side.
462 
463  \note Both rasters must have the same properties, #bands, #columns,
464  #rows, and data type.
465 
466  \note The caller is responsible to guarantee that resultant values
467  will not exceed the range of the data type.
468 
469  \return The raster division.
470  */
471  virtual Raster& operator/=(Raster& rhs);
472 
473  /*!
474  \brief It returns the division of all pixels in the raster by a constant value (pixels / constant).
475 
476  \param cvalue The constant value to be divided.
477 
478  \note The caller is responsible to guarantee that resultant values
479  will not exceed the range of the data type.
480 
481  \return The raster division.
482  */
483  virtual Raster& operator/=(std::complex<double>& cvalue);
484 
485  /*!
486  \brief Assignment operator.
487 
488  \param rhs The right-hand-side copy that would be used to copy from.
489 
490  \return A reference to this object.
491  */
492  virtual Raster& operator=(const Raster& rhs);
493 
494  /*!
495  \brief Subsetting operation for trimming (cropping) the raster.
496 
497  \param env The envelope (inside original extent) to crop the raster.
498  \param rinfo The parameters needed to build the output raster (see RasterFactory documentation).
499 
500  \return A pointer to the trimmed raster if success and a null pointer otherwise.
501 
502  \note The caller will take the ownership of the returned pointer.
503  */
504  virtual Raster* trim(const te::gm::Envelope* env, const std::map<std::string, std::string>& rinfo) const;
505 
506  /*!
507  \brief Subsetting operation for clipping the raster.
508 
509  \param geometries A vector of pointers to valid geometries.
510  \param rinfo The parameters needed to build the output raster (see RasterFactory documentation).
511  \param rType The name of the specific driver to create the raster.
512 
513  \return A pointer to the trimmed raster if success and a null pointer otherwise.
514 
515  \note The caller will take the ownership of the returned pointer.
516  \note Accepted geometry types: te::gm::Polygon, te::gm::MultiPolygon
517  */
518  virtual Raster* clip(const std::vector< te::gm::Geometry const *> geometries,
519  const std::map<std::string, std::string>& rinfo,
520  const std::string& rType ) const;
521 
522  /*!
523  \brief Resample a subset of the raster, given a box.
524 
525  \param method The method of interpolation. \sa te::rst::Interpolator
526  \param drow The starting row to make a subset of the image.
527  \param dcolumn The starting column to make a subset of the image.
528  \param height The height of the subset.
529  \param width The width of the subset.
530  \param newheight The resampled height of the new raster.
531  \param newwidth The resampled width of the new raster.
532  \param rinfo The parameters needed to build the output raster (see RasterFactory documentation).
533 
534  \return A pointer to the resampled raster if success and a null pointer otherwise.
535 
536  \note The caller will take the ownership of the returned pointer.
537 
538  \warning A scale of 0 is not allowed. Use 1, 2, 3, or -1, -2, 3...
539  */
540  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;
541 
542  /*!
543  \brief Resample raster.
544 
545  \param method The method of interpolation.
546  \param scale The scale of interpolation (use - to shrink or + to enlarge).
547  \param rinfo The parameters needed to build the output raster (see RasterFactory documentation).
548 
549  \return A pointer to the resampled raster if success and a null pointer otherwise.
550 
551  \note The caller will take the ownership of the returned pointer.
552 
553  \warning A scale of 0 is not allowed. Use 1, 2, 3, or -1, -2, 3...
554  */
555  virtual Raster* resample(int method, int scale, const std::map<std::string, std::string>& rinfo) const;
556 
557  /*!
558  \brief Return the raster grid for a specific scale.
559 
560  \param scale The desired sacale of interpolation (use - to shrink or + to enlarge).
561 
562  \return The raster grid.
563 
564  \note The caller will take the ownership of the returned pointer.
565  */
566  Grid* getResampledGrid(int scale) const;
567 
568  /*!
569  \brief Reprojects this raster to a distinct SRS.
570  This method reprojects this raster to a distinct SRS. The output resolution
571  is calculated in order to maintain the same number of pixels as in this raster.
572 
573  \param srid The target SRS identifier.
574  \param rinfo The parameters needed to build the output raster (see RasterFactory documentation).
575  \param m The method of interpolation to apply (default 1 = nearest neighbor). \sa te::rst::Interpolator
576 
577 
578  \return A pointer to the reprojected raster if success and a null pointer otherwise.
579 
580  \note The caller will take the ownership of the returned pointer.
581  */
582  virtual Raster* transform(int srid, const std::map<std::string, std::string>& rinfo, int m = 1) const;
583 
584  /*!
585  \brief Reprojects a squared portion of this raster to a distinct SRS.
586  This method reprojects a squared portion of this raster to a distinct SRS.
587  The output resolution is calculated in order to maintain the same number
588  of pixels as in the desired portion of this raster.
589 
590  \param srid The target SRS identifier.
591  \param llx Lower-left X-coordinate of the portion to be reprojected (in the original SRS).
592  \param lly Lower-left Y-coordinate of the portion to be reprojected (in the original SRS).
593  \param urx Upper-Right X-coordinate of the portion to be reprojected (in the original SRS).
594  \param url Upper-Right Y-coordinate of the portion to be reprojected (in the original SRS).
595  \param rinfo The parameters needed to build the output raster (see RasterFactory documentation).
596  \param m The method of interpolation to apply (default 1 = nearest neighbor). \sa te::rst::Interpolator
597 
598  \return A pointer to the reprojected raster if success and a null pointer otherwise.
599 
600  \note The caller will take the ownership of the returned pointer.
601  */
602  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;
603 
604  /*!
605  \brief Reprojects a squared portion of this raster to another SRS with a desired resolution.
606 
607  This method reprojects a squared portion of this raster to another SRS. The number of pixels
608  in the output will be calculated according to the portion being reprojected and the asked resolution.
609 
610  \param srid The SRS id of the target SRS.
611  \param llx Lower-left X-coordinate of the portion to be reprojected (in the original SRS).
612  \param lly Lower-left Y-coordinate of the portion to be reprojected (in the original SRS).
613  \param urx Upper-Right X-coordinate of the portion to be reprojected (in the original SRS).
614  \param url Upper-Right Y-coordinate of the portion to be reprojected (in the original SRS).
615  \param resx The output x resolution (in units of the target SRS).
616  \param resx The output y resolution (in units of the target SRS).
617  \param rinfo The parameters needed to build the output raster (see RasterFactory documentation).
618  \param m The method of interpolation to apply (default 1 = nearest neighbor). \sa te::rst::Interpolator
619 
620  \return A pointer to the reprojected raster if success and a null pointer otherwise.
621 
622  \note The caller will take the ownership of the returned pointer.
623  */
624  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;
625 
626  /*!
627  \brief Vectorizes a given raster band, using GDALPolygonize function.
628 
629  \param g A reference to a vector of geometries.
630  Will be filled with geometries found in band.
631  \param b The band index to vectorize.
632 
633  \param polygonsValues A pointer to a valid vector where the raster pixel values related to each polygon will be stored, or a NULL pointer.
634 
635  \note The caller of this method must take the ownership of the returned geometries and must delete them when necessary.
636  */
637  virtual void vectorize(std::vector<te::gm::Geometry*>& g, std::size_t b, unsigned int mp = 0, std::vector< double > * const polygonsValues = 0);
638 
639  /*!
640  \brief Rasterizes a given vector of geometries.
641 
642  \param g A vector of geometries to be rasterized.
643  \param vp A vector of pixel values for each geometry.
644  Can have the same size of the vector of geometries, or be null.
645  \param b The band index to rasterize.
646  */
647  virtual void rasterize(std::vector<te::gm::Geometry*> g, std::vector<double> vp, std::size_t b = 0);
648 
649  /*!
650  \brief Create a sub-sampled multi-resolution pyramid.
651 
652  \param levels The number of pyramid levels to generate.
653  \param interpMethod The used interpolation method.
654 
655  \return true if OK, false if errors ocurred.
656  */
657  virtual bool createMultiResolution( const unsigned int levels, const InterpolationMethod interpMethod ) = 0;
658 
659  /*!
660  \brief Remove/Destroy a sub-sampled multi-resolution pyramid, if there is one.
661 
662  \return true if OK, false if errors ocurred.
663  */
664  virtual bool removeMultiResolution() = 0;
665 
666  /*!
667  \brief Returns the current number of multi-resolution pyramid levels.
668 
669  \return Returns the current number of multi-resolution pyramid levels.
670  */
671  virtual unsigned int getMultiResLevelsCount() const = 0;
672 
673  /*!
674  \brief Returns the required level of a multi-resolution pyramid or NULL if that level does not exists.
675 
676  \param level Level of a multi-resolution pyramid.
677 
678  \return Returns the required level of a multi-resolution pyramid or NULL if that level does not exists.
679 
680  \note The caller must take the ownership of the returned pointer.
681  */
682  virtual Raster* getMultiResLevel( const unsigned int level ) const = 0;
683 
684  protected:
685 
686  /*!
687  \brief Scales a value according to a specific resampling scale.
688 
689  \param i The scale to apply.
690  \param v The value to be scaled.
691 
692  \return The scaled value.
693  */
694  double applyScale(int i, const double& v) const;
695 
696  protected:
697 
698  std::string m_name; //!< The raster name.
699  Grid* m_grid; //!< The spatial support for raster data.
700  te::common::AccessPolicy m_policy; //!< The access policy, can be te::common::{NoAccess, RAccess, RWAccess, WAccess}.
701  };
702 
703  typedef boost::shared_ptr<Raster> RasterPtr;
704 
705  } // end namespace rst
706 } // end namespace te
707 
708 #endif //__TERRALIB_RASTER_INTERNAL_RASTER_H
#define TERASTEREXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:63
capabilities setAccessPolicy(te::common::RWAccess)
int getTypeCode() const
It returns the data type code associated to the data value.
Definition: Raster.h:362
InterpolationMethod
Allowed interpolation methods.
Definition: Enums.h:92
It implements the vectorizer, based on TerraLib 4 algorithm.
std::string m_name
The raster name.
Definition: Raster.h:698
Grid * m_grid
The spatial support for raster data.
Definition: Raster.h:699
boost::shared_ptr< Raster > RasterPtr
Definition: Raster.h:703
AccessPolicy
Supported data access policies (can be used as bitfield).
Definition: Enums.h:40
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:51
An abstract class for raster data strucutures.
Definition: Raster.h:71
TerraLib.
A base class for values that can be retrieved from the data access module.
Definition: AbstractData.h:57
A raster band description.
Definition: Band.h:63
Configuration flags for the Raster module of TerraLib.
A rectified grid is the spatial support for raster data.
Definition: Grid.h:68
te::common::AccessPolicy m_policy
The access policy, can be te::common::{NoAccess, RAccess, RWAccess, WAccess}.
Definition: Raster.h:700