Skip to content

Commit fa6a4e5

Browse files
author
volayaf@gmail.com
committed
changed resampling extent behaviour in SAGA
git-svn-id: http://sextante.googlecode.com/svn/trunk/soft/bindings/qgis-plugin@167 881b9c09-3ef8-f3c2-ec3d-21d735c97f4d
1 parent dc86682 commit fa6a4e5

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

src/sextante/gui/SextanteToolbox.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ def executeAlgorithm(self):
123123

124124
def fillTree(self):
125125
self.algorithmTree.clear()
126-
text = str(self.searchBox.text())
126+
text = unicode(self.searchBox.text())
127127
for providerName in Sextante.algs.keys():
128128
groups = {}
129129
provider = Sextante.algs[providerName]

src/sextante/saga/SagaAlgorithm.py

+18-5
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,12 @@ def defineCharacteristicsFromFile(self):
8383

8484

8585
def calculateResamplingExtent(self):
86+
'''this method calculates the resampling extent, but it might set self.resample
87+
to false if, with the current layers, there is no need to resample'''
8688
auto = SextanteConfig.getSetting(SagaUtils.SAGA_AUTO_RESAMPLING)
8789
if auto:
8890
first = True;
91+
self.inputExtentsCount = 0
8992
for param in self.parameters:
9093
if param.value:
9194
if isinstance(param, ParameterRaster):
@@ -102,6 +105,8 @@ def calculateResamplingExtent(self):
102105
layer = QGisLayers.getObjectFromUri(layername)
103106
self.addToResamplingExtent(layer, first)
104107
first = False
108+
if self.inputExtentsCount < 2:
109+
self.resample = false
105110
else:
106111
self.xmin = SextanteConfig.getSetting(SagaUtils.SAGA_RESAMPLING_REGION_XMIN)
107112
self.xmax = SextanteConfig.getSetting(SagaUtils.SAGA_RESAMPLING_REGION_XMAX)
@@ -112,17 +117,25 @@ def calculateResamplingExtent(self):
112117

113118
def addToResamplingExtent(self, layer, first):
114119
if first:
120+
self.inputExtentsCount = 1
115121
self.xmin = layer.extent().xMinimum()
116122
self.xmax = layer.extent().xMaximum()
117123
self.ymin = layer.extent().yMinimum()
118124
self.ymax = layer.extent().yMaximum()
119125
self.cellsize = (layer.extent().xMaximum() - layer.extent().xMinimum())/layer.width()
120126
else:
121-
self.xmin = min(self.xmin, layer.extent().xMinimum())
122-
self.xmax = max(self.xmax, layer.extent().xMaximum())
123-
self.ymin = min(self.ymin, layer.extent().yMinimum())
124-
self.ymax = max(self.ymax, layer.extent().yMaximum())
125-
self.cellsize = max(self.cellsize, (layer.extent().xMaximum() - layer.extent().xMinimum())/layer.width())
127+
cellsize = (layer.extent().xMaximum() - layer.extent().xMinimum())/layer.width()
128+
if self.xmin != layer.extent().xMinimum() or
129+
self.xmax != layer.extent().xMaximum() or
130+
self.ymin != layer.extent().yMinimum() or
131+
self.ymax != layer.extent().yMaximum() or
132+
self.cellsize != cellsize:
133+
self.xmin = min(self.xmin, layer.extent().xMinimum())
134+
self.xmax = max(self.xmax, layer.extent().xMaximum())
135+
self.ymin = min(self.ymin, layer.extent().yMinimum())
136+
self.ymax = max(self.ymax, layer.extent().yMaximum())
137+
self.cellsize = max(self.cellsize, cellsize)
138+
self.inputExtentsCount += 1
126139

127140

128141
def processAlgorithm(self, progress):

0 commit comments

Comments
 (0)