Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
157 changes: 96 additions & 61 deletions Prog/2026/RFK/1.Identify RFK Adjacent Tracts.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,17 @@ RFK Stadium Parcel: https://www.ncpc.gov/files/projects/2026/8721_New_Stadium_at


```{r}

#install.packages("ggspatial")

library(tidyverse)
library(sf)
library(ggplot2)
library(urbnthemes)
library(urbnmapr)
set_urbn_defaults(style = "map")
library(ggspatial)

```

```{r load data}
Expand All @@ -36,6 +41,9 @@ anc <- st_read("//sas1/dcdata/Libraries/OCTO/Maps/Advisory_Neighborhood_Commissi

roads <- st_read("//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Data/Roads/Roads.shp")

water <- st_read("//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Data/Waterbodies_2023/Waterbodies_2023.shp") %>%
mutate(water = "Waterways")

metro <- st_read("//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Data/Metro_Stations_Regional/Metro_Stations_Regional.shp") %>%
mutate(line1 = case_when(LINE == "blue, yellow"~ "yellow",
LINE == "blue, orange, silver"~ "blue",
Expand All @@ -57,8 +65,6 @@ bus <- st_read("//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Data/Metro_Bus_St
national_parks <- st_read("//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Data/National_Parks/National_Parks.shp") %>%
mutate(parks = "National Parks")

wards <- st_read("//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Data/Ward_-_2022/Ward_-_2022.shp")

build_permits <- st_read("//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Data/Building_Permits_in_2025/Building_Permits_in_2025.shp")
rfk_permit <- build_permits %>%
filter(OBJECTID == 1097829048) %>%
Expand Down Expand Up @@ -126,18 +132,26 @@ tract2 <- tracts %>%
# Add census tracts 7803, 7806, and 7809 (Minnesota Ave Metro), Kennilworth and Eastwood gardens
# and remove the arboretum, 11100
mutate(rfk_group = if_else(in_a_mile == 1, 1, 0),
rfk_group = if_else(TRACT %in% c("007803", "007806", "007809"), 1, rfk_group),
rfk_group = if_else(TRACT %in% c("007803", "007806", "007809", "009906"), 1, rfk_group),
rfk_group = if_else(TRACT == "011100", 0, rfk_group),
east_of_anacostia = if_else(TRACT %in% c("007709", "007708", "007601", "007604", "009901", "007703", "009604", "009603", "009602", "007803", "009601", "007806", "007809"), 1, 0),
east_of_anacostia = if_else(TRACT %in% c("007709", "007708", "007601", "007604", "009901", "007703", "009604", "009603", "009602", "007803", "009601", "007806", "007809", "009906"), 1, 0),
west_of_anacostia = if_else(rfk_group == 1 & east_of_anacostia == 0, 1, 0),
rfk_sub_group = case_when(east_of_anacostia == 1 ~ "RFK-East of Anacostia",
west_of_anacostia == 1 ~ "RFK-West of Anacostia"))
west_of_anacostia == 1 ~ "RFK-West of Anacostia"),
rfk_sub_group2 = case_when(east_of_anacostia == 1 ~ "East of Anacostia",
west_of_anacostia == 1 ~ "West of Anacostia"))

rfk_tracts <- tract2 %>%
filter(rfk_group == 1)

rfk_outline <- rfk_tracts %>%
st_union()

rfk_save <- tract2 %>%
select(GEOID, rfk_group, east_of_anacostia, west_of_anacostia, rfk_sub_group, rfk_sub_group2) %>%
st_drop_geometry()

write.csv(rfk_save, "//Sas1/dcdata/Libraries/Requests/Prog/2026/RFK/result/rfk_tracts.csv")
```

