Skip to content

Commit b1103c0

Browse files
committed
[processing] major overhaul of lastools algorithms
Code contributed by Martin Isenburg
1 parent dd47b61 commit b1103c0

Some content is hidden

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

53 files changed

+2230
-1029
lines changed

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

+58-7
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 : September 2013
12-
Copyright : (C) 2013 by Martin Isenburg
11+
Date : April 2014
12+
Copyright : (C) 2014 by Martin Isenburg
1313
Email : martin near rapidlasso point com
1414
***************************************************************************
1515
* *
@@ -43,6 +43,8 @@
4343
from lastools.laszip import laszip
4444
from lastools.lasindex import lasindex
4545
from lastools.lasclip import lasclip
46+
from lastools.lasquery import lasquery
47+
from lastools.lascolor import lascolor
4648
from lastools.lasthin import lasthin
4749
from lastools.lasnoise import lasnoise
4850
from lastools.lassort import lassort
@@ -54,7 +56,9 @@
5456
from lastools.las2dem import las2dem
5557
from lastools.blast2dem import blast2dem
5658
from lastools.las2iso import las2iso
59+
from lastools.las2tin import las2tin
5760
from lastools.las2las_filter import las2las_filter
61+
from lastools.las2las_project import las2las_project
5862
from lastools.las2las_transform import las2las_transform
5963
from lastools.blast2iso import blast2iso
6064
from lastools.lasprecision import lasprecision
@@ -69,6 +73,18 @@
6973
from lastools.lascanopy import lascanopy
7074
from lastools.lasoverage import lasoverage
7175
from lastools.lasoverlap import lasoverlap
76+
77+
from lastools.lastilePro import lastilePro
78+
from lastools.lasgroundPro import lasgroundPro
79+
from lastools.las2demPro import las2demPro
80+
81+
from lastools.flightlinesToDTMandDSM import flightlinesToDTMandDSM
82+
from lastools.flightlinesToCHM import flightlinesToCHM
83+
from lastools.flightlinesToSingleCHMpitFree import flightlinesToSingleCHMpitFree
84+
from lastools.hugeFileClassify import hugeFileClassify
85+
from lastools.hugeFileGroundClassify import hugeFileGroundClassify
86+
from lastools.hugeFileNormalize import hugeFileNormalize
87+
7288
from fusion.OpenViewerAction import OpenViewerAction
7389
from fusion.CanopyMaxima import CanopyMaxima
7490
from fusion.CanopyModel import CanopyModel
@@ -89,26 +105,58 @@ def __init__(self):
89105
AlgorithmProvider.__init__(self)
90106
self.activate = False
91107
self.algsList = []
108+
109+
# LAStools for processing single files
110+
92111
if isWindows():
93112
lastools = [
94113
lasground(), lasheight(), lasclassify(), lasclip(), lastile(),
95-
lasgrid(), las2dem(), blast2dem(), las2iso(), blast2iso(),
96-
lasview(), lasboundary(), lasinfo(), lasprecision(),
114+
lascolor(), lasgrid(), las2dem(), blast2dem(), las2iso(), blast2iso(),
115+
lasview(), lasboundary(), lasinfo(), lasprecision(), las2tin(),
97116
lasvalidate(), lasduplicate(), las2txt(), txt2las(), laszip(),
98117
lasindex(), lasthin(), lassort(), lascanopy(), lasmerge(),
99118
las2shp(), shp2las(), lasnoise(), lassplit(), las2las_filter(),
100-
las2las_transform(), lasoverage(), lasoverlap()
119+
las2las_project(), las2las_transform(), lasoverage(), lasoverlap(),
120+
lasquery()
101121
]
102122
else:
103123
lastools = [
104124
lasinfo(), lasprecision(), lasvalidate(), las2txt(), txt2las(),
105-
laszip(), lasindex(), lasmerge(), las2las_filter(),
106-
las2las_transform()
125+
laszip(), lasindex(), lasmerge(), las2las_filter(), las2las_project(),
126+
las2las_transform(), lasquery()
107127
]
108128
for alg in lastools:
109129
alg.group = 'LAStools'
110130
self.algsList.extend(lastools)
111131

132+
# LAStools Production for processing folders of files
133+
134+
if isWindows():
135+
lastoolsPro = [
136+
lastilePro(), lasgroundPro(), las2demPro()
137+
]
138+
else:
139+
lastoolsPro = [
140+
]
141+
for alg in lastoolsPro:
142+
alg.group = 'LAStools Production'
143+
self.algsList.extend(lastoolsPro)
144+
145+
# some examples for LAStools Pipelines
146+
147+
if isWindows():
148+
lastoolsPipe = [
149+
flightlinesToDTMandDSM(), flightlinesToCHM(), flightlinesToSingleCHMpitFree(), hugeFileClassify(), hugeFileGroundClassify(), hugeFileNormalize()
150+
]
151+
else:
152+
lastoolsPipe = [
153+
]
154+
for alg in lastoolsPipe:
155+
alg.group = 'LAStools Pipelines'
156+
self.algsList.extend(lastoolsPipe)
157+
158+
# FUSION
159+
112160
if isWindows():
113161
self.actions.append(OpenViewerAction())
114162
fusiontools = [
@@ -128,6 +176,9 @@ def initializeSettings(self):
128176
ProcessingConfig.addSetting(Setting(self.getDescription(),
129177
FusionUtils.FUSION_FOLDER,
130178
'Fusion folder', FusionUtils.FusionPath()))
179+
ProcessingConfig.addSetting(Setting(self.getDescription(),
180+
LAStoolsUtils.WINE_FOLDER,
181+
'Wine folder', ''))
131182

132183
def getName(self):
133184
return 'lidartools'

python/plugins/processing/algs/lidar/fusion/FusionAlgorithm.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class FusionAlgorithm(GeoAlgorithm):
3737
ADVANCED_MODIFIERS = 'ADVANCED_MODIFIERS'
3838

3939
def getIcon(self):
40-
filepath = os.path.dirname(__file__) + '/../../images/tool.png'
40+
filepath = os.path.dirname(__file__) + '/../../../images/tool.png'
4141
return QtGui.QIcon(filepath)
4242

4343
def checkBeforeOpeningParametersDialog(self):

python/plugins/processing/algs/lidar/fusion/OpenViewerAction.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def __init__(self):
3939
self.group = 'Visualization'
4040

4141
def getIcon(self):
42-
return QtGui.QIcon(os.path.dirname(__file__) + '/../images/tool.png')
42+
return QtGui.QIcon(os.path.dirname(__file__) + '/../../../images/tool.png')
4343

4444
def execute(self):
4545
f = os.path.join(FusionUtils.FusionPath(), 'pdq.exe')
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
FILE(GLOB PY_FILES *.py)
22

3-
PLUGIN_INSTALL(processing ./algs/lidar/lastools ${PY_FILES})
3+
PLUGIN_INSTALL(processing ./lidar/lastools ${PY_FILES})

0 commit comments

Comments
 (0)