一种灌溉区域规划方法及系统与流程

文档序号:15463322发布日期:2018-09-18 18:42阅读:250来源:国知局

本发明属于水利灌溉技术领域,尤其涉及一种灌溉区域规划方法及系统。



背景技术:

灌溉规划分区是节水灌溉规划的重要组成部分,是合理开发与高效利用农业水土资源的主要手段之一,是确定工程建设规模和采取具体节水灌溉措施主要依据之一。能否做好这项工作是编制节水灌溉规划的前提和基础,分区的合理性是评价节水灌溉规划科学性的重要指标之一。正确使用科学的分区方法进行分区是合理分区的基础保障。而现有的分区方法存在编码重复性高、分区的复杂性高、并且编码上不够合理等缺陷。



技术实现要素:

本发明的目的在于克服上述的不足,提供了一种灌溉区域规划方法及系统,避免了灌溉区域内的灌溉小区的序号码重复。

为了实现上述目的,本发明采用以下技术方案:

一种灌溉区域规划方法,包括以下步骤:

步骤1:将总的灌溉区域划分为M个灌溉小区,并为各灌溉小区编上序号码;

步骤2:对各灌溉小区的序号码进行处理,并对处理后的各灌溉小区的序号码进行编码。

优选地,所述步骤1包括:

步骤1.1:将总的灌溉区域划分为M个灌溉小区,所述灌溉小区为不规则的灌溉面积,将每个灌溉小区划分为0~N个通道,所述通道为每次灌溉的最小面积单位;N为正整数;

步骤1.2:以灌溉小区为单位,把通道依次进行升序编号,编号为K位二进制数,且K的初始赋值从1开始,当通道的编号溢出时,即所述编号不够用时,K加1,对同一个灌溉小区内的通道的编号进行统计,前E位相同的编号的位数作为灌溉小区的区头号,将同一个灌溉小区内的通道的编号依次去除前E位相同的编号的位数,得到K-E位的二进制数,作为新的同一个灌溉小区内的通道的编号;

步骤1.3:将新的同一个灌溉小区内的通道的编号升序依次组合,作为灌溉小区的通道组合号,将所述灌溉小区的区头号放置在前、所述通道组合号在后组合成灌溉小区的序号码;

步骤1.4:按照灌溉小区的区头号进行升序排列,按照灌溉小区的区头号的排列顺序对灌溉小区的序号码进行排列,得到序号码序列。

优选地,所述步骤2包括以下步骤:

步骤2.1:计算每一个灌溉小区的两个邻接的灌溉小区的序号码之差的绝对值;将所有灌溉小区的两个邻接的灌溉小区的序号码之差的绝对值相加,求取所述两个邻接的灌溉小区的序号码之差的绝对值的平均值W1;根据所述两个邻接的灌溉小区的序号码,生成预测码Y,所述预测码Y为两个邻接的灌溉小区的序号码的平均值;所述两个邻接的灌溉小区的序号码为在所述序号码中排列在每一个灌溉小区的序号码前面、后面的灌溉小区的序号码,即为在所述序号码序列中排列在每一个灌溉小区的相邻的灌溉小区的序号码;

步骤2.2:计算预测码Y与灌溉小区的序号码D之间的差值W2,D∈[D1,D2],当超过区间范围,认为灌溉小区的序号码无效;D1、D2分别为灌溉小区的序号码D的上界、下界;

步骤2.3:当且W2≤(D2-Y)时,将W2映射成预测差值W',其中W2的位数大于W'的位数;

当且W2≤Y,当W2为负数时,W'=2W2+1;当W2为正数时,W'=2W2;

当且W2>Y时,W'=Y+|W2|;

当W2≤(D2-Y),W2为负数时,W'=2W2+1;当W2为正数时,W'=2W2;

