From 885a54e1acaf4b582eb35058db3327f0660ee629 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 20 Jan 2017 12:23:13 -0600 Subject: [PATCH 1/8] Fixes #299 --- R/importWaterML1.r | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/R/importWaterML1.r b/R/importWaterML1.r index 68009f03..a7675e08 100644 --- a/R/importWaterML1.r +++ b/R/importWaterML1.r @@ -126,7 +126,9 @@ importWaterML1 <- function(obs_url,asDateTime=FALSE, tz=""){ "America/Anchorage","America/Honolulu", "America/Jamaica","America/Managua", "America/Phoenix","America/Metlakatla")) - }else{tz <- "UTC"} + } else { + tz <- "UTC" + } timeSeries <- xml_find_all(returnedDoc, ".//ns1:timeSeries") #each parameter/site combo @@ -189,9 +191,8 @@ importWaterML1 <- function(obs_url,asDateTime=FALSE, tz=""){ nObs <- length(values) qual <- xml_attr(obs,"qualifiers") - if(all(is.na(qual))){ - noQual <- TRUE - }else{noQual <- FALSE} + + noQual <- all(is.na(qual)) dateTime <- xml_attr(obs,"dateTime") if(asDateTime){ @@ -335,6 +336,8 @@ importWaterML1 <- function(obs_url,asDateTime=FALSE, tz=""){ mergedDF <- mergedDF[c(mergedNames[-tzLoc],mergedNames[tzLoc])] mergedDF <- arrange(mergedDF,site_no, dateTime) + names(mergedDF) <- make.names(names(mergedDF)) + #attach other site info etc as attributes of mergedDF if(!raw){ attr(mergedDF, "url") <- obs_url From c5098ad087ac3245becf476a25d3c185ad806f6e Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 20 Jan 2017 12:34:23 -0600 Subject: [PATCH 2/8] Fixes #281 --- R/importRDB1.r | 8 +++----- R/importWQP.R | 8 +++----- R/importWaterML1.r | 6 +----- R/importWaterML2.r | 10 ++++------ 4 files changed, 11 insertions(+), 21 deletions(-) diff --git a/R/importRDB1.r b/R/importRDB1.r index c7172ec2..06647c02 100644 --- a/R/importRDB1.r +++ b/R/importRDB1.r @@ -86,11 +86,9 @@ importRDB1 <- function(obs_url, asDateTime=TRUE, convertType = TRUE, tz=""){ if(tz != ""){ - tz <- match.arg(tz, c("America/New_York","America/Chicago", - "America/Denver","America/Los_Angeles", - "America/Anchorage","America/Honolulu", - "America/Jamaica","America/Managua", - "America/Phoenix","America/Metlakatla","UTC")) + tz <- match.arg(tz, OlsonNames()) + } else { + tz <- "UTC" } diff --git a/R/importWQP.R b/R/importWQP.R index 2eda9cce..30315cee 100644 --- a/R/importWQP.R +++ b/R/importWQP.R @@ -47,11 +47,9 @@ importWQP <- function(obs_url, zip=FALSE, tz=""){ if(tz != ""){ - tz <- match.arg(tz, c("America/New_York","America/Chicago", - "America/Denver","America/Los_Angeles", - "America/Anchorage","America/Honolulu", - "America/Jamaica","America/Managua", - "America/Phoenix","America/Metlakatla")) + tz <- match.arg(tz, OlsonNames()) + } else { + tz <- "UTC" } if(!file.exists(obs_url)){ diff --git a/R/importWaterML1.r b/R/importWaterML1.r index a7675e08..87841b8b 100644 --- a/R/importWaterML1.r +++ b/R/importWaterML1.r @@ -121,11 +121,7 @@ importWaterML1 <- function(obs_url,asDateTime=FALSE, tz=""){ } if(tz != ""){ #check tz is valid if supplied - tz <- match.arg(tz, c("America/New_York","America/Chicago", - "America/Denver","America/Los_Angeles", - "America/Anchorage","America/Honolulu", - "America/Jamaica","America/Managua", - "America/Phoenix","America/Metlakatla")) + tz <- match.arg(tz, OlsonNames()) } else { tz <- "UTC" } diff --git a/R/importWaterML2.r b/R/importWaterML2.r index 0555fcd3..ca40e20d 100644 --- a/R/importWaterML2.r +++ b/R/importWaterML2.r @@ -42,12 +42,10 @@ importWaterML2 <- function(obs_url, asDateTime=FALSE, tz=""){ if(tz != ""){ - tz <- match.arg(tz, c("America/New_York","America/Chicago", - "America/Denver","America/Los_Angeles", - "America/Anchorage","America/Honolulu", - "America/Jamaica","America/Managua", - "America/Phoenix","America/Metlakatla")) - }else{tz = "UTC"} + tz <- match.arg(tz, OlsonNames()) + } else { + tz = "UTC" + } raw <- FALSE if(class(obs_url) == "character" && file.exists(obs_url)){ From da3905cb653bf283301f91b8de578e6312d4e620 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 20 Jan 2017 12:36:59 -0600 Subject: [PATCH 3/8] Changes the wording from "are" to "include" because now more options will work...but we still want people to focus on this US list (since it's US data) --- R/importRDB1.r | 2 +- R/importWaterML1.r | 2 +- R/importWaterML2.r | 2 +- man/importRDB1.Rd | 2 +- man/importWaterML1.Rd | 2 +- man/importWaterML2.Rd | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/R/importRDB1.r b/R/importRDB1.r index 06647c02..be8d5f93 100644 --- a/R/importRDB1.r +++ b/R/importRDB1.r @@ -9,7 +9,7 @@ #' @param asDateTime logical, if \code{TRUE} returns date and time as POSIXct, if \code{FALSE}, Date #' @param tz character to set timezone attribute of datetime. Default is an empty quote, which converts the #' datetimes to UTC (properly accounting for daylight savings times based on the data's provided tz_cd column). -#' Possible values to provide are "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", +#' Possible values to provide include "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", #' "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla" #' @param convertType logical, defaults to \code{TRUE}. If \code{TRUE}, the function will convert the data to dates, datetimes, #' numerics based on a standard algorithm. If false, everything is returned as a character diff --git a/R/importWaterML1.r b/R/importWaterML1.r index 87841b8b..e1e4ebb9 100644 --- a/R/importWaterML1.r +++ b/R/importWaterML1.r @@ -7,7 +7,7 @@ #' @param asDateTime logical, if \code{TRUE} returns date and time as POSIXct, if \code{FALSE}, Date #' @param tz character to set timezone attribute of . Default is an empty quote, which converts the #' s to UTC (properly accounting for daylight savings times based on the data's provided tz_cd column). -#' Possible values to provide are "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", +#' Possible values to provide include "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", #' "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla" #' @return A data frame with the following columns: #' \tabular{lll}{ diff --git a/R/importWaterML2.r b/R/importWaterML2.r index ca40e20d..50f2f2cc 100644 --- a/R/importWaterML2.r +++ b/R/importWaterML2.r @@ -7,7 +7,7 @@ #' @param asDateTime logical, if \code{TRUE} returns date and time as POSIXct, if \code{FALSE}, character #' @param tz character to set timezone attribute of datetime. Default is an empty quote, which converts the #' datetimes to UTC (properly accounting for daylight savings times based on the data's provided tz_cd column). -#' Possible values to provide are "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", +#' Possible values to provide include "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", #' "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla" #' @return mergedDF a data frame time, value, description, qualifier, and identifier #' @export diff --git a/man/importRDB1.Rd b/man/importRDB1.Rd index 1dd0c2ed..f6c3324b 100644 --- a/man/importRDB1.Rd +++ b/man/importRDB1.Rd @@ -16,7 +16,7 @@ numerics based on a standard algorithm. If false, everything is returned as a ch \item{tz}{character to set timezone attribute of datetime. Default is an empty quote, which converts the datetimes to UTC (properly accounting for daylight savings times based on the data's provided tz_cd column). -Possible values to provide are "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", +Possible values to provide include "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla"} } \value{ diff --git a/man/importWaterML1.Rd b/man/importWaterML1.Rd index 0123d0d2..65d03cb3 100644 --- a/man/importWaterML1.Rd +++ b/man/importWaterML1.Rd @@ -13,7 +13,7 @@ importWaterML1(obs_url, asDateTime = FALSE, tz = "") \item{tz}{character to set timezone attribute of . Default is an empty quote, which converts the s to UTC (properly accounting for daylight savings times based on the data's provided tz_cd column). -Possible values to provide are "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", +Possible values to provide include "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla"} } \value{ diff --git a/man/importWaterML2.Rd b/man/importWaterML2.Rd index bf5fe848..7a77bf84 100644 --- a/man/importWaterML2.Rd +++ b/man/importWaterML2.Rd @@ -13,7 +13,7 @@ importWaterML2(obs_url, asDateTime = FALSE, tz = "") \item{tz}{character to set timezone attribute of datetime. Default is an empty quote, which converts the datetimes to UTC (properly accounting for daylight savings times based on the data's provided tz_cd column). -Possible values to provide are "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", +Possible values to provide include "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla"} } \value{ From d4e868e2c12c6c3327c15fa580851b34f30203cf Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 20 Jan 2017 12:37:14 -0600 Subject: [PATCH 4/8] Version --- DESCRIPTION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 643f2f40..936b2b66 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: dataRetrieval Type: Package Title: Retrieval Functions for USGS and EPA Hydrologic and Water Quality Data -Version: 2.6.6 -Date: 2016-12-15 +Version: 2.6.7 +Date: 2017-01-20 Authors@R: c( person("Robert", "Hirsch", role = c("aut"), email = "rhirsch@usgs.gov"), person("Laura", "DeCicco", role = c("aut","cre"), From be44dcbd772096610f6612fc000d7656fe5b7c8d Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 20 Jan 2017 12:47:55 -0600 Subject: [PATCH 5/8] Few more https holdouts in vignette --- inst/doc/dataRetrieval.Rnw | 26 +++++++++--------- inst/doc/dataRetrieval.pdf | Bin 283645 -> 283756 bytes vignettes/dataRetrieval.Rnw | 26 +++++++++--------- vignettes/figure/getNWIStemperaturePlot-1.pdf | Bin 6760 -> 6597 bytes 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/inst/doc/dataRetrieval.Rnw b/inst/doc/dataRetrieval.Rnw index 51330a6a..b6254248 100644 --- a/inst/doc/dataRetrieval.Rnw +++ b/inst/doc/dataRetrieval.Rnw @@ -275,7 +275,7 @@ Table \ref{tab:func} describes the functions available in the dataRetrieval pack %------------------------------------------------------------ In this section, examples of Web retrievals document how to get raw data. This data includes site information (\ref{sec:usgsSite}), measured parameter information (\ref{sec:usgsParams}), historical daily values(\ref{sec:usgsDaily}), unit values (which include real-time data but can also include other sensor data stored at regular time intervals) (\ref{sec:usgsRT}), water quality data (\ref{sec:usgsWQP}), groundwater level data (\ref{sec:gwl}), peak flow data (\ref{sec:peak}), rating curve data (\ref{sec:rating}, and surface-water measurement data (\ref{sec:meas}). Section \ref{sec:metadata} shows instructions for getting metadata that is attached to each returned data frame. -The USGS organizes hydrologic data in a standard structure. Streamgages are located throughout the United States, and each streamgage has a unique ID (referred in this document and throughout the dataRetrieval package as \enquote{siteNumber}). Often (but not always), these ID's are 8 digits for surface-water sites and 15 digits for groundwater sites. The first step to finding data is discovering this siteNumber. There are many ways to do this, one is the National Water Information System: Mapper \url{http://maps.waterdata.usgs.gov/mapper/index.html}. +The USGS organizes hydrologic data in a standard structure. Streamgages are located throughout the United States, and each streamgage has a unique ID (referred in this document and throughout the dataRetrieval package as \enquote{siteNumber}). Often (but not always), these ID's are 8 digits for surface-water sites and 15 digits for groundwater sites. The first step to finding data is discovering this siteNumber. There are many ways to do this, one is the National Water Information System: Mapper \url{https://maps.waterdata.usgs.gov/mapper/index.html}. Once the siteNumber is known, the next required input for USGS data retrievals is the \enquote{parameter code}. This is a 5-digit code that specifies the measured parameter being requested. For example, parameter code 00631 represents \enquote{Nitrate plus nitrite, water, filtered, milligrams per liter as nitrogen}, with units of \enquote{mg/l as N}. @@ -351,7 +351,7 @@ siteINFO <- readNWISsite(siteNumbers) @ Site information is obtained from: -\url{http://waterservices.usgs.gov/rest/Site-Test-Tool.html} +\url{https://waterservices.usgs.gov/rest/Site-Test-Tool.html} Information on the returned data can be found with the \texttt{comment} function as described in section \ref{sec:metadata}. @@ -453,7 +453,7 @@ parameterINFO <- readNWISpCode(parameterCd) \subsection{Daily Data} \label{sec:usgsDaily} %------------------------------------------------------------ -To obtain daily records of USGS data, use the \texttt{readNWISdv} function. The arguments for this function are siteNumber, parameterCd, startDate, endDate, and statCd (defaults to \texttt{"}00003\texttt{"}). If you want to use the default values, you do not need to list them in the function call. Daily data is pulled from \url{http://waterservices.usgs.gov/rest/DV-Test-Tool.html}. +To obtain daily records of USGS data, use the \texttt{readNWISdv} function. The arguments for this function are siteNumber, parameterCd, startDate, endDate, and statCd (defaults to \texttt{"}00003\texttt{"}). If you want to use the default values, you do not need to list them in the function call. Daily data is pulled from \url{https://waterservices.usgs.gov/rest/DV-Test-Tool.html}. The dates (start and end) must be in the format \texttt{"}YYYY-MM-DD\texttt{"} (note: the user must include the quotes). Setting the start date to \texttt{"}\texttt{"} (no space) will prompt the program to ask for the earliest date, and setting the end date to \texttt{"}\texttt{"} (no space) will prompt for the latest available date. @@ -575,7 +575,7 @@ America/Phoenix America/Metlakatla \end{verbatim} -Data are retrieved from \url{http://waterservices.usgs.gov/rest/IV-Test-Tool.html}. There are occasions where NWIS values are not reported as numbers, instead a common example is \enquote{Ice.} Any value that cannot be converted to a number will be reported as NA in this package. Site information and measured parameter information is attached to the data frame as attributes. This is discused further in section \ref{sec:metadata}. +Data are retrieved from \url{https://waterservices.usgs.gov/rest/IV-Test-Tool.html}. There are occasions where NWIS values are not reported as numbers, instead a common example is \enquote{Ice.} Any value that cannot be converted to a number will be reported as NA in this package. Site information and measured parameter information is attached to the data frame as attributes. This is discused further in section \ref{sec:metadata}. \newpage @@ -673,7 +673,7 @@ surfaceData <- readNWISmeas(siteNumber) \section{Water Quality Portal Web Retrievals} \label{sec:usgsSTORET} %------------------------------------------------------------ -There are additional water quality data sets available from the Water Quality Data Portal (\url{http://www.waterqualitydata.us/}). These data sets can be housed in either the STORET database (data from EPA), NWIS database (data from USGS), STEWARDS database (data from USDA), and additional databases are slated to be included in the future. Because only USGS uses parameter codes, a \texttt{"}characteristic name\texttt{"} must be supplied. The \texttt{readWQPqw} function can take either a USGS parameter code, or a more general characteristic name in the parameterCd input argument. The Water Quality Data Portal includes data discovery tools and information on characteristic names. The following example retrieves specific conductance from a DNR site in Wisconsin. +There are additional water quality data sets available from the Water Quality Data Portal (\url{https://www.waterqualitydata.us/}). These data sets can be housed in either the STORET database (data from EPA), NWIS database (data from USGS), STEWARDS database (data from USDA), and additional databases are slated to be included in the future. Because only USGS uses parameter codes, a \texttt{"}characteristic name\texttt{"} must be supplied. The \texttt{readWQPqw} function can take either a USGS parameter code, or a more general characteristic name in the parameterCd input argument. The Water Quality Data Portal includes data discovery tools and information on characteristic names. The following example retrieves specific conductance from a DNR site in Wisconsin. <>= @@ -683,7 +683,7 @@ specificCond <- readWQPqw('WIDNR_WQX-10032762', A tool for finding NWIS characteristic names can be found at: -\url{http://www.waterqualitydata.us/public_srsnames/} +\url{https://www.waterqualitydata.us/public_srsnames/} \FloatBarrier @@ -699,11 +699,11 @@ The previous examples all took specific input arguments: siteNumber, parameterCd %------------------------------------------------------------ The function \texttt{whatNWISsites} can be used to discover NWIS sites based on any query that the NWIS Site Service offers. This is done by using the \texttt{"..."} argument, which allows the user to use any arbitrary input argument. We can then use the service here: -\url{http://waterservices.usgs.gov/rest/Site-Test-Tool.html} +\url{https://waterservices.usgs.gov/rest/Site-Test-Tool.html} to discover many options for searching for NWIS sites. For example, you may want to search for sites in a lat/lon bounding box, or only sites tidal streams, or sites with water quality samples, sites above a certain altitude, etc. The results of this site query generate a URL. For example, the tool provided a search within a specified bounding box, for sites that have daily discharge (parameter code = 00060) and temperature (parameter code = 00010). The generated URL is: -\url{http://waterservices.usgs.gov/nwis/site/?format=rdb&bBox=-83.0,36.5,-81.0,38.5¶meterCd=00010,00060&hasDataTypeCd=dv} +\url{https://waterservices.usgs.gov/nwis/site/?format=rdb&bBox=-83.0,36.5,-81.0,38.5¶meterCd=00010,00060&hasDataTypeCd=dv} The following dataRetrieval code can be used to get those sites: @@ -731,10 +731,10 @@ For NWIS data, the function \texttt{readNWISdata} can be used. The argument list \multicolumn{1}{c}{\textbf{\textsf{Description}}} & \multicolumn{1}{c}{\textbf{\textsf{Reference URL}}} \\ [0pt] \hline - daily values & dv & \url{http://waterservices.usgs.gov/rest/DV-Test-Tool.html}\\ - [5pt]instantaneous & iv & \url{http://waterservices.usgs.gov/rest/IV-Test-Tool.html}\\ - [5pt]groundwater levels & gwlevels & \url{http://waterservices.usgs.gov/rest/GW-Levels-Test-Tool.html}\\ - [5pt]water quality & qwdata & \url{http://nwis.waterdata.usgs.gov/nwis/qwdata}\\ + daily values & dv & \url{https://waterservices.usgs.gov/rest/DV-Test-Tool.html}\\ + [5pt]instantaneous & iv & \url{https://waterservices.usgs.gov/rest/IV-Test-Tool.html}\\ + [5pt]groundwater levels & gwlevels & \url{https://waterservices.usgs.gov/rest/GW-Levels-Test-Tool.html}\\ + [5pt]water quality & qwdata & \url{https://nwis.waterdata.usgs.gov/nwis/qwdata}\\ \hline \end{tabular} } @@ -761,7 +761,7 @@ siteInfo <- attr(dischargeWI, "siteInfo") Just as with NWIS, the Water Quality Portal (WQP) offers a variety of ways to search for sites and request data. The possible Web service arguments for WQP site searches is found here: -\url{http://www.waterqualitydata.us/webservices_documentation.jsp} +\url{https://www.waterqualitydata.us/webservices_documentation} To discover available sites in the WQP in New Jersey that have measured Chloride, use the function \texttt{whatWQPsites}. diff --git a/inst/doc/dataRetrieval.pdf b/inst/doc/dataRetrieval.pdf index 4fd871ef8e38de35b2a0caf332921723030f5bf9..45d4af9631b01d2ef6ffcdf9b47358e168cebb94 100644 GIT binary patch delta 30659 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 nCCw%E|LtPLB`r>= @@ -683,7 +683,7 @@ specificCond <- readWQPqw('WIDNR_WQX-10032762', A tool for finding NWIS characteristic names can be found at: -\url{http://www.waterqualitydata.us/public_srsnames/} +\url{https://www.waterqualitydata.us/public_srsnames/} \FloatBarrier @@ -699,11 +699,11 @@ The previous examples all took specific input arguments: siteNumber, parameterCd %------------------------------------------------------------ The function \texttt{whatNWISsites} can be used to discover NWIS sites based on any query that the NWIS Site Service offers. This is done by using the \texttt{"..."} argument, which allows the user to use any arbitrary input argument. We can then use the service here: -\url{http://waterservices.usgs.gov/rest/Site-Test-Tool.html} +\url{https://waterservices.usgs.gov/rest/Site-Test-Tool.html} to discover many options for searching for NWIS sites. For example, you may want to search for sites in a lat/lon bounding box, or only sites tidal streams, or sites with water quality samples, sites above a certain altitude, etc. The results of this site query generate a URL. For example, the tool provided a search within a specified bounding box, for sites that have daily discharge (parameter code = 00060) and temperature (parameter code = 00010). The generated URL is: -\url{http://waterservices.usgs.gov/nwis/site/?format=rdb&bBox=-83.0,36.5,-81.0,38.5¶meterCd=00010,00060&hasDataTypeCd=dv} +\url{https://waterservices.usgs.gov/nwis/site/?format=rdb&bBox=-83.0,36.5,-81.0,38.5¶meterCd=00010,00060&hasDataTypeCd=dv} The following dataRetrieval code can be used to get those sites: @@ -731,10 +731,10 @@ For NWIS data, the function \texttt{readNWISdata} can be used. The argument list \multicolumn{1}{c}{\textbf{\textsf{Description}}} & \multicolumn{1}{c}{\textbf{\textsf{Reference URL}}} \\ [0pt] \hline - daily values & dv & \url{http://waterservices.usgs.gov/rest/DV-Test-Tool.html}\\ - [5pt]instantaneous & iv & \url{http://waterservices.usgs.gov/rest/IV-Test-Tool.html}\\ - [5pt]groundwater levels & gwlevels & \url{http://waterservices.usgs.gov/rest/GW-Levels-Test-Tool.html}\\ - [5pt]water quality & qwdata & \url{http://nwis.waterdata.usgs.gov/nwis/qwdata}\\ + daily values & dv & \url{https://waterservices.usgs.gov/rest/DV-Test-Tool.html}\\ + [5pt]instantaneous & iv & \url{https://waterservices.usgs.gov/rest/IV-Test-Tool.html}\\ + [5pt]groundwater levels & gwlevels & \url{https://waterservices.usgs.gov/rest/GW-Levels-Test-Tool.html}\\ + [5pt]water quality & qwdata & \url{https://nwis.waterdata.usgs.gov/nwis/qwdata}\\ \hline \end{tabular} } @@ -761,7 +761,7 @@ siteInfo <- attr(dischargeWI, "siteInfo") Just as with NWIS, the Water Quality Portal (WQP) offers a variety of ways to search for sites and request data. The possible Web service arguments for WQP site searches is found here: -\url{http://www.waterqualitydata.us/webservices_documentation.jsp} +\url{https://www.waterqualitydata.us/webservices_documentation} To discover available sites in the WQP in New Jersey that have measured Chloride, use the function \texttt{whatWQPsites}. diff --git a/vignettes/figure/getNWIStemperaturePlot-1.pdf b/vignettes/figure/getNWIStemperaturePlot-1.pdf index 46cf7c1bf751ee31c029255ef0fe9ea829905a81..ed6227cf2c3baff93b403f041599c56a5da18c9a 100644 GIT binary patch delta 120 zcmaE1a@2T&iMqLgp%D<7m>F7Va_Rf#r?@1Rq$+5*SOGP{>o@0y7NEfDl8>(A0dgl#~mXk*Ot@s;aBM8y5hH79BMJ delta 285 zcmZXMJx;_h5QVj^4*;T@f)ya49mlaOmO4;@H~^KgC&9w8!9PGpPX*#6h#Mer7jD63 zw?Ig|YV^%}-&gxBU*w+RM_e{iC@BsYo=4m1La^T*3*P+syuIU*uEs*1 z`obD1(Z=E_X9qYWeNTYe)JcKHB~!=V(<5MU-cD%LCdB}Fm1td@mf9E!g`stnD7y@} z2(eh|0h0^EWFhOk*S~xh@VbUUr#gCF3t${#pqr_vH|l(=4Sk$#|I7|m(=LIp0|D6P Y;7W-0A8Q4Fd)Voi6oSp?Cl{w|1%n_~u>b%7 From 497383ab23b0ce28d923bff5feb35633d212851a Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 20 Jan 2017 12:56:55 -0600 Subject: [PATCH 6/8] Switch seemed to work, no need for message on next release --- R/AAA.R | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/R/AAA.R b/R/AAA.R index 66eff90e..92654918 100644 --- a/R/AAA.R +++ b/R/AAA.R @@ -5,8 +5,4 @@ pkg.env <- new.env() options(Access.dataRetrieval = NULL) } -.onAttach = function(libname, pkgname){ - packageStartupMessage("USGS is switching from http to https: -Please see https://help.waterdata.usgs.gov/news/December%205%2C%202016 -for more information.") -} + From 465311c19853165040b1ecaad34467a3412c1287 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 20 Jan 2017 13:04:17 -0600 Subject: [PATCH 7/8] Census has switched to https --- R/tabbedDataRetrievals.R | 2 +- man/stateCd.Rd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/R/tabbedDataRetrievals.R b/R/tabbedDataRetrievals.R index 42130c6f..459dee35 100644 --- a/R/tabbedDataRetrievals.R +++ b/R/tabbedDataRetrievals.R @@ -87,7 +87,7 @@ NULL #' US State Code Lookup Table #' -#' Data pulled from \url{http://www2.census.gov/geo/docs/reference/state.txt} +#' Data pulled from \url{https://www2.census.gov/geo/docs/reference/state.txt} #' on April 1, 2015. #' #' @name stateCd diff --git a/man/stateCd.Rd b/man/stateCd.Rd index 314b97fe..05038e03 100644 --- a/man/stateCd.Rd +++ b/man/stateCd.Rd @@ -16,7 +16,7 @@ STATENS \tab character \tab Geographic Names Information System Identifier (GNI } } \description{ -Data pulled from \url{http://www2.census.gov/geo/docs/reference/state.txt} +Data pulled from \url{https://www2.census.gov/geo/docs/reference/state.txt} on April 1, 2015. } \examples{ From ae0e8f7da274d9e338707ed70ff2725e3c8b3f7b Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 20 Jan 2017 13:41:38 -0600 Subject: [PATCH 8/8] Edits suggested by review --- R/importRDB1.r | 18 +++++++++--------- R/importWaterML1.r | 16 ++++++++-------- R/importWaterML2.r | 14 +++++++------- man/importRDB1.Rd | 11 ++++++----- man/importWaterML1.Rd | 11 ++++++----- man/importWaterML2.Rd | 11 ++++++----- 6 files changed, 42 insertions(+), 39 deletions(-) diff --git a/R/importRDB1.r b/R/importRDB1.r index be8d5f93..a7dbae63 100644 --- a/R/importRDB1.r +++ b/R/importRDB1.r @@ -7,10 +7,11 @@ #' #' @param obs_url character containing the url for the retrieval or a file path to the data file. #' @param asDateTime logical, if \code{TRUE} returns date and time as POSIXct, if \code{FALSE}, Date -#' @param tz character to set timezone attribute of datetime. Default is an empty quote, which converts the -#' datetimes to UTC (properly accounting for daylight savings times based on the data's provided tz_cd column). -#' Possible values to provide include "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", -#' "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla" +#' @param tz character to set timezone attribute of datetime. Default converts the datetimes to UTC +#' (properly accounting for daylight savings times based on the data's provided tz_cd column). +#' Recommended US values include "UTC","America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", +#' "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla". +#' For a complete list, see \url{https://en.wikipedia.org/wiki/List_of_tz_database_time_zones} #' @param convertType logical, defaults to \code{TRUE}. If \code{TRUE}, the function will convert the data to dates, datetimes, #' numerics based on a standard algorithm. If false, everything is returned as a character #' @return A data frame with the following columns: @@ -83,14 +84,13 @@ #' fullPath <- file.path(filePath, fileName) #' importUserRDB <- importRDB1(fullPath) #' -importRDB1 <- function(obs_url, asDateTime=TRUE, convertType = TRUE, tz=""){ +importRDB1 <- function(obs_url, asDateTime=TRUE, convertType = TRUE, tz="UTC"){ - if(tz != ""){ - tz <- match.arg(tz, OlsonNames()) - } else { - tz <- "UTC" + if(tz == ""){ + tz <- "UTC" } + tz <- match.arg(tz, OlsonNames()) if(file.exists(obs_url)){ doc <- obs_url diff --git a/R/importWaterML1.r b/R/importWaterML1.r index e1e4ebb9..6d3be092 100644 --- a/R/importWaterML1.r +++ b/R/importWaterML1.r @@ -5,10 +5,11 @@ #' #' @param obs_url character or raw, containing the url for the retrieval or a file path to the data file, or raw XML. #' @param asDateTime logical, if \code{TRUE} returns date and time as POSIXct, if \code{FALSE}, Date -#' @param tz character to set timezone attribute of . Default is an empty quote, which converts the -#' s to UTC (properly accounting for daylight savings times based on the data's provided tz_cd column). -#' Possible values to provide include "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", -#' "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla" +#' @param tz character to set timezone attribute of datetime. Default converts the datetimes to UTC +#' (properly accounting for daylight savings times based on the data's provided tz_cd column). +#' Recommended US values include "UTC","America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", +#' "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla". +#' For a complete list, see \url{https://en.wikipedia.org/wiki/List_of_tz_database_time_zones} #' @return A data frame with the following columns: #' \tabular{lll}{ #' Name \tab Type \tab Description \cr @@ -108,7 +109,7 @@ #' importFile <- importWaterML1(fullPath,TRUE) #' -importWaterML1 <- function(obs_url,asDateTime=FALSE, tz=""){ +importWaterML1 <- function(obs_url,asDateTime=FALSE, tz="UTC"){ #note: obs_url is a dated name, does not have to be a url/path raw <- FALSE if(class(obs_url) == "character" && file.exists(obs_url)){ @@ -120,11 +121,10 @@ importWaterML1 <- function(obs_url,asDateTime=FALSE, tz=""){ returnedDoc <- xml_root(getWebServiceData(obs_url, encoding='gzip')) } - if(tz != ""){ #check tz is valid if supplied - tz <- match.arg(tz, OlsonNames()) - } else { + if(tz == ""){ #check tz is valid if supplied tz <- "UTC" } + tz <- match.arg(tz, OlsonNames()) timeSeries <- xml_find_all(returnedDoc, ".//ns1:timeSeries") #each parameter/site combo diff --git a/R/importWaterML2.r b/R/importWaterML2.r index 50f2f2cc..de982db5 100644 --- a/R/importWaterML2.r +++ b/R/importWaterML2.r @@ -5,10 +5,11 @@ #' #' @param obs_url character or raw, containing the url for the retrieval or a path to the data file, or raw XML. #' @param asDateTime logical, if \code{TRUE} returns date and time as POSIXct, if \code{FALSE}, character -#' @param tz character to set timezone attribute of datetime. Default is an empty quote, which converts the -#' datetimes to UTC (properly accounting for daylight savings times based on the data's provided tz_cd column). -#' Possible values to provide include "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", -#' "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla" +#' @param tz character to set timezone attribute of datetime. Default converts the datetimes to UTC +#' (properly accounting for daylight savings times based on the data's provided tz_cd column). +#' Recommended US values include "UTC","America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", +#' "America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla". +#' For a complete list, see \url{https://en.wikipedia.org/wiki/List_of_tz_database_time_zones} #' @return mergedDF a data frame time, value, description, qualifier, and identifier #' @export #' @importFrom xml2 read_xml @@ -39,13 +40,12 @@ #' fullPath <- file.path(filePath, fileName) #' UserData <- importWaterML2(fullPath) #' -importWaterML2 <- function(obs_url, asDateTime=FALSE, tz=""){ +importWaterML2 <- function(obs_url, asDateTime=FALSE, tz="UTC"){ if(tz != ""){ - tz <- match.arg(tz, OlsonNames()) - } else { tz = "UTC" } + tz <- match.arg(tz, OlsonNames()) raw <- FALSE if(class(obs_url) == "character" && file.exists(obs_url)){ diff --git a/man/importRDB1.Rd b/man/importRDB1.Rd index f6c3324b..19a0895d 100644 --- a/man/importRDB1.Rd +++ b/man/importRDB1.Rd @@ -4,7 +4,7 @@ \alias{importRDB1} \title{Function to return data from the NWIS RDB 1.0 format} \usage{ -importRDB1(obs_url, asDateTime = TRUE, convertType = TRUE, tz = "") +importRDB1(obs_url, asDateTime = TRUE, convertType = TRUE, tz = "UTC") } \arguments{ \item{obs_url}{character containing the url for the retrieval or a file path to the data file.} @@ -14,10 +14,11 @@ importRDB1(obs_url, asDateTime = TRUE, convertType = TRUE, tz = "") \item{convertType}{logical, defaults to \code{TRUE}. If \code{TRUE}, the function will convert the data to dates, datetimes, numerics based on a standard algorithm. If false, everything is returned as a character} -\item{tz}{character to set timezone attribute of datetime. Default is an empty quote, which converts the -datetimes to UTC (properly accounting for daylight savings times based on the data's provided tz_cd column). -Possible values to provide include "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", -"America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla"} +\item{tz}{character to set timezone attribute of datetime. Default converts the datetimes to UTC +(properly accounting for daylight savings times based on the data's provided tz_cd column). +Recommended US values include "UTC","America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", +"America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla". +For a complete list, see \url{https://en.wikipedia.org/wiki/List_of_tz_database_time_zones}} } \value{ A data frame with the following columns: diff --git a/man/importWaterML1.Rd b/man/importWaterML1.Rd index 65d03cb3..f50663e0 100644 --- a/man/importWaterML1.Rd +++ b/man/importWaterML1.Rd @@ -4,17 +4,18 @@ \alias{importWaterML1} \title{Function to return data from the NWISWeb WaterML1.1 service} \usage{ -importWaterML1(obs_url, asDateTime = FALSE, tz = "") +importWaterML1(obs_url, asDateTime = FALSE, tz = "UTC") } \arguments{ \item{obs_url}{character or raw, containing the url for the retrieval or a file path to the data file, or raw XML.} \item{asDateTime}{logical, if \code{TRUE} returns date and time as POSIXct, if \code{FALSE}, Date} -\item{tz}{character to set timezone attribute of . Default is an empty quote, which converts the -s to UTC (properly accounting for daylight savings times based on the data's provided tz_cd column). -Possible values to provide include "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", -"America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla"} +\item{tz}{character to set timezone attribute of datetime. Default converts the datetimes to UTC +(properly accounting for daylight savings times based on the data's provided tz_cd column). +Recommended US values include "UTC","America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", +"America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla". +For a complete list, see \url{https://en.wikipedia.org/wiki/List_of_tz_database_time_zones}} } \value{ A data frame with the following columns: diff --git a/man/importWaterML2.Rd b/man/importWaterML2.Rd index 7a77bf84..383a3933 100644 --- a/man/importWaterML2.Rd +++ b/man/importWaterML2.Rd @@ -4,17 +4,18 @@ \alias{importWaterML2} \title{Function to return data from the WaterML2 data} \usage{ -importWaterML2(obs_url, asDateTime = FALSE, tz = "") +importWaterML2(obs_url, asDateTime = FALSE, tz = "UTC") } \arguments{ \item{obs_url}{character or raw, containing the url for the retrieval or a path to the data file, or raw XML.} \item{asDateTime}{logical, if \code{TRUE} returns date and time as POSIXct, if \code{FALSE}, character} -\item{tz}{character to set timezone attribute of datetime. Default is an empty quote, which converts the -datetimes to UTC (properly accounting for daylight savings times based on the data's provided tz_cd column). -Possible values to provide include "America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", -"America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla"} +\item{tz}{character to set timezone attribute of datetime. Default converts the datetimes to UTC +(properly accounting for daylight savings times based on the data's provided tz_cd column). +Recommended US values include "UTC","America/New_York","America/Chicago", "America/Denver","America/Los_Angeles", +"America/Anchorage","America/Honolulu","America/Jamaica","America/Managua","America/Phoenix", and "America/Metlakatla". +For a complete list, see \url{https://en.wikipedia.org/wiki/List_of_tz_database_time_zones}} } \value{ mergedDF a data frame time, value, description, qualifier, and identifier