Files
courses/2026_Lidar_and_Photogrammetry_Systems/lab1/lab1.py
T
2026-04-15 23:07:55 +02:00

49 lines
1.1 KiB
Python

import json
import laspy
import numpy as np
import open3d as o3d
def density(data):
min_x, max_x = np.min(data.x), np.max(data.x)
min_y, max_y = np.min(data.y), np.max(data.y)
area = (max_x - min_x) * (max_y - min_y)
n_points = len(data.x)
density = n_points / area
return density
def data2np(data):
points = np.vstack((data.x, data.y, data.z)).transpose()
return points
def plot_o3d(points):
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(points)
o3d.visualization.draw_geometries([pcd])
def main():
data_golm = laspy.read("2012/golm_364806_fp.las")
data_palais = laspy.read("2012/neuespalais362808_fp.las")
density_golm = density(data_golm)
density_palais = density(data_palais)
output_density = {
"golm": density_golm,
"palais": density_palais
}
with open("density.json", "w") as f:
json.dump(output_density, f, indent=4)
#points_golm = data2np(data_golm)
#points_palais = data2np(data_golm)
#plot_o3d(points_golm)
#plot_o3d(points_palais)
if __name__ == "__main__":
main()