GEE案例:利用sentinel-2数据和NBR指数进行火灾前后的面积计算分析

目录

简介

函数

normalizedDifference(bandNames)

Arguments:

Returns: Image

ui.Chart.image.series(imageCollection, region, reducer, scale, xProperty)

Arguments:

Returns: ui.Chart

setOptions(options)

Arguments:

Returns: ui.Chart

代码

结果


简介

NBR指数(Normalized Burn Ratio)是一种用于评估植被火灾烧伤程度的指数。火灾通常会引起植被的烧伤和变化,而NBR指数可以衡量这种烧伤程度。NBR指数的计算基于热红外遥感数据和近红外遥感数据。热红外遥感数据可以提供火灾烧伤后的热量分布情况,近红外遥感数据可以提供植被烧伤前后的反射率变化。通过将这两种数据进行计算和比较,可以得到NBR指数。

NBR指数的计算公式如下:
NBR = (NIR - SWIR) / (NIR + SWIR)
其中,NIR代表近红外波段的反射率,SWIR代表短波红外波段的反射率。NBR的取值范围为-1到1,值越大表示烧伤程度越严重。

NBR指数可以用于火灾监测、灾后评估等应用。通过对火灾前后的遥感图像进行NBR指数计算,可以识别出火灾烧伤的区域和程度。同时,NBR指数还可以与其他地理信息数据进行叠加分析,提供火灾对植被和土地利用的影响评估。

NDVI指数(Normalized Difference Vegetation Index)是一种用于评估植被状况的指数。植被的生长和健康状况对生态环境、农业产量等具有重要影响,而NDVI指数可以通过遥感数据来衡量植被的状况。NDVI指数的计算基于近红外遥感数据和红光遥感数据,这两种数据可以反映植被的光吸收和光反射情况。

NDV

dNBR2(differenced Normalized Burn Ratio 2)是一种用于火灾监测的指数,它通过计算前后两次遥感图像的归一化烧迹指数(Normalized Burn Ratio,NBR)之差来提取火灾烧迹信息。基于Sentinel-2数据实现dNBR2的提取,可以参考以下代码: ```python # 导入必要的库 import ee # 初始化Earth Engine ee.Initialize() # 定义区域(Region of Interest,ROI) roi = ee.Geometry.Point([longitude, latitude]).buffer(distance) # 定义时间范围(start_date为开始时间,end_date为结束时间) start_date = '2020-01-01' end_date = '2020-12-31' # 加载Sentinel-2数据集,并进行筛选预处理 s2_collection = ee.ImageCollection("COPERNICUS/S2_SR")\ .filterBounds(roi)\ .filterDate(start_date, end_date)\ .filter(ee.Filter.lt("CLOUDY_PIXEL_PERCENTAGE", 30))\ .map(lambda img: img.clip(roi))\ .select(['B4', 'B8', 'B11']) # 定义NBR计算函数 def calculate_nbr(image): nbr = image.normalizedDifference(['B8', 'B4']).rename('NBR') return image.addBands(nbr) # 计算前后两次的NBR并进行差异计算 pre_fire = s2_collection.filterDate(start_date, '2020-08-31').map(calculate_nbr).mean() post_fire = s2_collection.filterDate('2020-09-01', end_date).map(calculate_nbr).mean() dnbr2 = post_fire.select('NBR').subtract(pre_fire.select('NBR')).rename('dNBR2') # 可视化结果 vis_params = {'min': -0.5, 'max': 0.5, 'palette': ['blue', 'white', 'red']} Map = geemap.Map() Map.centerObject(roi, zoom=10) Map.addLayer(pre_fire.select('NBR'), vis_params, 'Pre-fire NBR') Map.addLayer(post_fire.select('NBR'), vis_params, 'Post-fire NBR') Map.addLayer(dnbr2, vis_params, 'dNBR2') Map.addLayerControl() Map ``` 代码中首先定义了区域(roi)时间范围(start_dateend_date),然后加载Sentinel-2数据集并进行筛选预处理。接下来定义了NBR计算函数(calculate_nbr),并利用该函数计算前后两次的NBR并进行差异计算,得到dNBR2结果。最后,使用geemap库中的Map对象进行结果可视化,并添加图层控制器(addLayerControl())以便用户可以交互式控制图层的显示隐藏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

此星光明

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

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

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

打赏作者

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

抵扣说明:

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

余额充值