CN109346160B - 一种数据格式的处理方法 - Google Patents
一种数据格式的处理方法 Download PDFInfo
- Publication number
- CN109346160B CN109346160B CN201811091399.3A CN201811091399A CN109346160B CN 109346160 B CN109346160 B CN 109346160B CN 201811091399 A CN201811091399 A CN 201811091399A CN 109346160 B CN109346160 B CN 109346160B
- Authority
- CN
- China
- Prior art keywords
- data
- diffraction
- file
- parameter
- diffraction spectrum
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H30/00—ICT specially adapted for the handling or processing of medical images
- G16H30/40—ICT specially adapted for the handling or processing of medical images for processing medical images, e.g. editing
Landscapes
- Health & Medical Sciences (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Radiology & Medical Imaging (AREA)
- Engineering & Computer Science (AREA)
- Epidemiology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Analysing Materials By The Use Of Radiation (AREA)
Abstract
本发明公开了一种数据格式的处理方法,包括步骤如下:1)读取原始衍射谱文件,提取文件中衍射强度数据和衍射仪参数数据;2)获取小数点的移位处理参数,并根据得到的移位处理参数,对上述步骤1)中的衍射强度数据进行小数点移位处理,得到处理后的衍射强度数据;3)整合上述步骤1)中的衍射仪参数数据和上述步骤2)中处理后得到的衍射强度数据,得到新的衍射谱数据文件;4)存储上述步骤3)中整合后得到的新的衍射谱数据文件。本发明的方法对衍射谱数据进行数据处理,将衍射谱数据进行小数点移位处理,消除衍射谱小数部分,保留了原始衍射谱数据精度。
Description
技术领域
本发明涉及数据处理技术领域,具体指代一种对X射线衍射仪产生的衍射谱数据格式的处理方法。
背景技术
传统X射线衍射仪测试得到的X射线衍射图,经X射线衍射仪配套软件处理后,生成的原始衍射谱数据文件(*.asc)。衍射谱数据主要是描述了随衍射角变化的衍射强度的变化。
衍射谱数据主要由两部分组成:衍射仪参数数据和衍射强度数据。衍射仪参数数据包括X射线衍射仪的X射线类型、X射线波长、衍射仪狭缝类型、检测器类型等信息;衍射强度数据是在不同衍射角度下获取的衍射强度,一般情况下有几千组数据。
早期版本的Jade软件读取原始衍射谱数据文件时,仅可以读取衍射谱数据的整数部分,丢失了数据的小数部分,从而降低了衍射谱数据的传输质量。
Jade软件分析衍射谱数据时,与数据变化趋势有关,而与数据本身大小几乎无关。
发明内容
针对于上述现有技术的不足,本发明的目的在于提供一种数据格式的处理方法,以解决早期版本的Jade软件(目前国内最常用的X射线衍射数据分析软件)读取原始衍射谱数据丢失有效数据的问题。
为达到上述目的,本发明采用的技术方案如下:
本发明的一种数据格式的处理方法,包括步骤如下:
1)读取原始衍射谱文件,提取文件中衍射强度数据和衍射仪参数数据;
2)获取小数点的移位处理参数,并根据得到的移位处理参数,对上述步骤1)中的衍射强度数据进行小数点移位处理,得到处理后的衍射强度数据;
3)整合上述步骤1)中的衍射仪参数数据和上述步骤2)中处理后得到的衍射强度数据,得到新的衍射谱数据文件;
4)存储上述步骤3)中整合后得到的新的衍射谱数据文件。
优选地,所述步骤1)中提取文件中衍射强度数据和衍射仪参数数据的步骤之前还包括:获得原始衍射谱数据文件路径,所述的路径为存放原始衍射谱数据文件的文件夹路径或单一原始衍射谱数据文件的路径。
优选地,所述步骤1)中提取文件中衍射强度数据和衍射仪参数数据具体包括:
对原始衍射谱文件进行衍射强度和衍射仪参数的识别,逐行读取衍射谱数据,根据行数对衍射仪参数和衍射强度数据进行划分;
对提取出的衍射强度数据和衍射仪参数数据进行变量储存。
优选的,所述步骤2)中对衍射强度数据进行小数点移位处理具体包括:
创建用户输入界面,获取用户所需小数点的移位处理参数,移位处理参数为整数;
判断移位方向,若移位处理参数为正整数,则进行右移,若移位处理参数为负整数,则进行左移;
根据移动位数进行相应移位运算。
优选地,所述步骤3)具体包括:
新建衍射谱文件;
将步骤2)中获得衍射强度数据和步骤1)中的衍射强度数据进行分隔方式、编码方式统一;
打开新建衍射谱文件,逐行依次写入步骤1)中的衍射仪参数部分、步骤2)中获得衍射强度数据。
优选地,所述步骤4)具体包括:询问新的衍射谱数据文件所需保存路径及是否需覆盖原始衍射数据文件;若保存路径未设置,则默认将其与原始衍射数据文件同路径,并需要询问用户生成的新的衍射数据文件是否覆盖原始衍射数据文件。
本发明的有益效果:
本发明的方法对衍射谱数据进行数据处理,将衍射谱数据进行小数点移位处理,使用于早期版本Jade软件分析的衍射强度的数据有效位数增加,保留了原始衍射谱数据精度。此外,本发明的方法还可应用于其他类型数据的格式处理。
附图说明
图1为本发明衍射谱数据处理方法的流程图。
图2a为采用本发明方法处理前Jade识别衍射强度变化图。
图2b为采用本发明方法处理后Jade识别衍射强度变化图。
具体实施方式
目前国内最常用的X射线衍射数据分析软件(比较老版本的Jade软件)读取原始衍射数据时,丢失数据小数点部分。本发明提供了一种数据格式的处理方法,解决了早期版本的Jade软件读取原始衍射强度数据丢失数据的问题。
为了便于本领域技术人员的理解,下面结合实施例与附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。
参照图1所示,一种数据格式的处理方法,具体包括:
1)读取原始衍射谱文件,提取文件中衍射强度数据和衍射仪参数数据;
2)获小数点取移位处理参数,并根据得到的移位处理参数,对上述步骤1)中的衍射强度数据进行小数点移位处理,得到处理后的衍射强度数据;
3)整合上述步骤1)中的衍射仪参数数据和上述步骤2)中处理后得到的衍射强度数据,得到新的衍射谱数据文件;
4)存储上述步骤3)中整合后得到的新的衍射谱数据文件。
实施例:
步骤101:利用Python内置Tkinter模块编写用户界面,让用户选择衍射数据文件路径。利用Tkinter模块内置文件对话串口询问用户处理衍射数据文件(*.asc),并将选中的asc文件存储为列表。具体代码:filelist=filedialog.askopenfilenames(filetypes=[("asc","*.asc"),("all","*.*")])。
步骤102:For循环遍历步骤101所得到的衍射数据文件列表,使用Python计算机编程语言的内置读取文件指令Open,以UTF-8格式解码读取原始衍射谱数据文件(*.asc)。读取的数据使用变量Current_file保存。
步骤103:原始衍射谱数据文件中,前60行是衍射仪参数数据,61行到倒数第3行数据是衍射强度数据,倒数第2行是文件结束标志词(*END*)。调用Python内置readlines函数,将Current_file逐行读取,每一行保存为一项,从而组成一个列表(List)。从而将前60行的表头信息以front_para变量保存,61行到倒数第3行的衍射强度数据以data变量保存,最后两行的结束标志词采用end_para保存。
data变量无法直接进行移位运算处理。先对data变量中的数据进行转化处理,具体步骤如下:
data变量保存的数据中,每一行代表一组固定的衍射角下的衍射强度。一组衍射强度数据中,各个衍射强度数值以空格分隔。
调用Python内置字符分隔函数Split,删除空格,将每组数据重新储存为一个列表,从而改写data变量,使其成为矩阵变量方便b部分运算调用。data矩阵变量,每一行代表每一组衍射强度数据,每一组衍射强度数据中有若干个数据值。
步骤104:使用Python内置Tkinter模块编写用户界面,让用户选择输入移位处理参数,移位参数是不为0的整数。获取移位处理参数后,并以Factor变量进行存储运算。
步骤105:遍历data矩阵变量,采用双层For循环语句,逐一遍历data数据中每一行的每一个数据。
利用步骤104读取到的小数点移位处理参数,对data变量中的每一个数据点进行相应移位处理(详细见下段)。根据上述获得的移位处理参数,利用If语句判断移位方向。
如果移位处理参数factor大于0,则向右移动;如果小于0,则向左移动。
得到移位方向后,对data中的每一个数据进行相应的移位处理。如小数点向右移动3位,则表示对每一个数据点进行10的3次方的乘法运算,将运算结果赋予data矩阵统一位置点数据,具体代码:data[row][col]=str(int(data[row][col])*int(10**int(factor)));如小数点向左移动3位,则表示对每一个数据点除以10的3次方,具体代码:data[row][col]=str(int(data[row][col])/(10**int(factor)))。
将进行移动处理的数据,重新赋给data变量。利用Python内置字符串连接函数join,用空格符对data中的每一行数据中每一个数据进行连接,连接后的每一行数据之间利用Python字符之间的相关运算,加入换行符(\n),将统一处理后的data数据再次赋给data变量。具体代码:data=[”.join(i)+'\n'for i in data]。得到处理后得data变量
步骤106:判断用户是否选择覆盖原始衍射谱文件。在用户界面下利用复选框获得是否覆盖原始衍射谱文件信息,以cover复选框变量存储。调用cover.get()获得是否覆盖原始衍射谱文件复选框的勾选状态。如果未勾选,cover.get()函数将返回False,会自动在原始衍射数据文件夹中创建输出文件夹。如果勾选,则返回True,即存储于原文件夹中,并删除原始衍射谱文件。
整合步骤105处理后的Data变量和步骤103的front_para和end_para于同一文件。同样使用‘UTF-8’编码方式,于输出文件夹中新建一个同名衍射数据文件,以out_file暂存,代码:out_file=open(filep,'w',encoding='utf-8')。对out_file进行逐行写入,依次写入front_para、data和end_para,完成衍射仪参数和衍射强度数据的整合。写入完成后,关闭out_file完成存储。
本发明可对衍射数据的强度值进行优化,以便Jade6.5及更早起版本Jade软件和其他的只能识别自然数强度数据的软件能够正常显示衍射谱线,将呈现台阶状的谱线,转化为连续平顺变化的正常谱线形态(如图2a、2b)。
本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。
Claims (5)
1.一种数据格式的处理方法,其特征在于,包括步骤如下:
1)读取原始衍射谱文件,提取文件中衍射强度数据和衍射仪参数数据;
2)获取小数点的移位处理参数,并根据得到的移位处理参数,对上述步骤1)中的衍射强度数据进行小数点移位处理,得到处理后的衍射强度数据;
3)整合上述步骤1)中的衍射仪参数数据和上述步骤2)中处理后得到的衍射强度数据,得到新的衍射谱数据文件;
4)存储上述步骤3)中整合后得到的新的衍射谱数据文件;
所述步骤2)中对衍射强度数据进行小数点移位处理具体包括:
创建用户输入界面,获取用户所需小数点的移位处理参数,移位处理参数为整数;
判断移位方向,若移位处理参数为正整数,则进行右移,若移位处理参数为负整数,则进行左移;
根据移动位数进行相应移位运算。
2.根据权利要求1所述的数据格式的处理方法,其特征在于,所述步骤1)中提取文件中衍射强度数据和衍射仪参数数据的步骤之前还包括:获得原始衍射谱数据文件路径,所述的路径为存放原始衍射谱数据文件的文件夹路径或单一原始衍射谱数据文件的路径。
3.根据权利要求1或2所述的数据格式的处理方法,其特征在于,所述步骤1)中提取文件中衍射强度数据和衍射仪参数数据具体包括:
对原始衍射谱文件进行衍射强度和衍射仪参数的识别,逐行读取衍射谱数据,根据行数对衍射仪参数和衍射强度数据进行划分;
对提取出的衍射强度数据和衍射仪参数数据进行变量储存。
4.根据权利要求1所述的数据格式的处理方法,其特征在于,所述步骤3)具体包括:
新建衍射谱文件;
将步骤2)中获得衍射强度数据和步骤1)中的衍射强度数据进行分隔方式、编码方式统一;
打开新建衍射谱文件,逐行依次写入步骤1)中的衍射仪参数部分、步骤2)中获得衍射强度数据。
5.根据权利要求1所述的数据格式的处理方法,其特征在于,所述步骤4)具体包括:询问新的衍射谱数据文件所需保存路径及是否需覆盖原始衍射数据文件;若保存路径未设置,则默认将其与原始衍射数据文件同路径,并需要询问用户生成的新的衍射数据文件是否覆盖原始衍射数据文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811091399.3A CN109346160B (zh) | 2018-09-19 | 2018-09-19 | 一种数据格式的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811091399.3A CN109346160B (zh) | 2018-09-19 | 2018-09-19 | 一种数据格式的处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109346160A CN109346160A (zh) | 2019-02-15 |
CN109346160B true CN109346160B (zh) | 2021-11-19 |
Family
ID=65306145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811091399.3A Active CN109346160B (zh) | 2018-09-19 | 2018-09-19 | 一种数据格式的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109346160B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110516817A (zh) * | 2019-09-03 | 2019-11-29 | 北京华捷艾米科技有限公司 | 一种模型训练数据加载方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101364219A (zh) * | 2007-08-06 | 2009-02-11 | 北京华大泰思特半导体检测技术有限公司 | 面向集成电路测试的测试数据转换方法 |
CN101943922A (zh) * | 2010-09-03 | 2011-01-12 | 北京时代民芯科技有限公司 | 一种控温电热毯的感温线智能自动校正系统及方法 |
CN104656132A (zh) * | 2013-11-22 | 2015-05-27 | 中国石油天然气集团公司 | 一种提高多方位地层倾角信息存储效率的方法 |
-
2018
- 2018-09-19 CN CN201811091399.3A patent/CN109346160B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101364219A (zh) * | 2007-08-06 | 2009-02-11 | 北京华大泰思特半导体检测技术有限公司 | 面向集成电路测试的测试数据转换方法 |
CN101943922A (zh) * | 2010-09-03 | 2011-01-12 | 北京时代民芯科技有限公司 | 一种控温电热毯的感温线智能自动校正系统及方法 |
CN104656132A (zh) * | 2013-11-22 | 2015-05-27 | 中国石油天然气集团公司 | 一种提高多方位地层倾角信息存储效率的方法 |
Non-Patent Citations (1)
Title |
---|
基于MATLAB藏药X射线衍射图谱的数据处理;刘远;《CNKI优秀硕士学位论文全文数据库》;20160630;第1-58页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109346160A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107918666B (zh) | 一种区块链上的数据同步方法和系统 | |
CN106598581B (zh) | 基于xml的asterix报文解析代码生成方法 | |
CN102004744A (zh) | 从一个源表到至少一个目标库的表的数据抽取系统及方法 | |
EP0784266A1 (fr) | Procédé de manipulation de modèles de données utilisés en génie logiciel | |
CN111354099B (zh) | 一种数据处理方法、数据处理装置及诊断设备 | |
CN109491658A (zh) | 计算机可执行代码数据的生成方法及装置 | |
US7293264B2 (en) | Method and a device for abstracting instruction sequences with tail merging | |
CN109346160B (zh) | 一种数据格式的处理方法 | |
CN108375952A (zh) | 一种plc连续功能图编译和解释方法与装置 | |
Rabin et al. | Code2snapshot: Using code snapshots for learning representations of source code | |
CN113391817B (zh) | 基于antlr4的头文件替换方法及装置 | |
JP5362592B2 (ja) | プログラム命令の圧縮のための圧縮エントリーの最適選択 | |
McGrath | Python in easy steps: Covers Python 3.7 | |
CN116107578A (zh) | 一种执行智能合约的方法、装置、电子设备和存储介质 | |
CN112445492B (zh) | 一种基于antlr4的源码翻译方法 | |
CN116028062A (zh) | 目标代码的生成方法、npu指令的显示方法及装置 | |
CN115033249A (zh) | 文件编译方法以及装置 | |
CN108090034B (zh) | 基于集群的单证代码统一编码生成方法和系统 | |
CN104423964A (zh) | 用于确定可视化的可信性的方法和系统 | |
US6981219B2 (en) | Method and system for processing formulas and curves in a document | |
CN113127408A (zh) | 数据转换方法及装置 | |
CN114356289A (zh) | 一种基于多平台的着色器使用方法和相关设备 | |
JP6347023B1 (ja) | コード自動記述2ソフトウェアを記録した記録媒体 | |
CN116719530A (zh) | 提高代码性能方法、装置、计算机设备及存储介质 | |
JP6318327B1 (ja) | コード自動記述ソフトウェアを記録した記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |