Research and Implementation of Emergency Shelter Information Service System Based on WeChat and LBS Cloud
-
摘要: 为解决一直以来应急避难场所信息服务形式单一化、用户体验不佳、软件不易推广的现状,陕西省地震局结合微信这一在移动通讯领域得到广泛应用的即时通信平台和百度地图高性能集群式LBS云技术,设计并实现了一套应急避难场所信息服务系统。本文详细阐述了系统架构以及用户信息管理和位置上报、应急避难场所云数据存储和检索、避难路线规划导航等关键技术实现思路和方法。该系统具有使用便捷、易于推广、云计算性能高、人性化设计等优势,目前,已成为陕西省地震局最为重要的信息服务平台,为公众灾后紧急疏散提供了便利,提升了地震部门信息服务的有效性和针对性,为防震减灾信息化服务提供了新的思路和方法。Abstract: In order to solve the problems of single information service form, poor user experience and unsuitable software promotion in emergency shelters, Shaanxi Earthquake Agency has designed and implemented a set of emergency shelters information service system based on WeChat, an instant messaging platform widely used in the field of mobile communication, and Baidu map high-performance cluster LBS cloud technology. This paper describes system function architecture and the key technologies, such as user information management and location reporting, emergency shelter cloud data storage and retrieval, refuge route planning and navigation, and analyzes in detail the advantages of the system, such as convenient use, easy promotion, high performance of cloud computing and humanized design.At present, the system has become the most important information service platform of Shaanxi Earthquake Agency, which provides convenience for public emergency evacuation after disaster, improves the effectiveness and pertinence of information service of seismic department, and provides new ideas and methods for information service of earthquake prevention and disaster reduction.
-
Key words:
- Emergency shelter /
- WeChat /
- LBS cloud /
- Information service
-
引言
福建省地震预警项目简易烈度计台网系统用于评估地震对乡镇的影响,每个乡镇布置一个测站,按平均台间距10km左右设置,单台定位精度平均小于5km,最大不超过8km,运行维护率≥90%。目前福建省地震预警系统的总体规划分两期实施:一期在地震活动性较强或者地震影响较大的地区,选择人口较多和经济发达区域进行设备安装;二期在建设地区,如闽西与闽北农村山区等地稀疏布点。地震台网数据处理系统主要采用Earthworm进行搭建,拟在全省布设900台简易烈度计。该数据处理系统由C语言编写,由不同模块组建而成,每个模块实现不同的功能。该系统自从2015年6月正式运行以来,能够正常接收各地震台站的实时波形数据,从而实现地震台网中心地震速报、数据产出、数据管理等各项功能(王喆,2006)。
本文介绍了由美国地质勘探局开发的Earthworm系统的设计目标、思想和原则,重点介绍了Earthworm框架结构与各模块功能的搭建与配置、Earthworm系统的架构特点、主要工作原理和数据处理流程,以及其应用于福建省地震预警项目的相关情况(吴永权等,2010)。
1. Earthworm简介
Earthworm项目始于1993年,主要目的是为了解决美国地震区域台网出现的问题。当时,区域内的地震台网存在的主要问题有:观测设备陈旧,自动处理系统老化,维修费用逐年增长;仪器性能落后,地震研究的发展需要从精密传感器中获取研究数据;社会公众需要新的、显而易见的实时产品了解详情;最后,经费不足导致大多数台网不再支持区域系统的发展工作。
为了更好解决服务器老旧与新地震观测仪器相结合的问题,Earthworm项目应运而生。
1.1 Earthworm的特点
Earthworm系统是以避免早期地震处理系统的设计缺陷,保证地震预警的顺利实施为目标而建设的。系统具有以下5个方面的优点:
(1)模块化:在硬件以及软件方面,系统把所执行的每一个函数封装成一个模块,该模块能独立于其他模块运行。模块化使得系统内的任何一个关键性模块能与系统内的其他模块保持独立。因此,新的试验性需求模块可以在不破坏现有系统的基础上添加并保证良好的性能。
(2)系统独立性:由于不同的模块可独立运行在不同的计算机硬件和操作系统中,并作为一个系统运转,因此该系统可以无中断、在任意操作系统的计算机之间移植。在实际运用中,只使用各种计算机系统标准化的部分,而不使用任何无法规避的系统特殊功能。
(3)可扩展性:该系统提供较好的性价比以适应各种类型层次的网络需求。同时,用户可定制个性的需求,编写新的模块运行。
(4)连通性:该系统能够实现与其它自动实时系统、互动分析系统以及各种发布方式之间快速可靠地通信。其目标是在各层次提供自动和交互式的接口,使系统的配置范围可以从完全单机独立操作到分布式系统单个节点的运行。
(5)鲁棒性:在地震危机时刻,由于输入数据和电源可能中断、系统负荷急剧增加,只有高鲁棒性的地震报警系统才能向媒体和应急机构提供实时准确信息。该系统针对地震处理数据的错误检测及恢复、恢复时间、故障弱化和负荷控制等问题具有极好的可靠性(马强,2008)。
1.2 Earthworm框架的特点
Earthworm系统中每个模块都执行特定的任务,如数据采集,震相拾取等。模块之间通过广播和监听(如波形数据包和相位捡拾等)各种消息来通信。消息传递类似于无线电通讯:它由用于传递消息的“传输媒介”和一套标准模块程序组成。这些模块程序类似于运行在传输媒介中的多频率双向无线电设备。在传输媒介上模块可以使用这些标准程序广播并监听。
2. Earthworm地震数据处理系统的架构与功能模块
福建省简易烈度台网设备一期规模为300台左右,通过中国电信的MPLS VPN组网方式将数据传输至厦门地震勘测研究中心与福建省地震局。每个观测台站提供2M SDH链路带宽供烈度计上报数据使用,省局与厦门地震勘测研究中心分别采用一条10M光纤汇聚专线接入中国电信VPN平台,用于收集各观测台站数据。对于部分未铺设SDH链路的区域,采用3G信号进行辅助接入Earthworm的地震预警软件框架系统。
基于Earthworm地震数据处理系统的架构采用积木式组合的方式进行搭建(图 1),主要包括:
第1部分,数据接收,通过MPLS VPN组网方式将各台网观测的烈度计产生的数据在数据中心进行汇聚,主要采用Paler2ew模块进行功能搭建;
第2部分,地震波形展示,主要采用wave_server模块进行功能搭建;
第3部分,地震数据处理,主要采用pick_eew、tcpd、ShakeMap的模块进行功能搭建,pick_eew模块负责自动震相拾取功能,tcpd模块负责地震定位与震级计算功能,ShakeMap模块负责烈度图绘制功能;
第4部分,地震数据存储,主要采用Tbuf2mseed、Ewmseed Archiver的模块进行功能搭建,Tbuf2mseed模块负责进行数据格式转换功能,Ewmseed Archiver模块负责进行数据文件存档的功能。
3. Earthworm的安装步骤与配置
3.1 Earthworm源码包的获取
可以通过网址http://folkworm.ceri.memphis.edu/ew-doc/#overview下载最新的Earthworm安装源码包进行安装。目前福建省烈度计系统采用的最新版已更新为v7.9版,版本之间的主要区别在于系统模块功能的差异(Earthworm官方网址,2015)。
3.2 Earthworm源码包目录结构说明
Earthworm源码包目录结构主要有bin,environment,ewdoc,include,include_app,params,src,lib等,下面分别对该源码目录功能进行解释:
(1)bin目录为系统可执行程序存放位置;
(2)environment目录为系统环境变量存放位置;
(3)include目录为系统文件存放位置;
(4)include_app目录为系统程序应用存放位置;
(5)params目录为各程序参数配置文件存放位置;
(6)src目录为软件源码存放位置,可单独重新编译;
(7)lib目录为程序执行所依赖库文件存放位置。
3.3 Earthworm的安装与调试
(1)安装Earthworm前的环境准备
在安装Earthworm前,系统需要先安装make、gcc、java这3个软件,用于对Earthworm的程序包进行编译,3个软件的安装均可以通过yum源进行安装,命令如下:
yum install –y make & & yum install –y gcc & & yum install–y java
(2)创建安装目录结构
当前系统采用的是CentOS 7,64位操作系统进行搭建,我们在根目录下创建一级目录xmzk,然后再创建二级目录earthworm,earthworm目录下分别创建run目录与earthworm_7.9源码包,然后在run目录下分别创建params目录与logs目录,目录结构如下所示:
/xmzk
/earthworm
/run
/params(各程序参数配置位置)
/logs(各程序日志文件存放位置)
/data(各台站接收数据存放位置)
/earthworm_v7.9(源码包)
(3)拷贝全局参数与环境变量至安装目录
将/xmzk/earthworm/earthworm_v7.9/environment目录中的earthworm_global.d、earthworm. d、ew_linux.bash这3个文件拷贝至/xmzk/earthwom/run/params中。
(4)修改安装环境配置文件
安装Earthworm需要变更第二步拷贝至/xmzk/earthwom/run/params中的ew_linux.bash这个环境配置文件中几处环境变量的值,以适应我们自己的安装环境与配置需求,主要有以下6处需要变更:
① export EW_HOME=/home/xmzk/earthworm #定义Earthworm安装位置的环境变量
② export EW_VERSION=earthworm_7.9 #定义Earthworm版本的环境变量
③ export EW_RUN_DIR=/home/xmzk/earthworm/run #定义Earthworm运行位置的环境变量
④ export EW_PARAMS=/home/xmzk/earthworm/run/params #定义Earthworm各模块参数档位置的环境变量
⑤ export EW_LOG=/home/xmzk/earthworm/run/logs #定义Earthworm日志文件存放位置的环境变量
⑥ export EW_DATA_DIR=/home/xmzk/earthworm/run/data #定义Earthworm波形数据文件存放位置的环境变量
(5)拷贝启动文件
拷贝Earthworm源码包里params文件夹中的“startstop_unix.d”启动程序至/home/xmzk/ earthworm/run/params中,并根据自己的环境在文件中增加与删除功能模块。
(6)Earthworm运行与开机自启动
打开终端命令行,键入“startstop”命令开启Earthworm,如果命令行中提示各模块为alive说明earthworm运行正常,如有些模块出现zoombi的字样说明该模块未正常工作,需单独检查该模块,逐一排错,对其重新加载或编译。
4. 模块功能搭建与配置档案设置
4.1 单一模块功能在系统中的添加安装步骤
可以通过以下几个步骤添加任一模块功能:
第一步:编译该模块的源码,编译模块功能命令:make–f makefile name(模块名称),执行完可生成该模块的可执行程序;
第二步:将编译完成后的可执行程序拷贝至/xmzk/earthworm/earthworm_v7.9/bin目录下;
第三步:修改earthworm.d文件,在earthworm.d文档中新增写入该模块名称id与该模块数据类型,使得Earthworm系统可识别出该模块;
第四步:复制该模块的参数配置文件拷入/home/xmzk/earthworm/run/params中;
第五步:修改startstop.d文件,增加新的模块,在startstop.d文档中写入该模块的执行文件名称与配置文件名称。startstop.d参数档的作用主要是定义ring的个数与定义需要开启多少模块,需要开启的模块功能均需写入该文件中;
第六步:执行recon命令,重载startstop_unix.d文件,即可将该模块加载到现在运行的Earthworm环境中。
4.2 数据接收模块的关键参数配置与说明
该模块主要通过修改/home/xmzk/earthworm/run/params/palert2ew.d的参数文件进行配置,其主要参数设置说明如下:
4.3 数据流服务模块的关键参数配置与说明
该模块主要通过修改/home/xmzk/earthworm/run/params/Wave_serverV.d的参数文件进行配置,其主要参数设置说明如下:
4.4 数据处理—P波拾取模块的关键参数配置与说明
该模块主要通过修改/home/xmzk/earthworm/run/params/pick_eew.d的参数文件进行配置,其主要参数设置说明如下:
4.5 数据处理—地震报告生成的关键配置与说明
该模块主要通过修改/home/xmzk/earthworm/run/params/tcpd.d的参数文件进行配置,其主要参数设置说明如下:
4.6 数据处理—烈度图生成模块的关键配置与说明
该模块主要通过修改/home/xmzk/earthworm/run/params/shakemap.d的参数文件进行配置,其主要参数设置说明如下:
4.7 数据存储模块的关键配置与说明
该模块的主要通过修改/home/xmzk/earthworm/run/params/ewmseed Archiver.d的参数文件进行配置,其主要参数设置说明如下:
5. Earthworm系统常用命令总结
在Earthworm应用的过程中,对一些常用命令进行了总结,如表 1(Earthworm官方网址,2010)。
表 1 Earthworm常用命令Table 1. Commonly used commands of Earthworm序号 命令 作用 示例 1 startstop 在计算机上启动和停止所有Earthworm模块,这个模块是Earthworm系统的核心 2 restart 手动重新启动单个模块 3 recon 允许向正在运行的Earthworm添加新模块或RING 4 pau 完全关闭Earthworm和所有模块/RING pau startstop_nt.d 5 stopmodule 给定一个Earthworm模块进程ID,stopmodule停止它,startstop将其标记为“Stop”,以防止statmgr重新启动它 用法:Stopmodule < process_id > < 可选:startstop配置文件 > 6 quit 关闭earthworm系统 7 restart 重启系统中任何一支模块 restart module id 8 status 输出到屏幕EARTHWORM RING和模块的状态。 status < optional:startstop config file > 9 sac2tb 将sac文档转成tank文档 sac2tb [-n max-samples] infile > > outfile 10 ms2tb 将miniseed文档转成tank文档 ms2tb [-n max-samples] infile > > outfile 11 remux_tbu 将地震观测数据资料按时间进行排序 remux_tbuf < demuxed_file > < outputfile > 12 tankcut 将地震观测数据进行剪切 tankcut -s StartTime [-e EndTime|-d Duration] intank outtank all times for -s and -e options must be in YYYYMMDDHHMMSS format 13 dumpwave 将tank二进制文档转成ASCII文档 dumpwave < filename > < optional:pinno > 14 Findwave 查看数据池中是否已接收到地震波形数据 Findwave WAVE_RING 80 1 out.txt w 15 Sniffwave 显示服务器每秒收到封包值 Sniffwave WAVE_RING L001 HLZ TW–y 16 getmenu 检查waveserverV是否存活,有哪些资料 Getmenu 127.0.0.1:16001 6. 系统运行情况
6.1 波形数据接收展示
Earthworm地震数据处理系统可以通过swarm实时波形查看工具实时查看接收到的地震波(图 2),下载地址:https://volcanoes.usgs.gov/software/swarm/download.php。
6.2 Earthworm系统的硬件资源使用
福建省地震局Earthworm系统硬件配置采用一台HP DL580 Gen9服务器,4颗Inter至强E7-4820v3型号CPU,内存128GB,从系统截图(图 3)观察Earthworm各模块的资源利用率相对较低。
6.3 地震共享池数据结构
Earthworm数据录入规则是一秒钟一个封包,采样数据分别录入到各自的RING中,均可通过命令sniffwave查看获取的数据结构,通过sniffwave命令查得RING中每秒钟的数据结构如图 4所示,主要包括台站名称、数据封包时间、封包序列号、包长度、波长电频信号等信息。
6.4 地震报告产出流程
Earthworm系统在地震到来时获取4个台站数据后就可以触发计算,但还需验算,通过pick_eew进行P波拾取,再通过tcpd模块产出地震报告,主要工作流程如下:
第一步:进行autopicking工作,若autopicking的pa及pv大于执行模块参数文件设定值,则将数据放进PICK_RING里。执行模块的参数文件中提到的其中一个档案就是设定picking条件的档案;
第二步:tcpd模块会先以PICK_RING的数据进行grouping。采用Geiger method,如果RMS太大,则剔除RMS最大的测站,若小于4个测站则停止计算,若是grouping的触发测站达到6站则继续执行计算;
第三步:计算震源坐标(x,y,z)以及发震时间t。利用(x,y,z)计算到各个测站的理论走时;
第四步:发震时间加上理论走时,就是理论到时。如理论到时与autopicking的残差residual太大,则回到第三步,重新计算新的震源(x',y',z'),执行后续的步骤。如果residual一直无法收敛,则会将residual最大的测站剔除,再重新计算,若测站数小于4站,则停止计算。
通过该系统接收数据并进行分析,得到地震报告的产出如图 5。
6.5 地震图件生成样式
通过系统中产生的数据得到的PGA地震加速度峰值分布图如图 6所示。
7. 结束语
Earthworm系统引进了搭积木式模块化架构理念,将地震数据处理功能需求整合为6个软件模块,即数据接收模块、实时波形查看、自动震相拾取、定位与震级计算、数据格式转换、数据文件存档,各模块各司其职又相互关联。各模块之间分工明确,结构简单,具有优秀系统架构的稳定性、跨平台性、安全性、可扩展性、可定制化等特点。Earthworm系统运行稳定,功能强大,深受用户好评。其模块化设计,将庞大的系统功能分布运行于多台服务器,降低软件系统对服务器的性能要求,且架构配置简单,适合在各种不同规模的地震台网进行部署,用户可以根据自己的需求采用不同方法组建系统。
-
崔满丰, 翟颖, 李卫东, 2020. 地震信息融媒体公共服务研究. 震灾防御技术, 15(3): 609—617.Cui M. F. , Zhai Y. , Li W. D. , 2020. Research on public service of earthquake information on the media convergence. Technology for Earthquake Disaster Prevention, 15(3): 609—617. (in Chinese) 董丽娜, 连尉平, 陈为涛等, 2020. 防震减灾公共服务现状与需求全国公众调查结果分析. 地震地质, 42(3): 762—771.Dong L. N. , Lian W. P. , Chen W. T. , et al. , 2020. Investigation of status and demand on public service of earthquake disaster mitigation in China. Seismology and Geology, 42(3): 762—771. (in Chinese) 郭红梅, 赵真, 张莹, 2019. 基于微信公众平台的建筑物信息采集系统设计及实现. 震灾防御技术, 14(4): 890—898.Guo H. M. , Zhao Z. , Zhang Y. , 2019. Design and implementation of building information collection system based on WeChat public platform. Technology for Earthquake Disaster Prevention, 14(4): 890—898. (in Chinese) 李自芮, 马翀之, 李国斌等, 2020. 基于AHP法的宁夏南部中小学地震应急避难场所减灾能力评估研究. 震灾防御技术, 15(3): 537—547.Li Z. R. , Ma C. Z. , Li G. B. , et al. , 2020. Evaluation of disaster reduction capability of earthquake emergency shelters in middle and primary schools in southern Ningxia based on AHP. Technology for Earthquake Disaster Prevention, 15(3): 537—547. (in Chinese) 陆霞, 2020. 基于LBS云平台的微信小程序二维码区域定位系统设计. 现代电子技术, 43(4): 180—182, 186.Lu X. , 2020. Design of WeChat mini program two-dimensional code region positioning system based on LBS cloud platform. Modern Electronics Technique, 43(4): 180—182, 186. (in Chinese) 罗丹, 2020. 基于Android平台的移动社交地图设计与实现. 北京测绘, 34(11): 1578—1582.Luo D. , 2020. Design and implementation of a mobile social map based on android platform. Beijing Surveying and Mapping, 34(11): 1578—1582. (in Chinese) 苏建锋, 薄万举, 2017. 城市地震应急避难场所展示系统的设计与实现. 震灾防御技术, 12(2): 392—398.Su J. F. , Bo W. J. , 2017. Design and realization of display system of urban earthquake emergency shelters. Technology for Earthquake Disaster Prevention, 12(2): 392—398. (in Chinese) 魏本勇, 谭庆全, 李晓丽, 2019. 北京市应急避难场所的空间布局与服务效能评估. 地震研究, 42(2): 295—303.Wei B. Y. , Tan Q. Q. , Li X. L. , 2019. Assessment on spatial distribution and service efficiency of emergency shelters in Beijing. Journal of Seismological Research, 42(2): 295—303. (in Chinese) 杨志国, 姜亢, 邹湘凯等, 2011. 基于Arcgis Server与ASP. Net Ajax的北京市应急避难场所信息管理平台设计与实现. 中国安全生产科学技术, 7(7): 52—56.Yang Z. G. , Jiang K. , Zou X. K. , et al. , 2011. Design and realization of emergency shelter information management platform based on ASP. Net Ajax and arcgis server. Journal of Safety Science and Technology, 7(7): 52—56. (in Chinese) 尹志军, 李丽慧, 王雪芳等, 2020. 基于GIS的天津市应急避难场所选址评价. 震灾防御技术, 15(3): 571—580.Yin Z. J. , Li L. H. , Wang X. F. , et al. , 2020. Location selection of the emergency shelters in Tianjin: an evaluation based on GIS. Technology for Earthquake Disaster Prevention, 15(3): 571—580. (in Chinese) 喻迎春, 王妍婕, 万昕成, 2020. 基于微信的气象灾害预警信息精准智能推送技术的实现. 气象科技, 48(2): 195—199.Yu Y. C. , Wang Y. J. , Wan X. C. , 2020. Realization of accurate intelligent early-warning push technology based on WeChat. Meteorological Science and Technology, 48(2): 195—199. (in Chinese) 赵士达, 张楠, 杨爽, 2014. 基于Android系统的避难场所查询软件开发. 电子技术应用, 40(3): 133—136.Zhao S. D. , Zhang N. , Yang S. , 2014. Development of emergency shelters query software based on android. Application of Electronic Technique, 40(3): 133—136. (in Chinese) -