基于PDF文件解析的图谱数据还原方法
文献发布时间:2023-06-19 11:08:20
技术领域
本发明涉及基于PDF文件解析的图谱数据还原方法,属于文件数据解析领域。
背景技术
图谱作为科学研究的重要手段,在分析实验中的作用巨大。图谱通常以包含纵坐标与横坐标的散点图形式出现,通常呈现连续性变化,其纵坐标与横坐标具有特征性的相关性。例如液相图谱:洗脱物质的吸收值与洗脱时间的对应关系;紫外分光光度的扫描图谱:样品吸光值与步进变化的波长之间的对应关系;晶体的X衍射:步进变化的衍射角2θ与强度标值I之间的对应关系等等。
这种特征性的相关性直接或间接的反映出了被研究对象特定的物理化学性质,因此图谱解析作为现代实验室的主要研究手段异常重要。
现代分析仪器通常采用安装于PC机、工作站或者网络服务器的专用工作软件进行数据抓取和分析,仪器与专用软件之间属于一对一的匹配,具有专属性;综合型实验室因为研究目标、研究手段、设备更新等原因,又存在实际应用场景中的多样性。例如实验室会配备多种研究设备采用不同的方法(如液相色谱、气相色谱、质谱、核磁共振、热分析等)对同一研究目标从多方面进行研究,且由于商业竞争、仪器更新迭代、软件版本升级等原因,相同原理的检测设备也会出现不同品牌设备并存或是同品牌新老设备并存的现象。
由于上述的种种原因,现代实验室中的图谱数据文件格式五花八门。对综合型实验室,多类型图谱综合性的数据管理及报告生成并没有较好的解决方案。
现有LIMS系统(实验室信息管理系统)及SDMS(科学数据管理系统)或是属于第三方开发系统,因为缺乏对仪器硬件底层技术及图谱数据原始文件的数据结构的了解,易造成数据采集的不完整;或是因为硬件供应商自行开发的控制及管理系统,其专属性太强,无法实现跨品牌、跨硬件类型的数据采集,会因为网络内部的仪器类型,仪器型号,厂商的不同而产生兼容性问题。
综合性实验室需要实现数据采集的专属性与仪器系统兼容性的平衡。
PDF(Portable Document Format,便携式文档格式)是一种独立于硬件、操作系统、应用程序的电子文档。上述的图谱数据都可以通过虚拟打印的方式实现图谱报告的输出,生成图谱的PDF文件。PDF文件因其独特的优点成了事实上的实验室通用报告文本。通过对PDF文件的解析和数据还原,可以实现对综合性实验室电子数据的管理。目前所知对PDF文件的解析通常只是针对文件中的字符型数据按照规则进行解析,对以图形式展现的图谱并没有较好的解析,这使得所得到的报告数据并不全面。
发明内容
发明目的:本发明针对综合型实验室存在的问题,提出一种图谱数据还原方法,将PDF格式的图谱报告还原为包含图谱绝对坐标数据、积分线及图谱参数的集合,并打包生成可进行数据传输XML、Json等的特定数据结构文件。上述文件可在设定解析策略后被通用的Origin、EXCEL、Matlab等数据处理软件识别、解析并绘制为矢量图谱。并可以在上述软件中进行进一步的数据标记、面积积分操作。
技术方案:多数电子仪器的基本原理是通过传感器接收特定信号,如特定波长,温度,压力等,转换为电信号,并通过数模转换成为可被计算机记录处理的数字信号,该数字信号与对应的参数如保留时间,转角步进,变化波长等一一匹配,形成以二维数组列表形式的原始数据记录;上述记录通过特定软件/算法进行处理、计算、压缩最终生成图谱报告。
生成图谱报告的“数据散点”是由安装于PC机、工作站或者网络服务器的专用工作软件根据报告输出的分辨率采用特定的算法所生成的压缩数据,这种压缩没有将所记录的所有数据点一一体现,但在所输出的特定分辨率下并没有改变图谱的特征性,图谱依旧可以被识别并依此进行判断。
实验室图谱一般都是以直线和曲线来描述的图形,通过以二维数组(X,Y)为坐标生成“数据散点”,其中的横坐标X与纵坐标Y为具有相关性的特征性数据。上述二维数组中的X,Y来源于具有实验研究意义的数据,其坐标为固定的“绝对坐标”,不会因为参照物的不同而不同。
PDF是从PS语言(Postscript语言,即页面描述语言)发展而来的一种结构化的文档格式。通过页面描述指令对指定区域进行着色绘制页面,PDF支持5种类型的的位图对象(Graphics Object)包括:路径对象(Path Object),文本对象(Text Object),图像对象(Image Object)和外部对象(External Object:XObject)。
PDF文件中的图谱通常是采用路径对象(Path Object)形式实现,其中直线(Line),曲线(Curve),长方形(Rectangle)都属于路径对象(Path Object)。
PDF文件在绘制图谱时,会根据图谱的“数据散点”基于页面位置布局对进行处理。各“绘图散点”的坐标为在PDF页面中的位置,其坐标为“相对坐标”(相对于页面位置),会因为图谱报告排版的变化而发生变化。
由于“绘图散点”是由“数据散点”依据坐标变换而来,并没有改变“数据散点”所反映的特征性及“数据散点”之间的相关性,因此通过“绘图散点”所绘制的图谱在视觉上不会发生变形。
依据坐标变换的原理,在图谱文件中找到相关的数据通过设立参照点和修正系数,建立“数据散点”和“绘图散点”转换公式,就可以通过“绘图散点”找到“数据散点”。从而得到与原数据文件输出数值及效果接近、可以反映出检测物质的特征性的数据。
随着信息技术的发展,目前已经有工具可以实现对PDF文件中各类资源的解析,更进一步的可以实现对路径对象的识别和位置确定。这就为本发明的实现创造了必要的条件。
由于采用了上述技术方案,本发明的有益效果为:将PDF格式的图谱内容转换为反映图谱特征的、数值与原始数据接近、可操作可检索的数据;使图谱数据的使用脱离原专用系统、工作站、工作程序的限制;提升图谱数据的交换、查询、比对的便利性,方便进行数据的统一管理;可以统一实验室的报告形式,无需通过附件形式附加图谱,有助于形成更规范的报告文本;所生成的数据便于进行自动化分析,结合AI技术,可以更迅速的分析结果。
附图说明
此处的附图用于解释具体实施例,以便于更好的理解本发明,并不构成对本发明的不当限定。
图1为本发明的流程示意图;
图2为本发明中实施例1的目标图谱PDF页面;
图3为本发明中的相关术语示意图(以实施例1为例);
图4为本发明中实施例1中的图谱曲线的局部放大图;
图5为本发明中实施例1处理过程的示例1;
图6为本发明中实施例1处理过程的示例2;
图7为本发明中实施例1的结果展示;
图8为本发明中实施例4的目标图谱PDF页面;
图9为本发明中的相关术语示意图(以实施例4为例);
图10为本发明中实施例4处理过程的示例;
附图标记:1、图谱范围(LTRect对象)示例;2、坐标轴框架(LTCurve对象)示例;3、图谱其他文本对象(LTTextBoxHorizontal对象)示例;4、图谱曲线之一示例(LTCurve对象);5、积分线示例(LTLine对象);6、积分线标记示例(LTLine对象);7、绝对坐标示例;8、特定点示例1;9、数据汇总表;10、纵坐标轴与横坐标轴相交点;11、特定点示例2;12、特定点示例3;13、特定点示例4;14、横坐标刻度线示例(LTLine对象);15、横坐标刻度线标注(LTTextBoxHorizontal对象)示例;16、纵坐标刻度线示例(LTLine对象);17、纵坐标刻度线标注(LTTextBoxHorizontal对象)示例;18、积分线示例(LTCurve对象)。
具体实施方式
为便于理解,实施例采用Python语言编写的Pdfminer作为PDF解析软件,采用Python语言编写的Matplotlib作为绘图软件。
需要说明的是,因生成PDF图谱文件的报告程序不同,所调用的虚拟打印的方法不同,不同的图谱PDF文件在绘图细节上也存在差异,如是否采用对坐标轴框架、对积分线所采用的描绘方式(LTCurve对象或是LTLine对象)、积分线标记方式(以LTLine对象描述的直线型或者是以LTCurve对象描述的箭头型)。在处理方法上应进行相应的调整。基本流程见图1。
下面结合附图描述本发明的具体实施例。
实施例1
目标PDF页面见图2,该实施例PDF图谱存在一个由LTCurve对象绘制的坐标轴框架2以及LTLine对象绘制的积分线5。参见图3。
1、采用软件对PDF进行解析,通过解析文件的中以PDF页面为参照物生成的路径对象(Path Object),该类路径对象在Pdfminer中定义为LTRect对象,获得计算该类对象属性中的x1-x0及y1-y0的最大值,对符合条件的LTRect对象的位置信息进行解析,获得图谱范围1。
2、 采用软件对PDF进行解析,通过解析文件的中以PDF页面为参照物生成的用于显示图谱的路径对象(Path Object),该类路径对象在Pdfminer中定义为LTCurve对象,对LTCurve对象进行识别,区分坐标轴框架2与图谱曲线4,参见图5。解析获得图谱曲线的LTCurve对象的路径点,参见图4,该路径点信息包含在LTCurve对象的属性中的pts中,将所获的多个绘制图谱曲线的LTCurve对象的路经点的相对坐标组合生成包含目标图谱上各点的位置的图谱相对坐标数据。
3、在图谱所处的位置范围内,分析LTTextBoxHorizontal类型的文本对象,参见图6,根据相对坐标 (x0,y0,x1,y1)进行区分,判断文本对象的功能。识别为纵坐标刻度线标注17,横坐标刻度线标注15及图谱其他文本对象3。所述实施例1的图谱其他文本对象3包括纵/横坐标轴单位,样品名称,测定参数信息。将所获的图谱其他文本及对应相对坐标按照功能分类进行保存,生成图谱参数数据。
4、在图谱所处的位置范围内,分析LTLine类型的路径对象。根据相对坐标 (x0,y0,x1,y1)进行区分,判断路经对象的功能。识别为纵坐标刻度线16,横坐标刻度线14、图谱的积分线5及积分线标记6。将所获的路径对象相对坐标的按照功能分类进行保存。将积分线5的图谱坐标生成积分线相对坐标数据。
5、匹配得到的坐标刻度线与刻度线标注。通过位置比较,得到纵坐标轴与横坐标轴相交点10的标注信息,分别获得纵坐标轴的横坐标(绝对坐标)和横坐标轴的纵坐标(绝对坐标);进一步的,获得位于纵/横坐标轴上的刻度点的绝对坐标与对应的相对坐标,形成相匹配的数据。 选择其中一点作为特定点11。
6、 通过分析图谱文件中的数据汇总表9中的记录,解析目标图谱中特定点之一8的绝对坐标7:横坐标为实验图谱上定义的出峰位置,纵坐标为实验图谱上定义的峰高。通过解析所生成目标图谱的各点的相对坐标,通过排序法进行比较筛选,找到相对坐标的纵坐标的最大值,所对应的坐标即为特定点之一8的相对坐标。
7、 通过图谱上已知绝对坐标及相对坐标的上述两点8和11,计算相对坐标和绝对坐标的所对应的横坐标校正系数和纵坐标校正系数。
8、 采用已知绝对坐标与对应的相对坐标的所述特定点之一11作为参照点,将上述保存数据(图谱相对坐标数据、图谱参数数据、积分线相对坐标数据)中的相对坐标通过横坐标校正系数和纵坐标校正系数进行换算,得到对应的各点绝对坐标。根据功能构建为字典进行保存。
9、 进一步的,将所得到的字典生成结构化文件如XML或Json等便于传输和转移的文件。
10、将上述文件数据解析后导入Matplotlib软件生成解析图谱,见图7。
实施例2:
所分析得图谱与实施例1相同,实施思路相近,不同之处在于所选择的用于计算的特定点分别为具有可识别刻度标记的位于纵坐标轴的特定点13与横坐标轴的特定点11,参见附图3,而不需要再通过读取数据汇总表的方式找到特定点的绝对坐标。
实施例3
所分析的图谱与实施例1相同,实施思路相近,不同之处在于所选择的用于计算的特定点之一为图谱的起始点:特定点12。在类似本实施例的图谱中,起始点通常默认为原点, 因此其相对坐标为图谱相对坐标数据中的第一个坐标。而该位置绝对坐标为(0,0);另一特定点为具有可识别刻度标记的位于横坐标轴的特定点11,参见图3,而不需要再通过读取数据汇总表的方式找到特定点的绝对坐标。
实施例4
目标PDF页面见图8,该PDF图谱不存在由LTCurve对象绘制的坐标轴框架,其积分线18由LTCurve对象绘制,参见图9。
处理方法与实施例1基本一致。在对LTCurve对象的处理上略有所不同,需要进行对象的识别, 区分积分线18与图谱曲线4,识别的结果参见图10。
针对本实施例的其他操作与实施例1一致。
所述实施例仅为本发明的部分实施例,并非因此限制本发明的专利范围,在本发明的技术构思范围内,采用不同的编程语言,对技术方案进行的变换或直接间接应用于其他技术领域均在本发明的专利保护范围内。
- 基于PDF文件解析的图谱数据还原方法
- 基于PDF文件解析的图谱截图抓取方法