Skip to content
Snippets Groups Projects
Commit 2d03d156 authored by Laura A DeCicco's avatar Laura A DeCicco
Browse files

Added some easy checks to the water quality data to assure that the number of...

Added some easy checks to the water quality data to assure that the number of samples returned matched what the water quality portal said should return.
parent 31c6f85a
No related branches found
No related tags found
No related merge requests found
...@@ -56,7 +56,8 @@ Collate: ...@@ -56,7 +56,8 @@ Collate:
'padVariable.r' 'padVariable.r'
Depends: Depends:
R (>= 2.15.0), R (>= 2.15.0),
XML XML,
RCurl
Imports: Imports:
zoo zoo
Suggests: Suggests:
......
...@@ -21,8 +21,13 @@ ...@@ -21,8 +21,13 @@
getRawQWData <- function(siteNumber,ParameterCd,StartDate,EndDate,interactive=TRUE){ getRawQWData <- function(siteNumber,ParameterCd,StartDate,EndDate,interactive=TRUE){
url <- constructNWISURL(siteNumber,ParameterCd,StartDate,EndDate,"wqp") url <- constructNWISURL(siteNumber,ParameterCd,StartDate,EndDate,"wqp")
h <- basicHeaderGatherer()
doc <- getURI(url, headerfunction = h$update)
numToBeReturned <- as.numeric(h$value()["Total-Result-Count"])
suppressWarnings(retval <- read.delim(url, header = TRUE, quote="\"", dec=".", sep='\t', colClasses=c('character'), fill = TRUE)) suppressWarnings(retval <- read.delim(url, header = TRUE, quote="\"", dec=".", sep='\t', colClasses=c('character'), fill = TRUE))
actualNumReturned <- nrow(retval)
if(actualNumReturned != numToBeReturned) warning(numToBeReturned, " sample results were expected, ", actualNumReturned, " were returned")
return(retval) return(retval)
} }
\ No newline at end of file
...@@ -45,23 +45,15 @@ getWQPData <- function(siteNumber,characteristicName,StartDate,EndDate,interacti ...@@ -45,23 +45,15 @@ getWQPData <- function(siteNumber,characteristicName,StartDate,EndDate,interacti
"&startDateHi=", "&startDateHi=",
EndDate, EndDate,
"&countrycode=US&mimeType=tsv",sep = "") "&countrycode=US&mimeType=tsv",sep = "")
h <- basicHeaderGatherer()
doc <- getURI(url, headerfunction = h$update)
numToBeReturned <- as.numeric(h$value()["Total-Result-Count"])
suppressWarnings(retval <- read.delim(url, header = TRUE, quote="\"", dec=".", sep='\t', colClasses=c('character'), fill = TRUE)) suppressWarnings(retval <- read.delim(url, header = TRUE, quote="\"", dec=".", sep='\t', colClasses=c('character'), fill = TRUE))
qualifier <- ifelse(( qualifier <- ifelse((retval$ResultDetectionConditionText == "Not Detected" |
( retval$ResultDetectionConditionText == "Detected Not Quantified" |
retval$ResultDetectionConditionText == "Not Detected" retval$ResultMeasureValue < retval$DetectionQuantitationLimitMeasure.MeasureValue),"<","")
& length(grep("Lower", retval$DetectionQuantitationLimitTypeName)) > 0
)
|
(
retval$ResultMeasureValue < retval$DetectionQuantitationLimitMeasure.MeasureValue
& retval$ResultValueTypeName == "Actual"
)
),
"<",
""
)
correctedData<-ifelse((nchar(qualifier)==0),retval$ResultMeasureValue,retval$DetectionQuantitationLimitMeasure.MeasureValue) correctedData<-ifelse((nchar(qualifier)==0),retval$ResultMeasureValue,retval$DetectionQuantitationLimitMeasure.MeasureValue)
test <- data.frame(retval$CharacteristicName) test <- data.frame(retval$CharacteristicName)
...@@ -70,6 +62,9 @@ getWQPData <- function(siteNumber,characteristicName,StartDate,EndDate,interacti ...@@ -70,6 +62,9 @@ getWQPData <- function(siteNumber,characteristicName,StartDate,EndDate,interacti
test$dateTime <- as.Date(retval$ActivityStartDate, "%Y-%m-%d") test$dateTime <- as.Date(retval$ActivityStartDate, "%Y-%m-%d")
originalLength <- nrow(test) originalLength <- nrow(test)
if(originalLength != numToBeReturned) warning(numToBeReturned, " sample results were expected, ", originalLength, " were returned")
test$qualifier <- qualifier test$qualifier <- qualifier
test$value <- as.numeric(correctedData) test$value <- as.numeric(correctedData)
...@@ -85,5 +80,6 @@ getWQPData <- function(siteNumber,characteristicName,StartDate,EndDate,interacti ...@@ -85,5 +80,6 @@ getWQPData <- function(siteNumber,characteristicName,StartDate,EndDate,interacti
data <- reshape(test, idvar="dateTime", timevar = "CharacteristicName", direction="wide") data <- reshape(test, idvar="dateTime", timevar = "CharacteristicName", direction="wide")
data$dateTime <- format(data$dateTime, "%Y-%m-%d") data$dateTime <- format(data$dateTime, "%Y-%m-%d")
data$dateTime <- as.Date(data$dateTime) data$dateTime <- as.Date(data$dateTime)
return(data) return(data)
} }
\ No newline at end of file
...@@ -9,14 +9,14 @@ ...@@ -9,14 +9,14 @@
retrieval} retrieval}
} }
\value{ \value{
Daily a data frame containing columns 'Date' and mergedDF a data frame containing columns agency, site,
'Discharge' dateTime, values, and remark codes for all requested
combinations
} }
\description{ \description{
This function accepts a url parameter that already This function accepts a url parameter that already
contains the desired NWIS site, parameter code, contains the desired NWIS site, parameter code,
statistic, startdate and enddate. It returns a data frame statistic, startdate and enddate.
containing "Date" and "Discharge"
} }
\examples{ \examples{
url <- "http://waterservices.usgs.gov/nwis/dv/?format=waterml,1.1&sites=" url <- "http://waterservices.usgs.gov/nwis/dv/?format=waterml,1.1&sites="
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment