基于web的重磁网格数据处理系统设计及其实现

2020-07-26 05:25张盛张明华任伟杨燕
物探与化探 2020年4期
关键词:数据处理导数滤波

张盛,张明华,任伟,杨燕

(中国地质调查局发展研究中心,北京 100037)

0 引言

重磁勘探方法广泛应用于矿产资源勘探、气候环境变化、大地构造研究等方面[1]。为了从重磁数据资料中获得研究区的地质解释结果,必须利用专业软件系统对重磁数据进行专业化数据处理和分析[2-5]。现有重磁数据处理软件以单机桌面应用程序为主,这些软件在使用过程中往往存在以下限制:① 在使用便捷性方面,软件在Windows、Linux等平台之间无法自由切换使用,并且这些软件通常授权给单一终端,很难实现多用户跨平台协同工作;② 在软件的更新维护方面,软件开发商在完成更新包之后,单机软件用户需要去主动更新应用终端程序,这往往需要经过获取更新软件包、卸载已有程序、安装新程序、重新授权等一系列繁琐的操作步骤,在这一过程中还可能遇到诸如动态库缺失、版本不兼容等问题;③ 在计算性能方面,随着航空物探、物联网技术的应用,现代物探方法获取了海量数据,这些数据的存储计算对软件计算性能提出新要求,单机应用程序往往受限于宿主计算机硬件性能,将会越来越难以满足海量数据即时处理计算需求[6-7]。

随着信息技术的发展,云计算这一种新的计算模式成为当今信息技术发展主流,该计算模型的典型特征是将计算、存储和网络资源作为在线服务提供给用户,用户可以通过瘦终端与Web浏览器一起按需访问[8-10]。云计算有3种典型服务模型:IaaS(基础架构即服务),PaaS(平台即服务)和SaaS(软件即服务)。在云计算中,应用程序或软件运行在云基础设施之上,而无需本地软件安装和维护,这能够有效提高多用户软件和硬件基础设施利用率,大大降低了用户本地计算资源的成本。此外,由于软件应用程序是云托管的,并且没有明显的平台限制,因此服务提供商可以轻松升级维护它们。所有用户都使用相同版本的软件,这使得用户之间的协作更容易,因此软件版本不匹配等问题也可以得到快速修复。由于上述云计算带来的优点,在地学领域已经开发了许多在线数据处理程序。例如,中石化开发了π-Frame地震数据处理平台,这是一个用于地球物理数据处理和解释的云平台[11]。北京桔灯勘探公司提供全套专业软件远程桌面服务,而Plotly科学绘图软件提供在线数据处理和绘图服务等[12]。

网格数据广泛应用于重磁数据处理、分析和解释各个环节,是最为常用的物探数据格式之一。为探索云计算技术在地球物理软件中的应用方法、技术和效果。笔者研发了一个网格数据在线处理系统,通过对比分析验证了该系统的正确性和使用的便捷性,为云计算技术在地球物理软件应用方面提供技术储备。

1 功能设计与算法

网格数据处理算法是软件的核心基础之一,因此有必要对该系统所采用的数据处理算法进行简要描述。本系统主要集成了常用的滑动平均滤波、方向导数计算、频率域滤波、位场解析延拓功能。

1.1 滑动平均滤波

滑动平均滤波方法对周期性干扰有良好的抑制作用,平滑度高,适用于滤除高频干扰和随机噪声。缺点是灵敏度较低,对偶然出现的脉冲性干扰的抑制作用较差。其计算方法为:对M×N个采样值的网格数据,任意网格节点滤波结果为计算点周围半径为w方形区域内数据点的算术平均值,按照如下公式进行计算:

(1)

其中:ss(i,j)为滤波结果,w为滤波窗口半径,s(ii,jj)为原网格数据。

1.2 方向导数

重磁异常的方向导数通常指异常场沿某一特定方向的空间变化,常用于突出异常梯级带,区分不同构造走向的叠加重磁异常,进而划分特定地质构造界线。笔者采用空间域差分算法替代微分近似估算重磁场的方向导数,网格数据x方向、y方向导数及总水平导数模计算公式如下:

(2)

其中:dxi,j为x方向导数;dyi,j为y方向导数;dti,j为总水平导数。

1.3 频率域滤波

为了获得与地质相关的异常信息,需要对网格数据进行滤波处理。频率域滤波主要采用如下计算步骤进行:

1) 将网格数据进行二维FFT变换,获得频率域网格数据;

2) 按照给定截断频率和窗函数(本系统中采用矩形窗),对频率域网格数据进行滤波,得到频率域滤波结果;

3) 对频率域滤波结果进行FFT逆变换即可得到空间域滤波结果。

1.4 延拓计算

将地面实测异常换算到不同高度来划分场源深度不同的叠加异常,这种方法叫做重磁异常的解析延拓,实际工作中常用于压制噪声干扰,突出有用异常,重磁异常解析延拓通常有向上延拓和向下延拓两类。在本研究中主要采用频率域向上延拓算法[1]和迭代向下延拓算法[13]。频率域延拓计算可以看作是一种频率域滤波算法,计算公式如下:

F(u,v,h+Δh)=F(u,v,h)*H(Δh)

(3)

其中:Δh为延拓高度。

2 系统实现与关键技术

在线软件系统通常采用分层架构进行设计,分层架构实现了各个逻辑功能的解耦,规范化了各层间的调用关系,降低各层之间的依赖关系,利于各层逻辑重用与更新。我们采用典型的3层架构实现该在线网格数据处理系统,这3层架构分别是展现层、计算服务层和逻辑控制层。

