news 2026/5/1 0:21:05

8、基于 GEE 平台 通过 NDVI 进行作物产量预测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
8、基于 GEE 平台 通过 NDVI 进行作物产量预测

🌾 GEE 作物产量预测

GEE Crop Yield Prediction Professional Platform

这是一个基于Google Earth Engine (GEE)云计算平台开发的交互式农业监测工具。该平台集成了多源遥感数据(Sentinel-2 与 Landsat 8/9),通过自动化的去云处理和植被指数计算,实现对特定区域作物的长势监测与产量潜力估算。


📋 目录 (Table of Contents)

  1. 核心功能
  2. 算法与数据处理
  3. 快速使用指南
  4. 开发者自定义指南 (修改源码)
    • 4.1 如何自定义研究区域
    • 4.2 如何修改产量预测公式
    • 4.3 如何调整可视化阈值
  5. 注意事项

✨ 核心功能

  • 多源卫星支持: 支持Sentinel-2(10m, 5天重访) 和Landsat 8/9(30m, 16天重访) 数据无缝切换。
  • 自动化预处理: 内置针对不同传感器的 QA 波段去云算法,自动剔除云和云影干扰。
  • 动态产量建模: 基于生长季最大 NDVI (Max Value Composite) 的产量估算模型。
  • 交互式分析面板:
    • 实时图表: 自动生成 NDVI 时序生长曲线、产量分布直方图。
    • 统计指标: 自动计算并显示区域内的平均产量(吨/公顷)。
    • 动态图例: 地图左下角根据数据自动渲染图例组件。

🛠️ 算法与数据处理

1. 数据清洗机制

脚本根据选择的卫星源自动匹配处理流程:

  • Sentinel-2: 使用QA60波段。
    • [cite_start]逻辑: 屏蔽 Bit 10 (不透明云) 和 Bit 11 (卷云) [cite: 10, 11, 12]。
    • [cite_start]阈值: 过滤云量 > 20% 的影像 [cite: 14]。
  • Landsat 8/9: 使用QA_PIXEL波段。
    • [cite_start]逻辑: 屏蔽 Bit 3 (云) 和 Bit 4 (云影) [cite: 17]。
    • [cite_start]校正: 应用 Scale Factor (0.0000275 * DN - 0.2) 转换为地表反射率 [cite: 18]。

2. 产量预测模型 (核心逻辑)

本平台采用基于植被指数的经验回归模型:

  1. [cite_start]特征提取: 计算时间窗口内的最大 NDVI(seasonalMaxNDVI),代表作物生长最旺盛时期的状态 [cite: 26]。
  2. [cite_start]非耕地掩膜: 剔除 NDVI < 0.25 的像素(水体、裸土、建筑)[cite: 28]。
  3. 估算公式 (示例):
    Y i e l d ( t / h a ) = 12.5 × N D V I m a x − 1.5 Yield (t/ha) = 12.5 \times NDVI_{max} - 1.5Yield(t/ha)=12.5×NDVImax1.5
    [cite_start](注:此为演示参数,实际应用请参考“开发者自定义指南”进行修改)[cite: 27]。

🚀 快速使用指南

  1. 启动平台: 在 GEE Code Editor 中运行脚本。
  2. 设置参数(左侧面板):
    Region: 选择预设的示范区(如:河南驻马店-冬小麦)。
    Satellite: 选择数据源(推荐 Sentinel-2 以获得更高清晰度)。
    Date Range: 输入作物生长季的开始与结束日期 (格式 YYYY-MM-DD)。
  3. 执行分析: 点击“执行分析 / Run Analysis”按钮 。
  4. 查看结果:
    • 地图: 查看产量空间分布(红=低产,绿=高产)。
      图表: 底部面板显示生长曲线与产量分布。
      数据: 面板显示具体的“区域平均产量”数值。

🔧 开发者自定义指南 (修改源码)

本节详细说明如何修改代码以适配您自己的研究区域和农学模型。

4.1 如何自定义研究区域 (ROI)

默认代码使用矩形坐标。您可以通过修改rois对象来添加新区域。

