[Qgis-user] Raster calculator script failing for multiple rasters

Nicolas Cadieux nicolas.cadieux at archeotec.ca
Tue Sep 13 05:15:52 PDT 2016


Hi,

I have never use the Qgis raster calculator via Python so I can't help there. What is the problem? Does Qgis crash?  If so, the rasters may be to big for the memory.   You mentioned the rasters were very big and that may be the problem.  I recommend you test the calculation with smaller rasters.  I think they are working for a solution for the big raster math.

Saga and gdal calculator may help.  Saga will probably try to load everything in memory an may crash.  Gdal is made to calculate very big rasters but layers must be in the same CRS and have the same pixel posting and extent.  You can use it direction in the Osgeo command prompt or via processing.

Nicolas


Envoyé de mon iPad

> Le 13 sept. 2016 à 05:42, ROMAN HG [via OSGeo.org] <ml-node+s1560n5285491h82 at n6.nabble.com> a écrit :
> 
> Hi,
> 
> I'm trying to do raster calculations with big and multiple rasters. I am new to python, but I managed to use the QgsRasterCalculator algorithm to do the average of three rasters.
> 
> The problem comes when I introduce a forth layer and try to do a more complex equation:
> 
> #calculating c4s ( [c1-c2]*[c0-c3] )
> 
>     #F1_30
> A=processing.getObjectFromUri(path + "/F1_30c1.tif")
> B=processing.getObjectFromUri(path + "/F1_c2.tif")
> C=processing.getObjectFromUri(path + "/F1_30c0.tif")
> D=processing.getObjectFromUri(path + "/F1_c3.tif")
> 
> entries=[]
> rasA=QgsRasterCalculatorEntry()
> rasA.ref='A at 1'
> rasA.raster=A
> rasA.bandNumber=1
> entries.append(rasA)
> 
> rasB=QgsRasterCalculatorEntry()
> rasB.ref='B at 1'
> rasB.raster=B
> rasB.bandNumber=1
> entries.append(rasB)
> 
> rasC=QgsRasterCalculatorEntry()
> rasC.ref='C at 1'
> rasC.raster=C
> rasC.bandNumber=1
> entries.append(rasC)
> 
> rasD=QgsRasterCalculatorEntry()
> rasD.ref='D at 1'
> rasD.raster=D
> rasD.bandNumber=1
> entries.append(rasD)
> 
> F1_30c4=QgsRasterCalculator('(( A at 1 - B at 1 ) * ( C at 1 - D at 1 ))', path + '/F1_30c4.tif', 'GTiff', base.extent(), base.width(), base.height(), entries).processCalculation()
> 
> I think that the problem is recognising the formula. I have tried it on the console doing several changes and it doesnt work.
> 
> Is it possible to do this operation with QgsRasterCalculator?? Or how can I use the gdal_calc algorithm or the saga raster calculator??
> 
> 
> Thanks all
> 
> _______________________________________________ 
> Qgis-user mailing list 
> [hidden email] 
> List info: http://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-user 
> 
> If you reply to this email, your message will be added to the discussion below:
> http://osgeo-org.1560.x6.nabble.com/Raster-calculator-script-failing-for-multiple-rasters-tp5285491.html
> To start a new topic under Quantum GIS - User, email ml-node+s1560n4125267h38 at n6.nabble.com 
> To unsubscribe from Quantum GIS - User, click here.
> NAML




--
View this message in context: http://osgeo-org.1560.x6.nabble.com/Raster-calculator-script-failing-for-multiple-rasters-tp5285491p5285530.html
Sent from the Quantum GIS - User mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20160913/f5a2f0d1/attachment.html>


More information about the Qgis-user mailing list