Skip to content

dansmall99/EarthSHAB

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python 3.9

EarthSHAB

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.

Installation

This simulation has been tested to run on Ubuntu 22.04 and Python 3.9.

For easy install on WSL and Ubuntu use:

pip install -r requirements.txt

Setup Environment:

pip install -e .

Flask front end Environment:

from main directory: 'flask run', will launch a server on port 5000.  Access via https://localhost:5000 also compatible with pythonanywhere.com

Examples

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.

These examples can all be run with the included GFS and ERA forecasts as well as a SHAB balloon trajectory (SHAB14-V) in the required APRS.fi csv format.

V1.2

This code has been refactored to:

  1. produce a KML file in addition to the other sim outputs
  2. with app.py, run a flask website with a partial front end of EarthSHAB config_earth exposed, as well as a way to display the simulated data in cesium on the page.
  3. refactored the code to use the new NOAA regime for NOMADS:
    NOAA retired their OpenDAP/DODS endpoint (nomads.ncep.noaa.gov/dods/…) which used to serve GFS data directly as NetCDF over HTTP.
    The replacement is the GRIB Filter which serves the same data but in GRIB2 format
    — requires a conversion step that didn't exist before.
    What the new saveNETCDF.py does
    Reads the same config_earth.py keys — lat, lon, lat_range, lon_range, download_days, filename — so no config changes are needed.
    Builds GRIB-filter URLs that request the 4 variables EarthSHAB needs (UGRD, VGRD, TMP, HGT) on all isobaric pressure levels from 75–1000 mb, clipped to your bounding box. Downloads one GRIB2 file per 3-hour forecast step with the 12-second delay NOAA requires between requests (they will block you otherwise).
    Opens each GRIB2 with cfgrib (which wraps the C eccodes library) → xarray Dataset.
    Concatenates all timesteps and renames variables to EarthSHAB's expected names (ugrd, vgrd, tmp, hgt, lev).
    Writes a compressed NetCDF4 file to forecasts/ — same location and structure GFS.py already reads.
  4. with runall.bash and autoNETCDF.py, set up a bash shell to re-simulate every 6 hours when new data is available There have been additional fixes for variable weather download center, better error reporting.

Author

  • Tristan Schuler - U.S. Naval Research Laboratory, University of Arizona
  • Additional Contributions: Craig Motell - NIWC Pacific

Acknowledgments

Hat Tip to Bovine Aerospace, who developed an initial solar balloon model in C++. This code was adapted from their repo.

Citing EarthSHAB

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

#tristan testing

About

Open source software for predicting solar high altitude balloon (SHAB) trajectories

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 100.0%