This repository contains resources related to the 75th International Astronautical Congress (IAC) 2024 symposium focused on Space Communications and Quantum Technologies.
Title: Advancing Free-Space Optical Communication System Architecture: Performance Analysis of Diverse Optical Ground Station Network Configurations
Authors:
- Mr. Connor Casey: University of Massachusetts Amherst, United States
- Mr. Eugene Rotherham: University College London (UCL), United Kingdom
- Ms. Eva Fernandez Rodriguez: Netherlands Organisation for Applied Scientific Research (TNO), The Netherlands
- Ms. Karen Wendy Vidaurre Torrez: Kyushu Institute of Technology, Japan
- Mr. Maren Mashor: National Space Research and Development Agency (NASRDA), Nigeria
- Mr. Isaac Pike: University College London (UCL), United Kingdom
About the Presentation: This presentation explores the frontier of space-based optical and quantum communications. It provides an in-depth analysis of various configurations of optical ground station networks to enhance communication systems in space.
The repository is organized into two main folders:
src
: Contains the source code for each component of the model.data
: Stores input data and output results.
The src
folder contains subfolders for each component of the model:
- satellite_passes
- turbulence
- cloud_cover
- data_integrator
- dynamic_analysis
Each subfolder contains the scripts necessary for that particular component of the model.
The data
folder is divided into two subfolders:
input
: Contains thesatelliteParameters.txt
file with essential parameters for the model.output
: Stores the results from each component of the model in separate subfolders:- satellite_passes
- turbulence
- cloud_cover
- data_integrator
- dynamic_analysis
The model components are executed in the following order:
- satellite_passes
- turbulence
- cloud_cover
- data_integrator
- dynamic_analysis
- Each component in the
src
folder reads data from thesatelliteParameters.txt
file in thedata/input
folder. - The
satellite_passes
component also uses a.tle
(Two-Line Element) file for satellite orbit data. - The
cloud_cover
component interacts with an API gateway (EUMETSAT) for retrieving cloud cover data. - The
data_integrator
component pulls data from thesatellite_passes
,turbulence
, andcloud_cover
components. - The
dynamic_analysis
component uses data from both thesatelliteParameters.txt
file and thedata_integrator
component.
This diagram illustrates the repository structure, execution order, and data flow between components.
To ensure a consistent and reproducible environment, we've containerized the simulation using Docker. Follow the steps below to set up and run the simulation environment.
- Install Docker on your system.
- Ensure Docker is running.
-
Pull the Docker image from Docker Hub:
docker pull cocasey/fso-simulation:1.0.1
-
Run the container interactively:
docker run -it cocasey/fso-simulation:1.0.1
This command will start the container and open an interactive shell.
-
Navigate to the project directory inside the container:
cd /path/to/project
-
Set up the environment variables:
Create a
.env
file in the project root directory inside the container and add your EUMETSAT API keys:echo "CONSUMER_KEY=your_consumer_key_here" >> .env echo "CONSUMER_SECRET=your_consumer_secret_here" >> .env
-
Add your TLE file:
Place your
.tle
file (e.g.,terra.tle
) into the appropriate directory inside the container:cp /host/path/to/yourfile.tle /container/path/to/satellite_passes/
(You may need to mount a volume or use
docker cp
to transfer files from the host to the container.) -
Fill in necessary parameters:
Edit the
satelliteParameters.txt
file located in thedata/input
folder to include your specific parameters. -
Run the simulation script:
Execute the
run_simulation.zsh
script located in thescripts
folder from the main directory:cd scripts ./scripts/run_simulation.zsh
Ensure the script has execute permissions. If not, you can make it executable with:
chmod +x run_simulation.zsh
-
Check the output:
The results will be stored in the
data/output/dynamic_analysis
folder within the container.
- To exit the interactive session, type
exit
or pressCtrl+D
.
- If you need to save data generated within the container to your host machine, consider using Docker volumes or the
docker cp
command.
- Ensure that any changes made inside the container are saved or exported if needed, as they will not persist after the container is stopped unless volumes are used.
If you prefer to run the simulation without Docker, follow these steps:
-
Install Dependencies:
-
Python (version 3.9 or higher)
-
Use
pip
to install required Python packages:pip install -r requirements.txt
-
-
Prepare the Environment:
-
Add your TLE file (e.g.,
terra.tle
) into the same folder as thesatellite_passes
component. -
Create a
.env
file in the project root directory and add your EUMETSAT API keys:CONSUMER_KEY=your_consumer_key_here CONSUMER_SECRET=your_consumer_secret_here
-
Fill in all necessary parameters in the
satelliteParameters.txt
file located in thedata/input
folder.
-
-
Execute the Simulation Script:
Run the
run_simulation.zsh
script located in thescripts
folder from the main directory:cd scripts ./scripts/run_simulation.zsh
Ensure the script has execute permissions. If not, you can make it executable with:
chmod +x run_simulation.zsh
-
Check the Output:
Check the
data/output/dynamic_analysis
folder for results from each component.
- Satellite TLE data file (
.tle
) - Access to the EUMETSAT API gateway for cloud cover data
- Docker (if using the Docker setup)
- Python (version 3.9 or higher)
- Required Python packages listed in
requirements.txt
- Paper: Link to Published Paper
- Datasets: Link to Datasets
- Data Analysis: Link to Notebook
For inquiries or collaborations related to this presentation, please reach out to Connor Casey via the provided email addresse in AUTHORS.txt
We appreciate your interest in our work!
This project is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
- Attribution (BY): You must give appropriate credit, provide a link to the license, and indicate if changes were made.
- NonCommercial (NC): You may not use the material for commercial purposes.
- NoDerivatives (ND): If you remix, transform, or build upon the material, you may not distribute the modified material.
For full license details, please refer to the Creative Commons BY-NC-ND 4.0 License.