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

用JRC水体数据集和GEE,5分钟搞定近40年你家附近水域变化分析

零代码绘制家乡水域变迁图:基于GEE与JRC数据集的时空分析实战

站在老家的河堤上,父亲总念叨着"我们小时候这河面能有现在两倍宽"。这种口述历史往往缺乏量化依据,而现在,借助Google Earth Engine(GEE)平台和JRC全球地表水数据集,任何人都能亲手还原家乡水域近40年的变迁轨迹。本文将带你用完全零代码的方式,完成从数据调用到可视化呈现的全流程,让科技为乡愁提供精准注脚。

1. 认识你的数字工具箱:GEE与JRC数据集

1.1 为什么选择这对黄金组合?

  • Google Earth Engine:云端地理空间分析平台,无需本地计算资源
  • JRC Global Surface Water:1984-2021年全球地表水月度记录,30米分辨率
  • 协同优势:GEE直接托管JRC数据集,省去数据下载和处理环节

JRC数据集包含多个子产品,我们重点关注两个核心集合:

数据集名称时间范围分辨率关键指标
Monthly Water History1984-202130m每月水体检测次数
Yearly Water Classification1984-202130m年度水体季节性分类

提示:所有分析将在GEE的在线代码编辑器中进行,但不用担心——你只需要复制粘贴准备好的代码片段。

2. 五分钟快速上手指南

2.1 准备工作

  1. 访问Google Earth Engine官网并注册账号
  2. 打开代码编辑器(Code Editor)界面
  3. 在"Scripts"面板新建空白项目

2.2 定位你的研究区域

在GEE中快速定位目标区域的三种方法:

// 方法1:直接输入坐标(以杭州西湖为例) var roi = ee.Geometry.Point(120.15, 30.25).buffer(5000); // 方法2:手动绘制多边形 var roi = /* 在这里绘制你的区域 */; // 方法3:导入已有边界数据 var roi = ee.FeatureCollection("路径/to/your/shapefile");

2.3 调用JRC数据集核心代码

将以下代码粘贴到编辑器中:

// 加载JRC月度水体数据集 var jrcMonthly = ee.ImageCollection("JRC/GSW1_4/MonthlyHistory"); // 定义可视化参数 var visParams = { min: 0, max: 3, palette: ['ffffff', 'bbbbbb', '11b5ff', '0d3aff'] }; // 生成2020年水体分布图 var water2020 = jrcMonthly.filterDate('2020-01-01', '2020-12-31') .mode().clip(roi); // 添加到地图显示 Map.addLayer(water2020, visParams, '2020年水体分布'); Map.centerObject(roi, 10);

点击"Run",你将立即看到目标区域2020年的水体分布情况。

3. 深度分析:提取40年水域变化趋势

3.1 构建时间序列分析函数

以下代码将计算每年水体覆盖面积:

// 定义计算函数 function calculateArea(image) { var water = image.gt(2); // 提取永久水体部分 var area = water.multiply(ee.Image.pixelArea()).reduceRegion({ reducer: ee.Reducer.sum(), geometry: roi, scale: 30, maxPixels: 1e13 }); return ee.Feature(null, { date: image.date().format('YYYY'), area: area.get('water') }); } // 应用函数到整个数据集 var timeSeries = ee.FeatureCollection( jrcMonthly.map(calculateArea) ); // 打印结果 print(timeSeries);

3.2 可视化面积变化曲线

添加图表绘制代码:

// 绘制面积变化趋势图 var chart = ui.Chart.feature.byFeature(timeSeries, 'date', 'area') .setChartType('LineChart') .setOptions({ title: '1984-2021年水域面积变化趋势', hAxis: {title: '年份'}, vAxis: {title: '水域面积(平方米)'}, lineWidth: 3, colors: ['#4285F4'] }); print(chart);

运行后将生成直观的折线图,清晰展示水域面积随时间波动情况。

4. 高级技巧:制作水域变迁动态图

4.1 生成十年间隔对比图

// 定义时间分段 var decades = ['1985', '1995', '2005', '2015', '2020']; // 创建各时期水体分布图 var decadeImages = decades.map(function(year){ return jrcMonthly.filterDate(year+'-01-01', year+'-12-31') .mode().gt(2).rename(year); }); // 合并为单幅图像 var changeMap = ee.Image.cat(decadeImages); // 添加对比图层 Map.addLayer(changeMap, {palette: ['black', 'blue']}, '十年间隔对比');

