面向大规模分析的多源对地观测时空立方体
随着对地立体观测体系的建立,遥感大数据不断累积。传统基于文件、景/幅式的影像组织方式,时空基准不够统一,集中式存储不利于大规模并行分析。对地观测大数据分析仍缺乏一套统一的数据模型与基础设施理论。近年来,数据立方体的研究为对地观测领域大数据分析基础设施提供了前景。基于统一的分析就绪型多维数据模型和集成对地观测数据分析功能,可构建一个基于数据立方的对地观测大数据分析基础设施。因此,本文提出了一个面向大规模分析的多源对地观测时空立方体,相较于现有的数据立方体方法,强调多源数据的统一组织、基于云计算的立方体处理模式以及基于人工智能优化的立方体计算。研究有助于构建时空大数据分析的新框架,同时建立与商业智能领域的数据立方体关联,为时空大数据建立统一的时空组织模型,支持大范围、长时序的快速大规模对地观测数据分析。本文在性能上与开源数据立方做了对比,结果证明提出的多源对地观测时空立方体在处理性能上具有明显优势。
开源数据立方体是由卫星对地观测委员会CEOS(Committee on Earth Observation Satellites)推动的项目,目标是为了降低数据立方构建过程中的技术屏障,提供一种构建数据立方体的开源解决方案(CEOS,2020b)。开源数据立方面向卫星遥感数据,其通过对遥感影像进行重采样、重投影等处理,以瓦片的组织模式将数据纳入到统一的时空基准下进行管理。开源数据立方采用5个简单的数据表并结合JSONB格式来管理瓦片元数据,采用NetCDF格式存储瓦片数据。开源数据立方同样提供了OGC 网络覆盖服务和网络处理服务等接口,并且支持用户在Jupyter Notebook中自定义开发。
地球系统数据立方体是一个面向多源栅格数据的基础设施,该立方体将数据源作为一个维度,将多源栅格数据组织在一个统一分辨率和坐标系统的立方体中,有助于多源栅格数据的联合分析。该立方体主要采用Julia语言进行开发,同时也支持Python和R语言。数据存储方面采用Zarr数据格式在云上存储(https://zarr.readthedocs.io[2020-12-15]),通过文件目录的形式组织。针对每一个立方体实例有一个配置文件,描述了立方体的时空分辨率等信息。用户可通过文件传输FTP(File Transfer Protocol)的方式浏览目录并访问数据,也可通过OGC 网络覆盖服务来获取数据,或通过JupyterNotebook访问并分析数据。
本文提出了一个面向多源数据管理和大规模分析的立方体基础设施GeoCube,相比于已有的立方体方法:(1)GeoCube支持统一时空基准下的多源数据管理,包括栅格数据和矢量数据。基于商业智能领域事实星座模型管理元数据,可灵活扩展支持更多数据源;(2)GeoCube结合瓦片组织模式和云计算优势,支持多源数据的长时序大规模分析;(3)GeoCube引入人工智能领域技术,优化负载均衡性能,提高并行计算效率。
2 方法和设计
本文提出了一个新的地理空间数据立方体。首先,该立方体兼容多源地理空间数据包括栅格和矢量。针对数据特点,为立方体设计了4个维度包括空间、时间、产品以及波段。立方体中数据以空间对齐的方式组织,形成时间序列产品,因而该立方体又称为多源时空立方体。其次,立方体采用云计算技术来支持瓦片的高效处理,提出了一套面向立方体数据的分布式内存对象。目前支持矢量和栅格数据,可扩展支持轨迹等其他数据类型。最后,本文采用人工智能机器学习从数据科学的角度捕捉瓦片的计算特征,优化大规模并行计算过程的负载均衡性能,提高硬件的利用率。
2.1 立方体维度设计
2.1.1 立方体多维组织模型
对地观测数据通常由多维地理空间数据组成,维度包括时空维度以及其他主题维度。本文针对栅格和矢量数据特点,为立方体设计了4个维度如下(图1):
(1)产品维:数据的产品信息,包含产品名称、产品类型、所属传感器、层级信息以及参考坐标系。其中产品名称描述了某一类产品,比如Landsat 8分析就绪数据和OSM水体数据。产品类型用于判断产品属于栅格还是矢量数据类型。产品维和波段维通过一个产品&波段附加表关联,可获取该产品包含的波段信息。矢量产品没有波段信息,因此该附加表中只有影像产品。
(2)空间维:每个网格的空间信息,包含网格编码、行列号、层级、所属城市和省份。其中网格编码采用Z空间填充曲线以提高查询速度;层级属性存储了全球网格基准信息,支持用于分析的瓦片分辨率信息存储,比如1°×1°瓦片包含6250×6250个像素,同时支持用于可视化的金字塔瓦片的不同层级分辨率信息存储;城市和省份属性可满足用户在空间维度上的语义查询。
(3)时间维:瓦片的时间维度信息,包含成像时间,处理时间和年、月、日等信息。其中年、月、日的层级设计可以方便用户在时间维度上做聚集操作。
(4)波段维:记录不同传感器的所有波段信息,以及高级别产品的自定义波段信息,比如NDWI产品的波段可定义为NDWI波段。并且针对SAR影像提供了波段和极化方式的组合。矢量数据没有波段信息,因此不和波段维关联。
(5)栅格瓦片事实:由度量信息和4个维度成员包括产品、空间、时间、波段组成,这里的度量信息包括瓦片ID和栅格瓦片计算强度。瓦片ID作为瓦片的数据地址,用于访问栅格瓦片数据表中存储的瓦片数据。瓦片计算强度用于优化并行计算过程中负载均衡性能,细节将在2.3节中介绍。
(6)矢量瓦片事实:和栅格瓦片事实共享3个维度成员包括产品、空间、时间,度量信息包括矢量瓦片计算强度以及每个矢量瓦片包含的矢量数据ID集合。其中矢量数据ID集合即瓦片内矢量数据的地址,指向矢量数据表中的数据。矢量瓦片计算强度用途将在2.3节中介绍。
立方体模型设计基于商业智能领域事实星座模型,该模型支持多个事实表共享不同的维度表,契合多源数据立方体模型设计理念(Chaudhuri和Dayal,1997)。如图1所示,由于矢量数据没有波段维度,因此矢量和栅格数据共享产品、时间、空间3个维度,栅格数据独享波段维度。
2.1.2 立方体数据访问
基于立方体模型,用户可以在立方体上进行联机分析处理,比如切块和切片。这两种操作也是对地观测领域最常用的两种查询操作,其中切块操作是沿着不同的维度选择多个值得到子立方的过程,切片操作则是在维度上只选择一个值得到降维立方的过程 (Baumann,2017;Voidrot和Percivall,2020)。为方便用户访问数据,本文分别针对栅格瓦片和矢量数据设计了查询接口getRasterTiles()和getFeatures(),接口以QueryParams类对象作为参数,该类通过多维语义查询参数初始化。图2展示了3个例子。
1)切块:查询时间范围在2016年7月21日至2018年11月13日,空间范围在32.0°N—35.0°N,113.0°E—115.0°E中的数据,返回落在该时空范围内的子数据立方;
(2)沿着一个维度切片:查询波段为蓝波段的数据,返回不包括波段维的降维数据立方;
(3)沿着两个维度切片:查询波段为蓝波段且时间为2017年6月11日的数据,返回不包括波段维和时间维的降维数据立方。