Skip to contents

Imports data from NWIS daily web service. This function gets the data from here: https://waterservices.usgs.gov/docs/dv-service/daily-values-service-details/ Inputs to this function are just USGS site ids, USGS parameter codes, USGS statistic codes, and start and end date. For a more complex query, use readNWISdata, with an argument service = "dv". Data coming the daily web services are aggregates of the instantaneous (sensor) web services. Not all statistical codes are available for all data. Use the function whatNWISdata to discover what data is available for a USGS site. The column data_type_cd with the values "dv" returned from whatNWISdata) are available from this service.

Usage

readNWISdv(
  siteNumbers,
  parameterCd,
  startDate = "",
  endDate = "",
  statCd = "00003"
)

Arguments

siteNumbers

character USGS site number. This is usually an 8 digit number. Multiple sites can be requested with a character vector.

parameterCd

character of USGS parameter code(s). This is usually an 5 digit number.

startDate

character starting date for data retrieval in the form YYYY-MM-DD. Default is "" which indicates retrieval for the earliest possible record. Date arguments are always specified in local time.

endDate

character ending date for data retrieval in the form YYYY-MM-DD. Default is "" which indicates retrieval for the latest possible record. Date arguments are always specified in local time.

statCd

character USGS statistic code. This is usually 5 digits. Daily mean (00003) is the default.

Value

A data frame with the following columns:

NameTypeDescription
agencycharacterThe NWIS code for the agency reporting the data
sitecharacterThe USGS site number
DateDateThe date of the value
codecharacterAny codes that qualify the corresponding value
valuenumericThe numeric value for the parameter

Note that code and value are repeated for the parameters requested. The names are of the form X_D_P_S, where X is literal, D is an option description of the parameter, P is the parameter code, and S is the statistic code (if applicable).

There are also several useful attributes attached to the data frame:

NameTypeDescription
urlcharacterThe url used to generate the data
siteInfodata.frameA data frame containing information on the requested sites
variableInfodata.frameA data frame containing information on the requested parameters
statisticInfodata.frameA data frame containing information on the requested statistics on the data
queryTimePOSIXctThe time the data was returned

Details

More information on the web service can be found here: https://waterservices.usgs.gov/test-tools, choosing the "Daily Value Service".

Examples

site_id <- "04085427"
startDate <- "2012-01-01"
endDate <- "2012-06-30"
pCode <- "00060"
# \donttest{
rawDailyQ <- readNWISdv(site_id, pCode, startDate, endDate)
rawDailyQAndTempMeanMax <- readNWISdv(site_id, c("00010", "00060"),
  startDate, endDate,
  statCd = c("00001", "00003")
)
rawDailyQAndTempMeanMax <- renameNWISColumns(rawDailyQAndTempMeanMax)
rawDailyMultiSites <- readNWISdv(c("01491000", "01645000"), c("00010", "00060"),
  startDate, endDate,
  statCd = c("00001", "00003")
)
# Site with no data:
x <- readNWISdv("10258500", "00060", "2014-09-08", "2014-09-14")
names(attributes(x))
#> [1] "names"         "row.names"     "url"           "siteInfo"     
#> [5] "variableInfo"  "disclaimer"    "statisticInfo" "queryTime"    
#> [9] "class"        
attr(x, "siteInfo")
#>                      station_nm  site_no agency_cd timeZoneOffset
#> 1 PALM CYN C NR PALM SPRINGS CA 10258500      USGS         -08:00
#>   timeZoneAbbreviation dec_lat_va dec_lon_va       srs siteTypeCd    hucCd
#> 1                  PST   33.74502  -116.5356 EPSG:4326         ST 18100201
#>   stateCd countyCd network
#> 1      06    06065    NWIS
attr(x, "variableInfo")
#>   variableCode           variableName              variableDescription
#> 1        00060 Streamflow, ft&#179;/s Discharge, cubic feet per second
#>       valueType param_unit options noDataValue
#> 1 Derived Value      ft3/s    Mean          NA

site <- "05212700"
notActive <- readNWISdv(site, "00060", "2014-01-01", "2014-01-07")
# }