Plan. Chase. See totality. An open-source web app that overlays eclipse geometry with weather, aerosols/smoke, wildfire danger, and topography to score vantage points and recommend the top 5 sites within a configurable 250 km “cloud-dash” radius.
- Reusability first: ingest NASA/GSFC/X. Jubier path data or Besselian-derived KMZ per event, so the same pipeline works for any eclipse. (eclipse.gsfc.nasa.gov, xjubier.free.fr, xjubier.free.fr)
- Open data only: AEMET (Spain) & Open-Meteo forecasts, ERA5/ERA5-Land reanalysis, Copernicus CAMS aerosols (dust/smoke), EFFIS Fire Weather Index, Copernicus DEM / national LiDAR, OSM/Overpass for POIs and access. (aemet.es, Open Meteo, cds.climate.copernicus.eu, cds.climate.copernicus.eu, confluence.ecmwf.int, Datenportal Europa, registry.opendata.aws, copernicus-dem-30m.s3.amazonaws.com, Plan Nacional de Ortofotografía Aérea, Plan Nacional de Ortofotografía Aérea, OpenStreetMap)
- In-browser geospatial: MapLibre/Leaflet for maps, GeoTIFF.js for rasters, SunCalc/NREL SPA for solar geometry. (maplibre.org, leafletjs.com, geotiffjs.github.io, GitHub, GitHub, NREL Dokumente)
This project is mostly (probably >99%) Ai generated. (this is one of the few paragraphs i write myself)
I have some background knowledge in python and web development, but thats minimal and i do that barely as a side-hustle because i would like such a piece of software. it will most likely not be finished and not be whats promised. But maybe Ai gets better fast enough to help me with this idea.
- Eclipse layers Load NASA/GSFC path (centerline/limits/timing) or Xavier Jubier KMZ for the target eclipse. (eclipse.gsfc.nasa.gov, xjubier.free.fr)
- West-horizon finder Ranks west-facing viewpoints by computing horizon cut-off and viewshed from DEM/LiDAR tiles (browser or server mode). Uses Copernicus GLO-30 globally; can switch to Spain’s PNOA-LiDAR where available. (registry.opendata.aws, Copernicus Data Space Ecosystem, Plan Nacional de Ortofotografía Aérea)
- Weather & hazards overlays Cloud forecasts (AEMET in ES; Open-Meteo globally), reanalysis climatology (ERA5/ERA5-Land), aerosols/smoke (CAMS AOD & GFAS), and fire danger (EFFIS FWI). (aemet.es, Open Meteo, cds.climate.copernicus.eu, cds.climate.copernicus.eu, confluence.ecmwf.int, ECMWF, Copernicus Atmosphere, Datenportal Europa)
- Satellite context Optional EUMETSAT (Meteosat) real-time imagery and NASA GIBS True-Color tiles to eyeball actual cloud decks. (user.eumetsat.int, EUMETSAT, nasa-gibs.github.io)
- MCDA site scoring Weighted multi-criteria analysis (configurable) across totality geometry, weather, haze/smoke, topography/horizon, vegetation & fire risk, access & beds to output a ranked shortlist and top-5 within N km. (See Scoring Model.)
- Cloud-dash planner Draw a user-set radius (default 250 km), visualize reachable alternates, and export a “Plan A/B/C” with turn-by-turn links.
- Pluggable data providers A common interface wraps regional weather APIs (e.g., AEMET) and global fallbacks (Open-Meteo), so the repo adapts to other countries and future eclipses. (aemet.es, Open Meteo)
| Layer | Primary | Global fallback / notes |
|---|---|---|
| Eclipse path (centerline/limits, timing) | NASA/GSFC interactive & tabular path; Xavier Jubier KMZ for convenience. (eclipse.gsfc.nasa.gov, eclipse.gsfc.nasa.gov, xjubier.free.fr, xjubier.free.fr) | NSO overview pages reference NASA path data. (NSO - National Solar Observatory) |
| Cloud forecast | AEMET OpenData (Spain) (aemet.es) | Open-Meteo global, no key. (Open Meteo) |
| Climatology (hourly, twilight) | ERA5 / ERA5-Land (CDS) (cds.climate.copernicus.eu, cds.climate.copernicus.eu) | Same globally via CDS API. (cds.climate.copernicus.eu) |
| Aerosols (dust/smoke) | CAMS global composition forecasts; GFAS fire emissions. (confluence.ecmwf.int, ECMWF) | CAMS docs / product notes. (Copernicus Atmosphere) |
| Fire danger | EFFIS FWI & anomaly. (forest-fire.emergency.copernicus.eu, Datenportal Europa) | GWIS for global context. (GWIS) |
| DEM / LiDAR | Copernicus DEM GLO-30; Spain PNOA-LiDAR. (registry.opendata.aws, copernicus-dem-30m.s3.amazonaws.com, Plan Nacional de Ortofotografía Aérea) | DEM license & DOI guidance. (Copernicus Data Space Ecosystem, docs.sentinel-hub.com) |
| Base map / POIs | OpenStreetMap via Overpass API. (OpenStreetMap, dev.overpass-api.de) | — |
| Satellite imagery (optional) | EUMETSAT EUMETView/Data Store; NASA GIBS WMTS. (user.eumetsat.int, user.eumetsat.int, nasa-gibs.github.io) | VIIRS true-color background. (NASA Earthdata) |
⚖️ Licensing notes: NASA Earth science data is generally open/public domain with attribution guidance; OSM is ODbL 1.0; Copernicus DEM is free-to-use with attribution; AEMET OpenData requires API key and attribution per terms. See Licenses & Attribution below. (NASA Earthdata, NASA, OpenStreetMap, opendatacommons.org, docs.sentinel-hub.com, aemet.es)
Front-end (default)
- React + MapLibre GL JS (vector tiles) or Leaflet (raster/WMS), Turf.js for geospatial ops, Proj4 for projections, GeoTIFF.js for client-side rasters (ERA5 grids, DEM tiles), SunCalc (fast) with optional NREL SPA (high-precision) for low-altitude Sun geometry near sunset. (maplibre.org, leafletjs.com, geotiffjs.github.io, GitHub, NREL Dokumente)
Back-end (optional, for heavy lifting)
- Python FastAPI micro-services to pre-aggregate ERA5/ERA5-Land, CAMS/GFAS and EFFIS rasters into tiled Cloud-Optimized GeoTIFFs (COGs); cache by bbox+time; queue workers for reanalysis downloads from CDS; S3-compatible storage (minio). (cds.climate.copernicus.eu, cds.climate.copernicus.eu)
Why two modes?
- Browser-only is great for portability and hackability.
- Server-assist avoids big downloads on mobile and enables hourly updates for aerosols/smoke & FWI.
Goal: rank candidate sites and output the Top 5 within a 250 km configurable radius.
Criteria (defaults)
- Geometry (duration, distance to centerline, contact times) — 0.25
- Solar altitude at totality (°) — 0.10
- Cloudiness (19:00–21:00 local) from forecast + ERA5 climatology — 0.20 (cds.climate.copernicus.eu)
- Aerosols/haze/smoke (CAMS AOD; GFAS for active fires) — 0.10 (confluence.ecmwf.int, ECMWF)
- Fire danger (EFFIS FWI 90-percentile/forecast) — 0.05 (forest-fire.emergency.copernicus.eu)
- Topography & horizon (west-facing, skyline cutoff ≤ 1°) — 0.15 (DEM/LiDAR) (registry.opendata.aws, Plan Nacional de Ortofotografía Aérea)
- Access & beds (road classes, OSM POI density) — 0.10 (Overpass) (OpenStreetMap)
- Alternate-site density within 50 km — 0.05
Each sub-score is normalized to [0, 1]; Weighted Sum ⇒ total score, then filter by reachability radius.
Config example (scoring.json)
{
"radius_km": 250,
"weights": {
"geometry": 0.25, "solar_alt": 0.10, "cloud": 0.20,
"aerosol": 0.10, "fire": 0.05, "topography": 0.15,
"access": 0.10, "alternates": 0.05
},
"thresholds": { "min_solar_alt_deg": 2.0, "max_horizon_cut_deg": 1.0 }
}- DEM first: sample west-azimuth rays (≈260°–300°) from candidate cell; compute skyline and horizon cutoff; score higher when cutoff ≤ 1°. Works globally on Copernicus DEM GLO-30; Spain users can opt into PNOA-LiDAR (0.5–2 m) for micro-relief & tree lines. (registry.opendata.aws, Plan Nacional de Ortofotografía Aérea)
- Solar geometry: at totality timestamp, compute Sun azimuth/altitude using SunCalc (fast) or NREL SPA (precision near low Sun). (GitHub, NREL Dokumente)
- Eclipse: path polygon (limits/centerline), time contours at 10-minute intervals. (eclipse.gsfc.nasa.gov)
- Cloud forecast: AEMET tiles/JSON in Spain; global Open-Meteo for cloud cover probability. (aemet.es, Open Meteo)
- Twilight climatology: ERA5/ERA5-Land hourly means for 19–21 local. (cds.climate.copernicus.eu, cds.climate.copernicus.eu)
- Aerosols & smoke: CAMS AOD, GFAS fire emissions heat maps. (confluence.ecmwf.int, ECMWF)
- Fire danger: EFFIS FWI (forecast & anomaly). (forest-fire.emergency.copernicus.eu)
- Satellite: EUMETSAT (Meteosat Rapid Scan) and NASA GIBS (VIIRS/MODIS true color) as backdrop. (user.eumetsat.int, nasa-gibs.github.io)
- Access & amenities: OSM roads/parking/POIs via Overpass. (OpenStreetMap)
- Node 18+, npm/pnpm; optional Python 3.11+ for server mode.
- API keys if you use regional providers (e.g., AEMET OpenData). (aemet.es)
git clone https://github.com/<you>/eclipse-chaser
cd eclipse-chaser
pnpm i # or npm i / yarn
cp .env.example .env.local # add AEMET key if needed
pnpm dev- Drop a NASA/GSFC path CSV/KML or X. Jubier KMZ into
/data/eclipses/<YYYYMMDD>/. (eclipse.gsfc.nasa.gov, xjubier.free.fr) - Or point to a remote URL in
eclipses.config.jsonwith timing metadata.
- Map engine: MapLibre GL JS or Leaflet. (maplibre.org, leafletjs.com)
- Rasters: GeoTIFF.js (+ COGs), optional GIBS WMTS. (geotiffjs.github.io, nasa-gibs.github.io)
- Geodesy: Turf.js, proj4.
- Solar: SunCalc (BSD) / NREL SPA (reference). (GitHub, NREL Dokumente)
- Data: AEMET, Open-Meteo, ERA5/ERA5-Land (CDS), CAMS/GFAS, EFFIS, Copernicus DEM, PNOA-LiDAR, OSM/Overpass, EUMETSAT, NASA GIBS. (aemet.es, Open Meteo, cds.climate.copernicus.eu, cds.climate.copernicus.eu, confluence.ecmwf.int, ECMWF, forest-fire.emergency.copernicus.eu, registry.opendata.aws, Plan Nacional de Ortofotografía Aérea, OpenStreetMap, user.eumetsat.int, nasa-gibs.github.io)
- Code: Apache-2.0 (suggested).
- NASA (eclipse paths, imagery): public domain/attribution as per NASA guidelines & DAAC citation. (NASA, modaps.modaps.eosdis.nasa.gov)
- AEMET: free use with API key; follow AEMET OpenData attribution. (opendata.aemet.es, aemet.es)
- OpenStreetMap: ODbL 1.0, include © OpenStreetMap contributors. (OpenStreetMap, opendatacommons.org)
- Copernicus DEM (GLO-30): free-to-use with attribution; see license & DOI. (docs.sentinel-hub.com, Copernicus Data Space Ecosystem)
- CAMS/GFAS: acknowledge ECMWF/Copernicus Atmosphere Service. (Copernicus Atmosphere)
- EFFIS/GWIS: acknowledge Copernicus Emergency Management Service. (forest-fire.emergency.copernicus.eu)
- EUMETSAT: follow Data Store/EUMETView terms when redisplaying imagery. (user.eumetsat.int)
- One-click Top-5 plan export (GPX/KML + PDF field sheet).
- Server-assist mode with nightly ERA5 tiles & hourly CAMS/EFFIS refresh. (cds.climate.copernicus.eu, confluence.ecmwf.int, forest-fire.emergency.copernicus.eu)
- Local horizon cache using Copernicus DEM tiles (S3/Azure). (registry.opendata.aws)
- Pluggable providers for other NMHS (e.g., DWD, Météo-France).
- Offline PWA build for field use.
- Optional AHP weighting UI for power users.
PRs welcome—especially data adapters for other meteorological agencies, DEM sources, or eclipse providers.
- Eclipse chasing at low solar altitude lives or dies by twilight cloud and horizon obstructions; modern open datasets let us quantify both. ERA5/ERA5-Land covers the climatology; AEMET/Open-Meteo provide short-range forecasts; CAMS/GFAS adds dust/smoke risk; EFFIS flags fire weather; Copernicus DEM/PNOA-LiDAR nails the skyline; OSM exposes access & amenities—all reusable for any future eclipse. (cds.climate.copernicus.eu, cds.climate.copernicus.eu, aemet.es, Open Meteo, confluence.ecmwf.int, ECMWF, forest-fire.emergency.copernicus.eu, registry.opendata.aws, Plan Nacional de Ortofotografía Aérea, OpenStreetMap)
It is labelled unstable / in-development and remains so until further notice—no promises of future completion or feature fulfillment.
- Over 99 % of this project (code, text, data pipelines, configurations) was generated using AI tools like ChatGPT / Codex, with minimal human tweaking.
- I have very limited background in Python or web development, and this is more a side‑hustle prototype born from personal interest than professional software.
- There is no warranty regarding correctness, reliability, completeness, or fitness for any particular purpose.
- Use of this software is at your own risk. It may contain bugs, hallucinations, outdated assumptions, security vulnerabilities, or incomplete features.
- You must independently verify any outputs, algorithms, or results before relying on them—especially for planning or critical decisions (e.g. eclipse logistics, weather predictions).
- This is not legal, scientific, medical, or professional advice in any domain.
- I track AI-generated code via this repository’s structure and markings (e.g. file headers incl. “AI-generated”).
- If you choose to contribute, please only submit code you wrote or fully reviewed—and clearly label any new AI-generated content.
(If major milestones are reached or human rewriting fundamentally changes the project, this status may be updated—but don’t count on it.)
- NASA/GSFC eclipse path tables & Google map for 2026-08-12. (eclipse.gsfc.nasa.gov, eclipse.gsfc.nasa.gov)
- Xavier Jubier interactive maps & Google Earth files (KMZ). (xjubier.free.fr, xjubier.free.fr)
- Leaflet / MapLibre GL JS docs. (leafletjs.com, maplibre.org)
- GeoTIFF.js docs. (geotiffjs.github.io)
- SunCalc and NREL SPA references. (GitHub, NREL Dokumente)
- Open-Meteo (forecast & historical archive). (Open Meteo, Open Meteo)
- AEMET OpenData entry points & FAQs (ES). (aemet.es, opendata.aemet.es)
- CAMS composition forecasts / GFAS fire emissions docs. (confluence.ecmwf.int, Copernicus Atmosphere)
- EFFIS FWI & services. (forest-fire.emergency.copernicus.eu)
- Copernicus DEM access & license. (registry.opendata.aws, docs.sentinel-hub.com)
- EUMETSAT Data Store / EUMETView. (user.eumetsat.int, EUMETSAT)
- OSM Overpass API docs. (OpenStreetMap)