Skip to content

TsipiDev/SatCore

Repository files navigation

SatCore

Satellite Mission Control & Telemetry Analysis Platform

Python Streamlit Plotly Pandas NumPy License Status

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.


Modules

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

Requirements

  • Python 3.10 or higher
  • Git

Installation

1. Clone the repository

git clone https://github.com/TsipiDev/satcore.git
cd satcore

2. Install dependencies

pip install -r requirements.txt

3. Download the satellite TLE catalog

This downloads the full catalog of 14,000+ active satellites from Celestrak. Only needs to be done once.

python fetch_tle_catalog.py

4. Run SatCore

python -m streamlit run Home.py

SatCore will open automatically in your browser at http://localhost:8501.


Usage

Data Import

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.

Health Dashboard

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.

Telemetry Analyzer

Analyzes historical telemetry data to identify anomaly events, determine their causes and forecast when parameters will reach warning thresholds using linear trend analysis.

Pass Scheduler

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.

Orbit Visualizer

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.


Data

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.

Project Structure

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

Tech Stack


Contributing

Contributions are welcome. Please open an issue first to discuss what you would like to change.


License

This project is licensed under the MIT License. See LICENSE for details.


Author

Developed by Dimitris Vatousis

GitHub LinkedIn Website

About

Mission control dashboard for satellite health monitoring, telemetry analysis and pass scheduling.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages