孙肖南,孙 陶,辛春英,孙海仁
(核工业航测遥感中心,石家庄 050002)
基于C++Builder的航空物探数据浏览软件设计
孙肖南,孙 陶,辛春英,孙海仁
(核工业航测遥感中心,石家庄 050002)
随着计算机的发展,航空物探海量数据的质量浏览检查与异常信息识别,已从传统的观看纸带模拟曲线,过渡到了数字化记录、模拟曲线屏幕再现并实时选取统计的自动化时代;该软件应用C++Builder编译系统,实现了技术人员对航空伽玛能谱测量数据和航空磁测数据的快速图形浏览,并具有对采样点的位置进行导航跟踪的图形显示功能,对设备的标定状态和工作状态及时掌握,帮助技术人员对航空伽玛能谱测量异常快速的进行初选,自动计算异常的特征参数。
航空物探;数据质量;浏览;异常
航空物探通常包括伽玛能谱、磁两种参量测量,其采集的数据不仅包括伽玛能谱和磁场,同时还包括反映飞行高度的雷达高度、反映测量环境的温度和大气压力以及测点的空间定位GPS数据。以往对测量结果的质量检查和航磁、航放异常的选取,主要采用人工浏览纸带模拟记录的方式,特别是航空伽玛能谱测量异常的初选工作,大量的异常参数计算还须要手工来完成,影响了异常初选工作的效率。及时开发一款浏览原始数据的图形软件势在必行,软件能够及时对航空伽玛能谱测量的原始数据进行高效浏览取代现行的模拟纸带记录的浏览方式,同时能够浏览模拟纸带所不具备的采集点的全谱图像,对采样点的位置进行导航跟踪和图形显示,并能够在图形浏览中直观的完成对航空放射性伽玛能谱数据异常点的异常参数值的计算,帮助技术人员完成异常点的初选。
设计软件需适用于Windows操作系统,编制具有Windows界面的菜单命令管理方式,通过菜单命令进入各子窗口进行相应功能的数据浏览,实现测量数据的可视化图形与数字显示功能。
所设计软件应实现以下内容及功能:对所采样原始数据记录,能够以模拟曲线的图形形式显示出来,并且能够以数字方式显示曲线标记点位置的测量数值,主要包括:
1)GPS导航定位数据,将飞行轨迹以二维做标的形式显示出来,航空伽玛能谱钾道、铀道、钍道及总道窗数据和256道全谱数据、航测磁场总场补偿前和补偿后数据、三轴磁通门的三方向矢量磁场数据、飞行高度、气压高度和温度数据。显示的内容和量程可通过右键菜单实现改变。
2)能够显示标定后上测和下测的单点和累加全谱数据图形,自动计算探测器设备对铯源、钍源标定的分辨率和峰漂参数值。
3)能够图形浏览放射性含量数据文件,并在图形曲线中选择航空伽玛能谱测量异常点,自动计算出异常点的相关参数指标,供异常初选参考。
4)计算测区内两点坐标之间的距离,获得有效测线长度。
1.1 原始数据格式分析
目前我们中心航空伽玛能谱测量数据文件主要有以下类型:能谱数据窗口spc文件、能谱能量256道文件、航磁数据AARCMag文件。所记录的测量数据内容包括:测线号、基点号、GPS定位数据、气压高度、雷达高度、温度,放射性伽玛能谱窗数据和256道全谱数据,磁通门三分量数据,航空测量磁场总场数据、包括补偿前和补偿后的数据以及数据采样点的原始记录时间。
1.2 设计结构及软件流程
软件采用图形窗口设计方式,基于C++Builder编程,适用于Windows环境下的数据浏览软件。设计上采用多窗体结构,每个窗体进入采用动态分配方式,如图1所示。进入时自动分配内存空间,退出时及时释放所占用的内存资源,以减少内存的占用。
图1 软件结构及流程图
1.3 窗体界面设计
软件中设计了一个类class gaibianjiemiandaxiao用于记录和改变窗体的大小变化,将窗体中各控件水平和垂直位置与界面窗体比值关系,记录到数据结构structgaibiandaxiao中,以能够让各窗体执行大小改变的功能。
1.3.1 主界面
主界面以图形菜单的形式,通过下拉菜单动态进入各子窗口。
主界面由class TForm1 : public TForm类构成,包含一个TMainMenu组件,由多个TMenuItem组件项、TImage组件以及相应的事件函数实现相应功能。
主清单MainMenu1各项,分别为:文件、浏览数据、辅助和帮助。
文件子项为:退出。点击它软件退出,释放所占用的资源。
浏览数据子项分别为:磁测、能谱和异常点计算。辅助子项分别为:分辨率检查和计算距离。点击各TMenuItem控件,执行相应窗体的建立函数,采用动态分配语句系统动态分配显示各相应的窗口功能界面并显示所占用的内存空间,当退出窗口界面时,窗口所占用的资源被释放。
1.3.2 航磁浏览界面
航磁数据的读取采用动态数组的方式,将航空磁测数据文件数据读取到动态数组vector
航磁显示界面由class Thctuxing : public TForm类构成,包含TOpenDialog组件、TTimer组件、TPopupMenu组件、TChart组件、TLineSeries组件、TFastLineSeries组件、TPointSeries组件、TPanel组件、TLabel组件、TButton组件、TScrollBar组件以及多个Edit组件和相应组件的发生事件函数和实现界面功能编制的各功能函数。主要功能函数如下。读取磁数据文件函数dusjwjmag(),GPS经纬度转换为大地坐标函数GPStoxy();测量数据数字显示函数seesjvol(),设置绘图量程函数setlc(),定时事件发生函数Timer1Timer(),鼠标按下事件函数ChartMouseDown(),TPopupMenu清单项点击事件函数MenuItemClick(),图形曲线上鼠标点击时事件函数SeriesClick(),滑块发生改变事件函数ScrollBar1Change()和Form窗体的相关事件函数以及各按键动作函数。
绘图部分在TChart组件内完成,其组件内浏览曲线其显示量程可以通过类函数setlc(double mlc)来改变,鼠标点击Chart框左右外侧可以进行图像的自动浏览,其功能由Timer1Timer(TObject *Sender)事件函数完成,鼠标滑动浏览图形和数据由事件函数ScrollBar1Change(TObject *Sender)完成。退出窗口界面后自动释放所占用的内存空间。
1.3.3 能谱界面
能谱数据的读取采用动态数组的方式,将航空伽玛能谱文件数据读取到动态数组vector
能谱界面由class Tgknpqx : public TForm类构成,包含TOpenDialog组件、TTimer组件、TPopupMenu组件、TPageControl组件、TTabSheet组件、TChart组件、TLineSeries组件、TFastLineSeries组件、TPointSeries组件、TLabel组件、TButton组件、TScrollBar组件以及多个Edit组件和相应的事件函数、功能函数。
主要函数如下:航空伽玛能谱数据文件读取函数dusjwj256 (),GPS经纬度转换为大地坐标函数GPStoxy(),测量数据数字显示函数see256sjvol(),设置绘图量程函数setlc(),绘图框内绘制曲线的数据源设置函数setsjyuan(),页显示函数TabSheetShow(),定时事件发生函数Timer1Timer(),鼠标按下事件函数ChartMouseDown(),曲线上鼠标点击事件发生函数SeriesClick(),TPopupMenu清单项点击事件函数MenuItemClick(),滑块滑动事件函数ScrollBarChange()和Form窗体的相关事件函数以及各按键命令函数。
绘图部分在TChart组件内完成,其组件内浏览曲线所浏览的数据源可以通过类函数setsjyuan(int n)来改变,其显示量程可以通过类函数setlc(double mlc)来改变,鼠标点击Chart框左右外侧可以进行图像的自动浏览,其功能由Timer1Timer(TObject *Sender)事件函数完成。窗体界面分为两页,第一页为各能量窗数据图形浏览,第二页为能量全谱数据图形浏览包括上视和下视显示。窗体退出后自动释放所占用的内存空间。
1.3.4 能谱标定检查界面
标定数据的读取,同样采用动态数组的方式,将放射源测试的标定数据文件的数据读取到动态数组vector
分辨率测试:是在标定放射源后,将采集的标定数据进行累加,减去本底数据,寻找标定放射性源峰位的能量道值记录的,除以放射源峰形曲线的半宽道数来获得。本设计中分辨率的计算和峰位偏移的计算由类函数resolution(int *snch,intch)来完成,主要计算铯、钍分辨率。
软件界面由:class Tfenbianlu : public TForm类构成。包含TChart组件,TFastLineSeries组件,ScrollBar1组件,多个Edit,TOpenDialog组件,RadioButton组件,以及相应的事件函数完成相应的功能。退出时自动清理所占用的内存空间。
绘图区域由TChart组件构成。主要功能函数:dusjwj256 ()读文件数据,所读取的数据存放在动态数组vector
1.3.5 异常点初选窗口界面设计
软件读取数据文件的数据采用动态数组的方式,将放射性含量数据文件中的数据读取到动态数组中vector
异常点的初选,在曲线图形中选择计算异常峰位区域前、后的背景场,计算出背景场的平均值和标准偏差,然后跟据异常点峰值与背景场相关参数的比较,来确定异常等级,本设计中主要由cazhaofsxyicang(vector
软件界面由类:class Tjisuanyichang : public TForm构成。包含TChart组件,TFastLineSeries组件,TPointSeries组件,TAreaSeries组件,TMemo组件,ScrollBar1组件,TPopupMenu组件,TMenuItem组件,TTimer组件,多个Edit,TOpenDialog组件,TCSpinButton组件,RadioButton组件,TSaveDialog组件,TButton组件,以及相应的事件函数完成相应的功能。退出时自动清理所占用的内存空间。
主要功能函数:读文件数据函数dusjwjhanliang(),GPS经纬度转换为大地坐标函数GPStoxy(),显示能谱各测量数据值函数see256sjvol(),设置绘图曲线量程函数setlc(),设置数据源函数setsjyuan(),定时器事件函数Timer1Timer(),鼠标按键按下函数ChartMouseDown()和鼠标按键上弹函数Chart1MouseUp,TPopupMenu控件项点击函数MenuItemClick(),Edit组件敲击函数enKeyPress(),Memo组件敲击函数MemoDblClick(),选取和计算异常参数函数cazhaofsxyicanga(),滑块滑动函数ScrollBarChange()以及Form窗体的相关事件函数和各按键命令函数。
1.3.6 距离计算
将GPS经纬度转换为大地坐标,采用GWS-84高斯投影算法,本设计中主要由函数GPStoxy()完成转换的计算过程。界面中输入要计算距离的两点的GPS经纬度,自动计算两点之间的距离值显示到文本显示区内。
软件界面由类:class Tjishuanjuli : public TForm构成。包含TRadioGroup组件,TGroupBox组件,TEdit组件,TButton组件,TLabel组件,以及相应的事件函数完成相应的功能。
2.1 能谱数据界面
点击菜单浏览数据/能谱项,在显示界面后打开相应能谱数据文件显示浏览界面如图2所示。
窗体内包含:页显示区域,航迹显示区域,数值显示区域。
页显示区域包含两页,第一页为能谱窗数据显示,通过右击曲线框标题,弹出各能谱窗和高度数据显示清单,来选择要显示的数据源,右击曲线框产生显示量程选择清单来选择曲线量程;第二页为全谱数据显示。通过滑动滑块,可以显示每一记录点的数值内容,相应的窗数据图形和相应点的全谱数据图形,以及航迹图形,通过点击曲线框两侧可以自动浏览曲线图形。
航迹曲线区域:显示测线飞行轨迹,通过鼠标选择区域可以进行放大显示。
数值显示区域显示图形中标记位置的经纬度坐标,时间,各能谱窗值,高度等相关数据信息。
2.2 磁数据界面
点击菜单浏览数据/磁测项,在显示界面后打开相应磁数据文件显示浏览界面如3所示。
窗体内包括:航迹曲线,大地磁补偿前和补偿后的图形曲线,磁通门的x轴曲线,磁通门的y轴曲线,磁通门的z轴曲线,数字显示各采集点的经纬度坐标,时间,磁场值等相关数据信息。
曲线框内显示自动补偿前和自动补偿后的图形曲线,曲线框内通过右击可以显示量程。显示,通过右击高度曲线框标题可以选择要显示的高度数据源(雷达高度、气压高度、GPS高度),显示测区的飞行轨迹。通过滑动滑块可以动态浏览各曲线图形,及采样数值,通过点击曲线框两侧可以自动浏览曲线图形。
图3 航磁数据显示界面图
2.3 分辨率检查界面
点击菜单辅助/分辨率检查项,在显示界面后打开相应标定数据文件显示浏览界面如图4所示。
图4 标定界面显示图
显示界面内包括:下测全谱标定曲线,上测全谱标定曲线;道数选择和记算结果数值显示区域。可以显示标定的累加谱曲线,也可以通过滑动滑块浏览各采集点的全谱数据图形。通过点击计算按钮可以显示标定的分辨率和峰漂结果。
2.4 异常点计算界面
点击菜单浏览数据/异常点计算项,在显示界面后打开相应数据文件显示浏览界面如图5所示。
图5 异常选择界面图
界面包括:航迹曲线区域,能谱放射性含量曲线:总道、钾到、铀道、钍道区域,测量参量数字显示区域,异常点计算结果Memo文本显示区域,该文本区域的内容可以拷贝复制并可通过“保存结果”按键可以保存为文本文件。能够在浏览图形中通过功能键和鼠标快速选定异常区域并计算异常参数将结果显示到Memo文本区域,计算内容主要有,钾、铀、钍放射性元素的放射性含量异常等级(非异常,偏高场,高场,异常)并在图形曲线中自动的用不同的颜色进行标识,计算异常点所选取的采样点数目,异常点峰位坐标,计算显示出钾、铀、钍窗口所对应元素含量的最大值、最小值、平均值和含量的标准偏差以及U/Th,等判断异常点的相关参数值。
此软件实现了从模拟纸带浏览到计算机数据图形浏览的转变,实现了技术人员浏览数据,了解设备工作状态,把握数据测量质量,对下一步的测量飞行起到了指导意义。特别是在放射性伽玛能谱测量异常初选方面,实现了可视化的放射性伽玛能谱异常选取,减少了大量的手工计算异常的工作量,加快了异常选取进度,保证了后续工作的进度。在内蒙古阿拉善盟中部1:5万航空磁法、伽玛能谱测量(11-2-HK01)飞行项目中应用中,效果良好,所选取的异常初选点明显高于其它测区的异常选取。
[1] 谭浩强.C程序设计[M].北京:清华大学出版社, 1999.
[2] 李幼仪,甘 志.C++Builder高级应用开发指南[M].北京:清华大学出版社,2002.
[3] 周海斌,王安鹏,牛 韬,等.C++Builder技术大全[M].北京:机诫工业出版社,2001.
[4] 范逸之,江文贤,陈立元.C++Builder与RS-232串行通信控制[M].北京:清华大学出版社,2001.
Data Browsing Software Based on C++Builder for Airborne Geophysical Prospecting
Sun Xiaonan, Sun Tao, Xin Chunying, Sun Hairen
(Airborne Survey and Remote Sensing Center of Nuclear Industry, Shijiazhuang 050002, China)
With the development of computer, the method of evaluating quality and identifying outliers of aero geophysical data has changed a lot. It has entered an era of automation which can choose the statistics in real time. Data browsing has changed from traditional tape recording todigital recording. This software is based on C++Builder compiler system, it not only lets the fast graphics browsing of airborne gamma energy spectrometric data and magnetic data come true, but also can display the navigation trail of the sampling point through image. By obtaining the calibration status and working status of equipment in real time, it helps the technician choose the abnormal data of airborne gamma energy spectrum quickly and automatically calculate the characteristic parameters of the anomaly.
airborne geophysical prospecting; data quality; browse; anomaly
2016-11-09;
2016-11-28。
中国核工业地质局航空自动磁补偿测量系统研制项目。
孙肖南(1962-),男,河北巨鹿县人,大学,高级工程师,主要从事航空物探设备的研究管理维护工作方向的研究。
1671-4598(2017)04-0117-04
10.16526/j.cnki.11-4762/tp.2017.04.033
TP311
A