Showing with 538 additions and 654 deletions.
  1. +38 −26 python/plugins/sextante/algs/QGISAlgorithmProvider.py
  2. +5 −1 python/plugins/sextante/algs/ftools/BasicStatisticsNumbers.py
  3. +5 −3 python/plugins/sextante/algs/ftools/BasicStatisticsStrings.py
  4. +6 −7 python/plugins/sextante/algs/ftools/Buffer.py
  5. +1 −3 python/plugins/sextante/algs/ftools/Centroids.py
  6. +71 −76 python/plugins/sextante/algs/ftools/Clip.py
  7. +106 −99 python/plugins/sextante/algs/ftools/ConvexHull.py
  8. +15 −9 python/plugins/sextante/algs/ftools/Delaunay.py
  9. +3 −7 python/plugins/sextante/algs/ftools/DensifyGeometries.py
  10. +4 −6 python/plugins/sextante/algs/ftools/DensifyGeometriesInterval.py
  11. +48 −45 python/plugins/sextante/algs/ftools/Difference.py
  12. +30 −59 python/plugins/sextante/algs/ftools/ExportGeometryInfo.py
  13. +27 −24 python/plugins/sextante/algs/ftools/ExtentFromLayer.py
  14. +7 −8 python/plugins/sextante/algs/ftools/ExtractNodes.py
  15. +0 −115 python/plugins/sextante/algs/ftools/FToolsAlgorithmProvider.py
  16. +42 −12 python/plugins/sextante/algs/ftools/FToolsUtils.py
  17. +1 −2 python/plugins/sextante/algs/ftools/FixedDistanceBuffer.py
  18. +10 −12 python/plugins/sextante/algs/ftools/LinesIntersection.py
  19. +9 −9 python/plugins/sextante/algs/ftools/LinesToPolygons.py
  20. +2 −4 python/plugins/sextante/algs/ftools/MeanCoords.py
  21. +12 −15 python/plugins/sextante/algs/ftools/MultipartToSingleparts.py
  22. +2 −2 python/plugins/sextante/algs/ftools/NearestNeighbourAnalysis.py
  23. +15 −9 python/plugins/sextante/algs/ftools/PointDistance.py
  24. +11 −12 python/plugins/sextante/algs/ftools/PointsInPolygon.py
  25. +9 −16 python/plugins/sextante/algs/ftools/PointsInPolygonUnique.py
  26. +10 −18 python/plugins/sextante/algs/ftools/PointsInPolygonWeighted.py
  27. +5 −6 python/plugins/sextante/algs/ftools/PolygonsToLines.py
  28. +2 −2 python/plugins/sextante/algs/ftools/RandomSelection.py
  29. +5 −4 python/plugins/sextante/algs/ftools/RandomSelectionWithinSubsets.py
  30. +1 −1 python/plugins/sextante/algs/ftools/ReprojectLayer.py
  31. +10 −12 python/plugins/sextante/algs/ftools/SelectByLocation.py
  32. +3 −6 python/plugins/sextante/algs/ftools/SimplifyGeometries.py
  33. +2 −7 python/plugins/sextante/algs/ftools/SinglePartsToMultiparts.py
  34. +9 −12 python/plugins/sextante/algs/ftools/SumLines.py
  35. +3 −0 python/plugins/sextante/algs/ftools/UniqueValues.py
  36. +1 −1 python/plugins/sextante/algs/ftools/VariableDistanceBuffer.py
  37. +3 −2 python/plugins/sextante/algs/ftools/VoronoiPolygons.py
  38. BIN python/plugins/sextante/images/help.png
  39. BIN python/plugins/sextante/images/sextante_logo.png
  40. +5 −2 python/plugins/sextante/resources.qrc
64 changes: 38 additions & 26 deletions python/plugins/sextante/algs/QGISAlgorithmProvider.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

"""
***************************************************************************
SextanteAlgorithmProvider.py
QGISAlgorithmProvider.py
---------------------
Date : August 2012
Date : December 2012
Copyright : (C) 2012 by Victor Olaya
Email : volayaf at gmail dot com
***************************************************************************
Expand All @@ -16,21 +16,17 @@
* *
***************************************************************************
"""
#from sextante.algs.MeanAndStdDevPlot import MeanAndStdDevPlot
#from sextante.algs.BarPlot import BarPlot
#from sextante.algs.PolarPlot import PolarPlot
from sextante.algs.RasterLayerStatistics import RasterLayerStatistics

__author__ = 'Victor Olaya'
__date__ = 'August 2012'
__date__ = 'December 2012'
__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
#from sextante.algs.RasterLayerHistogram import RasterLayerHistogram
from sextante.algs.StatisticsByCategories import StatisticsByCategories
from PyQt4.QtGui import *

from sextante.core.AlgorithmProvider import AlgorithmProvider

