Skip to content

Commit d46f98d

Browse files
volayaalexbruy
authored andcommittedJun 2, 2016
[processing] lidar tools update
changes by Martin Isenburg
1 parent 30813f9 commit d46f98d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1019
-116
lines changed
 

‎python/plugins/processing/algs/lidar/LidarToolsAlgorithmProvider.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
Copyright : (C) 2012 by Victor Olaya
99
Email : volayaf at gmail dot com
1010
---------------------
11-
Date : April, October 2014
12-
Copyright : (C) 2014 by Martin Isenburg
11+
Date : April, October 2014 and May 2016
12+
Copyright : (C) 2014 - 2016 by Martin Isenburg
1313
Email : martin near rapidlasso point com
1414
---------------------
1515
Date : June 2014
@@ -24,7 +24,6 @@
2424
* *
2525
***************************************************************************
2626
"""
27-
2827
__author__ = 'Victor Olaya'
2928
__date__ = 'August 2012'
3029
__copyright__ = '(C) 2012, Victor Olaya'
@@ -76,6 +75,11 @@
7675
from .lastools.lascanopy import lascanopy
7776
from .lastools.lasoverage import lasoverage
7877
from .lastools.lasoverlap import lasoverlap
78+
from .lastools.laspublish import laspublish
79+
from .lastools.lasground_new import lasground_new
80+
from .lastools.lascontrol import lascontrol
81+
from .lastools.lasdiff import lasdiff
82+
from .lastools.lasheight_classify import lasheight_classify
7983

8084
from .lastools.lastilePro import lastilePro
8185
from .lastools.lasgroundPro import lasgroundPro
@@ -104,6 +108,9 @@
104108
from .lastools.lasmergePro import lasmergePro
105109
from .lastools.lasviewPro import lasviewPro
106110
from .lastools.lasoverlapPro import lasoverlapPro
111+
from .lastools.laspublishPro import laspublishPro
112+
from .lastools.lasgroundPro_new import lasgroundPro_new
113+
from .lastools.lasheightPro_classify import lasheightPro_classify
107114

108115
from .lastools.flightlinesToDTMandDSM import flightlinesToDTMandDSM
109116
from .lastools.flightlinesToCHM import flightlinesToCHM
@@ -156,13 +163,14 @@ def _loadAlgorithms(self):
156163
lasindex(), lasthin(), lassort(), lascanopy(), lasmerge(),
157164
las2shp(), shp2las(), lasnoise(), lassplit(), las2las_filter(),
158165
las2las_project(), las2las_transform(), lasoverage(), lasoverlap(),
159-
lasquery()
166+
lasquery(), laspublish(), lasground_new(), lascontrol(), lasdiff(),
167+
lasheight_classify()
160168
]
161169
else:
162170
lastools = [
163171
lasinfo(), lasprecision(), lasvalidate(), las2txt(), txt2las(),
164172
laszip(), lasindex(), lasmerge(), las2las_filter(), las2las_project(),
165-
las2las_transform(), lasquery()
173+
las2las_transform(), lasquery(), lasdiff()
166174
]
167175
self.algs.extend(lastools)
168176

@@ -175,7 +183,8 @@ def _loadAlgorithms(self):
175183
lasnoisePro(), lasindexPro(), lascanopyPro(), blast2demPro(), lasboundaryPro(),
176184
lasinfoPro(), las2lasPro_filter(), las2lasPro_project(), las2lasPro_transform(),
177185
lasoveragePro(), txt2lasPro(), las2txtPro(), blast2isoPro(), lasvalidatePro(),
178-
lasmergePro(), lasviewPro(), lasoverlapPro()
186+
lasmergePro(), lasviewPro(), lasoverlapPro(), laspublishPro(), lasgroundPro_new(),
187+
lasheightPro_classify()
179188
]
180189
else:
181190
lastoolsPro = [

‎python/plugins/processing/algs/lidar/lastools/LAStoolsAlgorithm.py

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
Copyright : (C) 2012 by Victor Olaya
99
Email : volayaf at gmail dot com
1010
---------------------
11-
Date : April 2014
11+
Date : April 2014 and May 2016
1212
Copyright : (C) 2014 by Martin Isenburg
1313
Email : martin near rapidlasso point com
1414
***************************************************************************
@@ -70,12 +70,14 @@ class LAStoolsAlgorithm(GeoAlgorithm):
7070
FILES_ARE_FLIGHTLINES = "FILES_ARE_FLIGHTLINES"
7171
APPLY_FILE_SOURCE_ID = "APPLY_FILE_SOURCE_ID"
7272
STEP = "STEP"
73+
7374
FILTER_RETURN_CLASS_FLAGS1 = "FILTER_RETURN_CLASS_FLAGS1"
7475
FILTER_RETURN_CLASS_FLAGS2 = "FILTER_RETURN_CLASS_FLAGS2"
7576
FILTER_RETURN_CLASS_FLAGS3 = "FILTER_RETURN_CLASS_FLAGS3"
7677
FILTERS_RETURN_CLASS_FLAGS = ["---", "keep_last", "keep_first", "keep_middle", "keep_single", "drop_single",
7778
"keep_double", "keep_class 2", "keep_class 2 8", "keep_class 8", "keep_class 6",
78-
"keep_class 9", "keep_class 3 4 5", "keep_class 2 6", "drop_class 7", "drop_withheld", "drop_synthetic"]
79+
"keep_class 9", "keep_class 3 4 5", "keep_class 3", "keep_class 4", "keep_class 5",
80+
"keep_class 2 6", "drop_class 7", "drop_withheld", "drop_synthetic"]
7981
FILTER_COORDS_INTENSITY1 = "FILTER_COORDS_INTENSITY1"
8082
FILTER_COORDS_INTENSITY2 = "FILTER_COORDS_INTENSITY2"
8183
FILTER_COORDS_INTENSITY3 = "FILTER_COORDS_INTENSITY3"
@@ -103,6 +105,10 @@ class LAStoolsAlgorithm(GeoAlgorithm):
103105
"scale_scan_angle", "translate_scan_angle", "translate_gps_time", "set_classification", "set_user_data",
104106
"set_point_source", "scale_rgb_up", "scale_rgb_down", "repair_zero_returns"]
105107

108+
IGNORE_CLASS1 = "IGNORE_CLASS1"
109+
IGNORE_CLASS2 = "IGNORE_CLASS2"
110+
IGNORE_CLASSES = ["---", "unclassified (1)", "ground (2)", "veg low (3)", "veg mid (4)", "veg high (5)", "buildings (6)", "noise (7)", "keypoint (8)", "water (9)"]
111+
106112
def getIcon(self):
107113
filepath = os.path.dirname(__file__) + "/../../../images/tool.png"
108114
return QtGui.QIcon(filepath)
@@ -139,7 +145,7 @@ def addParametersPointInputCommands(self, commands):
139145
input = self.getParameterValue(LAStoolsAlgorithm.INPUT_LASLAZ)
140146
if input is not None:
141147
commands.append("-i")
142-
commands.append(input)
148+
commands.append('"' + input + '"')
143149

144150
def addParametersPointInputFolderGUI(self):
145151
self.addParameter(ParameterFile(LAStoolsAlgorithm.INPUT_DIRECTORY, self.tr("input directory"), True, False))
@@ -232,7 +238,7 @@ def addParametersPointOutputCommands(self, commands):
232238
output = self.getOutputValue(LAStoolsAlgorithm.OUTPUT_LASLAZ)
233239
if output is not None:
234240
commands.append("-o")
235-
commands.append(output)
241+
commands.append('"' + output + '"')
236242

237243
def addParametersPointOutputFormatGUI(self):
238244
self.addParameter(ParameterSelection(LAStoolsAlgorithm.OUTPUT_POINT_FORMAT, self.tr("output format"), LAStoolsAlgorithm.OUTPUT_POINT_FORMATS, 0))
@@ -279,7 +285,7 @@ def addParametersOutputDirectoryCommands(self, commands):
279285
commands.append(odir)
280286

281287
def addParametersOutputAppendixGUI(self):
282-
self.addParameter(ParameterString(LAStoolsAlgorithm.OUTPUT_APPENDIX, self.tr("output appendix")))
288+
self.addParameter(ParameterString(LAStoolsAlgorithm.OUTPUT_APPENDIX, self.tr("output appendix"), optional=True))
283289

284290
def addParametersOutputAppendixCommands(self, commands):
285291
odix = self.getParameterValue(LAStoolsAlgorithm.OUTPUT_APPENDIX)
@@ -303,7 +309,7 @@ def addParametersTemporaryDirectoryAsInputFilesCommands(self, commands, files):
303309
commands.append(idir + '\\' + files)
304310

305311
def addParametersAdditionalGUI(self):
306-
self.addParameter(ParameterString(LAStoolsAlgorithm.ADDITIONAL_OPTIONS, self.tr("additional command line parameter(s)")), optional=True)
312+
self.addParameter(ParameterString(LAStoolsAlgorithm.ADDITIONAL_OPTIONS, self.tr("additional command line parameter(s)"), optional=True))
307313

308314
def addParametersAdditionalCommands(self, commands):
309315
additional_options = self.getParameterValue(LAStoolsAlgorithm.ADDITIONAL_OPTIONS).split()
@@ -413,3 +419,23 @@ def addParametersTransform2OtherCommands(self, commands):
413419
commands.append("-" + LAStoolsAlgorithm.TRANSFORM_OTHERS[transform2])
414420
if transform2 < 11 and transform2_arg is not None:
415421
commands.append(transform2_arg)
422+
423+
def addParametersIgnoreClass1GUI(self):
424+
self.addParameter(ParameterSelection(LAStoolsAlgorithm.IGNORE_CLASS1,
425+
self.tr("ignore points with this classification"), LAStoolsAlgorithm.IGNORE_CLASSES, 0))
426+
427+
def addParametersIgnoreClass1Commands(self, commands):
428+
ignore1 = self.getParameterValue(LAStoolsAlgorithm.IGNORE_CLASS1)
429+
if ignore1 != 0:
430+
commands.append("-ignore_class")
431+
commands.append(unicode(ignore1))
432+
433+
def addParametersIgnoreClass2GUI(self):
434+
self.addParameter(ParameterSelection(LAStoolsAlgorithm.IGNORE_CLASS2,
435+
self.tr("also ignore points with this classification"), LAStoolsAlgorithm.IGNORE_CLASSES, 0))
436+
437+
def addParametersIgnoreClass2Commands(self, commands):
438+
ignore2 = self.getParameterValue(LAStoolsAlgorithm.IGNORE_CLASS2)
439+
if ignore2 != 0:
440+
commands.append("-ignore_class")
441+
commands.append(unicode(ignore2))

0 commit comments

Comments
 (0)
Please sign in to comment.