利用sentinel-2数据计算的NDVI指数对比植被退化情况
NDVI(Normalized Difference Vegetation Index,归一化植被指数)是通过计算红外波段和可见光波段的反射值之间的差异来评估植被的状况。利用NDVI指数可以监测植被的退化情况。
植被退化指的是植被由于外界因素(如气候变化、土地利用变化、人为活动等)导致的健康状况恶化,包括植被生长减缓、植被凋落、植被数量减少等。
利用NDVI指数监测植被退化的步骤如下:
利用NDVI指数监测植被退化可以及时发现退化现象,并采取相应的措施进行修复,保护生态环境。
哨兵2号(Sentinel-2)是一颗由欧空局(European Space Agency)和欧盟委员会合作发射的地球观测卫星。哨兵2号搭载了多光谱成像仪(Multispectral Imager,MSI),能够以高分辨率获取红外、可见光和近红外波段的影像数据。该卫星具有全球覆盖、高重复频率和较高空间分辨率等特点,可用于植被监测、土地利用/覆盖变化监测、水体监测等应用。
基于哨兵2号影像进行NDVI计算的步骤如下:
基于哨兵2号影像进行NDVI计算可以获得高分辨率的植被指数图像,从而对植被的健康状况和退化情况进行定量和定性的评估。这有助于实时监测植被的变化,了解植被退化的程度,并采取适当的措施进行保护和恢复。
Generates a Chart from an ImageCollection. Plots derived values of each band in a region across images. Usually a time series.
Returns a chart.
imageCollection (ImageCollection):
An ImageCollection with data to be included in the chart.
region (Feature|FeatureCollection|Geometry):
The region to reduce.
reducer (Reducer, optional):
Reducer that generates the values for the y-axis. Must return a single value. Defaults to ee.Reducer.mean().
scale (Number, optional):
Scale to use with the reducer in meters.
xProperty (String, optional):
Property to be used as the label for each image on the x-axis. Defaults to 'system:time_start'.
var cor = [
[24.664959178687543,64.99123253965863],
[24.66427253317973,64.99087875350403],
[24.66504500937602,64.98997612402353],
[24.664948449851483,64.98982643880142],
[24.665688739539593,64.98954974572945],
[24.666203723670453,64.98957242559722],
[24.666203723670453,64.98957242559722],
[24.66606424880168,64.99008498547678],
[24.664959178687543,64.99123253965863]
]
var geometry = ee.Geometry.Polygon(cor)
Map.centerObject(geometry)
var sen = ee.ImageCollection("COPERNICUS/S2_SR_HARMONIZED")
.filterBounds(geometry)
.filterDate('2017','2024')
.filter(ee.Filter.calendarRange(6,9,'month'))
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',10))
.map(function(img){
var bands = img.select('B.*').multiply(0.0001)
var ndvi = bands.normalizedDifference(['B8','B4']).rename('ndvi')
return ndvi
.copyProperties(img, ['system:time_start', 'system:time_end'])
});
print(
ui.Chart.image.series(sen, geometry, ee.Reducer.median(), 10, 'system:time_start')
.setChartType('ColumnChart')
)
var before = sen.filterDate('2018','2019').median().rename('before')
var after = sen.filterDate('2023', '2024').median().rename('after')
Map.addLayer(before.clip(geometry),[],'before',false)
Map.addLayer(after.clip(geometry),[],'after',false)
print(
ui.Chart.image.histogram(before, geometry, 10)
.setOptions({
title: 'before'
})
)
print(
ui.Chart.image.histogram(after, geometry, 10)
.setOptions({
title: 'after'
})
)
var tree_area = sen.map(function(img){
var thr = img.gt(0.5);
var mask = thr.updateMask(thr);
var area = mask.multiply(ee.Image.pixelArea())
return area
.copyProperties(img, img.propertyNames())
});
print(
ui.Chart.image.series(tree_area, geometry, ee.Reducer.sum(),
10, 'system:time_start').setChartType('ColumnChart')
)