优化私有云,实现真正面向业务的遥感影像系统

前些日子,夜空爽朗,恰逢马斯克星链计划的通讯卫星组队通过。可惜在北京夜晚的光污染下,遗憾的错过了肉眼欣赏。但我这点遗憾相比将来组网成功造成大规模对外太空观测的“污染”,完全算不得什么。作为一个空间信息领域的工作者,我还在持续学习请教,试图看懂商业卫星领域投资鹊起的深度逻辑。单单就对地观测这一细分的行当,目前还是需要我们继续做思考。

星链计划的星座优雅的划过天穹

长城证券研究所的数据显示:2016年底,对地观测卫星的数量占全球运行卫星总数为1459颗的19%,而ResearchAndMarkets.com 在2019年的报告中预测,到2027年,对地观测的应用市场占整个商业航天市场的16%。对地观测,为什么要观测,观测什么,怎么观测,这些问题离大众生活看似像卫星一样遥远,但你只要秉承数据是新时代的石油,数据中有我们尚未发掘到的黄金这一信条,你就会对那些好像还很飘渺的科技怀有一份更积极的态度。

石油中有不少杂质,所以我们需要精炼厂;对地观测的大数据中,有用信息的密度更是低的吓人,我们需要更智能的精炼厂。商业卫星的对地观测乃至包括无人机、无人车、无人船等一系列泛遥感影像数据处理与挖掘的需求,与云计算的供给,二者吻合的太好了——无限的算力,无限的存储,即拿即用的访问,正好解决海量数据的诸多难题。自Google Earth Engine以后,我们对遥感有了全新的云想象。无奈,对地观测太有“情报”和“保密”的遐想空间了,公有云实在是承担不起风险。但谷歌的公有云为我们开了个好头,私有云能不能借力而上呢?

用Google Earth Engine上的LandSAT和SAR数据进行土地利用分类计算,示例来自@14n121e

关于私有云本身的建设,算是IT基础设施的范畴,这里不做深入探讨,但作为为一个现代的、面向协作应用的遥感影像私有云系统,至少要具备以下几个前提条件:

1、云端的存储近似无限扩展:可以随时不停机为数据的增多添加存储设备,随时保证所有数据的可用;预备好非结构化数据的对象存储每天以TB级数量的增长;

2、消息队列和排队系统已经就绪:所有新增数据的处理,均可自动按照规程进行,所有中间产生的消息和结果通知,均可自动发送给用户应用系统;

3、云端的算力近似无限扩展:为可能的效率要求,能响应任何影像算法需要的算力提升,算法可以透明化的定制;

4、海量影像数据可视化和访问Web化:用户完全可以通过浏览器(基于HTTP协议,松耦合,无插件)读取数据、表达数据和分析数据。

在这样的私有云能力基础上,虽然谁都不会达到Google Earth Engine的规模,但是用户可以感受到的一个“好用”的集中利用软硬件资源的内部大数据系统,用户明显的收益包括两点:

1、快速的借助云的算力获取处理的结果。 一个成规模的遥感影像数据处理素来比较费时,不说那些基础的正射、校正、匀色等数据产品分发之前的工作,就是作为业务中常见的NDVI计算,重采样,基于DEM的山影图制作等,如果在单机工作站上,全省级别的处理都是按天、甚至是按周为时间单位的。分辨率若再提升,处理的时间也会成几何级别的增长。借助Docker和当下更先进的K8S编排服务以及大量的内存计算,将任务可以分散到N个处理单元上。传统以天为周期的任务,只需几个小时就可以完成。即便有算法错误,需要重新计算,也不至于太仰天长叹了;

2、云和端的结合实现即时可视化的分析结果。 现代的云+端的系统运行在HTTP通讯协议之上,云上保证了算力的弹性和结构化、非结构化数据的对象访问,而客户端借助JavaScript、Python不可思议的丰富库,以及GDAL这样长期迭代的遥感影像资源包,完全可以在浏览器上就能实现可见即可得的影像操作。你不必等待云端完整的处理过程结束后才能看到结果,而可以在客户端随取、随用、随时与算法进行可视化的交互。

在浏览器端实现波段组合、NDVI、全色锐化等功能

用户要想获得这样的收益,有个大前提:那就是遥感影像的原始数据格式GeoTIFF——没有损失波段信息的、按照用户分辨率要求的、“分片流到”客户端。总结成要点是:

1、GeoTIFF原始文件,预先做了金字塔;

2、客户端可以发指令调用任何金字塔级别,任何范围,任何波段的数据;

3、可以不必遍历文件的直接获取任何数据块;

4、调用指令是标准的HTTP句法。

数据只要是到了客户端,JavaScript程序员就可以按照用户的场景做任意的组合了。而传统的二元对立,要么通过提前将影像瓦片化保证了浏览器上的访问效率但却失去了数据的波段信息,要么通过所有的操作在专业工作站、专业软件中运行,保证原始数据的波段完整性却失去了业务工作的简便性和广泛协作性。能将两者结合,不损失二者的好处却又避免了二者的不足,靠的是一个标准格式COG:Cloud Optimized GeoTIFF(云优化的GeoTIFF)。

我们可以把COG想象为流媒体的视频文件。用户在浏览器上播放视频的时候,不必将整个高清蓝光的视频文件下载下来,想播放哪一段,快进、后退即可。按照COG的官网介绍,云优化的GeoTIFF依靠两种互补的技术:

1、优化后的GeoTIFF不仅能够存储图像的原始像素,还能够以特定的方式组织这些像素;

2、响应HTTP GET RANGE请求,允许客户端只请求COG文件中它需要的部分。

这两种技术配合在一起,支持通过具有COG感知的客户端(适配COG的JavaScript代码、QGIS3.X等GIS桌面软件)进行完全在线的数据处理,因为它们可以根据需要流化GeoTIFF的部分数据,而不必下载整个文件。

COG其实已经不新鲜了,让我们自豪的是,自COG诞生的那天起,我们就在持续关注其技术演进的进程以及各大云服务商、对地观测数据公司、国外创业企业的跟进。目前,极海已经成功的实施了多个项目,帮助用户实现面向协作应用的遥感影像私有云的优化,并且已经建立了包含存储层、服务层和应用层完整的系统和标准操作流程。

无论是自建私有云还是借助公有云,快速实现COG工作
基于COG格式的计算服务和渲染服务,实现模型和可视两不误
面向客户端的API和应用框架,实现数据的分发和用户应用的快速开发

总结:

1、商业航天将会带来对地观测数据的激增,现在已经让人吃不消的数据规模只不过是个开端,无穷的数据将会成为无人问津的垃圾;

2、云计算是大数据的精炼厂,数据非提纯不可用,但私有化的遥感影像云,不经过优化,不断涌入的遥感数据只能是增加负担的“云鸡肋”;

3、COG目前是最佳的融合“云+端”的数据格式技术方案,简单的改造GeoTIFF,完全适配HTTP GET RANGE操作访问,是用户最轻松的选择;

4、极海完整实施项目的流程经验,在云和端均有多年实践的成熟技术,都能帮助用户优化遥感私有云,成为一个真正面向业务应用的系统。

注:封面影像为巴音布鲁克 ,坐标为 37.605039,89.210886