地质钻孔数据采集系统设计

时间:2022-10-16 09:42:17

地质钻孔数据采集系统设计

1系统体系结构设计

给出了钻孔属性库软件系统的体系架构设计,包括数据录入、数据查询、数据汇总、数据导入和导出、数据上报、系统维护、报表打印和系统帮助8个主要部分,如图1所示。各部分主要功能如下:①数据录入。将数据录入到钻孔属性表中,包括五类表格:保管单位表、项目信息表、钻孔重要信息表、钻孔属性表和钻孔岩心属性表。支持手工录入和Excel录入两种形式。②数据查询。支持基本查询、高级查询、按钻孔类型查询、按钻孔目录树查询4种形式,通过多种手段查找钻孔信息。③数据汇总。用于上级主管部门(省厅及国家部委)汇总其管辖地区的钻孔信息,支持按保管单位、按项目、按钻孔三类形式汇总。④数据导入、导出。支持从Excel中导入数据,便于充分利用已有的电子成果,避免繁琐的手工录入。同时,也支持将数据导出到Excel,便于数据的交流和共享。⑤数据上报。各保管单位利用此模块向上级主管部门汇交数据,支持完整汇交,也支持增量汇交。汇交的信息不仅包括钻孔的属性信息,还包括配套的图件信息。⑥系统维护。提供系统数据的备份、恢复及数据追加功能,保证数据的安全性,提供必要时的灾难恢复(如磁盘损坏)机制。⑦报表打印。打印单条记录及汇总记录,支持打印汇总表和资料移交清单等功能。⑧系统帮助。提供chm格式的用户手册。考虑到基层单位部署使用方便,本系统支持Win-dowsXP、Vista、Windows7、Windows8等主流操作系统,钻孔数据库系统采用Access(支持Access2003以上版本),支持表单模式、仿Excel模式两类属性数据采集形式。

2采集范围及采集原则

地质钻孔信息数据采集范围是:地勘单位归档保管的除油气、放射性以外的区域地质,包括矿产地质、水文地质、工程地质(大型以上项目)、环境地质、灾害地质勘查等形成的地质钻孔数据信息。通过对全国地质钻孔资料的调研分析,形成了钻孔资料分层次建设数据库的思路。根据地质钻孔数据属性特征,将数据文件分为两大类:①基本信息表,包括:保管单位信息表、项目信息表、钻孔重要信息表;②钻孔基础属性信息表,包括钻孔属性表和钻孔岩心属性表。基本信息表中的3张数据表关系如下:全国与各省(市、区)为1∶n关系;各省与钻孔资料保管单位为1∶n关系;保管单位信息表与项目信息表为1∶n关系;项目信息表与钻孔信息表为1∶n关系。行政区划代码、组织机构代码、项目名称、原始资料档号、钻孔编号为数据文件的主关键字。钻孔基础属性信息表,包括固体矿产、水文地质、工程地质、煤田地质钻孔基础属性信息表四类。①固体矿产钻孔基础信息属性数据表,包括:钻孔基本信息表,钻孔回次数据表,钻孔孔深校正及弯曲测量数据表,钻孔结构数据表,钻孔分层数据表,钻孔地质综合数据表,钻孔岩石花纹对照数据表,钻孔标本采样数据表,钻孔劈心样数据表,钻孔基本化学分析数据表,钻孔物相分析数据表,钻孔体重测定数据表,钻孔组合分析数据表,钻孔岩石样品全分析数据表,钻孔样品分析结果数据表,钻孔测井曲线层数据表和钻孔测井曲线点数据表。②水文地质钻孔基础属性数据表,包括:钻孔(井)基本信息表,钻孔(井)地层岩性数据表,钻孔(井)结构数据表,钻孔(井)抽水试验数据表,钻孔(井)水质分析数据表和钻孔(井)电测井数据表。③工程地质钻孔基础信息属性数据表,包括:钻孔信息记录表,钻孔标准贯入、动力触探实验记录表,钻孔岩石物理力学试验表,室内土工试验记录表,土物理力学性质指标分层统计表,钻孔抽水试验数据表,钻孔水质分析成果表,钻孔工程地质信息记录表,钻孔工程地质信息记录表,钻孔波速测试记录表和钻孔测井曲线记录表。④煤田地质钻孔基础信息属性数据表,包括:钻孔地质记录表,钻孔信息记录表,钻孔煤层记录表,钻孔煤质分析信息表,钻孔煤样试验记录表,钻孔孔深校正及弯曲测量数据表,钻孔测井曲线层数据表和钻孔测井曲线点数据表。考虑到我国地质钻孔属性库目前还未形成统一的规范标准,因此,在项目实施过程中,不可避免地要经常对钻孔属性表的种类、字段等进行频繁的修改,并及时给基层单位进行试点应用。为避免上述的软件修改和维护开销,项目组精心设计了属性采集引擎,能灵活地适应属性表的动态变化,这也是本文的重要研究动机。

