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

教程:计算中国县级耕地 NDVI 均值并导出 CSV(MODIS)

教程:计算中国县级耕地 NDVI 均值并导出 CSV(MODIS)

本教程使用 Google Earth Engine (GEE),计算 2025 年 7 月至 8 月期间各县耕地 NDVI 均值,并导出 CSV 文件。


步骤 1:载入中国县级边界

// 加载中国县级边界矢量数据
// china_county 是 FeatureCollection,每个 feature 代表一个县
var china_county = ee.FeatureCollection("projects/ee-tilmacatanla/assets/boundry/china_county");
  • 逻辑:后续将根据这些县界计算 NDVI 均值。

  • 注意事项

    • 确保你的资产路径正确,GEE 能够访问。
    • feature 中最好包含县名和国标字段,方便导出时使用。

步骤 2:获取 NDVI 数据

// 设置分析时间范围
var startDate = ee.Date('2025-07-01'); // 开始日期
var endDate = ee.Date('2025-08-01');   // 结束日期(注意:GEE的filterDate是左闭右开)// 载入 MODIS MOD13Q1 NDVI 产品
var modis = ee.ImageCollection("MODIS/061/MOD13Q1").filterDate(startDate, endDate) // 筛选时间.select('NDVI')                 // 只保留 NDVI 波段.mean()                         // 取时间段内平均 NDVI.divide(10000);                 // MODIS NDVI 数据需要除以10000转换为0-1浮点
  • 逻辑:获取 2025 年 7 月整个月份的 NDVI 平均值。

  • 注意事项

    • MODIS NDVI 范围是 -2000 ~ 10000,需除以 10000。
    • .mean() 会对时间段内所有影像按像素求平均。

步骤 3:生成耕地掩膜

// 载入 2018 年 COPERNICUS 全球土地覆盖数据
var landcover = ee.Image("COPERNICUS/Landcover/100m/Proba-V-C3/Global/2018").select('discrete_classification'); // 使用分类波段// 创建耕地掩膜(类别代码 40 代表耕地)
var mask_crop = landcover.eq(40);// 应用掩膜,只保留耕地 NDVI
var ndvi_masked = modis.updateMask(mask_crop);
  • 逻辑:只计算耕地区域的 NDVI,其他区域屏蔽。

  • 注意事项

    • COPERNICUS 分类代码需确认,耕地通常是 40。
    • .updateMask() 会把非耕地像素设为无效(masked)。

步骤 4:计算每个县的平均 NDVI

var countyNDVI = ndvi_masked.reduceRegions({collection: china_county,       // 对每个县进行统计reducer: ee.Reducer.mean(),     // 使用平均值作为统计方法scale: 250,                     // MODIS 分辨率约 250 米crs: 'EPSG:4326',               // 坐标参考系tileScale: 4                     // 可提高大区域计算稳定性
}).map(function(f){// 给每个县添加额外属性return f.set('year', 2025).set('month', 7)             // 对应 7 月.set('NDVI', f.get('mean'))  // reduceRegions 默认生成 mean 字段.set('Name', f.get('name'))  // 保留县名.set('GB', f.get('gb'));     // 保留国标代码
});
  • 逻辑

    • reduceRegions() 会将栅格 NDVI 汇总到矢量县界,生成每个县的平均 NDVI。
    • map() 添加年份、月份和保留的属性字段。
  • 注意事项

    • scale 设为 250 米,保证与 MODIS 分辨率匹配。
    • tileScale 可根据区域大小调整,防止内存溢出。

步骤 5:打印前 10 个县属性

// 获取前 10 个县
var first10 = countyNDVI.limit(10);// 转换为 List
var first10List = first10.toList(first10.size());// 提取属性字典
var props = first10List.map(function(f){f = ee.Feature(f);return f.toDictionary(['GB','Name','year','month','NDVI']);
});print('前10个县属性:', props);
  • 逻辑:方便快速查看结果是否合理。

  • 注意事项

    • .limit(10) 仅用于预览。
    • .toDictionary() 可以只提取需要的字段,便于打印。

步骤 6:导出所有县 NDVI 为 CSV

Export.table.toDrive({collection: countyNDVI,             // 要导出的 FeatureCollectiondescription: 'China_County_NDVI_Jul2025', // 任务名称folder: 'GEE_Export',               // Google Drive 文件夹fileNamePrefix: 'China_County_NDVI_Jul2025', // 文件名前缀fileFormat: 'CSV',                  // 导出格式selectors: ['GB','Name','year','month','NDVI'] // 导出字段顺序
});
  • 逻辑:将每个县的 NDVI 结果导出到 Google Drive,方便 Excel 或 Python 分析。

  • 注意事项

    • selectors 控制 CSV 列顺序。
    • 导出任务需手动在 GEE 界面启动。
    • 导出文件夹 GEE_Export 需存在或 GEE 会自动创建。

总结

  1. 数据来源

    • 栅格:MODIS MOD13Q1 NDVI、COPERNICUS 土地覆盖。
    • 矢量:中国县级边界。
  2. 处理流程

    1. 载入矢量边界。
    2. 获取时间段 NDVI 平均值。
    3. 创建耕地掩膜。
    4. 汇总到县级(reduceRegions)。
    5. 打印查看。
    6. 导出 CSV。
  3. 可扩展

    • 时间段可按月、季度、年修改。
    • 可增加其他波段(如 EVI)或其他作物类型掩膜。
    • 输出可按省份或其他行政单位聚合。
http://www.dtcms.com/a/353542.html

相关文章:

  • MySQL 基础:DDL、DML、DQL、DCL 四大类 SQL 语句全解析
  • Windows系统Docker中Xinference 集群无法启动的解决方法
  • 深度剖析HTTP和HTTPS
  • LIO-SAM的后端
  • 【stm32简单外设篇】-4×4 薄膜键盘
  • 主流技术栈 NestJS、TypeScript、Node.js版本使用统计
  • 打印机共享修复,打印机无法共享,打印机修复工具下载及安装
  • ChatGPT 上线 “学习模式”:全版本开放,重构 AI 教育逻辑
  • 《电商库存系统超卖事故的技术复盘与数据防护体系重构》
  • 设计模式:桥接模式(Bridge Pattern)
  • C# 使用抽象工厂模式实现花园规划系统的设计与实现
  • electron离线开发核心环境变量npm_config_cache
  • python自学笔记14 NumPy 线性代数
  • 嵌入式linux相机(1)
  • Chrome插件开发【storage】
  • 重学JS-005 --- JavaScript算法与数据结构(五)回顾 DOM 操作
  • 实战Kaggle比赛:狗的品种识别(ImageNet Dogs)
  • SpringBoot整合RabbitMQ:从消息队列基础到高可用架构实战指南
  • 视频孪生技术在人工智能领域的应用价值:从虚实融合到智能决策
  • 人工智能在医疗风险预警中的技术应用综述
  • 《零基础入门AI: 目标检测基础知识》
  • Apache Commons Lang 3
  • 设备电机状态监测:通往预测性维护与效能飞升之路
  • AutoMQ 荣获 AWS Differentiated Partner 顶级认证!
  • 基于改进蜂群优化算法的高频金融波动率预测系统 (源码+论文+部署+安装)
  • ES02-常用API
  • qt c++ QTableWidget
  • Gopher URL协议与SSRF二三事
  • 帕累托优化:多目标决策的智慧与艺术
  • “下一代”图像模型——ComfyUI-Flux-Krea本地部署教程,体验划时代的图像质量