步骤2.4:将W1的取值区间平均分为三个子区间,W1∈[U1,U2],U1、U2分别为W1的最大值、最小值;设定输入参数L,所述输入参数L的值从整数集合{e1,e2,e3}中选取,e1、e2、e3为任意正整数,由用户指定,e1、e2、e3分别对应于所述三个子区间;L的选取规则为,当W1的值在第一个子区间的范围内,L的值等于e1,当W1的值在第二个子区间的范围内,L的值等于e2,当W1的值在第三个子区间的范围内,L的值等于e3;根据所述输入参数L,对W'进行编码,获得编码值;所述编码值等于前值与后值的组合,所述前值等于W'除以2L,并在W'除以2L的结果后添加两位00的符号位,所述后值等于W'mod 2L

当编码值超过D2,对编码值进行替换,替换成前缀值及后缀值组成的新编码值;所述后缀值为每一个灌溉小区的序号码D的有效位,所述有效位为每一个灌溉小区的序号码D中1的位数;所述前缀值从固定的编码表中选取,所述编码表中存放了长度为F的二进制数,作为前缀值,每一个前缀值在所述编码表中都存在地址,通过所述地址能够找到所述前缀值,所述地址为(a,b),a为所述地址在所述编码表上的行数,b为所述地址在所述编码表上的列数;其中,F为正整数;所述固定的编码表由用户任意制定,存放长度为F的二进制数作为前缀值,并且编码表中存放的前缀值都不相同;

步骤2.5:将所有灌溉小区的编码值作为存储码进行存储。

一种灌溉区域规划系统,包括:

区域规划模块,用于将总的灌溉区域划分为M个灌溉小区,并为各灌溉小区编上序号码;区域编码模块,用于对各灌溉小区的序号码进行处理,并对处理后的各灌溉小区的序号码进行编码。

优选地,所述区域规划模块包括:

划分模块,用于将总的灌溉区域划分为M个灌溉小区,所述灌溉小区为不规则的灌溉面积,将每个灌溉小区划分为0~N个通道,所述通道为每次灌溉的最小面积单位;N为正整数;

编号模块,用于以灌溉小区为单位,把通道依次进行升序编号,编号为K位二进制数,且K的初始赋值从1开始,当通道的编号溢出时,即所述编号不够用时,K加1,对同一个灌溉小区内的通道的编号进行统计,前E位相同的编号的位数作为灌溉小区的区头号,将同一个灌溉小区内的通道的编号依次去除前E位相同的编号的位数,得到K-E位的二进制数,作为新的同一个灌溉小区内的通道的编号;

组合模块,用于将新的同一个灌溉小区内的通道的编号升序依次组合,作为灌溉小区的通道组合号,将所述灌溉小区的区头号放置在前、所述通道组合号在后组合成灌溉小区的序号码;

排列模块,用于按照灌溉小区的区头号进行升序排列,按照灌溉小区的区头号的排列顺序对灌溉小区的序号码进行排列,得到序号码序列。

优选地,所述区域数据编码模块包括:

第一计算模块,用于计算每一个灌溉小区的两个邻接的灌溉小区的序号码之差的绝对值;将所有灌溉小区的两个邻接的灌溉小区的序号码之差的绝对值相加,求取所述两个邻接的灌溉小区的序号码之差的绝对值的平均值W1;根据所述两个邻接的灌溉小区的序号码,生成预测码Y,所述预测码Y为两个邻接的灌溉小区的序号码的平均值;所述两个邻接的灌溉小区的序号码为在所述序号码中排列在每一个灌溉小区的序号码前面、后面的灌溉小区的序号码,即为在所述序号码序列中排列在每一个灌溉小区的相邻的灌溉小区的序号码;

第二计算模块,用于计算预测码Y与灌溉小区的序号码D之间的差值W2,D∈[D1,D2],当超过区间范围,认为灌溉小区的序号码无效;D1、D2分别为灌溉小区的序号码D的上界、下界;

映射模块,用于

当且W2≤(D2-Y)时,将W2映射成预测差值W',其中W2的位数大于W'的位数;

当且W2≤Y,当W2为负数时,W'=2W2+1;当W2为正数时,W'=2W2;

当且W2>Y时,W'=Y+|W2|;

当W2≤(D2-Y),W2为负数时,W'=2W2+1;当W2为正数时,W'=2W2;

