我正在尝试使用R Studio中的dbhydroR软件包为南佛罗里达水管理区的所有有效和无效地下水井以及地下水质量下载多个变量的数据集。一些变量来自地下水的水文和物理数据,一些变量来自地下水的水质数据。
可以使用哪些代码批量下载此信息?
答案 0 :(得分:1)
tldr; 你可以这样做,但如果没有大量的人工干预,这是不可能的。
对于水力数据,您可以将站点地图上的所有站点(https://www.sfwmd.gov/sites/default/files/documents/em_well_monitor_map.pdf)提供给get_hydro
,方法是向其提供一个非常长的站点向量。为此,您可以将stationid参数设置为一个非常长的向量,而不是下面显示的两个站点:
get_hydro(stationid = c("C-54", "G-561"),
category = "GW", freq = "DA",
date_min = "1990-01-01", date_max = "1990-02-02",
longest = TRUE)
对于水质数据,您可以为站点地图上的所有站点(http://my.sfwmd.gov/WAB/EnvironmentalMonitoring/index.html)以及test_name
上的所有get_wq
个站点提供信息。 3}}通过扩展传递给test_name
和station_id
参数的向量来get_wq(station_id = c("FLAB08", "FLAB09"),
date_min = "2011-03-01", date_max = "2012-05-01",
test_name = c("CHLOROPHYLLA-SALINE", "SALINITY"))
函数:
X
除了此查询可能会破坏dbhydro服务器或本地计算机的可能性之外,还有几个原因导致可能无法返回您期望的结果。我担心底层数据库太乱了,编写代码以无人监督的方式通过时间获取给定工作站的所有变量。一个问题是,站点Y
上没有变量get_dbkey(stationid = c("C-54"),
category = "GW", freq = "DA")
的规范数据集。相反,数据库非常混乱,因此每个站点的每个变量的记录都会随着时间而变化。
对于水电站点,数据记录通常由具有不同id的多个数据集表示(在水力数据的情况下为dbkey)。这些数字可能会因未知数量的原因而发生变化;可能是抽样或实验室协议发生变化或者谁知道。时间段可以重叠或有间隙。例如,请参阅输出:
dbhydroR
Dbkey群数据类型频率记录器开始日期结束日期
1 P0916 C-54 WELL DA MOD1 01-JAN-1978 31-DEC-2013
2 01952 C-54 WELL DA ???? 10-FEB-1951 2016年12月20日
3 05669 C-54 WELL DA ???? 23-NOV-1976 11-APR-1977
4 06584 C-54 WELL DA ???? 31-MAR-1977 03-OCT-1978
longest
没有足够的逻辑来选择"正确的" dbkey或连接几个"正确"的结果dbkeys。通过使用longest
参数为每个变量x站点组合选择最长的记录数据集(get_dbkey(stationid = c("C-54"),
category = "GW", freq = "DA", longest = TRUE)
参数是新的并且不在CRAN上,它可以大致自动化它,'现在仅限于Github):
struct
Dbkey群数据类型频率记录器开始日期结束日期
2 01952 C-54 WELL DA ???? 10-FEB-1951 2016年12月20日
水质数据中出现类似的混乱问题。每个站点的每个变量都没有经过清理的现成(精选)记录。相反,每当采样或测量协议发生变化时,记录周期就会被分开。例如,看看叶绿素-A如何由三个不同的测试名称表示。令人沮丧的是,在您试图拉动数据之前,无法确定此数据的记录周期。您还可以决定如何处理质量保证标志。