当前位置: 首页 > article >正文

GEE实战:构建2000-2025年MODIS与TerraClimate多变量生态气候时序数据集

1. 为什么需要构建生态气候时序数据集做生态或气候研究的朋友应该都深有体会最头疼的就是找数据。以前我们要分析某个区域的植被变化可能需要从不同平台下载MODIS数据研究气候因子又得去另一个网站找降水、温度资料。光是数据收集和格式转换就能耗掉大半个月更别提还要处理缺失值、统一空间分辨率这些琐碎活了。我在黄土高原做植被恢复研究时就吃过这个亏。当时为了分析2000-2020年的植被响应前后折腾了三个月才把NDVI、降水和土壤水分数据对齐。直到后来发现Google Earth EngineGEE这个神器才明白原来数据准备可以这么高效——这就是为什么我要分享这套一站式数据集构建方案。这个教程要构建的时序数据集包含两大核心要素植被参数NDVI归一化植被指数、EVI增强型植被指数、LAI叶面积指数气候因子实际蒸散发、潜在蒸散发、降水量、太阳辐射等12个变量所有数据都已做好时空对齐分辨率统一为1km时间跨度为2000-2025年可自定义。你只需要复制代码替换研究区域就能直接导出CSV或GeoTIFF格式的分析就绪数据。实测下来从数据获取到导出全程不超过20分钟比传统方法快了至少50倍。2. 准备工作GEE环境配置2.1 注册与基础操作首先确保你有Google账号并已开通GEE权限申请地址earthengine.google.com。登录后你会看到代码编辑器界面主要功能区域包括左侧脚本管理器Scripts和资源库Assets中部代码编辑区右侧交互式地图上方运行按钮和搜索栏建议新建一个空白脚本我通常命名为Region_Climate_Vegetation_Timeseries这种一看就懂的名字。所有后续代码都会在这里编写。2.2 定义研究区域这里以长江流域为例你可以替换为自己的研究区。有三种常用方式定义区域边界// 方法1直接绘制多边形 var geometry ee.Geometry.Polygon([ [110.2, 32.5], [120.8, 32.1], [121.6, 26.3], [109.7, 26.8] ]); // 方法2上传Shapefile到Assets var geometry ee.FeatureCollection(users/your_account/your_shapefile); // 方法3使用现有数据集边界 var geometry ee.FeatureCollection(WWF/HydroSHEDS/v1/Basins/hybas_7) .filter(ee.Filter.eq(HYBAS_ID, 7120217340));建议先在地图上预览区域是否准确Map.centerObject(geometry, 6); // 6表示缩放级别 Map.addLayer(geometry, {color: red}, Study Area);3. MODIS植被数据处理3.1 NDVI与EVI提取我们使用MOD13A3数据集月度1km分辨率关键点在于原始值需要乘以0.0001缩放年度均值通过日历年份过滤计算统一重投影避免后续分析错位var mod13 ee.ImageCollection(MODIS/061/MOD13A3); function getAnnualVegetation(year) { var startDate ee.Date.fromYMD(year, 1, 1); var endDate startDate.advance(1, year); return mod13 .filterDate(startDate, endDate) .filterBounds(geometry) .select([NDVI,EVI]) .mean() .multiply(0.0001) .set(year, year) .clip(geometry); } // 生成2000-2025年序列 var years ee.List.sequence(2000, 2025); var vegCollection ee.ImageCollection(years.map(getAnnualVegetation));注意事项MOD13A3的NDVI范围是-2000到10000缩放后为-0.2到1.0云覆盖较多地区建议使用QA波段进行质量控制3.2 叶面积指数(LAI)处理使用MOD15A2H数据集8天500m分辨率需要特别注意原始数据需乘以0.1缩放500m分辨率需要重采样到1kmvar mod15 ee.ImageCollection(MODIS/061/MOD15A2H); function getAnnualLAI(year) { return mod15 .filter(ee.Filter.calendarRange(year, year, year)) .select(Lai_500m) .mean() .multiply(0.1) .resample(bilinear) .reproject(EPSG:4326, null, 1000) .set(year, year); } var laiCollection ee.ImageCollection(years.map(getAnnualLAI));4. TerraClimate气候数据处理4.1 气候变量分类处理TerraClimate提供月度4km分辨率数据变量处理分三种类型累积量如降水(pr)、实际蒸散发(aet)平均值如土壤湿度(soil)、PDSI指数衍生变量如平均温度(tmean)var terra ee.ImageCollection(IDAHO_EPSCOR/TERRACLIMATE); function getAnnualClimate(year) { var col terra.filter(ee.Filter.calendarRange(year, year, year)); // 累积变量求和 var sumVars col.select([aet,pet,pr,srad]).sum() .multiply(ee.Image([0.1, 0.1, 1, 0.1])); // 单位转换 // 平均变量求均值 var meanVars col.select([pdsi,soil,vpd,vs]).mean() .multiply(ee.Image([0.01, 0.1, 0.01, 0.01])); // 计算年平均温度 var tmean col.select([tmmx,tmmn]) .mean() .multiply(0.1) .reduce(ee.Reducer.mean()) .rename(tmean); return sumVars .addBands(meanVars) .addBands(tmean) .set(year, year); } var climateCollection ee.ImageCollection(years.map(getAnnualClimate));4.2 关键气候变量说明变量名全称单位生态意义aet实际蒸散发mm植被水分利用pr降水量mm水分供应pdsi帕默尔干旱指数无干旱程度vpd水汽压差kPa气孔导度压力5. 数据合成与导出5.1 多变量时序合成将所有变量合并为单一ImageCollection每个影像包含同一年份的植被和气候数据function combineVariables(year) { year ee.Number(year); var veg vegCollection.filter(ee.Filter.eq(year, year)).first(); var lai laiCollection.filter(ee.Filter.eq(year, year)).first(); var climate climateCollection.filter(ee.Filter.eq(year, year)).first(); return ee.Image.cat([ veg.select([NDVI,EVI]), lai.select([Lai_500m]), climate ]).set(year, year); } var finalCollection ee.ImageCollection(years.map(combineVariables));5.2 导出到Google Drive批量导出各变量多年均值function exportData(collection, prefix) { var img collection.mean(); // 计算多年平均 // 逐个变量导出 var bandNames img.bandNames().getInfo(); bandNames.forEach(function(name) { Export.image.toDrive({ image: img.select(name), description: prefix _ name, fileNamePrefix: name _2000-2025, region: geometry, scale: 1000, crs: EPSG:4326, maxPixels: 1e13 }); }); } exportData(finalCollection, Yangtze);导出设置建议大区域导出时设置maxPixels为1e13避免报错复杂形状区域建议导出为GeoTIFF格式小区域可以直接导出为CSV进行统计分析6. 实际应用案例6.1 干旱对植被的影响分析用这套数据我做过一个有趣的分析计算PDSI干旱指数与NDVI的相关系数发现黄土高原草地生态系统对干旱的响应存在1-2个月的滞后效应。关键代码片段// 计算逐像元相关系数 var correlation finalCollection.select([PDSI,NDVI]) .reduce(ee.Reducer.pearsonsCorrelation()); Map.addLayer(correlation, {min: -1, max: 1}, PDSI-NDVI Correlation);6.2 植被生产力趋势检测使用Mann-Kendall检验分析EVI的长期变化趋势var trend vegCollection.select(EVI) .reduce(ee.Reducer.kendallsCorrelation()) .select(slope); Map.addLayer(trend, {palette: [red, yellow, green]}, EVI Trend);这套方法已经帮助我团队完成了3篇SCI论文的数据处理工作。特别是在分析极端气候事件对生态系统的影响时多变量数据集的价值就凸显出来了——你可以在同一时空框架下分析植被动态与气候因子的耦合关系而不需要担心数据不一致带来的误差。

相关文章:

GEE实战:构建2000-2025年MODIS与TerraClimate多变量生态气候时序数据集

1. 为什么需要构建生态气候时序数据集 做生态或气候研究的朋友应该都深有体会,最头疼的就是找数据。以前我们要分析某个区域的植被变化,可能需要从不同平台下载MODIS数据;研究气候因子又得去另一个网站找降水、温度资料。光是数据收集和格式转…...

从TLP传输瓶颈到性能调优:实战解析MaxPayloadSize的配置与影响

1. 为什么MaxPayloadSize会成为性能瓶颈? 第一次遇到PCIe设备性能问题时,我盯着监控图表上那条始终无法突破的带宽曲线百思不得其解。当时使用的NVMe SSD实测速度只有标称值的一半,经过三天排查才发现是MaxPayloadSize(MPS&#x…...

软件测试全攻略:从入门到精通的20种核心方法详解

1. 软件测试基础入门:从零开始理解测试本质 刚接触软件测试时,很多人会疑惑:为什么开发完程序还要专门测试?我刚开始做测试时也犯过这样的错误,直到某次上线后用户投诉才明白测试的重要性。简单来说,软件测…...

Windows服务器上Veritas NetBackup 10.1主服务器安装全流程(含用户权限配置避坑指南)

Windows服务器上Veritas NetBackup 10.1主服务器安装全流程(含用户权限配置避坑指南) 对于负责企业数据安全的IT管理员而言,在Windows Server上部署一套可靠的企业级备份系统,是保障业务连续性的基石。Veritas NetBackup作为业界公…...

Hi3519DV500实战:从零构建YOLOv8智能视频分析全链路

1. Hi3519DV500开发板与YOLOv8实战入门 第一次拿到Hi3519DV500开发板时,我和大多数嵌入式开发者一样既兴奋又忐忑。这款芯片在智能视觉领域有着"小钢炮"的称号,但真正要让它跑起YOLOv8这样的现代检测算法,还是需要趟过不少坑。下面…...

PDF表格提取准确率从61%跃升至98.7%,Dify 2026解析器重构逻辑全披露,仅限首批内测用户解密

第一章:PDF表格提取准确率跃升至98.7%的技术里程碑这一里程碑标志着PDF文档结构化解析能力的重大突破——在真实工业场景测试集(含扫描件、多栏布局、跨页合并单元格、手写批注干扰等复杂样本)上,端到端表格识别与重建准确率达到9…...

AI辅助开发实战:如何用chatbot模板提升对话系统开发效率

AI辅助开发实战:如何用chatbot模板提升对话系统开发效率 开发一个功能完善的对话系统,听起来很酷,但真正动手时,很多开发者都会陷入“从零造轮子”的泥潭。今天,我想和大家聊聊,如何借助成熟的 chatbot模板…...

SecGPT-14B作品集:自动生成OWASP Web安全测试用例(含请求/响应/验证步骤)

SecGPT-14B作品集:自动生成OWASP Web安全测试用例(含请求/响应/验证步骤) 1. 网络安全测试新利器 在Web应用安全测试领域,SecGPT-14B带来了革命性的效率提升。这个基于Qwen2ForCausalLM架构的大模型,专门针对网络安全…...

纯硬件循环数显:用555+CD4017+CD4511实现无MCU七段数码管动态显示

1. 项目概述“循环数显”是一个基于纯硬件逻辑实现的七段数码管动态显示系统,其核心设计目标是脱离微控制器和软件编程,仅通过基础数字逻辑器件与手动跳线配置,完成具有纪念意义日期或数字序列的循环显示。该系统面向电子初学者、硬件教学场景…...

Adadelta一个拒绝手动设置学习率的优化算法

为什么需要 Adadelta? 在深度学习的优化算法演化史中,每一个新方法的诞生都是为了修补前一个的伤口。Adadelta 出现于 2012 年,作者 Matthew Zeiler 发表在 arXiv 的一篇论文里,它的诞生动机非常明确——修复 Adagrad 的两个致命缺…...

jetson orin nano 手把手刷机指南:NVME

文章目录写在前面1 硬件准备2 软件准备2.1 Linux 系统准备2.2 下载NVIDIA SDKManager安装包3 准备SDK-Manager4 烧录Jetson系统镜像5 打开jetson 并链接显示器5.1 安装Jtop5.2 安装jtop5.3 安装jetpack6 安装需要的软件写在前面 只适用于jetson orin nano 的普通模式刷机&…...

RepeatModeler 2.0.7 安装与使用--生信工具75

1. 简介 RepeatModeler 是一套从头(de novo)鉴定转座子(TE)家族并构建共有序列的软件包。它整合了多个互补的重复序列预测工具,自动完成重复序列识别、聚类、去冗余、精修与分类,最终生成可直接用于 Repea…...

可视化微调神器Llama Factory:10分钟让大模型听懂你的话

可视化微调神器Llama Factory:10分钟让大模型听懂你的话 1. 前言 你有没有遇到过这样的情况? 想用大模型帮你写一份专业的行业报告,结果它给出的内容总是泛泛而谈,不够精准。想让大模型理解你公司的业务术语,但它总…...

mPLUG VQA效果实测:中英文混合提问的识别与响应能力

mPLUG VQA效果实测:中英文混合提问的识别与响应能力 你有没有想过,给AI看一张图,然后像问朋友一样问它问题,它会怎么回答?比如,你给它看一张街景照片,问“图里有几个人?”&#xff…...

从零到一:基于Easytier构建去中心化虚拟局域网的实战指南

1. 为什么需要去中心化虚拟局域网? 想象一下这样的场景:你在家里搭建了一个NAS存储服务器,办公室电脑需要访问家里的文件;或者你和朋友想联机打游戏,但游戏只支持局域网联机;又或者公司有多个办公地点&…...

乙巳马年·皇城大门春联生成终端W模型安全加固:防范提示词注入攻击

乙巳马年皇城大门春联生成终端W模型安全加固:防范提示词注入攻击 最近在折腾一个挺有意思的项目,叫“乙巳马年皇城大门春联生成终端W”。说白了,就是一个专门用来生成特定风格春联的大语言模型应用。玩着玩着,我就发现一个问题&a…...

基于立创梁山派开发板的智能小车:避障、循迹与蓝牙遥控功能实现全解析

基于立创梁山派开发板的智能小车:避障、循迹与蓝牙遥控功能实现全解析 最近有不少朋友在问,用一块开发板怎么做出一个功能比较完整的智能小车项目。正好,我之前用立创EDA生态下的梁山派开发板做了一个集避障、循迹和蓝牙遥控于一体的小车&…...

ChatGPT下载与API接入实战指南:从注册到集成开发

ChatGPT下载与API接入实战指南:从注册到集成开发 最近身边不少朋友和同事都在讨论ChatGPT,想把它集成到自己的应用里,但第一步“下载”就卡住了。其实,对于开发者来说,我们通常不“下载”ChatGPT,而是通过…...

Cosmos-Reason1-7B开源镜像:支持Kubernetes集群部署的物理AI服务

Cosmos-Reason1-7B开源镜像:支持Kubernetes集群部署的物理AI服务 1. 引言 想象一下,你正在开发一个智能机器人,需要它理解“桌上放着一杯水,旁边有个倾斜的纸板”这个场景,并判断“如果移动纸板,水杯会不…...

代理服务器连接失败的常见原因及快速修复指南

1. 代理服务器连接失败的常见原因 当你遇到"代理服务器拒绝连接"的提示时,先别急着重装系统。根据我多年处理网络问题的经验,90%的代理服务器连接问题都源于以下几个常见原因: 首先是本地代理设置错误。很多用户可能之前配置过代理…...

零成本搭建家庭Linux服务器:樱花frp+SSH避坑指南(含端口冲突解决)

零成本搭建家庭Linux服务器:从设备选型到SSH优化全攻略 家里那台吃灰的旧电脑其实是个宝藏——只要稍加改造,就能变身成为你的专属Linux服务器。不需要昂贵的云服务费用,利用闲置硬件和免费内网穿透工具,我们完全可以打造一个稳定…...

web渗透-SSRF漏洞深度解析与Discuz!论坛实战攻防

第1章. SSRF漏洞基础理论1.1 什么是SSRF?SSRF(Server-Side Request Forgery,服务器端请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞。通常情况下,SSRF攻击的目标是从外网无法访问的内部系统…...

Guohua Diffusion 作品集:中国风与现代艺术风格生成效果对比展

Guohua Diffusion 作品集:中国风与现代艺术风格生成效果对比展 最近在玩一个挺有意思的AI绘画模型,叫Guohua Diffusion。名字听起来就很“国风”,对吧?我一开始也以为它只能画点水墨山水、工笔花鸟。但实际用下来,发现…...

基于TI TMS320F28P550的HB100微波多普勒雷达传感器驱动移植与运动检测实战

基于TI TMS320F28P550的HB100微波多普勒雷达传感器驱动移植与运动检测实战 最近在做一个模拟自动门的项目,需要用到微波雷达来检测人体或物体的移动。我选用了常见的HB100微波多普勒雷达模块,搭配TI的TMS320F28P550开发板(立创开发板&#xf…...

深入解析Cotex-M中的MSP与PSP:双堆栈指针的奥秘与应用

1. Cortex-M双堆栈指针的底层逻辑 第一次接触Cotex-M处理器的开发者,往往会对R13寄存器同时对应两个堆栈指针感到困惑。这就像给你的电脑配了两块键盘,但任何时候只能激活其中一块。**MSP(主堆栈指针)和PSP(进程堆栈指…...

ChatGPT Plus涨价前必看:开发者如何用礼品卡锁定最后低价(附实操步骤)

ChatGPT Plus涨价前开发者必读:巧用礼品卡锁定低价订阅的终极指南 最近关于ChatGPT Plus即将全球统一价格的消息在开发者圈子里引起了不小的震动。作为一个每天依赖ChatGPT进行代码调试、文档生成和算法验证的工具,订阅费用的上涨确实会直接影响开发预算…...

Vue3+D3.js实战:构建可交互的企业股权穿透可视化图谱

1. 为什么选择Vue3D3.js构建股权穿透图 在企业数据可视化领域,股权穿透图一直是个硬骨头。传统方案要么灵活性不足,要么性能堪忧。去年我接手一个金融风控项目时,就遇到了这个难题——需要展示集团旗下7层控股结构,还要支持实时数…...

斯坦福 CS336 从零构建大模型 (2025 春) - 第十五讲:对齐(SFT、RLHF 与 DPO)

斯坦福 CS336 从零构建大模型 (2025 春) - 第十五讲:对齐(SFT、RLHF 与 DPO) 文章目录斯坦福 CS336 从零构建大模型 (2025 春) - 第十五讲:对齐(SFT、RLHF 与 DPO)一、监督微调(SFT)…...

Linux-【文件系统下】

一、引入"inode"概念文件 数据 属性 , 当我们使用 ls -l 的时候看到了除了文件名 , 还能看到文件的元数据 (属性)ls -l 读取存储在磁盘上的文件信息 , 然后显示出来其实这个信息除了通过这种方式来读取 &a…...

灵机一物AI智能电商小程序(已上线)-从零构建高可用智能电商客服:LangGraph+LlamaIndex+ES三层检索RAG系统实战|彻底解决大模型幻觉

作者:Maris5188文章摘要:电商场景下,传统关键词客服回复生硬、匹配度低,纯大模型直接应答又极易出现幻觉编造、记忆污染等致命问题,严重影响用户体验和品牌口碑。本文结合实际业务落地经验,手把手带你基于LangGraph工作…...