目录
简介
函数
sampleRegions(collection,properties,scale,projection,tileScale,geometries)
gve.Classifier.Cart(maxNodes,minLeafPopulation,maxDepth)
updateMask(mask)
代码
网址推荐
知识星球
机器学习
简介
过火面积识别(dNBR)和CART方法是一种常用的火灾识别技术。下面分别介绍这两种方法的基本原理和应用。
- 过火面积识别(dNBR): 过火面积识别(dNBR)是一种基于遥感数据的火灾识别方法。该方法计算了火灾前后的归一化差异植被指数(dNBR),通过对比这两个指数的差异,可以确定火灾过火面积。dNBR的计算公式如下:
dNBR = NBRpre - NBRpost
其中,NBRpre表示火灾前的归一化植被指数,NBRpost表示火灾后的归一化植被指数。通过计算dNBR,可以得到火灾过火面积的烧伤程度。
- CART方法: CART(Classification and Regression Trees)是一种决策树算法,可以用于火灾识别。CART方法基于遥感数据和地面观测数据,通过构建一棵决策树来进行火灾识别。决策树是一种树状图模型,通过对数据进行划分,构建一个分类或回归模型。
在火灾识别中,CART方法可以根据不同的火灾特征(如燃烧强度、热点温度等)将数据分为不同的类别,从而实现火灾的识别。CART方法具有很好的灵活性和可解释性,可以根据实际需求进行调整和优化。
综上所述,过火面积识别(dNBR)和CART方法是一种常用的火灾识别技术,可以通过遥感数据和地面观测数据来进行火灾识别。这两种方法可以相互结合,提高火灾识别的准确性和可靠性。
函数
sampleRegions(collection,properties,scale,projection,tileScale,geometries)
将图像中一个或者多个相交区域的像素转换为Feature,返回一个FeatureCollection
方法参数
- collection( FeatureCollection )
采样的区域
- properties( List.<any> Array.<any> Array.<any>,optional )
可选参数,每个输入特征的属性集合List
- scale( number,optional )
可选参数,采样中投影的比例,默认为null
- projection( Projection,optional )
可选参数,采样的投影。如果没有指定,将使用图像第一条带的投影。如果在指定的比例之外还指定了投影,则将其重新缩放到指定的比例,默认为null
- tileScale( number,optional )
可选参数,默认为1
- geometries( boolean,optional )
可选参数,该参数为true时,结果中包含每个采样的像素点,否则不包合,默认为false
返回值: FeatureCollection
gve.Classifier.Cart(maxNodes,minLeafPopulation,maxDepth)
创建一个空的CART分类器,决策树算法
方法参数
- maxNodes( number,optional )
可选参数,每棵树的节点的最大数量,如果没有指定,则无限制
- minLeafPopulation( number,optional )
可选参数,创建训练集包含的节点数量
- maxDepth( number,optional )
可选参数,树的最大深度
返回值: Classifier
updateMask(mask)
Image掩膜运算,返回一个Image对象
方法参数
- mask( Image )
Image实例
返回值: Image
代码
/*** @File : Image_dNBR_Classifier* @Time : 2024/01/30* @Author : GEOVIS Earth Brain* @Version : 0.1.0* @Contact : 中国(安徽)自由贸易试验区合肥市高新区望江西路900号中安创谷科技园一期A1楼36层* @License : (C)Copyright 中科星图数字地球合肥有限公司 版权所有* @Desc : 过火区域识别*/
/** *///过火面积训练样本集,属性设置为LC,非火灾区样本点属性为1,火灾区的样本点属性为2
var geometry = gve.Geometry.Polygon([[[106.2995430998229,29.751248951212084],[106.34477587265005,29.751248951212084],[106.34477587265005,29.775538605767473],[106.2995430998229,29.775538605767473],[106.2995430998229,29.751248951212084]]])var cq_source = "CQ_Features";
var option = {};var featureCollection = gve.Image.fromGeometryWithVector(geometry, cq_source, option)var before_source_B8 = "Burned_chongqing_0816_B8";
var after_source_B8 = "Burned_chongqing_0824_B8";
var before_source_B11 = "Burned_chongqing_0816_B11";
var after_source_B11 = "Burned_chongqing_0824_B11";var before_B8 = gve.Image.fromGeometry(geometry, before_source_B8, option).rename('B8')
var before_B11 = gve.Image.fromGeometry(geometry, before_source_B11, option).rename('B11')
var after_B8 = gve.Image.fromGeometry(geometry, after_source_B8, option).rename('B8')
var after_B11 = gve.Image.fromGeometry(geometry, after_source_B11, option).rename('B11')
var before = gve.Image.cat([before_B8,before_B11])
var after = gve.Image.cat([after_B8,after_B11])var after_source_RGB = "Burned_chongqing_0824_RGB";
var post_fire_RGB = gve.Image.fromGeometry(geometry, after_source_RGB, option)Map.centerObject(post_fire_RGB)
Map.addLayer(post_fire_RGB, {}, 'Post-fire_RGB');//重庆北培区虎头村
//对火灾前影像集的近红外和短波红外波段进行中值合成
var before_nir = before.select('B8').clip(geometry);
var before_swir = before.select('B11').clip(geometry);//计算火灾前NBR指数
var before_nbr = before_nir.subtract(before_swir).divide(before_nir.add(before_swir)).rename('befoer_nbr');//对火灾后影像集的近红外和短波红外波段进行中值合成
var after_nir = after.select('B8').clip(geometry);
var after_swir = after.select('B11').clip(geometry);//计算火灾后NBR指数
var after_nbr = after_nir.subtract(after_swir).divide(after_nir.add(after_swir)).rename('after_nbr');//计算dNBR
var dNBR = after_nbr.subtract(before_nbr).rename('dnbr'); // dNBR图像决策树分类
var training=dNBR.sampleRegions({collection:featureCollection,properties:['LC'],scale:10
});
var classifier = gve.Classifier.Cart().train({features:training,classProperty:'LC',inputProperties: ['dnbr']
});
var classified = dNBR.select('dnbr').classify(classifier);//过火面积提取
var subset = classified.updateMask(classified.eq(2));Map.centerObject(subset)
Map.addLayer(subset,{palette:{"band_rendering":{"pseudocolor":{"colormap":['#F70B0F']}}}},'Only Burned Areas')
网址推荐
知识星球
知识星球 | 深度连接铁杆粉丝,运营高品质社群,知识变现的工具 (zsxq.com)
机器学习
https://www.cbedai.net/xg