@@ -2345,38 +2345,41 @@ def generateBasins(self, progressBar: QProgressBar, progressLabel: QLabel, root:
23452345 landuseCount += 1
23462346 # use an equivalent landuse if any
23472347 crop = self ._gv .db .translateLanduse (int (crop ))
2348+ isWet = False
2349+ if crop != cropNoData :
2350+ cropCode = self ._gv .db .getLanduseCode (crop )
2351+ isWet = cropCode in Parameters ._WATERLANDUSES
23482352 soilCol = soilColFun (col , x )
23492353 if 0 <= soilCol < soilNumberCols and 0 <= soilRow < soilNumberRows :
23502354 soil = cast (int , soilData [0 , soilCol ])
23512355 if soilIsNoDataFun (soil ):
23522356 soil = soilNoData
23532357 else :
23542358 soil = soilNoData
2359+ # make sure crop and soil do not conflict about water
2360+ if self ._gv .db .useSSURGO :
2361+ if isWet :
2362+ soil = Parameters ._SSURGOWater
2363+ else :
2364+ if soil == Parameters ._SSURGOWater :
2365+ isWet = True
2366+ if crop == cropNoData or cropCode not in Parameters ._WATERLANDUSES :
2367+ crop = self ._gv .db .getLanduseCat ('WATR' )
23552368 if soil == soilNoData :
23562369 soilIsNoData = True
23572370 else :
23582371 soilIsNoData = False
2359- # use an equivalent soil if any
2360- soil , OK = self ._gv .db .translateSoil (int (soil ))
2372+ if soil == Parameters ._SSURGOWater :
2373+ OK = True
2374+ else :
2375+ # use an equivalent soil if any
2376+ soil , OK = self ._gv .db .translateSoil (int (soil ))
23612377 if soilIsNoData :
23622378 soilNoDataCount += 1
23632379 elif OK :
23642380 soilDefinedCount += 1
23652381 else :
23662382 soilUndefinedCount += 1
2367- # make sure crop and soil do not conflict about water
2368- isWet = False
2369- if crop != cropNoData :
2370- cropCode = self ._gv .db .getLanduseCode (crop )
2371- isWet = cropCode in Parameters ._WATERLANDUSES
2372- if self ._gv .db .useSSURGO :
2373- if isWet :
2374- soil = Parameters ._SSURGOWater
2375- else :
2376- if soil == Parameters ._SSURGOWater :
2377- isWet = True
2378- if crop == cropNoData or cropCode not in Parameters ._WATERLANDUSES :
2379- crop = self ._gv .db .getLanduseCat ('WATR' )
23802383 slopeCol = slopeColFun (col , x )
23812384 if 0 <= slopeCol < slopeNumberCols and 0 <= slopeRow < slopeNumberRows :
23822385 slopeValue = cast (float , slopeData [0 , slopeCol ])
0 commit comments