Saga-Python笔记

  要使用saga的python接口,先要安装配置。

1、下载saga、安装python,注意一定要保持都是32位或64位,否则调用不了

2、将saga_api文件考到system32目录下,将saga安装目录添加到环境变量path中去,新建一个环境变量,变量名和变量值分别为:SAGA_32和saga安装目录,将saga_2.2.1_win32_python27目录下的site-packages目录下的文件都拷到python对应的文件夹下去。

  调用模块

saga模块的调用有两种方法:(1)        saga_api.SG_Get_Module_Library_Manager().Add_Library(os.environ['SAGA_32' ] + '/modules/grid_calculus.dll')'''
 (2)  os.environ['PATH'] = os.environ['PATH'] + ';' + os.environ['SAGA_32'] + '/dll'
        saga_api.SG_Get_Module_Library_Manager().Add_Directory(os.environ['SAGA_32' ] + '/modules', False)

后面一种会将所有的模块均导入,而第一种仅导入对应的模块,个人猜想可能是由于我们要导入的某个模块依赖于其他模块,所以才需要用第二种将所有的模块均导入,仅作为猜想,没有证实过。经过上面其中一种后

    m    = saga_api.SG_Get_Module_Library_Manager().Get_Module(saga_api.CSG_String('grid_calculus'), 6)

  参数调用

一般情况下通过p    = m.Get_Parameters(),然后依次给参数赋值,注意参数的ID一定要写正确,我们可以再Saga软件中看到相应模块的参数ID,也可以自己调用函数查看,

有些特殊的情况可能会用到p    = m.Get_Parameters(1)之类的得到p后,再继续给参数赋值

  实例代码

saga2.2.1中的第一个python例子也就是grid_create_dummy.py应该是有问题:

从p    = m.Get_Parameters(saga_api.CSG_String('TARGET'))这句开始,该模块根本没有TARGET这一ID,而且后面三句参数赋值的ID也是错误的,应该要在前面加上TARGET_

 

程序os.environ['PATH']一句表示将saga的安装目录增加到环境变量中去。

posted @ 2015-09-24 15:12  满江鱼  阅读(733)  评论(0编辑  收藏  举报