Spaces:
Sleeping
Sleeping
| # ============================================================================ | |
| # Setup: HuggingFace-optimized data loading | |
| # ============================================================================ | |
| # This version uses GDAL virtual file system and temporary downloads | |
| # for efficient loading in cloud/ephemeral environments like HuggingFace Spaces. | |
| # For local development with persistent caching, use setup_local.R instead. | |
| 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) | |
| # ============================================================================ | |
| # API Keys | |
| # ============================================================================ | |
| mapbox_token <- "pk.eyJ1Ijoia3dhbGtlcnRjdSIsImEiOiJjbHc3NmI0cDMxYzhyMmt0OXBiYnltMjVtIn0.Thtu6WqIhOfin6AykskM2g" | |
| # ============================================================================ | |
| # Load Data from HuggingFace | |
| # ============================================================================ | |
| # -- Greenspace (read directly from URL via GDAL virtual file system) | |
| 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" | |
| } | |
| # -- Greenspace Distance Rasters (read directly from URL via GDAL virtual file system) | |
| greenspace_dist_raster <- terra::rast("/vsicurl/https://huggingface.co/datasets/boettiger-lab/sf_biodiv_access/resolve/main/nearest_greenspace_dist.tif") | |
| greenspace_osmid_raster <- terra::rast("/vsicurl/https://huggingface.co/datasets/boettiger-lab/sf_biodiv_access/resolve/main/nearest_greenspace_osmid.tif") | |
| # -- NDVI Raster (read directly from URL via GDAL virtual file system) | |
| ndvi <- terra::rast("/vsicurl/https://huggingface.co/datasets/boettiger-lab/sf_biodiv_access/resolve/main/SF_EastBay_NDVI_Sentinel_10.tif") | |
| # -- GBIF data (loaded via DuckDB parquet in app.R server function) | |
| # DuckDB can read parquet files directly from URLs | |
| gbif_parquet <- "https://huggingface.co/datasets/boettiger-lab/sf_biodiv_access/resolve/main/gbif_census_ndvi_anno.parquet" | |
| # -- Precomputed CBG data (download to /tmp and load) | |
| 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 (read directly from URL via GDAL virtual file system) | |
| 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) | |
| # -- RSF Program Projects (read directly from URL via GDAL virtual file system) | |
| rsf_projects <- st_read("/vsicurl/https://huggingface.co/datasets/boettiger-lab/sf_biodiv_access/resolve/main/RSF_Program_Projects_polygons.gpkg", quiet = TRUE) |> | |
| st_transform(4326) | |