IDL调用ENVI-FLAASH大气校正异常退出解决办法
最近把IDL编写的FLAASH大气校正模块嵌到了项目里,今天几类卫星的测试数据收到了,就着手测试了大气校正功能是否正常。测试了GF1(高分一号)、GF2(高分二号)、ZY3(资源三号-01a)数据都没有问题,可是到了BJ2(北京二号)大气校正界面弹出了几秒就莫名其妙的关闭了,百思不得其解,于是记录下排除错误和解决问题的方法。
在ENVI中打开BJ2辐射定标数据,发现BJ2缺少半宽高度值fwhm,但是我的代码里明确的处理这样的情况,即每个波段都设为-1,因此可以排除是因为缺少fwhm而产生的错误。(但我还是编辑了头文件,把每个波段的FWHM设置下,结果还是报错)
把同样的参数在ENVI中设置好,进行大气校正,结果ENVI正常运行,并没有报错。。。看来还是我的IDL程序有问题,立即查看大气校正文件输出目录(就是Flaash中的modtran_directory)。在这里,我觉得大家不管是用IDL调用FLAASH,还是直接在ENVI中操作FLAASH这个目录都可以保留,这里面包含大气校正参数信息及大气校正日志信息,方便出错查看,毕竟有的错误不会在界面中显示。
输出目录中_journal.txt就是日志信息,_template.txt就是模板信息,我打开日志信息,发现报了如下的错误:
字面意思就是一些通道超出了范围,难道是BJ2辐射定标后的结果有异常值,超出了MODTRAN模型接受的范围,我立即统计了下各波段的信息。
可以看出辐射定标结果是正常的,都在常见的值范围。现在只可能出错在大气校正参数设置上了,打开两份模板txt文件对比下看区别在哪,翻了半天。。。发现了只有一个地方不一样,就是一个是nanometer,一个是Nanometers。(左边是ENVI下大气校正参数模板)
这个wavelength_units意思就是光谱长度单位,一般来说正常的影像光谱范围都会用微米或者纳米作为光谱长度单位,ENVI帮助文档中也曾写过,一般影像头文件中会包含这个参数,当然我的代码就是直接从头文件中读取出来:
metadata = Raster.Metadata
wavelength_units = metadata['WAVELENGTH UNITS']
不会是这个单位问题导致的吧,赶紧加了一句代码
wavelength_units = wavelength_units EQ 'Micrometers'?'Micrometers':'nanometer'
(这句话只考虑了两种情况,你们可以自己多加一些判断)
编译一下,再次运行一下,没有报错,正确的完成了大气校正,查看结果也是正确的。看来错误就是出在这里。。。
那之前的GF1、GF2、ZY3怎么没有出错,我打开GF2的ENVI执行的大气校正参数模板与我程序生成的大气校正参数模板对比下,发现它的光谱范围是μm即Micrometers,微米。(左边是ENVI下大气校正参数模板)
那么问题来了,为什么这个不一样不报错,能执行。。。有点让人摸不清头脑
IDL调用ENVI-FLAASH大气校正异常退出解决办法相关推荐
- VS2017出现调用的目标发生了异常的解决办法
VS每次运行项目时都会弹出一个错误框说是调用的目标发生了异常,虽然项目可以运行,但是心里很不爽.网上试过很多办法,包括修改windir的环境变量的值,修改注册表都没有解决.于是下决心把VS重新修复一下 ...
- ENVI对GF-5高光谱数据进行FLAASH大气校正
照博客:https://www.ixxin.cn/2019/05/10/gf5_ahsi_ac/ 1.辐射定标 ENVI添加中国卫星支持插件,打开GF-5高光谱.xml文件: Metadata中有Ga ...
- ENVI对LandSat8 (OLI)图像 FLAASH大气校正 input radiance image data 报错 no valid data encountered in this file
问题描述:用ENVI5.3.1对LandSat8 (OLI)图像 FLAASH大气校正 input radiance image data 报错 no valid data encountered i ...
- landsat TM数据辐射定标和flaash大气校正
才发现我写了那么多都是废话,想知道landsat TM 辐射定标和大气校正的,请移步这里:http://blog.sina.com.cn/s/blog_764b1e9d0102v59e.html 有视 ...
- FLAASH大气校正过程中内存资源不足解决方法
数据介绍及数据其他操作详见此博客 ENVI5.3.1使用Landsat 8影像进行预处理及分析实例操作 20220212更新: 注意FLAASH大气校正的海拔,如果设置为0也是有可能报错的(我在做海面 ...
- MODISL1B数据FLAASH大气校正
MODIS数据是著名的大尺度低空间分辨率数据源,一般用于大范围监测.宏观信息的快速提取.在MODIS数据预处理时,最常做的是几何校正.对MODIS数据进行几何校正的工具很多,诸如MCTK ...
- JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法
JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法 参考文章: (1)JNI调用native方法出现 ...
- uni-app开发 常见异常和解决办法
文章目录 前言 1.调用微信开发者工具报错IDE service port disabled 2.@import导入外部样式失效 3.v-for列表渲染指定`:key`属性报错Duplicate ke ...
- Android 常见异常及解决办法
Ø 前言 本文主要记录 Android 的常见异常及解决办法,以备以后遇到相同问题时可以快速解决. 1. java.lang.NullPointerException: Attempt to i ...
- Delphi的“Invalid pointer operation“异常的解决办法
Delphi的"Invalid pointer operation"异常的解决办法 参考文章: (1)Delphi的"Invalid pointer operation& ...
最新文章
- 计算机视觉专家:如何从C++转Python
- word打出来的字体总是变宋体
- PhpMyAdmin导入数据库大小限制?
- 通过句柄找到广告弹窗进程
- python循环实验心得_2019.06.18学习python循环总结
- glide工具类。加载显示原图片,显示圆角图片,gif图标显示
- BYOD提升企业生产力的5种方式
- ueditor样式过滤问题
- 关于vue 项目页面打包后首次页面加载特别缓慢的原因及解决方案
- 天堂2单机启动不了mysql_天堂2第8章单机版启动问题
- 主机一拖二 linux,使opensuse12.1实现一拖二(拖机)的双人使用系统(上)
- 主板24pin接口详图_特殊装机:24pin主板用20pin的供电
- C语言输出三位数的水仙花数
- 维度灾难--通过Python理解高维空间欧氏距离与余弦相似度失效
- 最好用的 6 款 Vue 实时消息提示通知(Message/Notification)组件推荐与测评
- http与htpps的区别
- 电容笔有必要买吗?双十一性价比高的电容笔推荐
- python namedtuple用法_Python namedtuple
- MATLAB去除数据中的异常值、离群值
- Kibana:Kibana 入门 (二)