How adamweaver/chlorosat works
Chlorosat’s live product is a static website where visitors open an interactive globe, choose a year and map view, adjust vegetation display, and search for places. In the browser, the globe engine obtains and styles map data from public services; search uses Photon. The repository also contains a separate, experimental offline Python pipeline for processing satellite bands into map outputs, explicitly not used by the live site. Pipeline connections are limited to those visible in the sampled source; README-documented live-site behavior is distinguished from implementation details not shown.
Main entry points: MapApp.js Map interface · chlorosatGlobeEngine.js Globe engine · process.py Raster processing · export.py PNG and manifest export
Components 34
Website
- Home page
web/src/app/page.js - Site navigation
web/src/components/Header.js - Map page
web/src/app/map/page.js - About page
web/src/app/about/page.js
Globe and controls
- Persistent map
web/src/components/map/PersistentMap.js - Map interface
web/src/components/map/MapApp.js - Globe engine
web/src/lib/map/chlorosatGlobeEngine.js - Year selector
web/src/components/map/controls/YearSelector.js - Vegetation controls
web/src/components/map/controls/OpacitySlider.js - Basemap toggle
web/src/components/map/controls/BaseMapToggle.js - Navigation controls
web/src/components/map/controls/SideControls.js - Vegetation legend
web/src/components/map/controls/Legend.js - Place search
web/src/components/map/controls/SearchBar.js - Panel interaction
web/src/components/map/controls/useHoverExpand.js - Geocoding client
web/src/lib/map/geocode.js - Vegetation colors
web/src/lib/map/heatColors.js - Reference labels
web/src/lib/map/referenceLabels.js
Browser data sources
- NASA GIBS
- Esri imagery
- OpenFreeMap tiles
- Photon search
- Browser cache
Offline pipeline
- Pipeline CLI
pipeline/src/chlorosat/cli.py - Band acquisition
pipeline/src/chlorosat/fetch.py - Region configuration
pipeline/src/chlorosat/config.py - Raster processing
pipeline/src/chlorosat/process.py - NDVI calculation
pipeline/src/chlorosat/ndvi.py - Method definitions
pipeline/src/chlorosat/methods.py - Visible-light method
pipeline/src/chlorosat/visible.py - Compositing
pipeline/src/chlorosat/composite.py - Regional statistics
pipeline/src/chlorosat/stats.py - Raster rendering
pipeline/src/chlorosat/render.py - PNG and manifest export
pipeline/src/chlorosat/export.py
Other components
- Visitor
Connections 33
- Visitor → Home page: opens
README.md - Visitor → Map page: opens
README.md - Visitor → About page: opens
README.md - Home page → Site navigation: shows navigation
- Map page → Persistent map: displays map
- Persistent map → Map interface: hosts
web/src/components/map/PersistentMap.js - Map interface → Globe engine: creates engine
web/src/components/map/MapApp.js - Map interface → Year selector: renders
web/src/components/map/MapApp.js - Map interface → Vegetation controls: renders
web/src/components/map/MapApp.js - Map interface → Basemap toggle: renders
web/src/components/map/MapApp.js - Map interface → Navigation controls: renders
web/src/components/map/MapApp.js - Map interface → Vegetation legend: renders
web/src/components/map/MapApp.js - Map interface → Place search: renders
web/src/components/map/MapApp.js - Place search → Geocoding client: searches places
web/src/components/map/controls/SearchBar.js - Geocoding client → Photon search: queries
README.md - Year selector → Panel interaction: uses panel logic
web/src/components/map/controls/useHoverExpand.js - Vegetation controls → Panel interaction: uses panel logic
web/src/components/map/controls/useHoverExpand.js - Basemap toggle → Panel interaction: uses panel logic
web/src/components/map/controls/useHoverExpand.js - Globe engine → NASA GIBS: fetches NDVI tiles
README.md - Globe engine → NASA GIBS: fetches water mask
README.md - Globe engine → Esri imagery: fetches imagery
README.md - Globe engine → OpenFreeMap tiles: loads map tiles
README.md - Globe engine → Browser cache: caches raw tiles
README.md - Globe engine → Vegetation colors: uses colors
web/src/lib/map/chlorosatGlobeEngine.js - Globe engine → Reference labels: uses labels
web/src/lib/map/chlorosatGlobeEngine.js - Pipeline CLI → Raster processing: invokes
pipeline/src/chlorosat/cli.py - Raster processing → Region configuration: reads regions
pipeline/src/chlorosat/process.py - Raster processing → NDVI calculation: computes NDVI
pipeline/src/chlorosat/process.py - Raster processing → Method definitions: uses classes
pipeline/src/chlorosat/process.py - Raster processing → Raster rendering: reprojects and colors
pipeline/src/chlorosat/process.py - Raster processing → PNG and manifest export: writes outputs
pipeline/src/chlorosat/process.py - PNG and manifest export → Method definitions: records methods
pipeline/src/chlorosat/export.py - PNG and manifest export → Raster rendering: saves PNG
pipeline/src/chlorosat/export.py