from sextante.algs.ftools.PointsInPolygon import PointsInPolygon
from sextante.algs.ftools.PointsInPolygonUnique import PointsInPolygonUnique
from sextante.algs.ftools.PointsInPolygonWeighted import PointsInPolygonWeighted
Expand Down Expand Up @@ -67,17 +63,18 @@
from sextante.algs.ftools.SelectByLocation import SelectByLocation
from sextante.algs.ftools.Union import Union
from sextante.algs.ftools.DensifyGeometriesInterval import DensifyGeometriesInterval

from sextante.algs.mmqgisx.MMQGISXAlgorithms import (mmqgisx_delete_columns_algorithm,
mmqgisx_delete_duplicate_geometries_algorithm,
mmqgisx_geometry_convert_algorithm,
mmqgisx_grid_algorithm, mmqgisx_gridify_algorithm,
mmqgisx_hub_distance_algorithm, mmqgisx_hub_lines_algorithm,
mmqgisx_merge_algorithm, mmqgisx_select_algorithm,
mmqgisx_text_to_float_algorithm)

from sextante.algs.RasterLayerStatistics import RasterLayerStatistics
from sextante.algs.StatisticsByCategories import StatisticsByCategories
from sextante.algs.EquivalentNumField import EquivalentNumField
#from sextante.algs.VectorLayerHistogram import VectorLayerHistogram
#from sextante.algs.VectorLayerScatterplot import VectorLayerScatterplot
from sextante.core.AlgorithmProvider import AlgorithmProvider
from sextante.algs.AddTableField import AddTableField
from sextante.algs.FieldsCalculator import FieldsCalculator
from sextante.algs.SaveSelectedFeatures import SaveSelectedFeatures
Expand All @@ -88,25 +85,38 @@
from sextante.algs.CreateConstantRaster import CreateConstantRaster
from sextante.algs.PointsLayerFromTable import PointsLayerFromTable

#from sextante.algs.VectorLayerHistogram import VectorLayerHistogram
#from sextante.algs.VectorLayerScatterplot import VectorLayerScatterplot
#from sextante.algs.MeanAndStdDevPlot import MeanAndStdDevPlot
#from sextante.algs.BarPlot import BarPlot
#from sextante.algs.PolarPlot import PolarPlot
#from sextante.algs.RasterLayerHistogram import RasterLayerHistogram

import sextante.resources_rc

class QGISAlgorithmProvider(AlgorithmProvider):