编码模块,用于将W1的取值区间平均分为三个子区间,W1∈[U1,U2],U1、U2分别为

W1的最大值、最小值;设定输入参数L,所述输入参数L的值从整数集合{e1,e2,e3}中选取,e1、e2、e3为任意正整数,由用户指定,e1、e2、e3分别对应于所述三个子区间;L的选取规则为,当W1的值在第一个子区间的范围内,L的值等于e1,当W1的值在第二个子区间的范围内,L的值等于e2,当W1的值在第三个子区间的范围内,L的值等于e3;根据所述输入参数L,对W'进行编码,获得编码值;所述编码值等于前值与后值的组合,所述前值等于W'除以2L,并在W'除以2L的结果后添加两位00的符号位,所述后值等于W'mod 2L;

当编码值超过D2,对编码值进行替换,替换成前缀值及后缀值组成的新编码值;所述后缀值为每一个灌溉小区的序号码D的有效位,所述有效位为每一个灌溉小区的序号码D中1的位数;所述前缀值从固定的编码表中选取,所述编码表中存放了长度为F的二进制数,作为前缀值,每一个前缀值在所述编码表中都存在地址,通过所述地址能够找到所述前缀值,所述地址为(a,b),a为所述地址在所述编码表上的行数,b为所述地址在所述编码表上的列数;其中,F为正整数;所述固定的编码表由用户任意制定,存放长度为F的二进制数作为前缀值,并且编码表中存放的前缀值都不相同;

存储模块,用于将所有灌溉小区的编码值作为存储码进行存储。

与现有技术相比,本发明具有以下有益成果:

首先,本发明采用数字化的序号码编码方式,与文字化的编码方式相比,更加简洁、方便,并且适宜存储;第二,在灌溉小区的划分下,在灌溉小区之下,对最小灌溉单位通道进行编号,序号码由灌溉小区的区头号与所有同一个灌溉小区下的通道的编号组合而成;因此,通过序号码能够快速、方便地查到灌溉小区的区头号以及属于同一个灌溉小区的通道的编号;第三,本发明对各灌溉小区的序号码进行处理,并对处理后的各灌溉小区的序号码进行编码,得到编码值,使编码值分散,防止编码值的重复,避免了灌溉小区的存储的混淆。

附图说明

图1为本发明一种灌溉区域规划方法的基本流程示意图之一。

图2为本发明一种灌溉区域规划方法的基本流程示意图之二。

图3为本发明一种灌溉区域规划系统的结构示意图之一。

图4为本发明一种灌溉区域规划系统的结构示意图之二。

具体实施方式

下面结合附图和具体的实施例对本发明做进一步的解释说明:

实施例一:

如图1所示,本发明的一种灌溉区域规划方法,包括以下步骤:

步骤S101:将总的灌溉区域划分为M个灌溉小区,并为各灌溉小区编上序号码。

步骤S102:对各灌溉小区的序号码进行处理,并对处理后的各灌溉小区的序号码进行编码。

实施例二:

如图2所示,本发明的另一种灌溉区域规划方法,包括以下步骤:

步骤S201:将总的灌溉区域划分为M个灌溉小区,并为各灌溉小区编上序号码,包括:

步骤S2011:将总的灌溉区域划分为M个灌溉小区,所述灌溉小区为不规则的灌溉面积,将每个灌溉小区划分为0~N个通道,所述通道为每次灌溉的最小面积单位;

步骤S2012:以灌溉小区为单位,把通道依次进行升序编号,编号为K位二进制数,且K的初始赋值从1开始,当通道的编号溢出时,即所述编号不够用时,K加1,对同一个灌溉小区内的通道的编号进行统计,前E位相同的编号的位数作为灌溉小区的区头号,将同一个灌溉小区内的通道的编号依次去除前E位相同的编号的位数,得到K-E位的二进制数,作为新的同一个灌溉小区内的通道的编号;

步骤S2013:将新的同一个灌溉小区内的通道的编号升序依次组合,作为灌溉小区的通道组合号,将所述灌溉小区的区头号放置在前、所述通道组合号在后组合成灌溉小区的序号码;

