SatViz is a Cesium-based visualization pipeline to generate interactive satellite network visualizations. It makes use of the online Cesium API by generating CesiumJS code. The API calls require its user to obtain a Cesium access token (via https://cesium.com/).
-
Obtain a Cesium access token at https://cesium.com/
-
Edit
static_html/top.html
, and insert your Cesium access token at line 10:Cesium.Ion.defaultAccessToken = '<CESIUM_ACCESS_TOKEN>';
-
Now you are able to make use of the scripts in
scripts/
-
visualize_constellation.py
: Generates visualizations for entire constellation (multiple shells). -
visualize_horizon_over_time.py
: Finds satellite positions (azimuth, altitude) over time for a static observer and plots them relative to the observer. -
visualize_path.py
: Visualizes paths between pairs of endpoints at specific time instances. -
visualize_path_no_isl.py
: Visualizes paths between pairs of endpoints when no inter-satellite connectivity exists. -
visualize_path_wise_utilization.py
: Visualizes link utilization for specific end-end paths at a specific time instance. -
visualize_utilization.py
: Visualizes link utilization for all end-end paths at a specific time instance.
-
Fig. 11: Constellation trajectories
: Use scriptvisualize_constellation.py
to generate constellations. To generate Starlink, Kuiper, or Telesat, one should uncomment the corresponding parameter block in the script, and comment out the other parameter blocks. The default is Starlink 5-shell. -
Fig. 12: Ground observer's view
: Use scriptvisualize_horizon_over_time.py
. To change observer location, change theLOCATION
coordinates. In order to visualize for X seconds at a granularity of Y seconds, setVIZ_TIME = X
andVIZ_GRAN = Y
. The default values are:LOCATION = (59.9311, 30.3609)
corresponding to St. Petersburg,X = 170
, andY = 5
. -
Fig. 13: Shortest path changes over time
: Use scriptvisualize_path.py
. Change the values ofGEN_TIME
andpath_file
for various visualization generation times and city pairs respectively. The default values generateFig. 13 (left)
. The same script can be used to generateFig. 16(a) and 17(a)
. -
Fig. 14: Congestion shifts over time
: Use scriptvisualize_path_wise_utilization.py
. Change the values ofGEN_TIME
,path_file
, andIN_UTIL_FILE
for specifying visualization time, end-to-end path, and utilization. The default values generateFig. 14 (top)
. -
Fig. 15: Constellation-wide utilization
: Use scriptvisualize_utilization.py
. Change the values ofGEN_TIME
andIN_UTIL_FILE
for specifying visualization generation time and utilization. The default values generateFig. 15
. -
Fig. 16(b) and 17(b)
: Use scriptvisualize_path_no_isl.py
to visualize paths when constellation does not have inter-satellite connectivity. Change the values ofGEN_TIME
andpath_file
for various visualization generation times and city pairs respectively. The default values generateFig 17(b)
.