基于启发式规则的CPT文件格式识别与解析方法及系统与流程

摘要: 本发明涉及岩土工程勘察数据处理,特别是涉及一种基于启发式规则的多源静力触探(cpt,conepenetrationtest)数据文件格式自动识别与解析方法及系统...
基于启发式规则的CPT文件格式识别与解析方法及系统与流程

本发明涉及岩土工程勘察数据处理,特别是涉及一种基于启发式规则的多源静力触探(cpt,cone penetration test)数据文件格式自动识别与解析方法及系统,适用于不同厂商、不同型号静力触探仪器输出的异构数据文件的零配置批量导入与自动解析。

背景技术:

1、静力触探(cpt)是岩土工程勘察中原位测试的核心手段之一,通过将锥形探头以标准速率压入土层,连续测量锥头阻力(qc)和侧壁摩擦力(fs),为地层划分和土类判别提供关键数据。国内岩土工程勘察行业经过数十年发展,形成了数十种不同厂商的静力触探仪器设备体系,包括华勘、庆安、勘测仪器厂等厂商的各类型号。

2、每种cpt仪器输出的数据文件格式各异。目前行业内存在的格式类型包括:单列数值格式(仅含比贯入阻力数据)、双列格式(深度值与锥头阻力配对)、三列格式(深度值、锥头阻力、侧壁摩擦力三列数据)、分隔符标记格式(以特定字符标记各参数数据区间)、以及标准dat格式(包含多行元数据和空行分隔的数据区)。不同厂商在同一格式类型下的头部结构、元数据位置和深度值编码方式也存在显著差异。

3、现有商用软件如cptask、geo5等,在导入cpt数据时通常采取以下方式之一:(1)要求用户预先指定文件格式类型;(2)仅支持gef(geotechnical exchange format)/gme等少数国际标准格式;(3)提供格式模板由用户手工配置字段映射关系。上述现有技术在实际应用时,存在以下问题:

4、(一)格式适配能力有限:商用软件通常仅支持有限几种国际标准格式(gef/gme),对国内大量中小厂商的非标准输出格式缺乏兼容能力;用户在导入数据前需要将文件手工转换为软件支持的格式,增加了预处理工作量,且转换过程中容易引入人为误差。

5、(二)依赖人工预判和配置:用户必须事先了解文件的格式类型并手动选择对应的解析模板。当批量处理来自不同仪器厂商、不同项目时期的cpt文件时,逐一确认格式类型极其耗时(单文件平均耗时2-5分钟),且容易因判断失误导致数据解析错误或数据丢失。

6、(三)异常格式处理机制缺失:部分厂商的数据文件存在非标准表达方式,例如以“.1”表示“0.1米”的省略前缀深度值,或存在头部行数不固定的变长头部结构。现有解析方案遇到此类非标格式时直接报错或产生错误的解析结果,缺乏自适应修正能力,导致整体数据解析成功率仅为60%-70%。

7、(四)缺乏批量容错能力:现有方案在处理批量文件导入时,若单个文件因格式异常导致解析失败,往往中断整个导入流程,缺乏异常隔离与单文件容错跳过机制。

技术实现思路

1、本发明针对现有静力触探数据导入过程中需人工指定文件格式、对多源异构格式兼容性差、缺乏异常格式自适应处理能力的技术问题,提供了一种基于启发式规则的cpt文件格式识别与解析方法及系统,该方法能够针对含元数据cpt文件零配置自动识别解析方案,对无元数据文件的低配置(仅需提供采样间距参数)导入方案。

2、为了达到上述技术目的,本发明提供了一种基于启发式规则的cpt文件格式识别与解析方法,具体包括以下步骤:

3、s1.将用户交互终端上传的原始cpt数据文件逐行读取并存储为字符串列表,形成内存中的行序列,供后续格式检测处理;

