首页 / 专利分类库 / 基本电子电路 / 一种用于消防救援环境监测系统的监测数据预警方法

一种用于消防救援环境监测系统的监测数据预警方法

申请号 CN202410115504.1 申请日 2024-01-29 公开(公告)号 CN117692011B 公开(公告)日 2024-04-30
申请人 航天亮丽电气有限责任公司; 深圳市宝安区消防救援大队; 发明人 李成平; 邵啸峰; 曾露强; 刘欢; 李博华; 张鹏; 周瑶; 杨发柱; 苏燕;
摘要 本 发明 涉及 数据压缩 技术领域,具体涉及一种用于消防救援环境监测系统的监测数据预警方法,该方法获取消防救援环境监测系统中的 传感器 数据对应的一维的数据序列;对数据序列进行分割处理的至少两个数据子序列,将每个数据子序列转换为二进制数据串;针对任一二进制数据串,获取对二进制数据串进行比特分层时的舍弃层和调整层;保留一个舍弃层作为目标舍弃层,分别对每个调整层对应的字符进行异或运算,得到运算后的字符,采用游程编码对目标舍弃层对应的字符以及所有调整层对应的运算后的字符进行编码压缩,得到存储后的数据,通过获取存储后的数据进行监测数据预警,减少了数据传输和存储的成本,提高了消防救援环境监测系统的响应速度。
权利要求

1.一种用于消防救援环境监测系统的监测数据预警方法,其特征在于,该监测数据预警方法包括:
获取消防救援环境监测系统中的传感器数据,将所述传感器数据转换为一维的数据序列;
获取用于分割所述数据序列的最优步长,根据所述最优步长获取对所述数据序列进行分割处理的至少两个数据子序列,将每个所述数据子序列分别转换为二进制数据串;
针对任一二进制数据串,对比所述二进制数据串和其他二进制数据串之间的字符,获取对所述二进制数据串进行比特分层时的舍弃层,获取所述二进制数据串中除舍弃层之外的剩余字符串,根据不同位数下的字符类型,获取对所述剩余字符串进行比特分层时的每个调整层的最优位数,根据所述每个调整层的最优位数,将所述剩余字符串分层为至少一个调整层;
根据每个所述二进制数据串的舍弃层,保留一个舍弃层作为目标舍弃层,针对所有二进制数据串中的任一调整层,获取所述调整层的运算基元,利用所述运算基元对所述调整层对应的字符进行异或运算,得到运算后的字符,采用游程编码依次对所述目标舍弃层对应的字符以及所有调整层对应的运算后的字符进行编码压缩,得到压缩后的数据;
对所有二进制数据串对应的压缩后的数据进行存储,得到存储后的数据,通过获取所述存储后的数据进行监测数据预警;
所述获取用于分割所述数据序列的最优步长,包括:
获取预设的步长范围,针对所述步长范围内的任一步长,利用所述步长对所述数据序列进行数据提取,得到至少两个初始数据子序列;
针对任一初始数据子序列,获取所述初始数据子序列中的数据极差和数据方差,获取所述数据极差和所述数据方差之间的乘积,对所述乘积进行负映射,得到对应的映射结果,将所述映射结果作为所述初始数据子序列的规则程度;
获取所有初始数据子序列的规则程度,根据所有初始数据子序列的规则程度,获取所述步长的第一优选程度;
获取所述步长范围内每个步长的第一优选程度,将最大的第一优选程度对应的步长作为用于分割所述数据序列的最优步长;
所述对比所述二进制数据串和其他二进制数据串之间的字符,获取对所述二进制数据串进行比特分层时的舍弃层,包括:
从所述二进制数据串的第一个字符开始,检测所述第一个字符与每个其他二进制数据串中的第一个字符是否相同,若相同,则保留所述第一个字符;
检测所述二进制数据串的第二个字符,若所述第二个字符与每个其他二进制数据串中的第二个字符相同,则保留所述第二个字符;
依次对所述二进制数据串中的每个字符进行遍历,直至第一次出现所述二进制数据串中的字符与至少一个其他二进制数据串中字符不相同,将所有保留的字符按照遍历顺序组成所述二进制数据串进行比特分层时的舍弃层;
所述根据不同位数下的字符类型,获取对所述剩余字符串进行比特分层时的每个调整层的最优位数,包括:
针对所述剩余字符串进行比特分层时的第一调整层,根据所述剩余字符串中包含的每个位数的字符类型,获取对应位数的第二优选程度,将第二优选程度最大的位数作为对所述剩余字符串进行比特分层时的第一调整层的最优位数;
针对所述剩余字符串进行比特分层时的第二调整层,将对所述剩余字符串除去所述第一调整层的字符之后的字符串作为所述剩余字符串,根据所述剩余字符串中包含的每个位数的字符类型,获取对应位数的第二优选程度,将第二优选程度最大的位数作为对所述剩余字符串进行比特分层时的第二调整层的最优位数;
对所述剩余字符串进行更新,得到对所述剩余字符串进行比特分层时的每个调整层的最优位数。
2.如权利要求1所述的监测数据预警方法,其特征在于,所述根据所有初始数据子序列的规则程度,获取所述步长的第一优选程度,包括:
根据所有初始数据子序列的规则程度,获取平均规则程度;
根据每个所述初始数据子序列的规则程度,获取对应初始数据子序列的权重,对所有初始数据子序列的规则程度进行加权求和,得到加权求和结果,获取所述加权求和结果与所有初始数据子序列的总数量之间的比值;
将所述比值和所述平均规则程度之间的乘积作为所述步长的第一优选程度。
3.如权利要求1所述的监测数据预警方法,其特征在于,所述根据所述剩余字符串中包含的每个位数的字符类型,获取对应位数的第二优选程度,包括:
针对任一位数,获取所述位数下的所有字符类型,在所述剩余字符串中分别统计每个所述字符类型的出现次数,将所述出现次数最多的字符类型作为目标字符类型;
对所述剩余字符串中连续出现至少预设数量个所述目标字符类型对应的字符进行标记,得到所述剩余字符串中的标记字符和非标记字符;
根据所述剩余字符串中的标记字符和非标记字符的数量差异,获取所述位数的第二优选程度。
4.如权利要求3所述的监测数据预警方法,其特征在于,所述根据所述剩余字符串中的标记字符和非标记字符的数量差异,获取所述位数的第二优选程度,包括:
统计所述剩余字符串中标记字符的第一数量和非标记字符的第二数量,获取所述第一数量和所述第二数量之间的相加结果,计算所述相加结果和所述第一数量之间的第一比值;
统计所述剩余字符串的字符总数量,将所述字符总数量和所述位数之间的乘积作为总位数,计算所述位数下的目标字符类型所包含的字符数量与所述总位数之间的第二比值;
将所述第一比值和所述第二比值之间的乘积作为所述位数的第二优选程度。
5.如权利要求1所述的监测数据预警方法,其特征在于,所述获取所述调整层的运算基元,包括:
获取所述调整层对应的字符类型通过异或运算转换为预设字符类型所采用的运算基元作为所述调整层的运算基元。
6.如权利要求5所述的监测数据预警方法,其特征在于,所述预设字符类型为字符全为
1的字符类型或者字符全为0的字符类型。