def __init__(self):
AlgorithmProvider.__init__(self)
self.alglist = [AddTableField(), FieldsCalculator(), SaveSelectedFeatures(), JoinAttributes(),
AutoincrementalField(), Explode(), FieldsPyculator(), EquivalentNumField(),
SumLines(), PointsInPolygon(), PointsInPolygonWeighted(), PointsInPolygonUnique(),
BasicStatisticsStrings(), BasicStatisticsNumbers(), NearestNeighbourAnalysis(),
MeanCoords(), LinesIntersection(), UniqueValues(), PointDistance(), PointsLayerFromTable(),
StatisticsByCategories(),ReprojectLayer(),
self.alglist = [# ------ fTools ------
SumLines(), PointsInPolygon(), PointsInPolygonWeighted(),
PointsInPolygonUnique(), BasicStatisticsStrings(),
BasicStatisticsNumbers(), NearestNeighbourAnalysis(),
MeanCoords(), LinesIntersection(), UniqueValues(), PointDistance(),
# data management
ReprojectLayer(),
# geometry
ExportGeometryInfo(), Centroids(), Delaunay(), VoronoiPolygons(),
SimplifyGeometries(), DensifyGeometries(), DensifyGeometriesInterval(),
MultipartToSingleparts(), SinglePartsToMultiparts(), PolygonsToLines(),
LinesToPolygons(), ExtractNodes(),
# geoprocessing
ConvexHull(), FixedDistanceBuffer(), VariableDistanceBuffer(),
Dissolve(), Difference(), Intersection(), Union(), Clip(),
# research
ExtentFromLayer(), RandomSelection(), RandomSelectionWithinSubsets(),
SelectByLocation(),
#MMQGISX
# ------ mmqgisx ------
mmqgisx_delete_columns_algorithm(),
mmqgisx_delete_duplicate_geometries_algorithm(),
mmqgisx_geometry_convert_algorithm(),
Expand All @@ -117,29 +127,31 @@ def __init__(self):
mmqgisx_merge_algorithm(),
mmqgisx_select_algorithm(),
mmqgisx_text_to_float_algorithm(),
#raster
# ------ native algs ------
AddTableField(), FieldsCalculator(), SaveSelectedFeatures(), JoinAttributes(),
AutoincrementalField(), Explode(), FieldsPyculator(), EquivalentNumField(),
PointsLayerFromTable(), StatisticsByCategories(),
# ------ raster ------
CreateConstantRaster(), RasterLayerStatistics()
#graphics
# ------ graphics ------
#VectorLayerHistogram(), VectorLayerScatterplot(), RasterLayerHistogram(),
#MeanAndStdDevPlot(), BarPlot(), PolarPlot()
]

def initializeSettings(self):
AlgorithmProvider.initializeSettings(self)


def unload(self):
AlgorithmProvider.unload(self)


def getName(self):
return "qgis"

def getDescription(self):
return "QGIS geoalgorithms"

def getIcon(self):
return QtGui.QIcon(os.path.dirname(__file__) + "/../images/qgis.png")
return QIcon(":/sextante/images/qgis.png")

def _loadAlgorithms(self):
self.algs = self.alglist
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,17 @@
__revision__ = '$Format:%H$'

import math

from PyQt4.QtCore import *

from qgis.core import *

from sextante.core.GeoAlgorithm import GeoAlgorithm
from sextante.core.QGisLayers import QGisLayers

from sextante.parameters.ParameterVector import ParameterVector
from sextante.parameters.ParameterTableField import ParameterTableField

from sextante.outputs.OutputHTML import OutputHTML
from sextante.outputs.OutputNumber import OutputNumber

Expand Down Expand Up @@ -86,7 +91,6 @@ def processAlgorithm(self, progress):
outputFile = self.getOutputValue(self.OUTPUT_HTML_FILE)

index = layer.fieldNameIndex(fieldName)
#layer.select([index], QgsRectangle(), False)

cvValue = 0
minValue = 0
Expand Down
8 changes: 5 additions & 3 deletions python/plugins/sextante/algs/ftools/BasicStatisticsStrings.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
# This will get replaced with a git SHA1 when you do a git archive
__revision__ = '$Format:%H$'

import codecs

from PyQt4 import QtGui
from PyQt4.QtCore import *

from qgis.core import *
Expand Down Expand Up @@ -84,7 +84,6 @@ def processAlgorithm(self, progress):
outputFile = self.getOutputValue(self.OUTPUT_HTML_FILE)

index = layer.fieldNameIndex(fieldName)
layer.select([index], QgsRectangle(), False)

sumValue = 0
minValue = 0
Expand Down Expand Up @@ -150,7 +149,10 @@ def processAlgorithm(self, progress):
self.setOutputValue(self.UNIQUE, uniqueValues)

def createHTML(self, outputFile, algData):
f = open(outputFile, "w")
f = codecs.open(outputFile, "w", encoding="utf-8")
f.write('<html><head>')
f.write('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body>')
for s in algData:
f.write("<p>" + str(s) + "</p>")
f.write("</body></html>")
f.close()
13 changes: 6 additions & 7 deletions python/plugins/sextante/algs/ftools/Buffer.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@ def buffering(progress, writer, distance, field, useField, layer, dissolve, segm
GEOS_EXCEPT = True
FEATURE_EXCEPT = True

layer.select(layer.pendingAllAttributesList())

if useField:
field = layer.fieldNameIndex(field)

Expand All @@ -52,9 +50,9 @@ def buffering(progress, writer, distance, field, useField, layer, dissolve, segm
if dissolve:
first = True
for inFeat in features:
atMap = inFeat.attributes()
attrs = inFeat.attributes()
if useField:
value = atMap[field].toDouble()[0]
value = attrs[field].toDouble()[0]
else:
value = distance

Expand All @@ -78,15 +76,16 @@ def buffering(progress, writer, distance, field, useField, layer, dissolve, segm
progress.setPercentage(int(current * total))
try:
outFeat.setGeometry(tempGeom)
outFeat.setAttributes(attrs)
writer.addFeature(outFeat)
except:
FEATURE_EXCEPT = False
# without dissolve
else:
for inFeat in features:
atMap = inFeat.attributes()
attrs = inFeat.attributes()
if useField:
value = atMap[field].toDouble()[0]
value = attrs[field].toDouble()[0]
else:
value = distance

Expand All @@ -95,7 +94,7 @@ def buffering(progress, writer, distance, field, useField, layer, dissolve, segm
outGeom = inGeom.buffer(float(value), segments)
try:
outFeat.setGeometry(outGeom)
outFeat.setAttributes(atMap)
outFeat.setAttributes(attrs)
writer.addFeature(outFeat)
except:
FEATURE_EXCEPT = False
Expand Down
4 changes: 1 addition & 3 deletions python/plugins/sextante/algs/ftools/Centroids.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,9 @@ def defineCharacteristics(self):
def processAlgorithm(self, progress):
layer = QGisLayers.getObjectFromUri(self.getParameterValue(self.INPUT_LAYER))

writer = self.getOutputFromName(self.OUTPUT_LAYER).getVectorWriter(layer.pendingFields(),
writer = self.getOutputFromName(self.OUTPUT_LAYER).getVectorWriter(layer.pendingFields().toList(),
QGis.WKBPoint, layer.crs())

#layer.select(layer.pendingAllAttributesList())

outFeat = QgsFeature()

features = QGisLayers.features(layer)
Expand Down
Loading