记录Google Earth Engine(GEE)上手指南

Google Earth Engine(GEE)
记录的原因:

第一、用来记录和单纯的学习一下这个强大的数据处理工具,说不定就会用到呢;简单记录一下,便于快速上手;
第二、出于我用其他的工具处理同一批数据,他的效率略高于我,占用的内存在合理的范围内,所以将其作为备用学习方案中;
第三、探讨学习、多掌握一项处理方式,就多一条通往成功实验的道路,而且节省搜索和整理处理数据的时间;

一、相关背景介绍

Google Earth Engine(GEE)的初步认知及背景介绍参考博文:https://blog.csdn.net/qq_41240287/article/details/124131913

强推这个博主的介绍,很实用很友好:https://blog.csdn.net/qq_44246618/article/details/142577095

可以直接跳过的背景介绍部分:

Google Earth Engine(GEE)是全球领先的地理空间数据分析平台,其核心价值在于将PB 级卫星数据与无限算力深度整合,为环境监测、气候研究、城市规划等领域提供颠覆性解决方案。

为什么选择GEE:
1、全球最大遥感数据库:整合 NASA、ESA 等机构的 200 + 公共数据集,涵盖 Landsat(40 年历史)、Sentinel-2(10 米分辨率)、MODIS(每日全球覆盖)等主流卫星数据,总数据量超*PB(忘记了多少PB);
2、多源数据融合:无缝衔接气象数据(如 CHIRPS 降水)、地形数据(SRTM)、矢量数据(全球行政边界),形成多维分析基础;
3、动态更新机制:每日新增XX千景影像,支持近实时监测(如 Sentinel-2 数据延迟仅 2-5 天);
4、云端分布式计算:依托 Google 云平台的百万级服务器集群,可并行处理全球尺度数据,例如生成全球 NDVI 时间序列仅需数分钟;
5、零硬件投入:无需搭建本地服务器,避免数据存储与计算资源的巨额成本,特别适合科研机构和存储空间不足的学生;
6、跨学科协作:支持 Python/JavaScript 多语言开发,即可专注算法设计,也可快速实现 Web 可视化;

GEE 的技术特点
1、影像集合(ImageCollection)​
核心功能:将多时相遥感影像抽象为时间序列对象,支持时间筛选、影像镶嵌、质量优先合成等操作。​
应用实例:通过filterDate()筛选 2023 年全年 Sentinel-2 影像,结合qualityMosaic()自动生成无云合成图,消除云层对分析的干扰。
2、地理引擎(Geometry)​
核心功能:内置矢量几何运算工具,支持缓冲区分析、空间交集、叠加分析等操作。​
应用实例:利用流域边界矢量(Geometry)与耕地栅格数据进行空间交集计算,快速提取某流域内的所有耕地斑块。
3、属性驱动分析​
核心功能:通过reduceRegion()、aggregate_array()等方法,实现栅格数据与矢量边界的联动统计。​
应用实例:基于省级行政边界矢量,使用reduceRegion()计算区域内的降水量均值,生成省级气候统计报表。
4、遥感专用算子​
核心功能:集成波段运算(如 NDVI、EVI 计算)、云掩膜(基于 QA 波段)、地形校正(太阳几何模型)等工具。​
应用实例:通过expression()函数快速计算 Landsat 8 的 NDVI 指数,结合 QA 波段的云掩膜算法,自动剔除云层覆盖区域。
5、机器学习深度集成​
核心功能:支持与 TensorFlow 对接,将 GEE 数据导出为 TFRecord 格式用于模型训练,并通过ee.Model实现云端推理。​
应用实例:利用分层随机抽样(stratifiedSample)生成土地覆盖训练样本,导出至 TensorFlow 训练 U-Net 模型,再通过 GEE 实现全球土地覆盖分类。
6、时间序列分析工具​
核心功能:提供 Savitzky-Golay 滤波、线性回归、季节性分解等时序处理算法。​
应用实例:对 2000-2020 年 MODIS NDVI 时间序列进行 Savitzky-Golay 滤波去噪,通过线性回归分析植被覆盖变化趋势,量化全球绿化程度。
7、实时地图渲染与交互​
核心功能:通过Map.addLayer()在浏览器中实时可视化分析结果,支持波段组合切换(如 RGB、假彩色)和专业调色板(如 cpt-city)。​
应用实例:动态叠加 Sentinel-2 的 B8/B4/B3 波段作为真彩色影像,结合自定义调色板显示热红外波段,直观展示城市热岛效应。
8、时间序列动画生成​
核心功能:通过 Timelapse 工具一键生成动态影像,直观呈现地理现象的时空演变。​
应用实例:基于 Landsat 5/7/8 影像生成 1984-2024 年某湖泊的水域变化动画,用于水资源演变研究。
9、高分辨率成果导出​
核心功能:支持导出 10 米分辨率的分类结果、统计图表或矢量数据,直接用于论文发表或政策报告。​
应用实例:将 GEE 生成的全球 30 米土地覆盖分类结果导出为 GeoTIFF 格式,分辨率达 30 米,满足科研 publication 精度要求。

参考博文:
https://blog.csdn.net/A_aharon/article/details/126045475
https://developers.google.com/earth-engine?hl=zh-cn
https://developers.google.com/earth-engine/tutorials/edu?hl=zh-cn
https://blog.csdn.net/shi_weihappy/article/details/93849370
https://blog.csdn.net/qq_31988139/article/details/128751325
https://blog.csdn.net/qq_31988139/article/details/148070926
https://blog.csdn.net/WangYan2022/article/details/131678440
https://cloud.tencent.com/developer/article/2385777
https://blog.csdn.net/gitblog_00668/article/details/141148201
以及豆包AI辅助总结!!!

二、开始简易上手示范

1、要有一个谷歌账号 *.gmail.com,,,注册谷歌账号的小tips:https://zhuanlan.zhihu.com/p/31868292044 亲测可用,但是过了这个时间段的话,可能就会失效,任何教程都有一定的时效性!

2、GEE网址:谷歌、火狐登录谷歌邮箱账号,登录完成之后,找到GEE的网址:这个是主页界面——
https://developers.google.com/earth-engine/datasets?hl=zh-cn

3、进入代码编辑器的界面的方法

3.1、方法1

方法1——直接在主页面搜索自己所需要处理的数据,然后点击进入详细界面,下拉即可看到如下图所示内容:
在这里插入图片描述

在这里插入图片描述
3.2、方法2:

方法2——也可以通过链接直接进入代码界面:要登录谷歌账号,登录进入之后是这个界面——
https://code.earthengine.google.com/?scriptPath=Examples%3ADatasets%2FMODIS%2FMODIS_061_MCD43A3&hl=zh-cn

在这里插入图片描述
4、点击上图的 “ I WANT TO REGISTER A NEW PROJECT ” 跳转到Google Cloud ——https://console.cloud.google.com/projectselector2/earth-engine/configuration?inv=1&invt=Ab1gsg&supportedpurview=project
这里要选一个地址,随便选吧,我选的香港,然后就是下图所示的界面了
在这里插入图片描述
5、创建一个新项目:

在这里插入图片描述
在这里插入图片描述
项目创建成功,然后继续注册,才可以使用这个项目。
在这里插入图片描述
这里有一个特别重要的一步,是一定要启用API,不然代码界面那里会报错——
在这里插入图片描述
注册成功之后,跳转到代码编辑器界面——

5、选择项目,等待在Google Cloud新建的项目,选择它
在这里插入图片描述

6、接下来就是:点、点、点、点、点、点…

在这里插入图片描述
7、测试一下,以下是一个不成熟的代码,小小测试一波(注,代码有瑕疵,慎用,仅作为测试)

// 定义感兴趣区域(ROI) - 修改此处经纬度坐标
var roi = ee.Geometry.Rectangle([
  100, 18,  // 左下角: 经度, 纬度
  125, 45   // 右上角: 经度, 纬度
]);

// 在地图上显示ROI区域
Map.centerObject(roi, 6);
Map.addLayer(roi, {color: 'FF0000'}, 'Study Area');
var dataset = ee.ImageCollection('MODIS/061/MCD43A3')
  .filterDate('2016-1-02', '2017-01-01')
  .filterBounds(roi) // 按区域筛选影像
  .select('Albedo_WSA_shortwave')
  .map(function(img) {
    return img.multiply(0.001).resample('bicubic')
      .reproject('EPSG:4326', null, 10000)
      .clip(roi) // 裁剪影像到ROI范围
      .copyProperties(img, img.propertyNames());
  });
print('dataset', dataset);

// 导出影像集
function exportImageCollection(imgCol) {
  var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["system:index"])
    .get("list");
 
  indexList.evaluate(function(indexs) {
    for (var i = 0; i < indexs.length; i++) {
      var image = imgCol.filter(ee.Filter.eq("system:index", indexs[i])).first();
      print('Exporting image:', indexs[i]);
      
      Export.image.toDrive({
        image: image,
        description: indexs[i],
        fileNamePrefix: indexs[i],
        region: roi, // 指定导出区域
        scale: 10000,
        crs: "EPSG:4326",
        maxPixels: 1e13
      });
    }
  });
}
exportImageCollection(dataset);    

结果展示图: 可运行
在这里插入图片描述

三、GEE相关插件:

