Skip to contents

This vignette shows how to use HASP and other R tools to reproduce:

https://fl.water.usgs.gov/mapper/waterlevel_site_info.php?site=263819081585801

Site Information

library(HASP)

siteID <- "263819081585801"
site_metadata <- site_summary(siteID, markdown = TRUE)

263819081585801 L -2701
Latitude: 26 deg 38 ’ 19 ”
Longitude: 81 deg 58 ’ 58 ”
Lee County , Florida
Hydrologic Unit: 03090205
Well depth: 206 feet
Land surface altitude: 13 feet above NGVD29
Well completed in : “Intermediate aquifer system” (S500INTRMD) national aquifer.
Well completed in : “Hawthorn Limestone Aquifer” (122HTRNN) local aquifer.

data_info <- data_available(siteID)
kable(data_info)
Data Type Begin Date End Date Count
Water-Year Summary 2006-01-01 2023-01-01 18
1978-01-01 2021-01-01 15205
Daily Data
Groundwater level above NGVD 1929, feet 1978-10-01 2024-07-07 16009
Groundwater level above NAVD 1988, feet 2021-07-26 2024-07-07 1055
Field/Lab water-quality samples 1978-09-06 2022-05-18 472
Current / Historical Observations 2007-10-01 2024-07-08

Get data using dataRetrieval

Using dataRetrieval code to get the data for this site:

library(dataRetrieval)
siteID <- "263819081585801"
parameterCd <- "62610"
statCd <- "00001"
# Daily data:
gw_level_dv <- readNWISdv(siteID,
                          parameterCd,
                          statCd = statCd)

# Field GWL measured:
gwl_data <- readNWISgwl(siteID)

site_title <- "L -2701\n263819081585801"

y_label <- dataRetrieval::readNWISpCode(parameterCd)$parameter_nm 

Using the example data provided in the package:

siteID <- "263819081585801"
parameterCd <- "62610"
statCd <- "00001"

# Daily
gw_level_dv <-  L2701_example_data$Daily
# Field
gwl_data <- L2701_example_data$Discrete

y_label <- dataRetrieval::readNWISpCode(parameterCd)$parameter_nm 

Water Level Data and Analysis

Weekly frequency

weekly_frequency_plot(gw_level_dv, 
                      gwl_data = gwl_data,
                      parameter_cd = parameterCd,
                      plot_title = site_title,
                      y_axis_label = y_label)

Weekly frequency analysis of daily maximum water level record. Only showing the first 10 rows for this example:

weekly_table <- weekly_frequency_table(gw_level_dv, 
                                       gwl_data,
                                       parameter_cd = parameterCd)
kable(head(weekly_table, 10), digits = 1)
week p05 p10 p25 p50 p75 p90 p95 nYears minMed maxMed week_start
1 -38.1 -33.0 -28.7 -21.0 -17.5 -10.0 -8.6 43 -40.6 -5.5 01-01
2 -38.7 -32.7 -28.9 -20.9 -17.0 -10.4 -7.5 44 -41.4 -5.5 01-08
3 -38.4 -32.5 -28.9 -20.8 -17.2 -10.5 -6.3 44 -42.1 -5.7 01-15
4 -39.3 -31.9 -29.3 -21.1 -18.3 -10.7 -7.0 44 -42.4 -6.1 01-22
5 -40.2 -31.9 -29.4 -21.4 -17.5 -11.2 -7.1 45 -41.6 -6.8 01-29
6 -40.6 -32.2 -28.9 -21.5 -18.0 -11.7 -7.9 45 -42.1 -7.0 02-05
7 -40.3 -32.5 -29.0 -21.8 -18.3 -12.3 -7.7 45 -43.5 -7.4 02-12
8 -41.0 -33.5 -29.3 -22.0 -18.4 -11.3 -7.8 45 -45.0 -6.1 02-19
9 -41.5 -34.5 -29.5 -22.2 -18.9 -10.8 -7.9 45 -42.6 -6.2 02-26
10 -41.1 -34.7 -29.8 -22.2 -18.8 -10.6 -7.7 45 -43.3 -6.3 03-04

Daily 2-year

daily_gwl_plot(gw_level_dv, 
               gwl_data,
               parameter_cd = parameterCd,
               plot_title = site_title,
               historical_stat = "mean",
               month_breaks = TRUE,
               y_axis_label = y_label)

Statistics of maximum daily water level record (DOY = day of year). Only showing the first 10 rows for this example:

daily_table <- daily_frequency_table(gw_level_dv, 
                                     gwl_data,
                                     parameter_cd = parameterCd) 

kable(head(daily_table, 10))
DOY max mean min points
1 -5.29 -21.97767 -41.40 43
2 -5.24 -22.03372 -40.11 43
3 -5.30 -21.79364 -40.18 44
4 -5.55 -22.12326 -41.60 43
5 -5.48 -22.50089 -40.51 45
6 -5.71 -22.05500 -40.64 44
7 -5.64 -22.27581 -42.25 43
8 -5.75 -22.09886 -41.39 44
9 -5.52 -22.03311 -40.51 45
10 -5.30 -22.10000 -40.57 44
gwl_plot_all(gw_level_dv, gwl_data, 
             y_label = y_label,
             parameter_cd = parameterCd,
             plot_title = site_title,
             add_trend = TRUE, flip = FALSE)

Summary statistics for maximum daily water level measurements:

siteDV <- site_data_summary(gw_level_dv,
                            value_col = "X_62610_00001") 

kable(siteDV, digits = 1)
site min_site max_site mean_site p10 p25 p50 p75 p90 count
263819081585801 -51.1 -2.8 -22.1 -33.4 -27.6 -21.2 -16 -11.6 16009

Results of trend analysis on maximum daily water levels:

trend_result <- trend_test(gw_level_dv, 
                          NULL,
                          parameter_cd = parameterCd)
kable(trend_result, digits = 1)
test tau pValue slope intercept trend
10-year trend 0.6 0 1.5 -3108.3 Up
Period of record -0.2 0 -0.2 311.2 Down

Field GWL values

gwl_plot_all(NULL, gwl_data,
             y_label = y_label,
             parameter_cd = parameterCd,
             plot_title = site_title, 
             flip = FALSE)

Summary statistics for manual water level measurements

quantiles <- gwl_data %>% 
  rename(value = sl_lev_va) %>% 
  site_data_summary() 

kable(quantiles, digits = 1)
site min_site max_site mean_site p10 p25 p50 p75 p90 count
263819081585801 -52.4 -4.8 -26.5 -36.8 -32.3 -25.9 -20.3 -16.2 1443