16#ifndef QGSALIGNRASTER_H
17#define QGSALIGNRASTER_H
23#include <gdal_version.h>
24#include "qgis_analysis.h"
47#include <gdal_version.h>
64 bool isValid()
const {
return nullptr != mDataset; }
67 QString
crs()
const {
return mCrsWkt; }
69 QSize
rasterSize()
const {
return QSize( mXSize, mYSize ); }
73 QSizeF cellSize()
const;
75 QPointF gridOffset()
const;
79 QPointF origin()
const;
85 double identify(
double mx,
double my );
93 double mGeoTransform[6];
111 typedef QList<QgsAlignRasterData::RasterItem>
List;
137 void setGridOffset( QPointF offset ) { mGridOffsetX = offset.x(); mGridOffsetY = offset.y(); }
138 QPointF
gridOffset()
const {
return QPointF( mGridOffsetX, mGridOffsetY ); }
143 void setCellSize( QSizeF size ) { mCellSizeX = size.width(); mCellSizeY = size.height(); }
145 QSizeF
cellSize()
const {
return QSizeF( mCellSizeX, mCellSizeY ); }
156 void setClipExtent(
double xmin,
double ymin,
double xmax,
double ymax );
181 bool setParametersFromRaster(
const RasterInfo &rasterInfo,
const QString &customCRSWkt = QString(), QSizeF customCellSize = QSizeF(), QPointF customGridOffset = QPointF( -1, -1 ) );
187 bool setParametersFromRaster(
const QString &filename,
const QString &customCRSWkt = QString(), QSizeF customCellSize = QSizeF(), QPointF customGridOffset = QPointF( -1, -1 ) );
193 bool checkInputParameters();
199 QSize alignedRasterSize()
const;
223 int suggestedReferenceLayer()
const;
228 bool createAndWarp(
const Item &raster );
231 static bool suggestedWarpOutput(
const RasterInfo &info,
const QString &destWkt, QSizeF *cellSize =
nullptr, QPointF *gridOffset =
nullptr,
QgsRectangle *rect =
nullptr );
257 double mClipExtent[4];
262 double mGeoTransform[6];
GdalResampleAlgorithm
Resampling algorithm to be used (equivalent to GDAL's enum GDALResampleAlg)
QgsAlignRaster takes one or more raster layers and warps (resamples) them so they have the same:
ProgressHandler * progressHandler() const
Gets associated progress handler. May be nullptr (default)
int mYSize
Computed raster grid height.
QSizeF cellSize() const
Gets output cell size.
QPointF gridOffset() const
double mGridOffsetX
Destination grid offset - expected to be in interval <0,cellsize)
void setCellSize(QSizeF size)
Sets output cell size.
List mRasters
List of rasters to be aligned (with their output files and other options)
void setDestinationCrs(const QString &crsWkt)
Sets the output CRS in WKT format.
void setGridOffset(QPointF offset)
List rasters() const
Gets list of rasters that will be aligned.
QString mCrsWkt
Destination CRS - stored in well-known text (WKT) format.
int mXSize
Computed raster grid width.
QString destinationCrs() const
Gets the output CRS in WKT format.
double mCellSizeX
Destination cell size.
void setProgressHandler(ProgressHandler *progressHandler)
Assign a progress handler instance. Does not take ownership. nullptr can be passed.
QList< QgsAlignRasterData::RasterItem > List
QString errorMessage() const
Returns the error from a previous run() call.
QgsAlignRasterData::RasterItem Item
void setRasters(const List &list)
Sets list of rasters that will be aligned.
void setCellSize(double x, double y)
Sets output cell size.
QString mErrorMessage
Last error message from run()
Qgis::GdalResampleAlgorithm ResampleAlg
A rectangle specified with double values.
std::unique_ptr< std::remove_pointer< GDALDatasetH >::type, GDALDatasetCloser > dataset_unique_ptr
Scoped GDAL dataset.
Definition of one raster layer for alignment.
Helper struct to be sub-classed for progress reporting.
virtual ~ProgressHandler()=default
virtual bool progress(double complete)=0
Method to be overridden for progress reporting.
Utility class for gathering information about rasters.
QString crs() const
Returns the CRS in WKT format.
gdal::dataset_unique_ptr mDataset
handle to open GDAL dataset
int bandCount() const
Returns the number of raster bands in the file.
QSize rasterSize() const
Returns the size of the raster grid in pixels.
RasterInfo(const RasterInfo &rh)=delete
RasterInfo & operator=(const RasterInfo &rh)=delete
bool isValid() const
Check whether the given path is a valid raster.
QString mCrsWkt
CRS stored in WKT format.