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的安装目录增加到环境变量中去。