CN107843228A - 多层扫描时序空间轨迹面积的获取方法 - Google Patents
多层扫描时序空间轨迹面积的获取方法 Download PDFInfo
- Publication number
- CN107843228A CN107843228A CN201710942119.4A CN201710942119A CN107843228A CN 107843228 A CN107843228 A CN 107843228A CN 201710942119 A CN201710942119 A CN 201710942119A CN 107843228 A CN107843228 A CN 107843228A
- Authority
- CN
- China
- Prior art keywords
- area
- grid
- array
- buffering area
- line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B21/00—Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant
- G01B21/28—Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring areas
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Guiding Agricultural Machines (AREA)
Abstract
本发明公开了一种多层扫描时序空间轨迹面积的获取方法,包括:对农机作业轨迹上运行轨迹点进行高斯‑克吕格投影;获取运行轨迹点坐标的第一外接矩形;针对每相邻的两个运行轨迹点的坐标,分别生成线缓冲区;扫描每个线缓冲区并栅格化,计算每个线缓冲区所覆盖的栅格面积之和,得到第一作业面积;再次扫描每个线缓冲区,对每个线缓冲区中未完全覆盖的栅格重新栅格化,计算每个线缓冲区所覆盖的栅格的面积之和,得到第二作业面积;第二作业面积与第一作业面积的差值的绝对值小于设定误差阈值时,将第二作业面积作为农机的实际作业面积。本发明具有算法实现简单、时间复杂度和空间复杂度较低、能满足不同计算精度的需求、适应于在线并发计算需求。
Description
技术领域
本发明涉及农机作业领域,特别涉及一种多层扫描时序空间轨迹面积的获取方法。
背景技术
随着“互联网+”带动传统农业升级,在智能硬件驱动下,为传统农业机械配备基于GPS/北斗的集定位、作业统计、作业监控为主要功能的智能硬件终端,以提升农业机械化领域智能化、信息化已成为大势所趋。而其中,以农机空间作业轨迹为基础,计算农机作业面积又为核心功能需求。当前,基于空间作业轨迹的算法主要有距离法、矢量缓冲区算法和栅格缓冲区算法等。距离法采用距离测量算法,即已知农机的作业幅宽为M,计算农机行走的轨迹长度乘以作业幅宽即得到实际作业面积,算法较为简单,计算效率高,内存占用少,但不适用农机有重叠作业的计算。矢量缓冲区算法主要采用基于线实体的缓冲区方法,其借鉴GIS中的缓冲区分析功能,对农机作业时的轨迹进行动态地缓冲区生成,并计算其实时面积。矢量方法计算精度较高,内存占用少,但原理复杂,不易实现,特别随着作业轨迹点的增多,运算量急剧增长,这样将会降低计算效率,难以满足实时并发计算需求。综上所述,无论哪种方法,在使用上都有一定的局限性。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种具有算法实现简单、时间复杂度和空间复杂度较低、能满足不同计算精度的需求、适应于在线并发计算需求的多层扫描时序空间轨迹面积的获取方法。
本发明解决其技术问题所采用的技术方案是:构造一种多层扫描时序空间轨迹面积的获取方法,包括如下步骤:
A)对连续运行的农机作业轨迹上所有的运行轨迹点在高斯平面直角坐标系进行高斯-克吕格投影,得到每个所述运行轨迹点在所述高斯平面直角坐标系下的坐标;
B)获取所述运行轨迹点在所述高斯平面直角坐标系下的坐标的第一外接矩形,并得到所述第一外接矩形的最左下角坐标Go(xo,yo)和最右上角坐标Ge(xe,ye);xo为所述第一外接矩形的最左下角的横坐标,yo为所述第一外接矩形的最左下角的纵坐标,xe为所述第一外接矩形的最右上角的横坐标,ye为所述第一外接矩形的最右上角的纵坐标;
C)针对所述农机作业轨迹中在时序上每相邻的两个运行轨迹点的坐标,分别生成对应的线缓冲区;
D)扫描每个所述线缓冲区对其进行栅格化,计算每个所述线缓冲区所覆盖的栅格的面积之和,得到农机的第一作业面积;
E)再次扫描每个所述线缓冲区,对每个所述线缓冲区中未完全覆盖的栅格重新进行栅格化,缩小其栅格大小,重新计算每个所述线缓冲区所覆盖的栅格的面积之和,得到所述农机的第二作业面积;
F)判断所述农机的第二作业面积与所述农机的第一作业面积的差值的绝对值是否小于设定误差阈值,如是,将所述农机的第二作业面积作为所述农机的实际作业面积;否则,返回步骤E)。
在本发明所述的多层扫描时序空间轨迹面积的获取方法中,所述步骤A)进一步包括:
A1)设连续运行的农机作业轨迹包含n个运行轨迹点P1,P2,......,Pn,所述运行轨迹点Pi的经纬度坐标为Pi(L,B),其中,L表示经度,B表示纬度,i=1,2,...,n,n为大于0的整数;
A2)将所有的所述运行轨迹点在所述高斯平面直角坐标系中进行高斯-克吕格投影,得到所述运行轨迹点在所述高斯平面直角坐标系下的坐标P′i(x,y),其中,x为高斯平面直角坐标横坐标,y为高斯平面直角坐标纵坐标,i=1,2,...,n。
在本发明所述的多层扫描时序空间轨迹面积的获取方法中,所述步骤C)进一步包括:
C1)按照时间顺序依次将相邻的两个所述运行轨迹点分别连接生成多个线段Li,其中,i=1,2,...,n-1;
C2)分别对每个所述线段Li采用折线凸角圆弧生成法生成对应的线缓冲区Bi,所述线缓冲区Bi的起点采用平头拟合,终止点采用半圆拟合,所述线缓冲区Bi的半径为农机的作业宽度W的1/2;
C3)将所述线缓冲区Bi的四个顶点连接起来形成封闭缓冲区域lvi1-vi2lvi2- vi3avi3-vi4lvi4-vi1,其中,vi1、vi2、vi3和vi4为分别线缓冲区Bi的第一顶点、第二顶点、第三顶点和第四顶点,lvi1-vi2表示第一顶点vi1至第二顶点vi2的直线段,lvi2-vi3表示第二顶点vi2至第三顶点vi3的直线段,avi3-vi4表示第三顶点vi3至第四顶点vi4的弧段,lvi4-vi1表示第四顶点vi4至第一顶点vi1的弧段。
在本发明所述的多层扫描时序空间轨迹面积的获取方法中,所述步骤D)进一步包括:
D1)获取所述第一外接矩形的长度与宽度,初始化二维数组Array[row,col]=0,所述二维数组Array[row,col]中的每个数组单元对应运行轨迹点所覆盖区域的栅格,其中,row=|xe-xo|*c/W+1,col=|ye-yo|*c/W+1,row为行,col为列,c为农机作业宽度所覆盖的栅格数,W为农机的作业宽度,xo为所述第一外接矩形的最左下角的横坐标,yo为所述第一外接矩形的最左下角的纵坐标,xe为所述第一外接矩形的最右上角的横坐标,ye为所述第一外接矩形的最右上角的纵坐标;
D2)获取所述线缓冲区Bi的第二外接矩形,得到所述第二外接矩形的最左下角坐标Gio(xio,yio)和最右上角坐标Gie(xie,yie);xio为所述第二外接矩形的最左下角的横坐标,yio为所述第二外接矩形的最左下角的纵坐标,xie为所述第二外接矩形的最右下角的横坐标,yie为所述第二外接矩形的最右下角的纵坐标;
D3)确定所述线缓冲区Bi所覆盖的栅格,即子数组其中,0≤rio≤k≤rie≤row,0≤cio≤j≤cie≤col, xio为所述第二外接矩形的最左下角的横坐标,yio为所述第二外接矩形的最左下角的纵坐标,xie为所述第二外接矩形的最右下角的横坐标,yie为所述第二外接矩形的最右下角的纵坐标;
D4)对所述线缓冲区Bi所覆盖的栅格,即子数组Array[k,j]对应的栅格,采用射线法依次判断所述子数组Array[k,j]对应的每个栅格的四个顶点是否在所述线缓冲区Bi的内部,如果所述子数组Array[k,j]对应的当前栅格Cellkj的四个顶点都在所述线缓冲区Bi的内部,则令所述子数组Array[k,j]中对应所述当前栅格Cellkj的数组元素值为1;如果所述子数组Array[k,j]对应的当前栅格Cellkj的四个顶点都不在所述线缓冲区Bi的内部,令所述子数组Array[k,j]中对应所述当前栅格Cellkj的数组元素值为0;如果所述子数组Array[k,j]对应的当前栅格Cellkj的四个顶点中有一个、两个或三个在所述线缓冲区Bi的内部,令所述子数组Array[k,j]中对应所述当前栅格Cellkj的数组元素值为0.5;
D5)计算所有运行轨迹点所对应栅格的面积之和,即所述农机的第一作业面积其中,Ainc为所述农机的第一作业面积,inc为扫描次数,inc=0。
在本发明所述的多层扫描时序空间轨迹面积的获取方法中,所述步骤E)进一步包括:
E1)令所述扫描次数inc递增1,从所述线缓冲区Bi所覆盖的栅格中找到符合0<Array[k,j]<1条件的栅格,k为行,j为列,rio≤k≤rie,cio≤j≤cie,将所找到的栅格作为所述线缓冲区Bi未完全覆盖的栅格,缩小栅格大小对所述线缓冲区Bi未完全覆盖的栅格重新进行栅格化,即初始化栅格数组ArrayT[kt,jt]=0,其中,kt为行,jt为列,0≤kt≤inc*4,0≤jt≤inc*4,inc为扫描次数;
E2)针对所述栅格数组ArrayT[kt,jt]对应的栅格,采用射线法依次判断所述栅格数组ArrayT[kt,jt]对应的每个栅格的四个顶点是否在所述线缓冲区Bi的内部,如果所述栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的四个顶点都在所述线缓冲区Bi的内部,则令所述栅格数组ArrayT[kt,jt]中对应所述当前栅格Cellkjt的数组元素值为1;如果所述栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的四个顶点都不在所述线缓冲区Bi的内部,令所述栅格数组ArrayT[kt,jt]中对应所述当前栅格Cellkjt的数组元素值为0;如果所述栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的四个顶点中有一个、两个或三个在所述线缓冲区Bi的内部,令所述栅格数组ArrayT[kt,jt]中对应所述当前栅格Cellkjt的数组元素值为0.5;
E3)计算所述栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的面积并将所述Sk,j赋值给所述子数组Array[k,j],Sk,j为当前栅格的面积;
E4)计算所有运行轨迹点所对应的栅格面积之和,即所述农机的第二作业面积Ainc+1为所述农机的第二作业面积。
在本发明所述的多层扫描时序空间轨迹面积的获取方法中,所述c取值为W*2。
实施本发明的多层扫描时序空间轨迹面积的获取方法,具有以下有益效果:由于对运行轨迹点进行高斯-克吕格投影,得到每个运行轨迹点在高斯平面直角坐标系下的坐标;获取运行轨迹点在高斯平面直角坐标系下的坐标的第一外接矩形;针对农机作业轨迹中在时序上每相邻的两个运行轨迹点的坐标,分别生成对应的线缓冲区;扫描每个线缓冲区对其进行栅格化,计算每个线缓冲区所覆盖的栅格的面积之和,得到农机的第一作业面积;再次扫描每个线缓冲区,对每个线缓冲区中未完全覆盖的栅格重新进行栅格化,缩小其栅格大小,重新计算每个线缓冲区所覆盖的栅格的面积之和,得到农机的第二作业面积;当农机的第二作业面积与农机的第一作业面积的差值的绝对值小于设定误差阈值时,将农机的第二作业面积作为农机的实际作业面积,其无需进行线缓冲区合并计算,可以适用于轨迹交叉、叠置等特殊情况下面积统计,能根据应用精度要求进行不同次数扫描,因此本发明具有算法实现简单、时间复杂度和空间复杂度较低、能满足不同计算精度的需求、适应于在线并发计算需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明多层扫描时序空间轨迹面积的获取方法一个实施例中的流程图;
图2为所述实施例中对连续运行的农机作业轨迹上所有的运行轨迹点在高斯平面直角坐标系进行高斯-克吕格投影,得到每个运行轨迹点在高斯平面直角坐标系下的坐标的具体流程图;
图3为所述实施例中针对农机作业轨迹中在时序上每相邻的两个运行轨迹点的坐标,分别生成对应的线缓冲区的具体流程图;
图4为所述实施例中线缓冲区Bi的示意图;
图5为所述实施例中计算农机的第一作业面积的具体流程图;
图6为所述实施例中计算农机的第二作业面积的具体流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明多层扫描时序空间轨迹面积的获取方法实施例中,其多层扫描时序空间轨迹面积的获取方法的结构示意图如图1所示。图1中,该多层扫描时序空间轨迹面积的获取方法包括如下步骤:
步骤S01对连续运行的农机作业轨迹上所有的运行轨迹点在高斯平面直角坐标系进行高斯-克吕格投影,得到每个运行轨迹点在高斯平面直角坐标系下的坐标:本步骤中,对连续运行的农机作业轨迹上所有的运行轨迹点在高斯平面直角坐标系进行高斯-克吕格投影,并进行坐标转换,得到每个运行轨迹点在高斯平面直角坐标系下的坐标。
步骤S02获取运行轨迹点在高斯平面直角坐标系下的坐标的第一外接矩形,并得到第一外接矩形的最左下角坐标Go(xo,yo)和最右上角坐标Ge(xe,ye):本步骤中,获取运行轨迹点在高斯平面直角坐标系下的坐标的第一外接矩形,并得到第一外接矩形的最左下角坐标Go(xo,yo)和最右上角坐标Ge(xe,ye),xo为第一外接矩形的最左下角的横坐标,yo为第一外接矩形的最左下角的纵坐标,xe为第一外接矩形的最右上角的横坐标,ye为第一外接矩形的最右上角的纵坐标。
步骤S03针对农机作业轨迹中在时序上每相邻的两个运行轨迹点的坐标,分别生成对应的线缓冲区:本步骤中,针对农机作业轨迹中在时序上每相邻的两个运行轨迹点的坐标,分别生成对应的线缓冲区。
步骤S04扫描每个线缓冲区对其进行栅格化,计算每个线缓冲区所覆盖的栅格的面积之和,得到农机的第一作业面积:本步骤中,扫描每个线缓冲区对其进行栅格化,计算每个线缓冲区所覆盖的栅格的面积之和,得到农机的第一作业面积Ainc。
步骤S05再次扫描每个线缓冲区,对每个线缓冲区中未完全覆盖的栅格重新进行栅格化,缩小其栅格大小,重新计算每个线缓冲区所覆盖的栅格的面积之和,得到农机的第二作业面积:本步骤中,再次扫描每个线缓冲区,对每个线缓冲区中未完全覆盖的栅格(一般是位于线缓冲区边缘位置的栅格)重新进行栅格化,缩小其栅格大小,重新计算每个线缓冲区所覆盖的栅格的面积之和,得到农机的第二作业面积Ainc+1。
步骤S06判断农机的第二作业面积与农机的第一作业面积的差值的绝对值是否小于设定误差阈值:本步骤中,判断农机的第二作业面积与农机的第一作业面积的差值的绝对值Δinc=|Ainc+1-Ainc|是否小于设定误差阈值,即判断Δinc<δ,如果判断的结果为是,则执行步骤S07;否则,返回步骤S05。
步骤S07将农机的第二作业面积作为农机的实际作业面积:如果上述步骤S06的判断结果为是,则执行本步骤。本步骤中,将农机的第二作业面积Ainc+1作为农机的实际作业面积。本发明无需进行线缓冲区合并计算,可以适用于轨迹交叉、叠置等特殊情况下面积统计,能根据应用精度要求进行不同次数扫描,因此本发明具有算法实现简单、时间复杂度和空间复杂度较低、能满足不同计算精度的需求、适应于在线并发计算需求。
对于本实施例而言,上述步骤S01还可进一步细化,其细化后的流程图如图2所示。图2中,上述步骤S01进一步包括:
步骤S11设连续运行的农机作业轨迹包含n个运行轨迹点P1,P2,......,Pn,运行轨迹点Pi的经纬度坐标为Pi(L,B):本步骤中,设连续运行的农机作业轨迹包含n个运行轨迹点(即时序空间运行轨迹点),P1,P2,......,Pn,运行轨迹点Pi的经纬度坐标为Pi(L,B),其中,L表示经度,B表示纬度,i=1,2,...,n,n为大于0的整数。
步骤S12将所有的运行轨迹点在高斯平面直角坐标系中进行高斯-克吕格投影,得到运行轨迹点在高斯平面直角坐标系下的坐标P′i(x,y):本步骤中,将所有的运行轨迹点在高斯平面直角坐标系中进行高斯-克吕格投影,得到运行轨迹点在高斯平面直角坐标系下的坐标P′i(x,y),其中,x为高斯平面直角坐标横坐标,y为高斯平面直角坐标纵坐标,i=1,2,...,n。
对于本实施例而言,上述步骤S03还可进一步细化,其细化后的流程图如图3所示。图3中,上述步骤S03进一步包括:
步骤S31按照时间顺序依次将相邻的两个运行轨迹点分别连接生成多个线段Li:本步骤中,按照时间顺序依次将相邻的两个运行轨迹点连接生成多个线段Li,i=1,2,...,n-1;即P′i与P′i+1连接生成线段Li,最终生成线段L1,L2,......,Ln-1。
步骤S32分别对每个线段Li采用折线凸角圆弧生成法生成对应的线缓冲区Bi,线缓冲区Bi的起点采用平头拟合,终止点采用半圆拟合,线缓冲区Bi的半径为农机的作业宽度W的1/2:本步骤中,分别对每个线段Li(i=1,2,...,n-1)采用折线凸角圆弧生成法生成对应的线缓冲区Bi,线缓冲区Bi的起点采用平头拟合,终止点采用半圆拟合,线缓冲区Bi的半径为农机的作业宽度W的1/2。线缓冲区Bi的示意图如图4所示。
步骤S33将线缓冲区Bi的四个顶点连接起来形成封闭缓冲区域lvi1-vi2lvi2- vi3avi3-vi4lvi4-vi1:本步骤中,将线缓冲区Bi的四个顶点之间用直线或弧线连接起来,形成封闭缓冲区域lvi1-vi2lvi2-vi3avi3-vi4lvi4-vi1,其中,vi1、vi2、vi3和vi4为分别线缓冲区Bi的第一顶点、第二顶点、第三顶点和第四顶点,lvi1-vi2表示第一顶点vi1至第二顶点vi2的直线段,lvi2-vi3表示第二顶点vi2至第三顶点vi3的直线段,avi3-vi4表示第三顶点vi3至第四顶点vi4的弧段,lvi4-vi1表示第四顶点vi4至第一顶点vi1的弧段。
对于本实施例而言,上述步骤S04还可进一步细化,其细化后的流程图如图5所示。图5中,上述步骤S04进一步包括:
步骤S41获取第一外接矩形的长度与宽度,初始化二维数组Array[row,col]=0,二维数组中的每个数组单元对应运行轨迹点所覆盖区域的栅格:本步骤中,获取第一外接矩形的长度与宽度,初始化二维数组Array[row,col]=0,二维数组中的每个数组单元对应运行轨迹点所覆盖区域的栅格,其中,row=|xe-xo|*c/W+1,col=|ye-yo|*c/W+1,row为行,col为列,c为农机作业宽度所覆盖的栅格数,W为农机的作业宽度,xo为第一外接矩形的最左下角的横坐标,yo为第一外接矩形的最左下角的纵坐标,xe为第一外接矩形的最右上角的横坐标,ye为第一外接矩形的最右上角的纵坐标。c取值优选为W*2。
步骤S42获取线缓冲区Bi的第二外接矩形,得到第二外接矩形的最左下角坐标Gio(xio,yio)和最右上角坐标Gie(xie,yie):本步骤中,获取线缓冲区Bi的第二外接矩形,得到第二外接矩形的最左下角坐标Gio(xio,yio)和最右上角坐标Gie(xie,yie),xio为第二外接矩形的最左下角的横坐标,yio为第二外接矩形的最左下角的纵坐标,xie为第二外接矩形的最右下角的横坐标,yie为第二外接矩形的最右下角的纵坐标。
步骤S43确定线缓冲区Bi所覆盖的栅格,即子数组 本步骤中,确定线缓冲区Bi所覆盖的栅格,即子数组 其中,0≤rio≤k≤rie≤row,0≤cio≤j≤cie≤col, xio为第二外接矩形的最左下角的横坐标,yio为第二外接矩形的最左下角的纵坐标,xie为第二外接矩形的最右下角的横坐标,yie为第二外接矩形的最右下角的纵坐标。
步骤S44对线缓冲区Bi所覆盖的栅格,即子数组Array[k,j]对应的栅格,采用射线法依次判断子数组Array[k,j]对应的每个栅格的四个顶点是否在线缓冲区Bi的内部,如果子数组Array[k,j]对应的当前栅格Cellkj的四个顶点都在线缓冲区Bi的内部,则令子数组Array[k,j]中对应当前栅格Cellkj的数组元素值为1;如果子数组Array[k,j]对应的当前栅格Cellkj的四个顶点都不在线缓冲区Bi的内部,令子数组Array[k,j]中对应当前栅格Cellkj的数组元素值为0;如果子数组Array[k,j]对应的当前栅格Cellkj的四个顶点中有一个、两个或三个在线缓冲区Bi的内部,令子数组Array[k,j]中对应当前栅格Cellkj的数组元素值为0.5:本步骤中,对线缓冲区Bi所覆盖的栅格,即子数组Array[k,j]对应的栅格,采用射线法依次判断子数组Array[k,j]对应的每个栅格的四个顶点(c1,c2,c3,c4)是否在线缓冲区Bi的内部,如果子数组Array[k,j]对应的当前栅格Cellkj的四个顶点都在线缓冲区Bi的内部,则令子数组Array[k,j]中对应当前栅格Cellkj的数组元素值为1;如果子数组Array[k,j]对应的当前栅格Cellkj的四个顶点都不在线缓冲区Bi的内部,令子数组Array[k,j]中对应当前栅格Cellkj的数组元素值为0;如果子数组Array[k,j]对应的当前栅格Cellkj的四个顶点中有一个、两个或三个在线缓冲区Bi的内部,令子数组Array[k,j]中对应当前栅格Cellkj的数组元素值为0.5。
步骤S45计算所有运行轨迹点所对应栅格的面积之和,即农机的第一作业面积本步骤中,计算所有运行轨迹点所对应栅格的面积之和,即得到农机的第一作业面积其中,Ainc为所述农机的第一作业面积,inc为扫描次数,inc=0。
对于本实施例而言,上述步骤S05还可进一步细化,其细化后的流程图如图6所示。图6中,上述步骤S05进一步包括:
步骤S51令所扫描次数inc递增1,从线缓冲区Bi所覆盖的栅格中找到符合0<Array[k,j]<1条件的栅格,k为行,j为列,rio≤k≤rie,cio≤j≤cie,将所找到的栅格作为线缓冲区Bi未完全覆盖的栅格,缩小栅格大小对线缓冲区Bi未完全覆盖的栅格重新进行栅格化,即初始化栅格数组ArrayT[kt,jt]=0:本步骤中,令所扫描次数inc递增1,从线缓冲区Bi所覆盖的栅格中找到符合0<Array[k,j]<1条件的栅格,k为行,j为列,rio≤k≤rie,cio≤j≤cie,将所找到的栅格作为线缓冲区Bi未完全覆盖的栅格,缩小栅格大小对线缓冲区Bi未完全覆盖的栅格重新进行栅格化,即初始化栅格数组ArrayT[kt,jt]=0,其中,kt为行,jt为列,0≤kt≤inc*4,0≤jt≤inc*4,inc为扫描次数。
步骤S52针对栅格数组ArrayT[kt,jt]对应的栅格,采用射线法依次判断栅格数组ArrayT[kt,jt]对应的每个栅格的四个顶点是否在线缓冲区Bi的内部,如果栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的四个顶点都在线缓冲区Bi的内部,则令栅格数组ArrayT[kt,jt]中对应当前栅格Cellkjt的数组元素值为1;如果栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的四个顶点都不在线缓冲区Bi的内部,令栅格数组ArrayT[kt,jt]中对应当前栅格Cellkjt的数组元素值为0;如果栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的四个顶点中有一个、两个或三个在线缓冲区Bi的内部,令栅格数组ArrayT[kt,jt]中对应当前栅格Cellkjt的数组元素值为0.5:本步骤中,针对栅格数组ArrayT[kt,jt]对应的栅格,采用射线法依次判断栅格数组ArrayT[kt,jt]对应的每个栅格的四个顶点(c′1,c′2,c′3,c′4)是否在线缓冲区Bi的内部,如果栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的四个顶点都在线缓冲区Bi的内部,则令栅格数组ArrayT[kt,jt]中对应当前栅格Cellkjt的数组元素值为1;如果栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的四个顶点都不在线缓冲区Bi的内部,令栅格数组ArrayT[kt,jt]中对应当前栅格Cellkjt的数组元素值为0;如果栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的四个顶点中有一个、两个或三个在线缓冲区Bi的内部,令栅格数组ArrayT[kt,jt]中对应当前栅格Cellkjt的数组元素值为0.5。
步骤S53计算栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的面积并将Sk,j赋值给子数组Array[k,j]:本步骤中,计算栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的面积并将Sk,j赋值给子数组Array[k,j],Sk,j为当前栅格的面积。
步骤S54计算所有运行轨迹点所对应的栅格面积之和,即农机的第二作业面积Ainc+1为农机的第二作业面积:本步骤中,计算所有运行轨迹点所对应的栅格面积之和,即农机的第二作业面积Ainc+1为农机的第二作业面积。
总之,本发明通过对轨迹点坐标进行高斯-克吕格投影及坐标转换、时序相邻的两个运行轨迹点的坐标生成线缓冲区、线缓冲区初始扫描,线缓冲区重复扫描等步骤。本发明无需进行线缓冲区合并计算,可以适用于轨迹交叉、叠置等特殊情况下面积统计,能根据应用精度要求进行不同次数扫描,因此本发明具有算法实现简单、时间复杂度和空间复杂度较低、能满足不同计算精度的需求、适应于在线并发计算需求。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种多层扫描时序空间轨迹面积的获取方法,其特征在于,包括如下步骤:
A)对连续运行的农机作业轨迹上所有的运行轨迹点在高斯平面直角坐标系进行高斯-克吕格投影,得到每个所述运行轨迹点在所述高斯平面直角坐标系下的坐标;
B)获取所述运行轨迹点在所述高斯平面直角坐标系下的坐标的第一外接矩形,并得到所述第一外接矩形的最左下角坐标Go(xo,yo)和最右上角坐标Ge(xe,ye);xo为所述第一外接矩形的最左下角的横坐标,yo为所述第一外接矩形的最左下角的纵坐标,xe为所述第一外接矩形的最右上角的横坐标,ye为所述第一外接矩形的最右上角的纵坐标;
C)针对所述农机作业轨迹中在时序上每相邻的两个运行轨迹点的坐标,分别生成对应的线缓冲区;
D)扫描每个所述线缓冲区对其进行栅格化,计算每个所述线缓冲区所覆盖的栅格的面积之和,得到农机的第一作业面积;
E)再次扫描每个所述线缓冲区,对每个所述线缓冲区中未完全覆盖的栅格重新进行栅格化,缩小其栅格大小,重新计算每个所述线缓冲区所覆盖的栅格的面积之和,得到所述农机的第二作业面积;
F)判断所述农机的第二作业面积与所述农机的第一作业面积的差值的绝对值是否小于设定误差阈值,如是,将所述农机的第二作业面积作为所述农机的实际作业面积;否则,返回步骤E)。
2.根据权利要求1所述的多层扫描时序空间轨迹面积的获取方法,其特征在于,所述步骤A)进一步包括:
A1)设连续运行的农机作业轨迹包含n个运行轨迹点P1,P2,......,Pn,所述运行轨迹点Pi的经纬度坐标为Pi(L,B),其中,L表示经度,B表示纬度,i=1,2,...,n,n为大于0的整数;
A2)将所有的所述运行轨迹点在所述高斯平面直角坐标系中进行高斯-克吕格投影,得到所述运行轨迹点在所述高斯平面直角坐标系下的坐标P′i(x,y),其中,x为高斯平面直角坐标横坐标,y为高斯平面直角坐标纵坐标,i=1,2,...,n。
3.根据权利要求2所述的多层扫描时序空间轨迹面积的获取方法,其特征在于,所述步骤C)进一步包括:
C1)按照时间顺序依次将相邻的两个所述运行轨迹点分别连接生成多个线段Li,其中,i=1,2,...,n-1;
C2)分别对每个所述线段Li采用折线凸角圆弧生成法生成对应的线缓冲区Bi,所述线缓冲区Bi的起点采用平头拟合,终止点采用半圆拟合,所述线缓冲区Bi的半径为农机的作业宽度W的1/2;
C3)将所述线缓冲区Bi的四个顶点连接起来形成封闭缓冲区域lvi1-vi2lvi2-vi3avi3- vi4lvi4-vi1,其中,vi1、vi2、vi3和vi4为分别线缓冲区Bi的第一顶点、第二顶点、第三顶点和第四顶点,lvi1-vi2表示第一顶点vi1至第二顶点vi2的直线段,lvi2-vi3表示第二顶点vi2至第三顶点vi3的直线段,avi3-vi4表示第三顶点vi3至第四顶点vi4的弧段,lvi4-vi1表示第四顶点vi4至第一顶点vi1的弧段。
4.根据权利要求3所述的多层扫描时序空间轨迹面积的获取方法,其特征在于,所述步骤D)进一步包括:
D1)获取所述第一外接矩形的长度与宽度,初始化二维数组Array[row,col]=0,所述二维数组Array[row,col]中的每个数组单元对应运行轨迹点所覆盖区域的栅格,其中,row=|xe-xo|*c/W+1,col=|ye-yo|*c/W+1,row为行,col为列,c为农机作业宽度所覆盖的栅格数,W为农机的作业宽度,xo为所述第一外接矩形的最左下角的横坐标,yo为所述第一外接矩形的最左下角的纵坐标,xe为所述第一外接矩形的最右上角的横坐标,ye为所述第一外接矩形的最右上角的纵坐标;
D2)获取所述线缓冲区Bi的第二外接矩形,得到所述第二外接矩形的最左下角坐标Gio(xio,yio)和最右上角坐标Gie(xie,yie);xio为所述第二外接矩形的最左下角的横坐标,yio为所述第二外接矩形的最左下角的纵坐标,xie为所述第二外接矩形的最右下角的横坐标,yie为所述第二外接矩形的最右下角的纵坐标;
D3)确定所述线缓冲区Bi所覆盖的栅格,即子数组其中,0≤rio≤k≤rie≤row,0≤cio≤j≤cie≤col, xio为所述第二外接矩形的最左下角的横坐标,yio为所述第二外接矩形的最左下角的纵坐标,xie为所述第二外接矩形的最右下角的横坐标,yie为所述第二外接矩形的最右下角的纵坐标;
D4)对所述线缓冲区Bi所覆盖的栅格,即子数组Array[k,j]对应的栅格,采用射线法依次判断所述子数组Array[k,j]对应的每个栅格的四个顶点是否在所述线缓冲区Bi的内部,如果所述子数组Array[k,j]对应的当前栅格Cellkj的四个顶点都在所述线缓冲区Bi的内部,则令所述子数组Array[k,j]中对应所述当前栅格Cellkj的数组元素值为1;如果所述子数组Array[k,j]对应的当前栅格Cellkj的四个顶点都不在所述线缓冲区Bi的内部,令所述子数组Array[k,j]中对应所述当前栅格Cellkj的数组元素值为0;如果所述子数组Array[k,j]对应的当前栅格Cellkj的四个顶点中有一个、两个或三个在所述线缓冲区Bi的内部,令所述子数组Array[k,j]中对应所述当前栅格Cellkj的数组元素值为0.5;
D5)计算所有运行轨迹点所对应栅格的面积之和,即所述农机的第一作业面积其中,Ainc为所述农机的第一作业面积,inc为扫描次数,inc=0。
5.根据权利要求4所述的多层扫描时序空间轨迹面积的获取方法,其特征在于,所述步骤E)进一步包括:
E1)令所述扫描次数inc递增1,从所述线缓冲区Bi所覆盖的栅格中找到符合0<Array[k,j]<1条件的栅格,k为行,j为列,rio≤k≤rie,cio≤j≤cie,将所找到的栅格作为所述线缓冲区Bi未完全覆盖的栅格,缩小栅格大小对所述线缓冲区Bi未完全覆盖的栅格重新进行栅格化,即初始化栅格数组ArrayT[kt,jt]=0,其中,kt为行,jt为列,0≤kt≤inc*4,0≤jt≤inc*4,inc为扫描次数;
E2)针对所述栅格数组ArrayT[kt,jt]对应的栅格,采用射线法依次判断所述栅格数组ArrayT[kt,jt]对应的每个栅格的四个顶点是否在所述线缓冲区Bi的内部,如果所述栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的四个顶点都在所述线缓冲区Bi的内部,则令所述栅格数组ArrayT[kt,jt]中对应所述当前栅格Cellkjt的数组元素值为1;如果所述栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的四个顶点都不在所述线缓冲区Bi的内部,令所述栅格数组ArrayT[kt,jt]中对应所述当前栅格Cellkjt的数组元素值为0;如果所述栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的四个顶点中有一个、两个或三个在所述线缓冲区Bi的内部,令所述栅格数组ArrayT[kt,jt]中对应所述当前栅格Cellkjt的数组元素值为0.5;
E3)计算所述栅格数组ArrayT[kt,jt]对应的当前栅格Cellkjt的面积并将所述Sk,j赋值给所述子数组Array[k,j],Sk,j为当前栅格的面积;
E4)计算所有运行轨迹点所对应的栅格面积之和,即所述农机的第二作业面积Ainc+1为所述农机的第二作业面积。
6.根据权利要求4或5所述的多层扫描时序空间轨迹面积的获取方法,其特征在于,所述c取值为W*2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710942119.4A CN107843228B (zh) | 2017-10-11 | 2017-10-11 | 多层扫描时序空间轨迹面积的获取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710942119.4A CN107843228B (zh) | 2017-10-11 | 2017-10-11 | 多层扫描时序空间轨迹面积的获取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107843228A true CN107843228A (zh) | 2018-03-27 |
CN107843228B CN107843228B (zh) | 2019-09-17 |
Family
ID=61662179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710942119.4A Active CN107843228B (zh) | 2017-10-11 | 2017-10-11 | 多层扫描时序空间轨迹面积的获取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107843228B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776691A (zh) * | 2018-06-05 | 2018-11-09 | 四川凯普顿信息技术股份有限公司 | 一种空间图形聚集的优化方法与系统 |
CN112229349A (zh) * | 2020-09-23 | 2021-01-15 | 中科云谷科技有限公司 | 用于确定农业机械作业面积的方法、装置及农业机械 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070245522A1 (en) * | 2006-04-25 | 2007-10-25 | Rajesh Selvaraj | Quick-release hinge |
US20090018745A1 (en) * | 2006-12-31 | 2009-01-15 | Caterpillar Inc | System and method for operating a machine |
CN101846734A (zh) * | 2009-03-26 | 2010-09-29 | 中国农业大学 | 农用机械导航定位方法、系统及农用机械工控机 |
US8240240B2 (en) * | 2008-10-31 | 2012-08-14 | Cnh America Llc | Cylinder position sensor |
CN105913454A (zh) * | 2016-04-06 | 2016-08-31 | 东南大学 | 一种视频图像中运动目标的像素坐标轨迹预测方法 |
CN106017400A (zh) * | 2016-07-13 | 2016-10-12 | 哈尔滨工业大学 | 基于耕作轨迹等效矩形累加的农机作业面积测量方法 |
CN106778605A (zh) * | 2016-12-14 | 2017-05-31 | 武汉大学 | 导航数据辅助下的遥感影像道路网自动提取方法 |
CN106846926A (zh) * | 2017-04-13 | 2017-06-13 | 电子科技大学 | 一种禁飞区无人机预警方法 |
-
2017
- 2017-10-11 CN CN201710942119.4A patent/CN107843228B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070245522A1 (en) * | 2006-04-25 | 2007-10-25 | Rajesh Selvaraj | Quick-release hinge |
US20090018745A1 (en) * | 2006-12-31 | 2009-01-15 | Caterpillar Inc | System and method for operating a machine |
US8240240B2 (en) * | 2008-10-31 | 2012-08-14 | Cnh America Llc | Cylinder position sensor |
CN101846734A (zh) * | 2009-03-26 | 2010-09-29 | 中国农业大学 | 农用机械导航定位方法、系统及农用机械工控机 |
CN105913454A (zh) * | 2016-04-06 | 2016-08-31 | 东南大学 | 一种视频图像中运动目标的像素坐标轨迹预测方法 |
CN106017400A (zh) * | 2016-07-13 | 2016-10-12 | 哈尔滨工业大学 | 基于耕作轨迹等效矩形累加的农机作业面积测量方法 |
CN106778605A (zh) * | 2016-12-14 | 2017-05-31 | 武汉大学 | 导航数据辅助下的遥感影像道路网自动提取方法 |
CN106846926A (zh) * | 2017-04-13 | 2017-06-13 | 电子科技大学 | 一种禁飞区无人机预警方法 |
Non-Patent Citations (2)
Title |
---|
刘卉,孟志军,王培,魏学礼,韩宇: "基于农机空间轨迹的作业面积的缓冲区算法", 《农业工程学报》 * |
王培,孟志军,尹彦鑫,付卫强,陈竞平,魏学礼: "基于农机空间运行轨迹的作业状态自动识别试验", 《农业工程学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776691A (zh) * | 2018-06-05 | 2018-11-09 | 四川凯普顿信息技术股份有限公司 | 一种空间图形聚集的优化方法与系统 |
CN112229349A (zh) * | 2020-09-23 | 2021-01-15 | 中科云谷科技有限公司 | 用于确定农业机械作业面积的方法、装置及农业机械 |
CN112229349B (zh) * | 2020-09-23 | 2022-05-06 | 中科云谷科技有限公司 | 用于确定农业机械作业面积的方法、装置及农业机械 |
Also Published As
Publication number | Publication date |
---|---|
CN107843228B (zh) | 2019-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101698303B (zh) | 一种三维激光和单目视觉间的自动标定方法 | |
CN105160702B (zh) | 基于LiDAR点云辅助的立体影像密集匹配方法及系统 | |
CN107091642B (zh) | 一种基于异平面锚节点映射及栅格化纠偏的室内定位方法 | |
WO2019154119A1 (zh) | 基于激光测距传感器的移动机器人的地图创建方法 | |
CN104408689A (zh) | 基于全景影像的街景面片优化方法 | |
CN107808386A (zh) | 一种基于图像语义分割的海天线检测方法 | |
CN113409459B (zh) | 高精地图的生产方法、装置、设备和计算机存储介质 | |
Li et al. | Joint semantic-geometric learning for polygonal building segmentation | |
CN103366006B (zh) | 一种基于三维激光点云建立地理空间索引的方法 | |
CN107843228B (zh) | 多层扫描时序空间轨迹面积的获取方法 | |
CN111540005A (zh) | 基于二维栅格地图的回环检测方法 | |
CN103310443A (zh) | 高分辨率遥感影像快速处理方法及系统 | |
CN108253925A (zh) | 一种基于点云剖面的隧道变形监测方法、设备及存储设备 | |
CN105404781A (zh) | 一种基于线段缓冲区融合的缓冲区生成算法方法 | |
CN104574449A (zh) | 基于dem的投影面积计算方法 | |
CN104316907A (zh) | 一种相控阵雷达空域交错波位编排的方法 | |
CN113791617A (zh) | 一种基于消防机器人物理尺寸的全局路径规划方法 | |
CN107767439A (zh) | 三维立体金属广告字模型的生成方法 | |
CN109410183A (zh) | 基于点云数据的平面提取方法、系统、装置及存储介质 | |
CN102663814A (zh) | 利用二维图像生成三维几何模型的自动建模方法 | |
CN101894391B (zh) | 智能无纸卡通制作方法 | |
CN106339985B (zh) | 一种从矢量房屋数据中选取镶嵌线对航空影像镶嵌的方法 | |
CN104183009A (zh) | 一种基于场景光照图的大场景非直接光照算法 | |
CN111581701B (zh) | 一种基于bim的光伏电站自动化布置方法 | |
CN104112293B (zh) | 一种用于隧道环境的射线追踪加速方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |