R/utils-fetch.R

Defines functions fetchProcessors fetchInterpolationTypes fetchMethods fetchPrimaryTSMetadata fetchGapTolerances fetchApprovals fetchRatingCurves fetchGradeMetadata fetchGrades fetchNotes fetchQualifiers fetchDownchainSeries fetchUpchainSeries fetchGaps fetchCorrReportURL fetchExcludedControlConditions fetchTSSThresholds fetchSRSQualifiers fetchThresholds fetchProcessingCorrections fetchFieldVists fetchQualifierMetadata fetchExtremesSeriesQualifiers fetchPrimarySeriesQualifiers fetchPrimarySeriesApprovals fetchMeasurementsField fetchRatingShiftsField fetchFieldVisitReadings fetchMinMaxIVs fetchCorrections fetchFieldVisitMeasurements fetchWaterQualityMeasurements fetchGroundWaterLevels fetchTimeSeries fetchMinStage fetchMaxStage fetchMeasurements fetchRatingShifts fetchApprovalsForSeries fetchRequestParametersField fetchReportMetadataField fetchReportMetadata

Documented in fetchApprovals fetchApprovalsForSeries fetchCorrections fetchCorrReportURL fetchDownchainSeries fetchExcludedControlConditions fetchExtremesSeriesQualifiers fetchFieldVisitMeasurements fetchFieldVisitReadings fetchFieldVists fetchGaps fetchGapTolerances fetchGradeMetadata fetchGrades fetchGroundWaterLevels fetchInterpolationTypes fetchMaxStage fetchMeasurements fetchMeasurementsField fetchMethods fetchMinMaxIVs fetchMinStage fetchNotes fetchPrimarySeriesApprovals fetchPrimarySeriesQualifiers fetchPrimaryTSMetadata fetchProcessingCorrections fetchProcessors fetchQualifierMetadata fetchQualifiers fetchRatingCurves fetchRatingShifts fetchRatingShiftsField fetchReportMetadata fetchReportMetadataField fetchRequestParametersField fetchSRSQualifiers fetchThresholds fetchTimeSeries fetchTSSThresholds fetchUpchainSeries fetchWaterQualityMeasurements

# This R file's purpose is for extracting values from json 
# The functions shouldn't modify the data, and should handle missing json or empty json parameters

#' Fetch Report Metadata
#'
#' @description Given a full report object this will extract the metadata
#' @param reportObject The full report data loaded from the report JSON
fetchReportMetadata <- function(reportObject){
  val <- reportObject[['reportMetadata']]
  return(val)
}

#' Fetch Report Metadata Field
#'
#' @description Given a full report object this will extract the data
#' associated with the specified field.
#' @param reportObject The full report data loaded from the report JSON
#' @param field The specific field to select from the metadata
fetchReportMetadataField <- function(reportObject, field){
  val <- reportObject[['reportMetadata']][[field]]
  return(val)
}

#' Fetch Request Parameters Field
#'
#' @description Given a full report object this will extract the data
#' associated with the specified field.
#' @param reportObject The full report data loaded from the report JSON
#' @param field The specific field to select from the request parameters in the metadata
fetchRequestParametersField <- function(reportObject, field){
	val <- reportObject[['reportMetadata']][['requestParameters']][[field]]
	return(val)
}

#' Fetch Approvals for a given Time Series
#'
#' @description Given a full report object this will extract the
#' approvals for the supplied series name.
#' @param reportObject The full report data loaded from the report JSON
#' @param seriesName The specific field to select from the metadata
fetchApprovalsForSeries <- function(reportObject, seriesName){
  val <- reportObject[[seriesName]][['approvals']]
  return(val)
}

#' Fetch Rating Shifts
#'
#' @description Given a report object, will attempt to pull the rating shifts list.
#' @param reportObject the full report data 
#' @return The list of ratingShifts attached to the report. If none, will be NULL.
fetchRatingShifts <- function(reportObject){
  val <- reportObject[['ratingShifts']]
  return(val)
}

#' Fetch Discharge measurements
#'
#' @description Given a report object, will attempt to pull the measurements list.
#' @param reportObject the full report data 
#' @return The list of measurements attached to the report. If none, will be NULL.
fetchMeasurements <- function(reportObject){
  val <- reportObject[['measurements']]
  return(val)
}

#' Fetch maximum stage height
#'
#' @description Given a report object will pull the max stage value.
#' @param reportObject a report object
#' @return numeric value for max stage
fetchMaxStage <- function(reportObject){
  val <- as.numeric(reportObject[['maximumStageHeight']][['value']])
  return(val)
}

#' Fetch minimum stage height
#'
#' @description Given a report object will pull the min stage value.
#' @param reportObject a report object
#' @return numeric value for min stage
fetchMinStage <- function(reportObject){
  val <- as.numeric(reportObject[['minimumStageHeight']][['value']])
  return(val)
}

#' Fetch time series
#'
#' @description Given a report object, will pull time series with given name
#' @param reportObject the full report data
#' @param seriesName the time series name to fetch
fetchTimeSeries <- function(reportObject, seriesName){
  val <- reportObject[[seriesName]]
  return(val)
}

