Skip to contents

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

https://fl.water.usgs.gov/mapper/site_info.php?site=263819081585801&stationType=gw

This page merges information from USGS Groundwater Watch website and USGS Water Science Centers.

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-04-09 15923
Groundwater level above NAVD 1988, feet 2021-05-17 2024-04-09 1039
Field/Lab water-quality samples 1978-09-06 2022-05-18 472
Current / Historical Observations 2007-10-01 2024-04-10

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 measured:
gwl_data <- readNWISgwl(siteID)

# Water quality data:
cl_sc <- c("Chloride", "Specific conductance")
qw_data <- readWQPqw(siteNumbers = paste0("USGS-", siteID),
                     parameterCd = cl_sc)

plot_title <- "L -2701\n263819081585801"
y_label <- dataRetrieval::readNWISpCode(parameterCd)$parameter_nm 

Groundwater Data

Monthly Frequency

monthly_frequency_plot(gw_level_dv,
                       gwl_data = gwl_data,
                       parameter_cd = parameterCd,
                       y_axis_label = y_label,
                       plot_title = plot_title,
                       plot_range = "Past year")

monthly_freq_table <- monthly_frequency_table(gw_level_dv,
                                              gwl_data,
                                              parameter_cd = parameterCd) 
kable(monthly_freq_table, digits = 1)
month p05 p10 p25 p50 p75 p90 p95 nYears minMed maxMed
1 -38.1 -32.3 -29.4 -21.4 -17.4 -10.7 -7.1 45 -41.8 -5.7
2 -40.8 -32.6 -29.0 -21.9 -18.5 -12.2 -7.6 45 -42.9 -7.2
3 -41.2 -36.0 -30.0 -23.2 -19.4 -11.4 -7.7 45 -45.2 -6.9
4 -45.0 -39.1 -31.7 -25.7 -21.8 -16.4 -10.3 45 -48.4 -9.4
5 -45.9 -39.8 -34.0 -27.0 -23.3 -18.1 -14.2 45 -49.4 -10.0
6 -41.7 -38.2 -32.3 -27.2 -20.7 -15.4 -13.7 44 -42.8 -11.0
7 -34.4 -31.1 -25.3 -20.0 -17.0 -14.0 -10.8 45 -37.5 -6.8
8 -28.0 -27.6 -22.8 -17.1 -14.0 -11.5 -9.4 45 -32.4 -4.8
9 -28.5 -24.1 -19.0 -15.4 -12.5 -9.4 -6.5 44 -32.7 -3.2
10 -29.1 -28.5 -21.5 -16.0 -12.8 -8.7 -5.6 46 -36.2 -4.8
11 -35.9 -31.7 -25.7 -20.1 -14.6 -9.5 -6.7 46 -41.4 -4.5
12 -37.6 -32.3 -27.5 -21.0 -16.5 -10.2 -8.2 45 -42.5 -4.9

Daily 2 year plot

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

daily_summary_table <- daily_gwl_summary(gw_level_dv, 
                                         gwl_data,
                                         parameter_cd = parameterCd) %>%
  select("Begin Date" = begin_date,
         "End Date" = end_date,
         "Days" = days,
         "% Complete" = percent_complete,
         "Lowest Level" = lowest_level,
         "25th" = p25,
         "50th" = p50,
         "75th" = p75,
         "Highest Level" = highest_level)
kable(t(daily_summary_table))
Begin Date 1978-10-01
End Date 2023-11-02
Days 16238
% Complete 99
Lowest Level -51.3
25th -27.95
50th -21.41
75th -16.3
Highest Level -2.81

Field Groundwater Level Data

gwl_plot_field(gwl_data, 
               parameter_cd = parameterCd,
               plot_title = plot_title,
               flip = FALSE)

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

kable(siteField, digits = 1)
site min_site max_site mean_site p10 p25 p50 p75 p90 count
263819081585801 -52.4 -4.8 -26.5 -36.9 -32.4 -26 -20.3 -16.3 1437

Period of Record - All Data Types

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

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

siteDaily <- gw_level_dv %>% 
  rename(value = X_62610_00001) %>% 
  site_data_summary() %>% 
  select(Minimum = min_site,    
         `1st` = p25, 
         Median = p50,
         Mean = mean_site,
         `3rd` = p75,
         Maximum = max_site)

kable(siteDaily, digits = 1)
Minimum 1st Median Mean 3rd Maximum
-51.1 -27.7 -21.2 -22.1 -16 -2.8

Salinity Data and Analysis

Chloride

qw_plot(qw_data, plot_title = plot_title)

cl_trend <- trend_test(NULL,
                      gwl_data = dplyr::filter(qw_data, 
                   CharacteristicName == "Chloride"), 
                     approved_col = "ResultStatusIdentifier",
                     date_col = "ActivityStartDateTime",
                     value_col = "ResultMeasureValue")
kable(cl_trend, digits = 3)
test tau pValue slope intercept trend
10-year trend 0.838 0 6.521 -13071.910 Up
Period of record 0.483 0 0.647 -1237.109 Up
chl_table <- qw_summary(qw_data, 
                        CharacteristicName = "Chloride",
                        norm_range = c(225,999))
kable(chl_table)
Analysis Result
Date of first sample 1978-09-06
First sample result (mg/l) 52
Date of last sample 2022-05-18
Last sample result (mg/l) 72
Date of first sample within 225 to 999 mg/l
Date of first sample with 1000 mg/l or greater
Minimum (mg/l) 14
Maximum (mg/l) 119
Mean (mg/l) 60.9
First quartile (mg/l) 54
Median (mg/l) 58
Third quartile (mg/l) 68
Number of samples 81

Specific Conductance

qw_plot(qw_data, "Specific Conductance", 
        CharacteristicName = "Specific conductance")

sc_table <- qw_summary(qw_data, 
                       CharacteristicName = "Specific conductance",
                       norm_range = NA)
kable(sc_table)
Analysis Result
Date of first sample 1979-05-09
First sample result (uS/cm @25C) 580
Date of last sample 2022-05-18
Last sample result (uS/cm @25C) 606
Minimum (uS/cm @25C) 176
Maximum (uS/cm @25C) 785
Mean (uS/cm @25C) 553
First quartile (uS/cm @25C) 544
Median (uS/cm @25C) 560
Third quartile (uS/cm @25C) 569
Number of samples 394

Specific Conductance vs Chloride

Sc_Cl_plot(qw_data, plot_title = plot_title)

sc_cl <- Sc_Cl_table(qw_data)

# only show 10 row:
kable(head(sc_cl, 10), 
      col.names = c("Date",
                    "Chloride [mg/L]",
                    "Specific conductance [µS/L]"))
Date Chloride [mg/L] Specific conductance [µS/L]
1978-09-06 20:30:00 52
1979-05-09 19:00:00 50 580
1981-05-20 18:15:00 54 536
1982-06-03 13:30:00 60 525
1982-10-12 13:15:00 52 520
1983-05-11 15:50:00 54 530
1983-11-02 16:30:00 54 550
1984-04-12 16:30:00 54 530
1984-10-24 14:05:00 54 540
1985-05-03 19:45:00 54 535