步骤:

  1. 找到代码顶部的14 - 18 行左右的var rois = { ... };部分。
    varrois={'河南驻马店 (冬小麦)':ee.Geometry.Rectangle([114.0,32.8,114.2,33.0]),'黑龙江建三江 (水稻)':ee.Geometry.Rectangle([132.5,47.1,132.7,47.3]),'山东德州 (夏玉米)':ee.Geometry.Rectangle([116.2,37.3,116.4,37.5])};
  2. 方法 A (添加坐标): 如果您知道经纬度范围。
    varrois={// 格式: [最小经度, 最小纬度, 最大经度, 最大纬度]'我的自定义区域':ee.Geometry.Rectangle([115.0,34.0,115.5,34.5]),// ...保留其他区域};
  3. 方法 B (使用 Shapefile): 如果您上传了矢量文件到 Assets。
    varrois={// 必须使用 .geometry() 获取边界'我的县域边界':ee.FeatureCollection("users/您的用户名/您的文件名").geometry(),};
  4. 修改后,重新运行代码,下拉菜单中即会出现新选项。

4.2 如何修改产量预测公式

默认公式仅为线性演示。请根据您的地面实测数据进行修改。

步骤:

  1. 定位到runAnalysis函数内部,约第 184-186 行
  2. 找到以下代码段:
    varpredictedYield=seasonalMaxNDVI.expression('12.5 * NDVI - 1.5',{'NDVI':seasonalMaxNDVI}).rename('Yield_Prediction');
  3. 修改场景示例:
    • 场景 1: 调整线性系数(例如:y = 20 x + 5 y = 20x + 5y=20x+5)
      '12.5 * NDVI - 1.5'修改为'20 * NDVI + 5'
    • 场景 2: 二次多项式模型(例如:y = − 10 x 2 + 15 x y = -10x^2 + 15xy=10x2+15x)
      修改为'(-10 * NDVI * NDVI) + (15 * NDVI)'
    • 场景 3: 指数模型(例如:y = 5 × e 2 x y = 5 \times e^{2x}y=5×e2x)
      修改为'5 * exp(2 * NDVI)'

4.3 如何调整可视化阈值

如果修改公式后,地图显示的颜色全红或全绿,说明预测值超出了预设的显示范围 (2-10 t/ha)。

步骤:

  1. 定位到第 195 行左右:
    varyieldVis={min:2,max:10,palette:[...]};
  2. 根据您的产量范围修改min(最小值) 和max(最大值)。
    • 例如:如果是单产较高的玉米,可能需要设置为{min: 5, max: 15}





⚠️ 注意事项

  1. 云量影响: 如果选定的时间窗口内阴雨天气过多,Sentinel-2 可能因云量过滤导致部分区域出现空洞(无数据)。此时建议:
    • 扩大时间窗口。
    • 切换为 Landsat 卫星(重访周期不同,可能正好有晴空数据)。
  2. [cite_start]尺度效应: 图表统计中的.scale(30)参数 [cite: 34] 决定了计算精度。对于极大区域(如全省),建议将其调大(如 100或500),以避免 GEE 计算超时 (Computation Time Out)。
  3. 模型适用性: 本工具提供的仅为计算框架。严禁直接使用默认参数 (12.5, -1.5) 进行真实的农业投产决策,必须结合当地农学实验数据进行参数本地化校准。

GEE 系列源码分享

基于 GEE 平台 通过 NDVI 进行作物产量预测 源码分享

https://github.com/mojoin/GEE-
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 7:19:13

MechJeb2终极指南:KSP玩家的完整自动驾驶解决方案

MechJeb2终极指南&#xff1a;KSP玩家的完整自动驾驶解决方案 【免费下载链接】MechJeb2 MechJeb2 - KSP mod 项目地址: https://gitcode.com/gh_mirrors/me/MechJeb2 如果你曾经在Kerbal Space Program (KSP) 中为复杂的轨道力学和飞行操作而苦恼&#xff0c;那么MechJ…

作者头像 李华
网站建设 2026/5/1 8:35:15

对象的实例化过程详解

Java 对象的实例化过程&#xff08;JVM 视角&#xff09;——详细笔记目标&#xff1a;把 new 背后 JVM 做了什么讲清楚&#xff1a;类是否已加载&#xff1f;内存怎么分配&#xff1f;对象头怎么填&#xff1f;构造方法怎么跑&#xff1f;初始化顺序是什么&#xff1f; 适用&a…

作者头像 李华
网站建设 2026/5/1 5:00:25

SpringSecurity入门

SpringSecurity简介 SpringSecurity是一个功能强大且高度可定制身份验证和访问的控制框架&#xff1b;它是用于保护基于Spring的应用程序的实际标准&#xff1b;可以将java应用程序提供身份验证和授权。 安全技术方案对比 Shiro是一个强大且灵活的开源框架&#xff0c;能够…

作者头像 李华
网站建设 2026/5/1 5:09:54

微信机器人消息处理终极指南:从零构建智能响应系统

微信机器人消息处理终极指南&#xff1a;从零构建智能响应系统 【免费下载链接】wechaty 项目地址: https://gitcode.com/gh_mirrors/wec/wechaty 想要开发一个能够智能处理各类微信消息的机器人吗&#xff1f;微信机器人开发框架Wechaty提供了完整的消息处理解决方案&…

作者头像 李华
网站建设 2026/5/1 5:52:32

终极指南:Art Design Pro后台管理系统快速配置与核心功能解析

终极指南&#xff1a;Art Design Pro后台管理系统快速配置与核心功能解析 【免费下载链接】art-design-pro 这是一个基于 Vue3、TypeScript、Vite 和 Element-Plus 精心打造的后台管理系统模板&#xff0c;专注于用户体验和视觉设计。 项目地址: https://gitcode.com/GitHub_…

作者头像 李华
网站建设 2026/4/17 3:57:22

BeeWorks:不止于通讯,一体化平台如何让企业协作化繁为简?

我们早已习惯了在不同的应用间跳跃&#xff0c;让工作被工具割裂。BeeWorks 的出现&#xff0c;正是为了终结这种状态。它并非又一个简单的聊天软件&#xff0c;而是一个将 即时通讯、音视频会议与办公协作深度整合的一体化企业级平台。01 一体化入口&#xff0c;告别应用孤岛想…

作者头像 李华