boB Rudis
5 years ago
7 changed files with 116 additions and 2 deletions
@ -0,0 +1,111 @@ |
|||
library(sf) |
|||
library(hrbrthemes) |
|||
library(tidyverse) |
|||
|
|||
if (!all(file.exists(here::here("data", c("mdi.rds", "mdi-border.rds", "mdi-inland-water.rds"))))) { |
|||
|
|||
# get all the towns and focus on the ones we care about |
|||
st_read(here::here("data/Maine_Boundaries_Town_Polygon/Maine_Boundaries_Town_Polygon.shp")) %>% |
|||
filter(TOWN %in% c("Bar Harbor", "Mount Desert", "Tremont", "Southwest Harbor", "Cranberry Isles")) %>% |
|||
select(OBJECTID) %>% |
|||
filter( # this removes island and meta-borders we don't want |
|||
OBJECTID < 3000, |
|||
!OBJECTID %in% c(2412, 2519, 2480, 2520, 2530, 2533, 2523, 2266, 2661, 2694, 2255, 2287, 2631, 2674, 2643, 2698) |
|||
) %>% |
|||
st_union() -> mdi_border # finally, smush them all together |
|||
|
|||
plot(mdi_border) # give it quick look |
|||
|
|||
# the actual elevation contours |
|||
st_read(here::here("data/Shape/Elev_Contour.shp")) %>% |
|||
st_crop(xmin = -68.4719, ymin = 44.2108, xmax = -68.1542, ymax = 44.4666) %>% # reduce scope for faster intersection |
|||
st_transform(26919) %>% |
|||
st_intersection(mdi_border) -> mdi # only what's in the smushed outline above |
|||
|
|||
plot(mdi["ContourEle"], lwd=0.1) # give it a quick look |
|||
|
|||
# lakes and ponds |
|||
st_read(here::here("data/lake-data/lakepolys.shp")) %>% |
|||
filter(STATE_ABBR == "ME") %>% # reduce scope for faster intersection |
|||
st_transform(26919) %>% |
|||
st_intersection(mdi_border) %>% # only what's in the smushed outline above |
|||
filter(!is.na(GNIS_NAME)) -> inland_water # finally, get rid of unnamed water bodies |
|||
|
|||
# save ^^ work out so we don't have to do it again |
|||
saveRDS(mdi, here::here("data/mdi.rds")) |
|||
saveRDS(mdi_border, here::here("data/mdi-border.rds")) |
|||
saveRDS(inland_water, here::here("data/mdi-inland-water.rds")) |
|||
|
|||
} |
|||
|
|||
# read in our hard work |
|||
mdi <- readRDS(here::here("data/mdi.rds")) |
|||
mdi_border <- readRDS(here::here("data/mdi-border.rds")) |
|||
inland_water <- readRDS(here::here("data/mdi-inland-water.rds")) |
|||
|
|||
tibble( |
|||
lat = c(44.3380, 44.3526, 44.3351, 44.3426, 44.3329), |
|||
lng = c(-68.3119, -68.2251, -68.2438, -68.2728, -68.2667), |
|||
size = c(4.5, 3, 3, 3, 3), |
|||
angle = c(-80, 0, 0, 0, 0), |
|||
lab = c("Somes Sound", "Cadillac\nMountain", "Pemetic\nMountain", "Sargent\nMountain", "Penobscot\nMountain") |
|||
) %>% |
|||
st_as_sf(coords = c("lng", "lat"), crs = 4326) %>% |
|||
st_transform(26919) -> outer_lab |
|||
|
|||
ggplot() + |
|||
geom_sf(data = mdi_border, color = "#999999", fill = NA, size = 2, alpha = 1/20) + # water light outline |
|||
geom_sf(data = mdi_border, color = "black", fill = "#f6e3b9", size = 0.5) + # maine border |
|||
geom_sf(data = mdi, aes(color = ContourEle), size = 0.1) + # the contours |
|||
geom_sf(data = inland_water, color = "black", fill = "#3a4f5b", size = 0.3) + # the lakes and ponds |
|||
geom_sf_text( # label inland water we care about |
|||
data = inland_water %>% |
|||
filter( |
|||
GNIS_NAME %in% c("Jordan Pond", "Eagle Lake", "Echo Lake", "Seal Cove Pond") | |
|||
(GNIS_NAME == "Long Pond" & ACRES > 100) |
|||
), |
|||
aes(label = GNIS_NAME), |
|||
family = font_es, color = "white", |
|||
size = c(3.25, 3.25, 2.5, 2.5, 2.5), # these align with the ordered factor names |
|||
angle = c(87.5, -75, -75, -80, -87.5) |
|||
) + |
|||
geom_sf_text( |
|||
data = outer_lab, |
|||
aes(label = lab, size = I(size)+0.125, angle = I(angle)), |
|||
family = font_es, color = c("black", "white", "white", "white", "white"), lineheight = 0.875 |
|||
) + |
|||
geom_sf_text( |
|||
data = outer_lab, |
|||
aes(label = lab, size = I(size), angle = I(angle)), |
|||
family = font_es, color = c("white", "black", "black", "black", "black"), lineheight = 0.875 |
|||
) + |
|||
scale_color_viridis_c( |
|||
name = "Elevation (ft)", option = "magma", label = scales::comma |
|||
) + |
|||
coord_sf(datum = NA) + |
|||
labs( |
|||
x = NULL, y = NULL, |
|||
title = "Mount Desert Island / Acadia National Park Elevation Contours", |
|||
caption = "Data source: {tigris}\nhttps://git.rud.is/hrbrmstr/y2019-30daymapchallenge • #30DayMapChallenge" |
|||
) + |
|||
theme_ipsum_es(grid="", plot_title_size = 24) + |
|||
theme(plot.background = element_rect(fill = "#3a4f5b", color = "#3a4f5b")) + |
|||
theme(panel.background = element_rect(fill = "#3a4f5b", color = "#3a4f5b")) + |
|||
theme(legend.title = element_text(color = "white")) + |
|||
theme(legend.text = element_text(color = "white")) + |
|||
theme(plot.title = element_text(hjust = 0.5, color = "white")) + |
|||
theme(legend.position = c(0.9, 0.275)) |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
@ -0,0 +1,3 @@ |
|||
Maine_Boundaries_Town_Polygon |
|||
Shape |
|||
lake-data |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue