2016-05-10 52 views
0

我想在我的python腳本中調用一些草地模塊(例如r.walk模塊)。幸運的是,我在https://grasswiki.osgeo.org/wiki/GRASS_and_Python#MS-Windows上找到了很多有用的提示。 這是。從外部通過python調用草地模塊

微軟Windows 爲了通過Python從外部使用GRASS的功能,一些環境變量必須設置:
GISBASE= C:\GRASS-64 GISRC= C:\Documents and Settings\user\.grassrc6 LD_LIBRARY_PATH= C:\GRASS-64\lib PATH= C:\GRASS-64\etc;C:\GRASS-64\etc\python;C:\GRASS-64\lib;C:\GRASS-64\bin;C:\GRASS-64\extralib;C:\GRASS-64\msys\bin;C:\Python26; PYTHONLIB= C:\Python26 PYTHONPATH= C:\GRASS-64\etc\python GRASS_SH= C:\GRASS-64\msys\bin\sh.exe

然而,MSYS文件夾是不存在的我安裝了最新版本後, WinGRASS-7.0.3和7.0.4。我想知道的是如何在沒有msys文件夾時使用最新版本設置環境變量。非常感謝。然後

回答

1

更好地引導維基是官方文檔中:

你只需要指定(路徑)的GRASS二進制文件。這就像在Linux上的grass70,在Mac上的/Applications/GRASS/GRASS-7.0.app/和在MS Windows上的C:\OSGeo4Win\grass70.bat。一般來說,這取決於你如何安裝GRASS GIS。 在MS Windows上觀察OSGeo4W安裝和獨立安裝程序之間的區別。他們每個人都會將GRASS安裝到不同的目錄(您也可以在安裝嚮導中指定目錄)。

樣板代碼使用subprocess.Popen調用GRASS二進制文件--config path以獲取設置參數所需的值。然後它在GRASS安裝中增加了PYTHONPATHsys.path)與.../etc/python。最後,grass.script.setup.init被稱爲其中規定了剩餘運行時間變量,它也是GRASS會話連接到GRASS數據庫,位置和地圖集,看起來像這樣:

import grass.script.setup as gsetup 
rcfile = gsetup.init(gisbase, gisdb, location, mapset) 
# ... do arbitrary grass 
os.remove(rcfile) 
+0

感謝。我做到了。 – fly

+0

@fly,不客氣。但請注意,StackExchange論壇的工作方式是,如果您爲自己解決問題而接受答案,並且如果您認爲這是一個好的答案,則可以對其提供支持。那麼很清楚哪些問題得到解答,哪些答案是好的。這就是讓SE與衆不同的論壇,您需要閱讀整個討論以瞭解什麼是最佳答案或解決方案。 – wenzeslaus