我想在我的python脚本中调用一些草模块(例如r.walk模块)。幸运的是,我在https://grasswiki.osgeo.org/wiki/GRASS_and_Python#MS-Windows找到了许多有用的提示。 在这里。
在MS-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
但是,在安装最新版本的WinGRASS-7.0.3和7.0.4后,msys文件夹不存在。我想知道的是当没有msys文件夹时如何使用最新版本设置环境变量。非常感谢。
答案 0 :(得分: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
使用--config path
调用GRASS二进制文件以获取设置参数所需的值。然后,它在GRASS安装中添加PYTHONPATH
(sys.path
)和.../etc/python
。最后,调用grass.script.setup.init
来设置剩余的运行时变量,它还将GRASS会话连接到GRASS数据库,Location和Mapset,如下所示:
import grass.script.setup as gsetup
rcfile = gsetup.init(gisbase, gisdb, location, mapset)
# ... do arbitrary grass
os.remove(rcfile)