说明书全文

一种用于消防救援环境监测系统的监测数据预警方法

技术领域

[0001] 本发明涉及数据压缩技术领域,具体涉及一种用于消防救援环境监测系统的监测数据预警方法。

背景技术

[0002] 在消防救援操作中,通过传感器数据对环境监测预警十分重要,环境监测预警的准确性决定了救援任务的及时性,因此,需要对大量的历史传感器数据进行分析,以提高消防救援环境监测系统的预警准确性,故对消防救援操作中的环境监测数据进行高效压缩是至关重要的,因为这有助于减少数据传输和存储的成本,提高消防救援环境监测系统的响应速度,并降低能耗,同时增强消防救援环境监测系统的预警鲁棒性。
[0003] 由于环境监测数据的完整性要求较高,因此,在对环境监测数据进行压缩处理时,需要采用无损压缩的处理方法。但是,传统熵编码的压缩方式的压缩效率较低,难以达到高效通信的目的;而游程编码的编码方式简单,解码速度也很快,因此,目前常用游程编码的方式对环境监测数据进行无损压缩,但是游程编码过于依赖数据的局部冗余性,而环境监测数据中占比较大的是传感器数据,而传感器数据的局部冗余程度较低,因此,利用游程编码难以对环境监测数据达到较好的压缩效果。
[0004] 故,如何提高游程编码对环境监测数据的压缩效果,进而提高消防救援环境监测系统的预警鲁棒性成为亟待解决的问题。

发明内容

