Skip to content

Commit 0421510

Browse files
committed
Minor fixes
1 parent 027d1d5 commit 0421510

3 files changed

Lines changed: 25 additions & 17 deletions

File tree

QSWAT3/QSWAT/TauDEMUtils.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,11 @@ def run(command, inFiles, inParms, outFiles, numProcesses, output, mustRun):
220220
if hasQGIS:
221221
output.append(' '.join(commands) + '\n\n')
222222
output.moveCursor(QTextCursor.End)
223+
# In windows PROJ seems to need PROJ_LIB instead of the more recent PROJ_DATA
224+
# In windows gdalplugins now stored under TauDEMDir so they are compatible with gdal304 dlls stored there
225+
if Parameters._ISWIN:
226+
os.environ['PROJ_LIB'] = os.getenv('PROJ_DATA')
227+
os.environ['GDAL_DRIVER_PATH'] = TauDEMDir + '/gdalplugins'
223228
proc = subprocess.run(commands,
224229
shell=True,
225230
stdout=subprocess.PIPE,
@@ -287,4 +292,4 @@ def logerror(msg, hasQGIS):
287292
QSWATUtils.logerror(msg)
288293
else:
289294
print(msg)
290-
295+

QSWAT3/QSWAT/hrus.py

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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])

QSWAT3/QSWAT/parameters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ class Parameters:
142142
_NEARNESSTHRESHOLD = 0.1
143143

144144
# landuses for which we use just one SSURGO soil and where we make the slope at most _WATERMAXSLOPE
145-
_WATERLANDUSES = {'WATR', 'WETN', 'WETF', 'RIWF', 'UPWF', 'RIWN', 'UPWN'}
145+
_WATERLANDUSES = {'WATR', 'WETN', 'WETF', 'WETW', 'RIWF', 'UPWF', 'RIWN', 'UPWN'}
146146
_WATERMAXSLOPE = 0.00001
147147
# similar for TNC projects using FAO or HWSD soils
148148
_TNCWATERLANDUSES = {'WEWO', 'WETL', 'WEHB', 'WATR', 'TWEW', 'TWET', 'TWEH'}

0 commit comments

Comments
 (0)