3v324v23's picture
wip
82e6525
# setup
require(shinyjs)
library(shiny)
library(shinydashboard)
library(leaflet)
library(mapboxapi)
library(tidyverse)
library(tidycensus)
library(sf)
library(DT)
library(RColorBrewer)
library(terra)
library(data.table)
library(mapview)
library(sjPlot)
library(sjlabelled)
library(bslib)
library(shinycssloaders)
# ------------------------------------------------
# 1) API Keys
# ------------------------------------------------
mapbox_token <- "pk.eyJ1Ijoia3dhbGtlcnRjdSIsImEiOiJjbHc3NmI0cDMxYzhyMmt0OXBiYnltMjVtIn0.Thtu6WqIhOfin6AykskM2g"
# mb_access_token(mapbox_token, install = FALSE)
# ------------------------------------------------
# 2) Load Data
# ------------------------------------------------
# -- Greenspace
getwd()
osm_greenspace <- st_read("/vsicurl/https://huggingface.co/datasets/boettiger-lab/sf_biodiv_access/resolve/main/greenspaces_osm_nad83.shp", quiet = TRUE) %>%
st_transform(4326)
if (!"name" %in% names(osm_greenspace)) {
osm_greenspace$name <- "Unnamed Greenspace"
}
# -- NDVI Raster
ndvi <- terra::rast("/vsicurl/https://huggingface.co/datasets/boettiger-lab/sf_biodiv_access/resolve/main/SF_EastBay_NDVI_Sentinel_10.tif")
# -- GBIF data
# Load what is basically inter_gbif !!!!!
# load("data/sf_gbif.Rdata") # => sf_gbif
download.file('https://huggingface.co/datasets/boettiger-lab/sf_biodiv_access/resolve/main/gbif_census_ndvi_anno.Rdata', '/tmp/gbif_census_ndvi_anno.Rdata')
load('/tmp/gbif_census_ndvi_anno.Rdata')
vect_gbif <- vect(sf_gbif)
# -- Precomputed CBG data
download.file('https://huggingface.co/datasets/boettiger-lab/sf_biodiv_access/resolve/main/cbg_vect_sf.Rdata', '/tmp/cbg_vect_sf.Rdata')
load('/tmp/cbg_vect_sf.Rdata')
if (!"unique_species" %in% names(cbg_vect_sf)) {
cbg_vect_sf$unique_species <- cbg_vect_sf$n_species
}
if (!"n_observations" %in% names(cbg_vect_sf)) {
cbg_vect_sf$n_observations <- cbg_vect_sf$n
}
if (!"median_inc" %in% names(cbg_vect_sf)) {
cbg_vect_sf$median_inc <- cbg_vect_sf$medincE
}
if (!"ndvi_mean" %in% names(cbg_vect_sf)) {
cbg_vect_sf$ndvi_mean <- cbg_vect_sf$ndvi_sentinel
}
# -- Hotspots/Coldspots
biodiv_hotspots <- st_read("/vsicurl/https://huggingface.co/datasets/boettiger-lab/sf_biodiv_access/resolve/main/hotspots.shp", quiet = TRUE) %>% st_transform(4326)
biodiv_coldspots <- st_read("/vsicurl/https://huggingface.co/datasets/boettiger-lab/sf_biodiv_access/resolve/main/coldspots.shp", quiet = TRUE) %>% st_transform(4326)
#
# # Community Organizations shapefile
# # For now simulate
#
# # Define San Francisco bounding box coordinates
# sf_bbox <- st_bbox(c(
# xmin = -122.5247, # Western longitude
# ymin = 37.7045, # Southern latitude
# xmax = -122.3569, # Eastern longitude
# ymax = 37.8334 # Northern latitude
# ), crs = st_crs(4326)) # WGS84 CRS
#
# # Convert bounding box to polygon
# sf_boundary <- st_as_sfc(sf_bbox) %>% st_make_valid()
#
# # Transform boundary to projected CRS for accurate buffering (EPSG:3310)
# sf_boundary_proj <- st_transform(sf_boundary, 3310)
#
# # Set seed for reproducibility
# set.seed(123)
#
# # Simulate 20 random points within San Francisco boundary
# community_points <- st_sample(sf_boundary_proj, size = 20, type = "random")
#
# # Convert to sf object with POINT geometry and assign unique names
# community_points_sf <- st_sf(
# NAME = paste("Community Org", 1:20),
# geometry = community_points
# )
# # Select first 3 points to buffer
# buffered_points_sf <- community_points_sf[1:3, ] %>%
# st_buffer(dist = 100) # Buffer distance in meters
#
# # Update the NAME column to indicate buffered areas
# buffered_points_sf$NAME <- paste(buffered_points_sf$NAME, "Area")
# community_points_sf <- st_transform(community_points_sf, 4326)
# buffered_points_sf <- st_transform(buffered_points_sf, 4326)
#
# # Combine points and polygons into one sf object
# community_orgs <- bind_rows(
# community_points_sf,
# buffered_points_sf
# )
#
# # View the combined dataset
# print(community_orgs)
#
# community_points_only <- community_orgs %>% filter(st_geometry_type(geometry) == "POINT")
# community_polygons_only <- community_orgs %>% filter(st_geometry_type(geometry) == "POLYGON")
#