Skip to content

Commit 92ec118

Browse files
author
volayaf
committed
added GridSurface and MergeData algs to FUSION
git-svn-id: http://sextante.googlecode.com/svn/trunk/soft/bindings/qgis-plugin@180 881b9c09-3ef8-f3c2-ec3d-21d735c97f4d
1 parent 3e77423 commit 92ec118

File tree

3 files changed

+83
-2
lines changed

3 files changed

+83
-2
lines changed

src/sextante/fusion/FusionAlgorithmProvider.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,22 @@
1313
from sextante.fusion.FilterData import FilterData
1414
from sextante.fusion.GridMetrics import GridMetrics
1515
from sextante.fusion.GroundFilter import GroundFilter
16+
from sextante.fusion.GridSurfaceCreate import GridSurfaceCreate
17+
from sextante.fusion.MergeData import MergeData
1618

1719

1820
class FusionAlgorithmProvider(AlgorithmProvider):
1921

2022
def __init__(self):
2123
AlgorithmProvider.__init__(self)
2224
self.actions.append(OpenViewerAction())
23-
self.algsList = [CloudMetrics(), CanopyMaxima(), CanopyModel(), ClipData(), Cover(), FilterData(), GridMetrics(), GroundFilter()]
25+
self.algsList = [CloudMetrics(), CanopyMaxima(), CanopyModel(), ClipData(), Cover(), FilterData(),
26+
GridMetrics(), GroundFilter(), GridSurfaceCreate(), MergeData()]
2427

2528
def initializeSettings(self):
2629
AlgorithmProvider.initializeSettings(self)
27-
SextanteConfig.addSetting(Setting(self.getDescription(), FusionUtils.FUSION_FOLDER, "Fusion folder", FusionUtils.FusionPath()))
30+
SextanteConfig.addSetting(Setting(self.getDescription(), FusionUtils.FUSION_FOLDER, "Fusion folder",
31+
FusionUtils.FusionPath()))
2832

2933
def getName(self):
3034
return "fusion"
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import os
2+
from sextante.parameters.ParameterFile import ParameterFile
3+
from sextante.fusion.FusionUtils import FusionUtils
4+
from sextante.parameters.ParameterNumber import ParameterNumber
5+
from sextante.outputs.OutputRaster import OutputRaster
6+
from sextante.parameters.ParameterSelection import ParameterSelection
7+
from sextante.fusion.FusionAlgorithm import FusionAlgorithm
8+
9+
class GridSurfaceCreate(FusionAlgorithm):
10+
11+
INPUT = "INPUT"
12+
OUTPUT = "OUTPUT"
13+
CELLSIZE = "CELLSIZE"
14+
XYUNITS = "XYUNITS"
15+
ZUNITS = "ZUNITS"
16+
UNITS = ["Meter", "Feet"]
17+
18+
def defineCharacteristics(self):
19+
self.name = "Create Grid Surface"
20+
self.group = "Surface"
21+
self.addParameter(ParameterFile(self.INPUT, "Input las layer"))
22+
self.addParameter(ParameterNumber(self.CELLSIZE, "Cellsize", 0, None, 10.0))
23+
self.addParameter(ParameterSelection(self.XYUNITS, "XY Units", self.UNITS))
24+
self.addParameter(ParameterSelection(self.ZUNITS, "Z Units", self.UNITS))
25+
self.addOutput(OutputRaster(self.OUTPUT, "PLANS DTM surface"))
26+
self.addAdvancedModifiers()
27+
28+
def processAlgorithm(self, progress):
29+
commands = [os.path.join(FusionUtils.FusionPath(), "GridSurfaceCreate.exe")]
30+
commands.append("/verbose")
31+
self.addAdvancedModifiersToCommand(commands)
32+
commands.append(self.getOutputValue(self.OUTPUT))
33+
commands.append(str(self.getParameterValue(self.CELLSIZE)))
34+
commands.append(self.UNITS[self.getParameterValue(self.XYUNITS)][0])
35+
commands.append(self.UNITS[self.getParameterValue(self.ZUNITS)][0])
36+
commands.append("0")
37+
commands.append("0")
38+
commands.append("0")
39+
commands.append("0")
40+
files = self.getParameterValue(self.INPUT).split(";")
41+
if len(files) == 1:
42+
commands.append(self.getParameterValue(self.INPUT))
43+
else:
44+
FusionUtils.createFileList(files)
45+
commands.append(FusionUtils.tempFileListFilepath())
46+
FusionUtils.runFusion(commands, progress)

src/sextante/fusion/MergeData.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import os
2+
from sextante.parameters.ParameterFile import ParameterFile
3+
from sextante.fusion.FusionUtils import FusionUtils
4+
from sextante.outputs.OutputFile import OutputFile
5+
from sextante.fusion.FusionAlgorithm import FusionAlgorithm
6+
7+
class MergeData(FusionAlgorithm):
8+
9+
INPUT = "INPUT"
10+
OUTPUT = "OUTPUT"
11+
12+
13+
def defineCharacteristics(self):
14+
self.name = "Merge LAS Files"
15+
self.group = "Points"
16+
self.addParameter(ParameterFile(self.INPUT, "Input LAS files"))
17+
self.addOutput(OutputFile(self.OUTPUT, "Output merged LAS file"))
18+
19+
def processAlgorithm(self, progress):
20+
commands = [os.path.join(FusionUtils.FusionPath(), "MergeData.exe")]
21+
commands.append("/verbose")
22+
self.addAdvancedModifiersToCommand(commands)
23+
files = self.getParameterValue(self.INPUT).split(";")
24+
if len(files) == 1:
25+
commands.append(self.getParameterValue(self.INPUT))
26+
else:
27+
FusionUtils.createFileList(files)
28+
commands.append(FusionUtils.tempFileListFilepath())
29+
outFile = self.getOutputValue(self.OUTPUT)
30+
commands.append(outFile)
31+
FusionUtils.runFusion(commands, progress)

0 commit comments

Comments
 (0)