From 2d03d1567e0ee376d89db934e20613f804edfbac Mon Sep 17 00:00:00 2001 From: Laura DeCicco <ldecicco@usgs.gov> Date: Mon, 8 Apr 2013 10:13:26 -0500 Subject: [PATCH] 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. --- DESCRIPTION | 3 ++- R/getRawQWData.r | 7 ++++++- R/getWQPData.r | 24 ++++++++++-------------- man/getWaterML1Data.Rd | 8 ++++---- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index b980422e..f566b42c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -56,7 +56,8 @@ Collate: 'padVariable.r' Depends: R (>= 2.15.0), - XML + XML, + RCurl Imports: zoo Suggests: diff --git a/R/getRawQWData.r b/R/getRawQWData.r index 57ae17a7..3ab00903 100644 --- a/R/getRawQWData.r +++ b/R/getRawQWData.r @@ -21,8 +21,13 @@ getRawQWData <- function(siteNumber,ParameterCd,StartDate,EndDate,interactive=TRUE){ 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)) + actualNumReturned <- nrow(retval) + + if(actualNumReturned != numToBeReturned) warning(numToBeReturned, " sample results were expected, ", actualNumReturned, " were returned") return(retval) } \ No newline at end of file diff --git a/R/getWQPData.r b/R/getWQPData.r index 488279bd..9f8cae0e 100644 --- a/R/getWQPData.r +++ b/R/getWQPData.r @@ -45,23 +45,15 @@ getWQPData <- function(siteNumber,characteristicName,StartDate,EndDate,interacti "&startDateHi=", EndDate, "&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)) - qualifier <- ifelse(( - ( - retval$ResultDetectionConditionText == "Not Detected" - & length(grep("Lower", retval$DetectionQuantitationLimitTypeName)) > 0 - ) - | - ( - retval$ResultMeasureValue < retval$DetectionQuantitationLimitMeasure.MeasureValue - & retval$ResultValueTypeName == "Actual" - ) - ), - "<", - "" - ) + qualifier <- ifelse((retval$ResultDetectionConditionText == "Not Detected" | + retval$ResultDetectionConditionText == "Detected Not Quantified" | + retval$ResultMeasureValue < retval$DetectionQuantitationLimitMeasure.MeasureValue),"<","") correctedData<-ifelse((nchar(qualifier)==0),retval$ResultMeasureValue,retval$DetectionQuantitationLimitMeasure.MeasureValue) test <- data.frame(retval$CharacteristicName) @@ -70,6 +62,9 @@ getWQPData <- function(siteNumber,characteristicName,StartDate,EndDate,interacti test$dateTime <- as.Date(retval$ActivityStartDate, "%Y-%m-%d") originalLength <- nrow(test) + + if(originalLength != numToBeReturned) warning(numToBeReturned, " sample results were expected, ", originalLength, " were returned") + test$qualifier <- qualifier test$value <- as.numeric(correctedData) @@ -85,5 +80,6 @@ getWQPData <- function(siteNumber,characteristicName,StartDate,EndDate,interacti data <- reshape(test, idvar="dateTime", timevar = "CharacteristicName", direction="wide") data$dateTime <- format(data$dateTime, "%Y-%m-%d") data$dateTime <- as.Date(data$dateTime) + return(data) } \ No newline at end of file diff --git a/man/getWaterML1Data.Rd b/man/getWaterML1Data.Rd index c8cc08e7..eb259185 100644 --- a/man/getWaterML1Data.Rd +++ b/man/getWaterML1Data.Rd @@ -9,14 +9,14 @@ retrieval} } \value{ - Daily a data frame containing columns 'Date' and - 'Discharge' + mergedDF a data frame containing columns agency, site, + dateTime, values, and remark codes for all requested + combinations } \description{ This function accepts a url parameter that already contains the desired NWIS site, parameter code, - statistic, startdate and enddate. It returns a data frame - containing "Date" and "Discharge" + statistic, startdate and enddate. } \examples{ url <- "http://waterservices.usgs.gov/nwis/dv/?format=waterml,1.1&sites=" -- GitLab