This Python project estimates the mean time between collisions (assuming no evasive maneuvers) among satellites in the Starlink LEO constellation using publicly available TLE data from CelesTrak.
The estimated metric, referred to as the Crash Clock, is derived from spatial density, effective collision cross-section, and relative orbital velocity between objects.
The script performs the following steps:
- Downloads Starlink TLE data directly from CelesTrak.
- Computes mean orbital altitude (semi-major axis minus Earth radius).
- Bins objects into 1 km altitude shells between 200 and 2000 km.
- Calculates spatial density and cumulative collision risk per shell.
- Estimates the Crash Clock in hours and days.
├── crash_clock_starlink.py
├── README.md
└── LICENSE
- Python 3.10+
- Libraries:
numpyrequestssgp4
Installation:
pip install numpy requests sgp4Run directly from terminal:
python crash_clock_starlink.pyExample output:
Downloading Starlink TLE dataset (CelesTrak)...
Valid TLE objects processed: 9302 LEO satellites
Estimated CRASH Clock (no maneuvers): 5.76 hours
- No collision avoidance maneuvers are considered.
- Assumes constant orbital velocity within each altitude shell.
- Simplified collision cross-section modeling.
- Represents a hypothetical uncontrolled collision environment.
The model is intended for analytical exploration and educational purposes, not operational risk prediction.
The approach is conceptually aligned with:
- Large constellation risk-density models
- LEO congestion studies
- Space Domain Awareness (SDA) risk frameworks
Inspired by discussions presented in:
- An Orbital House of Cards – Nature Astronomy (2023)
- ESA Space Debris Environment Reports
- CelesTrak TLE Data: https://celestrak.org/
- SGP4 Python Library: https://pypi.org/project/sgp4/
- ESA Space Debris Programme: https://www.esa.int/Safety_Security/Space_Debris
This project is licensed under the MIT License.
You are free to use, modify, and redistribute the code provided that proper attribution is maintained.