<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.StileMessaggioDiPostaElettronica17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 2.0cm 2.0cm 2.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="IT" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I’m new to this list, so I don’t know if this is the right place to post my issue…. Sorry for that.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">However, my problem is about running processing algorithm directly from a python script.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I’m using QGis 2.8 under Windows 7, and python correctly installed under Qgis directory.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">This is the problem: if I run a GRASS algorithm using the GUI, everything is ok.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">The same algorithm, with the same source input file and applying the same parameters… it fails when called by processing through a (very simple!) Python script.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Now, after several tests, I’m also using the point shape file embedded under processing/test folder (just to be sure of integrity of input file).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">If you see below, I’m also looking at processing.log, and what is surprising is that logs seem exactly the same !!!<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I post below the short code I’m using and the log file I got.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Again, I remark that the algorithm run from GUI is perfectly working :-0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Any help or suggestion?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thank you so much in advance.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Iacopo<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">My python code to run Inverse Distance Squared Weighting interpolator (GRASS).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">---<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">from PyQt4.QtGui import *<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">from qgis.core import *<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">from qgis.gui import *<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">from PyQt4.QtCore import *<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">import processing<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># Define the data source<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">vl = iface.activeLayer()<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">if vl.isValid() :<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    print 'Layer is valid!'<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># Extent<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ext = vl.extent()<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">xmin = ext.xMinimum()<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ymin = ext.yMinimum()<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">xmax = ext.xMaximum()<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ymax = ext.yMaximum()<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># Name of the field<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">myfield = 'PT_NUM_A'<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># Run Grass alg<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">out_ras = processing.runalg("grass:v.surf.idw", vl , 12 ,2.0, myfield , False,   "%f , %f, %f, %f "% (xmin , xmax , ymin , ymax), 10.0, -1, 0.001, None)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># retrieve the raster output and load it in Qgis:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">fileoutput= out_ras['output']<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">fileInfo = QFileInfo(fileoutput)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">baseName = fileInfo.baseName()<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">rlayer = QgsRasterLayer(fileoutput, baseName)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">if rlayer.isValid():<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    QgsMapLayerRegistry.instance().addMapLayer( rlayer )<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">else:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">     print 'Raster layer is not valid!'   <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">****<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Log info I got from processing.log<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">---<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Using GUI:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">---<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ALGORITHM|Tue Jul 21 2015 14:39:01|processing.runalg("grass:v.surf.idw","C:\\Users\\iacopo.borsi\\.qgis2\\python\\plugins\\processing\\tests\\data\\points.shp",12,2,"PT_NUM_A",False,"270778.60198,270855.745301,4458921.97814,4458983.8488",10,-1,0.0001,None)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">INFO|Tue Jul 21 2015 14:39:01|GRASS execution commands|g.proj -c proj4="+proj=utm +zone=30 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defs"|v.in.ogr min_area=0.0001 snap=-1 dsn="C:\Users\iacopo.borsi\.qgis2\python\plugins\processing\tests\data"
 layer=points output=tmp14374823414715 --overwrite -o|g.region n=4458983.8488 s=4458921.97814 e=270855.745301 w=270778.60198 res=10|v.surf.idw input=tmp14374823414715 npoints="12" power="2" column="PT_NUM_A" output=outputbcda77408a344d7a98a6046195dfd47f --overwrite|g.region
 rast=outputbcda77408a344d7a98a6046195dfd47f|r.out.gdal -c createopt="TFW=YES,COMPRESS=LZW" input=outputbcda77408a344d7a98a6046195dfd47f output="C:\Users\IACOPO~1.BOR\AppData\Local\Temp\processing\03d92082eed7415b98b492b4eed62250\output.tif"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">---<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Using my script, launched by Python Console within QGis:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">--- <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ALGORITHM|Tue Jul 21 2015 14:39:44|processing.runalg("grass:v.surf.idw","C:\\Users\\iacopo.borsi\\.qgis2\\python\\plugins\\processing\\tests\\data\\points.shp",12,2,"PT_NUM_A",False,"270778.601980 , 270855.745301, 4458921.978139,
 4458983.848803 ",10,-1,0.0001,None)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">INFO|Tue Jul 21 2015 14:39:44|GRASS execution commands|g.proj -c proj4="+proj=utm +zone=30 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defs"|v.in.ogr min_area=0.001 snap=-1 dsn="C:\Users\iacopo.borsi\.qgis2\python\plugins\processing\tests\data"
 layer=points output=tmp14374823847716 --overwrite -o|g.region n= 4458983.848803  s= 4458921.978139 e= 270855.745301 w=270778.601980  res=10|v.surf.idw input=tmp14374823847716 npoints="12" power="2" column="PT_NUM_A" output=output86e01c9844a44af89394d73b4f384b5e
 --overwrite|g.region rast=output86e01c9844a44af89394d73b4f384b5e|r.out.gdal -c createopt="TFW=YES,COMPRESS=LZW" input=output86e01c9844a44af89394d73b4f384b5e output="C:\Users\IACOPO~1.BOR\AppData\Local\Temp\processing\96562ff5412640439c7dd19dffe60ac0\output.tif"<o:p></o:p></span></p>
</div>
</body>
</html>