Skip to content

Code repository accompanying the paper: The Limits of Current Practices in Uncooperative Space Surveillance: Analysis of Mega-Constellation Data Time-Series

License

Notifications You must be signed in to change notification settings

CharlesPlusC/MegaConstellationSSA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HitCount

University Logo
Research Group Logo

MegaConstellationSSA

Code repository accompanying the paper: C.Constant, S.Bhattarai, M.Ziebart "The Limits of Current Practices in Uncooperative Space Surveillance: Analysis of Mega-Constellation Data Time-Series"(2023)
Report Bug · Request Feature

Table of Contents

Short Abstract:

The rapid increase of objects in Low Earth Orbit (LEO) has underscored the need for advanced Space Traffic Management (STM) practices. The effectiveness of STM largely depends on accurately determining object orbits in densely populated satellite neighborhoods. In this light, our study aims to bridge the gap between current practices and STM requirements by emphasizing the imperative role of Space Situational Awareness (SSA) data quality, especially its precision, accuracy, and timeliness.

To this end, we present this GitHub repository which features the code used in our research. The code evaluates Two-Line-Element (TLE) data, based on both cooperative and uncooperative tracking for a subset of the Starlink constellation, against high-precision operator ephemerides. Our findings indicate that uncooperative tracking data has a mean positional error of 1.17-2km, while cooperative tracking data is approximately 60% more accurate. Our time-series analysis of TLE data for Starlink and OneWeb mega-constellations uncovers significant discrepancies, further underscoring the need for transparency and improvement in SSA data quality.

Collaboration statement:

We welcome developers, researchers, and SSA practitioners to explore this repository, review our approach, and contribute to this essential field. Feel free to raise issues, suggest improvements, or submit pull requests.

Instructions for use

  1. Clone the repository
  2. Install the requirements using the megeaconst_env.yml file:
conda env create -f megaconst_env.yml
  1. Activate the environment:
 conda activate megaconst_env
  1. If you wish to redownload the TLE data: Create a file called SLTrack.ini and put it in the root directory of the repository. The file should contain your Space-track.org username and password in the following format:
[configuration]
username = your_email@email.com
password = YourPassword
  1. Ensure that SLTrack.ini is in the .gitignore file so that it is not uploaded to the repository (it should be by default)

  2. Run main.py as it is for the full analysis to run from start to finish, or modify it to suit your needs.

Information:

Data Processing:

To perform the analyes, the decision to assign each spacecraft a Pandas Dataframe was made. Within this Dataframe, all the data relevant to a satellite (epehemerides, differences between the ephemerides, lat, lon, launch number, TLE latency, etc.) are all included in the NORAD ID's respective Dataframe. These Dataframes were then grouped in lists of Dataframes where each list represented a constellation. As a result, to calculate or perform analyses on these data, most functions in this repo are geared towards reading lists of Pandas Dataframes.

SGP4 Update Algorithm:

The state vectors for each spacecraft orbit are continuously updated with new TLEs as these become available. The outline of the algorithm that performs this is as follows:

Data

  • The data for the SUP_TLEs and NORAD_TLEs are already provided to save time. If you wish to re-download the data yourself, you can do so for the NORAD TLEs by running the getdata.py script. Note that there is currently no way of downloading SUP_TLE data programatically so you will have to do this manually from celestrak.org.
  • The NORAD IDs of the satellites selected for this study are provided in external/selected_satellites.json
  • The TLE_analysis files are around ~1GB in size so I have not added these to the repo. You will have to run the NORAD_vs_SUP_TLE_analysis() function to generate these. This will only take a couple of minutes typically.

SupTLE vs GP vs Operator Ephemeris: The 3-way benchmarking analysis that was performed on the Supplemental, NORAD and Operator ephemerides uses the ephemerides that are stored in the "external/ephem_TLE_compare" folder. Each sub-folder here belongs to one spacecraft (NORAD ID).

Outputs:

The following repo will enable you to replicate all figures in the paper (and a number of others that were not included for brevity). As a quick illustration of the capabilities contained some example are included below.

altitude time series plots

Fourier analysis of the difference time-series

Cross-track/along-track/height/3D difference time-series subplots Oneweb Cdiff subplots

Constellation Ground Tracks

Relation between error and Geographical Location

Error Dimension Histogram

Argument of Latitude of TLE Production

Latency of TLE Production

Benchmarking NORAD, Supplemental and Operator Orbit Solutions

Launch statistics Summary statistics of the analysis are generated and can be found in the "output/launch_specific/launch_summary_stats.csv" folder.

Issues

If you have any issues with the code, please raise an issue on this repository and I will try to get back to you as soon as possible.

Known Issues:

if you get an error when trying to install basemap (particularly on Apple CPU), try:

pip install --upgrade setuptools wheel pip
conda install -c conda-forge cartopy
conda install -c conda-forge geos 
conda install -c conda-forge basemap

Envs

If you make changes to your environment and you wish to save these to the envionment file:

conda env export > megaconst_env.yml

About

Code repository accompanying the paper: The Limits of Current Practices in Uncooperative Space Surveillance: Analysis of Mega-Constellation Data Time-Series

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages