2 Star 4 Fork 3

汉塞大叔/Geospatial_Analysis_By_Python

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
8.4 创建不规则三角网络(TIN)??.py 1.73 KB
一键复制 编辑 原始数据 按行查看 历史
汉塞大叔 提交于 2021-01-20 21:22 . 上传py
"""
不规则三角形网(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)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/fengfeng233/geospatial_-analysis_-by_-python.git
git@gitee.com:fengfeng233/geospatial_-analysis_-by_-python.git
fengfeng233
geospatial_-analysis_-by_-python
Geospatial_Analysis_By_Python
master

搜索帮助