NDVI谐波拟合(基于GEE实现)

在遥感影像中,我们常用 NDVI(归一化植被指数)来衡量地表植被的绿度。它简单直观,是生态监测、农情分析的基础工具。但你是否注意到:

NDVI 虽然"绿",却常常"乱"。

因为云层、观测频率、天气干扰,NDVI 的时间序列往往是锯齿状断裂的,很难反映植物真实的生长节奏。

那么,能不能让 NDVI 曲线变得平滑、优雅?更重要的是,让我们看出植物一年中什么时候最绿、什么时候开始变黄?

答案就是:谐波拟合(Harmonic Regression)

我们用一套简单的数学模型------正弦函数 + 余弦函数的组合,就可以模拟 NDVI 的自然波动,就像听诊器一样,听出绿地的"心跳"与"节奏"。

这套方法不仅可以:

  • 去除 NDVI 的噪声、缺值干扰

  • 提取"年最大 NDVI 值"与"峰值出现时间"

  • 还可以看出城市、公园、农田中绿意的季节差异

一串函数,就能复刻大地的春夏秋冬。

我们在 GEE(Google Earth Engine)中完成了这项分析,原始 NDVI 和谐波拟合 NDVI 的对比图已经生成。未来我们还可以进一步提取出"绿期长度"、"相位差异"等生态指标。

📌 想获取脚本 or 全套实操教学?欢迎关注【全域智图】公众号。

复制代码
部分代码,完整代码关注公众号

// 1. 设置研究区域(成都点位,可自行替换)
var region = ee.Geometry.Point([104.07, 30.67]);
Map.centerObject(region, 8);

// 2. 加载 MODIS NDVI 数据(MOD13Q1)
var modis = ee.ImageCollection('MODIS/006/MOD13Q1')
  .filterDate('2020-01-01', '2021-01-01')
  .filterBounds(region)
  .select('NDVI')
  .map(function(img) {
    return img.multiply(0.0001).copyProperties(img, ['system:time_start']);
  });

// 3. 添加时间变量(以天为单位)
var withTime = modis.map(function(img) {
  var t = ee.Date(img.get('system:time_start')).difference(ee.Date('2020-01-01'), 'day');
  return img.addBands(ee.Image.constant(t).rename('t').toFloat());
});












print(chart);
// 9. 显示 NDVI 原始图像(选择其中一个时间点)
var exampleRaw = modis.filterDate('2020-07-01', '2020-07-15').median();
Map.addLayer(exampleRaw, {min: 0.1, max: 0.8, palette: ['white', 'green']}, '原始 NDVI');

// 10. 显示拟合 NDVI(同一时期)
var exampleFitted = fittedSeries.filterDate('2020-07-01', '2020-07-15').median();
Map.addLayer(exampleFitted, {min: 0.1, max: 0.8, palette: ['white', 'blue']}, '拟合 NDVI');

拟合NDVI

真实NDVI

相关推荐
IT_陈寒1 小时前
用了Proxy才发现以前的JavaScript白写了
前端·人工智能·后端
甲维斯1 小时前
Claude Opus5手搓“NewAPI Plus”首轮成果!
人工智能
程序猿DD1 小时前
分享两个我每天都在用的 Skill,拖进豆包就能跑,限时领 30 天会员
人工智能
阿里云大数据AI技术2 小时前
Agentic Search 2.0:从单轮对话迈向企业级 AI 搜索自动驾驶Agent
人工智能·elasticsearch·agent
东风破_2 小时前
从 messages 数组到 Memory:大模型到底是怎么“记住”上一轮对话的?
人工智能
AEI2 小时前
四年间大模型的演进历程
人工智能·面试·程序员
狂师2 小时前
阿里开源:skill-up,一款Agent Skill 评测工具!
人工智能·开源·agent
武子康2 小时前
同一套 Agent Runtime,为什么 Web、Headless 和 Python SDK 仍然不是同一个产品
人工智能·llm·agent
天天代码码天天2 小时前
一个纯 C 的 OCR Runtime,又向前走了一步:lw.PPOCR.C preview.5 发布
人工智能
程序员cxuan3 小时前
Claude 官方的学习教程,太强了。
人工智能·后端·程序员