I am trying to run a rastercalculator through a call to its python method and I 
get the error message core.QgsProcessingException: An error occurred while 
performing the calculation.  Not a very intuitive message.

The variable _cutfill_nodata_file used in the code below is a path to a result 
from a previous geoprocessing call and the file does exist, but the call to 
rastercalculator  seems to have an issue with that file.  If I replace 
_cutfill_nodata_file with 
self._elevation_layer.dataProvider().dataSourceUri()}@1 it works.  Not what I 
want to do, but just wanted to test nothing odd about my expression.  Do that 
basically adds the same layer to itself so I am doubling the cell values.  I 
want to add the values in the file _cutfill_nodata_file, but when I use that 
file, I get the error below. I tried using just the layer name and band which 
is what is used in the GUI raster calculator, but that does not work and I 
expect it to not as I think it only works if the layers are in the layer panel 
which they are not, they are in a temp folder, so I am calling the method using 
the file names.

elevation_30m_cutfill_file = os.path.join(self._temp_dir.name, 
f"{self._elevation_layer.name()}_{self.cutfill_layer.name()}.tif")
elevation_30m_cutfill_name = 
os.path.splitext(os.path.basename(elevation_30m_cutfill_file))[0]
expression = f'\"{self._elevation_layer.dataProvider().dataSourceUri()}@1\" + 
\"{_cutfill_nodata_file}@1\"'
processing.run(
            "qgis:rastercalculator",
            {
                'EXPRESSION':expression,
                'LAYERS':[self._elevation_layer.dataProvider().dataSourceUri()],
                'CELLSIZE':0,
                'EXTENT':None,
                'CRS':None,
                'OUTPUT':elevation_30m_cutfill_file
            }
        )

  File 
"C:\Users\RDTECLAC\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\site_selection\tools\cutfill\cutfill_dialog.py",
 line 745, in _calculate_cutfill_elevation_layer
              processing.run(
              File 
"C:\PROGRA~1/QGIS31~1.16/apps/qgis-ltr/./python/plugins\processing\tools\general.py",
 line 108, in run
              return Processing.runAlgorithm(algOrName, parameters, onFinish, 
feedback, context)
              File 
"C:\PROGRA~1/QGIS31~1.16/apps/qgis-ltr/./python/plugins\processing\core\Processing.py",
 line 174, in runAlgorithm
              ret, results = execute(alg, parameters, context, feedback, 
catch_exceptions=False)
              File 
"C:\PROGRA~1/QGIS31~1.16/apps/qgis-ltr/./python/plugins\processing\gui\AlgorithmExecutor.py",
 line 71, in execute
              results, ok = alg.run(parameters, context, feedback, {}, False)
             _core.QgsProcessingException: An error occurred while performing 
the calculation
_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to