录波通道数据的处理方法、装置、终端设备及存储介质制造方法及图纸

技术编号:27060546 阅读:22 留言:0更新日期:2021-01-15 14:40
本发明专利技术公开了一种录波通道数据的处理方法、装置、终端设备及存储介质,所述方法通过对ASCII存储格式的dat文件的所有通道的数据点的字符串的长度进行更新,使得每个通道内部的每个点的字符串的长度都相同,在不修改现有Comtrade格式数据结构且不修改每个数据点的实际值和精度的情况下,即能实现每个通道的每个数据点的占用字节数一致,比之现有的ASCII存储格式,优化ASCII存储格式后的dat文件的通道数据点的排列更加整齐和规律,能实现用规律性的字符串查找方法快速精确找到任意一个通道任意一个数据点,进而实现了对单独通道的快速提取,为通道数据的快速提取提供技术支持。

【技术实现步骤摘要】
录波通道数据的处理方法、装置、终端设备及存储介质
本专利技术涉及电力电子
,尤其涉及一种录波通道数据的处理方法、装置、终端设备及存储介质。
技术介绍
电力录波是用于记录电力系统故障或稳态情况下,触发时刻前后各个电气量变化全过程的数据,国际通用格式为Comtrade格式。Comtrade格式规定了每一套录波需保存为同名的cfg和dat文件,其中cfg用于保存录波所有通道的数量、名称、类型、长度、校正系数等信息,dat文件则保存时间通道和所有录波通道的录波数据值。录波文件里一般含有上百个通道,一方面,在进行分析时一般不会使用全部通道,而是使用10%左右的最常用通道,另一方面每个通道数据点数有几千甚至上百万个数据点,因此如果读取录波时载入全部录波通道的数据,则花费时间会很多,并且占用大量内存,甚至导致内存不足(常见完整一套柔性直流电力录波文件本身占100M,100个通道,完整载入需要10秒,占用内存约500M)。因此,录波分析软件在载入录波时,应只载入录波的配置cfg文件而不载入全部数据,待用户选择了某个通道后再单独载入dat文件中该录波通道的数据,从而加快录波载入速度,降低内存占用,提高用户体验。现有Comtrade格式规定了三种dat的存储方式:Binary16、Binary32以及ASCII。对于Binary16和Binary32格式(统称二进制格式)的dat文件,参见图1,图1是Binary16和Binary32格式下的通道数据的排列方式,其中,由于其每个通道每个点占用字节数一致,可以很容易计算出某个通道每个点的位置,从而支持单独载入某通道数据,但是二进制格式显示不直观,无法使用记事本或Excel灵活查看和修改数据,不便于进一步的分析。而ASCII格式的dat文件很直观,本质是一个长字符串,里面含有换行符、逗号及数据值(负号、小数点、0~9),参见图2,图2是ASCII格式的通道数据的排列方式,可以看到,通道上的每个数据点(多个字符组成的字符串)的位置和长度没有规律,在单独提取某通道时,必须先搜索所有换行符,分割出每一行,然后搜索此行的所有逗号,分割出每一列,才可以定位到某通道的某一个点。然而在对逗号(或者换行符)进行搜索时,必须从dat文件的第一个字符开始判断,若为逗号,则记录存储,若不为逗号则继续找下一个字符继续判断,由此,整个过程需要对大量的字符判断,过程非常漫长。现有的技术虽然提供了其他搜索算法可以加速这个过程,但是本质上避免不了对大量字符的判断,大量的判断是十分耗时的。
技术实现思路
本专利技术实施例的目的是提供一种录波通道数据的处理方法,解决现有技术中ASCII存储格式的dat文件中每个通道数据点的位置和长度没有规律,导致无法快速提取通道数据点的问题。为实现上述目的,本专利技术实施例提供了一种录波通道数据的处理方法,包括以下步骤:步骤S1:获取待处理的录波dat文件,其中,所述dat文件采用ASCII的存储格式,所述dat文件存储有多个通道,所述通道包括时间通道和录波通道;步骤S2:遍历录波dat文件当前通道的所有数据点,得到数据点中的字符串的最长长度;步骤S3:更新所述通道的每个数据点的字符串长度,具体包括步骤S30-S35:步骤S30:若所述数据点的字符串长度等于所述通道的最长长度,则不更新所述数据点的字符串长度,进入步骤S31,否则进入步骤S32;步骤S31:对下一个数据点的字符串的长度进行更新,返回步骤S30;步骤S32:若所述数据点的字符串长度小于所述通道的最长长度,则进入步骤S33;步骤S33:若所述数据点的字符串含有小数点,则在所述数据点字符串补充N个字符'0',使得所述数据点字符串的长度达到最长长度,并返回步骤S31,否则在所述数据点的字符串后补充小数点,进入步骤S34;步骤S34:若所述数据点的字符串的长度达到最长长度,则在所述数据点字符串补充1个字符'0',并将所述数据点的字符串的长度设置为当前通道的最长长度,返回第一个数据点,执行步骤S30;步骤S35:重复步骤S30-S34,直至所述通道的所有数据点的字符串的长度相同;步骤S4:重复步骤S2和S3,依次对dat文件的每一通道的所有数据点的字符串的长度进行更新;步骤S5:基于处理后的dat文件,获取待提取的通道数据点。进一步,所述基于处理后的dat文件,获取待提取的通道数据点包括:获取dat文件的录波通道数NumCol、通道的数据点数NumRow以及dat文件任意一行字符串的长度LenLine;读取dat文件的任一行数据,查找所述行数据的每一逗号在所述行数据中的位置以及换行符在所述行数据中的位置,将每一所述逗号在所述行数据中的位置以及换行符在所述行数据中的位置依次存入数组Array,所述位置从所述行数据的第一个字符的位置开始计算,开始位置为1,最大位置为LenLine;根据所述数组Array、所述一行字符串的长度LenLine、待提取的数据点所在的行数以及所属的通道,获取所述待提取的数据点的起始位置start和待提取的数据点的字符串的长度LenPoint;根据所述待提取的数据点的字符串的起始位置start和所述待提取的数据点的字符串的长度len,获取所述待提取的数据点。进一步的,所述根据所述数组Array、所述一行字符串的长度LenLine、待提取的数据点所在的行数以及所属的通道,获取所述待提取的数据点的起始位置start和待提取的数据点的字符串的长度LenPoint,具体包括:若所述待提取的数据点为时间通道上的数据点,则所述待提取的数据点的字符串的起始位置start按照下面的公式获取:start=LenLine·(i-1)+1,1≤i≤NumRow其中,i代表时间通道的第i个数据点;且,所述待提取的数据点的字符串的长度LenPoint具体为:LenPoint=Array[0]-1;当所述待提取的数据点为录波通道上的数据点,则所述待提取的数据点的字符串的起始位置start按下式获取:start=LenLine·(i-1)+Array[j-1]+1,1≤i≤NumRow,1≤j≤NumCol;其中,i代表行数,j代表第j个录波通道;且,所述待提取的数据点的字符串的长度LenPoint按照下式获取:LenPoint=Array[j]-Array[j-1]-1,1≤j≤NumCol。进一步的,根据所述待提取的数据点的字符串的起始位置start和所述待提取的数据点的字符串的长度LenPoint,获取所述待提取的数据点,具体包括:根据所述待提取的数据点的字符串的起始位置start和所述待提取的数据点的字符串的长度LenPoint,采用字符串截取公式获得待提取的数据点。本专利技术实施例还提供了一种录波通道数据的处理装置,包括格式优化模块和提取模块,其中,格式优化模块,用于对dat文件的通道数本文档来自技高网
...

