Satellite Mission Control & Telemetry Analysis Platform
SatCore is an open-source ground segment toolkit for satellite operations. It provides real-time spacecraft health monitoring, telemetry analysis, pass scheduling and orbital visualization — powered by real TLE orbital data.
| Module | Description |
|---|---|
| Data Import | Import and map any decoded telemetry CSV to SatCore parameters |
| Health Dashboard | Real-time subsystem monitoring with status indicators and anomaly detection |
| Telemetry Analyzer | Historical telemetry analysis, anomaly breakdown and threshold forecasting |
| Pass Scheduler | Ground station pass prediction using real TLE data from 14,000+ satellites |
| Orbit Visualizer | Real-time 3D orbital track visualization with live satellite position tracking |
- Python 3.10 or higher
- Git
git clone https://github.com/TsipiDev/satcore.git
cd satcorepip install -r requirements.txtThis downloads the full catalog of 14,000+ active satellites from Celestrak. Only needs to be done once.
python fetch_tle_catalog.pypython -m streamlit run Home.pySatCore will open automatically in your browser at http://localhost:8501.
Upload any decoded telemetry CSV and map its columns to SatCore parameters. Unmapped parameters display as Not Provided. Once imported, all modules automatically use the new data.
Displays real-time spacecraft subsystem status including power, thermal, communications and attitude control. Color-coded indicators show nominal, warning and critical states at a glance.
Analyzes historical telemetry data to identify anomaly events, determine their causes and forecast when parameters will reach warning thresholds using linear trend analysis.
Predicts upcoming ground station passes for any satellite in the catalog. Select your ground station, satellite and timezone to see AOS, TCA, LOS, pass duration, max elevation and recommended action for each pass.
Displays a real-time 3D globe with the satellite's orbital track and current position. Auto-refreshes at a configurable interval. Supports any satellite from the TLE catalog.
SatCore uses two data sources:
- Orbital data — fetched live from Celestrak via
fetch_tle_catalog.py - Telemetry data — sample data is included in
data/telemetry/sample_telemetry.csv. You can replace this with your own data using the Data Import module.
satcore/
├── Home.py # Application entry point
├── pages/
│ ├── 1_Data_Import.py
│ ├── 2_Health_Dashboard.py
│ ├── 3_Telemetry_Analyzer.py
│ ├── 4_Pass_Scheduler.py
│ └── 5_Orbit_Visualizer.py
├── modules/
│ ├── health_dashboard.py
│ ├── telemetry_analyzer.py
│ ├── pass_scheduler.py
│ ├── orbit_visualizer.py
│ └── data_import.py
├── utils/
│ └── styles.py
├── data/
│ ├── telemetry/
│ │ └── sample_telemetry.csv
│ ├── tle_data/ # Generated by fetch_tle_catalog.py
│ └── ground_stations.json
├── fetch_tle_catalog.py
├── generate_telemetry.py
└── requirements.txt
Contributions are welcome. Please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License. See LICENSE for details.
Developed by Dimitris Vatousis