Skip to content

kcglab/edgeGS

Repository files navigation

SATLLA-GS

Satlla-GS is a simulation framework for modeling the interaction between satellite constellations and ground station (GS) networks. It focuses on evaluating different selection algorithms—ranging from greedy approaches to cooperative game theory (Shapley values)—to optimize signal reception and network utility.

The system can run in a headless mode for statistical data collection or a GUI mode for real-time visualization of satellite passes and network activity.

Table of Contents

Features

  • Multi-Mode Scheduling: Implements 6 distinct algorithms for GS-Satellite pairing, including distance-based, probability-based, and cooperative utility models.

  • Cooperative Game Theory: Includes a dedicated module to calculate the Shapley value, estimating the marginal contribution of a specific ground station to the network's total reception probability.

  • Real-time Propagation: Uses SGP4 propagation (via passpredict and skyfield) to calculate satellite positions, slant ranges, and visibility windows based on TLE data.

  • Dynamic Reporting: Automatically generates detailed CSV reports for visibility contacts, message logs, and satellite status, aggregated by timestamp.

  • Visualization: Optional Tkinter-based GUI with map overlay (tkintermapview) to track satellite movements and station status in real-time.

Abstract

Nanosatellites are becoming a preferred platform for testing innovative technologies and conducting academic research in space. The growing number of nanosatellites generates a massive amount of data that should be transmitted to dedicated ground stations. Nanosatellites typically have relatively narrow bandwidth and their expected visibility is about 1% of the time, assuming a single ground station and a Low Earth Orbit (LEO). Therefore, the effective throughput of nanosatellites is limited.

Algorithms

The logic for selecting which satellite a Ground Station listens to is defined in GroundStation.py and shapley_value.py:

  • ALG_1 (Greedy Distance): Selects the satellite with the closest geometric distance.

  • ALG_2 (Max Probability): Selects the satellite with the highest known reception probability.

  • ALG_3 (Prob Function): Uses an interpolated probability function based on distance.

  • ALG_4 (Local Utility): Maximizes expected utility by considering local GS redundancy within 100km.

  • ALG_5 (Weighted Reward): Prioritizes satellites based on a weight/reward ratio divided by the number of current listeners.

  • ALG_6 (Cooperative Shapley): Calculates the specific contribution (Shapley value) of the GS to the network's success probability and selects the pass with the highest marginal gain.

Installation

  1. Clone the repository:

    git https://github.com/kcglab/edgeGS.git
    cd edgeGS
  2. Install:

    pip install -r requirements.txt
    or:
    pip install pandas numpy skyfield passpredict geopy click pillow tkintermapview scipy requests

Data Setup: Ensure the db/ and files/ directories contain the necessary edgegs_db.json, tle.txt, and gs.txt configuration files as referenced in the utilities.

Usage

Run the main script to execute the Satellite Ground Station System:

python main.py [OPTIONS] [FILENAME]
  • Options:

    • -p, --period (default: 60): Increment time period [sec]
    • -m, --mode (default: [0]): Alg Mode
    • -e, --execution-time (default: 2): Execution Time [hr]
    • -g, --use-gui (default: False): Use GUI
    • -s, --satellites (default: 50): Number of Satellites participating
    • -gs, --ground-stations (default: 50): Number of Ground Stations participating
    • -ts, --timestamp (default: ''): Timestamp
    • -ds, --date-start (default: ['01-04-2023 12:00:00']): List of start dates
    • FILENAME: Path to the input file (must exist)

Example

python main.py -p 30 -m 1 -e 1 -g -ts '2023-12-10 12:00:00' -ds '01-01-2023 00:00:00'

Outputs

Results are stored in the reports/ folder. A new subfolder is created for every run based on the start timestamp.

  • gs_combined.csv: Aggregated reception logs, including CRC checks and probability weights.
  • sat_combined.csv: Satellite transmission windows.
  • vis_combined.csv: Calculated visibility contacts between satellites and stations.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages