本发明涉及风电领域,更具体地讲,涉及一种背风区识别方法和设备。
背景技术:
背风区风险识别技术是根据我国各区域背风区的机组运行的不同表现而总结出的一套与当地大气热力稳定度、平均风速、地形坡度、背风地形相对高度、地形尾流影响范围等相关的背风风险区经验识别技术。目前背风区风险识别主要依靠cfd方法,即,通过根据地形与测风塔观测数据使用cfd方法对整场风况进行计算,进而获得风参在场区内的分布情况,然后根据获得的风参来综合判断选定点是否在背风区中。
然而,运用cfd方法来进行背风区风险识别存在着诸多的问题。具体地讲,cfd方法需要输入地形数据、地表粗糙度数据、当地热力稳定度数据、测风数据,但是测风数据必须满足代表性要求。然而,目前对背风区域测风塔的代表性判断缺乏标准和方法。此外,在运用cfd方法进行资源评估时,由于计算区域大小的选定无指导原则和标准,因此可能会遗漏背风地形,造成对部分机位电量的高估,进而形成机组的低效资产。再者,在运用cfd方法时,由于计算区域大进而可能造成难收敛问题,这会导致cfd方法无法计算大地形背风的影响。另外,cfd方法的计算结果会受到边界条件、空气参数、物理模型等的影响,因此在气流分离严重的区域会导致计算准度降低,即对背风区范围的判别可能偏小,也可能偏大,进而极大的依赖工程人员的技术经验。此外,cfd方法通过求解n-s方程获得流场计算结果,计算速度慢,占用计算资源多。
因此,提出一种基于地形的背风区快速自动风险识别方法和设备,具有重大的现实意义。
技术实现要素:
为了至少解决现有技术中存在的上述问题,本发明提供了一种基于地形的背风区识别方法和设备以及一种山脊背风区识别方法和设备。
本发明的一方面在于提供基于地形的背风区识别方法,所述方法可包括:根据输入的指定点以及指定风向从地形数据提取经过所述指定点和所述指定风向的反方向的预定长度的二维剖面地形;通过对所述二维剖面地形进行分析来搜索所述二维剖面地形上的多个点中的最高点和最低点;基于所述最高点的海拔值、所述最低点的海拔值、以及所述指定点与所述最高点之间的水平距离计算与所述指定点相应的抛物线高度;根据所述指定点的海拔值与所述抛物线高度之间的比较结果来确定所述指定点是否位于所述最高点的背风区内。
所述最低点可以是所述多个点中的以所述最高点为中心的预定范围内的最低点。
所述方法还可包括:遍历所述地形数据中的所有格点以确定是否存在海拔值为非浮点型的格点;如果存在海拔值为非浮点型的格点,则通过利用该格点周围的预定数量格点的海拔值进行反距离插值运算来将该格点的海拔值计算为浮点型。
提取经过所述指定点和所述指定风向的反方向的二维剖面地形的步骤可包括:按照预定步长确定以所述指定点为起始点的在所述指定风向的反方向上的所述多个点;计算所述多个点中的每个点的海拔值进而获得所述二维剖面地形。
计算所述多个点中的每个点的海拔值进而获得所述二维剖面地形的步骤可包括:从所述地形数据获得与所述每个点最近的预定数量格点的海拔值;通过使用所述预定数量格点的海拔值进行反距离插值运算来计算所述每个点的海拔值。
按照预定步长确定以所述指定点为起始点的在所述指定风向的反方向上的多个点的步骤可包括:根据以下等式分别计算所述指定点的与所述地形数据的高程数组相关的行号ls和列号cs:ls=(ys-yo)/q,cs=(xs-xo)/q,其中,xs和ys分别为所述指定点的x坐标和y坐标,xo和yo分别为所述地形数据的原点的x坐标和y坐标,q为所述地形数据中的格网单元的格距;根据以下等式分别计算所述多个点中的第i个点的与所述高程数组相关的行号li和列号ci:li=ls p×i×cosθ,ci=cs p×i×sinθ,其中,θ为所述指定风向,p表示所述预定步长,i为整数且取值范围为[0,int(dset/p,min((lmax-ls)/|cosθ|,(cmax-cs)/|sinθ|))],lmax和cmax分别为所述高程数组的行号和列号的最大值,dset表示所述预定长度。
从所述地形数据获得与所述每个点最近的预定数量格点的海拔值的步骤可包括:对第i个点的行号li和列号ci分别向上和向下取整以确定与第i个点最近的四个格点在所述高程数组中的行号和列号;根据所述四个格点在所述高程数组中的行号和列号从所述高程数组中分别获得所述四个格点的海拔值,其中,所述四个格点是所述预定数量格点。
计算与所述指定点相应的抛物线高度的步骤可包括:根据所述最高点的海拔值与所述最低点的海拔值之间的差h、所述指定点与所述最高点之间的水平距离x、以及风速v,利用基于统计学方法确定的抛物线函数h=f(x,v,h)来计算与所述指定点相应的抛物线高度h。
确定所述指定点是否位于所述最高点的背风区内的步骤可包括:如果所述抛物线高度大于或等于所述指定点的海拔值,则确定所述指定点位于所述最高点的背风区内;如果所述抛物线高度小于所述指定点的海拔值,则确定所述指定点位于所述最高点的背风区外。
本发明的另一方面在于提供一种基于地形的背风区识别设备,所述设备可包括:提取单元,被配置为根据输入的指定点以及指定风向从地形数据提取经过所述指定点和所述指定风向的反方向的预定长度的二维剖面地形;背风区识别单元,被配置为:通过对所述二维剖面地形进行分析来搜索所述二维剖面地形上的多个点中的最高点和最低点,基于所述最高点的海拔值、所述最低点的海拔值、以及所述指定点与所述最高点之间的水平距离计算与所述指定点相应的抛物线高度,根据所述指定点的海拔值与所述抛物线高度之间的比较结果来确定所述指定点是否位于所述最高点的背风区内。
所述最低点可以是所述多个点中的以所述最高点为中心的预定范围内的最低点。
所述设备还可包括:数据预处理单元,被配置为:遍历所述地形数据中的所有格点以确定是否存在海拔值为非浮点型的格点,如果存在海拔值为非浮点型的格点,则通过利用该格点周围的预定数量格点的海拔值进行反距离插值运算来将该格点的海拔值计算为浮点型。
提取单元可被配置为通过以下操作提取经过所述指定点和所述指定风向的反方向的二维剖面地形:按照预定步长确定以所述指定点为起始点的在所述指定风向的反方向上的所述多个点;计算所述多个点中的每个点的海拔值进而获得所述二维剖面地形。
提取单元可被配置为通过以下操作计算所述一系列点中的每个点的海拔值:从所述地形数据获得与所述每个点最近的预定数量格点的海拔值;通过使用所述预定数量格点的海拔值进行反距离插值运算来计算所述每个点的海拔值。
提取单元可被配置为通过以下操作确定所述多个点:根据以下等式分别计算所述指定点的与所述地形数据的高程数组相关的行号ls和列号cs:ls=(ys-yo)/q,cs=(xs-xo)/q,其中,xs和ys分别为所述指定点的x坐标和y坐标,xo和yo分别为所述地形数据的原点的x坐标和y坐标,q为所述地形数据中的格网单元的格距;根据以下等式分别计算所述多个点中的第i个点的与所述高程数组相关的行号li和列号ci:li=ls p×i×cosθ,ci=cs p×i×sinθ,其中,θ为所述指定风向,p表示所述预定步长,i为整数且取值范围为[0,int(min(dset/p,(lmax-ls)/|cosθ|,(cmax-cs)/|sinθ|))],lmax和cmax分别为所述高程数组的行号和列号的最大值,dset表示所述预定长度。
提取单元可被配置为通过以下操作获得所述预定数量格点的海拔值:对第i个点的行号li和列号ci分别向上和向下取整以确定与第i个点最近的四个格点在所述高程数组中的行号和列号;根据所述四个格点在所述高程数组中的行号和列号从所述高程数组中分别获得所述四个格点的海拔值,其中,所述四个格点是所述预定数量格点。
背风区识别单元可被配置为通过以下操作计算所述抛物线高度:根据所述最高点的海拔值与所述最低点的海拔值之间的差h、所述指定点与所述最高点之间的水平距离x、以及风速v,利用基于统计学方法确定的抛物线函数h=f(x,v,h)来计算与所述指定点相应的抛物线高度h。
背风区识别单元可被配置为通过以下操作确定所述指定点是否位于所述最高点的背风区内包括:如果所述抛物线高度大于或等于所述指定点的海拔值,则确定所述指定点位于所述最高点的背风区内;如果所述抛物线高度小于所述指定点的海拔值,则确定所述指定点位于所述最高点的背风区外。
本发明的另一方面在于提供一种山脊背风区识别方法,所述方法可包括:分别以地形数据中的多个山脊点中的每一个山脊点为起始点沿指定风向从所述地形数据提取预定长度的二维剖面地形以获得多个二维剖面地形;针对所述多个二维剖面地形中的每一个二维剖面地形,搜索每一个二维剖面地形上按预定步长排列的多个点中的最低点;针对所述每一个二维剖面地形,利用基于统计学方法确定的抛物线函数h=f(x,v,h)来确定二维剖面地形与所述抛物线函数之间的交点,以确定相应山脊点的背风区范围,其中,h为二维剖面地形上的相应山脊点的海拔值与最低点的海拔值之间的差,x为二维剖面地形上的指定点与该山脊点之间的水平距离,v表示风速。
本发明的另一方面在于提供一种山脊背风区识别设备,所述设备可包括:提取单元,被配置为分别以地形数据中的多个山脊点中的每一个山脊点为起始点沿指定风向从所述地形数据提取预定长度的二维剖面地形以获得多个二维剖面地形;山脊背风区识别单元,被配置为:针对所述多个二维剖面地形中的每一个二维剖面地形,搜索每一个二维剖面地形上按预定步长排列的多个点中的最低点;针对所述每一个二维剖面地形,利用基于统计学方法确定的抛物线函数h=f(x,v,h)来确定二维剖面地形与所述抛物线函数之间的交点,以确定相应山脊点的背风区范围,其中,h为二维剖面地形上的相应山脊点的海拔值与最低点的海拔值之间的差,x为二维剖面地形上的指定点与该山脊点之间的水平距离,v表示风速。
本发明的一方面在于提供一种计算机可读存储介质,存储有程序,所述程序包括用于执行以上所述的基于地形的背风区识别方法和山脊背风区识别方法的指令。
本发明的一方面在于提供一种计算机,包括存储有计算机程序的可读介质,所述程序包括用于执行以上所述的基于地形的背风区识别方法和山脊背风区识别方法的指令。
综上,通过以上所述基于地形的背风区识别方法和所述山脊背风区识别方法,能够基于地形输入实现背风区的识别,添补了目前风电行业尚无背风区识别的专用方法的空白,并且对高效相应业务需求具有重要的作用。此外,通过以上所述基于地形的背风区识别方法和所述山脊背风区识别方法,可以在风电场设计前期需要进行测风塔侧风时使测风塔选址更加准确,从而有利于区域风资源评估,即,可有效避免测风塔被选址在背风区中进而导致场区风资源评估准度降低的情况。此外,上述方法可在微观选址阶段有效地识别风机是否选址于背风区,进而降低低效资产出现的可能性。
附图说明
通过下面结合附图对本发明示例性实施例的详细描述,本领域技术人员将会获得对本发明的全面理解,其中:
图1是示出根据本发明的示例性实施例的基于地形的背风区识别方法的总流程图;
图2是示出根据本发明的示例性实施例的提取经过指定点和指定风向的反方向的二维剖面地形的具体过程的流程图;
图3是示出根据本发明的示例性实施例的确定以指定点为起始点的在指定方向上的反方向上的多个点的过程的流程图;
图4是用于说明风向的角度的示图;
图5是示出根据本发明的示例性实施例的确定所述多个点中的每个点的海拔值的过程的流程图;
图6是示出根据本发明的示例性实施例的基于地形的背风区识别设备的框图;
图7是示出根据本发明的示例性实施例的山脊背风区识别方法的总流程图;
图8是示出根据本发明的示例性实施例的山脊背风区识别设备的框图。
具体实施方式
现在将详细参照本公开的示例性实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指示相同的部件。以下将通过参照附图来说明所述实施例,以便于解释本发明。显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例。
在本公开中,包括诸如“第一”、“第二”等序数的术语可以被用于描述各种元素,但是这些元素不应被理解为受限于这些术语。这些术语仅被用于将一个元素与其他元素区分开来。例如,在不脱离本公开的范围的情况下,第一元素可以被称为第二元素,反之亦然。
在进行详细说明之前,对本公开中涉及的技术术语进行描述,以便于对本公开的具体内容的理解:
风电:又被称为风力发电,指风的动能转换为电能。
风电场:是人类发明的一种工具,利用风能并结合一系列发电机器从而实现利用风能发电的目的。
选址:包括在选定的风电场区域中对测风塔位置的选定,以及在风电场设计过程中优化布置风力发电机组的位置。
背风区:风况受到上风向高海拔地形影响而风速降低的区域。
上风向:风先吹到的地方位于上风向。
下风向:风后吹到的地方位于下风向。
图1是示出根据本发明的示例性实施例的基于地形的背风区识别方法的总流程图。
如图1中所示,在步骤s100,根据输入的指定点s以及指定风向从地形数据提取经过所述指定点和所述指定风向的反方向的预定长度的二维剖面地形。其中,所述预定长度可以是由用户利用输入装置手动输入的。其中,所述指定点s和所述指定风向可以是用户利用输入装置实时输入的,也可以是由用户利用输入装置预先输入的。所述地形数据是读入的地图数据,该地图数据可以是扩展名为asc格式的文件,但是这仅是示例,本发明不限于asc格式的文件。该地图数据以二维的高程数组的形式被存储,该高程数组存储有地图的起点、以及地图中的所有格点的海拔值。在以下描述中,可以用(xs,ys,zs)表示所述指定点s在地图中坐标,并且可以用(ls,cs)表示所述指定点s的与二维的高程数组相关的行号和列号,其中,由于所述指定点s可以是用户利用输入装置(例如鼠标)在地图上点击而输入的点,因此ls和cs可能会是非整数。
此外,在步骤s100之前,所述方法还可包括:遍历所述地形数据中的所有格点以确定是否存在海拔值为非浮点型的格点;如果存在海拔值为非浮点型的格点c,则通过利用该格点c周围的预定数量格点的海拔值进行反距离插值运算来将该格点c的海拔值计算为浮点型。
具体地讲,为了确保后续处理的准确性,地形数据中的每个格点的海拔值应为浮点类型,因此需要检查输入的地形数据中的每个格点的海拔值,如果存在海拔值为非浮点型的格点c,则可以利用该格点c周围的预定数量格点的海拔值来重新计算出一个浮点型的海拔值来替换该格点c的海拔值,例如,在以下的示例中,可以选择离该格点c最近的4个格点,利用如下等式所示出的反距离插值法来计算出该格点c的插值海拔值:
其中,(xc,yc)为该格点c的坐标,zc为该格点c的插值后的海拔值,(xi,yi)为离该格点c最近的4个格点中的第i个格点,di为该格点c与第i个格点之间的距离,w为加权归一化因子,zi为第i个点处的海拔高度。
在经过上述处理之后,可使得地形数据中的每个格点的海拔值均为浮点类型。
以下将参照图2至图5来详细描述如何提取经过指定点和指定风向的反方向的二维剖面地形。
图2是示出根据本发明的示例性实施例的提取经过指定点s和指定风向的反方向的二维剖面地形的具体过程的流程图。
如图2中所示,在步骤s110,按照预定步长确定以所述指定点s为起始点的在所述指定风向的反方向上的所述多个点,在以下描述中,所示多个点包括作为起始点的所述指定点s。
在步骤s120,计算所述多个点中的每个点的海拔值进而获得所述二维剖面地形。下面将参照图3和图5来详细描述如何确定所述二维剖面地形。
具体地讲,由于所述指定点s是用户通过输入装置(例如鼠标)直接点击地图而输入的点,所以以所述指定点s为起始点的在所述指定风向的反方向上确定的所述多个点中的每个点的位置通常不是地图中的格点的位置,为了确定所述多个点中的每个点的海拔值,可首先利用所述指定点s的坐标值(xs,ys)与地图原点的坐标值(x0,y0)之间的关系确定出所述指定点s的与高程数组相关的行号ls和列号cs,然后根据所述指定点s的与高程数组相关的行号ls和列号cs以及预定步长和所述指定风向来确定所述多个点中的其它各个点的与高程数据相关的行号和列号,并最终针对所述多个点中的每个点,根据距所述每个点最近的预定数量格点的海拔值来确定所述每个点的海拔值。
首先,参照图3详细描述如何按照预定步长确定以所述指定点为起始点的在所述指定风向的反方向上的多个点。
首先,在步骤s111,根据以下等式分别计算所述指定点s的与所述地形数据的高程数组相关的行号ls和列号cs:
ls=(ys-yo)/q(4)
cs=(xs-xo)/q(5)
其中,xs和ys分别为所述指定点s的x坐标和y坐标,xo和yo分别为所述地形数据的原点的x坐标和y坐标,q为所述地形数据中的格网单元的格距。由于所述地形数据的原点的x坐标和y坐标存储在地形数据的高程数组中,因此,x坐标和y坐标是已知的。
此后,在确定出所述指定点s的与高程数组相关的行号ls和列号cs之后,在步骤s112,根据以下等式分别计算所述多个点中的第i个点的与所述高程数组相关的行号li和列号ci:
li=ls p×i×cosθ(6)
ci=cs p×i×sinθ(7)
其中,p表示预定步长,可根据需要由用户设置为正整数,其中,在以下描述中,为了便于描述,将p设置为1;θ表示所述指定风向,θ的取值范围为[0,360)度,如图4中所示,当风向为北风时,θ为0度,当风向沿顺时针方向改变时,θ逐渐增大;i为整数且取值范围为[0,int(min(dset/p,(lmax-ls)/|cosθ|,(cmax-cs)/|sinθ|))],其中,lmax和cmax分别为高程数组的行数和列数的最大值,dset表示用户利用输入装置手动输入的所述预定长度。
至此,通过图3中的步骤s111和s112可以确定出以所述指定点为起始点的在所述指定风向的反方向上的多个点的与高程数组相关的行号和列号。
在确定了所述多个点的与高程数组相关的行号和列号之后,可根据图5所示的过程来确定所述多个点中的每个点的海拔值进而获得二维剖面地形。
如图5中所示,在步骤s121,从所述地形数据获得与所述多个点中的每个点最近的预定数量格点的海拔值,在下面的描述中,假设所述预定数量是4,然而本发明不限于此,所述预定数量可以是4之外的其它整数,例如,2、3等。
具体地讲,由于通过以上等式(6)和(7)计算出的行号li和列号ci均为非整数,因此,首先对所述多个点中的第i个点的行号li和列号ci分别向上和向下取整,以确定出与第i个点最近的4个格点在所述高程数组中的行号和列号,即,通过进行
此后,在步骤s122,针对所述多个点中的每个点,通过使用与所述每个点距离最近的4个格点的海拔值进行反距离插值运算来计算所述每个点的海拔值。由于以上已根据等式(1)-等式(3)具体描述了反距离插值运算过程,因此,此处不再进行重复描述。
通过以上参照图2-图5的过程可提取出经过所述指定点s和所述指定风向的反方向的二维剖面地形。
返回参照图1,在步骤s200,通过对所述二维剖面地形进行分析来搜索所述二维剖面地形上的多个点中的最高点和最低点。
具体地讲,在通过步骤s100确定的二维剖面地形上的所述多个点中确定出具有最高海拔值zmax的最高点,该过程可采用各种已知的快速搜索算法。然后,在所述多个点中的以所述最高点为中心的预定范围内搜索具有最低海拔值zmin的最低点,优选地,所述预定范围可以是2公里、3公里等适当距离。此外,所述最低点也可以是所述多个点中的在包括最高点的预定范围内具有最低海拔值的最低点,例如,在所述多个点中的以所述最高点为起点的预定范围内具有最低海拔值的最低点。
此后,在步骤s300,基于所述最高点的海拔值、所述最低点的海拔值、以及所述指定点与所述最高点之间的水平距离计算与所述指定点s相应的抛物线高度。
具体地讲,根据所述最高点的海拔值zmax与所述最低点的海拔值zmin之间的差h、所述指定点与所述最高点之间的水平距离x、以及风速v,利用基于统计学方法确定的抛物线函数h=f(x,v,h)来计算与所述指定点s相应的抛物线高度h。
作为实施例,可利用统计学方法,基于多区域数值计算与测试数据获得经验公式,然后根据经验公式来计算与所述指定点s相应的抛物线高度。例如,可利用含有最高点的相对高度的经验公式来计算与所述指定点s相应的抛物线高度,如下面的等式(8)和等式(9)所示:
其中,a、b、c和d可根据具体的地理环境而改变,例如,可根据山脊高度、坡度、粗糙度、平均风速和雷诺数等信息而改变,例如,a、b、c和d可以分别是21、0.5、20和0.642167。
然而,上述等式(8)和(9)仅是示例,可利用其它任何合理的经验公式来代替等式(8)和(9)。
在步骤s300确定了与所述指定点s相应的抛物线高度之后,在步骤s400,根据所述指定点s的海拔值zs与所述抛物线高度h之间的比较结果来确定所述指定点s是否位于所述最高点的背风区内。
具体地讲,如果所述抛物线高度h大于或等于所述指定点的海拔值zs,则确定所述指定点s位于所述最高点的背风区内。如果所述抛物线高度h小于所述指定点s的海拔值zs,则确定所述指定点s位于所述最高点的背风区外。
图6是示出根据本发明的示例性实施例的基于地形的背风区识别设备100的框图。
如图6中所示,背风区识别设备100包括提取单元110和背风区识别单元120。
提取单元110可被配置为根据输入的指定点s以及指定风向从地形数据提取经过所述指定点s和所述指定风向的反方向的预定长度的二维剖面地形。其中,所述预定长度可以是由用户利用输入装置手动输入的。所述指定点s和所述指定风向可以是用户利用输入装置实时输入的,也可以是由用户利用输入装置预先输入的。所述地形数据是读入的地图数据,该地图数据以二维的高程数组的形式被存储,该高程数组存储有地图的起点、以及地图中的所有格点的海拔值。在以下描述中,可以用(xs,ys,zs)表示所述指定点s在地图中坐标,并且可以用(ls,cs)表示所述指定点s的与二维的高程数组相关的行号和列号,其中,由于所述指定点s可以是用户利用输入装置(例如鼠标)在地图上点击而输入的点,因此ls和cs可能会是非整数。
此外,所述背风区识别设备100还可包括可选的数据预处理单元130。数据预处理单元130可被配置为遍历所述地形数据中的所有格点以确定是否存在海拔值为非浮点型的格点,如果存在海拔值为非浮点型的格点c,则通过利用该格点c周围的预定数量格点的海拔值进行反距离插值运算来将该格点c的海拔值计算为浮点型。由于输入到背风区识别设备100中的地形数据可以是事先已经经过处理的浮点型地形数据,所以数据预处理单元130是可选项,在图6中用虚线表示。由于以上已经参照图1具体描述了当某个格点的海拔值为非浮点型时如何利用该格点周围的预定数量格点将该格点的海拔值计算为浮点型,因此,此处不再进行重复描述。
作为示例,在提取经过所述指定点s和所述指定风向的反方向的所述预定长度的二维剖面地形的过程中,首先,提取单元110可按照预定步长确定以所述指定点s为起始点的在所述指定风向的反方向上的所述多个点,然后计算所述多个点中的每个点的海拔值进而获得所述二维剖面地形。
具体地讲,提取单元110可根据以上的等式(4)和(5)分别计算所述指定点的与所述地形数据的高程数组相关的行号ls和列号cs。
在确定出所述指定点s的与高程数组相关的行号ls和列号cs之后,提取单元110可根据以上的等式(6)和(7)分别计算所述多个点中的第i个点的与所述高程数组相关的行号li和列号ci。
至此,提取单元110可以确定出以所述指定点s为起始点的在所述指定风向的反方向上的多个点的与高程数组相关的行号和列号。
在确定了所述多个点的与高程数组相关的行号和列号之后,提取单元110可从所述地形数据获得与所述多个点中的每个点最近的预定数量格点的海拔值,在下面的描述中,假设所述预定数量是4,然而本发明不限于此,所述预定数量可以是4之外的其它整数,例如,2、3等。
具体地讲,由于通过以上等式(6)和(7)计算出的行号li和列号ci均为非整数,因此首先提取单元110可对所述多个点中的第i个点的行号li和列号ci分别向上和向下取整,以确定出与第i个点最近的4个格点在所述高程数组中的行号和列号,即,通过进行
此后,针对所述多个点中的每个点,提取单元110可通过使用与所述每个点距离最近的4个格点的海拔值进行反距离插值运算来计算所述每个点的海拔值。由于以上已根据等式(1)-等式(3)具体描述了反距离插值运算过程,因此,此处不再进行重复描述。
通过以上过程,提取单元110可提取出经过所述指定点s和所述指定风向的反方向的二维剖面地形。
此后,背风区识别单元120可被配置为通过对所述二维剖面地形进行分析来搜索所述二维剖面地形上的多个点中的最高点和最低点。
具体地讲,背风区识别单元120可在确定的二维剖面地形上的所述多个点中确定出具有最高海拔值zmax的最高点,该过程可采用各种已知的快速搜索算法。然后,在所述多个点中的以所述最高点为中心的预定范围内搜索具有最低海拔值zmin的最低点,优选地,所述预定范围可以是2公里、3公里等适当距离。此外,所述最低点也可以是所述多个点中的在包括最高点的预定范围内具有最低海拔值的最低点,例如,在所述多个点中的以所述最高点为起点的预定范围内具有最低海拔值的最低点。
此后,背风区识别单元120可基于所述最高点的海拔值、所述最低点的海拔值、以及所述指定点与所述最高点之间的水平距离计算与所述指定点s相应的抛物线高度。
具体地讲,背风区识别单元120可根据所述最高点的海拔值zmax与所述最低点的海拔值zmin之间的差h、所述指定点与所述最高点之间的水平距离x、以及风速v,利用基于统计学方法确定的抛物线函数h=f(x,v,h)来计算与所述指定点s相应的抛物线高度h。
作为实施例,背风区识别单元120可利用统计学方法,基于多区域数值计算与测试数据获得经验公式,然后根据经验公式来计算与所述指定点s相应的抛物线高度。例如,背风区识别单元120可利用含有最高点的相对高度的经验公式来计算与所述指定点s相应的抛物线高度,诸如,背风区识别单元120可以上描述的等式(8)和等式(9)来计算与所述指定点s相应的抛物线高度。然而,上述等式(8)和(9)仅是示例,可利用其它任何合理的经验公式来代替等式(8)和(9)。
此后,背风区识别单元120可根据所述指定点s的海拔值zs与所述抛物线高度h之间的比较结果来确定所述指定点s是否位于所述最高点的背风区内。
具体地讲,如果所述抛物线高度h大于或等于所述指定点的海拔值zs,则背风区识别单元120可确定所述指定点s位于所述最高点的背风区内。如果所述抛物线高度h小于所述指定点s的海拔值zs,则背风区识别单元120可确定所述指定点s位于所述最高点的背风区外。
以上描述了在指定点和指定风向的情况下如何确定出背风区,下面将描述如何针对山脊和指定风向确定山脊的背风区,由于山脊上的山脊点可被视为以上参照图1-图6描述的经过指定点和指定风向的反方向的二维剖面地形上的最高点,因此,在以下描述中将省略重复的描述。
图7是示出根据本发明的示例性实施例的山脊背风区识别方法的流程图。
如图7中所示,在步骤s710,分别以地形数据中的多个山脊点中的每一个山脊点为起始点沿指定风向从所述地形数据提取预定长度的二维剖面地形以获得多个二维剖面地形。
所述多个山脊点可以是用户利用输入装置在地图上手动点选的用于描述山脊的走向的坐标点串,也可以是在实施中直接导入的山脊线坐标。在以下描述中,假设所述多个山脊点为用户手动选取的用于描述山脊走向的坐标点串。此外,由于对所述多个山脊点中的每一个山脊点都进行相同的操作,因此,在下面的描述中仅描述对所述多个山脊点中的一个山脊点的处理,并将该山脊点称为山脊点s。
所述地形数据是读入的地图数据,该地图数据以二维的高程数组的形式被存储,该高程数组存储有地图的起点、以及地图中的所有格点的海拔值。在以下描述中,可以用(xs,ys,zs)表示所述山脊点s在地图中坐标,并且可以用(ls,cs)表示所述山脊点s的与二维的高程数组相关的行号和列号,其中,由于所述山脊点s可以是用户利用输入装置(例如鼠标)在地图上点击而输入的点,因此ls和cs可能会是非整数。
此外,在步骤s710之前,所述方法还可包括:遍历所述地形数据中的所有格点以确定是否存在海拔值为非浮点型的格点;如果存在海拔值为非浮点型的格点c,则通过利用该格点c周围的预定数量格点的海拔值进行反距离插值运算来将该格点c的海拔值计算为浮点型。由于以上已经参照图1进行了反距离插值运算的具体过程,因此,此次不再进行重复描述。在经过上述处理之后,可使得地形数据中的每个格点的海拔值均为浮点类型。
具体地讲,以山脊点s为起始点沿指定风向从所述地形数据提取预定长度的二维剖面地形的步骤包括:按照预定步长确定以所述山脊点s为起始点的在所述指定风向上的所述预定长度内的所述多个点,在以下描述中,所述多个点包括作为起始点的所述山脊点s;计算所述多个点中的每个点的海拔值进而获得所述预定长度的二维剖面地形。
按照预定步长确定以所述山脊点s为起始点的在所述指定风向上的所述预定长度内的所述多个点的步骤可包括:根据以上的等式(4)和(5)分别计算所述山脊点s的与所述地形数据的高程数组相关的行号ls和列号cs;根据以上的等式(6)和(7)分别计算所述多个点中的第i个点的与所述高程数组相关的行号li和列号ci。由于以上已参照图3对此进行了详细描述,因此此处不再进行重复描述。
在针对所述山脊点s确定了所述多个点的与高程数组相关的行号和列号之后,可根据图5所示的过程来确定所述多个点中的每个点的海拔值进而获得所述预定长度的二维剖面地形,由于以上已参照图5进行了详细描述,因此此处不再进行重复。至此,可确定出以所述山脊点s为起点的沿所述指定方向的二维剖面地形。根据工程方法,可确定出所述多个山脊点中的每一个山脊点为起始点的沿指定风向的所述预定长度的二维剖面地形,进而获得多个二维剖面地形。
在步骤s720,针对所述多个二维剖面地形中的每一个二维剖面地形,搜索每一个二维剖面地形上按预定步长排列的所述多个点中的最低点。
具体地讲,针对每一个二维剖面地形,搜索该二维剖面地形上的所述多个点中的以相应山脊点为起点的预定范围内的具有最低海拔值的最低点,优选地,所述预定范围可以是2公里、3公里等适当距离。
在步骤s730,针对所述每一个二维剖面地形,利用基于统计学方法确定的抛物线函数h=f(x,v,h)来确定二维剖面地形与所述抛物线函数之间的交点,以确定相应山脊点的背风区范围。
下面,以一个二维剖面地形上按预定步长排列的多个点中的一个点为例进行具体说明。如以上的等式(8)和(9)中所示:
其中,h为当前二维剖面地形上的相应山脊点的海拔值zmax与最低点的海拔值zmin之间的差,x为二维剖面地形上的点与该山脊点之间的水平距离,v表示风速。其中,a、b、c和d可根据具体的地理环境而改变,例如,可根据山脊高度、坡度、粗糙度、平均风速和雷诺数等信息而改变,例如,a、b、c和d可以分别是21、0.5、20和0.642167。
由于等式(8)和(9)定义了一个抛物线函数,因此,可计算该抛物线函数与当前二维剖面地形之间的交点,显然,当前二维剖面地形上的在该交点与当前二维剖面地形相应的山脊点之间的区域均位于该山脊点的背风区范围内。因此,通过上述过程就可以确定出该山脊点的背风区范围。
类似地,通过依次针对在步骤s710中获得的多个二维剖面地形中的其它二维剖面地形,利用与上述过程相似的过程就可以确定出每一个山脊点的背风区范围,进而可获得整个山脊的背风区范围。
图8是示出根据本发明的示例性实施例的山脊背风区识别设备800的框图。
如图8中所示,山脊背风区识别设备800包括提取单元810和山脊背风区识别单元820。
提取单元810可被配置为分别以地形数据中的多个山脊点中的每一个山脊点为起始点沿指定风向从所述地形数据提取预定长度的二维剖面地形以获得多个二维剖面地形。
所述多个山脊点可以是用户利用输入装置在地图上手动点选的用于描述山脊的走向的坐标点串,也可以是在实施中直接导入的山脊线坐标。在以下描述中,假设所述多个山脊点为用户手动选取的用于描述山脊走向的坐标点串。此外,由于对所述多个山脊点中的每一个山脊点都进行相同的操作,因此,在下面的描述中仅描述对所述多个山脊点中的一个山脊点的处理,并将该山脊点称为山脊点s。
所述地形数据是读入的地图数据,该地图数据以二维的高程数组的形式被存储,该高程数组存储有地图的起点、以及地图中的所有格点的海拔值。在以下描述中,可以用(xs,ys,zs)表示所述山脊点s在地图中坐标,并且可以用(ls,cs)表示所述山脊点s的与二维的高程数组相关的行号和列号,其中,由于所述山脊点s可以是用户利用输入装置(例如鼠标)在地图上点击而输入的点,因此ls和cs可能会是非整数。
山脊背风区识别设备800还可包括可选的数据预处理单元830。数据预处理单元830可被配置为遍历所述地形数据中的所有格点以确定是否存在海拔值为非浮点型的格点,如果存在海拔值为非浮点型的格点c,则通过利用该格点c周围的预定数量格点的海拔值进行反距离插值运算来将该格点c的海拔值计算为浮点型。由于输入到山脊背风区识别设备800中的地形数据可以是事先已经经过处理的浮点型地形数据,所以数据预处理单元830是可选项,在图8中用虚线表示。由于以上已经参照图1进行了反距离插值运算的具体过程,因此,此次不再进行重复描述。在经过上述处理之后,可使得地形数据中的每个格点的海拔值均为浮点类型。
提取单元810可被配置为通过执行以下操作以山脊点s为起始点沿指定风向从所述地形数据提取预定长度的二维剖面地形:按照预定步长确定以所述山脊点s为起始点的在所述指定风向向上的所述预定长度内的所述多个点,在以下描述中,所述多个点包括作为起始点的所述山脊点s;计算所述多个点中的每个点的海拔值进而获得所述预定长度的二维剖面地形。
作为示例,提取单元810可通过以下操作来确定以所述山脊点s为起始点的在所述指定风向上的所述预定长度内的所述多个点:根据以上的等式(4)和(5)分别计算所述山脊点s的与所述地形数据的高程数组相关的行号ls和列号cs;根据以上的等式(6)和(7)分别计算所述多个点中的第i个点的与所述高程数组相关的行号li和列号ci。由于以上已参照图3对此进行了详细描述,因此此处不再进行重复描述。
在针对所述山脊点s确定了所述多个点的与高程数组相关的行号和列号之后,可根据图5所示的过程来确定所述多个点中的每个点的海拔值进而获得所述预定长度的二维剖面地形,由于以上已参照图5进行了详细描述,因此此处不再进行重复。至此,可确定出以所述山脊点s为起点的沿所述指定方向的二维剖面地形。根据工程方法,可确定出所述多个山脊点中的每一个山脊点为起始点的沿指定风向的所述预定长度的二维剖面地形,进而获得多个二维剖面地形。
山脊背风区识别单元820可被配置为针对所述多个二维剖面地形中的每一个二维剖面地形,搜索每一个二维剖面地形上按预定步长排列的所述多个点中的最低点。
具体地讲,针对每一个二维剖面地形,山脊背风区识别单元820可搜索该二维剖面地形上的所述多个点中的以相应山脊点为起点的预定范围内的具有最低海拔值的最低点,优选地,所述预定范围可以是2公里、3公里等适当距离。
此外,山脊背风区识别单元820可被配置为针对所述每一个二维剖面地形,利用基于统计学方法确定的抛物线函数h=f(x,v,h)来确定二维剖面地形与所述抛物线函数之间的交点,以确定相应山脊点的背风区范围,进而可获得整个山脊的背风区范围。由于以上已参照图7进行了详细的描述,因此此处不再进行重复描述。
此外,本发明还提供了一种计算机可读存储介质,存储有程序,所述程序可包括用于执行上述基于地形的背风区识别方法和山脊背风区识别方法中的各种操作的指令。具体而言,所述程序可以包括用于执行图1-图3、图5和图7中所描述的各个步骤的指令。
此外,本发明还提供了一种计算机,包括存储有计算机程序的可读介质,所述程序包括用于执行上述基于地形的背风区识别方法和山脊背风区识别方法中的各种操作的指令。具体而言,所述程序可以包括用于执行图1-图3、图5和图7中所描述的各个步骤的指令。
1.一种基于地形的背风区识别方法,其特征在于,包括:
根据输入的指定点以及指定风向从地形数据提取经过所述指定点和所述指定风向的反方向的预定长度的二维剖面地形;
通过对所述二维剖面地形进行分析来搜索所述二维剖面地形上的多个点中的最高点和最低点;
基于所述最高点的海拔值、所述最低点的海拔值、以及所述指定点与所述最高点之间的水平距离计算与所述指定点相应的抛物线高度;
根据所述指定点的海拔值与所述抛物线高度之间的比较结果来确定所述指定点是否位于所述最高点的背风区内。
2.如权利要求1所述的方法,其特征在于,还包括:
遍历所述地形数据中的所有格点以确定是否存在海拔值为非浮点型的格点;
如果存在海拔值为非浮点型的格点,则通过利用该格点周围的预定数量格点的海拔值进行反距离插值运算来将该格点的海拔值计算为浮点型。
3.如权利要求1所述的方法,其特征在于,提取经过所述指定点和所述指定风向的反方向的预定长度的二维剖面地形的步骤包括:
按照预定步长确定以所述指定点为起始点的在所述指定风向的反方向上的所述多个点;
计算所述多个点中的每个点的海拔值进而获得所述二维剖面地形。
4.如权利要求3所述的方法,其特征在于,计算所述多个点中的每个点的海拔值进而获得所述二维剖面地形的步骤包括:
从所述地形数据获得与所述每个点最近的预定数量格点的海拔值;
通过使用所述预定数量格点的海拔值进行反距离插值运算来计算所述每个点的海拔值。
5.如权利要求4所述的方法,其特征在于,按照预定步长确定以所述指定点为起始点的在所述指定风向的反方向上的多个点的步骤包括:
根据以下等式分别计算所述指定点的与所述地形数据的高程数组相关的行号ls和列号cs:ls=(ys-yo)/q,cs=(xs-xo)/q,其中,xs和ys分别为所述指定点的x坐标和y坐标,xo和yo分别为所述地形数据的原点的x坐标和y坐标,q为所述地形数据中的格网单元的格距;
根据以下等式分别计算所述多个点中的第i个点的与所述高程数组相关的行号li和列号ci:li=ls p×i×cosθ,ci=cs p×i×sinθ,其中,θ为所述指定风向,p表示所述预定步长,i为整数。
6.如权利要求5所述的方法,其特征在于,从所述地形数据获得与所述每个点最近的预定数量格点的海拔值的步骤包括:
对第i个点的行号li和列号ci分别向上和向下取整以确定与第i个点最近的四个格点在所述高程数组中的行号和列号;
根据所述四个格点在所述高程数组中的行号和列号从所述高程数组中分别获得所述四个格点的海拔值,其中,所述四个格点是所述预定数量格点。
7.如权利要求1所述的方法,其特征在于,计算与所述指定点相应的抛物线高度的步骤包括:
根据所述最高点的海拔值与所述最低点的海拔值之间的差h、所述指定点与所述最高点之间的水平距离x、以及风速v,利用基于统计学方法确定的抛物线函数h=f(x,v,h)来计算与所述指定点相应的抛物线高度h。
8.如权利要求7所述的方法,其特征在于,确定所述指定点是否位于所述最高点的背风区内的步骤包括:
如果所述抛物线高度大于或等于所述指定点的海拔值,则确定所述指定点位于所述最高点的背风区内;
如果所述抛物线高度小于所述指定点的海拔值,则确定所述指定点位于所述最高点的背风区外。
9.如权利要求1所述的方法,其特征在于,所述最低点是所述多个点中的以所述最高点为中心的预定范围内的最低点。
10.一种基于地形的背风区识别设备,其特征在于,包括:
提取单元,被配置为根据输入的指定点以及指定风向从地形数据提取经过所述指定点和所述指定风向的反方向的预定长度的二维剖面地形;
背风区识别单元,被配置为:通过对所述二维剖面地形进行分析来搜索所述二维剖面地形上的多个点中的最高点和最低点,基于所述最高点的海拔值、所述最低点的海拔值、以及所述指定点与所述最高点之间的水平距离计算与所述指定点相应的抛物线高度,根据所述指定点的海拔值与所述抛物线高度之间的比较结果来确定所述指定点是否位于所述最高点的背风区内。
11.如权利要求9所述的设备,其特征在于,还包括:
数据预处理单元,被配置为:遍历所述地形数据中的所有格点以确定是否存在海拔值为非浮点型的格点,如果存在海拔值为非浮点型的格点,则通过利用该格点周围的预定数量格点的海拔值进行反距离插值运算来将该格点的海拔值计算为浮点型。
12.如权利要求9所述的设备,其特征在于,提取单元被配置为通过以下操作提取经过所述指定点和所述指定风向的反方向的预定长度的二维剖面地形:
按照预定步长确定以所述指定点为起始点的在所述指定风向的反方向上的所述多个点;
计算所述多个点中的每个点的海拔值进而获得所述二维剖面地形。
13.如权利要求12所述的设备,其特征在于,提取单元被配置为通过以下操作计算所述一系列点中的每个点的海拔值:
从所述地形数据获得与所述每个点最近的预定数量格点的海拔值;
通过使用所述预定数量格点的海拔值进行反距离插值运算来计算所述每个点的海拔值。
14.如权利要求13所述的设备,其特征在于,提取单元被配置为通过以下操作确定所述多个点:
根据以下等式分别计算所述指定点的与所述地形数据的高程数组相关的行号ls和列号cs:ls=(ys-yo)/q,cs=(xs-xo)/q,其中,xs和ys分别为所述指定点的x坐标和y坐标,xo和yo分别为所述地形数据的原点的x坐标和y坐标,q为所述地形数据中的格网单元的格距;
根据以下等式分别计算所述多个点中的第i个点的与所述高程数组相关的行号li和列号ci:li=ls p×i×cosθ,ci=cs p×i×sinθ,其中,θ为所述指定风向,p表示所述预定步长,i为整数。
15.如权利要求14所述的设备,其特征在于,提取单元被配置为通过以下操作获得所述预定数量格点的海拔值:
对第i个点的行号li和列号ci分别向上和向下取整以确定与第i个点最近的四个格点在所述高程数组中的行号和列号;
根据所述四个格点在所述高程数组中的行号和列号从所述高程数组中分别获得所述四个格点的海拔值,其中,所述四个格点是所述预定数量格点。
16.如权利要求10所述的设备,其特征在于,背风区识别单元被配置为通过以下操作计算所述抛物线高度:根据所述最高点的海拔值与所述最低点的海拔值之间的差h、所述指定点与所述最高点之间的水平距离x、以及风速v,利用基于统计学方法确定的抛物线函数h=f(x,v,h)来计算与所述指定点相应的抛物线高度h。
17.如权利要求13所述的设备,其特征在于,背风区识别单元被配置为通过以下操作确定所述指定点是否位于所述最高点的背风区内包括:
如果所述抛物线高度大于或等于所述指定点的海拔值,则确定所述指定点位于所述最高点的背风区内;
如果所述抛物线高度小于所述指定点的海拔值,则确定所述指定点位于所述最高点的背风区外。
18.如权利要求10所述的设备,其特征在于,所述最低点是所述多个点中的以所述最高点为中心的预定范围内的最低点。
19.一种山脊背风区识别方法,其特征在于,包括:
分别以地形数据中的多个山脊点中的每一个山脊点为起始点沿指定风向从所述地形数据提取预定长度的二维剖面地形以获得多个二维剖面地形;
针对所述多个二维剖面地形中的每一个二维剖面地形,搜索每一个二维剖面地形上按预定步长排列的多个点中的最低点;
针对所述每一个二维剖面地形,利用基于统计学方法确定的抛物线函数h=f(x,v,h)来确定二维剖面地形与所述抛物线函数之间的交点,以确定相应山脊点的背风区范围,其中,h为二维剖面地形上的相应山脊点的海拔值与最低点的海拔值之间的差,x为二维剖面地形上的指定点与该山脊点之间的水平距离,v表示风速。
20.一种山脊背风区识别设备,其特征在于,包括:
提取单元,被配置为分别以地形数据中的多个山脊点中的每一个山脊点为起始点沿指定风向从所述地形数据提取预定长度的二维剖面地形以获得多个二维剖面地形;
山脊背风区识别单元,被配置为:
针对所述多个二维剖面地形中的每一个二维剖面地形,搜索每一个二维剖面地形上按预定步长排列的多个点中的最低点;
针对所述每一个二维剖面地形,利用基于统计学方法确定的抛物线函数h=f(x,v,h)来确定二维剖面地形与所述抛物线函数之间的交点,以确定相应山脊点的背风区范围,其中,h为二维剖面地形上的相应山脊点的海拔值与最低点的海拔值之间的差,x为二维剖面地形上的指定点与该山脊点之间的水平距离,v表示风速。
21.一种计算机可读存储介质,存储有程序,其特征在于,所述程序包括用于执行如权利要求1-9和19中任一项所述方法的指令。
22.一种计算机,包括存储有计算机程序的可读介质,其特征在于,所述程序包括用于执行如权利要求1-9和19中任一项所述方法的指令。
技术总结