4、s2.采用优先级逐级检测策略,依次对s1步骤中的行序列依次进行三种不同粒度的格式特征识别,命中即终止检测并输出格式类型标识;第一级检测为全文标记字符模式检测,检测结果判定为分隔符标记格式,第二级检测为dat空行位置模式检测,检测结果判定为单列dat格式,第三级检测为首行词法特征检测,检测结果判定为含头部的标准列式格式和无头部的标准格式;

5、s3.根据s2步骤输出的格式类型标识,执行对应的头部信息提取,定位头部位置,输出孔号和数据起始行号;

6、s4.从数据起始行号开始截取纯数据行序列,按格式类型选择对应的数值提取方式,分别进行解析及数据提取,输出数值化的数据列表;所述数据列表包括锥头阻力数值列表、侧壁摩擦力数值列表、深度值列表和比贯入阻力数据列表;

7、s5.将s3步骤输出的孔号和s4步骤输出的数据列表封装为标准数据交换格式json进行储存。

8、本发明进一步的技术方案:s2步骤中若三级检测均未命中任何格式类型,则判定文件为无法识别格式;并向用户交互终端返回格式识别失败标识及文件特征摘要信息,提示用户手动指定格式类型或将文件样本提交至技术支持团队用于后续规则库扩展。

9、本发明进一步的技术方案:s2步骤中的全文标记字符模式检测,具体过程如下:对行序列进行全局扫描,检测是否存在独立的单字符标记“q”、“f”、“e”占据整行内容,当三个标记字符在文件中全部出现时,判定为分隔符标记格式。

10、本发明进一步的技术方案:s2步骤中的dat空行位置模式检测,具体如下:当第一级检测未命中时,执行dat空行格式检测;检测条件为三个必要条件同时满足:(a)文件总行数不少于13行;(b)在前15行内存在至少一个空行;(c)在第一个空行之后的连续3行以上均为可通过数值校验的字符串;上述三个条件均满足时,判定为单列dat格式。

11、本发明进一步的技术方案:s2步骤中当第一、二级检测均未命中时,执行首行词法特征分析,对第一行按空白字符分割后的词元序列进行特征判断:

12、若第一个词元为字母数字组合,包括连字符和下划线,且第二个词元为数值字符串,包括整数或带小数点的数值,则判定为含头部的标准列式格式;否则判定为无头部的标准格式;对于判定为含头部的标准列式格式的文件,进一步读取第二行并分割后判断列数:

13、列数为3时,判定为三列格式,对应深度值、锥头阻力、侧壁摩擦力三列数据;

14、列数为2时,进一步检查第二行第一个词元是否以“.”开头,若是,则判定为两列格式且深度值存在省略前缀;否则判定为普通两列格式。

15、本发明进一步的技术方案:s4步骤中针对分隔符标记格式按q/f/e标记行位置切分数据区间,分别获得锥头阻力数据列表和侧壁摩擦力数据列表;针对单列dat格式,单列直读,每行仅一个数值直接读,获得比贯入阻力数据列;针对含头部的标准列式格式和无头部的标准格式,按空白字符将每行分割为多列,分别获得深度值列表、锥头阻力列表、侧壁摩擦力列表。

16、本发明较优的技术方案:s4步骤中对分隔符标记格式执行区间提取的数据进行解析与数据对齐,具体是精确定位q、f、e三个标记行的行号索引,分别截取q行与f行之间的行区间作为锥头阻力数据列表、f行与e行之间的行区间作为侧壁摩擦力数据列表;当两个数据列表的长度不一致时,取较小长度值进行数据截断对齐,确保后续摩阻比即侧壁摩擦力与锥头阻力之比计算的维度一致性。

17、本发明较优的技术方案:s4步骤中针对两列格式且深度值存在省略前缀的格式在进行数据提取之前,对非标准深度值执行前缀自动补全处理,具体是对深度值所在列的每个词元执行前缀检测;若检测到以“.”开头的字符串,自动在该字符串前补“0”字符将其转换为标准小数字符串,再进行数值提取。

18、本发明较优的技术方案:所述方法还包括异常处理机制,具体包括:

19、数据级异常:当数据行中包含无法解析为数值的无效字符串时,抛出包含具体行号信息的异常并回退当前文件的事务操作,防止错误数据写入持久化存储单元;

20、批量操作容错:当处理压缩格式的数据包中的多个文件时,单个文件的解析异常被捕获并隔离,不影响其余文件的正常处理,避免因单一文件的格式异常导致整个批次的导入流程中断。

21、本发明还提供了一种用于执行基于启发式规则的cpt文件格式识别与解析方法的系统,所述系统包括文件读取模块、格式检测模块、头部偏移解析模块和数据提取模块;

22、所述文件读取模块用于将用户交互终端上传的原始cpt数据文件逐行读取并存储为字符串列表,形成内存中的行序列,供后续格式检测模块处理;

23、所述格式检测模块为核心处理单元,采用优先级逐级检测策略,依次对行序列进行三种不同粒度的格式特征识别,命中即终止检测并输出格式类型标识;

24、所述格式检测模块包括三个级联检测器:文标记字符模式检测器、dat空行位置模式检测器、首行词法特征检测器;

25、所述头部偏移解析模块根据格式检测模块输出的格式类型标识,执行对应的头部信息提取,输出标准化的解析结果对象;所述头部信息包括孔号、数据起始行号;

26、所述数据提取模块基于数据起始行号从行序列中截取纯数据行序列,根据格式类型执行列分割操作,对分隔符标记格式执行区间的数据提取,并对非标准深度值执行前缀自动补全处理;

27、所述数据持久化存储单元将提取的结构化数据以标准数据交换格式(json)写入数据持久化存储单元,完成从原始文件到结构化数据的全自动处理闭环。

28、与现有技术相比,本发明具有以下有益效果:

29、(1)本发明消除了人工预处理环节,支持6种以上国内主流cpt仪器输出格式的自动解析,对于含元数据的cpt文件实现零配置自动识别与解析,对于缺少元数据的无头部格式文件仅需用户提供采样间距单一参数即可完成导入。用户无需了解文件格式细节,单文件解析耗时由人工操作的2-5分钟降至毫秒级,显著提升批量数据处理效率。

30、(2)本发明显著提升了格式兼容性和解析成功率,采用三级优先级递进式检测,每级使用不同特征向量(字符位置特征、空行分布模式、词法结构特征),命中即终止的高效检测策略;实现了从高特异性分隔符标记格式到低特异性标准列式格式的全谱系格式类型覆盖,在单次文件扫描中完成格式识别,避免了穷举匹配的性能开销;经对实际工程中采集的500份不同厂商cpt数据文件(涵盖华勘、庆安、勘测仪器厂等6类主流格式及3类非标格式)的批量测试验证,格式识别准确率达到99%以上,数据解析成功率从行业平均的60%-70%提升至95%以上。

31、(3)本发明具备非标准格式自适应处理能力;对特定厂商深度值省略前缀写法的自动补全机制, 对以“.”开头表示小数的深度值字符串(如“.1”表示0.1米),自动检测前缀特征并在前方补“0”字符,解决了特定厂商仪器以省略前缀方式编码深度值的非标准表示问题,无需为单个厂商定制解析逻辑;通过精确定位q/f/e三行标记索引,分别提取锥头阻力和侧壁摩擦力数据区间,并自动将两个不等长数据序列以较短者为准进行截断对齐,解决了因仪器采样不稳定导致的两通道数据长度不一致问题,确保摩阻比计算的维度一致性。整体解决了现有方案对异常数据直接报错的痛点,增强了系统的鲁棒性和实用性。

32、(4)本发明具备批量异常隔离能力与容错机制;通过对单文件解析异常的捕获与隔离机制,跳过异常文件继续处理其余文件,避免因单个非标格式文件导致整个批次的导入流程中断,满足实际工程中批量数据处理的高可用性需求,提升了批量处理的可靠性和实际工程适用性。