Skip to content

Commit

Permalink
code cleaning
Browse files Browse the repository at this point in the history
improved nviz link
added 2 more algs to lastools

git-svn-id: http://sextante.googlecode.com/svn/trunk/soft/bindings/qgis-plugin@153 881b9c09-3ef8-f3c2-ec3d-21d735c97f4d
  • Loading branch information
volayaf committed Apr 25, 2012
1 parent 933eb9b commit 5f89f23
Show file tree
Hide file tree
Showing 16 changed files with 105 additions and 14 deletions.
3 changes: 1 addition & 2 deletions src/sextante/core/AlgorithmProvider.py
Expand Up @@ -25,7 +25,6 @@ def loadAlgorithms(self):
#methods to be overridden.
#==============================


def _loadAlgorithms(self):
'''Algorithm loading should take place here, filling self.algs, which is a list of
elements of class GeoAlgorithm. Use that class to create your own algorithms'''
Expand All @@ -35,7 +34,7 @@ def initializeSettings(self):
'''this is the place where you should add config parameters to SEXTANTE using the SextanteConfig class.
this method is called when a provider is added to SEXTANTE.
By default it just adds a setting to activate or deactivate algorithms from the provider'''
SextanteConfig.settingIcons[self.getName()] = self.getIcon()
SextanteConfig.settingIcons[self.getDescription()] = self.getIcon()
name = "ACTIVATE_" + self.getName().upper().replace(" ", "_")
SextanteConfig.addSetting(Setting(self.getDescription(), name, "Activate", True))

Expand Down
30 changes: 30 additions & 0 deletions src/sextante/grass/nviz.py
Expand Up @@ -24,11 +24,41 @@ def processAlgorithm(self, progress):
vector = self.getParameterValue(self.VECTOR);
elevation = self.getParameterValue(self.ELEVATION);
if vector:
layers = vector.split(";")
for layer in layers:
newfilename = self.exportVectorLayer(layer)
vector = vector.replace(layer, newfilename)
command += (" vector=" + vector.replace(";", ","))
if elevation:
layers = elevation.split(";")
for layer in layers:
newfilename = self.exportRasterLayer(layer)
elevation = elevation.replace(layer, newfilename)
command += (" elevation=" + elevation.replace(";", ","))
if elevation is None and vector is None:
command += " -q"
commands.append(command)
GrassUtils.createTempMapset();
GrassUtils.executeGrass(commands, progress)


def exportVectorLayer(self,layer):
destFilename = self.getTempFilename()
command = "v.in.ogr"
command += " min_area=-1"
command +=" dsn=\"" + os.path.dirname(filename) + "\""
command +=" layer=" + os.path.basename(filename)[:-4]
command +=" output=" + destFilename;
command +=" --overwrite -o"
return destFilename


def exportRasterLayer(self, layer):
destFilename = self.getTempFilename()
command = "r.in.gdal"
command +=" input=\"" + layer + "\""
command +=" band=1"
command +=" out=" + destFilename;
command +=" --overwrite -o"
return destFilename

3 changes: 2 additions & 1 deletion src/sextante/gui/ParametersDialog.py
Expand Up @@ -22,6 +22,7 @@
from sextante.parameters.ParameterFile import ParameterFile
from sextante.parameters.ParameterCrs import ParameterCrs
from sextante.core.SextanteConfig import SextanteConfig
from sextante.parameters.ParameterExtent import ParameterExtent

try:
_fromUtf8 = QtCore.QString.fromUtf8
Expand Down Expand Up @@ -124,7 +125,7 @@ def setParamValue(self, param, widget):
for index in widget.selectedoptions:
value.append(options[index])
return param.setValue(value)
elif isinstance(param, (ParameterNumber, ParameterFile, ParameterCrs)):
elif isinstance(param, (ParameterNumber, ParameterFile, ParameterCrs, ParameterExtent)):
return param.setValue(widget.getValue())
else:
return param.setValue(str(widget.text()))
Expand Down
4 changes: 3 additions & 1 deletion src/sextante/lastools/LasToolsAlgorithmProvider.py
Expand Up @@ -14,14 +14,16 @@
from sextante.lastools.lasheight import lasheight
from sextante.lastools.lasprecision import lasprecision
from sextante.lastools.lassplit import lassplit
from sextante.lastools.lasclassify import lasclassify
from sextante.lastools.lasclip import lasclip


class LasToolsAlgorithmProvider(AlgorithmProvider):

def __init__(self):
AlgorithmProvider.__init__(self)
self.algsList = [las2shp(), lasboundary(), las2dem(), las2iso(), lasgrid(), lasground(),
lasinfo(), lasheight(), lasprecision(), lassplit()]
lasinfo(), lasheight(), lasprecision(), lassplit(), lasclassify(), lasclip()]

def initializeSettings(self):
AlgorithmProvider.initializeSettings(self)
Expand Down
2 changes: 1 addition & 1 deletion src/sextante/lastools/las2dem.py
Expand Up @@ -16,7 +16,7 @@ class las2dem(LasToolsAlgorithm):
def defineCharacteristics(self):
self.name = "las2dem"
self.group = "Tools"
self.addParameter(ParameterFile(las2dem.INPUT, "Input las layer", ""))
self.addParameter(ParameterFile(las2dem.INPUT, "Input las layer"))
self.addParameter(ParameterBoolean(las2dem.INTENSITY, "Use intensity instead of elevation", False))
self.addOutput(OutputRaster(las2dem.OUTPUT, "Output dem layer"))
self.addCommonParameters()
Expand Down
2 changes: 1 addition & 1 deletion src/sextante/lastools/las2iso.py
Expand Up @@ -19,7 +19,7 @@ class las2iso(LasToolsAlgorithm):
def defineCharacteristics(self):
self.name = "las2iso"
self.group = "Tools"
self.addParameter(ParameterFile(las2iso.INPUT, "Input las layer", ""))
self.addParameter(ParameterFile(las2iso.INPUT, "Input las layer"))
self.addParameter(ParameterNumber(las2iso.INTERVAL, "Interval between isolines", 0, None, 10.0))
self.addParameter(ParameterNumber(las2iso.CLEAN, "Clean isolines shorter than (0 = do not clean)", None, None, 0.0))
self.addParameter(ParameterNumber(las2iso.SIMPLIFY, "simplify segments shorter than (0 = do not simplify)", None, None, 0.0))
Expand Down
2 changes: 1 addition & 1 deletion src/sextante/lastools/las2shp.py
Expand Up @@ -12,7 +12,7 @@ class las2shp(LasToolsAlgorithm):
def defineCharacteristics(self):
self.name = "las2shp"
self.group = "Tools"
self.addParameter(ParameterFile(las2shp.INPUT, "Input las layer", ""))
self.addParameter(ParameterFile(las2shp.INPUT, "Input las layer"))
self.addOutput(OutputVector(las2shp.OUTPUT, "Output shp layer"))
self.addCommonParameters()

Expand Down
2 changes: 1 addition & 1 deletion src/sextante/lastools/lasboundary.py
Expand Up @@ -20,7 +20,7 @@ class lasboundary(LasToolsAlgorithm):
def defineCharacteristics(self):
self.name = "lasboundary"
self.group = "Tools"
self.addParameter(ParameterFile(lasboundary.INPUT, "Input las layer", ""))
self.addParameter(ParameterFile(lasboundary.INPUT, "Input las layer"))
self.addParameter(ParameterNumber(lasboundary.CONCAVITY, "Concavity threshold", 0, None, 50.0))
self.addParameter(ParameterBoolean(lasboundary.HOLES, "Compute also interior holes", False))
self.addParameter(ParameterBoolean(lasboundary.DISJOINT, "Compute disjoint hull", False))
Expand Down
27 changes: 27 additions & 0 deletions src/sextante/lastools/lasclassify.py
@@ -0,0 +1,27 @@
import os
from sextante.lastools.LasToolsUtils import LasToolsUtils
from sextante.lastools.LasToolsAlgorithm import LasToolsAlgorithm
from sextante.parameters.ParameterFile import ParameterFile
from sextante.outputs.OutputFile import OutputFile

class lasclassify(LasToolsAlgorithm):

INPUT = "INPUT"
OUTPUT = "OUTPUT"

def defineCharacteristics(self):
self.name = "lasclassify"
self.group = "Tools"
self.addParameter(ParameterFile(lasclassify.INPUT, "Input las layer"))
self.addOutput(OutputFile(lasclassify.OUTPUT, "Output classified las file"))
self.addCommonParameters()

def processAlgorithm(self, progress):
commands = [os.path.join(LasToolsUtils.LasToolsPath(), "bin", "lasclassify.exe")]
commands.append("-i")
commands.append(self.getParameterValue(lasclassify.INPUT))
commands.append("-o")
commands.append(self.getOutputValue(lasclassify.OUTPUT))
self.addCommonParameterValuesToCommand(commands)

LasToolsUtils.runLasTools(commands, progress)
32 changes: 32 additions & 0 deletions src/sextante/lastools/lasclip.py
@@ -0,0 +1,32 @@
import os
from sextante.lastools.LasToolsUtils import LasToolsUtils
from sextante.lastools.LasToolsAlgorithm import LasToolsAlgorithm
from sextante.parameters.ParameterFile import ParameterFile
from sextante.outputs.OutputFile import OutputFile
from sextante.parameters.ParameterVector import ParameterVector

class lasclip(LasToolsAlgorithm):

INPUT = "INPUT"
OUTPUT = "OUTPUT"
POLYGON = "POLYGON"

def defineCharacteristics(self):
self.name = "lasclip"
self.group = "Tools"
self.addParameter(ParameterFile(lasclip.INPUT, "Input las layer"))
self.addParameter(ParameterVector(lasclip.POLYGON, "Input polygons", ParameterVector.VECTOR_TYPE_POLYGON))
self.addOutput(OutputFile(lasclip.OUTPUT, "Output classified las file"))
self.addCommonParameters()

def processAlgorithm(self, progress):
commands = [os.path.join(LasToolsUtils.LasToolsPath(), "bin", "lasclip.exe")]
commands.append("-i")
commands.append(self.getParameterValue(lasclip.INPUT))
commands.append("-poly")
commands.append(self.getParameterValue(lasclip.POLYGON))
commands.append("-o")
commands.append(self.getOutputValue(lasclip.OUTPUT))
self.addCommonParameterValuesToCommand(commands)

LasToolsUtils.runLasTools(commands, progress)
2 changes: 1 addition & 1 deletion src/sextante/lastools/lasgrid.py
Expand Up @@ -19,7 +19,7 @@ class lasgrid(LasToolsAlgorithm):
def defineCharacteristics(self):
self.name = "lasgrid"
self.group = "Tools"
self.addParameter(ParameterFile(lasgrid.INPUT, "Input las layer", ""))
self.addParameter(ParameterFile(lasgrid.INPUT, "Input las layer"))
self.addParameter(ParameterBoolean(lasgrid.INTENSITY, "Use intensity instead of elevation", False))
self.addParameter(ParameterSelection(lasgrid.METHOD, "Method", lasgrid.METHODS))
self.addOutput(OutputRaster(lasgrid.OUTPUT, "Output grid layer"))
Expand Down
2 changes: 1 addition & 1 deletion src/sextante/lastools/lasground.py
Expand Up @@ -20,7 +20,7 @@ class lasground(LasToolsAlgorithm):
def defineCharacteristics(self):
self.name = "lasground"
self.group = "Tools"
self.addParameter(ParameterFile(lasground.INPUT, "Input las layer", ""))
self.addParameter(ParameterFile(lasground.INPUT, "Input las layer"))
self.addParameter(ParameterSelection(lasground.METHOD, "Method", lasground.METHODS))
self.addOutput(OutputFile(lasground.OUTPUT, "Output ground las file"))
self.addCommonParameters()
Expand Down
2 changes: 1 addition & 1 deletion src/sextante/lastools/lasheight.py
Expand Up @@ -12,7 +12,7 @@ class lasheight(LasToolsAlgorithm):
def defineCharacteristics(self):
self.name = "lasheight"
self.group = "Tools"
self.addParameter(ParameterFile(lasheight.INPUT, "Input las layer", ""))
self.addParameter(ParameterFile(lasheight.INPUT, "Input las layer"))
self.addOutput(OutputFile(lasheight.OUTPUT, "Output height las file"))
self.addCommonParameters()

Expand Down
2 changes: 1 addition & 1 deletion src/sextante/lastools/lasinfo.py
Expand Up @@ -12,7 +12,7 @@ class lasinfo(LasToolsAlgorithm):
def defineCharacteristics(self):
self.name = "lasinfo"
self.group = "Tools"
self.addParameter(ParameterFile(lasinfo.INPUT, "Input las layer", ""))
self.addParameter(ParameterFile(lasinfo.INPUT, "Input las layer"))
self.addOutput(OutputHTML(lasinfo.OUTPUT, "Output info file"))

def processAlgorithm(self, progress):
Expand Down
2 changes: 1 addition & 1 deletion src/sextante/lastools/lasprecision.py
Expand Up @@ -13,7 +13,7 @@ class lasprecision(LasToolsAlgorithm):
def defineCharacteristics(self):
self.name = "lasprecision"
self.group = "Tools"
self.addParameter(ParameterFile(lasprecision.INPUT, "Input las layer", ""))
self.addParameter(ParameterFile(lasprecision.INPUT, "Input las layer"))
self.addOutput(OutputHTML(lasprecision.OUTPUT, "Output info file"))

def processAlgorithm(self, progress):
Expand Down
2 changes: 1 addition & 1 deletion src/sextante/lastools/lassplit.py
Expand Up @@ -14,7 +14,7 @@ class lassplit(LasToolsAlgorithm):
def defineCharacteristics(self):
self.name = "lassplit"
self.group = "Tools"
self.addParameter(ParameterFile(lassplit.INPUT, "Input las layer", ""))
self.addParameter(ParameterFile(lassplit.INPUT, "Input las layer"))
self.addParameter(ParameterNumber(lassplit.NUM_POINTS, "Point in each output file", 1, None, 1000000))
self.addOutput(OutputFile(lassplit.OUTPUT, "Output las file basename"))
self.addCommonParameters()
Expand Down

0 comments on commit 5f89f23

Please sign in to comment.