2.1 展现层的实现

展现层又称为表现层,运行于客户端浏览器,用于提供用户交互操作界面,接受用户输入数据和数据可视化表达。该层利用Html5+CSS3+JavaScript等web2.0前端技术进行实现。系统主界面如图1所示,该软件界面上部为系统标题,左侧为功能菜单,主要包括网格数据输入输出、绘图参数设置及数据处理等操作按钮,界面右侧为数据展示区,采用“Plotly.js”函数库进行数据可视化,提供等值线、热度图以及三维表面图3种数据展示方式。为兼容已有数据处理软件,输入、输出数据文件采用Surfer 6 明码及二进制格式的grd文件。

图1 用户界面Fig.1 Software user interface

2.2 计算服务层实现

计算服务层运行在服务器端,用于接收用户数据处理请求并返回数据处理计算结果,图2为该层典型的数据处理过程。

图2 典型的数据处理过程Fig.2 Typical data processing

由于历史原因,核心数据处理程序由C、C++和Fortran等多语言混合开发完成,很难直接作为网络应用程序直接使用,为此我们将各个数据处理程序生成外部可以直接调用的独立数据处理模块。此外,由于每种数据处理算法的输入输出数据内容各不相同,在数据处理web API接口必须进行一定规范化处理,因此我们采用PHP语言开发了一个中间件,用于统一接收用户数据计算请求并解析数据处理算法参数,根据参数内容启动特定数据处理算法模块处理请求参数中的数据处理任务,待处理程序完成之后,收集数据处理结果并JSON序列化后返回。

2.3 逻辑控制层实现

逻辑控制层连接展现层与计算服务层,运行于客户端浏览器,采用JavaScript语言开发。该层主要实现如下逻辑控制过程:① 接收用户在界面提交的数据处理请求,对界面参数进行JSON格式化封装;② 采用POST方法调用计算服务层统一数据处理接口API,接收数据处理结果序列化数据,为了提高数据传输效率,兼容大规模数据处理请求,本研究采用JSON格式进行数据传输;③ 根据数据处理结果,调用展现层对应模块进行数据可视化。该层实现的逻辑过程如图3所示。

图3 逻辑控制层Fig.3 The logical layer

3 部署测试

我们的部署环境是阿里云ECS服务器,采用CentOS 7.5 X64操作系统,用 Apache服务器作为中间件,服务器配置为4核CPU,主频2.5 GHz,内存8 GB,互联网带宽5 MB,测试端采用谷歌浏览器。

3.1 可用性测试

我们利用RGIS软件对本工具数据处理结果进行对比试验。试验数据采用了磁偏角45°,磁倾角45°,球体磁异常正演数据,为验证数据处理效果,在正演数据中加入随机干扰作为噪声。该数据网格大小为101×101。

利用本系统滑动平均滤波、方向导数计算及向上延拓功能计算结果和RGIS软件计算结果进行了对比,结果如图4所示,其中蓝色等值线为RGIS[7]软件处理结果,红色虚线等值线为本工具数据处理结果。可以看出算法与现有权威专业软件处理结果一致,数据处理结果正确可靠。

a—含噪声球体模型磁异常;b—5×5窗口滑动平均滤波;c—y方向一阶导数;d—向上延拓10 m磁异常a—magnetic anomaly of a sphere model with white noise;b—5×5window moving average filtering;c—first derivative in y direction;d—upward continuation magnetic anomaly for 10 m

对于在线应用程序而言,用户体验在很大程度上取决于系统响应时间,这包括数据上传时间、计算时间、结果下载时间和数据图形绘制时间。在实际环境中测试,系统处理101×101规模数据时,总响应时间不超过1 s;由于浏览器本身性能限制,经测试,目前系统支持处理最大900×400规模网格数据,满足常规数据处理性能需求。

3.2 跨平台适应性测试

我们使用手机、pad、笔记本电脑在Windows、Linux、安卓等多个平台进行数据处理测试。结果显示该工具均能正确运行数据导入、处理和结果导出功能,该工具具有较好跨平台应用性能,如图5为安卓移动终端应用效果图。

图5 移动终端应用效果Fig.5 Mobile terminal application effect

4 结论

本研究采用云计算技术,在通用网格数据处理算法基础上,设计并实现了一个在线网格数据处理系统,该系统具有对网格数据进行滑动平均滤波、方向导数计算、频率域滤波以及解析延拓等常见功能。通过对比实验验证了该系统的正确性,通过不同平台应用测试,验证了该工具的跨平台适用性。该研究为在线物化探数据处理系统的设计开发提供了技术解决方案。目前系统尚处在原型系统开发阶段,在投入实用化之前,建议在以下方面进一步研究,例如地球物理数据处理算法通常耗时较长,如何发挥云计算优势高效处理多用户并发请求有待进一步研究解决;如何有效提高大规模网格数据Web端实时渲染可视化急需进一步研究。

猜你喜欢
数据处理导数滤波
船岸通信技术下舰船导航信号非线性滤波
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
基于低频功率数据处理的负荷分解方法
无人机测绘数据处理关键技术及运用
解导数题的几种构造妙招
一种考虑GPS信号中断的导航滤波算法
高效LCL滤波电路的分析与设计
基于EKF滤波的UWB无人机室内定位研究
关于导数解法
基于MATLAB语言的物理实验数据处理探讨