ENVI和ArcGIS一体化集成技术使得遥感和GIS实现了一体化的应用。对于一些初学者来说利用Python脚本将ENVI/IDL编写的图像处理功能集成到ArcGIS中,进行一体化的数据处理和分析时可能会遇到一些问题,因为涉及到两种语言(IDL和python)的混合编程。
混合编程成功的关键就是先要保证各类功能程序的正确性。保证IDL的程序,在IDL下调试正确;python脚本在python环境下能正确运行。这是混合编程一体化集成成功运行的先决条件。
论坛上也有不少相关的如何ArcGIS/ENVI一体换开发的教程和实例,博主也是学习也是看着这些教程的学习的,不过网上的所有的教程都是基于ENVI5.0及版本一下的版以下的教程。按道理说是5.0和5.1的差别是不大的是完全是可以使用。但是事情往往不是这样的。博主就是遇到并解决了这个大大坑。
网上下载了各种基于python调用IDL的工具和源码,运行在ENVI5.1平台上竟然报各种错误不能运行……之后各种百度之……google之……还是找不到解决方案。
最后还是乖乖看ENVI帮助解决了问题……
ENVI5.1中与之前版本不同的地方,是你大大意想不到……
envipy.RunTool(toolname, [], inRasterName, outRasterName, kernelSize,Library=r'MyScriptTool.sav')envipy函数里面多了一个参数就是一个空数组参数,之前版本的是没有的,如果不加的话就会提示最后的一个参数未定义。
完整的代码:Python
Python Code example for calling an ENVI DOIT Routine
import envipy, arcpy
# Get input raster
inRasterNam