[0005] 有鉴于此,本发明实施例提供了一种用于消防救援环境监测系统的监测数据预警方法,以解决如何提高游程编码对环境监测数据的压缩效果,进而提高消防救援环境监测系统的预警鲁棒性的问题。
[0006] 本发明实施例中提供了一种用于消防救援环境监测系统的监测数据预警方法,该监测数据预警方法包括以下步骤:
[0007] 获取消防救援环境监测系统中的传感器数据,将所述传感器数据转换为一维的数据序列;
[0008] 获取用于分割所述数据序列的最优步长,根据所述最优步长获取对所述数据序列进行分割处理的至少两个数据子序列,将每个所述数据子序列分别转换为二进制数据串;
[0009] 针对任一二进制数据串,对比所述二进制数据串和其他二进制数据串之间的字符,获取对所述二进制数据串进行比特分层时的舍弃层,获取所述二进制数据串中除舍弃层之外的剩余字符串,根据不同位数下的字符类型,获取对所述剩余字符串进行比特分层时的每个调整层的最优位数,根据所述每个调整层的最优位数,将所述剩余字符串分层为至少一个调整层;
[0010] 根据每个所述二进制数据串的舍弃层,保留一个舍弃层作为目标舍弃层,针对所有二进制数据串中的任一调整层,获取所述调整层的运算基元,利用所述运算基元对所述调整层对应的字符进行异或运算,得到运算后的字符,采用游程编码依次对所述目标舍弃层对应的字符以及所有调整层对应的运算后的字符进行编码压缩,得到压缩后的数据;
[0011] 对所有二进制数据串对应的压缩后的数据进行存储,得到存储后的数据,通过获取所述存储后的数据进行监测数据预警。
[0012] 优选的,所述获取用于分割所述数据序列的最优步长,包括:
[0013] 获取预设的步长范围,针对所述步长范围内的任一步长,利用所述步长对所述数据序列进行数据提取,得到至少两个初始数据子序列;
[0014] 针对任一初始数据子序列,获取所述初始数据子序列中的数据极差和数据方差,获取所述数据极差和所述数据方差之间的乘积,对所述乘积进行负映射,得到对应的映射结果,将所述映射结果作为所述初始数据子序列的规则程度;
[0015] 获取所有初始数据子序列的规则程度,根据所有初始数据子序列的规则程度,获取所述步长的第一优选程度;
[0016] 获取所述步长范围内每个步长的第一优选程度,将最大的第一优选程度对应的步长作为用于分割所述数据序列的最优步长。
[0017] 优选的,所述根据所有初始数据子序列的规则程度,获取所述步长的第一优选程度,包括:
[0018] 根据所有初始数据子序列的规则程度,获取平均规则程度;
[0019] 根据每个所述初始数据子序列的规则程度,获取对应初始数据子序列的权重,对所有初始数据子序列的规则程度进行加权求和,得到加权求和结果,获取所述加权求和结果与所有初始数据子序列的总数量之间的比值;
[0020] 将所述比值和所述平均规则程度之间的乘积作为所述步长的第一优选程度。
[0021] 优选的,所述对比所述二进制数据串和其他二进制数据串之间的字符,获取对所述二进制数据串进行比特分层时的舍弃层,包括:
[0022] 从所述二进制数据串的第一个字符开始,检测所述第一个字符与每个其他二进制数据串中的第一个字符是否相同,若相同,则保留所述第一个字符;
[0023] 检测所述二进制数据串的第二个字符,若所述第二个字符与每个其他二进制数据串中的第二个字符相同,则保留所述第二个字符;
[0024] 依次对所述二进制数据串中的每个字符进行遍历,直至第一次出现所述二进制数据串中的字符与至少一个其他二进制数据串中字符不相同,将所有保留的字符按照遍历顺序组成所述二进制数据串进行比特分层时的舍弃层。
[0025] 优选的,所述根据不同位数下的字符类型,获取对所述剩余字符串进行比特分层时的每个调整层的最优位数,包括:
[0026] 针对所述剩余字符串进行比特分层时的第一调整层,根据所述剩余字符串中包含的每个位数的字符类型,获取对应位数的第二优选程度,将第二优选程度最大的位数作为对所述剩余字符串进行比特分层时的第一调整层的最优位数;
[0027] 针对所述剩余字符串进行比特分层时的第二调整层,将对所述剩余字符串除去所述第一调整层的字符之后的字符串作为所述剩余字符串,根据所述剩余字符串中包含的每个位数的字符类型,获取对应位数的第二优选程度,将第二优选程度最大的位数作为对所述剩余字符串进行比特分层时的第二调整层的最优位数;
[0028] 对所述剩余字符串进行更新,得到对所述剩余字符串进行比特分层时的每个调整层的最优位数。
[0029] 优选的,所述根据所述剩余字符串中包含的每个位数的字符类型,获取对应位数的第二优选程度,包括:
[0030] 针对任一位数,获取所述位数下的所有字符类型,在所述剩余字符串中分别统计每个所述字符类型的出现次数,将所述出现次数最多的字符类型作为目标字符类型;
[0031] 对所述剩余字符串中连续出现至少预设数量个所述目标字符类型对应的字符进行标记,得到所述剩余字符串中的标记字符和非标记字符;
[0032] 根据所述剩余字符串中的标记字符和非标记字符的数量差异,获取所述位数的第二优选程度。
[0033] 优选的,所述根据所述剩余字符串中的标记字符和非标记字符的数量差异,获取所述位数的第二优选程度,包括:
[0034] 统计所述剩余字符串中标记字符的第一数量和非标记字符的第二数量,获取所述第一数量和所述第二数量之间的相加结果,计算所述相加结果和所述第一数量之间的第一比值;
[0035] 统计所述剩余字符串的字符总数量,将所述字符总数量和所述位数之间的乘积作为总位数,计算所述位数下的目标字符类型所包含的字符数量与所述总位数之间的第二比值;
[0036] 将所述第一比值和所述第二比值之间的乘积作为所述位数的第二优选程度。
[0037] 优选的,所述获取所述调整层的运算基元,包括:
[0038] 获取所述调整层对应的字符类型通过异或运算转换为预设字符类型所采用的运算基元作为所述调整层的运算基元。
[0039] 优选的,所述预设字符类型为字符全为1的字符类型或者字符全为0的字符类型。
[0040] 本发明实施例至少具有如下有益效果:
[0041] 本发明为了保证数据格式的统一,首先将获取的传感器数据转换为一维的数据序列,便于后续数据处理,然后,通过获取用于分割一维的数据序列的最优步长,可将相似数据尽可能的分为一组,在对同组数据进行二进制转换后,每个数据的二进制高位相似度大,同组数据的相似度越大,转换成二进制后二进制高位相似的位数越多,在后续进行舍弃时舍弃的位数越多,释放的存储空间越多,因此,根据最优步长获取对数据序列进行分割处理的至少两个数据子序列,将每个数据子序列分别转换为二进制数据串,进而对每个二进制数据串进行比特分层处理,令高位比特层的相似度尽可能大,对差异位置进行标记,以保留低位比特层,并对差异位置的比特层添加标记,最后采用游程编码对低位比特层进行压缩,以达到对传感器数据进行高效压缩存储的目的,从而减少了数据传输和存储的成本,提高了消防救援环境监测系统的响应速度。附图说明
[0042] 为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0043] 图1为本发明实施例提供的一种用于消防救援环境监测系统的监测数据预警方法的步骤流程图
[0044] 图2为本发明实施例提供的一种二进制数据串进行比特分层的结果示意图。

