中科星图(GVE)——过火面积识别(dNBR)和CART方法进行火灾识别

目录

简介

函数

sampleRegions(collection,properties,scale,projection,tileScale,geometries)

gve.Classifier.Cart(maxNodes,minLeafPopulation,maxDepth)

updateMask(mask)

代码

网址推荐

知识星球

机器学习


简介

过火面积识别(dNBR)和CART方法是一种常用的火灾识别技术。下面分别介绍这两种方法的基本原理和应用。

  1. 过火面积识别(dNBR): 过火面积识别(dNBR)是一种基于遥感数据的火灾识别方法。该方法计算了火灾前后的归一化差异植被指数(dNBR),通过对比这两个指数的差异,可以确定火灾过火面积。dNBR的计算公式如下:

dNBR = NBRpre - NBRpost

其中,NBRpre表示火灾前的归一化植被指数,NBRpost表示火灾后的归一化植被指数。通过计算dNBR,可以得到火灾过火面积的烧伤程度。

  1. 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 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此星光明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值