[发明专利]一种海量电缆隧道状态信号数据的存储方法有效
| 申请号: | 202011372694.3 | 申请日: | 2020-11-30 |
| 公开(公告)号: | CN112347045B | 公开(公告)日: | 2022-07-26 |
| 发明(设计)人: | 孙宏彬;潘欣 | 申请(专利权)人: | 长春工程学院;国网吉林省电力有限公司白山供电公司 |
| 主分类号: | G06F16/13 | 分类号: | G06F16/13;G06F16/17;G06F16/172;G06Q50/06 |
| 代理公司: | 吉林长春新纪元专利代理有限责任公司 22100 | 代理人: | 陈宏伟 |
| 地址: | 130021 吉林*** | 国省代码: | 吉林;22 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 海量 电缆 隧道 状态 信号 数据 存储 方法 | ||
1.一种海量电缆隧道状态信号数据的存储方法,包括以下步骤:
S1, 输入一分钟内电缆隧道状态信号的个数SNum,建立时间块冗余存储结构体TimeBlockStruct;
S101,输入一分钟内电缆隧道状态信号的个数SNum,SNum的默认值为600;
S102,时间块冗余存储结构TimeBlock,该存储结构包含以下字段:
CurrentBlock:当前时间电缆隧道状态信号数据,为SNum个的浮点型数组;
PrevBlock1:前一分钟电缆隧道状态信号差异数据,为SNum个的浮点型数组;
PrevBlock2:前二分钟电缆隧道状态信号差异数据,为SNum个的浮点型数组;
PrevDayBlock1:与当前时间对应的前一天电缆隧道状态信号差异数据,为SNum个的浮点型数组;
PrevDayBlock2:与当前时间对应的前两天电缆隧道状态信号差异数据,为SNum个的浮点型数组;
StBlock:截止当前时间为止电缆隧道状态信号数据的统计量,为SNum个的浮点型数组;
S2, 建立时间编码算子TimeCodeOpt,输入为算子输入日期时间变量OptInput,输出为编码字符串变量OptOutput;
S201,建立时间编码算子TimeCodeOpt,输入为算子输入日期时间变量OptInput;
S202,算子年变量OptYear=获得OptInput中的年并将数据类型转换为4个字符长度的字符串,算子月变量OptMonth=获得OptInput中的月并将数据类型转换为2个字符长度的字符串,算子日变量OptDay=获得OptInput中的日并将数据类型转换为2个字符长度的字符串,算子分钟变量OptMinute=获得OptInput是一天中的第几分钟并将数据类型转换为4个字符长度的字符串;
S203,编码字符串变量OptOutput=OptYear+OptMonth+OptDay+OptMinute,在该等式中“+”表示进行字符串连接;
S204,输出OptOutput;
S3,输入起始时间点变量StartTime,输入结束时间点变量EndTime,利用TimeCodeOpt建立基于TimeBlockStruct结构体的文件,获取所有TimeBlockStruct结构体文件的个数变量StructFileNums,获取文件名列表StructFileList;
S301,输入起始时间点变量StartTime,输入结束时间点变量EndTime;
S302,迭代时间点ItTime=StartTime; 结构体文件的个数变量StructFileNums=0;文件名列表StructFileList=空列表;
S303,迭代文件名ItFile=利用时间编码算子TimeCodeOpt进行计算,算子的输入OptInput=ItTime输出结果为OptOutput;
S304,迭代空白结构体变量ItEmptyStruct=新建一个TimeBlockStruct结构体,结构体内所有变量的值设置为0;
S305,建立名为ItFile的文件,将ItEmptyStruct存储到ItFile之中;
S306,ItTime=ItTime的下一分钟所对应的时间;StructFileNums=StructFileNums+1;将ItFile追加到StructFileList之中;
S307,如果ItTimeEndTime则转到S308,否则转到S303;
S308,该步骤执行结束;
S4,持续输入StartTime到EndTime电缆隧道状态信号,对于每一组电缆隧道状态信号的输入包含一个时间点CurrentTime和对应的一分钟内电缆隧道状态信号数据Array,将数据存储到TimeBlockStruct结构体的文件之中;
S401,持续输入StartTime到EndTime电缆隧道状态信号,对于每一组电缆隧道状态信号的输入包含一个时间点CurrentTime和对应的一分钟内电缆隧道状态信号数据Array;
S402,后一分钟时间变量SaveAft1=CurrentTime的后一分钟对应的时间;
S403,后两分钟时间变量SaveAft2=CurrentTime的后两分钟对应的时间;
S404,后一天时间变量SaveDay1=与CurrentTime的当前时间对应的后一天的时间;
S405,后两天时间变量SaveDay2=与CurrentTime的当前时间对应的后两天的时间;
S406, CurrentTime对应文件名FileCurrentTime=利用时间编码算子TimeCodeOpt进行计算,算子的OptInput=CurrentTime输出结果为OptOutput;
S407, SaveAft1对应文件名FileSaveAft1=利用时间编码算子TimeCodeOpt进行计算,算子的OptInput=SaveAft1输出结果为OptOutput;
S408, SaveAft2对应文件名FileSaveAft2=利用时间编码算子TimeCodeOpt进行计算,算子的OptInput=SaveAft2输出结果为OptOutput;
S409, SaveDay1对应文件名FileSaveDay1=利用时间编码算子TimeCodeOpt进行计算,算子的OptInput=SaveDay1输出结果为OptOutput;
S410, SaveDay2对应文件名FileSaveDay1=利用时间编码算子TimeCodeOpt进行计算,算子的OptInput=SaveDay2输出结果为OptOutput;
S411,建立TimeBlockStruct类型的暂存结构体第一变量TempStruct1, 建立TimeBlockStruct类型的暂存结构体第二变量TempStruct2;
S412,读取文件FileCurrentTime的内容到TempStruct1之中,TempStruct1,CurrentBlock=Array, TempStruct1,StBlock=(TempStruct1,StBlock+Array)/2;
S413, 读取文件FileSaveAft1的内容到TempStruct2之中,TempStruct2,PrevBlock1=Array,TempStruct2,StBlock=TempStruct1,StBlock, 将TempStruct2写入到FileSaveAft1之中;
S414, 读取文件FileSaveAft2的内容到TempStruct2之中,TempStruct2,PrevBlock2=Array,将TempStruct2写入到FileSaveAft2之中;
S415, 读取文件FileSaveDay1的内容到TempStruct2之中,TempStruct2,PrevDayBlock1=Array,将TempStruct2写入到FileSaveDay1之中;
S416, 读取文件FileSaveDay2的内容到TempStruct2之中,TempStruct2,PrevDayBlock2=Array,将TempStruct2写入到FileSaveDay2之中;
S417, TempStruct1,PrevBlock1=Tanh(TempStruct1,PrevBlock1-Array), 其中Tanh为双曲正切函数;
S418, TempStruct1,PrevBlock2=Tanh(TempStruct1,PrevBlock2-Array), 其中Tanh为双曲正切函数;
S419, TempStruct1,PrevDayBlock1=ABS(TempStruct1,PrevDayBlock1-Array), 其中ABS为求绝对值
S420,TempStruct1,PrevDayBlock2=ABS(TempStruct1,PrevDayBlock2-Array), 其中ABS为求绝对值;
S421, 将TempStruct1写入到FileCurrentTime之中;
S5,设定云存储文件块大小MaxSize,获得每个云存储文件块包含结构体数量Blocks,获得文件块数变量BlocksNum,顺次将所有TimeBlockStruct结构体文件写入到云存储之中,获取云存储文件名链接列表CloudList中;
S501,每个云存储文件块包含结构体数量Blocks=floor(MaxSize/(SNum×6×8)), 其中floor为去除一个数的小数部分;
S502,文件块数变量BlocksNum=Round(StructFileNums/Blocks), 其中Round为进行小数部分的四舍五入;
S503, 如果StructFileNums%Blocks不等于0则BlocksNum=BlocksNum+1;其中%表示求余操作;
S504,块计数器BSCounter=1;云存储文件名链接列表CloudList=空列表;
S505,文件列表起始位置BSStart=(BSCounter-1)×Blocks+1;文件列表结束位置BSEnd=(BSCounter-1)×Blocks+Blocks;
S506,如果BSEndStructFileNums则BSEnd=StructFileNums;
S507,读取StructFileList中的第BSStart至BSEnd中的所有对应文件,并将读取到的数据内容顺次放入云存储块数据变量BigBlob中;
S508,将BigBlob存储到云服务器之中,将存储对应的文件链接追加到CloudList中;
S509,BSCounter=BSCounter+1;
S510,如果BSCounterBlocksNum则转到S511,否则转到S505;
S511,存储过程结束;
S6,指定要读取数据的时间点CloudReadTime,读取对应该数据到读取结果变量CloudStruct;
S601,CloudReadTime对应文件名CloudReadTimeFile=利用时间编码算子TimeCodeOpt进行计算,算子的OptInput=CloudReadTime算子的输出结果为OptOutput;
S602,列表位置RPos=获得CloudReadTimeFile在StructFileList中的位置;
S603,云位置CloudPos= Round(RPos/Blocks+0,5), 其中Round为进行小数部分的四舍五入;
S604,记录位置RecodPos=RPos-(RPos%Blocks×Blocks);
S605, 读取云服务器上CloudList[CloudPos]所对应文件的内容到云文件内容变量CloudBlob;
S606,CloudStruct=以TimeBlockStruct为读取单位获取CloudBlob中第RecodPos个记录的内容;
S607,读取过程结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长春工程学院;国网吉林省电力有限公司白山供电公司,未经长春工程学院;国网吉林省电力有限公司白山供电公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011372694.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于大数据的知识点难度定级方法
- 下一篇:一种多模数据融合的三维目标检测方法