步骤S2014:按照灌溉小区的区头号进行升序排列,按照灌溉小区的区头号的排列顺序对灌溉小区的序号码进行排列,得到序号码序列。

步骤S202:对各灌溉小区的序号码进行处理,并对处理后的各灌溉小区的序号码进行编码,包括:

步骤S2021:计算每一个灌溉小区的两个邻接的灌溉小区的序号码之差的绝对值;将所有灌溉小区的两个邻接的灌溉小区的序号码之差的绝对值相加,求取所述两个邻接的灌溉小区的序号码之差的绝对值的平均值W1;根据所述两个邻接的灌溉小区的序号码,生成预测码Y,所述预测码Y为两个邻接的灌溉小区的序号码的平均值;所述两个邻接的灌溉小区的序号码为在所述序号码中排列在每一个灌溉小区的序号码前面、后面的灌溉小区的序号码,即为在所述序号码序列中排列在每一个灌溉小区的相邻的灌溉小区的序号码;

步骤S2022:计算预测码Y与灌溉小区的序号码D之间的差值W2,D∈[D1,D2],当超过区间范围,认为灌溉小区的序号码无效;D1、D2分别为灌溉小区的序号码D的上界、下界;

步骤S2023:

当且W2≤(D2-Y)时,将W2映射成预测差值W',其中W2的位数大于W'的位数;

当且W2≤Y,当W2为负数时,W'=2W2+1;当W2为正数时,W'=2W2;

当且W2>Y时,W'=Y+|W2|;

当W2≤(D2-Y),W2为负数时,W'=2W2+1;当W2为正数时,W'=2W2;

步骤S2024:将W1的取值区间平均分为三个子区间,W1∈[U1,U2],U1、U2分别为W1的最大值、最小值;设定输入参数L,所述输入参数L的值从整数集合{e1,e2,e3}中选取,e1、e2、e3为任意正整数,由用户指定,e1、e2、e3分别对应于所述三个子区间;L的选取规则为,当W1的值在第一个子区间的范围内,L的值等于e1,当W1的值在第二个子区间的范围内,L的值等于e2,当W1的值在第三个子区间的范围内,L的值等于e3;根据所述输入参数L,对W'进行编码,获得编码值;所述编码值等于前值与后值的组合,即为所述前值+所述后值,所述前值等于W'除以2L,并在W'除以2L的结果后添加两位00的符号位,所述后值等于W'mod 2L,例如前值为00,后值为11,编码值等于0011;

当编码值超过D2,对编码值进行替换,替换成前缀值及后缀值组成的新编码值;所述后缀值为每一个灌溉小区的序号码D的有效位,所述有效位为每一个灌溉小区的序号码D中1的位数;所述前缀值从固定的编码表中选取,所述编码表中存放了长度为F的二进制数,作为前缀值,每一个前缀值在所述编码表中都存在地址,通过所述地址能够找到所述前缀值,所述地址为(a,b),a为所述地址在所述编码表上的行数,b为所述地址在所述编码表上的列数;其中,F为正整数;所述固定的编码表由用户任意制定,存放长度为F的二进制数作为前缀值,并且编码表中存放的前缀值都不相同;

步骤S2025:将所有灌溉小区的编码值作为存储码进行存储。

实施例三:

如图3所示,本发明的一种灌溉区域规划系统,包括:

区域规划模块301,用于将总的灌溉区域划分为M个灌溉小区,并为各灌溉小区编上序号码;

区域编码模块302,用于对各灌溉小区的序号码进行处理,并对处理后的各灌溉小区的序号码进行编码。

实施例四:

如图4所示,本发明的另一种灌溉区域规划系统,包括:

区域规划模块401,用于将总的灌溉区域划分为M个灌溉小区,并为各灌溉小区编上序号码;

区域编码模块402,用于对各灌溉小区的序号码进行处理,并对处理后的各灌溉小区的序号码进行编码。

所述区域规划模块401包括:

划分模块4011,用于将总的灌溉区域划分为M个灌溉小区,所述灌溉小区为不规则的灌溉面积,将每个灌溉小区划分为0~N个通道,所述通道为每次灌溉的最小面积单位;N为正整数;

编号模块4012,用于以灌溉小区为单位,把通道依次进行升序编号,编号为K位二进制数,且K的初始赋值从1开始,当通道的编号溢出时,即所述编号不够用时,K加1,对同一个灌溉小区内的通道的编号进行统计,前E位相同的编号的位数作为灌溉小区的区头号,将同一个灌溉小区内的通道的编号依次去除前E位相同的编号的位数,得到K-E位的二进制数,作为新的同一个灌溉小区内的通道的编号;

组合模块4013,用于将新的同一个灌溉小区内的通道的编号升序依次组合,作为灌溉小区的通道组合号,将所述灌溉小区的区头号放置在前、所述通道组合号在后组合成灌溉小区的序号码;

排列模块4014,用于按照灌溉小区的区头号进行升序排列,按照灌溉小区的区头号的排列顺序对灌溉小区的序号码进行排列,得到序号码序列。

所述区域数据编码模块402包括:

第一计算模块4021,用于计算每一个灌溉小区的两个邻接的灌溉小区的序号码之差的绝对值;将所有灌溉小区的两个邻接的灌溉小区的序号码之差的绝对值相加,求取所述两个邻接的灌溉小区的序号码之差的绝对值的平均值W1;根据所述两个邻接的灌溉小区的序号码,生成预测码Y,所述预测码Y为两个邻接的灌溉小区的序号码的平均值;所述两个邻接的灌溉小区的序号码为在所述序号码中排列在每一个灌溉小区的序号码前面、后面的灌溉小区的序号码,即为在所述序号码序列中排列在每一个灌溉小区的相邻的灌溉小区的序号码;

第二计算模块4022,用于计算预测码Y与灌溉小区的序号码D之间的差值W2,D∈[D1,D2],当超过区间范围,认为灌溉小区的序号码无效;D1、D2分别为灌溉小区的序号码D的上界、下界;

映射模块4023,用于

当且W2≤(D2-Y)时,将W2映射成预测差值W',其中W2的位数大于W'的位数;

当且W2≤Y,当W2为负数时,W'=2W2+1;当W2为正数时,W'=2W2;

当且W2>Y时,W'=Y+|W2|;

当W2≤(D2-Y),W2为负数时,W'=2W2+1;当W2为正数时,W'=2W2;

编码模块4024,用于将W1的取值区间平均分为三个子区间,W1∈[U1,U2],U1、U2分别为W1的最大值、最小值;设定输入参数L,所述输入参数L的值从整数集合

{e1,e2,e3}中选取,e1、e2、e3为任意正整数,由用户指定,e1、e2、e3分别对应于所述三个子区间;L的选取规则为,当W1的值在第一个子区间的范围内,L的值等于e1,当W1的值在第二个子区间的范围内,L的值等于e2,当W1的值在第三个子区间的范围内,L的值等于e3;根据所述输入参数L,对W'进行编码,获得编码值;所述编码值等于前值与后值的组合,所述前值等于W'除以2L,并在W'除以2L的结果后添加两位00的符号位,所述后值等于W'mod 2L

当编码值超过D2,对编码值进行替换,替换成前缀值及后缀值组成的新编码值;所述后缀值为每一个灌溉小区的序号码D的有效位,所述有效位为每一个灌溉小区的序号码D中1的位数;所述前缀值从固定的编码表中选取,所述编码表中存放了长度为F的二进制数,作为前缀值,每一个前缀值在所述编码表中都存在地址,通过所述地址能够找到所述前缀值,所述地址为(a,b),a为所述地址在所述编码表上的行数,b为所述地址在所述编码表上的列数;其中,F为正整数;所述固定的编码表由用户任意制定,存放长度为F的二进制数作为前缀值,并且编码表中存放的前缀值都不相同;

存储模块4025,用于将所有灌溉小区的编码值作为存储码进行存储。

以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1