3关键技术方案设计

3.1界面渲染引擎选择

本文设计的属性数据采集引擎,可以根据元数据动态生成属性数据的录入界面,能快速适应属性表的种类、字段等的调整,从而有效简化软件修改工作。采用上述动态生成策略的优势在于:①数据表种类和字段发生变化,界面无需重新设计。②能自动生成功能逻辑代码,并支持数据的有效性和合法性校验。③系统扩展性高、通用性好,维护成本相对较低,开发周期较短。动态生成界面,首先,要选择合适的界面渲染引擎。本研究采用Html+CSS绘制界面,采用VC++实现功能代码。采用Html+CSS的好处是界面容易调整,容易自动生成。传统上,一般通过浏览器控件(如IEWebBrowser)来渲染界面。但不同版本的浏览器控件,其渲染机制往往有差异,在不同计算机上可能得到不同的运行结果,兼容性存在问题,且浏览器控件本身较为笨重,体积较大。本研究采用了不同的设计思路,利用Htmlayout作为Html+CSS的渲染引擎。Htmlayout是一个轻量级的浏览器引擎,大小仅900K,以动态链接库形式提供API接口,便于集成到各种主流开发环境中。Htmlayout可以高效的解析和渲染HTML网页,几乎支持所有的HTML元素和CSS3标准,且界面与逻辑分离,通过其特殊扩展的behaviorcss属性可以方便的交互或者扩展、自定义控件。采用Htmlayout的优点是,Html页面在不同的操作系统上渲染完全一致,兼容性好,并具备良好的VC++集成能力,便于后端功能代码的开发。同时,该渲染引擎运行速度快,占用内存低,性能也很高效。

3.2属性采集引擎设计思路

能动态适应属性表的种类调整和属性表中的字段调整,且不用修改界面代码和功能逻辑代码是本研究设计的属性采集引擎的最大特点。该引擎包括4个主要处理步骤:①通过元数据表统一描述属性表种类和表格中的字段。为此,系统设计了SysTableInfo表,该表定义了每张属性表的表名,每张表的各个字段名以及这些字段名对应的中文名,字段是否为空,字段的数据类型,字段在界面上采用的控件类型,字段的长度,显示控件的长度,字段的校验正则表达式等。②根据元数据表中的字段定义,映射成合适的Html控件。以中的“(固体)钻孔孔深校正及弯曲度测量数据表”为例,其中,校测孔深、误差率、天顶角等是数值型,记录日期、检查日期是日期时间类型,可以将上述字段类型分别映射成Html中的文本框、下拉框。为了提高系统性能,系统会检查是否已生成了相应的界面代码。如果已生成了,则直接使用该界面代码。否则,则从中读取该数据表的定义,生成界面代码。这样,在保证系统灵活性的同时,有效提升了系统的性能。③调用Htmlayout解析和渲染界面代码。处理流程是,由Htmlayout加载步骤②生成的Html代码,解析其中的Html标签代码和CSS定义,从而绘制出最终的用户界面。给出了“(固体)钻孔孔深校正及弯曲度测量数据表”生成的界面。④数据获取及消息处理。当用户输入文字,或者点击按钮等控件时,会触发相应的事件,调用Htmlayout的behavior来响应用户。借助该机制,可以获取步骤③中录入的数据,并将其保存到Access数据库。考虑到钻孔属性数据量很大,为减小录入开销,加快输入速度,系统设计实现了快速录入功能,如“保存”、“重置”、“拷贝上一条记录”、“保存并继续填写”、“退出”等功能。其中,点击“保存”按钮,将保存当前录入的内容;“重置”按钮,将当前的表单内容置空;“拷贝上一条记录”按钮,将上一条输入的数据,拷贝填充至当前录入界面;“保存并继续填写”按钮,保存当前输入信息,将录入界面初始化为下一条填报信息,同时自动填写部分已知信息。比如,在同一个钻孔下连续输入多条钻孔属性信息时,单击“保存并继续填写”,会存储当前信息,将录入界面初始化为下条信息,并自动填入上条钻孔属性信息所属的钻孔。

4结语

针对钻孔属性库系统设计中的典型场景,如数据表多、字段多、需要经常调整等,笔者经过认真的调研和反复的比较,摸索出采用动态生成策略的方法来解决此类问题。经试点应用,该策略高效地完成了属性数据的采集任务,降低了软件的维护开销。实际上,本文的方法具有较高的通用性,不仅适用于地质钻孔属性数据的采集,在其它类似的场景中,比如油气、林地、化工、海洋等其它行业也可以灵活运用。

作者:李杰 单位:国土资源实物地质资料中心

上一篇:突发公共卫生事件应急管理论文 下一篇:公路工程安全生产管理分析