mirror of
https://github.com/dylanbenzi/hurricane_normalization_app.git
synced 2026-07-30 05:08:57 +00:00
init commit
This commit is contained in:
@@ -0,0 +1,236 @@
|
||||
---
|
||||
title: "Hurricane Normalization App"
|
||||
runtime: shiny
|
||||
output:
|
||||
flexdashboard::flex_dashboard:
|
||||
orientation: rows
|
||||
vertical_layout: fill
|
||||
navbar:
|
||||
- {title: "Home", icon: "fa-home", href: "#"}
|
||||
- {title: "About", icon: "fa-info-circle"}
|
||||
theme:
|
||||
version: 4
|
||||
bootswatch: journal
|
||||
---
|
||||
|
||||
```{r setup, include=FALSE}
|
||||
library(flexdashboard)
|
||||
library(shiny)
|
||||
library(leaflet)
|
||||
library(DT)
|
||||
library(dplyr)
|
||||
library(DBI)
|
||||
library(tidyr)
|
||||
library(ggplot2)
|
||||
library(plotly)
|
||||
library(viridis)
|
||||
library(lubridate)
|
||||
library(scales)
|
||||
library(readr)
|
||||
library(stringr)
|
||||
library(kableExtra)
|
||||
library(bslib)
|
||||
|
||||
setwd("/home/dylan/Personal/Projects/Hurricane Normalization/")
|
||||
|
||||
pop <- read.csv("Data/population_with_projections.csv", stringsAsFactors = F) %>%
|
||||
pivot_longer(
|
||||
cols = starts_with("X"),
|
||||
names_to = "year",
|
||||
values_to = "pop",
|
||||
) %>%
|
||||
mutate(
|
||||
year = parse_number(year)
|
||||
)
|
||||
|
||||
housing <- read.csv("Data/housing_units.csv", stringsAsFactors = F) %>%
|
||||
pivot_longer(
|
||||
cols = starts_with("X"),
|
||||
names_to = "year",
|
||||
values_to = "housing"
|
||||
) %>%
|
||||
mutate(
|
||||
year = parse_number(year)
|
||||
)
|
||||
|
||||
counties <- pop %>%
|
||||
left_join(housing %>% select(FIPS, year, housing), by = c("FIPS", "year")) %>%
|
||||
pivot_longer(
|
||||
cols = c("pop", "housing"),
|
||||
names_to = "metric",
|
||||
values_to = "value"
|
||||
)
|
||||
|
||||
pop <- pop %>%
|
||||
mutate(
|
||||
FIPS = ifelse(nchar(FIPS) == 4, paste0("0", FIPS), FIPS),
|
||||
state_fips = substr(FIPS, 1, 2),
|
||||
county_fips = substr(FIPS, 3, 5)
|
||||
) %>%
|
||||
rename(population = pop) %>%
|
||||
select(!full_county_and_state:County & !county_state & !FIPS)
|
||||
|
||||
housing <- housing %>%
|
||||
mutate(
|
||||
FIPS = ifelse(nchar(FIPS) == 4, paste0("0", FIPS), FIPS),
|
||||
state_fips = substr(FIPS, 1, 2),
|
||||
county_fips = substr(FIPS, 3, 5)
|
||||
) %>%
|
||||
rename(housing_units = housing) %>%
|
||||
select(!County.Full:County & !County.State & !FIPS)
|
||||
|
||||
metrics.pop_and_housing <- pop %>%
|
||||
left_join(housing, by = c("state_fips", "county_fips", "year"))
|
||||
|
||||
donna <- read.csv("R/dataScripts/restructured/hurdat2/gis_counties.csv")
|
||||
|
||||
donna <- donna %>%
|
||||
filter(HURDAT_C_1 == "AL051960") %>%
|
||||
mutate(
|
||||
FIPS = as.character(FIPS)
|
||||
)
|
||||
|
||||
donna <- donna %>%
|
||||
mutate(
|
||||
FIPS = case_when(
|
||||
str_length(donna$FIPS) == 4 ~ paste0("0", donna$FIPS),
|
||||
TRUE ~ donna$FIPS
|
||||
),
|
||||
state_fips = substr(FIPS, 1, 2),
|
||||
county_fips = substr(FIPS, 3, 5)
|
||||
) %>%
|
||||
rename(year = Year)
|
||||
|
||||
donna <- donna %>%
|
||||
left_join(metrics.pop_and_housing, by = c("state_fips", "county_fips", "year"))
|
||||
|
||||
donna <- donna %>%
|
||||
select(Storm_Name, STATE_NAME, County_Name, state_fips, county_fips, population, housing_units)
|
||||
|
||||
donna <- donna %>%
|
||||
mutate(Storm_Name = substr(Storm_Name, 1, 5))
|
||||
|
||||
donna <- donna %>%
|
||||
mutate(
|
||||
FIPS = paste0(state_fips, county_fips)
|
||||
) %>%
|
||||
select(
|
||||
-state_fips,
|
||||
-county_fips
|
||||
)
|
||||
|
||||
donna <- donna %>%
|
||||
select(
|
||||
County = County_Name,
|
||||
Population = population,
|
||||
Housing = housing_units
|
||||
)
|
||||
|
||||
|
||||
# 1-3 FL
|
||||
# 4-10 NC
|
||||
# 11-13 CT
|
||||
# 14-16 NY
|
||||
|
||||
```
|
||||
|
||||
|
||||
Dashboard
|
||||
=============================================
|
||||
|
||||
Row {data-height=100}
|
||||
----------------------------------------------
|
||||
### {data-width=103}
|
||||
```{r}
|
||||
h6("Hurricane")
|
||||
h3("Galveston 1900")
|
||||
```
|
||||
|
||||
### {data-width=25}
|
||||
|
||||
```{r}
|
||||
valueBox("#18", caption = "Rank by population")
|
||||
```
|
||||
|
||||
### {data-width=25}
|
||||
|
||||
```{r}
|
||||
valueBox("$58.11b", caption = "Loss by population", icon = "fa-user")
|
||||
```
|
||||
|
||||
### {data-width=25}
|
||||
|
||||
```{r}
|
||||
valueBox("#37", caption = "Rank by housing")
|
||||
```
|
||||
|
||||
### {data-width=25}
|
||||
|
||||
```{r}
|
||||
valueBox("$10.63b", caption = "Loss by housing", icon = "fa-house")
|
||||
```
|
||||
|
||||
Row {data-height=400}
|
||||
----------------------------------------------
|
||||
|
||||
### {data-width=50}
|
||||
|
||||
```{r}
|
||||
donna %>%
|
||||
kbl() %>%
|
||||
kable_styling(font_size = 16) %>%
|
||||
pack_rows("Florida", 1, 3, label_row_css = "color: #fff") %>%
|
||||
pack_rows("North Carolina", 4, 10, label_row_css = "color: #fff") %>%
|
||||
pack_rows("Connecticut", 11, 13, label_row_css = "color: #fff") %>%
|
||||
pack_rows("New York", 14, 16, label_row_css = "color: #fff") %>%
|
||||
row_spec(1:16, color = "white")
|
||||
```
|
||||
|
||||
|
||||
### {data-width=50}
|
||||
|
||||
```{r}
|
||||
output$worldMap <- renderLeaflet({
|
||||
leaflet() %>%
|
||||
addTiles() %>%
|
||||
setView(lng = 0, lat = 20, zoom = 2) %>%
|
||||
addScaleBar(position = "bottomleft") %>%
|
||||
addLayersControl(
|
||||
baseGroups = c("Default", "Satellite", "Terrain"),
|
||||
options = layersControlOptions(collapsed = FALSE)
|
||||
) %>%
|
||||
addProviderTiles(providers$Esri.WorldImagery, group = "Satellite") %>%
|
||||
addProviderTiles(providers$Stamen.Terrain, group = "Terrain") %>%
|
||||
hideGroup("Satellite") %>%
|
||||
hideGroup("Terrain")
|
||||
})
|
||||
|
||||
output$map <- renderLeaflet({
|
||||
leaflet() %>%
|
||||
addProviderTiles("Stadia.AlidadeSmoothDark", option = providerTileOptions(minZoom = 2, maxZoom = 18)) %>%
|
||||
setView(lng = 0, lat = 20, zoom = 2)
|
||||
})
|
||||
|
||||
#leafletOutput("map", height="100%")
|
||||
|
||||
leafletOutput("worldMap", height = "100%")
|
||||
```
|
||||
|
||||
Row {data-height=400}
|
||||
---
|
||||
|
||||
### {data-width=50}
|
||||
|
||||
```{r}
|
||||
lines <- metrics.pop_and_housing %>%
|
||||
filter(state_fips == "01" & county_fips == "087" & year >= 1960)
|
||||
|
||||
output$lineChart <- renderPlot({
|
||||
ggplot(lines, aes())
|
||||
})
|
||||
```
|
||||
|
||||
### {data-width=50}
|
||||
```{r eval=FALSE, include=FALSE}
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user