【技术保护点】
1.一种录波通道数据的处理方法,其特征在于,包括以下步骤:/n步骤S1:获取待处理的录波dat文件,其中,所述dat文件采用ASCII的存储格式,所述dat文件存储有多个通道,所述通道包括时间通道和录波通道;/n步骤S2:遍历录波dat文件当前通道的所有数据点,得到数据点中的字符串的最长长度;/n步骤S3:更新所述通道的每个数据点的字符串长度,具体包括步骤S30-S35:/n步骤S30:若所述数据点的字符串长度等于所述通道的最长长度,则不更新所述数据点的字符串长度,进入步骤S31,否则进入步骤S32;/n步骤S31:对下一个数据点的字符串的长度进行更新,返回步骤S30;/n步骤S32:若所述数据点的字符串长度小于所述通道的最长长度,则进入步骤S33;/n步骤S33:若所述数据点的字符串含有小数点,则在所述数据点字符串补充N个字符'0',使得所述数据点字符串的长度达到最长长度,并返回步骤S31,否则在所述数据点的字符串后补充小数点,进入步骤S34;/n步骤S34:若所述数据点的字符串的长度达到最长长度,则在所述数据点字符串补充1个字符'0',并将所述数据点的字符串的长度设置为当前通道的最长长度,返回第一个数据点,执行步骤S30;/n步骤S35:重复步骤S30-S34,直至所述通道的所有数据点的字符串的长度相同;/n步骤S4:重复步骤S2和S3,依次对dat文件的每一通道的所有数据点的字符串的长度进行更新;/n步骤S5:基于处理后的dat文件,获取待提取的通道数据点。/n...

