Welcome to ClientVPS Mirrors

Querying flow information

Querying flow information

Jemma Stachelek

2023-08-11

Let’s get some flow data for the NHDPlus subset included with nhdR package. Our goal is to adjust the color and size of each reach by their average flow.

library(nhdR)
library(dplyr)
library(ggplot2)
library(sf)
ggplot() +
  geom_sf(data = gull$sp$NHDWaterbody) +
  geom_sf(data = gull$sp$NHDFlowLine)
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
#> old-style crs object detected; please recreate object with a recent sf::st_crs()


gull_sf <- gull$sp$NHDFlowLine

NHDPlus includes two estimates of flow:

Enhanced Unit Runoff Method (EROM)

eromflow  <- nhd_plus_load(4, "EROMExtension", "EROM_MA0001") %>%
  filter(ComID %in% gull$sp$NHDFlowLine$COMID) %>%
  select(ComID, Q0001F)

gull_sf <- left_join(gull_sf, eromflow, by = c("COMID" = "ComID"))

Vogel Flow Estimation

vogelflow  <- nhd_plus_load(4, "VogelExtension", "vogelflow") %>%
  filter(COMID %in% gull$sp$NHDFlowLine$COMID,
    MAFLOWV != -9999.00000)

gull_sf <- left_join(gull_sf, vogelflow, by = "COMID")

Visualization

gull_sf <- dplyr::filter(gull_sf, !is.na(Q0001F))
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
gull_sf %>%
  ggplot() +
  geom_sf(data = gull$sp$NHDWaterbody) +
  geom_sf(aes(color = gull_sf$Q0001F), size = gull_sf$Q0001F / 20) +
  labs(color = "EROM Flow (cms)")
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
#> Warning: Use of `gull_sf$Q0001F` is discouraged.
#> ℹ Use `Q0001F` instead.


gull_sf <- filter(gull_sf, !is.na(MAFLOWV))
gull_sf %>%
  ggplot() +
  geom_sf(data = gull$sp$NHDWaterbody) +
  geom_sf(aes(color = gull_sf$MAFLOWV), size = gull_sf$MAFLOWV / 20) +
  labs(color = "Vogel Flow (cms)")
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
#> Warning: Use of `gull_sf$MAFLOWV` is discouraged.
#> ℹ Use `MAFLOWV` instead.

Need a high-speed mirror for your open-source project?
Contact our mirror admin team at info@clientvps.com.

This archive is provided as a free public service to the community.
Proudly supported by infrastructure from VPSPulse , RxServers , BuyNumber , UnitVPS , OffshoreName and secure payment technology by ArionPay.