全球高精度土地利用数据服务 全国作物类型空间分布数据服务 二级分类土地利用数据30m 高精度植被类型分布数据 全国城市功能区划分布数据 全国DEM高程数据服务 全国耕地数据空间分布服务 全国林地分类数据空间分布服务 全国草地类型分类数据空间分布服务 全国水体数据空间分布服务 全国建设用地数据空间分布服务 全国未利用地数据空间分布服务 地形、地貌、土壤理化性质数据服务 全国坡度坡向数据服务 一级分类土地利用数据30m
全国降水量空间分布数据集 全国气温空间分布数据集 太阳辐射量空间分布数据集 全国气象站点观测数据集 全国平均风速空间分布数据集 全国平均水汽压空间分布数据集 全国蒸散量空间分布数据集 全国日照时数空间分布数据集 全国相对湿度空间分布数据集 全国地表温度空间分布数据集 全国气候区划空间分布数据集 全国气象站点空间分布数据集 全国土壤湿度空间分布数据集 全国水文站点地表径流量空间分布数据集
土壤类型空间分布数据服务 土壤质地空间分布数据服务 土壤有机质空间分布数据服务 土壤酸碱度空间分布数据服务 土壤氮磷钾空间分布数据服务 土壤深度空间分布数据服务 土壤侵蚀强度空间分布数据服务 土壤含水量空间分布数据服务 土壤重金属含量空间分布数据服务 中国土壤阳离子交换量空间分布数据 中国土壤容重含量空间分布数据
全国夜间灯光指数数据服务 全国GDP公里格网数据服务 全国人口密度数据服务 全国poi感兴趣点空间分布数据 全国医院空间分布数据服务 全国学校空间分布数据服务 全国居民点空间分布数据 全国旅游景区空间分布数据 全国机场空间分布数据 全国地铁线路站点空间分布数据 人口调查空间分布数据服务 社会经济统计年鉴数据 中国各省市统计年鉴 中国县级统计年鉴数据 农田分类面积统计数据服务 农作物长势遥感监测数据服务 医疗资源统计数据服务 教育资源统计数据服务 行政区划空间分布数据服务
Landsat陆地资源卫星影像 高分二号遥感影像数据 高分一号遥感影像数据 Sentinel2哨兵2卫星影像 SPOT系列卫星遥感影像数据 WorldView卫星遥感影像数据 资源三号卫星遥感影像数据 GeoEye卫星遥感影像数据 NOAA/AVHRR卫星遥感影像 MODIS卫星遥感影像 环境小卫星 Rapideye快鸟卫星影像
高精度归一化植被指数NDVI空间分布数据 高精度净初级生产力NPP空间分布数据 LAI叶面积指数空间分布数据 全国地表温度LST空间分布数据 全国生态系统服务空间数据集 全国湿地沼泽分类空间分布数据集 全国陆地生态系统类型空间分布数据集 全国农田生产潜力数据集 全国GPP初级生产力数据 全国农田熟制空间分布数据集 中国植被区划数据 中国草地资源数据 全国月度NDVI归一化植被指数空间分布数据 月度净初级生产力NPP空间分布数据 全国年度NDVI归一化植被指数空间分布数据 年度净初级生产力NPP空间分布数据 增强型植被指数EVI空间分布数据 RVI比值植被指数空间分布数据
可以将多源数据用于影像分类当中,这就是专家知识的决策树分类器,本专题以ENVI中Decision Tree为例来叙述这一分类器。
本专题包括以下内容:
基于知识的决策树分类是基于遥感影像数据及其他空间数据,通过专家经验总结、简单的数学统计和归纳方法等,获得分类规则并进行遥感分类。分类规则易于理解,分类过程也符合人的认知过程,最大的特点是利用的多源数据。
如图1所示,影像+DEM就能区分缓坡和陡坡的植被信息,如果添加其他数据,如区域图、道路图土地利用图等,就能进一步划分出那些是自然生长的植被,那些是公园植被。
图1 专家知识决策树分类器说明图
专家知识决策树分类的步骤大体上可分为四步:知识(规则)定义、规则输入、决策树运行和分类后处理。
规则的定义是讲知识用数学语言表达的过程,可以通过一些算法获取,也可以通过经验总结获得。
将分类规则录入分类器中,不同的平台有着不同规则录入界面。
运行分类器或者是算法程序。
这步骤与监督/非监督分类的分类后处理类似。
分类规则获取的途径比较灵活,如从经验中获得,坡度小于20度,就认为是缓坡,等等。也可以从样本中利用算法来获取,这里要讲述的就是C4.5算法。
利用C4.5算法获取规则可分为以下几个步骤:
(1)多元文件的的构建:遥感数据经过几何校正、辐射校正处理后,进行波段运算,得到一些植被指数,连同影像一起输入空间数据库;其他空间数据经过矢量化、格式转换、地理配准,组成一个或多个多波段文件。
(2)提取样本,构建样本库:在遥感图像处理软件或者GIS软件支持下,选取合适的图层,采用计算机自动选点、人工解译影像选点等方法采集样本。
(3)分类规则挖掘与评价:在样本库的基础上采用适当的数据挖掘方法挖掘分类规则,后基于评价样本集对分类规则进行评价,并对分类规则做出适当的调整和筛选。这里就是C4.5算法。
4.5算法的基本思路基于信息熵来“修枝剪叶”,基本思路如下:
从树的根节点处的所有训练样本D0开始,离散化连续条件属性。计算增益比率,取GainRatio(C0)的最大值作为划分点V0,将样本分为两个部分D11和D12。对属性C0的每一个值产生一个分支,分支属性值的相应样本子集被移到新生成的子节点上,如果得到的样本都属于同一个类,那么直接得到叶子结点。相应地将此方法应用于每个子节点上,直到节点的所有样本都分区到某个类中。到达决策树的叶节点的每条路径表示一条分类规则,利用叶列表及指向父结点的指针就可以生成规则表。
图2 规则挖掘基本思路
算法描述如下:
算法:从空间数据集(多波段文件)中挖掘分类规则
输入:训练样本
输出:分类规则表
方法:
一、读取数据集名字
二、读取所有的训练样本
A、读取属性信息C、原始类E、样本值A,并将样本划分为训练样本(2/3)和评价样本(1/3)。
B、属性信息C可以是连续(DISCRETE)或离散(CONTINUOUS)的,分别将属性注上这两种标记;若属性是DISCERTE,读取其可能取得值,并都存储在一个列表中;每一个属性都有一个标记,一个给定的属性编号及初始化的取值列表均存储于一个属性的数据结构中,并将数据结构存储在一个哈希表中。
C、原始类E当作一个附加属性信息储存在属性列表中。
D、以增量方式读取每一个样本A,将所有的样本储存在一个表中,每一行代表一个样本。
三、利用数据集构建树
A、离散化连续条件属性C DISCRETE,获得的分割点集T(t1,t2……)作为条件属性C的新的取值。
B、分别计算所有条件属性的增益比率GainRatio(C),取增益比率值最大的条件属性作为树的划分节点,其值或范围作为划分值V(v1,v2……)来生成树的分枝。
C、判断该层与每一个等价子集的原始类类别是否一致。若一致,生成叶子结点。否则,继续计算增益比率GainRatio(C)和选择条件属性C,得到树的节点和划分值V,直至所有的样本已分类完毕。
四、测试生成树
将测试样本C′带入树中,当某一测试样本的分类预测错误时,记录分类错误的计数,并将测试样本添加到训练样本中,转向步骤三,重新构建树。否则,输出分类树
五、抽取分类规则
到达树的叶节点的每条路径表示一条分类规则从树中抽取分类规则,打印规则和分类的详细信息
C4.5网上有源代码下载,vc和c++版本都能获得。
以ENVI5.x为操作平台,ENVI classic、ENVI4.8及以下版本类似。
选取Landsat TM5影像和这个地区对应的DEM数据,影像和DEM经过了精确配准。
规则如下描述:
Class1(朝北缓坡植被):NDVI>0.3, slope<20, aspect<90 and aspect>270
Class2(非朝北缓坡植被):NDVI>0.3, slope<20, 90<=aspect<=270
Class3(陡坡植被):NDVI>0.3, slope>=20,
Class4(水体):NDVI<=0.3, 0<b4<20
Class5(裸地):NDVI<=0.3, b4>=20
Class6(无数据区,背景): NDVI<=0.3, b4=0
也可以按照二叉树描述方式:第一层,将影像分为两类,NDVI大于0.3,NDVI小于或等于0.3;第二层,NDVI高的,分为坡度大于或等于20度和坡度小于20度。以此往下划分。
启动Toolbox/Classification/Decision Tree/New Decision Tree打开决策树分类工具,如图3所示,默认显示了一个节点。
图3 Decision Tree界面
首先我们按照NDVI的大小划分第一个节点,单击Node1,跳出图4对话框,Name为NDVI>0.3,在Expression中填写:{ndvi} gt 0.3。
图4 添加规则表达式
点击OK后,会提示你给{ndvi}指定一个数据源,如图5所示,点击第一列中的变量,在对话框中选择相应的数据源,这样就完成第一层节点规则输入。
图5 指定数据源
Expression中的表达式是有变量和运算符(包括数学函数)组成,支持的运算符如表1所示
表达式 |
部分可用函数 |
基本运算符 |
+、-、*、/ |
三角函数 |
正弦Sin(x)、余弦cos(x)、正切tan(x) 反正弦Asin(x)、反余弦acos(x)、反正切atan(x) 双曲线正弦Sinh(x)、双曲线余弦cosh(x)、双曲线正切tanh(x) |
关系/逻辑 |
小于LT、小于等于LE、等于EQ、不等于NE、大于等于GE、大于GT and、or、not、XOR 最大值(>)、最小值 (<) |
其他符号 |
指数(^)、自然指数exp 自然对数对数alog(x) 以10为底的对数alog10(x) 整形取整——round(x)、ceil(x) 平方根(sqrt)、绝对值(adb) |
表1 运算符
ENVI决策树分类器中的变量是指一个波段的数据或作用于数据的一个特定函数。变量名必须包含在大括号中,即{变量名};或者命名为bx,x代表数据,比如哪一个波段。如果变量被赋值为多波段文件,变量名必须包含一个写在方括号中的下标,表示波段数,比如{pc[2]}表示主成分分析的第一主成分。支持特定变量名如表2,也可以通过IDL自行编写函数。
变量 |
作用 |
slope |
计算坡度 |
aspect |
计算坡向 |
ndvi |
计算归一化植被指数 |
Tascap [n] |
穗帽变换,n表示获取的是哪一分量。 |
pc [n] |
主成分分析,n表示获取的是哪一分量。 |
lpc [n] |
局部主成分分析,n表示获取的是哪一分量。 |
mnf [n] |
最小噪声变换,n表示获取的是哪一分量。 |
Lmnf[n] |
局部最小噪声变换,n表示获取的是哪一分量。 |
Stdev [n] |
波段n的标准差 |
lStdev [n] |
波段n的局部标准差 |
Mean [n] |
波段n的平均值 |
lMean [n] |
波段n的局部平均值 |
Min [n]、max [n] |
波段n的最大、最小值 |
lMin [n]、lmax [n] |
波段n的局部最大、最小值 |
表2变量表达式
第一层节点根据NDVI的值划分为植被和非植被,如果不需要进一步分类的话,这个影像就会被分成两类:class0和class1。
对NDVI大于0.3,也就是class1,根据坡度划分成缓坡植被和陡坡植被。在class1图标上右键,选择Add Children。单击节点标识符,打开节点属性窗口,Name为Slope<20,在Expression中填写:{Slope} lt 20。
同样的方法,将所有规则输入,末节点图标右键Edit Properties,可以设置分类结果的名称和颜色,最后结果如图6所示。
图6 规则输入结果图
选择Options->Execute,执行决策树,跳出图7所示对话框,选择输出结果的投影参数、重采样方法、空间裁剪范围(如需要)、输出路径,点击OK之后,得到如图8所示结果。在决策树运行过程中,会以不同颜色标示运行的过程。
图7 输出结果
回到决策树窗口,在工作空白处点击右键,选择Zoom In,可以看到每一个节点或者类别有相应的统计结果(以像素和百分比表示)。如果修改了某一节点或者类别的属性,可以左键单击节点或者末端类别图标,选择Execute,重新运行你修改部分的决策树。
图9 运行决策树后的效果
分类后处理和其他计算机分类类似的过程。
决策树分类主要的工作是获取规则,下面介绍使用CART算法获取规则,下图是总体流程。
图10总体技术流程图
在获取规则过程中,由于计算量较大,我们推荐裁剪一部分较典型区域作为实验区获取规则,之后将这个规则应用于整个图像区域。