#' Fetch ground water levels
#'
#' @description Given a report object, will pull the ground water levels
#' @param reportObject the full report data
fetchGroundWaterLevels <- function(reportObject){
  val <- reportObject[['gwlevel']]
  return(val)
}

#' Fetch water quality measurements
#'
#' @description Given a report object, will pull the water quality measurements
#' @param reportObject the full report data
fetchWaterQualityMeasurements <- function(reportObject){
  val <- reportObject[['waterQuality']]
  return(val)
}

#' Fetch field visit measurements
#'
#' @description Given a report object, will pull the field visit measurements
#' @param reportObject the full report data
fetchFieldVisitMeasurements <- function(reportObject){
  val <- reportObject[['fieldVisitMeasurements']]
  return(val)
}

#' Fetch corrections for a time series
#' 
#' @description Given a report object and series name, will pull the corrections
#' list for the specified time series
#' @param reportObject the full report data
#' @param seriesCorrName the time series name to pull corrections for
fetchCorrections <- function(reportObject, seriesCorrName){
  val <- reportObject[[seriesCorrName]]
  return(val)
}

#' Fetch Min/Max IV
#'
#' @description Given a report object, will pull the min or max IV points data
#' @param reportObject the full report data
#' @param stat 'min' or 'max' data to select
fetchMinMaxIVs <- function(reportObject, stat){
  stat <- stat
  stat_val <- reportObject[['maxMinData']][[stat]]
  return(stat_val)
}

#' Fetch field visit readings
#'
#' @description Given a report object, will pull the field visit readings
#' @param reportObject the full report data
fetchFieldVisitReadings <- function(reportObject){
  val <- reportObject$readings
  return(val)
}

#' Fetch Rating Shifts Field
#'
#' @description Given a full report object this will extract the data
#' associated with the specified field.
#' @param reportObject The full report data loaded from the report JSON
#' @param field The specific field to select from the rating shifts
fetchRatingShiftsField <- function(reportObject, field){
  val <- reportObject[['ratingShifts']][[field]]
  return(val)
}

#' Fetch Measurements Field
#'
#' @description Given a full report object this will extract the data
#' associated with the specified field.
#' @param reportObject The full report data loaded from the report JSON
#' @param field The specific field to select from the measurements
fetchMeasurementsField <- function(reportObject, field){
  val <- reportObject[['measurements']][[field]]
  return(val)
}

#'Fetch Primary Series Approvals (DV and Five YR)
#'
#' @description Given a full report object this will extract the data 
#' for primary series approvals.
#' @param reportObject The full report data loaded from the report JSON
fetchPrimarySeriesApprovals <- function(reportObject){
  val <- reportObject[['primarySeriesApprovals']]
  return(val)
}

#'Fetch Primary Series Qualifiers (DV and Five YR)
#'
#' @description Given a full report object this will extract the data 
#' for primary series qualifiers.
#' @param reportObject The full report data loaded from the report JSON
fetchPrimarySeriesQualifiers <- function(reportObject){
  val <- reportObject[['primarySeriesQualifiers']]
  return(val)
}

#'Fetch Extremes Primary Series Qualifiers (Extremes)
#'
#' @description Given a full report object this will extract the data 
#' for primary series qualifiers.
#' @param reportObject The full report data loaded from the report JSON
#' @param qualType the qualifier type we're looking to fetch
fetchExtremesSeriesQualifiers <- function(reportObject, qualType){
  val <- reportObject[[qualType]][['qualifiers']]
  return(val)
}

#'Fetch Qualifier Metadata
#'
#'@description Given a full report object this will extract the qualifier metadata
#'@param reportObject The full report JSON object
fetchQualifierMetadata <- function(reportObject){
  val <- reportObject[['reportMetadata']][['qualifierMetadata']]
  return(val)
}

#'Fetch Field Visits (CORR)
#'
#' @description Given a full report object this will extract the field
#' vists data.
#' @param reportObject The full report data loaded from the report JSON
fetchFieldVists <- function(reportObject){
  val <- reportObject[['fieldVisits']]
  return(val)
}

#'Fetch Processing Corrections (CORR)
#'
#' @description Given a full report object this will extract the corrections
#' data for the specified processing order.
#' @param reportObject The full report data loaded from the report JSON
#' @param processOrder The processing order to get corrections for. Valid
#' choices: "pre", "post", and "normal"
fetchProcessingCorrections <- function(reportObject, processOrder){
  processOrder <- switch(processOrder,
    "pre"="preProcessing",
    "post"="postProcessing",
    "normal"="normal",
    ""
  )
  
  val <- reportObject[['corrections']][[processOrder]]
  
  return(val)
}

#'Fetch Threshold Data (CORR)
#'
#' @description Given a full report object this will extract the thresholds
#' @param reportObject The full report JSON object
fetchThresholds <- function(reportObject){
  val <- reportObject[['thresholds']]
  return(val)
}

