@@ -83,9 +83,12 @@ def defineCharacteristicsFromFile(self):
83
83
84
84
85
85
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'''
86
88
auto = SextanteConfig .getSetting (SagaUtils .SAGA_AUTO_RESAMPLING )
87
89
if auto :
88
90
first = True ;
91
+ self .inputExtentsCount = 0
89
92
for param in self .parameters :
90
93
if param .value :
91
94
if isinstance (param , ParameterRaster ):
@@ -102,6 +105,8 @@ def calculateResamplingExtent(self):
102
105
layer = QGisLayers .getObjectFromUri (layername )
103
106
self .addToResamplingExtent (layer , first )
104
107
first = False
108
+ if self .inputExtentsCount < 2 :
109
+ self .resample = false
105
110
else :
106
111
self .xmin = SextanteConfig .getSetting (SagaUtils .SAGA_RESAMPLING_REGION_XMIN )
107
112
self .xmax = SextanteConfig .getSetting (SagaUtils .SAGA_RESAMPLING_REGION_XMAX )
@@ -112,17 +117,25 @@ def calculateResamplingExtent(self):
112
117
113
118
def addToResamplingExtent (self , layer , first ):
114
119
if first :
120
+ self .inputExtentsCount = 1
115
121
self .xmin = layer .extent ().xMinimum ()
116
122
self .xmax = layer .extent ().xMaximum ()
117
123
self .ymin = layer .extent ().yMinimum ()
118
124
self .ymax = layer .extent ().yMaximum ()
119
125
self .cellsize = (layer .extent ().xMaximum () - layer .extent ().xMinimum ())/ layer .width ()
120
126
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
126
139
127
140
128
141
def processAlgorithm (self , progress ):
0 commit comments