自1960 年第一颗美国气象卫星成功发射至今,遥感技术迅速发展,地球轨道上充满了全球尺度的各种各样的对地观测卫星,人类已有近半个世纪历史遥感数据积累。随着高分辨率对地观测时代的来临,遥感平台和传感器的不断改进和增加使得各种遥感数据量快速增加,空间分辨率、时间分辨率、光谱分辨率等技术指标不断提高,在数据层面上已经表现出体量大 (Volume)、种类多 (Variety)、 变 化 快 (Velocity)、 准 确 性(Veracity) 和高价值 (Value) 的“5V”特征,我们进入了一个前所未有的遥感大数据时代。遥感数据量的急剧增长,遥感数据多样化和复杂性的增加,使得遥感数据实时处理的需求日益突出,这些对于传统的遥感数据存储和处理提出了挑战。
遥感云计算技术的发展和平台的出现为遥感大数据处理和分析提供了前所未有的机遇,具体表现为:1) 云端有海量数据资源,无需下载到本地处理;2) 云端提供批量和交互式的大数据计算服务;3) 云端提供应用程序接口 API (Application Programming Interface),无需在本地安装软件。这彻底改变了传统遥感数据本地下载、处理与分析的模式,进一步降低了使用遥感数据的准入门槛,极大提高了运算效率,加速了算法测试的迭代过程,使得原本在台式机或服务器上难以实现的全球尺度地球系统科学快速分析和应用成为可能。
云平台是支撑一切云计算服务的基础架构,在计算机网络的基础上提供各种计算资源的统一管理和动态分配,达到实现云计算的目的。从服务模式上看,云分为公有云、私有云和混合云,遥感云计算平台也可分为公有云平台、私有云平台和混合云平台。Python作为一门开源、跨平台的语言,具有可移植性高、可扩展性强以及丰富的第三方库的特点,在大数据处理、云计算等方面有着无与伦比的优势,例如目前非常流行的云计算框架OpenStack就是基于Python开发的、谷歌应用引擎(Google APP Engine)也是围绕Python构建的,此外,遥感云计算平台也常常将Python作为其应用程序接口。
本文将对一些常用的遥感云计算平台进行简要的介绍,并以公有云平台中发展最为成熟的Google Earth Engine为例演示演示Python在遥感大数据和云计算中的应用。需要强调的是,JavaScript版的Earth Engine的API学习是其他知识的基础,且Earth Engine官方并未提供Python版的API接口文档,读者可以直接类比JavaScript版的API来深入学习Python版的API。
公有云是最常见的云计算部署类型。公有云资源(例如服务器和存储空间)由第三方云服务提供商拥有和运营,这些资源通过网络提供给用户服务。在公有云中,所有硬件、软件和其他支持性基础结构均为云提供商所拥有和管理。基于公有云的遥感云计算平台主要以美国谷歌地球引擎 GEE (Google Earth Engine)(Gorelick 等,2017)发展比较成熟,已经得到广泛应用,此外还有笛卡尔实验室的Descartes Labs、亚马逊的Amazon Web Services、微软的Microsoft Planetary Computer等;中国遥感云计算平台的建设也在快速推进中,如面向中科院A类先导专项“地球大数据科学工程”需求研发的地球大数据挖掘分析平台EarthDataMiner、航天宏图的遥感计算云服务平台 Pixel Information Expert(PIE) - Engine,均已取得了重要进展。