#'Fetch Qualifiers (SRS)
#'
#'@description Given a reading this will extract the qualifiers
#'@param reportObject The full report JSON object
fetchSRSQualifiers <- function(reportObject){
	val <- reportObject[['qualifiers']]
	return(val)
}

#'Fetch Threshold Data (TSS)
#'
#' @description Given a full report object this will extract the thresholds
#' @param reportObject The full report JSON object
fetchTSSThresholds <- function(reportObject){
  val <- reportObject[['primaryTsMetadata']][['thresholds']]
  return(val)
}

#'Fetch Excluded Control Conditions (V-Diagram)
#'
#'@description Given a full report object this will extract the excluded control conditions
#'@param reportObject The full report JSON object
fetchExcludedControlConditions <- function(reportObject){
  val <- reportObject[['reportMetadata']][['requestParameters']][['excludeConditions']]
  return(val)
}

#'Fetch CORR Report URL (TSS)
#'
#'@description Given a full report object this will extract the URL for the associated CORR report
#'@param reportObject The full report JSON object
fetchCorrReportURL <- function(reportObject){
  val <- reportObject[['corrections']][['corrUrl']]
  
  return(val)
}

#'Fetch Gaps (TSS)
#'
#'@description Given a full report object this will extract the gaps
#'@param reportObject The full report JSON object
fetchGaps <- function(reportObject){
  val <- reportObject[['primaryTsData']][['gaps']]
  return(val)
}

#'Fetch Upchain Series (TSS)
#'
#'@description Given a full report object this will extract the upchain related series
#'@param reportObject The full report JSON object
fetchUpchainSeries <- function(reportObject){
  val <- reportObject[['upchainTs']]
  return(val)
}

#'Fetch Downchain Series (TSS)
#'
#'@description Given a full report object this will extract the downchain related series
#'@param reportObject The full report JSON object
fetchDownchainSeries <- function(reportObject){
  val <- reportObject[['downchainTs']]
  return(val)
}

#'Fetch Qualifiers (TSS)
#'
#'@description Given a full report object this will extract the qualifiers
#'@param reportObject The full report JSON object
fetchQualifiers <- function(reportObject){
  val <- reportObject[['primaryTsData']][['qualifiers']]
  return(val)
}

#'Fetch Notes (TSS)
#'
#'@description Given a full report object this will extract the notes
#'@param reportObject The full report JSON object
fetchNotes <- function(reportObject){
  val <- reportObject[['primaryTsData']][['notes']]
  return(val)
}

#'Fetch Grades (TSS)
#'
#'@description Given a full report object this will extract the grades
#'@param reportObject The full report JSON object
fetchGrades <- function(reportObject){
  val <- reportObject[['primaryTsData']][['grades']]
  return(val)
}

#'Fetch Grade Metadata (TSS)
#'
#'@description Given a full report object this will extract the grade metadata
#'@param reportObject The full report JSON object
fetchGradeMetadata <- function(reportObject) {
  val <- reportObject[['reportMetadata']][['gradeMetadata']]
  return(val)
}

#'Fetch Rating Curves (TSS)
#'
#'@description Given a full report object this will extract the rating curves
#'@param reportObject The full report JSON object
fetchRatingCurves <- function(reportObject){
  val <- reportObject[['ratingCurves']]
  return(val)
}

#'Fetch Approvals (TSS)
#'
#'@description Given a full report object this will extract the approvals
#'@param reportObject The full report JSON object
fetchApprovals <- function(reportObject){
  val <- reportObject[['primaryTsData']][['approvals']]
  return(val)
}

#'Fetch Gap Tolerances (TSS)
#'
#'@description Given a full report object this will extract the gap tolerances
#'@param reportObject The full report JSON object
fetchGapTolerances <- function(reportObject){
  val <- reportObject[['primaryTsData']][['gapTolerances']]
  return(val)
}

#'Fetch Primary TS Metadata (TSS)
#'
#'@description Given a full report object this will extract the primary TS metadata
#'@param reportObject The full report JSON object
fetchPrimaryTSMetadata <- function(reportObject){
  val <- reportObject[['primaryTsMetadata']]
  return(val)
}

#'Fetch Methods (TSS)
#'
#'@description Given a full report object this will extract the primary TS methods
#'@param reportObject The full report JSON object
fetchMethods <- function(reportObject){
  val <- reportObject[['primaryTsData']][['methods']]
  return(val)
}

#'Fetch Interpolation Types (TSS)
#'
#'@description Given a full report object this will extract the primary TS interpolation types
#'@param reportObject The full report JSON object
fetchInterpolationTypes <- function(reportObject){
  val <- reportObject[['primaryTsData']][['interpolationTypes']]
  return(val)
}

#'Fetch Processors (TSS)
#'
#'@description Given a full report object this will extract the primary TS processors
#'@param reportObject The full report JSON object
fetchProcessors <- function(reportObject){
  val <- reportObject[['primaryTsData']][['processors']]
  return(val)
}
USGS-R/repgen documentation built on April 14, 2021, 2:47 p.m.