map result
Expand Down Expand Up @@ -198,96 +212,111 @@ dcxmax = max(dccoords$X)
full_map <- ggplot() +
#RFK focus area
geom_sf(data = rfk_tracts, aes(geometry = geometry, fill = rfk_sub_group), colour = NA) +
geom_sf(data = rfk_outline, color = "#000000", size = 1, fill = NA) +
#National Parks
geom_sf(data = national_parks, aes(geometry = geometry, fill = parks), colour = NA, alpha = 0.5) +
#Water
geom_sf(data = water, aes(geometry = geometry, fill = water), colour = NA, alpha = 0.5) +
#RFK Development
geom_sf(data = rfk, aes(geometry = geometry, fill = label), colour = NA) +
#Wards
geom_sf(data = wards, aes(geometry = geometry), colour = "#000000", fill = NA) +
geom_sf(data = wards, aes(geometry = geometry), colour = "#5c5859", fill = NA) +
#Metro Stops
geom_sf(data = dc_metro, aes(geometry = geometry, colour = line_color), fill = NA, size = 2) +
scale_color_identity(guide = "legend", name = "Metro Stops")+
#Area legend
scale_fill_manual(breaks = c("RFK Stadium & Campus", "RFK-West of Anacostia", "RFK-East of Anacostia", "National Parks"), values = c("#ec008b", "#fce39e", "#a2d4ec", "#98cf90"), name = "Legend") +
scale_fill_manual(breaks = c("RFK Stadium & Campus", "RFK-West of Anacostia", "RFK-East of Anacostia", "National Parks", "Waterways"), values = c("#000000", "#fdbf11", "#ec008b", "#98cf90", "#73BFE2"), name = "Legend") +
#Ward names
geom_sf_text(data = wards, aes(geometry = geometry, label = paste0("Ward ", WARD_ID)), colour = "#000000", size = 3) +
geom_sf_text(data = wards, aes(geometry = geometry, label = paste0("Ward ", WARD_ID)), colour = "#5c5859", size = 3) +
#RFK area outline
geom_sf(data = rfk_outline, color = "#000000", size = 3, fill = NA) +
#Filter to DC
coord_sf(
xlim = c(dcxmin, dcxmax),
ylim = c(dcymin, dcymax),
expand = FALSE)
expand = FALSE) +
#distance label
annotation_scale()
full_map

