之前有小伙伴想让做一期利用GEE做植被指数变化的文章,可惜一直没什么时间去做。今天小编终于把这个给做好了。
我们这里使用的还是MOD13Q1的NDVI产品,我们选取2000年到2019年每一年的NDVI做最大值合成。这样我们都有了20年的20景NDVI的影像。
我们以年份作为自变量,年最大NDVI最为因变量做一个趋势分析,来看一下北京这20年来的NDVI变化趋势。
这里的NDVI我们没有乘以尺度因子(0.0001),因此,我们用到的NDVI是实际的10000倍。
01
我们首先看一下北京区域的年最大NDVI随着年份的变化趋势把!
直接上代码:
var table = ee.FeatureCollection("users/boyxiaozheng/feature/beijing");
//合成20年的年最大NDVI
var year_list=ee.List.sequence(2000,2019);
year_list=year_list.map(function(num){
var time=ee.Date.fromYMD(num, 1, 1)
var year_image=ee.ImageCollection('MODIS/006/MOD13A1')
.filterDate(time,ee.Date(time).advance(1,'year'))
.max();
var year_ndvi=year_image.select('NDVI');
return year_ndvi.addBands(ee.Image.constant(num).toFloat());
}
)
var img_collection=ee.ImageCollection.fromImages(year_list);
//对影像进行趋势分析
var linearFit = img_collection.select(['constant', 'NDVI'])
.reduce(ee.Reducer.linearFit());
//显示结果
var trendVis = {
min: -100,
max: 100,
palette: [
'040274', '040281', '0502a3', '0502b8', '0502ce', '0502e6',
'0602ff', '235cb1', '307ef3', '269db1', '30c8e2', '32d3ef',
'3be285', '3ff38f', '86e26f', '3ae237', 'b5e22e', 'd6e21f',
'fff705', 'ffd611', 'ffb613', 'ff8b13', 'ff6e08', 'ff500d',
'ff0000', 'de0101', 'c21301', 'a71001', '911003'
],
};
Map.centerObject(table);
Map.addLayer(linearFit.select('scale').clip(table),trendVis);
代码链接:
https://code.earthengine.google.com/413df994e0afb4107f4d957157e02ff3
运行结果:
上图为代码的运行结果,图中越红表示NDVI增加的越多,越蓝表示减少的越多。
可以看出,市中心绿化这20年来是越来越好的,而东南部和市中心稍微靠北的地方绿化是在减少的。
这主要是因为市中心的绿化做的比较好,而市中心周围的地区因为城市扩张导致NDVI的减少。
至于北京西部主要是山区,所以NDVI基本上不怎么变化。
02
下面我们分别在西北部(山区),市中心和北京东南部提取三个小区域,画一个这20年来的折线图,看一下是否和我们之前的图相符合。
先看看我们选的三个区域位置:
代码:
//选取区域
var northwest =
ee.Geometry.Polygon(
[[[116.1134535754385, 40.18621292916931],
[116.1134535754385, 40.127436350381466],
[116.17662496215725, 40.127436350381466],
[116.17662496215725, 40.18621292916931]]], null, false),
center =
ee.Geometry.Polygon(
[[[116.3441664660635, 39.89814325577099],
[116.3441664660635, 39.851770517596385],
[116.40184468871975, 39.851770517596385],
[116.40184468871975, 39.89814325577099]]], null, false),
southeast =
ee.Geometry.Polygon(
[[[116.525440880126, 39.77582023827742],
[116.525440880126, 39.71880246541583],
[116.5858656848135, 39.71880246541583],
[116.5858656848135, 39.77582023827742]]], null, false);
var roi_collection=ee.FeatureCollection([ee.Feature(northwest,{'label':'northwest'}),
ee.Feature(center,{'label':'center'}),
ee.Feature(southeast,{'label':'southeast'})]);
//合成年最大NDVI值
var year_list=ee.List.sequence(2000,2019);
year_list=year_list.map(function(num){
var time=ee.Date.fromYMD(num, 1, 1)
var year_image=ee.ImageCollection('MODIS/006/MOD13A1')
.filterDate(time,ee.Date(time).advance(1,'year'))
.max();
var year_ndvi=year_image.select('NDVI');
year_ndvi=year_ndvi.set({'system:time_start':ee.Date.fromYMD(num,1,1)})
return year_ndvi;
}
)
var img_collection=ee.ImageCollection.fromImages(year_list);
//画图
var ndviTimeSeries = ui.Chart.image.seriesByRegion(
img_collection, roi_collection, ee.Reducer.mean(), 'NDVI',500,'system:time_start','label')
.setOptions({
vAxis: {title: 'NDVI*10000'},
lineWidth: 1,
pointSize: 4,
series: {
0: {color: 'FF0000'},
1: {color: '00FF00'},
2: {color: '0000FF'}
}});
print(ndviTimeSeries)
代码链接:
https://code.earthengine.google.com/93a2d2eebdccddd5a1f15667507ae4ba
运行结果:
可以看出来,基本上市中心的的NDVI是一直增加的,而西北部是基本不变的,最后东南部NDVI在逐年的减少。
这个趋势也是符合我们之前的结果的。
好了,今天分享的关于GEE内容就到这里了。如果您感觉内容对您有帮助的话,欢迎转发,点下看一看哦!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有