Thursday, 3 March 2016

How to get r.drain to run in QGIS/GRASS?


I use the GRASS GIS extensions for QGIS (QGIS version 2.12.3 with GRASS 6.4) and I have a problem with the r.drain algorithm: I simply cannot make it work with a given starting point as a vector point.


To put it simple, here is what I try to achieve:



• Insert a cost-raster


• Insert a vector point


• Calculate least cost path


I managed to get it to run when I enter the coordinates for the starting point manually, but since I want to use r.drain in the Model Builder of QGIS, that’s not the solution I am looking for.


Here is the log message:


Algorithmus r.drain - Traces a flow through an elevation model on a raster map. startet...
g.proj -c proj4="+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.455,6.7 +units=m +no_defs"
r.external -r input="C:\Users\M73C7~1.THY\AppData\Local\Temp\processing2dc0bf84d6904a2e98cf88aa7c96f01b\65449bc0c78d4f88bd9ccb81f73dd7db\outputALGGRASSR.COST1.tif" band=1 output=tmp14538092333818 --overwrite -o
g.region n=5728838.9502 s=5642436.07274 e=3563614.80147 w=3517244.6193 res=30
r.drain input="tmp14538092333818" coordinate="0,0" vector_points="T:/End_Netzpunkt.shp" output=output31af3facd469466da5d085a4022c5830 --overwrite

g.region rast=output31af3facd469466da5d085a4022c5830
r.out.gdal -c createopt="TFW=YES,COMPRESS=LZW" input=output31af3facd469466da5d085a4022c5830 output="C:\Users\M73C7~1.THY\AppData\Local\Temp\processing2dc0bf84d6904a2e98cf88aa7c96f01b\87ddeef3905446ef8f464853f27a795f\output.tif"

GRASS commands output:


C:\PROGRA~1\QGISLY~1\bin>set HOME=C:\Users\
C:\PROGRA~1\QGISLY~1\bin>set GISRC=C:\Users\.qgis2\\processing\processing.gisrc
C:\PROGRA~1\QGISLY~1\bin>set GRASS_SH=C:/PROGRA~1/QGISLY~1/apps\msys\bin\sh.exe
C:\PROGRA~1\QGISLY~1\bin>set PATH=C:/PROGRA~1/QGISLY~1/apps\msys\bin;C:/PROGRA~1/QGISLY~1/apps\msys\lib;C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\numpy\core;C:\PROGRA~1\QGISLY~1\apps\qgis\bin;C:\PROGRA~1\QGISLY~1\apps\grass\grass-6.4.3\lib;C:\PROGRA~1\QGISLY~1\apps\grass\grass-6.4.3\bin;C:\PROGRA~1\QGISLY~1\apps\msys\bin;C:\PROGRA~1\QGISLY~1\apps\Python27\Scripts;C:\PROGRA~1\QGISLY~1\bin;C:\Windows\system32;C:\Windows;C:\Windows\WBem;C:\PROGRA~1\QGISLY~1\apps\msys\bin
C:\PROGRA~1\QGISLY~1\bin>set WINGISBASE=C:/PROGRA~1/QGISLY~1/apps\grass\grass-6.4.3
C:\PROGRA~1\QGISLY~1\bin>set GISBASE=C:/PROGRA~1/QGISLY~1/apps\grass\grass-6.4.3

C:\PROGRA~1\QGISLY~1\bin>set GRASS_PROJSHARE=C:/PROGRA~1/QGISLY~1/apps\grass\grass-6.4.3\share\proj
C:\PROGRA~1\QGISLY~1\bin>set GRASS_MESSAGE_FORMAT=gui
C:\PROGRA~1\QGISLY~1\bin>if "" == "" set PATH=C:/PROGRA~1/QGISLY~1/apps\grass\grass-6.4.3\bin;C:/PROGRA~1/QGISLY~1/apps\grass\grass-6.4.3\lib;C:/PROGRA~1/QGISLY~1/apps\msys\bin;C:/PROGRA~1/QGISLY~1/apps\msys\lib;C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\numpy\core;C:\PROGRA~1\QGISLY~1\apps\qgis\bin;C:\PROGRA~1\QGISLY~1\apps\grass\grass-6.4.3\lib;C:\PROGRA~1\QGISLY~1\apps\grass\grass-6.4.3\bin;C:\PROGRA~1\QGISLY~1\apps\msys\bin;C:\PROGRA~1\QGISLY~1\apps\Python27\Scripts;C:\PROGRA~1\QGISLY~1\bin;C:\Windows\system32;C:\Windows;C:\Windows\WBem;C:\PROGRA~1\QGISLY~1\apps\msys\bin
C:\PROGRA~1\QGISLY~1\bin>if not "" == "" set PATH=C:/PROGRA~1/QGISLY~1/apps\grass\grass-6.4.3\bin;C:/PROGRA~1/QGISLY~1/apps\grass\grass-6.4.3\lib;;C:/PROGRA~1/QGISLY~1/apps\grass\grass-6.4.3\bin;C:/PROGRA~1/QGISLY~1/apps\grass\grass-6.4.3\lib;C:/PROGRA~1/QGISLY~1/apps\msys\bin;C:/PROGRA~1/QGISLY~1/apps\msys\lib;C:\PROGRA~1\QGISLY~1\apps\Python27\lib\site-packages\numpy\core;C:\PROGRA~1\QGISLY~1\apps\qgis\bin;C:\PROGRA~1\QGISLY~1\apps\grass\grass-6.4.3\lib;C:\PROGRA~1\QGISLY~1\apps\grass\grass-6.4.3\bin;C:\PROGRA~1\QGISLY~1\apps\msys\bin;C:\PROGRA~1\QGISLY~1\apps\Python27\Scripts;C:\PROGRA~1\QGISLY~1\bin;C:\Windows\system32;C:\Windows;C:\Windows\WBem;C:\PROGRA~1\QGISLY~1\apps\msys\bin
C:\PROGRA~1\QGISLY~1\bin>set GRASS_VERSION=6.4.0
C:\PROGRA~1\QGISLY~1\bin>if not "" == "" goto langset
C:\PROGRA~1\QGISLY~1\bin>FOR /F "usebackq delims==" %i IN (`"C:/PROGRA~1/QGISLY~1/apps\grass\grass-6.4.3\etc\winlocale"`) DO @set LANG=%i
C:\PROGRA~1\QGISLY~1\bin>set PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY
C:\PROGRA~1\QGISLY~1\bin>set PYTHONPATH=;C:/PROGRA~1/QGISLY~1/apps\grass\grass-6.4.3\etc\python;C:/PROGRA~1/QGISLY~1/apps\grass\grass-6.4.3\etc\wxpython\n
C:\PROGRA~1\QGISLY~1\bin>g.gisenv.exe set="MAPSET=PERMANENT"