ggsave(filename = "//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Result/full_map.png",
ggsave(#filename = "//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Results/Geography & ACS/full_map.png",
filename = "C:/Users/kvisalli/Box/Greater DC/Projects/RFK Stadium Analysis/Results/Geography & ACS/full_map.png",
plot = full_map,
device = "png",
width = 6.5,
dpi = 1000)


#Zoomed in Map with ANC
full_map_zoom_anc <- ggplot() +
#RFK focus area
geom_sf(data = rfk_tracts, aes(geometry = geometry, fill = rfk_sub_group), colour = NA) +
geom_sf(data = rfk_outline, color = "#000000", size = 1, fill = NA) +
#National Parks
geom_sf(data = national_parks, aes(geometry = geometry, fill = parks), colour = NA, alpha = 0.5) +
#RFK Development
geom_sf(data = rfk, aes(geometry = geometry, fill = label), colour = NA) +
#Area legend
scale_fill_manual(breaks = c("RFK Stadium & Campus", "RFK-West of Anacostia", "RFK-East of Anacostia", "National Parks"), values = c("#ec008b", "#fce39e", "#a2d4ec", "#98cf90"), name = "Legend") +
#ANC
geom_sf(data = anc, aes(geometry = geometry), colour = "#332d2f", fill = NA) +
geom_sf_text(data = anc, aes(geometry = geometry, label = paste0(NAME)), colour = "#332d2f", size = 3) +
#Wards
geom_sf(data = wards, aes(geometry = geometry), colour = "#000000", fill = NA) +
geom_sf(data = rfk, aes(geometry = geometry, fill = label), colour = NA) +
#Metro stops
geom_sf(data = dc_metro, aes(geometry = geometry, colour = line_color), fill = NA, size = 2) +
scale_color_identity(guide = "legend", name = "Metro Stops") +
#Zoom in
coord_sf(
xlim = c(xmin, xmax),
ylim = c(ymin, ymax),
expand = FALSE)
full_map_zoom_anc


ggsave(filename = "//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Result/full_map_zoom_anc.png",
plot = full_map_zoom_anc,
device = "png",
width = 6.5,
dpi = 1000)
#
# #Zoomed in Map with ANC
# full_map_zoom_anc <- ggplot() +
# #RFK focus area
# geom_sf(data = rfk_tracts, aes(geometry = geometry, fill = rfk_sub_group), colour = NA) +
# #National Parks
# geom_sf(data = national_parks, aes(geometry = geometry, fill = parks), colour = NA, alpha = 0.5) +
# #RFK Development
# geom_sf(data = rfk, aes(geometry = geometry, fill = label), colour = NA) +
# #Area legend
# scale_fill_manual(breaks = c("RFK Stadium & Campus", "RFK-West of Anacostia", "RFK-East of Anacostia", "National Parks"), values = c("#000000", "#fdbf11", "#ec008b", "#98cf90"), name = "Legend") +
# #ANC
# geom_sf(data = anc, aes(geometry = geometry), colour = "#5c5859", fill = NA) +
# geom_sf_text(data = anc, aes(geometry = geometry, label = paste0(NAME)), colour = "#5c5859", size = 3) +
# #Wards
# geom_sf(data = wards, aes(geometry = geometry), colour = "#5c5859", fill = NA) +
# geom_sf(data = rfk, aes(geometry = geometry, fill = label), colour = NA) +
# #Metro stops
# geom_sf(data = dc_metro, aes(geometry = geometry, colour = line_color), fill = NA, size = 2) +
# scale_color_identity(guide = "legend", name = "Metro Stops") +
# #RFK area outline
# geom_sf(data = rfk_outline, color = "#000000", size = 2, fill = NA) +
# #Zoom in
# coord_sf(
# xlim = c(xmin, xmax),
# ylim = c(ymin, ymax),
# expand = FALSE) +
# #distance label
# annotation_scale(pad_x = unit(5, "cm"))
# full_map_zoom_anc
#
#
# ggsave(filename = "//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Result/full_map_zoom_anc.png",
# plot = full_map_zoom_anc,
# device = "png",
# width = 6.5,
# dpi = 1000)


#Zoomed in Map with census tracts
full_map_zoom_tract <- ggplot() +
#RFK focus area
geom_sf(data = rfk_tracts, aes(geometry = geometry, fill = rfk_sub_group), colour = NA) +
geom_sf(data = rfk_outline, color = "#000000", size = 1, fill = NA) +
#National Parks
geom_sf(data = national_parks, aes(geometry = geometry, fill = parks), colour = NA, alpha = 0.5) +
#Water
geom_sf(data = water, aes(geometry = geometry, fill = water), colour = NA, alpha = 0.5) +
#RFK Development
geom_sf(data = rfk, aes(geometry = geometry, fill = label), colour = NA) +
#Area legend
scale_fill_manual(breaks = c("RFK Stadium & Campus", "RFK-West of Anacostia", "RFK-East of Anacostia", "National Parks"), values = c("#ec008b", "#fce39e", "#a2d4ec", "#98cf90"), name = "Legend") +
#Consus Tracts
geom_sf(data = tract2, aes(geometry = geometry), fill = NA, colour = "#332d2f") +
scale_fill_manual(breaks = c("RFK Stadium & Campus", "RFK-West of Anacostia", "RFK-East of Anacostia", "National Parks", "Waterways"), values = c("#000000", "#fdbf11", "#ec008b", "#98cf90", "#73BFE2"), name = "Legend") +
#Census Tracts
geom_sf(data = tract2, aes(geometry = geometry), fill = NA, colour = "#5c5859") +
#Ward
geom_sf(data = wards, aes(geometry = geometry), colour = "#000000", fill = NA) +
geom_sf(data = wards, aes(geometry = geometry), colour = "#5c5859", fill = NA) +
#Metro
geom_sf(data = dc_metro, aes(geometry = geometry, colour = line_color), fill = NA, size = 2) +
scale_color_identity(guide = "legend", name = "Metro Stops") +
scale_color_identity(guide = "legend", name = "Metro Stops") +
#RFK area outline
geom_sf(data = rfk_outline, color = "#000000", size = 3, fill = NA) +
#Zoom in
coord_sf(
xlim = c(xmin, xmax),
ylim = c(ymin, ymax),
expand = FALSE)
expand = FALSE) +
#distance label
annotation_scale(pad_x = unit(5, "cm"))
full_map_zoom_tract


