第97章 97章(1/1)
分层分类是指模拟目视解译面对复杂影像的情况,进行多层次的分析判断,先把容易识别确定的地物目标提取出来,再针对彼此混淆的地物采用不同的判据进行区分,先易后难,由表及里,分层处理,逐步推进。
分层分类法可以增强信息提取能力,提高分类精度和计算效率,并且在数据分析和解译方法上表现出更大的灵活性,能在很大程度上避免“异物同谱”的地物被划归为一类。同时通过分层分类法,可以先将一些易于识别的地物区分出来,为后面的信息提取创造纯净的环境,对不易于分类的地物进行分类时,可以节省分类时间;在每层处理时,目标明确,只针对一类目标进行提取,问题相对简单,提高了每一类目标的提取精度。
基于知识规则的分类是利用多源数据(遥感影像数据及其他空间数据),通过专家经验总结、简单的数学统计和归纳方法等,获得分类规则并进行遥感分类。
专家知识决策树分类的步骤大体上可分为四步:知识(规则)定义、规则输入、决策树运行和分类后处理,难点是规则定义。
一、 数据预处理
1.1 DEM数据重采样
先打开ENVI软件,在ENVI主菜单通过【File】→【Open Image File】,选择图像<xsbn_Dem>,加载西双版纳的DEM数据,如图1.1所示。
图1.1.1 加载西双版纳的DEM数据
接着,通过【Basic Tools】→【Resize Data (Spatial/Spectral)】,选择DEM数据:<xsbn_Dem>,打开重采样窗口,设置重采样像元大小为30m。
即在【Output X PixelSize】和【Output Y Pixel Size】中输入30,设置输出路径并保存,如图1.1.2所示。
图1.1.2 进行DEM数据的重采样
1.2计算特征值
在ENVI主菜单通过【File】→【Open Image File】,加载<Xsbn>数据,以波段5、4、3合成RGB,进行假彩色合成。如图1.2.1所示。
图1.2.1对影像进行“假彩色合成”
接着,计算各种特征值
(1)计算归一化植被指数NDVI
通过【Transform】→【NDVI】,计算西双版纳的NDVI,选择图像<Xsbn>。
在NDVI计算窗口,【Input File Typc】中选择“Landsat OLI”。根据计算NDVI公式,输入红波段和近红外波段,在Landsat OLI影像中,红波段是第四波段,近红外波段是第五波段。
故【Red】输入4,【Near IR】输入5。设置存储路径,点击【OK】即可,如图1.2.2所示。
图1.2.2 计算NDVI
图1.2.3 计算NDVI结果图
(2)计算归一化建筑物指数NDBI
计算公式为:NDBI=MIR-NIR/MIR+NIR
通过【Basic Tools】→【Band Math】,找到波段计算工具,在输入栏中输入:(float(b1)-float(b2))/(float(b1)+float(b2)),在弹出的窗口,选择这b1,b2对应的波段。
在Landsat OLI影像中,中红外波段是第六波段,近红外波段是第五波段。
因此,bl选择第6波段,b2选择第5波段,设置输出路径,点击【OK】即可,如图1.2.4所示,最终得到NDBI如图1.2.5所示。
图1.2.4 计算NDBI
图1.2.5 计算NDBI结果图
(3)计算坡度
通过【Topographic】→【Topographic Modeling】,计算坡度。
在弹出的窗口选择重采样后的DEM数据,点击【OK】。在弹出的【LTopo Model Parameters】窗口选择【Slope】选项,设置输出路径,如图1.2.6所示。
图1.2.6 计算坡度
然后,将坡度的背景值设为Nodata。同样使用波段计算器,通过【Basic Tools】→【Band Math】,在输入栏中输入:((float(b1)/b1)*bl),b1为上一步得到的坡度,设置输出路径即可。如图1.2.7所示。
图1.2.7 设置背景值为Nodata
最终得到的坡度如图1.2.8所示。
图1.2.8 最终得到的坡度
(4)计算植被覆盖度
计算植被覆盖度公式为:FVDVI-NDVImin/NDVImax—NDVImin
涉及到植被覆盖度NVDI最大值,最小值的统计,所以预先通过掩膜去除背景值。
通过【File】→【Opeor Filcs】,打开西双版纳的矢量文件,在弹出的窗口中设置地理坐标系信息,单位为度。设置Proje为【Geographic Lat/Lon】,【datum】为WGS-84,【Unit】为Degrees,如图1.2.9示。
图1.2.9 导入矢量数据
接着用这个矢量文件去按掩NDVI数据
先导入NDVI数据,通过【Basic Tools】→【Statistics】→【pute Statistics】,在弹出的文件选择对话框中,选择计算后的NDVI数据。
再创建掩膜,点击【Mask Options】→【Build Mask】,在弹出窗口中点击【Options】→【Import EVFs】,选中导入的shp文件,最后弹出窗口中选择计算后的NDVI数据,设置输出路径,如图1.2.10所示。
图1.2.10设置掩膜
最后,统计掩膜过后的NDVI的最大值和最小值信息。
在弹出的【pute StatisticsParameters】对话框勾选【Histograms】,点击【OK】,得到NDVI统计结果。
最后一列表示对应NDVI值的累积概率分布。
实验选取累积概率为5%和95%的NDVI值作为NDVImin和NDVImax。如图1.2.11和图1.2.12所示,NDVImin=0.411174,NDVImax=0.856073。
图1.2.11 选取的NDVImin
图1.2.11 选取的NDVImax
最后,通过波段计算器计算得到FVC
还是通过【Basic Tools】→【Band Math】路径进行计算。
公式输入栏中输入:(b1 lt 0.411174)*0+(b1 gt 0.856073)+(b1 ge 0.411174 and b1 le 0.856073)*(b1 - 0.411174)/(0.856073 - 0.411174)
b1则是NDVI图像,即:当NDVI小于0.411174时,FVC取值为0;NDVI大于0.856073时,FVC取值为1:当NDVI在两者之间时,FVC=(b1-NDVImin)/(NDVImax一NDVImin),如图1.2.12所示。计算结果如图1.2.13所示。
图1.2.12 计算FVC
图1.2.13计算得到植被覆盖度图
二、 基于阈值法的决策树分类
2.1 输入分类规则
创建决策树,通过【Cssification】→【Decision Trec】→【Build New Decision Tree】,
(1)区分水体与非水体。单击【Node1】输入【Name】:NDVI<0,将将公式输入为,即在【Expression】中输入:b1 lt 0,即b1<0的部分为水体。
然后在弹出的【Variable/FilePairings】窗口中,将b1选为NDVI。如图2.1.1所示。
图2.1.1 建立区分水体规则
(2)识别裸地。
右击【Css0】,选择【Add Children】,单击节点标识符,打开节点属性窗口,输入规则,在【Name】中输入:NDVI<0.1,在【Expression】中输入公式: b1 lt 0.1,即 b1<0.1为裸地,如图2.14所示。
图2.1.2 建立区分裸地规则
(3)识别建筑用地。
同理右击【Css2】,选择【Add Children】,单击节点标识符,打开节点属性窗口,输入规则。
在【Name】中输入:NDBI<-0.4,在【Expression】中输入: b2 lt-0.4,即 b2<-0.4为建筑用地。
在弹出的【Variable/File Pairings】窗口中将b2选为NDBI。如图2.1.3示。
图2.1.3 建立区分建筑用地规则
(4)区分耕地和林地、灌木。
同理右击【Css2】,选择【Add Children】,单击节点标识符,打开节点属性窗口,输入规则。
在【Namc】中输入:Slope<14,在【Expression】中输入: b3 lt 14,即 b3<14的为耕地。在弹出的【Variable/FilePairings】窗口中将b3选为处理过后的坡度数据Re_Slope。如图2.1.4所示
图2.1.4 建立区分林地和灌木规则
最终建立的决策树规则如图2.1.6所示。
图2.1.5 指定数据源
图2.1.6 规则输入结果
2.2 执行决策树
面板中点击【Options】→【Execute】。在弹出的【Decision Tree】
在【Decision Tree Execution ParameterS】对话框中,设置输出路径,如图决策树运行结果2.2.1是决策树执行完成的结果
图2.2.1 决策树运行结果
在【Decision Tree】面板的空白处右击,选择【Zoom In】,看到每一个类别有相应的统计结果,如图2.2.2所示。
图2.2.2 统计结果
三、 分类后处理
(1)去除分类结果中背景部分。
首先加载分类结果。在窗口中点击【Overy】→【Region of I】,在弹出的【ROI Tool】窗口中点击【File】→【Subset Data via RO1s】
在【Seleput File to Subset via ROI】窗口中选择shp,并将【Mask pixels output of ROI】设置为“Yes”进行掩膜,如图3.1.1所示,最终掩膜结果如图3.1.2所示。
图3.1.1 进行掩膜
图3.1.2 将背景去除后的分类结果
(2)主/次要分析
Majority/Minority分析采用类似于卷积滤波的方法将较大类别中的虚假像元归到该类中。
定义一个变换核尺寸,主要分析用变换核中占主要地位(像元数最多)的像元类别代替中心像元;次要分析(Minority Analysis ),将用变换核中占次要地位(像元数最小)的像元类别代替中心像元。
实验中,通过【Cssification】→【Post Cssification】→【MajoritylMinority Analysis】进行。
在【Majority/Minority Parameters】面板中,选中所有类别,其他参数按照默认,如图3.1.3所示。
图3.1.3 进行主要分析处理
(2)聚类处理
聚类处理是运用数学形态学算子(腐蚀和膨胀),将临近的类似分类区域聚类并进行合并。
分类图像经常缺少空间连续性(分类区域中斑点或洞的存在)。将被选的分类先用膨胀操作合并到一块,然后用变换核对分类图像进行腐蚀操作。
通过【Cssification】→【Post Cssification】→【Clump Csses】,选择经过主要分析后的图像,选择所有类别,数学形态学算子的核大小设为3,点击【OK】即可,如图3.1.4所示。
图3.1.4 进行聚类处理
(3)过滤处理
过滤处理解决分类图像中出现的孤岛问题。过滤处理使用斑点分组方法来消除这些被隔离的分类像元。
类别筛选方法通过分析周围的4个或8个像元,判定一个像元是否与周围的像元同组。如果一类中被分析的像元数少于输入的阈值,这些像元就会被从该类中删除,删除的像元归为未分类的像元(Uncssified )。
实验中,通过【Cssification】→【Post Cssification】→【Sieve Csses】,选择经过聚类处理之后的图像,选择所有类别,【Group MinThreshold】设置为5,点击【OK】,如图3.1.5所示。
图3.1.5 进行过滤处理
最终经过分类后处理的结果图如图3.1.6所示。
图3.1.6 分类后结果
图3.1.7所示为未处理过的图像,图3.1.8为分类处理后的图像。
图3.1.7 未处理 图3.1.8 分类后处理
将部分区域进行对比,发现一些细小的板块聚合成更大的板块,分类效果更好。
四、 分类后处理
接着,通过【Cssification】→【Post Cssification】→【Css Statistics】,进行分类统计。
【Cssification Input File】选择处理后的遥感图像,在【Statistiput File】面板中,选择原始影像。在分类选择【Css Sele】面板中,统计所有分类的信息,在【pute Statistics Parameters】面板勾选【Basic Stats】和【Output to the S,点击OK即可。如图3.1.1所示。
图3.1.1 监督分类统计结果
从【Select Plot】下拉命令中选择图形绘制的对象,如基本统计信息、直方图等。从【Stats for】标签中选择分类结果中的类别,在列表中显示类别对应输入图像文件 DN值统计信息,如协方差、相关系数、特征向量等信息。在列表中的第一段显示的为分类结果中各个类别的像元数、占百分比等统计信息。