Example #1
0
import numpy as np
import matplotlib.pyplot as plt
from hydroDL.model import rnn, crit, trainTS
import torch

dataName = 'ssW'
wqData = waterQuality.DataModelWQ(dataName)

code = '00945'
label = 'plain'
trainSet = '{}-Y1'.format(code)
testSet = '{}-Y2'.format(code)
outName = '{}-{}-{}-{}'.format(dataName, code, label, trainSet)

outFolder = basins.nameFolder(outName)
dictP = basins.loadMaster(outName)

# load data
rmFlag = dictP['rmFlag'] if 'rmFlag' in dictP else False
wqData = waterQuality.DataModelWQ(dictP['dataName'], rmFlag)
varTup = (dictP['varX'], dictP['varXC'], dictP['varY'], dictP['varYC'])
dataTup, statTup = wqData.transIn(subset=dictP['trainName'], varTup=varTup)
dataTup = trainTS.dealNaN(dataTup, dictP['optNaN'])
# wrapStat(outName, statTup)
[nx, nxc, ny, nyc, nt, ns] = trainTS.getSize(dataTup)
model = basins.loadModel(outName, ep=500)

lossFun = crit.RmseLoss()
lossFun = lossFun.cuda()
model = model.cuda()
Example #2
0
import torch
import os
import json
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

wqData = waterQuality.DataModelWQ('basinRef', rmFlag=True)

outName = 'basinRef-Yeven-opt2'
trainSet = 'Yeven'
testSet = 'Yodd'
siteNoLst = wqData.info['siteNo'].unique().tolist()

master = basins.loadMaster(outName)
ep = 300
yP1, ycP1 = basins.testModel(outName, trainSet, wqData=wqData, ep=ep)
yP2, ycP2 = basins.testModel(outName, testSet, wqData=wqData, ep=ep)
errMatC1 = wqData.errBySiteC(ycP1,
                             varC=master['varYC'],
                             subset=trainSet,
                             rmExt=True)
errMatC2 = wqData.errBySiteC(ycP2,
                             varC=master['varYC'],
                             subset=testSet,
                             rmExt=True)

dirWrtds = os.path.join(kPath.dirWQ, 'modelStat', 'WRTDS-F')
dfCorr1 = pd.read_csv(os.path.join(dirWrtds,
                                   '{}-{}-corr'.format(trainSet, trainSet)),
Example #3
0
from hydroDL import kPath
from hydroDL.master import basins
from hydroDL.app import waterQuality
from hydroDL.data import gridMET, usgs, gageII
import json

import os
import pandas as pd
import numpy as np

modelFolder = os.path.join(kPath.dirWQ, 'model')
outLst = os.listdir(modelFolder)
for out in outLst:
    master = basins.loadMaster(out)
    master['varYC'] = usgs.varC
    master['varXC'] = gageII.lstWaterQuality
    if 'optQ' in master.keys():
        if master['optQ'] == 1:
            master['varX'] = gridMET.varLst
            master['varY'] = usgs.varQ
        if master['optQ'] == 2:
            master['varX'] = usgs.varQ+gridMET.varLst
            master['varY'] = None
        if master['optQ'] == 3:
            master['varX'] = gridMET.varLst
            master['varY'] = None
        if master['optQ'] == 4:
            master['varX'] = usgs.varQ
            master['varY'] = None
        outFolder = os.path.join(modelFolder, out)
        with open(os.path.join(outFolder, 'master.json'), 'w') as fp: