代码拉取完成,页面将自动刷新
"""
不规则三角形网(TIN)是载体表面的点数据集内相互连接的点组成的三角面的向量表示。
和栅格数据不同之处在于,算法决定了哪些是用于精确表示地形必不可少的点,根据给定区域
存储一定数量的单元并且将相邻单元格的重复高程值更加高效地存储为一个多边形。
注意:该脚本需要若干分钟才能执行完!!!!
"""
from laspy.file import File
import voronoi
import pickle
import os
import time
import math
import numpy
import shapefile
sourec = "Grid/lidar/clippedLAS.las"
output = "Grid/lidar/mesh"
# 三角形数据文件归档
archive = "Grid/lidar/triangles.p"
# Pyshp文件归档
pyshp = "Grid/lidar/mesh_pyshp.p"
class Point:
""" Point 类需要调用的voronoi模块"""
def __init__(self, x, y):
self.px = x
self.py = y
def x(self):
return self.px
def y(self):
return self.py
# 三角形数组保存的三点索引元组用于点集查询
# voronoi 模块载入归档文件创建三角面
triangles = None
if os.path.exists(archive): # 如果path存在,返回True;如果path不存在,返回False
print("Loading trangle archive...")
f = open(archive, "rb")
triangles = pickle.load(f)
f.close()
# 打开LIDAR的LAS文件
las = File(sourec, mode="r")
else:
# 打开LIDAR的LAS文件
las = File(sourec, mode="r")
points = []
print("Assembling points...")
# 从LAS文件中读取点集
for x, y in numpy.nditer((las.x, las.y)):
points.append(Point(x, y))
print("Composing triangles...")
# Delaunay 三角剖分
triangles = voronoi.computeDelaunayTriangulation(points)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。