从USGS URL导入水质数据

时间:2014-05-22 03:39:53

标签: r url import

我看到了类似的问题,但要么不是R或有些不同。我正在尝试从USGS网站下载多个站点的水质数据,类似于以下链接:USGS Data

我所要做的就是从类似于上面的URL下载数据,并以可用的格式将数据放入数据框中。我知道有些网址可能没有数据,因此需要进行错误检查。

已经为这个问题提供了一些答案,我很欣赏它。

1 个答案:

答案 0 :(得分:1)

我不确定你想要什么,但如果问题是如何将这个网址中的内容转换为数据框,那么:

url <- "http://waterdata.usgs.gov/nj/nwis/uv?cb_00010=on&format=rdb&site_no=01387940&period=&begin_date=2014-05-14&end_date=2014-05-21"
df  <- read.csv(url,header=T,sep="\t",skip=24)

会奏效。数据以制表符分隔,因此我们指定sep="\t"。前24行是评论,所以我们跳过这些。您可能必须删除第一行,因为它包含的信息看起来与其他行的格式不同。要获取实时数据,请从网址查询字符串中删除名称 - 值对end_date=2014-05-21

编辑对OP评论的回应。

从网站检索数据这是一种有点冗长但更清晰的方法。请注意,没有错误检查。这假定您提供的站点实际上将拥有数据(并非所有站点都有)。

get.waterdata <- function(site) {
  host  <- "http://waterdata.usgs.gov/nj/nwis/uv"
  query <- "cb_00010=on&format=rdb&period=&begin_date=2014-05-14&end_date=2014-05-21"
  query <- paste(query,paste("site_no",site,sep="="),sep="&")
  url   <- paste(host,query,sep="?")
  df <- read.csv(url,header=T,sep="\t",skip=24)
  return(df)
}

df <- get.waterdata("01387950")