/usr/include/qgis/qgsrastercalculator.h is in libqgis-dev 2.18.17+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | /***************************************************************************
qgsrastercalculator.h - description
---------------------
begin : September 28th, 2010
copyright : (C) 2010 by Marco Hugentobler
email : marco dot hugentobler at sourcepole dot ch
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef QGSRASTERCALCULATOR_H
#define QGSRASTERCALCULATOR_H
#include "qgsfield.h"
#include "qgsrectangle.h"
#include "qgscoordinatereferencesystem.h"
#include <QString>
#include <QVector>
#include "gdal.h"
class QgsRasterLayer;
class QProgressDialog;
struct ANALYSIS_EXPORT QgsRasterCalculatorEntry
{
QString ref; //name
QgsRasterLayer* raster; //pointer to rasterlayer
int bandNumber; //raster band number
};
/** \ingroup analysis
* Raster calculator class*/
class ANALYSIS_EXPORT QgsRasterCalculator
{
public:
//! Result of the calculation
enum Result
{
Success = 0, /*!< Calculation sucessful */
CreateOutputError = 1, /*!< Error creating output data file */
InputLayerError = 2, /*!< Error reading input layer */
Cancelled = 3, /*!< User cancelled calculation */
ParserError = 4, /*!< Error parsing formula */
MemoryError = 5, /*!< Error allocating memory for result */
};
/** QgsRasterCalculator constructor.
* @param formulaString formula for raster calculation
* @param outputFile output file path
* @param outputFormat output file format
* @param outputExtent output extent. CRS for output is taken from first entry in rasterEntries.
* @param nOutputColumns number of columns in output raster
* @param nOutputRows number of rows in output raster
* @param rasterEntries list of referenced raster layers
*/
QgsRasterCalculator( const QString& formulaString, const QString& outputFile, const QString& outputFormat,
const QgsRectangle& outputExtent, int nOutputColumns, int nOutputRows, const QVector<QgsRasterCalculatorEntry>& rasterEntries );
/** QgsRasterCalculator constructor.
* @param formulaString formula for raster calculation
* @param outputFile output file path
* @param outputFormat output file format
* @param outputExtent output extent, CRS is specified by outputCrs parameter
* @param outputCrs destination CRS for output raster
* @param nOutputColumns number of columns in output raster
* @param nOutputRows number of rows in output raster
* @param rasterEntries list of referenced raster layers
* @note added in QGIS 2.10
*/
QgsRasterCalculator( const QString& formulaString, const QString& outputFile, const QString& outputFormat,
const QgsRectangle& outputExtent, const QgsCoordinateReferenceSystem& outputCrs, int nOutputColumns, int nOutputRows, const QVector<QgsRasterCalculatorEntry>& rasterEntries );
/** Starts the calculation and writes new raster
@param p progress bar (or 0 if called from non-gui code)
@return 0 in case of success*/
//TODO QGIS 3.0 - return QgsRasterCalculator::Result
int processCalculation( QProgressDialog* p = nullptr );
private:
//default constructor forbidden. We need formula, output file, output format and output raster resolution obligatory
QgsRasterCalculator();
/** Opens the output driver and tests if it supports the creation of a new dataset
@return nullptr on error and the driver handle on success*/
GDALDriverH openOutputDriver();
/** Opens the output file and sets the same geotransform and CRS as the input data
@return the output dataset or nullptr in case of error*/
GDALDatasetH openOutputFile( GDALDriverH outputDriver );
/** Sets gdal 6 parameters array from mOutputRectangle, mNumOutputColumns, mNumOutputRows
@param transform double[6] array that receives the GDAL parameters*/
void outputGeoTransform( double* transform ) const;
QString mFormulaString;
QString mOutputFile;
QString mOutputFormat;
/** Output raster extent*/
QgsRectangle mOutputRectangle;
QgsCoordinateReferenceSystem mOutputCrs;
/** Number of output columns*/
int mNumOutputColumns;
/** Number of output rows*/
int mNumOutputRows;
/***/
QVector<QgsRasterCalculatorEntry> mRasterEntries;
};
#endif // QGSRASTERCALCULATOR_H
|