本篇博客参考:
1)DEM generation from laser scanner data using adaptive TIN models
2)Filtering airborne LiDAR data by embedding smoothness-constrained segmentation in progressive TIN densification
其中m,为最大建筑尺寸,ceil(x)函数代表向上取整,即找到不小于x的最小整数。
根据整个数据集划分为格网之后,每个网格中的最低点被设置为“种子点”(初始地面点)。除此之外,“bounding box”的四个角点也被设置为“种子点”(其高程值等同于距离最近的种子点高程),如下图所示:
注:把“bounding box”的四个角点也被设置为“种子点”是为了保证所有点都处于TIN模型内部。
随后,根据选择好的种子点来构建初始TIN模型来表示初始地表,剩余的点被默认标记为地物。
在每次迭代过程中通过预先设置的阈值参数,来对“潜在点(potential point)”进行逐点判断。详细步骤如下所述:
1)确定潜在点(potential point)的所在位置PPotential(xp,yp,zp),找到其所在的三角形Ttriangle,即PPotential在三角形内部或边缘上或者在顶点上。
2)计算三角平面的坡度Striangle,如果Striangle小于预先设置的最大地形角度t,则进行第3)步,若大于则进行第4)步。
3)如下图所示,计算的两个参数,包括:三角面Ttriangle与待分类点PPotential和最近的三角网顶点之间连线之间的角度,表示为Aangle,以及待分类点PPotential和三角面Ttriangle之间的距离,表示为Ddistance。如果PPotential所对应的上述两个参数Aangle小于最大角度θ,Ddistance小于最大距离d则认为待分类点PPotential是地面点,否则认为是地物点。随后,进行下一个点的判断。
4)如果三角平面的坡度Striangle大于预先设置的最大地形角度t则需要设置PPotential的镜像点。先找到PPotential所在三角形
Ttriangle中高程值最大的顶点Pvertex(xv,yv,zv),然后通过下式计算PPotential的镜像点:
其中(xmirror,ymirror,zmirror)是所求镜像点的三维坐标。
接着对镜像点使用步骤3)的方式来进行计算Aangle与Ddistance两个参数进行判断,来决定PPotential的类别。
5)在结束每次迭代之后,新检测出的地面点通过下述步骤加入TIN模型中。
上述五个步骤就是PTD算法的主要实现方法了,PTD算法已经被广泛应用在各种类型的景观(地形)中,且取得不错的效果。但是需要注意的是,虽然在算法中采用了设置“镜像点”的方式来避免出现cutting-off的问题(断裂线分布区域),其还是对陡峭地形非常敏感。