9 changes: 7 additions & 2 deletions python/plugins/sextante/gdal/scripts/sieve.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,17 @@
##[GDAL] Analysis=group
##src_filename=raster
##dst_filename=output raster
##connectedness=selection 4;8
##threshold=number 2
##connectedness=selection 4;8
from sextante.gdal.GdalUtils import GdalUtils

from osgeo import gdal, ogr
try:
from osgeo import gdal, ogr
except ImportError:
import gdal
import ogr

threshold = int(threshold)
connectedness=int(connectedness)
options = []

Expand Down
23 changes: 18 additions & 5 deletions python/plugins/sextante/gui/BatchInputSelectionPanel.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
__copyright__ = '(C) 2012, Victor Olaya'
# This will get replaced with a git SHA1 when you do a git archive
__revision__ = '$Format:%H$'

import os
from PyQt4 import QtGui, QtCore
from sextante.parameters.ParameterMultipleInput import ParameterMultipleInput

Expand All @@ -49,13 +49,26 @@ def __init__(self, param, row, col, batchDialog, parent = None):
self.horizontalLayout.addWidget(self.pushButton)
self.setLayout(self.horizontalLayout)

def showSelectionDialog(self):
ret = QtGui.QFileDialog.getOpenFileNames(self, "Open file", QtCore.QString(), "All files (*.*)")
if ret:
files = list(ret)
def showSelectionDialog(self):
settings = QtCore.QSettings()
text = str(self.text.text())
if os.path.isdir(text):
path = text
elif os.path.isdir(os.path.dirname(text)):
path = os.path.dirname(text)
elif settings.contains("/SextanteQGIS/LastInputPath"):
path = str(settings.value( "/SextanteQGIS/LastInputPath",QtCore.QVariant( "" ) ).toString())
else:
path = ""

ret = QtGui.QFileDialog.getOpenFileNames(self, "Open file", path, "All files (*.*)")
if ret:
files = list(ret)
if len(files) == 1:
settings.setValue("/SextanteQGIS/LastInputPath", os.path.dirname(str(files[0])))
self.text.setText(str(files[0]))
else:
settings.setValue("/SextanteQGIS/LastInputPath", os.path.dirname(str(files[0])))
if isinstance(self.param, ParameterMultipleInput):
self.text.setText(";".join(str(f) for f in files))
else:
Expand Down
30 changes: 20 additions & 10 deletions python/plugins/sextante/gui/BatchProcessingDialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@
* *
***************************************************************************
"""
from sextante.gui.SextantePostprocessing import SextantePostprocessing

__author__ = 'Victor Olaya'
__date__ = 'August 2012'
__copyright__ = '(C) 2012, Victor Olaya'
Expand All @@ -27,7 +25,9 @@
from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from sextante.core.QGisLayers import QGisLayers
from sextante.gui.SextantePostprocessing import SextantePostprocessing
from sextante.parameters.ParameterFile import ParameterFile
from sextante.gui.FileSelectionPanel import FileSelectionPanel
from sextante.parameters.ParameterRaster import ParameterRaster
from sextante.parameters.ParameterTable import ParameterTable
from sextante.parameters.ParameterVector import ParameterVector
Expand Down Expand Up @@ -95,25 +95,30 @@ def headerDoubleClicked(self, col):
widgetValue = widget.currentIndex()
for row in range(1, self.table.rowCount()):
self.table.cellWidget(row, col).setCurrentIndex(widgetValue)

elif isinstance(widget, ExtentSelectionPanel):
widgetValue = widget.getValue()
for row in range(1, self.table.rowCount()):
if widgetValue != None:
self.table.cellWidget(row, col).text.setText(widgetValue)
else:
self.table.cellWidget(row, col).text.setText("")

elif isinstance(widget, CrsSelectionPanel):
widgetValue = widget.getValue()
for row in range(1, self.table.rowCount()):
self.table.cellWidget(row, col).epsg = widgetValue
self.table.cellWidget(row, col).setText()

self.table.cellWidget(row, col).setAuthid(widgetValue)
elif isinstance(widget, FileSelectionPanel):
widgetValue = widget.getValue()
for row in range(1, self.table.rowCount()):
self.table.cellWidget(row, col).setText(widgetValue)
elif isinstance(widget, QtGui.QLineEdit):
widgetValue = widget.text()
for row in range(1, self.table.rowCount()):
self.table.cellWidget(row, col).setText(widgetValue)
elif isinstance(widget, BatchInputSelectionPanel):
widgetValue = widget.getText()
for row in range(1, self.table.rowCount()):
self.table.cellWidget(row, col).setText(widgetValue)

else:
pass

Expand Down Expand Up @@ -264,7 +269,10 @@ def finishAll(self):

def setParameterValueFromWidget(self, param, widget, alg = None):
if isinstance(param, (ParameterRaster, ParameterVector, ParameterTable, ParameterMultipleInput)):
return param.setValue(widget.getText())
value = widget.getText()
if unicode(value.strip()) == "":
value = None
return param.setValue(value)
elif isinstance(param, ParameterBoolean):
return param.setValue(widget.currentIndex() == 0)
elif isinstance(param, ParameterSelection):
Expand All @@ -275,7 +283,7 @@ def setParameterValueFromWidget(self, param, widget, alg = None):
if alg != None:
widget.useNewAlg(alg)
return param.setValue(widget.getValue())
elif isinstance(param, ParameterCrs):
elif isinstance(param, (ParameterCrs, ParameterFile)):
return param.setValue(widget.getValue())
else:
return param.setValue(widget.text())
Expand All @@ -300,6 +308,8 @@ def getWidgetFromParameter(self, param, row, col):
item = ExtentSelectionPanel(self, self.alg, param.default)
elif isinstance(param, ParameterCrs):
item = CrsSelectionPanel(param.default)
elif isinstance(param, ParameterFile):
item = FileSelectionPanel(param.isFolder)
else:
item = QtGui.QLineEdit()
try:
Expand Down
3 changes: 3 additions & 0 deletions python/plugins/sextante/gui/FileSelectionPanel.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,6 @@ def getValue(self):
if SextanteUtils.isWindows():
s = s.replace("\\", "/")
return s

def setText(self, text):
self.text.setText(text)
8 changes: 4 additions & 4 deletions python/plugins/sextante/gui/SextanteToolbox.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ def executeAlgorithm(self):
if dlg.executed:
showRecent = SextanteConfig.getSetting(SextanteConfig.SHOW_RECENT_ALGORITHMS)
if showRecent:
self.addRecentAlgorithms()
self.addRecentAlgorithms(True)
if isinstance(item, TreeActionItem):
action = item.action
action.setData(self)
Expand All @@ -147,13 +147,13 @@ def fillTree(self):
else:
self.fillTreeUsingProviders()
self.algorithmTree.sortItems(0, Qt.AscendingOrder)
self.addRecentAlgorithms()
self.addRecentAlgorithms(False)

def addRecentAlgorithms(self):
def addRecentAlgorithms(self, updating):
showRecent = SextanteConfig.getSetting(SextanteConfig.SHOW_RECENT_ALGORITHMS)
if showRecent:
first = self.algorithmTree.topLevelItem(0)
if first != None and first.text(0) == "Recently used algorithms":
if updating:
self.algorithmTree.removeItemWidget(first, 0)
recent = SextanteLog.getRecentAlgorithms()
if len(recent) != 0:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Binary Morphological Operation
otbcli_BinaryMorphologicalOperation
Binary Morphological Operation
Image Filtering
ParameterRaster|-in|Input Image|False
OutputRaster|-out|Output Image
ParameterNumber|-ram|Available RAM (Mb)|None|None|128
ParameterNumber|-channel|Selected Channel|None|None|1
ParameterSelection|-structype|Structuring Element Type|ball;cross|0
ParameterNumber|-structype.ball.xradius|The Structuring Element X Radius|None|None|5
ParameterNumber|-structype.ball.yradius|The Structuring Element Y Radius|None|None|5
ParameterSelection|-filter|Morphological Operation|dilate;erode;opening;closing|0
ParameterNumber|-filter.dilate.foreval|Dilate Foreground Value|None|None|1
ParameterNumber|-filter.dilate.backval|Dilate Background Value Value|None|None|0
ParameterNumber|-filter.erode.foreval|Erode Foreground Value|None|None|1
ParameterNumber|-filter.erode.backval|Erode Background Value|None|None|0
ParameterNumber|-filter.opening.foreval|Opening Foreground Value|None|None|1
ParameterNumber|-filter.opening.backval|Opening Background Value|None|None|0
ParameterNumber|-filter.closing.foreval|Closing Foreground Value|None|None|1
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Classification Regularization
otbcli_ClassificationMapRegularization
Classification Regularization
Learning
ParameterRaster|-io.in|Input Image|False
OutputRaster|-io.out|Output Image
ParameterNumber|-ram|Available RAM (Mb)|None|None|128
ParameterNumber|-ip.radius|Structuring Element Radius|None|None|1
ParameterBoolean|-ip.suvbool|Multiple majority|False
ParameterNumber|-ip.nodatalabel|Label for the NoData class|None|None|0
ParameterNumber|-ip.undecidedlabel|Label for the Undecided class|None|None|0
14 changes: 14 additions & 0 deletions python/plugins/sextante/otb/description/ComputeConfusionMatrix.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Compute Confusion Matrix
otbcli_ComputeConfusionMatrix
Compute Confusion Matrix
Learning
ParameterRaster|-in|Input Image|False
OutputFile|-out|Matrix Output
ParameterSelection|-ref|Ground Truth|raster;vector|1
ParameterRaster|-ref.raster.in|Input Reference Image|False
ParameterFile|-ref.vector.in|Input Vector Data|False
ParameterString|-ref.vector.field|Field name|None|None|dn
ParameterNumber|-labels|Number of labels|None|None|2
ParameterNumber|-nodata|Value for nodata pixels|None|None|0
ParameterNumber|-ram|Available RAM (Mb)|None|None|128

12 changes: 12 additions & 0 deletions python/plugins/sextante/otb/description/EdgeExtraction.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Edge Extraction
otbcli_EdgeExtraction
Edge Extraction
Feature Extraction
ParameterRaster|-in|Input Image|False
OutputRaster|-out|Output Image
ParameterNumber|-channel|Selected Channel|None|None|1
ParameterNumber|-ram|Available RAM (Mb)|None|None|128
ParameterSelection|-filter|Edge feature|gradient;sobel;touzi|0
ParameterNumber|-filter.touzi.xradius|The X Radius|None|None|1
ParameterNumber|-filter.touzi.yradius|The Y Radius|None|None|1

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Fusion of Classifications
otbcli_FusionOfClassifications
Fusion of Classifications
Learning
ParameterMultipleInput|-il|Input classifications|-1|False
ParameterNumber|-undecided|Label for the undecided class|None|None|0
OutputRaster|-out|Output Image
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Gray Scale Morphological Operation
otbcli_GrayScaleMorphologicalOperation
Gray Scale Morphological Operation
Image Filtering
ParameterRaster|-in|Input Image|False
OutputRaster|-out|Output Image
ParameterNumber|-channel|Selected Channel|None|None|1
ParameterSelection|-structype|Structuring Element Type|ball;cross|0
ParameterNumber|-structype.ball.xradius|The Structuring Element X Radius|None|None|5
ParameterNumber|-structype.ball.yradius|The Structuring Element Y Radius|None|None|5
ParameterSelection|-filter|Morphological Operation|dilate;erode;opening;closing|0
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Haralick Texture Extraction
otbcli_HaralickTextureExtraction
Haralick Texture Extraction
Feature Extraction
ParameterRaster|-in|Input Image|False
OutputRaster|-out|Output Image
ParameterNumber|-ram|Available RAM (Mb)|None|None|128
ParameterNumber|-channel|Raster Band|None|None|1
ParameterNumber|-parameters.xrad|X Radius|None|None|1
ParameterNumber|-parameters.yrad|Y Radius|None|None|1
ParameterNumber|-parameters.xoff|X Offset|None|None|1
ParameterNumber|-parameters.yoff|Y Offset|None|None|1
ParameterNumber|-parameters.min|Image Minimum|None|None|1
ParameterNumber|-parameters.max|Image Maximum|None|None|255
ParameterNumber|-parameters.nbbin|Histogram number of bin|None|None|8
ParameterSelection|-texture|Texture Set Selection|simple;advanced;higher|0
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Local Statistic Extraction
otbcli_LocalStatisticExtraction
Local Statistic Extraction
Feature Extraction
ParameterRaster|-in|Input Image|False
OutputRaster|-out|Output Image
ParameterNumber|-channel|Selected Channel|None|None|1
ParameterNumber|-ram|Available RAM (Mb)|None|None|128
ParameterNumber|-radius|Neighborhood radius|None|None|3
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
MorphologicalProfilesSegmentationRaster
otbcli_Segmentation
Morphological Profiles Based Segmentation (labeled raster output)
Segmentation
ParameterRaster|-filter mprofiles -in|Input Image|False
ParameterNumber|-filter.mprofiles.size|Profile Size|None|None|5
ParameterNumber|-filter.mprofiles.start|Initial Radius|None|None|1
ParameterNumber|-filter.mprofiles.step|Radius Step|None|None|1
ParameterNumber|-filter.mprofiles.sigma|Threshold of final decision rule|0|None|1
OutputRaster|-mode raster -mode.raster.out|Output labeled image
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MorphologicalProfilesSegmentationVector
otbcli_Segmentation
Morphological Profiles Based Segmentation (large-scale, vector output)
Segmentation
ParameterRaster|-filter mprofiles -in|Input Image|False
ParameterNumber|-filter.mprofiles.size|Profile Size|None|None|5
ParameterNumber|-filter.mprofiles.start|Initial Radius|None|None|1
ParameterNumber|-filter.mprofiles.step|Radius Step|None|None|1
ParameterNumber|-filter.mprofiles.sigma|Threshold of final decision rule|0|None|1
ParameterBoolean|-mode.vector.neighbor|8-neighbor connectivity|False
ParameterBoolean|-mode.vector.stitch|Stitch polygons|True
ParameterNumber|-mode.vector.minsize|Minimum object size|1|None|1
ParameterNumber|-mode.vector.simplify|Simplify polygons|None|None|0.0
ParameterString|-mode.vector.layername|Layer name|layer
ParemeterString|-mode.vector.fieldname|Geometry index field name|DN
ParameterNumber|-mode.vector.tilesize|Tile size|0|None|1024
ParameterNumber|-mode.vector.startlabel|Starting geometry index|1|None|1
ParameterSelection|-mode.vector.outmode|Writing mode (update file/overwrite file/overwrite layer/update layer)|ulco;ovw;ulovw;ulu|0
ParameterString|-mode.vector.ogroptions|OGR options for layer creation|
ParameterVector|-mode.vector.inmask|Mask Image|-1|True
OutputVector|-mode vector -mode.vector.out|Output vector file
12 changes: 12 additions & 0 deletions python/plugins/sextante/otb/description/Pansharpening.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Pansharpening
otbcli_Pansharpening
Pansharpening
Image Manipulation
ParameterRaster|-inp|Input PAN Image|False
ParameterRaster|-inxs|Input XS Image|False
OutputRaster|-out|Output Image
ParameterSelection|-method|Algorithm|rcs;lmvm;bayes|0
ParameterNumber|-method.lmvm.radiusx|X radius|None|None|3
ParameterNumber|-method.lmvm.radiusy|Y radius|None|None|3
ParameterNumber|-method.bayes.s|S coefficient|None|None|1
ParameterNumber|-ram|Available RAM (Mb)|None|None|128
13 changes: 13 additions & 0 deletions python/plugins/sextante/otb/description/RadiometricIndices.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Radiometric Indices
otbcli_RadiometricIndices
Radiometric Indices
Feature Extraction
ParameterRaster|-in|Input Image|False
OutputRaster|-out|Output Image
ParameterNumber|-ram|Available RAM (Mb)|None|None|128
ParameterNumber|-channels.blue|Blue Channel|None|None|1
ParameterNumber|-channels.green|Green Channel|None|None|2
ParameterNumber|-channels.red|Red Channel|None|None|3
ParameterNumber|-channels.nir|NIR Channel|None|None|4
ParameterNumber|-channels.mir|Mir Channel|None|None|5
ParameterSelection|-list|Available Radiometric Indices|Vegetation:NDVI;Vegetation:TNDVI;Vegetation:RVI;Vegetation:SAVI;Vegetation:TSAVI;Vegetation:MSAVI;Vegetation:MSAVI2;Vegetation:GEMI;Vegetation:IPVI;Vegetation:LAIFromNDVILog;Vegetation:LAIFromReflLinear;Vegetation:LAIFromNDVIFormo;Water:NDWI;Water:NDWI2;Water:MNDWI;Water:NDPI;Water:NDTI;Soil:RI;Soil:CI;Soil:BI;Soil:BI2
14 changes: 14 additions & 0 deletions python/plugins/sextante/otb/description/SFSTextureExtraction.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
SFS Texture Extraction
otbcli_SFSTextureExtraction
SFS Texture Extraction
Feature Extraction
ParameterRaster|-in|Input Image|False
OutputRaster|-out|Output Image
ParameterNumber|-channel|Selected Channel|None|None|1
ParameterNumber|-ram|Available RAM (Mb)|None|None|128
ParameterNumber|-parameters.spethre|Spectral Threshold|None|None|50
ParameterNumber|-parameters.spathre|Spatial Threshold|None|None|100
ParameterNumber|-parameters.nbdir|Number of Direction|None|None|20
ParameterNumber|-parameters.alpha|Alpha|None|None|1
ParameterNumber|-parameters.maxcons|Ratio Maximum Consideration Number |None|None|5

2 changes: 1 addition & 1 deletion python/plugins/sextante/r/RAlgorithm.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ def processParameterLine(self,line):
self.showPlots = True
self.addOutput(OutputHTML(RAlgorithm.RPLOTS, "R Plots"));
return
if line.lower().strip().startswith("usereadgdal"):
if line.lower().strip().startswith("dontuserasterpackage"):
self.useRasterPackage = False
return
if line.lower().strip().startswith("passfilenames"):
Expand Down