【技术特征摘要】
1.一种录波通道数据的处理方法,其特征在于,包括以下步骤:
步骤S1:获取待处理的录波dat文件,其中,所述dat文件采用ASCII的存储格式,所述dat文件存储有多个通道,所述通道包括时间通道和录波通道;
步骤S2:遍历录波dat文件当前通道的所有数据点,得到数据点中的字符串的最长长度;
步骤S3:更新所述通道的每个数据点的字符串长度,具体包括步骤S30-S35:
步骤S30:若所述数据点的字符串长度等于所述通道的最长长度,则不更新所述数据点的字符串长度,进入步骤S31,否则进入步骤S32;
步骤S31:对下一个数据点的字符串的长度进行更新,返回步骤S30;
步骤S32:若所述数据点的字符串长度小于所述通道的最长长度,则进入步骤S33;
步骤S33:若所述数据点的字符串含有小数点,则在所述数据点字符串补充N个字符'0',使得所述数据点字符串的长度达到最长长度,并返回步骤S31,否则在所述数据点的字符串后补充小数点,进入步骤S34;
步骤S34:若所述数据点的字符串的长度达到最长长度,则在所述数据点字符串补充1个字符'0',并将所述数据点的字符串的长度设置为当前通道的最长长度,返回第一个数据点,执行步骤S30;
步骤S35:重复步骤S30-S34,直至所述通道的所有数据点的字符串的长度相同;
步骤S4:重复步骤S2和S3,依次对dat文件的每一通道的所有数据点的字符串的长度进行更新;
步骤S5:基于处理后的dat文件,获取待提取的通道数据点。


2.如权利要求1的一种录波通道数据的处理方法,其特征在于,所述基于处理后的dat文件,获取待提取的通道数据点,具体包括:
获取dat文件的录波通道数NumCol、通道的数据点数NumRow以及dat文件任意一行字符串的长度LenLine;
读取dat文件的任一行数据,查找所述行数据的每一逗号在所述行数据中的位置以及换行符在所述行数据中的位置,将每一所述逗号在所述行数据中的位置以及换行符在所述行数据中的位置依次存入数组Array,其中,所述位置从所述行数据的第一个字符的位置开始计算,开始位置为1,最大位置为LenLine;
根据所述数组Array、所述一行字符串的长度LenLine、待提取的数据点所在的行数以及所属的通道,获取所述待提取的数据点的起始位置start和待提取的数据点的字符串的长度LenPoint;
根据所述待提取的数据点的字符串的起始位置start和所述待提取的数据点的字符串的长度LenPoint,获取所述待提取的数据点。


3.如权利要求2所述的录波通道数据的处理方法,其特征在于,所述根据所述数组Array、所述一行字符串的长度LenLine、待提取的数据点所在的行数以及所属的通道,获取所述待提取的数据点的起始位置start和待提取的数据点的字符串的长度LenPoint,具体包括:
若所述待提取的数据点为时间通道上的数据点,则所述待提取的数据点的字符串的起始位置start按照下面的公式获取:
start=LenLine·(i-1)+1,1≤i≤NumRow
其中,i代表时间通道的第i个数据点;
且,所述待提取的数据点的字符串的长度LenPoint具体为:
LenPoint=Array[0]-1;
若所述待提取的数据点为录波通道上的数据点,则所述待提取的数据点的字符串的起始位置start按下式获取:
start=LenLine·(i-1)+Array[j-1]+1,1≤i≤NumRow,1≤j≤NumCol;
其中,i代表行数,j代表第j个录波通道;
且,所述待提取的数据点的字符串的长度LenPoint按照下式获取:
LenPoint=Array[j]-Array[j-1]-1,1≤j≤NumCol。


4.如权利要求2所述的录波通道数据的处理方法,其特征在于,所述根据所述待提取的数据点的字符串的起始位置start和所述待提取的数据点的字符串的长度LenPoint,获取所述待提取的数据点,具体包括:
根据所述待提取的数据点的字符串的起始位置start和所述待提取的数据点的字符串的长度LenPoint,采用字符串截取公式获得待提取的数据点。


5.一种录波通道数据的处理装置,其特征在于,包括:
格式优化模块,用于对dat文件的通道数据点进行格式优化,具体包括以下步骤:
步骤S1:获取待处理的录波dat文件,其中,所述dat文件采用ASCII的存...

【专利技术属性】
技术研发人员:卢远宏林雪华刘志江郭琦饶宏郭海平罗超曾冠铭陈德扬国建宝彭光强李清
申请(专利权)人:南方电网科学研究院有限责任公司中国南方电网有限责任公司超高压输电公司检修试验中心
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1