Loading...
Searching...
No Matches
Utils.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/gdal/Utils.h
22
23 \brief Utilitary functions to access GDAL and match some of its concepts to TerraLib concepts.
24 */
25
26#ifndef __TERRALIB_GDAL_INTERNAL_UTILS_H
27#define __TERRALIB_GDAL_INTERNAL_UTILS_H
28
29// TerraLib
30#include "../raster/BandProperty.h"
31#include "../raster/Enums.h"
32#include "../raster/Raster.h"
33#include "../core/translator/Translator.h"
34#include "Config.h"
35#include "Raster.h"
36#include "ScopedDataSetHandle.h"
37
38// GDAL
39#include <gdal_priv.h>
40#include <cpl_error.h>
41
42// STL
43#include <map>
44#include <string>
45#include <vector>
46#include <set>
47
48#include <boost/filesystem.hpp>
49#include <boost/thread/mutex.hpp>
50
51namespace te
52{
53 namespace gm {class Envelope; class Geometry;}
54
55 namespace rst {class Grid; class RasterProperty; }
56
57 namespace core { class URI; }
58
59 namespace gdal
60 {
61 /*!
62 \brief GDAL driver metadata.
63 */
65 {
66 std::string m_driverName; //!< Driver name (driver description).
67 std::vector< std::string > m_extensions; //!< List of extensions handled by the driver (GDAL_DMD_EXTENSIONS).
68 std::string m_longName; //!< File long name (GDAL_DMD_LONGNAME).
69 bool m_subDatasetsSupport; //!< true if the driver has support for sub-datasets (GDAL_DMD_SUBDATASETS).
70 bool m_isRaster; //!< Capability set by a driver having raster capability (GDAL_DCAP_RASTER).
71 bool m_isVector; //!< Capability set by a driver having vector capability (GDAL_DCAP_VECTOR).
72 bool m_supportCreation; //!< Capability set by a driver having vector capability (GDAL_DCAP_CREATE).
73 };
74
75 /*!
76 \brief It translates a GDAL DataType to a TerraLib DataType.
77 */
78 inline int GetTeDataType(GDALDataType gt)
79 {
80 switch(gt)
81 {
82 case GDT_Byte : return te::dt::UCHAR_TYPE;
83 case GDT_UInt16 : return te::dt::UINT16_TYPE;
84 case GDT_Int16 : return te::dt::INT16_TYPE;
85 case GDT_UInt32 : return te::dt::UINT32_TYPE;
86 case GDT_Int32 : return te::dt::INT32_TYPE;
87 case GDT_Float32 : return te::dt::FLOAT_TYPE;
88 case GDT_Float64 : return te::dt::DOUBLE_TYPE;
89
90 case GDT_CInt16 : return te::dt::CINT16_TYPE;
91 case GDT_CInt32 : return te::dt::CINT32_TYPE;
92 case GDT_CFloat32 : return te::dt::CFLOAT_TYPE;
93 case GDT_CFloat64 : return te::dt::CDOUBLE_TYPE;
94
95 default : return te::dt::UNKNOWN_TYPE;
96 }
97 }
98
99 /*!
100 \brief It translates a TerraLib DataType to a GDAL DataType.
101 */
102 inline GDALDataType GetGDALDataType(int tet)
103 {
104 switch(tet)
105 {
106 case te::dt::UCHAR_TYPE : return GDT_Byte;
107 case te::dt::CHAR_TYPE : return GDT_Byte;
108 case te::dt::UINT16_TYPE : return GDT_UInt16;
109 case te::dt::INT16_TYPE : return GDT_Int16;
110 case te::dt::UINT32_TYPE : return GDT_UInt32;
111 case te::dt::INT32_TYPE : return GDT_Int32;
112 case te::dt::FLOAT_TYPE : return GDT_Float32;
113 case te::dt::DOUBLE_TYPE : return GDT_Float64;
114
115 case te::dt::CINT16_TYPE : return GDT_CInt16;
116 case te::dt::CINT32_TYPE : return GDT_CInt32;
117 case te::dt::CFLOAT_TYPE : return GDT_CFloat32;
118 case te::dt::CDOUBLE_TYPE : return GDT_CFloat64;
119
120 default : return GDT_Unknown;
121 }
122 }
123
124 /*!
125 \brief It translates a GDAL ColorInterpretation to a TerraLib ColorInterpretation.
126 */
128 {
129 switch(gci)
130 {
131 case GCI_GrayIndex : return te::rst::GrayIdxCInt;
132 case GCI_PaletteIndex : return te::rst::PaletteIdxCInt;
133 case GCI_RedBand : return te::rst::RedCInt;
134 case GCI_GreenBand : return te::rst::GreenCInt;
135 case GCI_BlueBand : return te::rst::BlueCInt;
136 case GCI_AlphaBand : return te::rst::AlphaCInt;
137 case GCI_HueBand : return te::rst::HueCInt;
138 case GCI_SaturationBand : return te::rst::SatCInt;
139 case GCI_LightnessBand : return te::rst::LigCInt;
140 case GCI_CyanBand : return te::rst::CyanCInt;
141 case GCI_MagentaBand : return te::rst::MagentaCInt;
142 case GCI_YellowBand : return te::rst::YellowCInt;
143 case GCI_BlackBand : return te::rst::KeyCInt;
144 case GCI_YCbCr_YBand : return te::rst::YCInt;
145 case GCI_YCbCr_CbBand : return te::rst::CbCInt;
146 case GCI_YCbCr_CrBand : return te::rst::CrCInt;
147 default : return te::rst::UndefCInt;
148 }
149 }
150
151 /*!
152 \brief It translates a TerraLib ColorInterpretation to a GDAL ColorInterpretation.
153 */
155 {
156 switch(ci)
157 {
158 case te::rst::GrayIdxCInt : return GCI_GrayIndex;
159 case te::rst::PaletteIdxCInt : return GCI_PaletteIndex;
160 case te::rst::RedCInt : return GCI_RedBand;
161 case te::rst::GreenCInt : return GCI_GreenBand;
162 case te::rst::BlueCInt : return GCI_BlueBand;
163 case te::rst::AlphaCInt : return GCI_AlphaBand;
164 case te::rst::HueCInt : return GCI_HueBand;
165 case te::rst::SatCInt : return GCI_SaturationBand;
166 case te::rst::LigCInt : return GCI_LightnessBand;
167 case te::rst::CyanCInt : return GCI_CyanBand;
168 case te::rst::MagentaCInt : return GCI_MagentaBand;
169 case te::rst::YellowCInt : return GCI_YellowBand;
170 case te::rst::KeyCInt : return GCI_BlackBand;
171 case te::rst::YCInt : return GCI_YCbCr_YBand;
172 case te::rst::CbCInt : return GCI_YCbCr_CbBand;
173 case te::rst::CrCInt : return GCI_YCbCr_CrBand;
174 default : return GCI_Undefined;
175 }
176 }
177
178 /*!
179 \brief It translates a GDAL Pallete Interpretation to a TerraLib Pallete Interpretation.
180 */
182 {
183 switch (gpi)
184 {
185 case GPI_Gray : return te::rst::GrayPalInt;
186 case GPI_RGB : return te::rst::RGBPalInt;
187 case GPI_CMYK : return te::rst::CMYKPalInt;
188 case GPI_HLS : return te::rst::HSLPalInt;
189 default : return te::rst::UndefPalInt;
190 }
191 }
192
193 /*!
194 \brief It translates a TerraLib interpolation method into a GDAL ressampling method name string.
195 */
196 inline std::string GetGDALRessamplingMethod(te::rst::InterpolationMethod interpolationMethod )
197 {
198 switch(interpolationMethod)
199 {
200 case te::rst::NearestNeighbor : return std::string( "NEAREST" );
201 case te::rst::Bilinear : return std::string( "BILINEAR" );
202 case te::rst::Bicubic : return std::string( "CUBIC" );
203 case te::rst::MeanInterpolation : return std::string( "AVERAGE" );
204 case te::rst::ModeInterpolation : return std::string( "MODE" );
205 default : return std::string( "NEAREST" );
206 }
207 }
208
209 /*!
210 \brief Gets the grid definition from a GDAL dataset.
211 \param gds A pointer to a GDAL dataset.
212 \return A pointer to the grid definition from a GDAL dataset. Caller takes its ownership.
213 */
215
216 /*!
217 \brief Gets the grid definition from a GDAL dataset.
218 \param gds A pointer to a GDAL dataset.
219 \param multiResLevel Multi resolution level (use -1 to use the original resolution).
220 \return A pointer to the grid definition from a GDAL dataset. Caller takes its ownership.
221 */
222 TEGDALEXPORT te::rst::Grid* GetGrid(GDALDataset* gds, const int multiResLevel );
223
224 /*!
225 \brief Gets the list of bands definition from a GDAL dataset.
226 \param gds A pointer to a GDAL dataset.
227 \param bprops A reference to a vector to be filled with the bands description extracted from a dataset.
228 \note The caller of this method must take the ownership of the returned properties.
229 */
230 TEGDALEXPORT void GetBandProperties(GDALDataset* gds, std::vector<te::rst::BandProperty*>& bprops);
231
232 /*!
233 \brief Gets the properties of a single band from a GDAL dataset.
234
235 \param gband A pointer to a GDAL Raster Band.
236
237 \param bandIndex The band index (starting from 0).
238
239 \return A band property.
240
241 \note The caller of this method must take the ownership of the returned properties.
242 */
243 te::rst::BandProperty* GetBandProperty(GDALRasterBand* gband, const unsigned int bandIndex );
244
245 /*!
246 \brief Gets the list of bands from a GDAL dataset.
247
248 \param rst A pointer to the raster.
249 \param bands A reference to a vector to be filled with the bands extracted from a dataset.
250 \note The caller of this method must take the ownership of the returned properties.
251 */
252 void GetBands(te::gdal::Raster* rst, std::vector<te::gdal::Band*>& bands);
253
254 /*!
255 \brief Gets the list of bands from a GDAL dataset.
256
257 \param rst A pointer to the raster.
258 \param multiResLevel Multi-resolution pyramid level (value -1 -> overviews disabled).
259 \param bands A reference to a vector to be filled with the bands extracted from a dataset.
260 \note The caller of this method must take the ownership of the returned properties.
261 */
262 bool GetBands(te::gdal::Raster* rst, int multiResLevel, std::vector<te::gdal::Band*>& bands);
263
264 /*!
265 \brief Gets the complete description from a GDAL dataset.
266 \param strAccessInfo A a string to be used by GDAL to access the raster.
267 \return A pointer to the raster description from a GDAL dataset. Caller takes its ownership.
268 */
269 te::rst::RasterProperty* GetRasterProperty(std::string strAccessInfo);
270
271 /*!
272 \brief Creates a raster data using GDAL.
273
274 \param g Raster grid info.
275 \param bands Band info.
276 \param optParams A vector of optional parameters that are valid only for some data formats.
277
278 \param metadadata Raster metadata in a form [meta data name, value].
279
280 \return A pointer to a GDALDataset if it succeeds or a NULL pointer otherwise. Caller is responsible for closing it.
281
282 \exception Exception It throws an exception if the raster can not be created.
283 */
284 GDALDataset* CreateRaster(te::rst::Grid* g,
285 const std::vector<te::rst::BandProperty*>& bands,
286 const std::map<std::string, std::string>& optParams,
287 const std::map<std::string, std::string>& metadata );
288
289 /*!
290 \brief Creates a raster data using GDAL.
291 \param name The name of the dataset to create. UTF-8 encoded.
292 \param g Raster grid info.
293 \param bands Band info.
294 \param optParams A vector of optional parameters that are valid only for some data formats.
295 \param optParams A vector of optional raster metadata (KEY,VALUE) to be saved (when applicable).
296
297 \return A pointer to a GDALDataset if it succeeds or a NULL pointer otherwise. Caller is responsible for closing it.
298
299 \exception Exception It throws an exception if the raster can not be created.
300 */
301 GDALDataset* CreateRaster(const std::string& name, te::rst::Grid* g,
302 const std::vector<te::rst::BandProperty*>& bands,
303 const std::map<std::string, std::string>& optParams,
304 const std::map<std::string, std::string>& metaData );
305
306 /*!
307 \brief Gets the extent of a raster data decoded by GDAL.
308 \param strAccessInfo A a string to be used by GDAL to access the raster.
309 \return A pointer to raster extent. Caller takes its ownership.
310 */
311 te::gm::Envelope* GetExtent(std::string strAccessInfo);
312
313 /*!
314 \brief Get a handle to a raster file.
315 \param filename File name (path included).
316 \param policy The access permission requested.
317 \return A pointer to GDAL dataset if it succeeds or a NULL pointer otherwise.
318 */
320
321 /*!
322 \brief Returns a PostGIS connection string from the URI connection information.
323 The connection string is to be used as a dataset name in GDAL data model. See also http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html.
324 \param connInfo The URI parameters.
325 \return Returns a PostGIS connection string from the set connection information.
326 */
327 std::string MakePGConnectionStr(const te::core::URI& connInfo);
328
329 /*!
330 \brief Reprojects a raster to another SRS.
331 \param rin The input raster file. Do not pass a null pointer.
332 \param rout The new output raster. Do not pass a null pointer.
333 \return true If the reprojection was done or false otherwise.
334 */
335 bool ReprojectRaster(te::rst::Raster const * const rin, te::rst::Raster* rout);
336
337 /*!
338 \brief It returns the GDAL driver name associated to a data source name.
339
340 \param dsName the name of the file that represents the data source.
341
342 \return the GDAL driver name, or its identifier if succeeds and a null string otherwise.
343 */
344 std::string GetDriverName(const std::string& dsName);
345
346 /*!
347 \brief It returns a GDAL connection string from the given map.
348
349 \param connInfo An associative conteiner with data source connection info.
350
351 \return a GDAL connection string from the given map.
352
353 \exception Exception It throws an exception if no connection info exists in the input map.
354 */
355 std::string GetGDALConnectionInfo(const std::map<std::string, std::string>& connInfo);
356
357 /*!
358 \brief It returns the Sub DataSet name from the given name or the same name.
359
360 \param name The Full SubDataSet string name.
361
362 \param driverName The driver name.
363
364 \return The Sub DataSet name from the given name.
365 */
366 std::string GetSubDataSetName(const std::string& name, const std::string& driverName);
367
368 /*!
369 \brief It returns true if GDAL recognizes the given SRS id.
370
371 \param srid The SRS identifier.
372
373 \return true if GDAL recognizes the given SRS id or false otherwise.
374 */
375 bool RecognizesSRID(unsigned int srid);
376
377 /*!
378 \brief Vectorizes a given raster band, using GDALPolygonize function.
379
380 \param band The band to vectorize.
381 \param geometries A reference to a vector of geometries. Will be filled with geometries found in band.
382 */
383 TEGDALEXPORT void Vectorize(GDALRasterBand* band, std::vector<te::gm::Geometry*>& geometries);
384
385 /*!
386 \brief Rasterizes a given vector of geometries, using GDALRasterizeGeometries function.
387
388 \param geometries A vector of geometries to be rasterized.
389 \param outraster A reference to the GDAL dataset where the rasterized geometries will be drawn.
390 */
391 TEGDALEXPORT void Rasterize(std::vector<te::gm::Geometry*> geometries, GDALDataset* outraster);
392
393 /*!
394 \brief Returns true if the given URI is related to a sub-dataset.
395 \param uri The given URI.
396 \return true if the given URI is related to a sub-dataset.
397 */
398 bool IsSubDataSet( const std::string& uri );
399
400 /*!
401 \brief It returns the parent dataset name from a Sub DataSet name.
402 \param subDataSetName The Full SubDataSet string name.
403 \return the parent dataset name from a Sub DataSet name.
404 \note If the given name does not refers to a sub-dataset it will be returned.
405 */
406 std::string GetParentDataSetName(const std::string& subDataSetName);
407
408 /*!
409 \brief Returns a reference to a static mutex initialized when this module is initialized.
410 \return Returns a reference to a static mutex initialized when this module is initialized.
411 */
412 TEGDALEXPORT boost::mutex& getStaticMutex();
413
414 /*!
415 \brief Returns metadata from all registered GDAL drivers (key: driver name).
416 \return Metadata from all registered GDAL drivers (key: driver name).
417 */
418 std::map< std::string, DriverMetadata >& GetGDALDriversMetadata();
419
420 /*!
421 \brief Returns a map of all GDAL supported Upper-case raster extensions to their respective driver names.
422 \param creationSupport Return only those extensions with dataset creation support.
423 \return Returns the result map.
424 */
425 std::multimap< std::string, std::string > GetGDALRasterDriversUCaseExt2DriversMap(
426 const bool creationSupport );
427
428 /*!
429 \brief Returns a map of all GDAL supported Upper-case vector extensions to their respective driver names.
430 \param creationSupport Return only those extensions with dataset creation support.
431 \return Returns the result map.
432 */
433 std::multimap< std::string, std::string > GetGDALVectorDriversUCaseExt2DriversMap(
434 const bool creationSupport );
435
436 /*!
437 \brief Returns a map of all GDAL supported Upper-case ( vector and raster ) extensions to their respective driver names.
438 \param creationSupport Return only those extensions with dataset creation support.
439 \return Returns the result map.
440 \note To get only vector extensiones use GetGDALVectorDriversUCaseExt2DriversMap(().
441 \note To get only raster extensiones use GetGDALRasterDriversUCaseExt2DriversMap(().
442 */
443 std::multimap< std::string, std::string > GetGDALAllDriversUCaseExt2DriversMap(
444 const bool creationSupport );
445
446
447 void GDALErrorHandler(CPLErr eErrClass, int errNo, const char* msg);
448
449 /*!
450 \brief Returns metadata read from the given dataset.
451 \param creationSupport Return only those extensions with dataset creation support.
452 \return Returns true if the dataset has metadadata and it was read, false otherwise.
453 */
454 bool GetMetaData( GDALDataset& dataset,
455 std::map<std::string, std::string>& metadata );
456 } // end namespace gdal
457} // end namespace te
458#endif
A class to store the proxy information that must be used to access data located in URIs.
Definition: URI.h:50
This class represents Raster data.
Definition: Raster.h:63
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:52
A raster band description.
Definition: BandProperty.h:62
A rectified grid is the spatial support for raster data.
Definition: Grid.h:69
Raster property.
An abstract class for raster data strucutures.
Definition: Raster.h:72
AccessPolicy
Supported data access policies (can be used as bitfield).
Definition: Enums.h:41
@ RAccess
Definition: Enums.h:43
@ DOUBLE_TYPE
Definition: Enums.h:198
@ FLOAT_TYPE
Definition: Enums.h:197
@ CFLOAT_TYPE
Definition: Enums.h:210
@ UNKNOWN_TYPE
Definition: Enums.h:185
@ INT16_TYPE
Definition: Enums.h:190
@ CINT16_TYPE
Definition: Enums.h:208
@ CINT32_TYPE
Definition: Enums.h:209
@ UINT16_TYPE
Definition: Enums.h:191
@ UCHAR_TYPE
Definition: Enums.h:189
@ UINT32_TYPE
Definition: Enums.h:193
@ CHAR_TYPE
Definition: Enums.h:188
@ CDOUBLE_TYPE
Definition: Enums.h:211
@ INT32_TYPE
Definition: Enums.h:192
bool GetMetaData(GDALDataset &dataset, std::map< std::string, std::string > &metadata)
Returns metadata read from the given dataset.
bool IsSubDataSet(const std::string &uri)
Returns true if the given URI is related to a sub-dataset.
void GDALErrorHandler(CPLErr eErrClass, int errNo, const char *msg)
std::string GetParentDataSetName(const std::string &subDataSetName)
It returns the parent dataset name from a Sub DataSet name.
TEGDALEXPORT void Vectorize(GDALRasterBand *band, std::vector< te::gm::Geometry * > &geometries)
Vectorizes a given raster band, using GDALPolygonize function.
std::string GetSubDataSetName(const std::string &name, const std::string &driverName)
It returns the Sub DataSet name from the given name or the same name.
std::multimap< std::string, std::string > GetGDALVectorDriversUCaseExt2DriversMap(const bool creationSupport)
Returns a map of all GDAL supported Upper-case vector extensions to their respective driver names.
std::string MakePGConnectionStr(const te::core::URI &connInfo)
Returns a PostGIS connection string from the URI connection information. The connection string is to ...
bool ReprojectRaster(te::rst::Raster const *const rin, te::rst::Raster *rout)
Reprojects a raster to another SRS.
std::map< std::string, DriverMetadata > & GetGDALDriversMetadata()
Returns metadata from all registered GDAL drivers (key: driver name).
te::rst::RasterProperty * GetRasterProperty(std::string strAccessInfo)
Gets the complete description from a GDAL dataset.
ScopedDataSetHandlePtr GetRasterHandle(std::string strAccessInfo, te::common::AccessPolicy policy=te::common::RAccess)
Get a handle to a raster file.
TEGDALEXPORT te::rst::Grid * GetGrid(GDALDataset *gds)
Gets the grid definition from a GDAL dataset.
std::multimap< std::string, std::string > GetGDALAllDriversUCaseExt2DriversMap(const bool creationSupport)
Returns a map of all GDAL supported Upper-case ( vector and raster ) extensions to their respective d...
std::multimap< std::string, std::string > GetGDALRasterDriversUCaseExt2DriversMap(const bool creationSupport)
Returns a map of all GDAL supported Upper-case raster extensions to their respective driver names.
bool RecognizesSRID(unsigned int srid)
It returns true if GDAL recognizes the given SRS id.
TEGDALEXPORT void Rasterize(std::vector< te::gm::Geometry * > geometries, GDALDataset *outraster)
Rasterizes a given vector of geometries, using GDALRasterizeGeometries function.
GDALDataType GetGDALDataType(int tet)
It translates a TerraLib DataType to a GDAL DataType.
Definition: Utils.h:102
te::rst::BandProperty * GetBandProperty(GDALRasterBand *gband, const unsigned int bandIndex)
Gets the properties of a single band from a GDAL dataset.
std::string GetGDALConnectionInfo(const std::map< std::string, std::string > &connInfo)
It returns a GDAL connection string from the given map.
te::rst::ColorInterp GetTeColorInterpretation(GDALColorInterp gci)
It translates a GDAL ColorInterpretation to a TerraLib ColorInterpretation.
Definition: Utils.h:127
std::string GetDriverName(const std::string &dsName)
It returns the GDAL driver name associated to a data source name.
std::unique_ptr< ScopedDataSetHandle > ScopedDataSetHandlePtr
std::string GetGDALRessamplingMethod(te::rst::InterpolationMethod interpolationMethod)
It translates a TerraLib interpolation method into a GDAL ressampling method name string.
Definition: Utils.h:196
te::gm::Envelope * GetExtent(std::string strAccessInfo)
Gets the extent of a raster data decoded by GDAL.
te::rst::PaletteInterpretation GetTePaletteInterpretation(GDALPaletteInterp gpi)
It translates a GDAL Pallete Interpretation to a TerraLib Pallete Interpretation.
Definition: Utils.h:181
TEGDALEXPORT boost::mutex & getStaticMutex()
Returns a reference to a static mutex initialized when this module is initialized.
void GetBands(te::gdal::Raster *rst, std::vector< te::gdal::Band * > &bands)
Gets the list of bands from a GDAL dataset.
int GetTeDataType(GDALDataType gt)
It translates a GDAL DataType to a TerraLib DataType.
Definition: Utils.h:78
GDALColorInterp GetGDALColorInterpretation(te::rst::ColorInterp ci)
It translates a TerraLib ColorInterpretation to a GDAL ColorInterpretation.
Definition: Utils.h:154
GDALDataset * CreateRaster(te::rst::Grid *g, const std::vector< te::rst::BandProperty * > &bands, const std::map< std::string, std::string > &optParams, const std::map< std::string, std::string > &metadata)
Creates a raster data using GDAL.
TEGDALEXPORT void GetBandProperties(GDALDataset *gds, std::vector< te::rst::BandProperty * > &bprops)
Gets the list of bands definition from a GDAL dataset.
InterpolationMethod
Allowed interpolation methods.
Definition: Enums.h:93
@ Bicubic
Bicubic interpolation method.
Definition: Enums.h:97
@ Bilinear
Bilinear interpolation method.
Definition: Enums.h:96
@ ModeInterpolation
Mean of neighbor pixels following a given window radius.
Definition: Enums.h:101
@ MeanInterpolation
Mean of neighbor pixels following a given window radius.
Definition: Enums.h:98
@ NearestNeighbor
Near neighborhood interpolation method.
Definition: Enums.h:95
PaletteInterpretation
Palette interpratation types.
Definition: Enums.h:81
@ HSLPalInt
HSL indexed palette interpretation.
Definition: Enums.h:86
@ GrayPalInt
Gray indexed palette interpretation.
Definition: Enums.h:83
@ CMYKPalInt
CMYK indexed palette interpretation.
Definition: Enums.h:85
@ UndefPalInt
Undefined palette interpretation.
Definition: Enums.h:82
@ RGBPalInt
RGB indexed palette interpretation.
Definition: Enums.h:84
ColorInterp
Color model component use.
Definition: Enums.h:55
@ AlphaCInt
Alpha channel color interpretation.
Definition: Enums.h:62
@ KeyCInt
Key (black) color interpretation.
Definition: Enums.h:69
@ GrayIdxCInt
Index into a lookup table.
Definition: Enums.h:57
@ PaletteIdxCInt
Palette indexes color interpretation.
Definition: Enums.h:58
@ UndefCInt
No color interpretation is associated with the band.
Definition: Enums.h:56
@ LigCInt
Lightness color interpretation.
Definition: Enums.h:65
@ HueCInt
Hue channel color interpretation.
Definition: Enums.h:63
@ YCInt
YCbCr Y Band color interpretation.
Definition: Enums.h:70
@ CrCInt
YCbCr Cr Band color interpretation.
Definition: Enums.h:72
@ GreenCInt
Green channel color interpretation.
Definition: Enums.h:60
@ RedCInt
Red channel color interpretation.
Definition: Enums.h:59
@ CyanCInt
Cyan color interpretation.
Definition: Enums.h:66
@ SatCInt
Saturation color interpretation.
Definition: Enums.h:64
@ CbCInt
YCbCr Cb Band color interpretation.
Definition: Enums.h:71
@ MagentaCInt
Magenta color interpretation.
Definition: Enums.h:67
@ YellowCInt
Yellow color interpretation.
Definition: Enums.h:68
@ BlueCInt
Blue channel color interpretation.
Definition: Enums.h:61
@ Grid
Definition: Enums.h:106
TerraLib.
GDAL driver metadata.
Definition: Utils.h:65
bool m_isVector
Capability set by a driver having vector capability (GDAL_DCAP_VECTOR).
Definition: Utils.h:71
std::string m_driverName
Driver name (driver description).
Definition: Utils.h:66
bool m_subDatasetsSupport
true if the driver has support for sub-datasets (GDAL_DMD_SUBDATASETS).
Definition: Utils.h:69
bool m_supportCreation
Capability set by a driver having vector capability (GDAL_DCAP_CREATE).
Definition: Utils.h:72
bool m_isRaster
Capability set by a driver having raster capability (GDAL_DCAP_RASTER).
Definition: Utils.h:70
std::string m_longName
File long name (GDAL_DMD_LONGNAME).
Definition: Utils.h:68
std::vector< std::string > m_extensions
List of extensions handled by the driver (GDAL_DMD_EXTENSIONS).
Definition: Utils.h:67
Raster implementaton for TerraLib 4.x.
#define TEGDALEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:67
Proxy configuration file for TerraView (see terraview_config.h).