QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
qgsgdalutils.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsgdalutils.h
3  --------------
4  begin : September 2018
5  copyright : (C) 2018 Even Rouault
6  email : even.rouault at spatialys.com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSGDALUTILS_H
17 #define QGSGDALUTILS_H
18 
19 #define SIP_NO_FILE
20 
21 #include "qgis_core.h"
22 #include <gdal.h>
23 
24 #include "qgsogrutils.h"
25 
34 class CORE_EXPORT QgsGdalUtils
35 {
36  public:
37 
43  static bool supportsRasterCreate( GDALDriverH driver );
44 
49  static gdal::dataset_unique_ptr createSingleBandMemoryDataset( GDALDataType dataType, const QgsRectangle &extent, int width, int height, const QgsCoordinateReferenceSystem &crs );
50 
55  static gdal::dataset_unique_ptr createMultiBandMemoryDataset( GDALDataType dataType, int bands, const QgsRectangle &extent, int width, int height, const QgsCoordinateReferenceSystem &crs );
56 
61  static gdal::dataset_unique_ptr createSingleBandTiffDataset( const QString &filename, GDALDataType dataType, const QgsRectangle &extent, int width, int height, const QgsCoordinateReferenceSystem &crs );
62 
68  static void resampleSingleBandRaster( GDALDatasetH hSrcDS, GDALDatasetH hDstDS, GDALResampleAlg resampleAlg );
69 
74  static QImage resampleImage( const QImage &image, QSize outputSize, GDALRIOResampleAlg resampleAlg );
75 
80  static QString helpCreationOptionsFormat( const QString &format );
81 
86  static QString validateCreationOptionsFormat( const QStringList &createOptions, const QString &format );
87 
92  static char **papszFromStringList( const QStringList &list );
93 
101  static gdal::dataset_unique_ptr imageToMemoryDataset( const QImage &image );
102 
111  static GDALDatasetH rpcAwareAutoCreateWarpedVrt(
112  GDALDatasetH hSrcDS,
113  const char *pszSrcWKT,
114  const char *pszDstWKT,
115  GDALResampleAlg eResampleAlg,
116  double dfMaxError,
117  const GDALWarpOptions *psOptionsIn );
118 
127  static void *rpcAwareCreateTransformer( GDALDatasetH hSrcDS, GDALDatasetH hDstDS = nullptr, char **papszOptions = nullptr );
128 
129 #ifndef QT_NO_NETWORKPROXY
130  static void setupProxy();
132 #endif
133 
134  friend class TestQgsGdalUtils;
135 };
136 
137 #endif // QGSGDALUTILS_H
crs
const QgsCoordinateReferenceSystem & crs
Definition: qgswfsgetfeature.cpp:51
qgsogrutils.h
QgsGdalUtils
Utilities for working with GDAL.
Definition: qgsgdalutils.h:35
QgsRectangle
A rectangle specified with double values.
Definition: qgsrectangle.h:42
gdal::dataset_unique_ptr
std::unique_ptr< std::remove_pointer< GDALDatasetH >::type, GDALDatasetCloser > dataset_unique_ptr
Scoped GDAL dataset.
Definition: qgsogrutils.h:134
QgsCoordinateReferenceSystem
This class represents a coordinate reference system (CRS).
Definition: qgscoordinatereferencesystem.h:206
GDALDatasetH
void * GDALDatasetH
Definition: qgsalignraster.h:28