近年来遥感技术得到了突飞猛进的发展,航天、航空、临近空间等多遥感平台不断增加,数据的空间、时间、光谱分辨率不断提高,数据量猛增,遥感数据已经越来越具有大数据特征。遥感大数据的出现为相关研究提供了前所未有的机遇,同时如何处理好这些数据也提出了巨大的挑战。传统的工作站和服务器已经无法胜任大区域、多尺度海量遥感数据处理的需要。
Google Earth Engine是谷歌公司提供的全球尺度地球科学数据(尤其是卫星遥感数据)在线可视化计算和分析云平台。该平台能够存取和同步遥感领域目前常用的MODIS、Landsat和Sentinel等卫星图像和NCEP等气象再分析数据集,同时依托全球上百万台超级服务器,提供足够的运算能力对这些数据进行处理。截止目前,GEE上包含的数据集超过200个公共的数据集,每天新增数据量超过 4000幅影像,容量超过50PB。相比于ENVI等传统的处理影像工具,Google Earth Engine在处理海量遥感数据方面具有不可比拟的优势,一方面GEE平台提供了丰富的计算资源,另一方面其巨大的云存储节省了科研人员大量的数据下载和预处理的时间。可以说,GEE在遥感数据的计算和分析可视化方面代表世界该领域最前沿水平,是遥感领域的一次革命。
目前,GEE以其强大的功能受到了国外越来越多的科技工作者的重视和应用,然而在国内应用还十分有限。GEE提供了基于Javascript和Python语言的API,前者是官方主推平台的编程语言,易于上手但在输入输出和绘图可视化等方面存在不足,而Python作为目前最受欢迎的编程语言,能够弥补Javascript在这方面存在的不足,且更方便批处理和机器学习。
GEE-Python基础
GEE平台及应用、主要数据资源;重要概念及数据类型与对象;影像数据分析处理流程;JavaScript与Python比较与选择等。
2.Python编程基础简介
Python优势简介;基础语法、数据类型与程序控制结构、函数及类与对象;pandas, numpy等常用软件包及基本功能、excel/csv等数据文件读取、可变参数使用等。
3.GEE-Python平台搭建与调试
本地端环境与Colab平台介绍;Anaconda安装、虚拟环境创建、earthengine-api等必备程序包安装、GEE授权;不同本地端环境Jupyter Notebook和Visual Studio Code比较等。
4.geemap及主要功能演练
geemap简介和基本操作,包括栅格和矢量加载与可视化,感兴区域绘制、云计算工具箱和本地端WhiteboxTools应用、简单绘图等。
5.GEE-Python编程概要
Python与JavaScript API差异及注意事项;重要学习资源推荐;geemap常用API介绍及使用演示;Javascript代码自动转Python及常见问题处理;循环遍历等。
GEE主要功能Python实现
1.GEE常用操作与算法
要素和影像等对象属性查看、时空过滤、数据整合等;常用光学影像数据Landsat /Sentinel-2等去云、Harmonization;不同数据植被指数计算、时间序列数据合成与批量导出;影像归一化与标准化、影像多时相合成、统计分析(如影像覆盖度、年度植被指数最大/最小值的空间位置与时间等)、主成分分析(PCA)和缨帽变换(K-T变换)等。
2.时间序列影像平滑(Smoothing)与间隙填充(Gap-filling)
时间序列影像常用平滑和插值原理及代码实现,如移动窗口平均(Moving Window Smoothing)、S-G(Savitzky-Golay Smoothing)平滑和空间插值等。
3.空间抽样与样地数据提取
主要空间抽样方法介绍,包括基于固定网格的空间随机样点和具体图
层的分层随机抽样代码实现;抽样点对应栅格数据提取与下载等。
4.机器学习分类算法与精度评估
常用机器学习算法(随机森林RF、支持向量机SVM、面向对象等)介绍、工作流程及操作演练;误分样点标识与分类结果精度评估;联合scikit-learn等本地端机器学习训练与GEE云端应用。
5.空间分析与区域统计、面向对象分析
常用分类后处理,形态学运算、MMU操作等;分类面积统计与变化检测,栅格与矢量转换等;面向对象影像分析,如对象标注、对象大小分析、对象过滤、区域统计等。
6.时间序列趋势分析
以多年的植被指数或气象数据为例,进行回归分析、非参数趋势分析(趋势检验、方差分析、显著性检验)和时间序列建模等操作。
7.GEE-Python数据分析专属模块构建
基于前期学习和个人喜好,构建自己专属GEE-Python模块,封装常用函数以方便对数据进行快速分析处理,比如Landsat和Sentinel-2等光学影像的云和阴影掩码、植被指数计算等功能函数封装;模块函数调试技巧等。
数据输入输出及数据资产(Assets)高效管理
1.本地文本/矢量/栅格等数据与GEE云端交互
本地端csv、kml、矢量和栅格数据与云端数据相互转换;要素/要素集、影像/影像集的属性信息查看与本地导出等。
2.服务器端影像与影像集数据批量下载
直接本地下载、影像集批量下载,以及大尺度和长时间序列数据快速下载的方法与技巧。比如,批量下载ESA全球森林分布图(可用于本地端森林破碎化分析等)、快速下载20年的MODIS等数据到本地端(用于本地端物候分析等)等。
3.本地端矢量/影像数据上传GEE个人资产和属性设置
earthengine命令介绍、本地端矢量与栅格直接上传与属性设置(小文件)、本地端多文件(如多年GPP数据)批量上传及属性自动设置、数GB超大影像文件(如高分或无人机影像)快速上传技巧分享、Cloud Storage使用介绍等。
4.GEE个人数据资产管理
联合Python和GEE命令行,对个人数据资产进行高效管理,包括创建、批量删除、移动、重命名;上传/下载任务批量取消;数据资产属性字段删除等。
GEE云端数据论文出版级可视化
1.Python可视化及主要软件包简介
matplotlib,seaborn可视化程序包介绍,基本图形概念、图形构成介绍,常用图形快速绘制等。
2.研究区地形图绘制
基于云端地形数据,结合本地或云端矢量边界,在线绘制任意区域地形图,中文显示及配色美化技巧分享,比如geemap的colormaps模块使用,cpt-city精美调色板palette在线下载与本地端应用等。
3.研究区域影像覆盖分析统计和绘图
结合本地或云端矢量边界,对指定区域Landsat和Sentinel等系列影像的覆盖数量、无云影像覆盖情况进行统计,绘制区域影像统计图或无云影像覆盖专题图。
4.样本光谱特征与物候特征等分析绘图
基于云端影像和本地或云端样本信息,快速绘制不同类型样地的光谱或物候特征,探索最佳可分离性波段或最值分离时间窗口;动态下载样点对应年内或30年植被指数时间序列和周边无云影像缩略图(thumbnails)并整合(类似Timesync),快速判断样地植被物候或多年扰动历史,生成可靠的算法训练或精度评估样本,或算法展示等。
5.分类结果专题图绘制及时空动态延时摄影Timelapse制作
单幅或多幅分类专题图绘制及配色美化,土地利用变化清晰Timelapse制作、动画文字添加等;以谷歌高清影像为背景的专题图绘制。
6.分类结果面积统计与绘图
基于云端的分类结果,结合本地或云端矢量边界文件,统计不同区域不同地类面积,提取统计结果,以不同图形展示统计面积;土地利用变化统计绘图等。
综合应用范例
基于PALSAR/PALSAR-2雷达、Landsat影像的森林年度动态监测
主要包括研究区域绘制、影像统计、决策树算法开发、分类结果精度评估、分类结果出图、市县尺面积统计出图等。