ggsave(filename = "//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Result/full_map_zoom_tract.png",
ggsave(#filename = "//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Results/Geography & ACS/full_map_zoom_tract.png",
filename = "C:/Users/kvisalli/Box/Greater DC/Projects/RFK Stadium Analysis/Results/Geography & ACS/full_map_zoom_tract.png",
plot = full_map_zoom_tract,
device = "png",
width = 6.5,
Expand All @@ -297,29 +326,35 @@ ggsave(filename = "//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Result/full_ma
full_map_zoom_roads <- ggplot() +
#RFK focus area
geom_sf(data = rfk_tracts, aes(geometry = geometry, fill = rfk_sub_group), colour = NA) +
geom_sf(data = rfk_outline, color = "#000000", size = 1, fill = NA) +
#National Parks
geom_sf(data = national_parks, aes(geometry = geometry, fill = parks), colour = NA, alpha = 0.5) +
#Water
geom_sf(data = water, aes(geometry = geometry, fill = water), colour = NA, alpha = 0.5) +
#RFK Development
geom_sf(data = rfk, aes(geometry = geometry, fill = label), colour = NA) +
#Area legend
scale_fill_manual(breaks = c("RFK Stadium & Campus", "RFK-West of Anacostia", "RFK-East of Anacostia", "National Parks"), values = c("#ec008b", "#fce39e", "#a2d4ec", "#98cf90"), name = "Legend") +
scale_fill_manual(breaks = c("RFK Stadium & Campus", "RFK-West of Anacostia", "RFK-East of Anacostia", "National Parks", "Waterways"), values = c("#000000", "#fdbf11", "#ec008b", "#98cf90", "#73BFE2"), name = "Legend") +
#Roads
geom_sf(data = roads, aes(geometry = geometry), colour = "#9d9d9d", fill = NA, size = 0.05) +
#Wards
geom_sf(data = wards, aes(geometry = geometry), colour = "#000000", fill = NA) +
geom_sf(data = roads, aes(geometry = geometry), colour = "#5c5859", fill = NA, size = 0.05) +
# #Wards
# geom_sf(data = wards, aes(geometry = geometry), colour = "#000000", fill = NA) +
#Metro
geom_sf(data = dc_metro, aes(geometry = geometry, colour = line_color), fill = NA, size = 2) +
scale_color_identity(guide = "legend", name = "Metro Stops") +
scale_color_identity(guide = "legend", name = "Metro Stops") +
#RFK area outline
geom_sf(data = rfk_outline, color = "#000000", size = 3, fill = NA) +
#Zoom in
coord_sf(
xlim = c(xmin, xmax),
ylim = c(ymin, ymax),
expand = FALSE)
expand = FALSE) +
#distance label
annotation_scale(pad_x = unit(5, "cm"))
full_map_zoom_roads


ggsave(filename = "//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Result/full_map_zoom_roads.png",
ggsave(#filename = "//sas1/dcdata/Libraries/Requests/Prog/2026/RFK/Results/Geography & ACS/full_map_zoom_roads.png",
filename = "C:/Users/kvisalli/Box/Greater DC/Projects/RFK Stadium Analysis/Results/Geography & ACS/full_map_zoom_roads.png",
plot = full_map_zoom_roads,
device = "png",
width = 6.5,
Expand Down
18 changes: 18 additions & 0 deletions Prog/2026/RFK/ACS summary stats.sas
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,24 @@ left join rfk_tracts as b
on a.tract2 = b.tract2;
quit;

*dummy variables for each area;
data tracts3;
set tracts2;
dc = 1;
if ward2022 = 7 then ward7 = 1;
else ward7 = 0;
run;

/*** Find households under 80% AMI
87,896 from https://www.census.gov/quickfacts/fact/table/DC/INC110224
*/
sum(incmbyownercst_lt10k_2020_24) as ownerinc_lt10k,
sum(incmbyownercst_10_19k_2020_24) as ownerinc_10_19k,
sum(incmbyownercst_20_34k_2020_24) as ownerinc_20_34k,
sum(incmbyownercst_35_49k_2020_24) as ownerinc_35_49k,
sum(incmbyownercst_50_74k_2020_24) as ownerinc_50_74k,


*create Summary Statistics, census tracts in RFK sub groups (East & West of Anacostia);
proc sql; create table sub_summary_stats as select
/* census tract */
Expand Down
Loading