从外面通过python调用草模块

时间:2016-05-10 06:25:17

标签: python windows grass

我想在我的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文件夹时如何使用最新版本设置环境变量。非常感谢。

1 个答案:

答案 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安装中添加PYTHONPATHsys.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)