Files
Projekt-Visualisierung/cloudcompare_workflow.py
2026-05-07 17:18:24 +02:00

55 lines
1.6 KiB
Python

#-------------------------------------------------------------------------
# automatischer Workflow für die Vorverarbeitung einer las/laz-Datei mit CloudCompare
#
# Arbeitsschritte:
# 1. Subsample - Punktdichte verringern
# 2. SOR - Statistical Outlier Removal - Ausreißer eliminieren
# 3. NOISE FILTER - Isolierte Punkte/Inseln entfernen
#
# zur Benutzung muss die Variable "cloudComprePath" korrekt gesetzt werden!
#
# Die Ausgabedatei wird in dem Verzeichnis gespeichert, in dem sich dieses Skript befindet!
#-------------------------------------------------------------------------
import subprocess
from tkinter import Tk
from tkinter.filedialog import askopenfilename
# die Punktwolken Datei, die verarbeitet wird bestimmen
Tk().withdraw()
filename = askopenfilename()
print("Datei: " + filename)
# Name der Ausgabedatei
outname = filename.rsplit('/', 1)[-1].rsplit('.', 1)[0] + "_processed.laz"
outname = outname.replace(" ", "_")
# Wo ist CloudCompare auf diesem Rechner gespeichert?
cloudComprePath = "C:\Program Files\CloudCompare\CloudCompare.exe"
#----- Variablen für die Verarbeitungstools -----
# minimale Distanz zwischen zwei Punkten (in Meter)
subSampleDistance = "0.01"
# Ausreißer eliminieren - Anzahl der betrachteten Nachbarpunkte
sorPointCount = "20"
# Radius
noiseRadius = "0.02"
# Verarbeitungsbefehl
command = [
cloudComprePath,
"-O", filename,
"-SS", "SPATIAL", subSampleDistance,
"-SOR", sorPointCount, "2",
"-NOISE", "RADIUS", noiseRadius, "REL", "1.0", "RIP",
"-C_EXPORT_FMT", "LAS",
"-SAVE_CLOUDS", "FILE", outname
]
subprocess.run(command)
print("Verarbeitung fertig - Datei exportiert")
input("")