ENVI/IDL二次开发
之遥感影像处理入门练习
1,读取一幅多波段影像的中心点光谱曲线,并plot出来,用中文宋体标示出其经纬度;
训练内容:Envi获取影像投影参数,像素点地理位置的方法;熟悉Plot的参数设置;
推荐调用函数:
envi_pickfile,
envi_open_file
Envi_file_query
Envi_get_map_info
ENVI_PROJ_CREATE
ENVI_CONVERT_FILE_COORDINATES
ENVI_CONVERT_PROJECTION_COORDINATES
PLot
ENVI_FILE_MNG
2,读取一景TM影像的3、4波段,计算NDVI,用灰度图显示出来,并保存为Envi格式文件;
推荐调用函数:
envi_pickfile,
envi_open_file
Envi_file_query
Envi_get_map_info
Envi_get_data
Float
window
Tv
tvscl
Envi_write_envi_file
ENVI_FILE_MNG
(以上为Envi读写文件常用函数,后文不再详述)
3,读取一景CBERS影像的4个波段,根据LVB变换原理,计算其L、V、B分量并保存;
推荐调用函数:
envi_pickfile,
envi_open_file
Envi_file_query
Envi_get_map_info
Envi_get_data
Envi_get_slice
Float
Poly_fit
Envi_write_envi_file
ENVI_FILE_MNG
4,读取2个时相的ETM+影像,去除洪湖湖面范围内的条带(多个波段);
推荐调用函数:
envi_pickfile,
File_search
File_basename
File_dirname
envi_open_file
Envi_file_query
Envi_get_map_info
Envi_get_data
Float
window
Tv
tvscl
Envi_write_envi_file
ENVI_FILE_MNG
5,读取一幅shapefile矢量文件,据此建立一个ROI(Region of Interest),并把边界点输出为csv格式文件,可以选省界shp(细节我也不清);
推荐调用函数:
IDLffShape
envi_pickfile,
File_search
File_basename
File_dirname
envi_open_file
ENVI_DEFINE_ROI
ENVI_CREATE_ROI
ENVI_SAVE_ROIS
Openw
Printf,(format参数很关键)
Envi_file_query
Envi_get_map_info
Float
ENVI_FILE_MNG
6,Envi调用MATLAB神经网络工具箱,进行水质反演(暂时不做);
附加学习MATLAB,nntool工具箱
7,Envi调用6S 大气纠正程序,对ETM+蓝光波段进行大气纠正;
推荐调用函数:
Spawn
Openr
Readf
While
Strpos
Strmid
其他Envi文件读写常用函数,见前面的练习。
附加学习
Dos命令行语法
8,Envi调用MRT,批量拼接、重投影、裁切MODIS产品(以MOD11为例);
推荐调用函数:
Envi文件读写常用函数,见前面的练习。
String
附加学习:
Dos的for循环
9,动态添加Envi菜单,创建简单的GUI界面(可稍后再做)
推荐调用函数:
ENVI_DEFINE_MENU_BUTTON
附加学习:
菜单事件处理pro编写
Widget起头函数的熟悉(见附录II);
说明:
数字图像处理一般包含三种类型的运算:点运算,邻域运算(窗口运算),波段运算。
1)点运算:以像素为运算单位,一般常见于多波段影像。如提取像素光谱曲线z-profile;
2)邻域运算(窗口运算):以各种n×n窗口滤波和平滑为代表,像素周围一定距离内的像素(可加其他附加条件),一起参与运算,例如锐化,sobel锐化,坡度提取等等;
3)波段运算,整个波段整体运算,如PCA主成分分析,NDVI计算等。