Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
dataRetrieval
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Water
dataRetrieval
Merge requests
!58
Improving error handling.
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
Improving error handling.
ldecicco-USGS:master
into
master
Overview
6
Commits
7
Pipelines
0
Changes
1
Merged
Laura A DeCicco
requested to merge
ldecicco-USGS:master
into
master
10 years ago
Overview
6
Commits
7
Pipelines
0
Changes
1
Expand
0
0
Merge request reports
Viewing commit
d6b1b044
Prev
Next
Show latest version
1 file
+
41
−
33
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
d6b1b044
Added 'all' option to readNWISpCode function. Returns all pCodes with a new call to the service.
· d6b1b044
Laura A DeCicco
authored
10 years ago
R/readNWISpCode.r
+
41
−
33
Options
#' USGS Parameter Data Retrieval
#'
#' Imports data from NWIS about meaured parameter based on user-supplied parameter code.
#' Imports data from NWIS about meaured parameter based on user-supplied parameter code
or codes
.
#' This function gets the data from here: \url{http://nwis.waterdata.usgs.gov/nwis/pmcodes}
#'
#' @param parameterCd character of USGS parameter codes (or multiple parameter codes). This is usually an 5 digit number.
#' @param parameterCd character of USGS parameter codes (or multiple parameter codes). These are 5 digit number codes
#' that can be found here: \link{http://help.waterdata.usgs.gov/codes-and-parameters/parameters}. To get a
#' complete list of all current parameter codes in the USGS, use "all" as the input.
#' @keywords data import USGS web service
#' @return parameterData data frame with all information from the USGS about the particular parameter.
#'
@@ -22,43 +24,49 @@
#' paramINFO <- readNWISpCode(c('01075','00060','00931'))
readNWISpCode
<-
function
(
parameterCd
){
pcodeCheck
<-
all
(
nchar
(
parameterCd
)
==
5
)
&
all
(
!
is.na
(
suppressWarnings
(
as.numeric
(
parameterCd
))))
if
(
any
(
parameterCd
==
"all"
)){
fullURL
<-
"http://nwis.waterdata.usgs.gov/nwis/pmcodes/pmcodes?radio_pm_search=param_group&pm_group=All+--+include+all+parameter+groups&format=rdb&show=parameter_group_nm&show=parameter_nm&show=casrn&show=srsname&show=parameter_units"
fullPcodeDownload
<-
importRDB1
(
fullURL
)
return
(
fullPcodeDownload
)
}
else
{
pcodeCheck
<-
all
(
nchar
(
parameterCd
)
==
5
)
&
all
(
!
is.na
(
suppressWarnings
(
as.numeric
(
parameterCd
))))
if
(
!
pcodeCheck
){
goodIndex
<-
which
(
parameterCd
%in%
parameterCdFile
$
parameter_cd
)
if
(
length
(
goodIndex
)
>
0
){
badPcode
<-
parameterCd
[
-
goodIndex
]
}
else
{
badPcode
<-
parameterCd
if
(
!
pcodeCheck
){
goodIndex
<-
which
(
parameterCd
%in%
parameterCdFile
$
parameter_cd
)
if
(
length
(
goodIndex
)
>
0
){
badPcode
<-
parameterCd
[
-
goodIndex
]
}
else
{
badPcode
<-
parameterCd
}
message
(
"The following pCodes seem mistyped:"
,
paste
(
badPcode
,
collapse
=
","
))
parameterCd
<-
parameterCd
[
goodIndex
]
}
message
(
"The following pCodes seem mistyped:"
,
paste
(
badPcode
,
collapse
=
","
))
parameterCd
<-
parameterCd
[
goodIndex
]
}
parameterData
<-
parameterCdFile
[
parameterCdFile
$
parameter_cd
%in%
parameterCd
,]
if
(
nrow
(
parameterData
)
!=
length
(
parameterCd
)){
if
(
length
(
parameterCd
)
==
1
){
url
<-
paste0
(
"http://nwis.waterdata.usgs.gov/nwis/pmcodes/pmcodes?radio_pm_search=pm_search"
,
"&pm_search="
,
parameterCd
,
"&format=rdb"
,
"&show=parameter_group_nm"
,
"&show=parameter_nm"
,
"&show=casrn"
,
"&show=srsname"
,
"&show=parameter_units"
)
newData
<-
importRDB1
(
url
,
asDateTime
=
FALSE
)
}
else
{
parameterData
<-
parameterCdFile
[
parameterCdFile
$
parameter_cd
%in%
parameterCd
,]
if
(
nrow
(
parameterData
)
!=
length
(
parameterCd
)){
#TODO: add else...
fullURL
<-
"http://nwis.waterdata.usgs.gov/nwis/pmcodes/pmcodes?radio_pm_search=param_group&pm_group=All+--+include+all+parameter+groups&format=rdb&show=parameter_group_nm&show=parameter_nm&show=casrn&show=srsname&show=parameter_units"
fullPcodeDownload
<-
importRDB1
(
fullURL
)
newData
<-
fullPcodeDownload
[
fullPcodeDownload
$
parameter_cd
%in%
parameterCd
,]
if
(
length
(
parameterCd
)
==
1
){
url
<-
paste0
(
"http://nwis.waterdata.usgs.gov/nwis/pmcodes/pmcodes?radio_pm_search=pm_search"
,
"&pm_search="
,
parameterCd
,
"&format=rdb"
,
"&show=parameter_group_nm"
,
"&show=parameter_nm"
,
"&show=casrn"
,
"&show=srsname"
,
"&show=parameter_units"
)
newData
<-
importRDB1
(
url
,
asDateTime
=
FALSE
)
}
else
{
#TODO: add else...
fullURL
<-
"http://nwis.waterdata.usgs.gov/nwis/pmcodes/pmcodes?radio_pm_search=param_group&pm_group=All+--+include+all+parameter+groups&format=rdb&show=parameter_group_nm&show=parameter_nm&show=casrn&show=srsname&show=parameter_units"
fullPcodeDownload
<-
importRDB1
(
fullURL
)
newData
<-
fullPcodeDownload
[
fullPcodeDownload
$
parameter_cd
%in%
parameterCd
,]
}
return
(
newData
)
}
else
{
return
(
parameterData
)
}
return
(
newData
)
}
else
{
return
(
parameterData
)
}
}
Loading