4.2 创建时间序列动画

// 准备动画帧 var videoArgs = { dimensions: 800, region: roi, framesPerSecond: 5, bands: ['water'], min: 0, max: 3, palette: ['ffffff', 'bbbbbb', '11b5ff', '0d3aff'] }; // 生成动画URL var videoURL = jrcMonthly.getVideoThumbURL(videoArgs); print('动画下载链接', videoURL);

5. 案例解读:如何分析你的结果

以某城市湖泊为例,典型分析角度包括:

  • 季节性变化:比较旱季雨季水体面积差异
  • 长期趋势:识别持续萎缩或扩张的水域
  • 突变点检测:关联周边工程建设或政策实施时间
  • 空间格局变化:观察水体形态改变(如河道取直)

实际操作中,可以尝试调整代码中的几个关键参数:

// 敏感度调整示例 var sensitiveWater = image.gt(1); // 包含季节性水体 var permanentWater = image.gt(2); // 仅永久水体 // 空间精度调整 var scale = 100; // 降低分辨率加速计算

记得点击编辑器右上角的"Save"按钮保存你的项目,所有代码和结果都会自动存储在云端,随时可以回来继续分析。

http://www.jsqmd.com/news/637669/

相关文章:

  • Unity NGO 系列教程(五):如何构建多人联机区域触发系统
  • 实测对比:OpenCV微信QRCode vs ZXing二维码识别性能(附C++测试代码)
  • 2026年口碑好的土壤改良专用有机肥/大田专用有机肥/内蒙古园林绿化专用有机肥/花卉专用有机肥厂家选择推荐 - 行业平台推荐
  • 【电路】开关电源的三种拓扑电路
  • 从Prompt丢失到Token级溯源:实现LLM调用全生命周期追踪的6层 instrumentation 架构(含开源工具链选型决策树)
  • RabbitMQ服务启动不了?可能是Erlang Cookies不一致惹的祸(附同步方法)
  • 别被AI信息骗了!媒体监督+公众教育,教你练就火眼金睛
  • 高效提升QQ聊天体验:8个实用功能全面解析
  • 保姆级教程:零基础学深度学习需要学哪些框架?PyTorch 和 TensorFlow 选哪个?
  • NCCloud OpenAPI 自定义接口实战:从零构建采购审批扩展
  • 全球化2.0 | 泰国建材家居零售商通过ZStack替代VMware承载核心业务
  • Cursor集成MinGW与Qt开发环境配置全攻略
  • 【LLaDA】Large Language Diffusion Models
  • 为什么92%的游戏团队在AIAgent NPC集成中卡在第4步?SITS2026现场Debug录屏级复盘
  • 抖音视频批量下载器技术深度解析:从智能解析到分布式下载的完整实现
  • Jupyter Notebook白屏问题排查与解决全记录
  • 跨项目迁移的AI协作实践:从反复返工到一次成功
  • 2026年性价比高的鄂尔多斯衣帽间定制综合评价公司 - 品牌宣传支持者
  • 从零构建pix2pix训练集:数据准备与预处理实战
  • CV算法工程师面试指南:25篇文章帮你从入门到offer
  • 基于 Java 和高德开放平台的 WebAPI 集成实践——以“搜索 POI 2.0”为例
  • React 19新特性实战:3种方案实现组件自动刷新优化
  • AIAgent动作执行层架构演进白皮书(2026奇点大会独家解禁版):从LLM调用链到原子动作调度器的5层抽象跃迁
  • 完整指南:5分钟掌握ImStudio实时GUI布局设计工具
  • VSCode+Git+Azure DevOps 零门槛全流程教程 | 小白可直接上手 初始化/分支切换/提交/合并全解
  • Linux基础开发工具(yum篇)
  • 解锁专业音效:ViPER4Windows在Windows 10/11的完美运行方案
  • 续讲wireshark——ECU测试实践记录
  • 轻榴浏览器:仅几MB的“轻功高手“,还你清净无扰的上网自由!
  • 斯坦福CS146S vs 吴恩达AI课程:哪个更适合你