# load libraries
library(sf)

# set dir to save figures to
figure_dir <- "figures"
ifelse(!dir.exists(file.path(getwd(), figure_dir)), dir.create(file.path(getwd(), figure_dir)), FALSE)

# set colors
colors <- list(darkblue = "#062e57",
               lightblue = "#b1dcf3",
               lightgrey = "#6D6D6D")

# set dimensions of figures
width <- 8
height <- 10
units <- "in"
res <- 600
margin <- 0

# set state to highlight
state <- c("Wisconsin")

# plot map
plot_map <- function () {
  plot(sf::st_geometry(extent_poly), 
       col = colors$lightblue,
       border = NA)
  plot(sf::st_geometry(political$geometry), 
       col = colors$lightgrey,
       border = NA,
       add = TRUE)
  plot(sf::st_geometry(political[political$NAME_En %in% state, ]), 
       col = colors$darkblue,
       border = NA,
       add = TRUE)
  plot(sf::st_geometry(data$NHDWaterbody), 
       col = colors$lightblue, 
       border = NA,
       add = TRUE)
  plot(sf::st_geometry(data$NHDArea), 
       col = colors$lightblue, 
       border = NA,
       add = TRUE)
  plot(sf::st_geometry(data$NHDFlowline), 
       col = colors$lightblue,
       lwd = data$NHDFlowline$TotDASqKM^0.3204*0.0446,
       border = NA,
       add = TRUE)
  plot(sf::st_geometry(extent_poly), 
       col = NA,
       border = "black",
       lwd = 1,
       add = TRUE)
}

# save figure
# tiff(filename = paste0(figure_dir,"/map.tiff"),
#    width = width,
#    height = height,
#    units = units,
#    res = res,
#    compression = "lzw")
# par(mai=c(margin, margin, margin, margin))
# par(mar=c(1,1,1,1))
# plot_map()
# dev.off()
# 
# jpeg(filename = paste0(figure_dir,"/map.jpg"),
#    width = width,
#    height = height,
#    units = units,
#    res = res,
#    quality = 93)
# par(mai=c(margin, margin, margin, margin))
# par(mar=c(1,1,1,1))
# plot_map()
# dev.off()

png(filename = paste0(figure_dir, "/map.png"),
    width = width,
    height = height,
    units = units,
    res = res)
par(mai=c(margin, margin, margin, margin))
par(mar=c(1,1,1,1))
plot_map()
dev.off()
