刘立葳,罗敬宁
(国家卫星气象中心中国气象局,北京 100081)
北极区域观测预报系统集成与应用示范实现了多源极区遥感数据产品和数值模式产品的管理、综合分析和分发,为我国全球海洋立体观测网向极区拓展提供卫星观测支撑,为北极国际科考船和商船提供航行安全保障服务。其中船舶航行的保障需要大量的风云气象卫星遥感数据。而近年来风云卫星数据和遥感产品的体量,应用的广度和深度,都出现急剧地增长和扩充,数据量呈几何级数式增长[1]。当前的数据管理和服务系统已经不能满足日益增长的需求,如何建立数据之间的关系和规则、如何分析数据的群体特征、如何发现数据内部的规律和趋势,为北极船舶的航行[2-3]提供高效、简洁、准确的数据保障和平台支撑,是当前面临的巨大挑战。
空间关联的数据处理技术设计与实现主要利用多颗卫星数据,提供全新数据获取,形成一个以数据为核心,适应北极船舶航行需求的服务平台。
空间关联数据处理软件设计与实现的主要任务是采用全新的空间网格模型数据库系统,取代现有的基于文件的卫星数据管理和服务方式,实现多卫星、大范围、高频率等特性的卫星数据的精准获取。该软件通过建立以空间、时间片和物理层为基础的空间网格模型[4],采用基于FileStream 技术[5-6]的BLOB[7]数据库管理技术,将定位于FY3C、FY3D 卫星的等温度廓线观测数据,统一到一致的数据空间中,并提供下一步可扩展的时间、空间的任意数据挖掘功能。
系统最主要业务流程为数据入库管理流程,如图1 所示。该流程主要是自动探测前端各业务系统推送到该软件文件交换区的FY3C、FY3D的NOM、HDF 格式数据,并对这些数据进行实时获取、初检后,通过数据解析模块实现空间科学数据按网格规则的切块处理和入库存储;并在入库过程中建立数据、快视图的关联索引,实现统一的网格化管理。
图1 数据入库管理流程
空间关联数据处理软件设计与实现的整体架构主要包括:系统硬件基础设施层、系统软件和数据资源层、技术支撑平台层、业务应用层[8-9]。整体架构如图2所示。
图2 基于空间管理数据检索与处理软件架构
系统硬件基础设施层是支撑整个系统运行的硬件环境,主要包括:计算机基础网络设施、数据库服务器、计算机主机设备、存储设备等。
系统软件和数据资源层是支撑整个系统运行的软件和数据环境,系统软件主要包括:各类操作系统、文件服务系统、数据库系统等;数据资源是支撑系统运行的各类数据,包括:用户请求数据、网格规则管理数据、卫星科学数据集、各类元数据、系统管理数据等。
技术支撑平台层是实现整个系统的核心基础平台,本软件的技术实现依赖的平台主要包括:流程控制平台、FileStream 平台等。
业务应用层由实现整个项目需求的功能部件(或软件系统)组成,主要包括如下内容:数据处理与入库工具、中间层处理服务、数据发布与获取服务平台(Web)等。
空间关联数据处理软件设计与实现由4 大功能组成,包括:空间关联数据库生成功能、数据转换处理功能、任务调度管理功能。
根据任务要求,系统划分如图3 所示。
图3 软件功能模块
由于遥感数据的空间分布、数据形态、时空分辨率、数据组织形式和应用处理要求等方面具有很多专业特性,数据集成管理的复杂度比较高,现有的数据库模型无法适应要求,需要建立一个新的数据集成管理的模型,并应用成熟的数据库技术来实现复杂的数据管理功能,真正将遥感数据纳入数据库管理系统,而不是游离在外文件系统管理。
该软件将按照空间网格模型建立静止卫星遥感数据空间数据库,建立统一的数据空间,通过网格、时间片和物理层等多维结构进行数据组织和管理,采用面向BLOB 二进制大数据块的FileStream 技术,实现静止卫星遥感数据的高速I/O 处理和基于事物的数据库管理,数据体真正进入数据库统一管理。
数据转化处理功能是一个后台自动处理程序,主要实现卫星数据的到达、进行标准化和网格化处理,按照数据空间的范围和统一的空间分辨率,将数据存入空间数据库,处理任务的调度与执行,对各个任务处理进行合理的负载分配和错误处理[11]。
主要包括如下功能:
1)数据解译和读取:完成卫星数据的解译,读取数据对象到内存处理区,提取相关属性参数。
2)数据网格化处理:按照统一的空间分辨率,在确定的数据空间内,建立静止卫星数据空间网格体系,将经过空间转换处理的标准数据,进行网格化切片处理,如图4 所示,计算网格散列计数,形成网格切片数据流。
图4 不同卫星数据空间网格切片拼图
3)元数据提取:将文件中记录的数据属性信息提取出来,记录到相应的数据库表中。需要提取的元数据既包括单个文件的,也包括整个数据集的属性信息。
4)网格切片入库处理:将得到的网格切片数据流,通过FileStream 底层接口,按照事物逻辑控制方式,根据网格存储位置写入空间数据库,完成网格切片入库处理。
该软件设计的目标是一个自动处理系统,软件可以监控数据的到达、处理和入库的全过程,对各个任务处理进行合理的负载分配和错误处理,为运行维护人员提供相关的参数配置和管理功能。
1)远程文件自动发现:根据配置的远程目录信息,实时监控远程目录中的文件到达情况,支持NFS、SMB、FTP 等协议挂载的文件系统,可以使用文件通配符进行文件过滤,将新到达的文件复制到本地处理区。
2)任务调度和进程管理:根据功能划分要求,提供对后台进程的调度管理功能,包括数据发现、数据复制、数据处理、数据入库等。提供系统资源的控制管理,可以配置管理每个进程的使用资源,对于失败进程进行监控和隔离,提供进程运行报告。
3)提供集中统一的参数(策略信息)维护和管理界面,供系统平台管理员对整个系统运行的相关参数信息进行配置。管理员可以通过流程配置的方式定义向导式配置参数的流程,以应对未来配置参数流程的变化,提高系统的可配置性。
多线程处理技术的基本原理是将多项任务分配到多个线程并行处理,从而提高系统效率,目前在专业遥感图像处理软件设计中广泛应用。
将数据处理平台设计成多线程运行模式,将一些操作和响应放到主线程,对空间分析及处理相关的各种耗时操作采用工作线程,这些耗时操作包括各种数据的读取、高速缓存数据准备、常用图像处理等。采用多线程方式的好处有3 点:一是用户界面友好,工作线程可以在外部中止取消,避免为执行某一任务而耗时等待却无法中止;二是可以利用用户输入、浏览等CPU 空闲时间进行后台数据准备与处理;三是便于安排分块并行处理。
空间关联数据处理软件设计与实现中对于卫星遥感数据的拆分入库处理采用并行处理和多线程处理技术,大大提高了处理效率。
当前GIS 技术发展的最新趋势是采用关系数据库管理空间数据,可以充分利用关系数据库的数据管理的功能,利用SQL 语言对空间与非空间数据进行操作,同时可以利用关系数据库的海量数据管理、事务处理(Transaction)、记录锁定、并发控制、数据仓库等功能,实现真正的空间数据与非空间数据一体化集成[13]。
该软件采用SQL Server的FileStream 数据存储技术和自定义的空间网格存储卫星科学数据。在数据库中可以存储各种空间、时间相关的数据和数据规则。
采用SQL Server的FileStream 数据存储技术和自定义的空间网格规则将科学数据以分块分通道方式保存在SQL Server的FileStream 文件系统中[14]。数据分块存储,可以根据实际情况调整块的粒度(如2.5°×2.5°、5°×5°等),每个数据块存储为一个记录。采用表结构存储,可以追加新的数据字段保存科学数据其他属性信息,包括时间属性、数据描述信息等,如图5 所示。
图5 数据网格化处理
SQL Server的FileStream 数据存储技术同时提供了对科学数据的访问能力。数据访问时,以文件流方式进行,存取速度都非常高效,存储过程如图6所示。
图6 网格数据FileStream数据存储
建立“空间关联数据处理软件设计与实现”采用参数化设计,建立完善的系统配置参数表以支持数据类型、属性结构的扩充,应对未来卫星数据管理和服务的扩展要求。
1)采用配置库的设计方法
①处理流程的灵活配置;
②根据产品存档要求进行配置;
③单个处理作业的处理方法(参数)配置;
2)新增数据的配置
①不需要进行程序修改;
②配置此类产品的处理流程;
③处理作业的方法(参数);
3)处理策略(参数等)的灵活配置
超时/补做/回调/清理的参数可以灵活地配置。
该软件采用C#.NET、C、C++、VC++等多种程序设计语言与开发工具,采用SQL Server 2012R2数据库。
该软件允许平台管理员对整个系统运行的相关参数信息进行配置。管理员可以通过流程配置的方式定义向导式配置参数的流程,以应对未来配置参数流程的变化,提高系统的可配置性。
该软件达到卫星遥感数据准实时提供功能,访问效率较高,性能体现如表1 所示。
表1 空间关联数据处理软件设计与实现访问效率
“空间关联数据处理软件设计与实现”包含8 个计算节点:两个数据库节点、两个数据处理节点、一个系统管理节点、两个中间层处理节点和一个Web访问节点,均采用Windows Server 2012R2 操作系统,部署情况如图7 所示。
图7 空间关联数据处理软件设计与实现硬件部署
数据库系统采用SQL Server 2012R2,该数据库支持流行的软硬件平台(PC 服务器及Windows 操作系统环境);支持客户机/服务器技术、浏览器/服务器技术;具有C2 级以上数据安全控制机制和权限控制,支持多种数据备份方式;支持多种数据库开发机制,具有开发三层结构、客户/服务器结构应用的工具;同时具有数据备份和恢复功能。
该软件基于风云3 号气象卫星遥感数据的时间、空间和波段的任意数据,提供挖掘功能,可快速准确地获取北极地区所需数据,避免了大量无效的数据传输和处理。该软件为北极船舶的航行提供了高效、准确的气象卫星遥感观测数据保障。