Solar high altitude balloons (SHAB) are a simple and lightweight option for aerial exploration and meteorological data collection both terrestrially and on other planets. By using a lightweight material that absorbs visual light and emits low levels of thermal radiation, solar balloons behave similarly to hot air balloons, but are capable of ascending to much higher altitudes. Unlike hot air balloons, which use a heat source to raise the temperature of the internal air, solar balloons generate heat by absorbing solar radiation, providing a free source of lift and eliminating the need for a lighter than air gas or carrying fuel.
EarthSHAB is an open source software platform for predicting the flight paths of solar balloon on Earth, adapted from MarsSHAB, developed at the University of Arizona. Altitude profiles for a SHAB flight are generated using heat transfer modeling and dynamic analysis. By incorporating weather forecasts from NOAA, complete 3D SHAB trajectories can also be predicted.
Features
- 3D trajectory prediction with heat-transfer + dynamic balloon physics
- Forecast support for GFS (NOAA) and ERA5 (ECMWF) reanalysis
- Multi-altitude rainbow trajectory predictions
- Interactive HTML trajectory and wind-vector maps
- Evaluation suite for comparing simulations against historical APRS flights, with batch / campaign reporting
See the full documentation and the Changelog for what's new.
git clone https://github.com/tkschuler/EarthSHAB.git
cd EarthSHAB
pip install -r requirements.txt && pip install -e .
python -m EarthSHAB.main # run your first trajectory prediction with the included archived GFS forecast
See Installation for the recommended conda setup (needed for cfgrib / ERA5).
config_earth.py includes adjustable parameters and default parameters for running any of the files discussed below. These parameters include balloon size, envelope material properties, deployment location, date and time, etc.
saveNETCDF.py downloads subsets of NOAA weather forecasts for offline simulation
main.py*, predict.py, and trapezoid.py show examples of how to produce relevant and html-based trajectory maps using the Google maps API.
evaluation/evaluate.py runs a single EarthSHAB simulation against a real APRS balloon track and reports how close the model came. It runs a forward simulation, a reforecast (forecast winds applied to the truth altitude profile to isolate wind error from vertical-motion error), detects the ascent / float / descent phases for both sim and truth, and writes a console report, a per-launch CSV, an interactive trajectory HTML, and the comparison plot below.
python -m evaluation.evaluate
For sweeping a collection of flights at once and comparing across code revisions, see evaluation/run_batch.py and the Evaluation docs.
If EarthSHAB played an important role in your research, then please cite the following publication where EarthSHAB was first introduced:
Solar Balloons - An Aerial Platform for Planetary Exploration

