GEE24:合肥市1986-2024年年均NDVI变化分析

2024-04-22 21:28

本文主要是介绍GEE24:合肥市1986-2024年年均NDVI变化分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码如下:

var roi = ee.FeatureCollection("users/yipeizhao736/HefeiProvince");
Map.centerObject(roi);
Map.addLayer(roi,{'color':'grey'},'roi');
// Applies scaling factors.
function applyScaleFactors(image) {var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2);var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0);return image.addBands(opticalBands, null, true).addBands(thermalBands, null, true);
}
function rmCloudNew(image) {var cloudShadowBitMask = (1 << 4); var cloudsBitMask = (1 << 3); var qa = image.select('QA_PIXEL'); var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0) .and(qa.bitwiseAnd(cloudsBitMask).eq(0)); return image.updateMask(mask).copyProperties(image).copyProperties(image, ["system:time_start"]);
}
var get_NDVI = function(image) {var NDVI=image.normalizedDifference(['nir','red']).rename(['NDVI']);image=image.addBands(NDVI)return image.select("NDVI")
};
var L8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2').filterBounds(roi).filter(ee.Filter.calendarRange(2014,2023,'year')).filter(ee.Filter.calendarRange(1,12,'month')).map(applyScaleFactors).select(['SR_B4','SR_B5','QA_PIXEL'],['red','nir','QA_PIXEL']).map(rmCloudNew).map(get_NDVI);
var L7 = ee.ImageCollection('LANDSAT/LE07/C02/T1_L2').filterBounds(roi).filter(ee.Filter.calendarRange(2012,2013,'year')).filter(ee.Filter.calendarRange(1,12,'month')).map(applyScaleFactors).select(['SR_B3','SR_B4','QA_PIXEL'],['red','nir','QA_PIXEL']).map(rmCloudNew).map(get_NDVI);
var L5 = ee.ImageCollection('LANDSAT/LT05/C02/T1_L2').filterBounds(roi).filter(ee.Filter.calendarRange(1986,2011,'year')).filter(ee.Filter.calendarRange(1,12,'month')).map(applyScaleFactors).select(['SR_B3','SR_B4','QA_PIXEL'],['red','nir','QA_PIXEL']).map(rmCloudNew).map(get_NDVI);
var Landsat = ee.ImageCollection(L8.merge(L7).merge(L5)).sort("system:time_start")
//print("Landsat_data",Landsat);
var precipitationVis = {min: -1,max: 1,palette: ["FFFFFF", "CE7E45", "DF923D", "F1B555", "FCD163",   "99B718", "74A901", "66A000", "529400", "3E8601",   "207401", "056201", "004C00", "023B01", "012E01",   "011D01", "011301"],
};
for(var i = 1986;i<=2023;i++){var ndvi_year = Landsat.filterDate(i+'-01-01', i+'-12-31').select('NDVI')var ndvi_mean = ndvi_year.mean().clip(roi)//print(i,ndvi_mean)//Map.addLayer(ndvi_mean, precipitationVis, i+'_ndvi_mean',false);Export.image.toDrive({image: ndvi_mean,description: i+'year_mean',region: roi,scale: 30,maxPixels: 1e13,folder: 'NDVI_year'})
}
var years = ee.List.sequence(1986, 2023);
var collectYear = ee.ImageCollection(years.map(function(y) {var start = ee.Date.fromYMD(y, 1, 1);var end = start.advance(12,'month');return Landsat.filterDate(start, end).reduce(ee.Reducer.mean()).float().set('system:time_start',y).set('year',y);
}));
print(collectYear,"ndvi_year")
var result_land = collectYear.mean().clip(roi);
print(result_land,'ndvi_mean');
Map.addLayer(result_land, precipitationVis, 'ndvi_mean');
Export.image.toDrive({image: result_land,description: 'ndvi_mean',region: roi,scale: 30,maxPixels: 1e13,folder: 'NDVI_year'})
var Yearly_chart = ui.Chart.image.series({imageCollection: collectYear.select('NDVI_mean'),region: roi,reducer: ee.Reducer.mean(),scale: 500,xProperty: 'year',}).setOptions({interpolateNulls: true,lineWidth: 2,title: 'NDVI Yearly Seires',vAxis: {title: 'NDVI'},hAxis: {title: 'Date'},trendlines: { 0: {title: 'NDVI_trend',type:'linear', showR2: true,  color:'red', visibleInLegend: true}}});
print(Yearly_chart);

研究区:

在这里插入图片描述

年均NDVI变化趋势:
在这里插入图片描述

GEE代码

这篇关于GEE24:合肥市1986-2024年年均NDVI变化分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/926898

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

你的华为手机升级了吗? 鸿蒙NEXT多连推5.0.123版本变化颇多

《你的华为手机升级了吗?鸿蒙NEXT多连推5.0.123版本变化颇多》现在的手机系统更新可不仅仅是修修补补那么简单了,华为手机的鸿蒙系统最近可是动作频频,给用户们带来了不少惊喜... 为了让用户的使用体验变得很好,华为手机不仅发布了一系列给力的新机,还在操作系统方面进行了疯狂的发力。尤其是近期,不仅鸿蒙O

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.