## ----include=TRUE ,echo=FALSE,eval=TRUE, message=FALSE, warning=FALSE--------- library(EGRET) library(knitr) knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE, fig.height=7, fig.width=7, out.width = "45%", fig.show = 'hold', fig.align = 'center') ## ----workflowFlowHistory, echo=TRUE,eval=FALSE-------------------------------- # library(EGRET) # # # Flow history analysis # # ############################ # # Gather discharge data: # siteNumber <- "01491000" #Choptank River at Greensboro, MD # startDate <- "" # Get earliest date # endDate <- "" # Get latest date # Daily <- readNWISDaily(siteNumber,"00060",startDate,endDate) # # Gather site and parameter information: # # Here user must input some values for # # the default (interactive=TRUE) # INFO <- readNWISInfo(siteNumber,"00060") # INFO$shortName <- "Choptank River near Greensboro, MD" # ############################ # # ############################ # # Check flow history data: # eList <- as.egret(INFO, Daily, NA, NA) # plotFlowSingle(eList, istat=7,qUnit="thousandCfs") # plotSDLogQ(eList) # plotQTimeDaily(eList, qLower=1,qUnit=3) # plotFour(eList, qUnit=3) # plotFourStats(eList, qUnit=3) # ############################ # # # modify this for your own computer file structure: # savePath<-"/Users/rhirsch/Desktop/" # saveResults(savePath, eList) # ## ----workflowWaterQuality, echo=TRUE,eval=FALSE------------------------------- # library(EGRET) # # ############################ # # Gather discharge data: # siteNumber <- "01491000" #Choptank River near Greensboro, MD # startDate <- "" #Gets earliest date # endDate <- "2011-09-30" # # Gather sample data: # parameter_cd<-"00631" #5 digit USGS code # Sample <- readNWISSample(siteNumber,parameter_cd,startDate,endDate) # #Gets earliest date from Sample record: # #This is just one of many ways to assure the Daily record # #spans the Sample record # startDate <- min(as.character(Sample$Date)) # # Gather discharge data: # Daily <- readNWISDaily(siteNumber,"00060",startDate,endDate) # # Gather site and parameter information: # # # Here user must input some values: # INFO<- readNWISInfo(siteNumber,parameter_cd) # INFO$shortName <- "Choptank River at Greensboro, MD" # # # Merge discharge with sample data: # eList <- mergeReport(INFO, Daily, Sample) # ############################ # # ############################ # # Check sample data: # boxConcMonth(eList) # boxQTwice(eList) # plotConcTime(eList) # plotConcQ(eList) # multiPlotDataOverview(eList) # ############################ # # ############################ # # Run WRTDS model: # eList <- modelEstimation(eList) # ############################ # # ############################ # #Check model results: # # #Require Sample + INFO: # plotConcTimeDaily(eList) # plotFluxTimeDaily(eList) # plotConcPred(eList) # plotFluxPred(eList) # plotResidPred(eList) # plotResidQ(eList) # plotResidTime(eList) # boxResidMonth(eList) # boxConcThree(eList) # # #Require Daily + INFO: # plotConcHist(eList) # plotFluxHist(eList) # # # Multi-line plots: # date1 <- "1985-09-01" # date2 <- "1997-09-0" # date3 <- "2010-09-01" # qBottom<-0.2 # qTop<-10 # plotConcQSmooth(eList, date1, date2, date3, qBottom, qTop, # concMax=2,legendTop = 0.8) # q1 <- 2 # q2 <- 10 # q3 <- 20 # centerDate <- "07-01" # yearEnd <- 1980 # yearStart <- 2010 # plotConcTimeSmooth(eList, q1, q2, q3, centerDate, yearStart, yearEnd, legendTop = 0.7) # # # Multi-plots: # fluxBiasMulti(eList) # # #Contour plots: # clevel<-seq(0,2,0.5) # maxDiff<-0.8 # yearStart <- 1980 # yearEnd <- 2010 # # plotContours(eList, yearStart,yearEnd,qBottom,qTop, # contourLevels = clevel,qUnit=2) # plotDiffContours(eList, yearStart,yearEnd, # qBottom,qTop,maxDiff,qUnit=2) # # # modify this for your own computer file structure: # savePath<-"/Users/rhirsch/Desktop/" # saveResults(savePath, eList) ## ----openDataRetrieval, eval=FALSE-------------------------------------------- # library(dataRetrieval) # vignette("dataRetrieval") ## ----openlibraries, echo=TRUE,eval=FALSE-------------------------------------- # library(EGRET) ## ----firstExample, echo=TRUE, eval=FALSE-------------------------------------- # siteNumber <- "01491000" # startDate <- "2000-01-01" # endDate <- "2013-01-01" # # This call will get NWIS (ft3/s) data , and convert it to m3/s: # Daily <- readNWISDaily(siteNumber, "00060", startDate, endDate) ## ----openDaily, eval = FALSE-------------------------------------------------- # fileName <- "ChoptankRiverFlow.txt" # filePath <- "C:/RData/" # Daily <- readUserDaily(filePath,fileName, # separator="\t") ## ----secondExample,echo=TRUE,eval=FALSE--------------------------------------- # siteNumber <- "01491000" # parameterCd <- "00618" # Sample <-readNWISSample(siteNumber,parameterCd, # startDate, endDate) ## ----STORET,echo=TRUE,eval=FALSE---------------------------------------------- # site <- 'WIDNR_WQX-10032762' # characteristicName <- 'Specific conductance' # Sample <-readWQPSample(site,characteristicName, # startDate, endDate) ## ----openSample, eval = FALSE------------------------------------------------- # fileName <- "ChoptankRiverNitrate.csv" # filePath <- "C:/RData/" # Sample <- readUserSample(filePath,fileName, # separator=",") ## ----openSample2, eval = FALSE------------------------------------------------ # fileName <- "ChoptankPhosphorus.txt" # filePath <- "C:/RData/" # Sample <-readUserSample(filePath,fileName, # separator="\t") ## ----label=tab:exampleComplexQW, echo=FALSE, eval=TRUE,results='asis'--------- cdate <- c("2003-02-15","2003-06-30","2004-09-15","2005-01-30","2005-05-30","2005-10-30") rdp <- c("", "<","<","","","") dp <- c(0.02,0.01,0.005,NA,NA,NA) rpp <- c("", "","<","","","") pp <- c(0.5,0.3,0.2,NA,NA,NA) rtp <- c("","","","","<","<") tp <- c(NA,NA,NA,0.43,0.05,0.02) DF <- data.frame(cdate,rdp,dp,rpp,pp,rtp,tp,stringsAsFactors=FALSE) knitr::kable(DF, caption="Example data", digits=c(0,0,0,3,0,3,0,3)) ## ----thirdExample,echo=FALSE-------------------------------------------------- compressedData <- compressData(DF) Sample <- populateSampleColumns(compressedData) ## ----thirdExampleView,echo=TRUE----------------------------------------------- Sample ## ----ThirdExample, eval=FALSE------------------------------------------------- # parameterCd <- "00618" # siteNumber <- "01491000" # INFO <- readNWISInfo(siteNumber,parameterCd, interactive=FALSE) ## ----WQPInfo, eval=FALSE------------------------------------------------------ # parameterCd <- "00618" # INFO_WQP <- readWQPInfo("USGS-01491000",parameterCd) ## ----addInfoCustom, eval=FALSE, echo=TRUE------------------------------------- # # fileName <- "INFO.csv" # filePath <- "C:/RData/" # # INFO <- readUserInfo(filePath, fileName) # ## ----addInfo, eval=FALSE, echo=TRUE------------------------------------------- # # INFO$riverInfo <- "Major tributary of the Chesapeake Bay" # INFO$GreensboroPopulation <- 1931 # ## ----mergeExample, eval=FALSE------------------------------------------------- # siteNumber <- "01491000" # parameterCd <- "00631" # Nitrate # startDate <- "2000-01-01" # endDate <- "2013-01-01" # # Daily <- readNWISDaily(siteNumber, "00060", startDate, endDate) # Sample <- readNWISSample(siteNumber,parameterCd, startDate, endDate) # INFO <- readNWISInfo(siteNumber, parameterCd) # # eList <- mergeReport(INFO, Daily,Sample) ## ----egretObedit, echo=TRUE, eval=FALSE--------------------------------------- # eListNew <- as.egret(INFO, Daily, Sample, surfaces) # #To pull out the INFO data frame: # INFO <- getInfo(eListNew) # #Edit the INFO data frame: # INFO$importantNews <- "New EGRET workflow started" # #Put new data frame in eListNew # eListNew$INFO <- INFO # #To pull out Daily: # Daily <- getDaily(eListNew) # #Edit for some reason: # DailyNew <- Daily[Daily$DecYear > 1985,] # #Put new Daily data frame back in eListNew: # eListNew$Daily <- DailyNew # #To create a whole new egret object: # eList_2 <- as.egret(INFO, DailyNew, getSample(eListNew), NA) # ## ----cheatSheets,echo=TRUE,eval=TRUE,results='markup'------------------------- printqUnitCheatSheet() ## ----cheatSheets2,echo=TRUE,eval=TRUE,results='markup'------------------------ printFluxUnitCheatSheet() ## ----flowHistory,echo=TRUE,eval=FALSE----------------------------------------- # siteNumber <- "14105700" # startDate <- "" # endDate <- "" # # Daily <- readNWISDaily(siteNumber,"00060",startDate,endDate) # INFO <- readNWISInfo(siteNumber,"",interactive=FALSE) # INFO$shortName <- "Columbia River at The Dalles, OR" # # eList <- as.egret(INFO, Daily, NA, NA) ## ----flowHistoryLoad,echo=FALSE----------------------------------------------- fileName <- "eListColumbia.RData" load(fileName) eList <- eListColumbia ## ----newChunckWinter, echo=TRUE,eval=FALSE------------------------------------ # eList <- setPA(eList,paStart=12,paLong=3) ## ----newChunck, echo=TRUE----------------------------------------------------- eList <- setPA(eList) ## ----plotSingleandSD, echo=TRUE, fig.cap="Plots of discharge statistics"------ plotFlowSingle(eList, istat=5,qUnit="thousandCfs") plotSDLogQ(eList) ## ----Merced, echo=TRUE,eval=FALSE--------------------------------------------- # # Merced River at Happy Isles Bridge, CA: # siteNumber<-"11264500" # Daily <-readNWISDaily(siteNumber,"00060",startDate="",endDate="") # INFO <- readNWISInfo(siteNumber,"",interactive=FALSE) # INFO$shortName <- "Merced River at Happy Isles Bridge, CA" # eList <- as.egret(INFO, Daily, NA, NA) ## ----Merceddata, echo=FALSE--------------------------------------------------- fileName <- "eListMerced.RData" load(fileName) eList <- eListMerced ## ----Mercedplot, echo=TRUE,fig.cap="Merced River winter trend"---------------- plotFlowSingle(eList, istat=5) # Then, we can run the same function, but first set # the pa to start in December and only run for 3 months. eListMerced <- setPA(eList,paStart=12,paLong=3) plotFlowSingle(eListMerced,istat=5,qMax=200) ## ----plotFour, echo=TRUE, fig.cap="plotFour(eListMerced, qUnit=3)", out.width="100%"---- plotFour(eList, qUnit=3) ## ----plotFourStats,echo=TRUE,out.width="100%", fig.cap="plotFourStats(eListMerced, qUnit=3)"---- plotFourStats(eList, qUnit=3) ## ----MississippiData, echo=TRUE,eval=FALSE------------------------------------ # #Mississippi River at Keokuk Iowa: # siteNumber<-"05474500" # Daily <-readNWISDaily(siteNumber,"00060",startDate="",endDate="") # INFO <- readNWISInfo(siteNumber,"",interactive=FALSE) # INFO$shortName <- "Mississippi River at Keokuk Iowa" # eList <- as.egret(INFO, Daily, NA, NA) ## ----MissDataRetrieval, echo=FALSE-------------------------------------------- fileName <- "eListMiss.RData" load(fileName) eList <- eListMiss ## ----MississippiPlot, echo=TRUE,fig.cap="Mississippi River at Keokuk Iowa"---- plotQTimeDaily(eList, qUnit=3,qLower=300) ## ----printSeries, eval=FALSE,echo=TRUE---------------------------------------- # seriesResult <- printSeries(eList, istat=3, qUnit=3) ## ----tfc, echo=TRUE----------------------------------------------------------- tableFlowChange(eList, istat=3, qUnit=3,yearPoints=c(1890,1950,2010)) ## ----wrtds1,eval=FALSE,echo=TRUE---------------------------------------------- # #Choptank River at Greensboro, MD: # siteNumber <- "01491000" # startDate <- "1979-10-01" # endDate <- "2011-09-30" # param<-"00631" # Daily <- readNWISDaily(siteNumber,"00060",startDate,endDate) # INFO<- readNWISInfo(siteNumber,param,interactive=FALSE) # INFO$shortName <- "Choptank River" # # Sample <- readNWISSample(siteNumber,param,startDate,endDate) # eList <- mergeReport(INFO, Daily, Sample) ## ----wrtds2,eval=TRUE,echo=FALSE---------------------------------------------- siteNumber <- "01491000" #Choptank River at Greensboro, MD startDate <- "1979-10-01" endDate <- "2011-09-30" param<-"00631" eList <- Choptank_eList Daily <- getDaily(eList) Sample <- getSample(eList) INFO <- getInfo(eList) ## ----plotBoxes, echo=TRUE, fig.cap="Concentration box plots"------------------ boxConcMonth(eList) boxQTwice(eList,qUnit=1) ## ----plotConcTime,echo=TRUE, fig.cap="The relation of concentration vs time or discharge"---- plotConcTime(eList) plotConcQ(eList, qUnit=1) ## ----plotFluxQ,echo=TRUE, fig.cap="The relation of flux vs discharge"--------- plotFluxQ(eList, fluxUnit=4) ## ----multiPlotDataOverview, echo=TRUE,out.width="100%", fig.cap="multiPlotDataOverview(eList, qUnit=1)"---- multiPlotDataOverview(eList, qUnit=1) ## ----flowDuration, echo=TRUE-------------------------------------------------- flowDuration(eList, qUnit=1) flowDuration(eList, qUnit=1, centerDate="09-30", span=30) ## ----wrtds3, eval=FALSE, echo=TRUE-------------------------------------------- # eList <- modelEstimation(eList) ## ----wrtds5, eval=FALSE, echo=TRUE-------------------------------------------- # #An example directory name # savePath <- "C:/Users/egretUser/WRTDS_Output/" # saveResults(savePath, eList) ## ----wrtds8, eval=FALSE, echo=TRUE-------------------------------------------- # loadPath <- "C:/Users/egretUser/WRTDS_Output/" # staAbbrev <- "Chop" # constitAbbrev <- "NO3" # pathToFile <- paste0(loadPath,staAbbrev,".", # constitAbbrev,".RData") # load(pathToFile) ## ----getChopData1,echo=FALSE,eval=TRUE---------------------------------------- # Sample <- getSample(eList) # Daily <- getDaily(eList) # INFO <- getInfo(eList) # surfaces <- getSurfaces(eList) eList <- Choptank_eList ## ----plotConcTimeDaily, echo=TRUE, fig.cap="Concentration and flux vs time"---- # Return to water year: eList <- setPA(eList) yearStart <- 2008 yearEnd <- 2010 plotConcTimeDaily(eList, yearStart, yearEnd) plotFluxTimeDaily(eList, yearStart, yearEnd) ## ----plotFluxPred, echo=TRUE, fig.cap="Concentration and flux predictions"---- plotConcPred(eList) plotFluxPred(eList) ## ----plotResidQ, echo=TRUE, fig.cap="Residuals"------------------------------- plotResidPred(eList) plotResidQ(eList, qUnit=1) ## ----boxResidMonth, echo=TRUE, fig.cap="Residuals with respect to time"------- plotResidTime(eList) boxResidMonth(eList) ## ----boxConcThree, echo=TRUE, fig.cap="Default boxConcThree(eList)"----------- boxConcThree(eList) ## ----plotFluxHist, echo=TRUE, fig.cap="Concentration and flux history"-------- plotConcHist(eList) plotFluxHist(eList) ## ----plotConcQSmooth, echo=TRUE, fig.cap="Concentration vs. discharge"-------- # Multi-line plots: date1 <- "1985-09-01" date2 <- "1997-09-01" date3 <- "2010-09-01" qBottom <- 0.2 qTop <- 10 plotConcQSmooth(eList, date1, date2, date3, qBottom, qTop, concMax=2,legendTop = 0.5) plotConcQSmooth(eList, date1, date2, date3, qBottom, qTop, legendTop = 0.5,logScale=TRUE) ## ----plotConcTimeSmooth, echo=TRUE, fig.cap="plotConcTimeSmooth(eList)"------- q1 <- 2 q2 <- 10 q3 <- 20 centerDate <- "07-01" yearEnd <- 1980 yearStart <- 2010 plotConcTimeSmooth(eList, q1, q2, q3, centerDate, yearStart, yearEnd, legendTop = 0.4) plotConcTimeSmooth(eList, q1, q2, q3, centerDate, yearStart, yearEnd, legendTop = 0.4,logScale=TRUE) ## ----fluxBiasMulti, echo=TRUE, fig.cap="fluxBiasMulti(eList, qUnit=1)",fig.show='asis',fig.width=8, fig.height=10,fig.pos="h", out.width="100%"---- fluxBiasMulti(eList, qUnit=1) ## ----plotContours,out.width="100%",fig.height=5, echo=TRUE,fig.cap="plotContours(eList)"---- clevel<-seq(0,2,0.2) plotContours(eList, yearStart=1980,yearEnd=2010,qBottom=0.5,qTop=20, contourLevels = clevel) ## ----plotDiffContours, echo=TRUE,out.width="100%",fig.height=5, fig.cap="plotDiffContours(eList)"---- plotDiffContours(eList, year0=1990,year1=2010, qBottom=0.5,qTop=20,maxDiff=0.6) ## ----tableResults1, echo=TRUE, eval=FALSE------------------------------------- # tableResults(eList) # returnDF <- tableResults(eList) ## ----tableResults2, echo=FALSE, eval=TRUE,results='hide'---------------------- returnDF <- tableResults(eList) ## ----tableResultshead, echo=FALSE, results='asis'----------------------------- knitr::kable(head(returnDF), caption="Table created from `head(returnDF)`", digits=c(0,0,2,3,3,3,3)) ## ----tableChange1, eval=TRUE, echo=TRUE--------------------------------------- tableChange(eList, yearPoints=c(2000,2005,2010)) ## ----tableChangeSingleR, eval=TRUE, echo=TRUE,results='hide'------------------ returnDF <- tableChangeSingle(eList, yearPoints=c(2000,2005,2010)) ## ----tableResultsShow, echo=FALSE, results='asis'----------------------------- knitr::kable(returnDF, caption="Table created from `tableChangeSingle` function", digits=c(0,0,0,3,2,1,1)) ## ----adjustSize,echo=TRUE,eval=TRUE,fig.cap="Modifying text and point size, as shown using the `plotConcQ` function"---- plotConcQ(eList, cex.axis=2,cex.main=1.5,logScale=TRUE) plotConcQ(eList, cex.lab=2,cex=2,logScale=TRUE) ## ----plotConcQComparison,echo=TRUE,eval=TRUE,fig.cap="Modified `plotConcQ`"---- plotConcQ(eList, logScale=TRUE) par(mar=c(8,8,8,8)) plotConcQ(eList, customPar=TRUE,col="blue",cex=1.1, cex.axis=1.4,cex.main=1.5,cex.lab=1.2, pch=18,lwd=2,logScale=TRUE) grid(lwd=2) legend(4.5,.09,"Choptank Nitrogen", pch=18, col="blue",bg="white") arrows(3, 0.14, 1, .05,lwd=2) text(12,.14,"Censored Value") ## ----easyFontChange,echo=TRUE,eval=TRUE,fig.cap="Serif font"------------------ # Switching to serif font: par(family="serif") plotFluxPred(eList, customPar=TRUE) mtext(side=3,line=-3,"Serif font example",cex=3) ## ----modifiedContour1,echo=TRUE,eval=TRUE,fig.cap="Contour plot with modified axis and color scheme", out.width="100%",fig.height=5---- colors <- colorRampPalette(c("white","black")) yTicksModified <- c(.5,1,10,25) plotContours(eList, 2001,2010,0.5,50, contourLevels = seq(0,2.5,0.5),qUnit=2, yTicks=yTicksModified, color.palette=colors, flowDuration=FALSE, tcl=0.2,tick.lwd=2.5) ## ----modifiedDiffContour,echo=TRUE,eval=TRUE,fig.cap="Difference contour plot with modified color scheme",out.width="100%",fig.height=5---- colors <- colorRampPalette(c("yellow","white","blue")) maxDiff<-0.6 par(oma=c(1,1,1,1)) plotDiffContours(eList, year0=2001,year1=2010,qBottom=0.5,qTop=50, maxDiff,lwd=2,qUnit=2, color.palette=colors, flowDuration=FALSE, customPar=TRUE) ## ----tinyPlot1,echo=TRUE,eval=TRUE,fig.cap="Custom multipanel plot using tinyPlot", out.width="100%"---- par(mfcol = c(2, 2), oma = c(0, 1.7, 6, 1.7)) plotFluxQ(eList, tinyPlot=TRUE,printTitle=FALSE, fluxUnit=9,logScale=TRUE,fluxMax=1) plotConcQ(eList, tinyPlot=TRUE,printTitle=FALSE) plotFluxHist(eList, tinyPlot=TRUE,printTitle=FALSE,fluxMax=1) plotConcHist(eList, tinyPlot=TRUE,printTitle=FALSE,concMax=3) mtext("Custom multi-pane graph using tinyPlot=TRUE", outer=TRUE, font=2) ## ----customPanel,echo=TRUE,eval=TRUE,fig.cap="Custom multipanel plot", out.width="100%"---- par(mar=c(3.5,3.5,0.2,0.2), # whitespace around the plots oma=c(1,1,3,1), # outer margin mgp=c(2,0.5,0), # spacing between the label numbers and plots mfcol = c(2,2)) # rows/columns plotFluxQ(eList, tinyPlot=TRUE,printTitle=FALSE, fluxUnit=9,logScale=TRUE,fluxMax=1, showXLabels=FALSE,showXAxis=FALSE, showYLabels=TRUE,customPar=TRUE) plotConcQ(eList, tinyPlot=TRUE,printTitle=FALSE, customPar=TRUE, removeLastY=TRUE,removeLastX=TRUE, showYLabels=TRUE) plotFluxHist(eList, tinyPlot=TRUE,printTitle=FALSE,fluxMax=1, showYLabels=FALSE,showYAxis=FALSE, showXLabels=FALSE,showXAxis=FALSE, customPar=TRUE) plotConcHist(eList, tinyPlot=TRUE,printTitle=FALSE,concMax=3, showYLabels=FALSE, showYAxis=FALSE, customPar=TRUE) mtext("Custom multi-pane graph using customPar", outer=TRUE, font=2) ## ----helpFunc,eval = FALSE---------------------------------------------------- # ?plotConcQ ## ----rawFunc,eval = FALSE----------------------------------------------------- # plotConcQ ## ----installFromCran,eval = FALSE--------------------------------------------- # install.packages("EGRET") ## ----openLibraryTest, eval=FALSE---------------------------------------------- # library(EGRET) ## ----label=getSiteApp, echo=TRUE,eval=TRUE------------------------------------ tableData <- tableResults(eList) ## ----label=saveData, echo=TRUE, eval=FALSE------------------------------------ # write.table(tableData, file="tableData.tsv",sep="\t", # row.names = FALSE,quote=FALSE) ## ----getTable, echo = FALSE--------------------------------------------------- knitr::include_graphics("table1.png") ## ----label=savePlots, echo=TRUE, eval=FALSE----------------------------------- # jpeg("plotFlowSingle.jpg") # plotFlowSingle(eList, 1) # dev.off() # # png("plotFlowSingle.png") # plotFlowSingle(eList,1) # dev.off() # # pdf("plotFlowSingle.pdf") # plotFlowSingle(eList,1) # dev.off() # # postscript("plotFlowSingle.ps") # plotFlowSingle(eList,1) # dev.off() # # #Many plots saved to one pdf: # pdf("manyPlots.pdf") # plotFlowSingle(eList,1) # plotFlowSingle(eList,2) # plotFlowSingle(eList,3) # plotFlowSingle(eList,4) # dev.off() # ## ----label=savePlots2, echo=TRUE, eval=FALSE---------------------------------- # postscript("fluxBiasMulti.ps", height=10,width=8) # fluxBiasMulti(eList) # dev.off()