【问题标题】:call grass modules via python from outside从外部通过 python 调用草模块
【发布时间】:2016-05-10 06:25:17
【问题描述】:

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

【问题讨论】:

    标签: python windows grass


    【解决方案1】:

    比官方文档中的 wiki 更好的指南:

    您只需要指定(路径)您的 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 数据库、位置和地图集,如下所示:

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

    【讨论】:

    • 谢谢。我成功了。
    • @fly,不客气。但请注意,StackExchange 论坛的工作方式是,如果它为您解决了问题,您就接受答案,如果您认为它是一个好的答案,您就投赞成票。然后很清楚哪些问题得到了回答,哪些答案是好的。这就是 SE 的特别之处,并且与其他论坛不同,您需要阅读整个讨论以了解最佳答案或解决方案。
    猜你喜欢
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    相关资源
    最近更新 更多