具体实施方式

[0045] 为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种用于消防救援环境监测系统的监测数据预警方法,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
[0046] 除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
[0047] 下面结合附图具体的说明本发明所提供的一种用于消防救援环境监测系统的监测数据预警方法的具体方案。
[0048] 请参阅图1,其示出了本发明一个实施例提供的一种用于消防救援环境监测系统的监测数据预警方法的步骤流程图,该方法包括以下步骤:
[0049] 步骤S101,获取消防救援环境监测系统中的传感器数据,将传感器数据转换为一维的数据序列。
[0050] 具体的,消防救援操作中所需要监测的环境数据通常涵盖了多个方面的信息,具体的监测数据取决于消防救援环境监测系统的设计和应用场景,以下是一些包含在环境监测数据中的常见参数,其采集手段和示例如下:
[0051] 温度(Temperature),使用温度传感器,如热敏电阻、红外线传感器等,示例:温度为25摄氏度;湿度(Humidity),使用湿度传感器,例如电容湿度传感器,示例:相对湿度为50%;气体浓度(Gas Concentration),使用气体传感器,如二(CO2)、一氧化碳(CO)传感器,示例:CO2浓度为400ppm;光照强度(Light Intensity),使用光敏电阻或光敏二极管,示例:光照强度为1000lux;空气质量指数(Air Quality Index,AQI),结合多种传感器测量气体浓度,如PM2.5、PM10、NO2,示例:AQI为80,表示空气质量良好;噪声平(Noise Level),使用声音传感器,示例:噪声水平为60分贝;地震震级(Seismic Activity),使用地震传感器或加速度计,示例:震级为4.5级;水质参数(Water Quality Parameters),使用水质传感器,测量水中溶解氧、PH值、浊度等,示例:溶解氧浓度为8毫克/升,PH值为7.2;速和风向(Wind Speed and Direction),使用风速计和风向传感器,示例:风速为5米/秒,风向为北;电场强度(Electric Field Strength),使用电场传感器,示例:电场强度为50千伏/米。
[0052] 上述参数的采集通常通过各种传感器和仪器实现,这些设备可以部署在监测站点建筑物、车辆或移动设备上,根据监测需求选择合适的位置和传感器类型,且数据可以通过有线或无线方式传输至中央数据中心,供实时监测、分析和报告使用。这些环境监测数据对于气候研究、环境保护、工业安全等领域都具有重要意义。因此,通过获取消防救援环境监测系统中的传感器数据,将得到的传感器数据转换为一维的数据序列。
[0053] 至此,能够得到消防救援环境监测系统中的传感器数据对应的一维的数据序列。
[0054] 步骤S102,获取用于分割数据序列的最优步长,根据最优步长获取对数据序列进行分割处理的至少两个数据子序列,将每个数据子序列分别转换为二进制数据串。
[0055] 具体的,由于传感器数据中的部分数据存在类似于周期性的数据,例如传感器的状态为上升、下降和平稳状态,上升下降形成一个周期,传感器数据中存在多个上升和下降状态,若从每个周期中取出周期内相同位置的数据组成一组,可保证同组内的数据差异性尽可能小。因此,对数据序列设置最优步长,通过最优步长将一维的数据序列分割为多个数据子序列。
[0056] 其中,获取用于分割数据序列的最优步长的方法,包括:
[0057]  (1)获取预设的步长范围,针对所述步长范围内的任一步长,利用所述步长对所述数据序列进行数据提取,得到至少两个初始数据子序列。
[0058] 本发明实施例设置步长的步长范围为 ,其中,步长 的取值范围为经验值,实施者可根据实际情况自行更改设置。以步长为2对数据序列进行数据提取,将数据序列划分为至少两个初始数据子序列,具体为:从数据序列中的第一个数据开始,每隔2个数据提取一个目标数据,直至数据序列中不存在目标数据,将获取的所有目标数据按照提取顺序组成第一个初始数据子序列,获取数据序列中除去第一个初始数据子序列中所包含的所有数据之后的剩余数据序列,从剩余数据序列中的第一个数据开始,每隔2个数据提取一个目标数据,直至剩余数据序列中不存在目标数据,将获取的所有目标数据按照提取顺序组成第二个初始数据子序列,将剩余数据序列中除去第二个初始数据子序列中所包含的所有数据之后的第一剩余数据序列,从第一剩余数据序列中的第一个数据开始,每隔2个数据提取一个目标数据,直至第一剩余数据序列中不存在目标数据,将获取的所有目标数据按照提取顺序组成第三个初始数据子序列,依次类推,直至将数据序列划分完,得到若干个初始数据子序列。
[0059] 举例说明:一维的数据序列为:AbbAcdAabCd,步长为2时,获取的第一个数据子序列为:AAAC,剩余数据序列为:bbcdabd,获取的第二个数据子序列为:bdd。
[0060] (2)针对任一初始数据子序列,获取所述初始数据子序列中的数据极差和数据方差,获取所述数据极差和所述数据方差之间的乘积,对所述乘积进行负映射,得到对应的映射结果,将所述映射结果作为所述初始数据子序列的规则程度。
[0061] 本发明实施例中,获取任一步长下的任一初始数据子序列的规则程度的计算表达式为:
[0062]
[0063] 其中, 表示步长为a时的第j个初始数据子序列的规则程度, 表示以自然常数e为底数的指数函数,表示超参数,且 取经验值0.1,实施者可根据实际情况对超参数进行调整, 表示步长为a时的第j个初始数据子序列中的最大数据, 表
示步长为a时的第j个初始数据子序列中的最小数据,m表示步长为a时的第j个初始数据子序列所包含的数据数量, 表示步长为a时的第j个初始数据子序列中的第i个数据, 表示步长为a时的第j个初始数据子序列的数据均值。
[0064] 需要说明的是,在步长为a时,第j个数据子序列中的最大数据与最小数据之间的差异值 越小,第j个数据子序列的数据方差 越小,说明第j个数据子序列中的数据越相似,对应第j个数据子序列的规则程度越大,当 的取值为1时,第j个数据子序列的规则程度达到最大,对应第j个数据子序列中的所有的数据均相同。
[0065] (3)获取所有初始数据子序列的规则程度,根据所有初始数据子序列的规则程度,获取所述步长的第一优选程度。
[0066] 本发明实施例中,利用步骤(2)的方法,能够获取步长为a时,每个初始数据子序列的规则程度,进而根据步长为a时所有初始数据子序列的规则程度,获取步长a的第一优选程度。
[0067] (4)获取所述步长范围内每个步长的第一优选程度,将最大的第一优选程度对应的步长作为用于分割所述数据序列的最优步长。
[0068] 本发明实施例中,利用步骤(1)‑步骤(3)的方法,分别获取步长范围每个步长的第一优选程度,也即是步长范围 中每个步长的第一优选程度,例如步长为2的第一优选程度、步长为3的第一优选程度、…、步长为10的第一优选程度。对比每个步长的第一优选程度,选择第一优选程度最大对应的步长为用于分割数据序列的最优步长。
[0069] 优选的,根据所有初始数据子序列的规则程度,获取所述步长的第一优选程度,包括:
[0070] 根据所有初始数据子序列的规则程度,获取平均规则程度;
[0071] 根据每个所述初始数据子序列的规则程度;获取对应初始数据子序列的权重,对所有初始数据子序列的规则程度进行加权求和,得到加权求和结果,获取所述加权求和结果与所有初始数据子序列的总数量之间的比值;
[0072] 将所述比值和所述平均规则程度之间的乘积作为所述步长的第一优选程度。
[0073] 在一实施方式中,任一步长的第一优选程度的计算表达式为:
[0074]
[0075] 其中, 表示步长为a的第一优选程度, 表示步长为a时的初始数据子序列的总数量, 表示步长为a时的第j个初始数据子序列的规则程度, 表示以自然常数e为底数的指数函数, 表示步长为a时的第j个初始数据子序列的权重。
[0076] 需要说明的是,步长为a时,第j个初始数据子序列的规则程度越大,第j个初始数据子序列的权重越大,利用权重能够区分规则程度相同时的情况,权重大的初始数据子序列的数量越多,也即是规则程度趋近于1的初始数据子序列越多,对应步长为a的第一优选程度越大,第一优选程度越大,将数据序列中相似数据分在一个子序列中的可能性越高。
[0077] 进一步的,在获取到用于分割数据序列的最优步长之后,获取利用最优步长对数据序列进行分割处理后的多个数据子序列,由于每个数据子序列中的数据存在一定的相似性,且部分数据子序列中的数据的相似性较大,因此,分别对每个数据子序列进行二进制转换,将每个数据子序列分别转换为二进制数据串,也即一个数据子序列对应一个二进制数据串。
[0078] 举例说明,假设数据子序列分别为:232、224、239、230、225、233,则将数据子序列232转换为二进制后得到的二进制数据串为:11101000,将数据子序列224转换为二进制后得到的二进制数据串为:11100000,将数据子序列239转换为二进制后得到的二进制数据串为:11101111,将数据子序列230转换为二进制后得到的二进制数据串为:11100110,将数据子序列225转换为二进制后得到的二进制数据串为:11100001,将数据子序列233转换为二进制后得到的二进制数据串为:11101001。
[0079] 步骤S103,针对任一二进制数据串,对比二进制数据串和其他二进制数据串之间的字符,获取对二进制数据串进行比特分层时的舍弃层,获取二进制数据串中除舍弃层之外的剩余字符串,根据不同位数下的字符类型,获取对剩余字符串进行比特分层时的每个调整层的最优位数,根据每个调整层的最优位数,将剩余字符串分层为至少一个调整层。
[0080] 具体的,假设将数据子序列232转换为二进制后得到的二进制数据串为:11101000,将数据子序列224转换为二进制后得到的二进制数据串为:11100000,将数据子序列239转换为二进制后得到的二进制数据串为:11101111,将数据子序列230转换为二进制后得到的二进制数据串为:11100110,将数据子序列225转换为二进制后得到的二进制数据串为:11100001,将数据子序列233转换为二进制后得到的二进制数据串为:11101001,由此可见,每个数据子序列的二进制数据串的高位均相同,也即每个数据子序列的二进制数据串中的前4位均为1110,若将1110分为一层,属于1110的一层仅记录一次,然后将1110层舍弃,此时每个数据子序列的二进制数据串的位数均缩短4位,假设6个数据子序列的二进制数据串一共缩短24位,减去保留的1110,一共缩短了20位,当数据子序列中的数据越多,缩短的位数越多。基于上述特征,针对任一二进制数据串,对该二进制数据串进行比特分层,以得到一个舍弃层和若干个调整层。
[0081] 其中,针对任一二进制数据串,对比该二进制数据串和其他二进制数据串之间的字符,获取对该二进制数据串进行比特分层时的舍弃层,舍弃层的具体获取方法,包括:
[0082] 从所述二进制数据串的第一个字符开始,检测所述第一个字符与每个其他二进制数据串中的第一个字符是否相同,若相同,则保留所述第一个字符;
[0083] 检测所述二进制数据串的第二个字符,若所述第二个字符与每个其他二进制数据串中的第二个字符相同,则保留所述第二个字符;
[0084] 依次对所述二进制数据串中的每个字符进行遍历,直至第一次出现所述二进制数据串中的字符与至少一个其他二进制数据串中字符不相同,将所有保留的字符按照遍历顺序组成所述二进制数据串进行比特分层时的舍弃层。
[0085] 举例说明,参见图2,其为本发明实施例提供的一种二进制数据串进行比特分层的结果示意图,假设一个二进制数据串为图2中的11101000,从该二进制数据串的第一个字符1开始,判断所有二进制数据串的第一个字符是否为1,若所有二进制数据串的第一个字符均为1,则保留该二进制数据串的第一个字符1,然后,从该二进制数据串的第二个字符1开始,判断所有二进制数据串的第二个字符是否为1,若所有二进制数据串的第二个字符均为
1,则保留该二进制数据串的第二个字符1,依次类推,直至该二进制数据串的某个字符与至少一个其他二进制数据串的字符不一样,停止遍历,进而将该二进制数据串中保留的字符按照遍历顺序组成舍弃层,如图2所示,所有二进制数据串从第5个字符开始存在不相同的情况,则将每个二进制数据串中的前4位1110构成各自的舍弃层。
[0086] 当舍弃层获取完之后,所有二进制数据串的下一位不会均相同,因此,需要对每个二进制数据串进行调整层的获取,则针对任一二进制数据串,在获取该二进制数据串的舍弃层之后,获取该二进制数据串中除舍弃层之外的剩余字符串,根据不同位数下的字符类型,获取对剩余字符串进行比特分层时的每个调整层的最优位数,根据每个调整层的最优位数,将剩余字符串分层为至少一个调整层。
[0087] 其中,根据不同位数下的字符类型,获取对所述剩余字符串进行比特分层时的每个调整层的最优位数,包括:
[0088] 针对所述剩余字符串进行比特分层时的第一调整层,根据所述剩余字符串中包含的每个位数的字符类型,获取对应位数的第二优选程度,将第二优选程度最大的位数作为对所述剩余字符串进行比特分层时的第一调整层的最优位数;
[0089] 针对所述剩余字符串进行比特分层时的第二调整层,将对所述剩余字符串除去所述第一调整层的字符之后的字符串作为所述剩余字符串,根据所述剩余字符串中包含的每个位数的字符类型,获取对应位数的第二优选程度,将第二优选程度最大的位数作为对所述剩余字符串进行比特分层时的第二调整层的最优位数;
[0090] 对所述剩余字符串进行更新,得到对所述剩余字符串进行比特分层时的每个调整层的最优位数。
[0091] 举例说明,以第一调整层为例,假设二进制数据串为11101000,其舍弃层为1110,则剩余字符串为1000,由于二进制中有0和1两个字符,因此,对于第一调整层对应的字符的位数为1至4,其中,对于位数为1时,对应两种字符类型,分别为1和0;对于位数为2时,对应4种字符类型,分别为00、01、10、11,依次类推,每个位数下都有不同数量的字符类型,因此,在获取第一调整层时,根据剩余字符串中包含的每个位数的字符类型,获取对应位数的第二优选程度,并将第二优选程度最大的位数作为对剩余字符串进行比特分层时的第一调整层的最优位数。
[0092] 在第一调整层分层完成之后,获取第二调整层,同理,在获取第二调整层时,剩余字符串为二进制数据串除去舍弃层和第一调整层之后的字符串,然后,根据剩余字符串中包含的每个位数的字符类型,获取对应位数的第二优选程度,并将第二优选程度最大的位数作为对剩余字符串进行比特分层时的第二调整层的最优位数。依次类推,根据获取的调整层对剩余字符串进行更新,根据更新后的剩余字符串对除舍弃层之后的剩余字符串进行各个调整层的遍历,直至将除舍弃层之后的剩余字符串分层完,从而能够得到对剩余字符串进行比特分层时的每个调整层的最优位数。
[0093] 优选的,根据所述剩余字符串中包含的每个位数的字符类型,获取对应位数的第二优选程度,包括:
[0094]  (1)针对任一位数,获取所述位数下的所有字符类型,在所述剩余字符串中分别统计每个所述字符类型的出现次数,将所述出现次数最多的字符类型作为目标字符类型。
[0095] 本发明实施例中,已知位数为1时,对应两种字符类型,分别为1和0;位数为2时,对应4种字符类型,分别为00、01、10、11,依次类推,每个位数下都有不同数量的字符类型,因此,以位数为1的两种字符类型为例,在剩余字符串中分别统计1字符类型和0字符类型的出现次数,对比这两种字符类型的出现次数,将出现次数最多的字符类型作为目标字符类型。由此可知,每个位数都对应一个目标字符类型。
[0096] (2)对所述剩余字符串中连续出现至少预设数量个所述目标字符类型对应的字符进行标记,得到所述剩余字符串中的标记字符和非标记字符。
[0097] 本发明实施例中,当剩余字符串中连续出现3个及3个以上的目标字符类型对应的字符时,对剩余字符串中的这些字符进行标记,将剩余字符串划分为标记字符和非标记字符。例如:剩余字符串为11110010,目标字符类型为1,则剩余字符串中的前4个字符1为标记字符,后4个字符为非标记字符。
[0098] (3)根据所述剩余字符串中的标记字符和非标记字符的数量差异,获取所述位数的第二优选程度。
[0099] 具体的,统计所述剩余字符串中标记字符的第一数量和非标记字符的第二数量,获取所述第一数量和所述第二数量之间的相加结果,计算所述相加结果和所述第一数量之间的第一比值;统计所述剩余字符串的字符总数量,将所述字符总数量和所述位数之间的乘积作为总位数,计算所述位数下的目标字符类型所包含的字符数量与所述总位数之间的第二比值;将所述第一比值和所述第二比值之间的乘积作为所述位数的第二优选程度。
[0100] 在一实施方式中,任一位数的第二优选程度的计算表达式为:
[0101]
[0102] 其中, 表示位数为i的第二优选程度,r表示位数为i下目标字符类型所包含的字符数量,R表示位数为i下的总位数,也即是剩余字符串的字符总数量与位数i之间的乘积, 表示剩余字符串中标记字符的第一数量, 表示剩余字符串中非标记字符的第二数量。
[0103] 需要说明的是,为了保证调整层经过调整后要尽可能达到冗余程度的最大化,因此,每个调整层对应的字符需要连续相同的数量尽可能多,故,任一位数越大,且该位数下的剩余字符串中的标记字符的数量越多,该位数的第二优选程度越大。
[0104] 至此,针对任一二进制数据串中除去舍弃层的剩余字符串,能够获取对剩余字符串进行比特分层时的每个调整层的最优位数,并根据每个调整层的最优位数对剩余字符串进行分层,得到若干个调整层,进而将任一二进制数据串分层为一个舍弃层和若干个调整层。如图2所示,原始二进制位11101000的舍弃层位1110,两个调整层分别为10和00,原始二进制位11100000的舍弃层位1110,两个调整层分别为00和00,原始二进制位11101111的舍弃层位1110,两个调整层分别为11和11,原始二进制位11100110的舍弃层位1110,两个调整层分别为01和10,原始二进制位11100001的舍弃层位1110,两个调整层分别为00和01,原始二进制位11011001的舍弃层位1110,两个调整层分别为10和01。
[0105] 步骤S104,根据每个二进制数据串的舍弃层,保留一个舍弃层作为目标舍弃层,针对所有二进制数据串中的任一调整层,获取调整层的运算基元,利用运算基元对调整层对应的字符进行异或运算,得到运算后的字符,采用游程编码依次对目标舍弃层对应的字符以及所有调整层对应的运算后的字符进行编码压缩,得到压缩后的数据。
[0106] 本发明实施例中,通过步骤S103能够将每个二进制数据串分层为一个舍弃层和至少一个调整层,由于舍弃层在每个二进制数据串中都存在且相同,因此,将所有二进制数据串的舍弃层全部舍弃,只保留一个舍弃层作为目标舍弃层,这样可以大大减小二进制数据串的长度,舍弃层的位数越多,释放的空间越大。
[0107] 对于所有二进制数据串中的任一调整层,由于调整层存在较多连续的目标字符类型,因此,获取该调整层的运算基元,并利用运算基元将该调整层的字符通过预设的运算方式转换为全为1或全为0的状态,使该调整层的冗余程度最大。其中,预设的运算方式为异或运算。
[0108] 优选的,获取所述调整层的运算基元,包括:获取所述调整层对应的字符类型通过异或运算转换为预设字符类型所采用的运算基元作为所述调整层的运算基元。其中,所述预设字符类型为字符全为1的字符类型或者字符全为0的字符类型。
[0109] 举例说明,假设调整层的字符类型为10,预设字符类型为11,也即是将10转换为冗余程度最大的11,则通过异或运算将10转换为11所使用的运算基元为01,进而将01作为该调整层的运算基元。同理,若预设字符类型为00,通过异或运算也能够获取将10转换为00所使用的运算基元作为该调整层的运算基元。
[0110] 需要说明的是,本发明实施例中预设字符类型不做限制,且对于每一个调整层的预设字符类型也不做限制,实施者可根据实施场景自行选择。
[0111] 在获得每个调整层的运算基元之后,针对任一调整层。利用该调整层的运算基元对该调整层对应的字符进行异或运算,得到运算后的字符。在得到每个调整层的运算后的字符之后,采用游程编码依次对目标舍弃层对应的字符以及所有调整层对应的运算后的字符进行编码压缩,得到压缩后的数据。
[0112] 需要说明的是,游程编码属于现有技术,本发明实施例中不再赘述。
[0113] 步骤S105,对所有二进制数据串对应的压缩后的数据进行存储,得到存储后的数据,通过获取存储后的数据进行监测数据预警。
[0114] 本发明实施例,通过步骤S101‑步骤S104的方法,对传感器数据进行压缩处理,得到压缩后的数据。在压缩后的数据及性能存储时,通过添加标识符将各个层(目标舍弃层和调整层)分开,按照分层顺序,将每层的压缩后的数据进行存储,具体的,起始层为舍弃层,由于舍弃层只保留了一个,因此,对保留的舍弃层的压缩后的数据进行存储,然后,在舍弃层之后是对第一调整层进行存储,第一调整层包含运算基元和压缩后的数据,第一调整层之后是第二调整层进行存储,第二调整层包括运算基元和压缩后的数据,依次类推,将所有调整层按照顺序存储完,从而得到存储后的数据。
[0115] 在得到存储后的数据之后,将存储后的数据传输至消防救援环境监测系统的中央数据中心,通过对接收到的存储后的数据进行解压逆操作,以实现监测数据预警,其中,解压操作的具体方法为:针对任一层,首先对该层的压缩后的数据进行游程编码的解码,然后将解码的数据与运算基元进行逆运算得到原始数据,最后,将所有层的原始数据拼接得到对应的二进制数据串,对二进制数据串进行进制转换后,得到还原后的所有数据子序列,进而按照最优步长将所有数据子序列进行归位,得到压缩前的数据序列,并将数据序列还原成传感器数据。
[0116] 需要说明的是,对压缩后的数据进行存储,得到存储后的数据,以及对存储后的数据进行解压逆操作,以实现监测数据预警都不是本发明的重点,此处不再详细赘述。
[0117] 综上所述,本发明实施例获取消防救援环境监测系统中的传感器数据,将传感器数据转换为一维的数据序列;获取用于分割数据序列的最优步长,根据最优步长获取对数据序列进行分割处理的至少两个数据子序列,将每个数据子序列分别转换为二进制数据串;针对任一二进制数据串,对比二进制数据串和其他二进制数据串之间的字符,获取对二进制数据串进行比特分层时的舍弃层,获取二进制数据串中除舍弃层之外的剩余字符串,根据不同位数下的字符类型,获取对剩余字符串进行比特分层时的每个调整层的最优位数,根据每个调整层的最优位数,将剩余字符串分层为至少一个调整层;根据每个二进制数据串的舍弃层,保留一个舍弃层作为目标舍弃层,针对所有二进制数据串中的任一调整层,获取调整层的运算基元,利用运算基元对调整层对应的字符进行异或运算,得到运算后的字符,采用游程编码依次对目标舍弃层对应的字符以及所有调整层对应的运算后的字符进行编码压缩,得到压缩后的数据;对所有二进制数据串对应的压缩后的数据进行存储,得到存储后的数据,通过获取存储后的数据进行监测数据预警,减少了数据传输和存储的成本,提高了消防救援环境监测系统的响应速度。
[0118] 需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0119] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
[0120] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
QQ群二维码
意见反馈