资源与环境信息系统指导书.docx
34页资源环境信息系统实验指导书实验一 太湖叶绿素 a 反演数据预处理1、数据简介(1)遥感影像数据:2009 年 10 月 6 日环境小卫星影像数据,共 4 个波段,详细信息如表1表 1 环境小卫星数据为 HJ-1B-CCD1 参数介绍波段编号 波长(微米) 分辨率(米)Band 1 0.43-0.52 30Band 2 0.52-0.60 30Band 3 0.63-0.69 30Band 4 0.76-0.90 30(2)监测点数据: 38 组监测点数据及矢量图层(时间为 2009 年 10 月 6 日,水质参数为叶绿素 a 浓度)(3)基准影像:精校正的 TM 数据2、数据预处理2.1 辐射定标与波段融合(目的是消除传感器本身产生的误差)(1)打开 ENVI,在右侧工具箱 【Toolbox 】中找到【Extensions】模块,双击打开【ENVI HJ1A1B Tools】工具(2)传感器类型选择 CCD,即【Sensor Type】选择 CCD, 【Input Path】输入遥感影像,点击【Search】 , 【Out Path】设置输出路径,勾选【Calibration】和【Layer Stacking】 ,即辐射定标和波段融合。
3)点击 Apply,当进度条达到 100%时,即完成辐射定标和波段融合,关闭窗口即可4)加载经过辐射定标和波段融合的.img 格式影像主菜单 【File 】 【open】 ,点击波段前的勾选框,选择 3 个波段进行显示(每次最多显示 3 个波段) ,点击【Load Data 】 2.2 区域裁剪(裁剪太湖区域)(1)在右侧工具箱【Toolbox】中找到【Raster Management】模块,双击打开【Resize Data】工具(2)在打开窗口中,选中输入影像,点击【spatiat】 ,在打开窗口点击【image】 ,通过移动缩放红色方框,确定裁剪区域,点击 ok,继续点击 ok,直到“Resize Data Parameters”对话框3)设置输出路径,在“Resize Data Parameters”对话框,点击【Choose】按钮,设置输出路径及文件名4)点击 ok,格式转化完成将自动加载2.3 转换格式(需将数据转换为 bil)格式(1)在右侧工具箱 【Toolbox】中找到【Raster Management】模块,双击打开【Convert Interleave】工具(2)双击上述裁剪影像,在打开窗口, 【Output Interleave】选择“BIL” 。
3)设置输出路径,点击【Choose】按钮,设置输出路径及文件名,输入文件名时,必须同时输入扩展名. bil4)点击 OK,转换完成,数据自动加载2.4 大气校正(目的是消除大气和光照等因素对地物反射的影响 )(1)在右侧工具箱 【Toolbox】中找到【Radiometric Correction】模块下的【Atmospheric Correction】模块,双击打开 【FLAASH Atmospheric Correction】工具 (2)加载.dil 格式影像,点击【Input Radiance Image】按钮,双击.dil 影像,在弹出的窗口,选择“Use Single scale factor for all bands”, “Single scale factor”可设为 1003)设置输出路径,点击【Output Reflectance File】 ,设置输出路径及文件名,输入文件名时,必须同时输入扩展名.img4)设置文件夹路径,点击【Output Directory for FLAASH Files】 ,设置与上一步相同的输出路径5)记录影像中心位置经纬度,在主界面点击【Crosshair】工具,通过移动红色交叉线,将交叉点移动到影像中心位置,在小窗口可以查看经纬度,并将其记录下来。
6)输入影像中心经纬度,将刚刚记录的经纬度填写在大气校正窗口7)输入影像采集时间在原数据中,打开.XML 格式的头文件,找到影像采集时间,并输入到大气校正窗口8)添加波段相应函数,点击【Multispectral Settings】按钮,选择【Filter Function File】按钮,点击【Open 】 , 【New File】 ,添加相应的波段响应函数 (通过查看原数据头文件,影像来源于 HJ1B CCD1,因此添加对应的.sli 格式的波段响应函数)(8)传感器高度和地面高程分别设为 660km,0.004km(分别与传感器高度及研究区域有关)(9)点击 0k,输出大气校正结果2.5 几何校正(目的是使每一个采样点能最精准的定位到正确的像元)提供了一幅经过了精校正的 TM 数据进行配准,可以选择在 ARCGIS 或 ENVI、ERDAS中配准3、采集监测点各多段像元值首先将监测点矢量数据、及校正后的影像数据加载到 ARCGIS,右击监测点,记录个波段的 pixel value 值,将值采集记录下来,统计到 EXCEL 表格中,为后续的相关性分析做准备如图:每次只能采集到三个波段的信息,可以通过重新选择显示波段,采集到 4 个波段的信息如图所示:4、实战提高在 ENVI 中包含了很多大气校正模型,通过实际操作,比较 ENVI 中几种大气校正模型的不同。
5、知识总结学生总结 请将问题答案写在下面空白处完成本实验花费的时间本次实验对你而言的难点本次实验的收获希望老师强化讲解的知识要点希望老师帮助回答的问题本次实验自评分数(五分制)教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分实验二巢湖高光谱遥感叶绿素 A 浓度反演1、实验内容巢湖流域的年径流量丰富,是周边地市的主要饮用水源地80 年代以来,由于生态环境的恶化,社会经济的快速发展,大量的含有 N、P 营养物质排入湖内,造成大面积的水土流失每年 6-10 月份巢湖西半湖大面积爆发蓝藻水华,已经影响并制约了周边城市的经济发展,被国务院列为重点治理水域巢湖整个湖底由西向东倾斜,以忠庙镇为界,分为东半湖和西半湖,湖水浑浊,呈黄褐色,总悬浮固体含量高,透明度低,水质污染严重因此需对巢湖高光谱遥感叶绿素 A浓度进行反演,并进行分析2、实验步骤2.1 数据预处理叶绿素反演中,需要的数据有两部分:一.实验区的遥感影像数据二.实测取样点的叶绿素 A 浓度值与取样点的坐标值2.2 确定样本集和验证集根据三波段模型,从 24 个取样点中选择 16 个作为样本集(可参照样点分布图均匀选取) ,其余 8 个作为验证集。
样本集的作用是训练得到反演模型,验证集的作用是验证反演模型的准确性2.3 寻找最佳波段组合进行相关性分析的工具可以使用 Excle、SPSS 等现成的统计工具,也可以自己编写程序进行分析在文件夹中有一个遍历循环计算相关性的程序,不过,如果使用的话,需要自己修改一些参数)2.4 反演模型2.5 验证集检验反演模型经过步骤三,得到相关性比较高的组合波段是 65-76-90,经过步骤四,得到反演模型为:Y=258.75X+48.543,其中 X 是组合波段值,Y 为叶绿素 A 浓度值;将 10 个验证点这三个波段的数据放入三波段模型中计算模型组合值,然后在 excle 中带入到反演模型中,计算反演得到的叶绿素 A 浓度值,将其与实测的浓度值进行对比误差=(反演值-实测值)/实测值3、实战提高1.根据已有的巢湖 24 个取样点高光谱波段与叶绿素 A 浓度数据,在网上寻找除三波段模型之外的高光谱叶绿素 A 浓度反演的模型,完成上述实验,并对实验结果进行分析2.在上次实验数据的基础上,查找多光谱反演叶绿素 A 浓度的模型,然后完成上述实验,并对实验结果进行分析4、知识总结学生总结 请将问题答案写在下面空白处完成本实验花费的时间本次实验对你而言的难点本次实验的收获希望老师强化讲解的知识要点希望老师帮助回答的问题本次实验自评分数(五分制)教师评价 请将评语、分数等写在下面空白处问题答疑实验评语实验得分实验三 Identify 功能的实现1、实验目的实现矢量和栅格的 Identify 功能的实现。
2、实验思路关于ARCGIS中IDENTIFY功能的实现一:功能实现的基本思路是这样的:1.点击时,先获取点击位置的屏幕坐标,然后转换到地图坐标;对于栅格图形来说2. 定义一个图层对象(Identify) ,调用相应的Identify 方法生成点对象;3. 提取图层中点击处的栅格,提取属性,填充到事先设计好的窗口中;4. 显示窗口 对于矢量图形1 基于点(缓冲区或者自己创建外包矩形)生成一个面对象,调用相应的Identify方法生成点或对象;2 提取图层中点击处的栅格,提取属性,填充到事先设计好的窗口中;3 显示窗口 第一部分 上机训练1)新建一个项目,注意选择Windows 应用程序,命名为AE2)生成如下的窗体界面其中 mapcontrol的Name为axMapControl1主窗体的名称为MainForm4)添加 contextMenuStrip,其基本属性如下5)设置axMapControl1的contextMenuStrip为contextMenuStrip2,界面和属性如下 11)在主窗体中定义一个点的全局变量,存储我们在mapcontrol中选中的位置IPoint SelectedPoint=new PointClass();12) 实现在mapcontrol右键点击弹出contextMenuStrip的功能。
在axMapControl1的OnMouseDown事件下添加如下代码;if (e.button == 2){SelectedPoint.PutCoords(e.mapX, e.mapY);//存入点击的地图坐标contextMenuStrip2.Show(axMapControl1, e.x, e.y); //弹出contextMenuStrip} 13 实现以点查栅格的内容双击contextMenuStrip中以点查图项,对其事件添加如下代码for (int index = 0; index < this.axMapControl1.LayerCount; index++){IGeometry pGeometry ;if (axMapControl1.get_Layer(index) is IFeatureLayer){IIdentify pFL = this.axMapControl1.get_Layer(index) as IIdentify;ITopologicalOperator pTopo = SelectedPoint as ITopologicalOperator;pGeometry = pTopo.Buffer(500); if (pFL.Identify(pGeometry) != null){int arraycount = pFL.Identify(pGeometry).Count;for (int i = 0; i < arraycount; i++){IIdentifyObj featureIdentifyobj =(IIdentifyObj)pFL.Identify(pGeometry).get_Element(i);IRowIdentifyObject iRowIdentifyObject = featureIdentifyobj as IRowIdentifyOb。





