Exemple #1
0
from hydroDL.master import basins
from hydroDL.data import usgs, gageII, gridMET, ntn
import numpy as np
from hydroDL.master import slurm
import importlib
import os
import json

dirSel = os.path.join(kPath.dirData, 'USGS', 'inventory', 'siteSel')
with open(os.path.join(dirSel, 'dictRB_Y30N5.json')) as f:
    dictSite = json.load(f)
siteNoLst = dictSite['comb']

# comb model
dataName = 'rbWN5'
wqData = waterQuality.DataModelWQ(dataName)
codeLst = wqData.varC
# labelLst = ['QFP_C', 'QTFP_C', 'QT_C']
for label in labelLst:
    trainSet = 'comb-B10'
    outName = '{}-{}-{}-{}'.format(dataName, 'comb', label, trainSet)
    basins.testModelSeq(outName, siteNoLst, wqData=wqData, retest=True)

# # solo models
# label = 'FP_QC'
# codeLst = usgs.newC
# for code in codeLst:
#     trainSet = '{}-B10'.format(code)
#     outName = '{}-{}-{}-{}'.format(dataName, code, label, trainSet)
#     basins.testModelSeq(outName, siteNoLst, wqData=wqData)
Exemple #2
0
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# test
outName = 'Silica64-00955-Y8090-opt1'

wqData = waterQuality.DataModelWQ('Silica64')
code = '00955'
trainset = 'Y8090'
testset = 'Y0010'
master = basins.loadMaster(outName)

# seq test
siteNoLst = wqData.info['siteNo'].unique().tolist()
basins.testModelSeq(outName, siteNoLst, wqData=wqData)

siteNo = siteNoLst[0]
dfPred, dfObs = basins.loadSeq(outName, siteNo)

fig, axes = plt.subplots(2, 1)
axes[0].plot(np.log(dfPred['00060']), dfPred['00955'], '*')
axes[1].plot(np.log(dfObs['00060']), dfObs['00955'], '*')
fig.show()

ceqMat1 = np.full([len(siteNoLst), 2], np.nan)
dwMat1 = np.full([len(siteNoLst), 2], np.nan)
ceqMat2 = np.full([len(siteNoLst), 2], np.nan)
dwMat2 = np.full([len(siteNoLst), 2], np.nan)
sd = np.datetime64('1980-01-01')
tBar = np.datetime64('2000-01-01')
Exemple #3
0
if 'training' in doLst:
    dataName = 'HBN5'
    codeLst = ['00618', '00955']
    trainset = '00618-00955-all-Y8090'
    testset = '00618-00955-all-Y0010'
    out = 'HBN5-00618-00955-all-Y8090'
    wqData = waterQuality.DataModelWQ(dataName)
    masterName = basins.wrapMaster(dataName='HBN5',
                                   trainName=trainset,
                                   batchSize=[None, 100],
                                   outName=out,
                                   varYC=codeLst,
                                   nEpoch=100)
    basins.trainModelTS(masterName)

# sequence testing
dataName = 'HBN'
outName = 'HBN-00618-00955-all-Y8090-opt2'
trainset = '00618-00955-all-Y8090'
testset = '00618-00955-all-Y0010'

wqData = waterQuality.DataModelWQ(dataName)

# point testing
yP, ycP = basins.testModel(outName, testset, wqData=wqData)

# sequence testing
infoTrain = wqData.info.iloc[wqData.subset[trainset]]
siteNoLst = infoTrain['siteNo'].unique().tolist()
dictPred = basins.testModelSeq(outName, siteNoLst=siteNoLst, wqData=wqData)