我试图下载所有活跃和不活跃的地下水井和南佛罗里达水管理区地下水质量的多变量的数据集,多年来使用R Studio中的dbhydroR软件包记录在案。一些变量来自地下水的水文和物理数据,一些变量来自地下水的水质数据。
可以使用什么代码来批量下载这些信息?
发布于 2017-04-10 21:22:36
tldr; --您可以这样做,但是如果没有大量的手动干预,这是不可能的。
对于水电数据,您可以通过向map.pdf提供一个非常长的站点向量,将站点地图( get_hydro )上的所有站点提供给它。要做到这一点,您可以将sites参数设置为一个非常长的向量,而不是下面所示的两个站点:
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和station_id参数的向量,将站点地图( info )上的所有站点以及info表上的所有get_wq (S)提供给get_wq函数:
get_wq(station_id = c("FLAB08", "FLAB09"),
date_min = "2011-03-01", date_max = "2012-05-01",
test_name = c("CHLOROPHYLLA-SALINE", "SALINITY"))除了这个查询可能会破坏dbhydro服务器或本地机器之外,还有几个原因可以解释为什么这个可能不会返回您期望的结果。我担心底层数据库过于杂乱无章,编写代码无法以一种无监督的方式通过时间获取给定站点的所有变量。一个问题是在site Y上没有变量Y的规范数据集。相反,数据库非常混乱,每个站点的每个变量的记录都会随着时间的推移而变化。
Hydro数据
对于水电站点,数据记录通常由具有不同id的多个数据集表示(dbkey,在水电数据的情况下)。这些数字可能会因为一些未知的原因而改变;可能是抽样或实验室协议的改变,或者是谁知道的。时间周期可能重叠或有差距。例如,请参见以下文件的输出:
get_dbkey(stationid = c("C-54"),
category = "GW", freq = "DA")Dbkey组数据类型Freq记录器开始日期结束日期 1 P0916 C-54井DA MOD1 01-1978年1月-1978年31-DEC-2013 2 01952 C-54井?1951年2月10日-2月20日-2016年 3 05669 C-54井?1976年11月23日11-APR-1977 4 06584井C-54井?31-1977年3月03-1978年10月
dbhydroR没有足够的逻辑来选择“正确”dbkey或连接多个“正确”dbkey的结果。可以通过使用longest参数为每个变量x站点组合选择最长的记录周期数据集( longest参数是新的,而不是CRAN上的,目前只在Github上)来实现自动化:
get_dbkey(stationid = c("C-54"),
category = "GW", freq = "DA", longest = TRUE)Dbkey组数据类型Freq记录器开始日期结束日期 2 01952 C-54井?1951年2月10日-2月20日-2016年
水质数据
水质数据中也出现类似的混乱问题。在每个站点上都没有对每个变量进行清理的准备(管理)记录。相反,每次采样或测量协议改变时,记录周期就会被分割.例如,看看叶绿素-A是如何用三个不同的测试名称表示的.令人沮丧的是,在你试图提取数据之前,没有办法知道这个数据的记录周期是多少。您还将决定如何处理质量保证标志。
https://stackoverflow.com/questions/43326671
复制相似问题