ENVI/ArcGIS桌面一体化集成开发问题小结

0
分享 2016-06-14
ENVI/ArcGIS桌面一体化集成开发问题小结
ENVI和ArcGIS一体化集成技术使得遥感和GIS实现了一体化的应用。对于一些初学者来说利用Python脚本将ENVI/IDL编写的图像处理功能集成到ArcGIS中,进行一体化的数据处理和分析时可能会遇到一些问题,因为涉及到两种语言(IDL和python)的混合编程。
混合编程成功的关键就是先要保证各类功能程序的正确性。保证IDL的程序,在IDL下调试正确;python脚本在python环境下能正确运行。这是混合编程一体化集成成功运行的先决条件。
现在将遇到的问题和解决方法给罗列一些,供大家参考。
1、错误类型,如下图所示。虽然提示错误,但是能生成正常的结果。
<Expression> STRING = 'Unable to invoke method on NULL object reference: <OBJREF (<NullObject>)>.'

错误原因:在程序中添加了如下代码
envi,/RESTORE_BASE_SAVE_FILES
ENVI_BATCH_INIT
…………………….
ENVI_BATCH_EXIT
解决方法:
(1)去掉ENVI_BATCH_EXIT即可。
(2)去掉初始化ENVI的代码(上述代码)。因为python脚本中必须导入envipy,而envipy就是初始化和恢复ENVI的。

2、错误类型:Python脚本有错误。如下图,

错误原因:是“IndentationError: unexpected indent”,脚本代码中,第19行的起始位置有空格。
解决方法:去掉空格即可。在python的代码中,不论是在命令行还是文本框中的程序都必须顶格开始。(一条语句换行除外)。

3、错误类型:ImportError: No module named arcpy
错误原因:python脚本中,只有在ArcGIS10及以上的版本才能调用Arcpy。
解决方法:ArcGIS9系列可以参照ENVI for ArcGIS的帮助文档(在ENVI4.8及以上的版本中)。

4、错误类型:在arctoolbox中无法使用ENVItool中的工具。
错误原因:ENVI许可问题。(正版许可没有问题)。
解决方法:更换正版的ENVI许可。经测试正版的ENVI许可,在arcgis93系列及以上版本,运行没问题。

如果你遇到了其他问题,请仔细研读博客《ArcGIS中自定义ENVI/IDL图像处理工具》http://blog.sina.com.cn/s/blog_764b1e9d0100pqii.html和本文中提到的注意事项。
同样地,如果有其他问题,解决或者未解决的,可以贴上来,大家分享。

文章来源:http://blog.sina.com.cn/s/blog_764b1e9d0100xhh0.html

0 个评论

要回复文章请先登录注册