Skip to content

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.

License

Notifications You must be signed in to change notification settings

darkviruzz/eclipse-chaser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eclipse-chaser

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.


human written input

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.


Features


Live data sources (default adapters)

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)


Architecture

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.

Scoring Model (MCDA)

Goal: rank candidate sites and output the Top 5 within a 250 km configurable radius.

Criteria (defaults)

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 }
}

Eclipse-Facing Horizon Analysis

  • 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)

Data overlays (visual)


Getting started

Prereqs

  • Node 18+, npm/pnpm; optional Python 3.11+ for server mode.
  • API keys if you use regional providers (e.g., AEMET OpenData). (aemet.es)

Install

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

Load an eclipse

  • 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.json with timing metadata.

Tech stack


Licenses & attribution


Roadmap


Contributing

PRs welcome—especially data adapters for other meteorological agencies, DEM sources, or eclipse providers.


Why this approach?


Disclaimer

⚠️ Important: This project and its code are provided “as-is”, highly experimental and likely incomplete or incorrect.
It is labelled unstable / in-development and remains so until further notice—no promises of future completion or feature fulfillment.

AI-generated content

  • 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.

No warranty or guarantees

  • 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.

User responsibility

  • 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.

AI origin disclosure

  • 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.)


Appendix: Key docs & references


About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published