一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种电表数据优化采集处理方法与流程

2023-09-14 07:21:40 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,具体涉及一种电表数据优化采集处理方法。


背景技术:

2.为了记录企业或个人用户的用电数据以方便电力供应企业的用户管理,需要采集每个用户电表上用电数据;由于用户多,且每个用户需要采集的用电数据也比较多,因此需要对采集的用电数据进行压缩存储,现有的存储方法,例如基于比特分层的存储方法,虽然能够减少数据的存储空间,但是用电数据利用比特分层压缩时,只对单一的数据流进行压缩,会导致过多的分组,极大的增加了压缩时间,故采用多组数据组合压缩,将多组数据放在一起压缩。多组数据一起压缩时,现有算法只考虑到根据数据的大小波动性对数据进行分组,会导致分组后的冗余度依然无法达到理想效果,因此为了解决大量用电数据采集过程中的占用过多存储空间的问题,需要在现有压缩方法的基础上对用电数据进行进一步分析和处理,来达到高效的压缩存储目的。


技术实现要素:

3.本发明提供一种电表数据优化采集处理方法,以解决现有的问题。
4.本发明的一种电表数据优化采集处理方法采用如下技术方案:
5.本发明一个实施例提供了一种电表数据优化采集处理方法,该方法包括以下步骤:
6.采集若干时刻的用电量,将所有用电量构成矩阵;
7.在矩阵上预设压缩窗口,根据压缩窗口内每行相邻用电量的差异以及每列相邻用电量的差异获得初始窗口的长和宽;
8.根据初始窗口的长和宽以及初始窗口内所有用电量的二进制重复位数获得初始窗口的冗余度;根据冗余度获得纠正参数,根据纠正参数和初始窗口的长和宽获得纠正窗口以及纠正窗口的面积;
9.按照纠正窗口的面积大小以及纠正窗口的相交情况依次对不同纠正窗口内的用电量进行压缩得到矩阵的压缩数据,将矩阵的压缩数据进行存储。
10.优选的,所述根据压缩窗口内每行相邻用电量的差异以及每列相邻用电量的差异获得
11.初始窗口的长和宽,包括的具体步骤如下:
12.对于以第i行第j列的元素为左上角的3*3压缩窗口,根据3*3压缩窗口获得初始窗口的长宽计算公式如下:
13.[0014][0015]
x
ij
、y
ij
表示以第i行第j列的元素为左上角的压缩窗口对应的初始窗口的长和宽,k
m,j
、k
m,j 1
、k
m,j 2
表示在第m行第j列、第m行第j 1列、第m行第j 2列的用电量;k
i,n
、k
i 1,n、ki 2,n
表示第i行第n列、第i 1行第n列、第i 2行第n列的用电量;α1为预设的初始窗口的长的关联参数,α2为预设的初始窗口的宽的关联参数,表示向上取整。
[0016]
优选的,所述根据初始窗口的长和宽、初始窗口内所有用电量的二进制重复位数获得
[0017]
初始窗口的冗余度,包括的具体公式如下:
[0018]
m=x*y
[0019][0020]
式中m表示该初始分块内的数据总数,x、y表示初始窗口的长和宽;
[0021]
n的获取方法为:将初始窗口内的所有用电量数据转换成二进制数据,二进制数据中从左向右统计重复的比特位数量,记为n;
[0022]ci
表示初始窗口内的第i个用电量数据的二进制的长度,r表示初始窗口利的冗余度。
[0023]
优选的,所述根据冗余度获得纠正参数,包括的具体公式如下:
[0024][0025]
h表示纠正参数,a
min
表示冗余度接受范围的最小值,a
max
表示冗余度接受范围的最大值,r表示初始分块的冗余度,exp()表示以自然常数为底的指数函数。
[0026]
优选的,所述根据纠正参数和初始窗口的长和宽获得纠正窗口以及纠正窗口的面积,
[0027]
包括的具体步骤如下:
[0028]
将初始窗口的长与纠正参数的乘积记为纠正窗口的长,将初始窗口的宽与纠正参数的乘积记为纠正窗口的宽,由纠正窗口的长和宽得到纠正窗口,纠正窗口的面积为正窗口的长和宽的乘积。
[0029]
优选的,所述按照纠正窗口的面积大小以及纠正窗口的相交情况依次对不同纠正窗口
[0030]
内的用电量进行压缩得到矩阵的压缩数据,包括的具体步骤如下:
[0031]
分别获取以矩阵中所有元素为对应的纠正窗口,获取面积最大的纠正窗口,记为第一个纠正窗口,将第一个纠正窗口内的所有用电量转换为二进制数据并利用比特分层进行压缩;然后在与第一个纠正窗口没有交集的其他纠正窗口内,获取面积最大的纠正窗口,
记为第二个纠正窗口,将第二个纠正窗口内的所有用电量转换为二进制数据并利用比特分层进行压缩;然后在与第一、第二个纠正窗口没有交集的其他纠正窗口内,获取面积最大的纠正窗口,记为第三个纠正窗口,将第三个纠正窗口内的所有用电量转换为二进制数据并利用比特分层进行压缩;依次类推,直至不存在没有交集的其他纠正窗口内;
[0032]
剩余的其他纠正窗口按照面积从大到小的顺序,依次将纠正窗口内用电量转换为二进制数据并利用比特分层进行压缩,直至矩阵中所有用电量全部压缩完,得到矩阵的压缩数据。
[0033]
本发明的技术方案的有益效果是:根据数据变化计算数据初始的分组窗口的大小,然后通过分组后的数据冗余度计算分组窗口的纠正参数,对分组窗口的大小进行纠正,增强纠正后数据窗口利用比特分层压缩数据的效果。避免直接对数据利用比特分层压缩时,只对单一的数据流进行压缩,会导致过多的分组,本发明极大的增加了压缩时间,采用多组数据组合压缩,将多组数据放在一起压缩。多组数据一起压缩时,现有算法只考虑到根据数据的大小波动性对数据进行分组,会导致分组后的冗余度依然无法达到理想效果,本发明根据冗余度对窗口进行调整,从而达到最优的压缩效果。
附图说明
[0034]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]
图1为本发明一种电表数据优化采集处理方法的步骤流程图。
具体实施方式
[0036]
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种电表数据优化采集处理方法,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
[0037]
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
[0038]
下面结合附图具体的说明本发明所提供的一种电表数据优化采集处理方法的具体方案。
[0039]
请参阅图1,其示出了本发明一个实施例提供的一种电表数据优化采集处理方法的步骤流程图,该方法包括以下步骤:
[0040]
步骤s001:通过电表获取用户的用电量矩阵。
[0041]
现有的电表大多数是通过计数器对用电数据进行统计,使用电能的过程中,用电数据的数值是递增的。而由于用户用电习惯大致相似,所以用户在每天同一时间点相同时刻差的用电数据差大致相同,本实施将整点时刻减前一时刻用电数据的差值记为用电量,本实施以1小时为时间间隔,因为部分连续的用电量具有一定的局部相似性,因此本实施统
计某用户连续多日的每个整点时刻的用电量进行分析。
[0042]
对任意一个用户,获取该用户连续多日不同时刻的用电数据。该用户这一天的所有时刻用电数据变化较小,为了便于数据压缩,需要求出后一小时时刻减前一小时时刻用电数据,得到以一小时为时间间隔的用电量,每天有24小时,因此每天采集的24个用电数据,本实施例以连续采集q天为例进行叙述,这q天采集的24*q个数值的原始时序序列。
[0043]
将原始时序序列转换为矩阵的存储结构。将采集到的天数q作为矩阵的行,采集到的24个整点时刻数作为矩阵的列,得到q*24的矩阵,以用电量作为每个矩阵的元素,本实施例以q=30为例进行叙述。
[0044]
下表示出了其中一天的用电量数据:
[0045][0046][0047]
这些用电量只有很小的变化,为了便于压缩,需要对他们相邻项做差,只保留差值。如下表:
[0048][0049]
本实施例所述的矩阵便是根据相邻项做差后的用电量获得的,便于后续的分析计算,其中矩阵第一个元素与1010做差。
[0050]
需要说明的是,上述表中数据仅是示意,本实施例针对不同用电场景所获取的用电数据会具有较大差异,但是本实施例的方法步骤适用于任何用电场景,例如企业用户用电或个人家庭用户的用电场景。
[0051]
步骤s002:根据矩阵中用电量之间的差异计算初始窗口的长宽。
[0052]
由于比特分层压缩适用于差别比较小的数据。将连续多日多时刻用电量组成的,计算量较大而根据用户用电量的时间特征分组,用户在不同日期的同一时刻的用电量是相近的,可以将用电量作为矩阵元素,对矩阵进行分块得到压缩窗口,从而减少了用电量计算次数,减少了数据压缩的计算量和时间。
[0053]
对用户在不同日期所有时刻的用电量数据进行比特分层压缩,首先本实施获取压缩窗口大小的取值范围。压缩窗口的大小是十分重要的,合适的压缩窗口用电量进行比特
分层压缩的压缩率较好;若压缩窗口大小选取不合适,在对数据进行比特分层压缩以后压缩率较差。
[0054]
建立固定大小3*3的压缩窗口,以下简记为3*3窗口。根据3*3窗口的用电量变化率计算初始窗口的边长。
[0055]
对于一个以第i行第j列的元素为左上角的3*3窗口,以该窗口为例叙述初始窗口长宽的计算方法。具体如下:
[0056]
初始窗口的长宽计算公式:
[0057][0058][0059]
x
ij
、y
ij
表示以第i行第j列的元素为左上角的3*3窗口,该窗口对应的初始窗口的长和宽,k
m,j
、k
m,j 1
、k
m,j 2
表示在第m行第j列、第m行第j 1列、第m行第j 2列的用电量;k
i,n
、k
i 1,n
、k
i 2,n
表示第i行第n列、第i 1行第n列、第i 2行第n列的用电量。
[0060]
α1为初始窗口的长的关联参数,α1的取值越大,则初始窗口的长就越大,α1的具体意义为不同日期的同一时刻的关联参数,本实施例以α1=1.5为例进行叙述;α2为初始窗口的宽的关联参数,α2的取值越大,则初始窗口的宽就越大,α2的具体意义为同一日期的不同时刻的关联参数,本实施例以α2=2为例进行叙述。
[0061]
用于计算3*3窗口内用电量变化率的绝对值,记为长波动程度,相当于是计算3*3窗口每一天内的两两相邻时刻用电量的差值之和,值越大就说明压缩窗口内的用电量波动程度越大,初始窗口的长系数就越小;值越小就说明初始窗口内的用电量波动程度越小,初始窗口的长系数就越大。
[0062]
用于计算3*3窗口内用电量变化率的绝对值,记为宽波动程度,相当于是计算3*3窗口内相同两两相邻日期用电量的差值之和,值越大就说明初始窗口内的用电量波动程度越大,初始窗口的宽系数就越小;值越小就说明初始窗口内的用电量波动程度越小,初始窗口的宽系数越大。
[0063]
表示向上取整。
[0064]
至此得到了以第i行第j列的元素为左上角的初始窗口,窗口长宽为x
ij
、y
ij
。同理可获得以任意一个元素为左上角的初始窗口的长和宽,记为x、y。
[0065]
步骤s003:根据初始窗口的长宽计算冗余度。
[0066]
根据用电量的局部变化特征对用电量进行分块后,并不能保证每一个初始分块的用电量满足比特分层压缩的条件(设置冗余度阈值),因此,需要计算初始分块后的冗余度,判断其是否满足预设条件。
[0067]
另外,根据初始窗口内的波动程度对用电量进行一次分块后,并不能确定,一次分块后用电量压缩一定能使比特分层压缩的效果好。因此需要计算用电量的冗余度。
[0068]
由于需要对用电量进行比特分层压缩,需要将用电量数值转化为二进制用电量,又由于用电量数值中存在一位小数,小数在转化二进制时会存在保留精度问题,在这里为
了便于压缩,统一保留小数点后四位二进制小数。
[0069]
初始窗口的冗余度计算公式为:
[0070]
m=x*y
[0071][0072]
式中对任意一个初始分块计算冗余度,m表示该初始分块内的数据总数,x、y表示初始窗口的长和宽;
[0073]
n的获取方法为:将初始窗口内的所有用电数据转换成二进制数据,这些二进制数据中从左向右统计重复的比特位数量,记为n;即这些二进制数据的前n个比特位是一样的;例如101011、101101、101001这三个二进制数据中前三个比特位都是101,那么此时n等于3。
[0074]ci
表示初始窗口内的第i个用电量数据的二进制的长度,r表示初始窗口利用比特压缩分层进行压缩的冗余度。
[0075]
其中,初始窗口内的数据连续重复数量越多,则该初始窗口的冗余度越大,则该初始窗口内的数据利用比特分层压缩的效果越优。
[0076]
至此,获得了任意初始窗口内所有用电量数据的冗余度。
[0077]
步骤s004:根据初始窗口的冗余度获得纠正窗口。
[0078]
所计算的初始窗口并不一定能满足预设的冗余度阈值条件,若初始窗口内的冗余度过大(从左向右第一个重复项过多),虽然压缩效果很好,但是此时初始分块仍数量比较多、压缩时间也较长;若初始窗口内的冗余度过小(重复项过少),虽然压缩时间较小,但是其压缩率会较高,很难达到一个好的压缩效果。
[0079]
因此,需要通过初始窗口边长参数得到的局部冗余度计算纠正参数,对不合理的初始窗口大小进行纠正。
[0080]
上步骤计算出了每个初始窗口的冗余度r,本实施中冗余度的接受范围以r=[0.3,0.7]为例,冗余度越小,则表明数据的重复项越少,数据的压缩效果越差;冗余度越大,则表明数据的重复项越多,数据的压缩效果越好。
[0081]
若任意一个初始分块的冗余度小于0.3,则表明初始分块的冗余度过低,初始分块内的数据重复项过少,压缩效果较差,初始分块的长度或宽度过大,需要将其范围缩小来增大冗余度;若任意一个初始分块的数据冗余度大于0.7,则表明初始分块的数据冗余度过大,初始分块的数据重复项过多,压缩效果较好,但是初始分块的长度或宽度过小,初始分块的数量过多,增加了压缩时间(每一分块都要压缩一次),因此需要将数据分块范围扩大,减少分组,减少压缩时间。
[0082]
纠正参数的具体计算公式为:
[0083][0084]
h表示纠正参数,a
min
表示冗余度接受范围的最小值,a
max
表示冗余度接受范围的最
大值,在本实施中a
max
=0.7,以a
min
=0.3为例进行叙述,r表示初始分块的冗余度,exp()表示以自然常数为底的指数函数。
[0085]
其中,初始分块的冗余度在接受范围内,则纠正参数为1,即初始分块冗余度达到要求,不对初始分块进行纠正;若计算出的初始分块冗余度小于0.3,则表明初始分块过大,需要将初始分块进行缩小;若计算出的分块冗余度大于0.7,则表明分块过小,则要将分块进行扩大。所计算出的分块冗余度r越小,则纠正参数就越小,分块冗余度r越大,则纠正参数就越大。
[0086]
纠正窗口的边长参数的计算公式为:
[0087][0088]
式中,x表示初始窗口的长,y表示窗口的宽,h表示纠正参数,u表示纠正窗口的长,v表示纠正窗口的宽。其中,纠正参数h越大,则纠正后的窗口就越大;纠正参数γ越小,则纠正后的窗口就越小。
[0089]
以上全部步骤得到操作过程:通过初始窗口的冗余度与冗余度接受范围的差异计算得到纠正参数,对冗余度不在接受范围之内的初始窗口进行纠正;根据用电量的波动程度计算初始窗口的边长,然后根据计算初始窗口的冗余度,根据初始窗口的冗余度与冗余度的接受范围的差异计算,根据差异计算初始窗口的纠正参数,对初始窗口大小进行纠正得到纠正窗口。
[0090]
步骤s005:对纠正窗口进行比特分层压缩得到压缩数据并进行存储。
[0091]
步骤s002至步骤s004给出了以矩阵中任意一个元素为左上角的纠正窗口的获取方法。
[0092]
分别获取以矩阵中所有元素为左上角的纠正窗口,获取面积最大的纠正窗口,记为第一个纠正窗口,将第一个纠正窗口内的所有用电量转换为二进制数据并利用比特分层进行压缩;然后在与第一个纠正窗口没有交集的其他纠正窗口内,获取面积最大的纠正窗口,记为第二个纠正窗口,将第二个纠正窗口内的所有用电量转换为二进制数据并利用比特分层进行压缩;然后在与第一、第二个纠正窗口没有交集的其他纠正窗口内,获取面积最大的纠正窗口,记为第三个纠正窗口,将第三个纠正窗口内的所有用电量转换为二进制数据并利用比特分层进行压缩;依次类推,直至不存在没有交集的其他纠正窗口内。此时剩余的其他纠正窗口按照面积从大到小的顺序,,依次将纠正窗口内用电量转换为二进制数据并利用比特分层进行压缩,已经压缩过的用电量不重复压缩,直至矩阵中所有用电量全部压缩完。
[0093]
其中纠正窗口面积为纠正窗口的长与宽的乘积。
[0094]
需要说明的是,矩阵中的元素按照从左到右从上到下的顺序进行由小到大编号;如果存在纠正窗口面积一样的情况,则按照纠正窗口左上角元素的编号由小到大进行压缩处理。另外如果纠正窗口超出矩阵边界时,纠正窗口的面积是指纠正窗口和矩阵交集的面积。如果一个纠正窗口内的一部分数据已经被压缩过,那么该纠正窗口在计算面积时不考虑以压缩过的数据。
[0095]
至此将矩阵继续宁压缩得到压缩后的数据,将压缩后的数据进行存储,有效的节省了存储空间,其中还要将每个压缩后的数据对应的纠正窗口的长宽和位置进行存储,以
便于根据压缩后的数据还原成矩阵的用电量。需要说明的是,因为本实施例使用的是比特分层进行压缩,是公知技术,因此解压缩时也利用比特分层进行解压缩,具体过程本实施例不再赘述。
[0096]
至此通过对用电数据进行处理完成对用电数据的压缩存储。
[0097]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表