2. 中国北京 100081 中国地震局地球物理研究所
2. Institute of Geophysics, China Earthquake Administration, Beijing 100081, China
禁核试北京国家数据中心(NDC)是我国禁核试核查体系的核心,完成汇集、保存和处理我境内各IMS台站的监测数据,也应请求向国内科研机构分发境内IMS台站和NDC汇集的公开地震台站数据。中国地震局地球物理研究所作为境内IMS地震台站的管理单位,存在向行业内推广应用境内IMS地震台站数据的需求。
目前,国内地震行业以及相关科研机构实时数据传输主要采用SeedLink、NetSeisIP等协议,采用的数据格式为miniSEED,或以miniSEED为基础进行封装的数据格式。这在传输机制和数据格式上与IMS地震台站数据的传输并不相同。
因此,本文研究了CD与NetSeisIP协议及地震数据传输格式,设计了实时数据流的转换方法,研制软件实现了CD数据流向miniSEED流的实时转换,并通过JOPENS系统分发数据流,拓展了NDC的数据服务能力,为境内IMS台站监测数据在国内地震行业、相关研究机构的研究、应用奠定了数据交换技术基础。
1 数据传输协议 1.1 CD协议以及相关数据格式目前IMS地震台站的数据传输和NDC的数据汇集均采用CD协议①。CD协议是一种专为禁核试核查设计的波形(地震/次声/水声)数据实时传输、交换协议,主要有1.0、1.1两个版本。CD 1.1版本是当前使用的主流版本,具有应用层数据帧传输确认、回填、数据签名等功能,可靠性高、安全性强。NDC将汇集的数据存储在一个实时数据池中,数据池由两级索引文件簇按照一定顺序②组织而成。文件簇包括IDX文件、CLF文件和BIN文件,见图 1,BIN文件存储收到的CD数据帧,逐帧存储,CLF文件存储数据帧信息、控制帧信息、帧校验信息、索引信息等,IDX文件是对CLF文件和BIN文件的索引。在数据实时汇集的同时,NDC采用CD2W软件近实时地将波形数据转换为CSS 3.0数据。该数据由索引数据和二进制数据组成,其中,索引数据存入数据库,二进制数据是未压缩的原始监测数据,直接写入文件系统保存。
①CTBTO. Formats and Protocols for Continuous Data CD-1.1. 2001.
②CTBTO. CD Tools Software User Guide. 2006.
JOPENS系统③是根据“‘十五’中国数字地震观测网络项目”测震软件相关任务而开发的台网专业软件,具有地震速报、地震编目和数据服务等功能。在JOPNES系统承担数据获取、传输与交换功能的是实时数据流服务器(SSS),该流服务器也是国内地震行业、相关科研机构采用的主要实时数据传输软件之一,数据交换格式采用miniSEED格式(FDSN et al,2012)。
③广东省地震监测中心. 数据处理软件系统JOPENS 5.2用户手册[S]. 2013.
流服务器采用分布式服务器部署,接收仪器适配器输出的连续波形数据,或其他级联流形服务器的实时波形数据。JOPENS流服务结构见图 2。
JOPENS流服务器遵循NetSeisIP协议。对该流服务器进行连接测试与研究,得到如表 1所示的JOPENS流服务上传与下载接口。进行数据交互时一般步骤如下:①连接指定JOPENS服务器的控制端口(一般为5000);②成功后,发送预先在JOPENS流服务器上配置好并具有相应权限的用户名;③成功后,发送该用户名的密码进行身份验证;④通过验证后,设置传输类型;⑤成功后,设置传输模式;⑥成功后,获得可以进行数据交互的IP地址和端口(需要丛返回的信息中进行数据拼接)。连接数据端口;⑦在控制端口发送上传或下载命令(包含台站名称等);⑧成功后,从已经连接的数据端口上读取或推送数据;⑨以实时流方式下载或上传数据时,在数据连接空闲时,需要周期性在控制连接上发送保持连接命令。
基于上述实时数据传输分析,可为JOPENS流服务器增加一个仪器适配器,该适配器能够实时访问NDC的波形监测数据并转换为miniSEED流,上传至JOPENS流服务器,通过本级或级联的流服务器面向客户端提供近实时数据。
访问NDC波形监测数据方式有2种:访问数据池或者数据库。直接访问数据池的优点是快捷,不经过其他中间环节,故障点比较少,缺点是装载比较复杂,数据不是按照时间戳正序排列的。访问NDC数据库相对简单,且数据已按照时间正序排列,但增加了太多中间环节,延迟增加,且故障点增多。综合考虑这些因素,采用第一种访问方式,研制一个转换软件CD2Server,总体结构示意见图 3。
在实时转换上,需要考虑并解决以下问题。
(1) CD数据池自动扫描的准确性。CD数据池是一种两级索引结构,并且CD数据池中的台站数量是动态变化的,为了保证自动扫描的长期稳定运行以及扫描效率,每一次扫描,必须按照完整的索引流程进行分析,即扫描需从分析IDX文件的记录开始,指向正确的CLF文件和BIN文件;通过分析CLF中的记录以及处理状态,准确、快速从BIN文件中提取未处理的数据帧。此过程需近实时地反复执行。
(2) CD帧传输中的时间乱序问题。由于CD协议的数据重传或回填特性,监测数据到达数据池不是按照数据本身的时间戳正序排列的,取决于台站在发送数据时采用的是先到先至(FIFO)或后至先发(LIFO)模式。因此,在转换软件自动扫描之前或之后,需要对数据池中的数据帧进行整理、排序。
(3) 压缩与解压缩问题。CD数据帧采用的加拿大压缩算法①,是一种两级差值运算,差值结果按照取值范围进行存储,达到节省存储空间的目的。CD数据帧是固定时宽的,地震台站一般封装10 s的数据。而miniSEED包是固定大小的,一般采用512字节,压缩算法较多采用STEIM 2(王洪体等,2004)。在实际转换时,不考虑miniSEED拼包问题,即一帧CD数据解压后,在完成完整的miniSEED包后,如剩下数据不足以封装一个完整的miniSEED包,不足部分用零填充,因此会带来额外的字节浪费,但简化了转化步骤,提高了效率。
① CTBTO. Formats and Protocols for Continuous Data CD-1.1, 2001.
(4) 台站命名差异。IMS地震台站有台阵和三分向台站2种类型,均无位置码。台站下面包括各个子台,转换时需将各个子台视为单独台站,并将位置码置空。
(5) 转换后miniSEED包的上传。JOPENS流服务器的上传步骤,与下载步骤类似。在完成用户认证后,进行模式设置,获取数据端口,在控制连接发送上传数据的命令,在数据连接上推送数据。
3 近实时转换软件研制由于NDC的数据池架设在Linux服务器上,所以CD2Server的开发与测试环境,也在Linux工作站上进行,采用C语言编写,单线程工作。
3.1 CD2Server输入、输出CD2Server的输入、输出见图 4所示。CD2Server的输入包括CD数据池文件和参数配置文件。参数文件定义了数据池参数、JOPENS流服务器参数、miniSEED包属性等,以及需要转换台站的定义、待转换数据的起始时间等;输出包括转换后的数据、日志文件和状态文件。其中,状态文件记录了每个台站最新数据的读取、转换、上传状态。
CD2Server设计流程如下:①读取参数文件并对参数进行分析;②根据CDRecv端口数量初始化CDtools Buffer结构CDbuffer_t,并初始化JOPENS流服务器连接;③根据“开始处理时间参数”找到对应的IDX文件、CLF文件和BIN文件,记录数据文件的读取位置,周期性扫描数据池文件,一旦扫描到适合的数据帧,立即开始转换为miniSEED包,并上传至JOPENS系统。
若无差错,反复重复步骤③。软件流程示意见图 5。
CDbuffer_t是一种全局性数据结构,包括CDtools_t、staPro_t两种子结构,记录了数据池的配置信息、待转换台站信息、待转换起始时间信息等,以及每一个台站的处理信息和状态信息。该结构贯穿转换软件运行的每一个阶段。
为测试CD2Server转换数据的准确性与及时性,搭建如图 6所示的测试系统,准实时地将XAN、HILR台站的数据转换为miniSEED数据流,上传至JOPENS系统。模拟从JOPENS获取XAN和HILR台站的数据,再次转换为CD数据保存在测试数据池中。为了便于比较,测试数据池中的XAN名称临时更改为TAN。图 7给出XAN台站转换前后的波形,可见波形类似。将转换前后一天的数据再转换为ASCII码逐字节进行比较,文件内容一致,表明格式转换完全正确。分析数据池中CLF文件的数据帧时间和接收时间,转换延迟控制在秒级以内。当待转换台站数量增多时,可以通过减少CD2Server扫描数据池的扫描间隔,降低转换延迟。
CD2Server软件作为JOPENS系统的新仪器适配器,可以访问NDC的CD数据池,准实时地将CD数据流转换为miniSEED数据流,并上传至JOPENS系统流服务器供用户使用。该软件扩展了NDC的数据服务技术能力,使NDC具备向国内核查用户提供经转换的IMS台站数据的能力。截至论文投稿,该软件已在中国地震局地球物理研究所运行近2年,实现了HILR、LZDM台阵监测数据上传至JOPENS流服务器的功能。利用该软件,台站管理员可以实时处理监测数据,并有效监控台站运行状态。
王洪体, 陈阳, 庄灿涛. SEED格式STEIM2数据压缩算法在实时地震数据传输中的应用[J]. 地震地磁观测与研究, 2004, 25(4): 14-19. |
FDSN, IRIS. Standard for the Exchange of Earthquake Data (SEED) Reference Manual version 2.4[S]. 2012.
|