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

基于GEE的非线性回归实现树木覆盖率预测

代码通过建立MODIS树木覆盖率数据(250m)与Landsat8影像之间的非线性回归生成了30m分辨率的树木覆盖率数据
(详细思路见注释)

// 定义研究区的矢量多边形
var wuyishan = ee.Geometry.Polygon( [ [ [118.55, 25.55], [118.55, 25.05],[119.05, 25.05],[119.05, 25.55]] ], null, false);// 将地图中心定位到研究区,缩放级别为9
Map.centerObject(wuyishan, 9); // 导入MODIS MOD44B图像集合
var mod44b = ee.ImageCollection('MODIS/006/MOD44B');// 通过过滤图像集合,仅获取2020年的图像,并选择树木覆盖百分比波段
var percentTree2020 = mod44b.filterDate('2020-01-01', '2021-01-01').first().clip(wuyishan).select('Percent_Tree_Cover'); // 在控制台打印2020年的图像信息以供检查
print('2020 Image', percentTree2020); // 将2020年的树木覆盖百分比图层添加到地图上
Map.addLayer(percentTree2020, { max: 100 
}, 'Percent Tree Cover'); // 导入Landsat 8原始图像集合
var landsat8_raw = ee.ImageCollection('LANDSAT/LC08/C02/T1_RT');// 过滤Landsat 8图像集合,只获取位于研究区的图像,并在特定时间范围内
var landsat8filtered = landsat8_raw.filterBounds(wuyishan.centroid({ 'maxError': 1 })) .filterDate('2020-01-01', '2020-4-30').sort('CLOUD_COVER').first(); // 在控制台打印过滤后的Landsat 8图像以供检查
print('Landsat8 filtered', landsat8filtered); // 设置可视化参数以显示Landsat 8图像
var visParams = { bands: ['B4', 'B3', 'B2'], // 使用红、绿、蓝波段max: 16000 
}; // 将Landsat 8图像图层添加到地图上
Map.addLayer(landsat8filtered, visParams, 'Landsat 8 Image'); // 组装自变量,即Landsat 8的波段
var predictionBands = ['B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B10', 'B11']; // 开始非线性回归
// 创建训练数据堆栈
var trainingImageCART = ee.Image(landsat8filtered.select(predictionBands)).addBands(percentTree2020);
// 从选择的预测波段中创建一个图像,并将2020年的树木覆盖百分比作为一个新波段添加// 采样训练数据堆栈。
var trainingData = trainingImageCART.sample({ region: wuyishan,  // 指定采样区域为Turinscale: 30,      // 指定采样的空间分辨率为30米numPixels: 1500, // 从区域中随机抽取1500个像素用于训练seed: 5         // 设置随机种子以确保可重复性
}); // 查看CART训练数据,在控制台输出训练数据的信息,便于检查数据是否正确
print('CART training data', trainingData); // 运行CART回归
// .setOutputMode('REGRESSION'):设置输出模式为回归(而不是分类)。这表示模型将预测连续值(如树木覆盖率),而不是类别标签
var cartRegression = ee.Classifier.smileCart().setOutputMode('REGRESSION').train({ features: trainingData,           // 使用前面采样得到的训练数据classProperty: 'Percent_Tree_Cover', // 指定目标属性为'Percent_Tree_Cover'inputProperties: predictionBands   // 指定输入特征为预测波段
}); // 基于CART回归创建树木覆盖的预测
var cartRegressionImage = 
landsat8filtered.select(predictionBands).classify(cartRegression, 'cartRegression'); 
// 使用训练好的CART回归模型对Landsat 8图像进行分类,以预测树木覆盖率,并将结果命名为'cartRegression'// 将预测结果添加到地图上进行可视化。
Map.addLayer(cartRegressionImage, { min: 0,    // 设置可视化的最小值为0max: 100   // 设置可视化的最大值为100
}, 'CART regression'); // 图层名称为'CART regression'

参考书籍:《Cloud-Based Remote Sensing with Google Earth Engine》
(可私信获取电子书)


http://www.mrgr.cn/news/62416.html

相关文章:

  • NFS服务器
  • PostgreSQL和MySQL在MVCC
  • 什么是目标检测?
  • 微信小程序如何实现地图轨迹回放?
  • Android平台RTSP转RTMP推送之采集麦克风音频转发
  • SD教程 重绘 ControlNet-Inpain
  • Qt 文件目录操作
  • 如何在Linux环境中的Qt项目中使用ActiveMQ-CPP
  • 2024年10款值得一试的加密软件:企业数据加密新选择
  • spring Bean的概念
  • 深度学习-理论知识
  • SQL神器,ChatGPT4o 比拟DBA
  • 【DBeaver】连接带kerberos的hive[Apache|HDP]
  • Manus Metagloves Pro虚拟现实手套
  • wasm 编译使用示例
  • 使用 Elastic、OpenLLMetry 和 OpenTelemetry 跟踪 LangChain 应用程序
  • nacos No DataSource set
  • 学习伊圣雨老师的 epoll 编程:select是水平触发模式,回声客户端代码,epoll 服务器端,验证默认的水平触发模式,采用边缘触发模式
  • 5G基础知识
  • 真题与解析 202209一级 青少年软件编程(Python)考级
  • 设备管理系统中的故障率监控与维修周期优化
  • 浅析HTTP协议
  • 静态数据加密:确保数据在存储中的安全性
  • Postman断言与依赖接口测试详解
  • 数据治理,数据提取,大数据中心建设,大数据治理总体解决方案书(word,ppt原件)
  • 人工智能算法之A*搜索算法