C:\PROGRA~1\QGISLY~1\bin>g.gisenv.exe set="LOCATION=temp_location"
C:\PROGRA~1\QGISLY~1\bin>g.gisenv.exe set="LOCATION_NAME=temp_location"
C:\PROGRA~1\QGISLY~1\bin>g.gisenv.exe set="GISDBASE=C:\Users\M73C7~1.THY\AppData\Local\Temp\processing2dc0bf84d6904a2e98cf88aa7c96f01b\grassdata"
C:\PROGRA~1\QGISLY~1\bin>g.gisenv.exe set="GRASS_GUI=text"
C:\PROGRA~1\QGISLY~1\bin>g.proj -c proj4="+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.455,6.7 +units=m +no_defs"
GRASS_INFO_MESSAGE(3236,1): Die Standard Region wurde auf die neue Projektion aktualisiert. Wenn Sie aber mehrere Mapsets haben, sollten Sie `g.region -d` in jedem ausführen, um die Einstellungen von der Standardregion zu übernehmen.
GRASS_INFO_END(3236,1)
GRASS_INFO_MESSAGE(3236,2): Projektionsinformationen aktualisiert
GRASS_INFO_END(3236,2)
C:\PROGRA~1\QGISLY~1\bin>r.external -r input="C:\Users\M73C7~1.THY\AppData\Local\Temp\processing2dc0bf84d6904a2e98cf88aa7c96f01b\65449bc0c78d4f88bd9ccb81f73dd7db\outputALGGRASSR.COST1.tif" band=1 output=tmp14538092333818 --overwrite -o

GRASS_INFO_WARNING(972,1): Übersteuere die Überprüfung der Projektion.
GRASS_INFO_END(972,1)
GRASS_INFO_MESSAGE(972,2): Importing band 1 of 1...
GRASS_INFO_END(972,2)
GRASS_INFO_MESSAGE(972,3): Link zur Rasterkarte erzeugt
GRASS_INFO_END(972,3)
C:\PROGRA~1\QGISLY~1\bin>g.region n=5728838.9502 s=5642436.07274 e=3563614.80147 w=3517244.6193 res=30
C:\PROGRA~1\QGISLY~1\bin>r.drain input="tmp14538092333818" coordinate="0,0" vector_points="T:/End_Netzpunkt.shp" output=output31af3facd469466da5d085a4022c5830 --overwrite
GRASS_INFO_MESSAGE(3472,1): Oberflächen-/Hydrologischer-Abfluß ausgewählt
GRASS_INFO_END(3472,1)

GRASS_INFO_WARNING(3472,2): Startpunkt 1 ist außerhalb der aktuellen Region.
GRASS_INFO_END(3472,2)
Ungültiger Dateiname. Das Zeichen ist nicht erlaubt.
GRASS_INFO_ERROR(3472,3): Vektorkarte nicht gefunden.
GRASS_INFO_END(3472,3)
C:\PROGRA~1\QGISLY~1\bin>g.region rast=output31af3facd469466da5d085a4022c5830
GRASS_INFO_ERROR(3560,1): Rasterkarte konnte nicht gefunden werden.
GRASS_INFO_END(3560,1)
C:\PROGRA~1\QGISLY~1\bin>r.out.gdal -c createopt="TFW=YES,COMPRESS=LZW" input=output31af3facd469466da5d085a4022c5830 output="C:\Users\M73C7~1.THY\AppData\Local\Temp\processing2dc0bf84d6904a2e98cf88aa7c96f01b\87ddeef3905446ef8f464853f27a795f\output.tif"
GRASS_INFO_ERROR(1796,1): Rasterkarte oder Gruppe nicht gefunden.

GRASS_INFO_END(1796,1)
C:\PROGRA~1\QGISLY~1\bin>exit
Converting outputs
Lade Ergebnis Layer

The following layers were not correctly generated. Least cost path You can check the log messages to find more information about the execution of the algorithm




No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...