from hydroDL import kPath from hydroDL.app import waterQuality 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 warnings warnings.simplefilter('always') dataName = 'sbW' varX = gridMET.varLst + ntn.varLst varY = ['00060'] varYC = ['00410'] subset = '00410-Y1' saveName = 'temp' caseName = basins.wrapMaster(dataName=dataName, trainName=subset, batchSize=[None, 100], outName=saveName, varX=varX, varY=varY, varYC=varYC) basins.trainModelTS(caseName)
from hydroDL import kPath from hydroDL.app import waterQuality from hydroDL.master import basins from hydroDL.data import usgs, gageII, gridMET, ntn, gageII import numpy as np from hydroDL.master import slurm import importlib from hydroDL.model import rnn, crit, trainTS dataName = 'test' varQ = ['00060'] varP = ntn.varLst varT = ['sinT', 'cosT'] varF = gridMET.varLst varX = varQ+varF+varP varXC = gageII.varLst varY = varQ varYC = usgs.newC saveName = 'test' trainSet = 'comb-A10' outName = basins.wrapMaster( dataName=dataName, trainName=trainSet, batchSize=[None, 500], outName=saveName, varX=varX, varY=varY, varYC=varYC, crit='SigmaLoss', nEpoch=10, saveEpoch=10) basins.trainModelTS(outName)
from hydroDL.app import waterQuality from hydroDL.data import gageII from hydroDL.master import basins import pandas as pd import numpy as np import os import time # all gages fileSiteNo = os.path.join(kPath.dirData, 'USGS', 'inventory', 'siteNoLst-1979') siteNoLstAll = pd.read_csv(fileSiteNo, header=None, dtype=str)[0].tolist() dfHBN = pd.read_csv(os.path.join(kPath.dirData, 'USGS', 'inventory', 'HBN.csv'), dtype={ 'siteNo': str}).set_index('siteNo') siteNoHBN = [siteNo for siteNo in dfHBN.index.tolist() if siteNo in siteNoLstAll] # wrap up data caseName = 'HBN-30d' if waterQuality.exist(caseName): wqData = waterQuality.DataModelWQ(caseName) else: wqData = waterQuality.DataModelWQ.new(caseName, siteNoHBN, rho=30) ind1 = wqData.indByRatio(0.8) ind2 = wqData.indByRatio(0.2, first=False) wqData.saveSubset(['first80', 'last20'], [ind1, ind2]) basins.trainModelTS('HBN', 'first80', batchSize=[None, 500], saveName='HBN_opt1', optQ=1) a, b = [200, None]
import argparse import os from hydroDL.master import basins if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('-M', dest='masterName', type=str) args = parser.parse_args() basins.trainModelTS(args.masterName)
wqData.saveSubset('-'.join(sorted(codeLst) + [lab, 'Y0010']), indYr2) 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()