struct QgsRasterCalculatorEntry { %TypeHeaderCode #include %End QString ref; //name QgsRasterLayer* raster; //pointer to rasterlayer int bandNumber; //raster band number }; /** Raster calculator class*/ class QgsRasterCalculator { %TypeHeaderCode #include %End public: //! Result of the calculation enum Result { Success, /*!< Calculation sucessful */ CreateOutputError, /*!< Error creating output data file */ InputLayerError, /*!< Error reading input layer */ Cancelled, /*!< User cancelled calculation */ ParserError, /*!< Error parsing formula */ MemoryError, /*!< 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& 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& 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*/ int processCalculation( QProgressDialog* p = 0 ); };