Open Earth Engine Extensions —— 一键运行全部 Run All
地址1:谷歌商店
https://chromewebstore.google.com/detail/open-earth-engine-extensi/dhkobehdekjgdahfldleahkekjffibhg
地址2:插件小屋
https://www.chajianxw.com/developer/67965.html
上述两个地址都可以找到,可以直接一键安装,也可以离线安装,离线安装也在插件小屋内;
已经测试可以使用的浏览器:谷歌、Edge、联想浏览器、QQ浏览器、Firefox,已经测试这些均可以安装扩展。

效果展示图1:
在这里插入图片描述
效果展示图2
在这里插入图片描述
效果展示图3
在这里插入图片描述
到此,简单上手教程结束!!!

志谢:

感谢上述所有以及有所参考但未提及到博文作者们得无私分享遥感与 GEE 技术的实践经验,让我这个小白可以一路绿灯而行;
感谢 GEE 平台提供 PB 级遥感数据存储与爆炸式的计算能力。
特别致谢 GEE 技术开发团队,持续性优化平台性能、维护数据同步等(先感谢,后续处理全球数据一定会青睐于他)。
同时,感谢谷歌邮箱团队打造的 15GB 免费存储,得以更好的处理数据(小声嘀咕,能不能多点内存啊,这点点不够用哇)。
最后,向所有平台工作者致敬,你们的努力让数据驱动的科学研究与环境等管理成为时代的趋势。
当然啦,也要谢谢我自己,又学习到了一个技能,点满技能点,攻坚克难啊,冲鸭!!!

### Google Earth Engine 地理空间数据处理与分析 Google Earth Engine (GEE) 是一种基于云计算的强大平台,专为地理空间数据分析设计。该平台不仅能够加载海量的卫星影像和其他地理空间数据集,还支持复杂的空间运算和统计分析[^1]。 #### 平台核心功能概述 GEE 提供了一系列的功能模块,涵盖了从数据获取到最终可视化的整个流程。其主要特点包括但不限于: - **大规模数据存储**:内置超过 4PB 的遥感数据,这些数据可以直接调用而无需下载。 - **高性能计算能力**:利用分布式计算架构加速复杂的地理空间算法运行。 - **灵活的编程接口**:除了官方提供的 JavaScript API 外,Python 用户也可以借助 `earthengine-api` 库实现脚本化操作[^2]。 #### 常见应用场景举例说明 以下是几个典型的应用实例展示如何充分利用 GEE 进行研究工作: ##### 1. 时间序列分析 通过对多年份同一区域内的植被指数 NDVI 或土地覆盖类型的监测,评估环境变迁趋势。例如下面这段 Python 脚本展示了如何读取 MODIS 数据集合并绘制平均NDVI曲线图: ```python import ee, folium ee.Initialize() def get_ndvi(image): ndvi = image.normalizedDifference(['NIR', 'Red']).rename('NDVI') return image.addBands(ndvi) collection = ee.ImageCollection("MODIS/061/MOD13Q1") \ .filterDate('2000-01-01','2023-01-01') ndvi_collection = collection.map(get_ndvi).select('NDVI') vis_params = {'bands': ['NDVI'], 'min': -1,'max': 1} map_id_dict = ee.Image(ndvi_collection.mean()).getMapId(vis_params) folium.Map(location=[latitude, longitude], zoom_start=7, tiles="https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}", attr='GoogleEarthEngine').add_child(folium.TileLayer( tiles=f"http://server/{map_id_dict['tile_fetcher'].url_format}", attr='GoogleEarthEngine')).save('output_map.html') ``` ##### 2. 图像配准与校正 当面对不同来源或者时期拍摄的照片存在几何偏差时,则需要执行精确的地理配准过程。这一步骤对于确保后续叠加分析准确性至关重要[^3]。 ##### 3. 气候变量提取 假设我们感兴趣的是某特定区域内长期气象记录的变化情况,那么可以从 ERA5 再分析产品中检索相应参数值,并进一步探讨两者间可能存在的关联关系[^4]。 ```python # 加载ERA5月均气温数据集 era5_temp = ee.ImageCollection("ECMWF/ERA5_LAND/MONTHLY").select('temperature_2m') point_of_interest = ee.Geometry.Point([-95.7129, 37.0902]) time_series = era5_temp.getRegion(point_of_interest, scale=1000).getInfo() df = pd.DataFrame(time_series[1:], columns=time_series[0]) plt.plot(df.iloc[:,0].astype(float), df.iloc[:,-1].astype(float)) plt.xlabel('Time'); plt.ylabel('Temperature ($^\circ$C)') plt.title('Monthly Average Temperature at Point of Interest'); ``` #### 结论 综上所述,Google Earth Engine 不仅简化了传统 GIS 工作流中的繁杂环节,而且极大地提高了科研效率以及成果产出质量。无论是初学者还是资深开发者都能从中受益匪浅。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值