-
Notifications
You must be signed in to change notification settings - Fork 3
Sample Dashboards
GeoSet ships with a self-contained demo stack that loads real geospatial data and pre-built dashboards so you can explore the platform without setting up your own data sources.
The demo stack loads three datasets from public APIs:
| Dataset | Source | Table |
|---|---|---|
| US State Boundaries | Census Bureau API | census_state_boundaries |
| Active Wildfire Locations | NIFC ArcGIS API | nifc_wildfire_locations |
| Hurricane Best Track | NHC/NOAA API | nhc_best_track |
These datasets power two multi-layer map charts inside the GeoSet Example Dashboard:
A multi-layer map combining:
- Storm Track Points — NHC best track observation points colored by max wind speed (yellow → red gradient)
- Storm Track Points Text Overlay — max gust wind speed labels at each observation point
- Storm Track Lines — aggregated best track lines per storm per year
- Census State Boundaries — US state boundary polygons
Includes native dashboard filters for Hurricane Season (year) and Hurricane Name (cascades from Season).
A multi-layer map combining:
- NIFC Wildfire Locations — active wildfire points colored by fire cause (Human, Natural, Undetermined)
- Census State Boundaries — US state boundary polygons
Includes a native dashboard filter for Fire Cause.
The demo stack uses the docker-compose.yml at the project root. It includes PostGIS and a one-shot data ingest container that loads the sample datasets automatically.
# Start the demo stack
docker compose up
# Start with a full rebuild
docker compose up --build
# Stop
docker compose down
# Stop and wipe all data (full reset)
docker compose down -vAccess the demo at http://localhost:9001 with credentials admin / admin.
The data ingest container runs once and is idempotent — if the tables already have data, the scripts skip them.
Browser (:9001)
│
▼
superset-node ← Webpack dev server (hot reload)
│
▼ API calls
superset (:8088) ← Flask backend
│
├──▶ db ← PostgreSQL (Superset metadata)
└──▶ postgis (:5433) ← PostGIS (geospatial data)
│
▼
sample-data-ingest ← One-shot data loader
- Add a
CREATE TABLEstatement tosample-data/init.sql - Write an ingest script in
sample-data/that fetches and inserts the data. Useutils.pyfor the DB connection and callskip_if_populated()to keep it idempotent - Register the script in
sample-data/entrypoint.sh
- Build the chart in the Superset UI using your new dataset
- Export it from Charts → Actions → Export (downloads a ZIP with YAMLs)
- Copy the YAMLs into:
superset/examples/geoset_configs/charts/GeoSet/superset/examples/geoset_configs/datasets/geoset/
- Strip the
query_contextfield from the chart YAML (it contains instance-specific IDs)
- Build the dashboard in the Superset UI
- Export it from Dashboards → Actions → Export
- Copy the dashboard YAML into
superset/examples/geoset_configs/dashboards/
Multi Map charts reference sub-layer charts by integer ID in deck_slices. Since IDs vary per instance, use deck_slice_uuids with stable UUIDs in the YAML instead. The post-import hook resolves these to runtime IDs automatically.
docker compose up --buildThe importer walks the entire geoset_configs/ directory — all dashboards, charts, and datasets are picked up automatically.