Open Source Satellite Tracking Tools in 2026: The Complete Guide

Dan Isaac · February 9, 2026 · 14 min read

The space industry runs on proprietary software that costs tens of thousands of dollars per year. But a growing ecosystem of open-source tools now covers nearly every aspect of satellite operations — from orbit propagation and pass prediction to ground station automation and conjunction screening.

Whether you're a university CubeSat team, an amateur radio operator tracking the ISS, or a small constellation operator looking to reduce costs, this guide covers every major open-source satellite tool available in 2026.

Orbit Propagation Libraries

Orbit propagation is the foundation of satellite tracking — predicting where a satellite will be at any given time based on its orbital elements. These libraries implement the mathematics of orbital mechanics.

python-sgp4

Language: Python · License: MIT · GitHub: brandon-rhodes/python-sgp4

The definitive Python implementation of the SGP4/SDP4 propagation algorithm — the same algorithm used by the US Space Force to maintain the space catalog. Written and maintained by Brandon Rhodes (who also maintains Skyfield and several other astronomy libraries).

Key features:

  • Direct port of the official AIAA SGP4 standard
  • Batch propagation via SatrecArray — propagate thousands of satellites simultaneously using NumPy vectorization
  • Reads TLE and OMM (Orbit Mean-Elements Message) formats
  • Handles deep-space objects (SDP4) automatically
  • Extremely well-tested against official validation datasets

Best for: Any project that needs TLE-based orbit propagation. This is the starting point for most satellite tracking applications in Python.

from sgp4.api import Satrec, SatrecArray
from sgp4 import omm

# Load a single satellite from TLE
sat = Satrec.twoline2rv(line1, line2)

# Propagate to a specific time
e, r, v = sat.sgp4(jd, fr)
# r = position [km], v = velocity [km/s] in TEME frame

Skyfield

Language: Python · License: MIT · GitHub: skyfielders/python-skyfield

A high-level astronomy library by Brandon Rhodes that wraps python-sgp4 with a clean API and adds coordinate transformations, time handling, and topocentric calculations (satellite position as seen from a ground location).

Key features:

  • Satellite pass prediction over a ground station
  • Coordinate frame conversions (TEME → ITRF → lat/lon/alt)
  • Integration with JPL ephemeris data for planetary positions
  • Time scale handling (UTC, TT, UT1, TAI)

Best for: Pass prediction, ground station visibility calculations, and astronomical applications that also need satellite positions.

Orekit

Language: Java (Python wrapper available) · License: Apache 2.0 · Website: orekit.org

The Swiss Army knife of orbital mechanics. Orekit is a comprehensive flight dynamics library used by ESA, CNES, and numerous space agencies and commercial operators. It's the most capable open-source astrodynamics toolkit available.

Key features:

  • Numerical orbit propagation with full force models (gravity harmonics, atmospheric drag, solar radiation pressure, third-body effects)
  • Orbit determination from tracking data
  • Maneuver planning and optimization
  • Conjunction analysis and collision probability calculation
  • Attitude dynamics
  • Python wrapper via Orekit-jpype or the Orekit Python Wrapper

Best for: Mission analysis, high-accuracy orbit determination, and operations that need more than SGP4 accuracy. If you need numerical propagation with realistic force models, Orekit is the open-source standard.

Caveat: Steep learning curve. Java-based architecture can be awkward from Python. Documentation assumes orbital mechanics knowledge.

Poliastro

Language: Python · License: MIT · GitHub: poliastro/poliastro

A Python library for interactive astrodynamics. More focused on mission design and orbit visualization than operational tracking, but excellent for education and analysis.

Key features:

  • Hohmann transfers, bi-elliptic transfers, Lambert problem solvers
  • Interactive 3D orbit plotting (Plotly-based)
  • Perturbation models (J2, J3, atmospheric drag)
  • Integration with Astropy for units and coordinate handling

Best for: Mission design, educational projects, and orbit visualization. Less suited for operational real-time tracking.

Conjunction Screening & Space Situational Awareness

With 29,000+ active satellites in orbit, conjunction screening — identifying potential collisions — is no longer optional. These tools address the collision avoidance problem.

OrbVeil

Language: Python · License: Apache 2.0 · GitHub: ncdrone/orbitguard

A conjunction screening library built specifically for the problem of screening large satellite catalogs efficiently. OrbVeil combines batch SGP4 propagation with KD-tree spatial indexing to screen the full active catalog in seconds.

Key features:

  • Full-catalog conjunction screening: 29,000+ satellites in <10 seconds
  • KD-tree spatial indexing for O(n log n) all-pairs screening
  • Automatic formation-flying detection and filtering
  • Runs on commodity hardware (tested on $249 Jetson Orin Nano)
  • Automated TLE ingestion from CelesTrak

Best for: Operators who need daily conjunction screening for their satellites. University CubeSat programs. Anyone building a conjunction monitoring pipeline.

pip install orbitguard

# Screen the full catalog in 5 lines
from orbitguard import CatalogScreener

screener = CatalogScreener()
screener.load_catalog()  # Fetches latest TLEs from CelesTrak
results = screener.screen(threshold_km=10.0, hours=24)

print(f"Found {len(results)} close approaches")

Full disclosure: OrbVeil is our project. We built it because we needed it and nothing else existed at this price point.

Orekit (Conjunction Analysis Module)

Part of the Orekit library · orekit.org

Orekit includes conjunction analysis capabilities, including collision probability calculation using methods like Alfano, Patera, and Chan. This goes beyond simple distance-based screening to estimate the actual probability of collision using covariance data.

Key features:

  • Collision probability (Pc) calculation from CDMs
  • Multiple Pc methods (2D/3D encounter models)
  • Screening with configurable time-of-closest-approach (TCA) refinement

Best for: Operators who receive CDMs from the 18th SDS and need to calculate collision probability. More complex than distance-based screening but provides actionable risk metrics.

SOCRATES (CelesTrak)

Web-based · Free · celestrak.org/SOCRATES

Not a downloadable tool, but worth including: SOCRATES (Satellite Orbital Conjunction Reports Assessing Threatening Encounters in Space) is a free web service by T.S. Kelso at CelesTrak that provides daily reports of the closest satellite approaches.

Key features:

  • Top-10 closest approaches updated daily
  • Searchable by satellite NORAD ID
  • No account required

Best for: Quick daily checks on the most dangerous conjunctions. Not suitable for systematic screening of your own constellation — for that, you need a programmable tool.

Ground Station Software

If you operate a ground station — whether for amateur radio, CubeSat communications, or professional operations — these tools handle everything from pass prediction to antenna control.

SatNOGS

License: AGPL-3.0 · Website: satnogs.org · Libre Space Foundation

SatNOGS is arguably the most important open-source project in the satellite community. It's a global network of open-source ground stations that anyone can build and contribute to. The network automatically schedules observations, receives satellite signals, and shares data publicly.

Components:

  • SatNOGS Client: Runs on your ground station (Raspberry Pi + SDR + antenna). Automatically tracks satellites and records passes.
  • SatNOGS Network: Web platform that schedules observations across the global network
  • SatNOGS DB: Database of satellite transmitter frequencies and telemetry formats
  • SatNOGS Rotator: Open-source antenna rotator design (3D-printable parts + stepper motors)

Best for: Building a ground station, contributing to a global observation network, receiving satellite telemetry. Essential for amateur radio satellite operators.

Scale: As of 2026, the SatNOGS network has 300+ ground stations across 50+ countries, completing thousands of observation passes daily.

GPredict

Language: C · License: GPL-2.0 · GitHub: csete/gpredict

A desktop satellite tracking application with real-time pass prediction, sky view, polar plot, and antenna rotator control. Written by Alexandru Csete (OZ9AEC), it's the standard tracking tool for amateur radio satellite operators.

Key features:

  • Real-time satellite position and velocity display
  • Pass prediction with elevation, azimuth, and Doppler shift
  • Automatic TLE updates from CelesTrak and other sources
  • Hamlib integration for antenna rotator control
  • Radio control for Doppler correction
  • Multi-satellite tracking view

Best for: Amateur radio operators who need real-time satellite tracking with hardware control. If you're working satellites with a directional antenna, GPredict is the standard.

GNU Radio

Language: C++/Python · License: GPL-3.0 · Website: gnuradio.org

Not satellite-specific, but GNU Radio is the foundation for most open-source satellite signal processing. It's a signal processing framework that lets you build software-defined radio (SDR) applications as flowgraphs.

Satellite-relevant modules:

  • gr-satellites: Decoders for 100+ satellite protocols (AX.25, CCSDS, custom telemetry)
  • gr-satnogs: SatNOGS-specific blocks for automated satellite reception
  • gr-osmosdr: SDR hardware support (RTL-SDR, HackRF, USRP, etc.)

Best for: Decoding satellite signals, building custom ground station receivers, signal analysis.

Hamlib

Language: C · License: LGPL-2.1 · GitHub: Hamlib/Hamlib

A library for controlling amateur radio equipment — transceivers, antenna rotators, and tuners. Used by GPredict and SatNOGS for hardware control.

Best for: Integrating antenna rotators and radios into automated satellite tracking setups.

Data Sources & APIs

Open-source tools are only as good as the data they consume. Here are the primary free data sources for satellite tracking.

CelesTrak

Website: celestrak.org · Maintained by T.S. Kelso

The most widely-used free source of satellite orbital data. CelesTrak provides TLE and OMM data for the full active satellite catalog, updated multiple times daily.

Key endpoints:

  • celestrak.org/NORAD/elements/ — TLE data organized by group (Starlink, weather sats, amateur radio, etc.)
  • celestrak.org/NORAD/elements/gp.php — GP data API with JSON/XML/CSV output
  • celestrak.org/SOCRATES/ — Daily conjunction reports
  • celestrak.org/satcat/ — Satellite catalog metadata (launch dates, decay dates, RCS)

Best for: Everything. CelesTrak is the starting point for most satellite tracking projects. The GP API is especially useful for programmatic access.

Space-Track.org

Website: space-track.org · 18th Space Defense Squadron

The authoritative source of US space surveillance data. Requires free registration. Provides TLEs, historical data, decay predictions, and conjunction data messages (CDMs) for registered operators.

Key features:

  • Full historical TLE archive
  • Conjunction Data Messages (CDMs) for registered satellite operators
  • Decay predictions for reentering objects
  • REST API for programmatic access

Best for: Operators who need CDMs for collision probability calculation, historical orbit analysis, and authoritative catalog data.

UCS Satellite Database

Website: ucsusa.org/satellite-database · Union of Concerned Scientists

A curated database of operational satellites with metadata: operator, purpose, orbit type, launch mass, expected lifetime, and more. Updated quarterly. Available as a downloadable spreadsheet.

Best for: Research and analysis. Understanding who operates what and where. Not for real-time tracking.

Visualization & Simulation

CesiumJS

Language: JavaScript · License: Apache 2.0 · Website: cesium.com/cesiumjs

A 3D geospatial visualization library for rendering satellite orbits, ground tracks, and sensor footprints on a virtual globe. Used by numerous satellite visualization dashboards.

Satellite features:

  • CZML format for time-dynamic satellite positions
  • Orbit trail visualization
  • Sensor cone / field-of-view rendering
  • Time animation controls

Best for: Building web-based satellite visualization dashboards. If you need to show satellites on a globe in a browser, CesiumJS is the standard.

Satellite.js

Language: JavaScript · License: MIT · GitHub: shashwatak/satellite-js

A JavaScript implementation of SGP4 satellite propagation. Useful for browser-based satellite tracking applications where you need client-side orbit calculation.

Best for: Web applications that need satellite position calculation without a backend. Pairs well with CesiumJS or Leaflet for visualization.

Orbitron

Platform: Windows · License: Freeware · Website: stoff.pl

A classic Windows satellite tracking application. Not technically open source (freeware), but widely used in the amateur satellite community. Included here because it remains a popular reference tool.

Best for: Windows users who want quick satellite pass predictions without setup complexity.

Choosing the Right Tools: A Decision Framework

With so many options, here's how to pick the right tools for your use case:

Use Case Recommended Stack
Amateur radio satellite tracking GPredict + Hamlib + GNU Radio + gr-satellites
University CubeSat operations SatNOGS (ground station) + python-sgp4 + OrbVeil (conjunction screening)
Constellation operator (3-50 sats) Orekit (high-accuracy propagation) + OrbVeil or Orekit (conjunction screening) + CesiumJS (visualization)
Web-based satellite visualizer satellite.js + CesiumJS + CelesTrak API
Mission design & analysis Poliastro + Orekit + Astropy
Building a ground station from scratch SatNOGS (hardware + software) + RTL-SDR
Quick daily conjunction check SOCRATES (web) or OrbVeil (programmatic)

Building a Complete Satellite Monitoring Pipeline

Here's how these tools fit together for a small satellite operator who needs end-to-end monitoring:

Step 1: Data Ingestion

Pull TLEs from CelesTrak or Space-Track.org. Most tools handle this automatically, but for custom pipelines, CelesTrak's GP API provides JSON output that's easy to parse.

# Fetch latest TLEs from CelesTrak GP API
import requests

url = "https://celestrak.org/NORAD/elements/gp.php"
params = {"GROUP": "active", "FORMAT": "json"}
response = requests.get(url, params=params)
satellites = response.json()
print(f"Loaded {len(satellites)} active satellites")

Step 2: Orbit Propagation

Use python-sgp4 for batch propagation. The SatrecArray class propagates the entire catalog simultaneously using NumPy vectorization.

from sgp4.api import SatrecArray
import numpy as np

# Create SatrecArray from loaded TLEs
sat_array = SatrecArray(satellites_list)

# Propagate to multiple timesteps
jd = np.array([...])  # Julian dates
fr = np.array([...])  # Fractional days
e, r, v = sat_array.sgp4(jd, fr)
# r.shape = (num_sats, num_times, 3) — positions in km

Step 3: Conjunction Screening

Screen for close approaches using spatial indexing. OrbVeil wraps this into a high-level API, or you can build your own with scipy's KD-tree.

Step 4: Alerting

When a close approach is detected, alert the relevant operator. This is where automated tooling saves operational hours — instead of manually reviewing 18th SDS emails, you get filtered, prioritized alerts for your specific satellites.

Step 5: Visualization

Display results on a dashboard using CesiumJS for 3D visualization or a simple web interface for tabular conjunction data.

This entire pipeline can run on a single Linux server (or even a Raspberry Pi for small catalogs). The open-source tools handle the heavy lifting — the integration work is straightforward Python scripting.

What's Missing from the Open-Source Ecosystem

The open-source satellite tracking ecosystem has matured enormously, but gaps remain:

These gaps represent opportunities for the open-source community — and for commercial services that build on open-source foundations.

Need Conjunction Screening?

OrbVeil screens the full satellite catalog for close approaches in seconds. Open source, Apache 2.0 licensed.

  • DIY: pip install orbitguard — run it yourself, free forever
  • Website: orbveil.com — daily conjunction data and close calls

Questions about integrating open-source tools into your operations? [email protected]

Getting Started: Your First Satellite Track in 5 Minutes

Here's the fastest path from zero to tracking a satellite with open-source tools:

# Install the essentials
pip install sgp4 skyfield requests

# Track the ISS
from skyfield.api import load, EarthSatellite

ts = load.timescale()
line1 = "1 25544U 98067A   26040.50000000  .00016717  00000-0  10270-3 0  9003"
line2 = "2 25544  51.6400 208.9163 0006703  32.4834 327.6580 15.49560532345678"

satellite = EarthSatellite(line1, line2, "ISS (ZARYA)", ts)
t = ts.now()

geocentric = satellite.at(t)
lat, lon = geocentric.subpoint().latitude, geocentric.subpoint().longitude

print(f"ISS is at {lat}, {lon}")
print(f"Altitude: {geocentric.subpoint().elevation.km:.1f} km")

From here, you can add pass prediction, antenna pointing, or conjunction screening — all with open-source tools, all running on your own hardware.

Frequently Asked Questions

What is the best open-source satellite tracking library for Python?

For orbit propagation, python-sgp4 by Brandon Rhodes is the standard — it's a direct port of the official SGP4 algorithm used by the US Space Force. For higher-accuracy propagation, Orekit (via its Python wrapper) supports numerical propagation with full force modeling. For conjunction screening specifically, OrbVeil provides full-catalog screening with KD-tree spatial indexing.

Where can I get free satellite TLE data?

CelesTrak (celestrak.org) provides free TLE data for the full active satellite catalog, updated multiple times daily. Space-Track.org (run by the 18th Space Defense Squadron) provides the authoritative US catalog but requires free registration. Both sources provide data in TLE and newer OMM/XML formats.

Can I track satellites in real-time with open-source software?

Yes. Tools like GPredict, SatNOGS, and Orbitron provide real-time satellite tracking with pass predictions, ground track visualization, and antenna rotator control. For programmatic tracking, python-sgp4 combined with Skyfield can propagate orbits to any time with sub-kilometer accuracy for recently-updated TLEs.

What open-source tools exist for satellite conjunction screening?

OrbVeil is an open-source Python library specifically built for conjunction screening — it can screen the full catalog of 29,000+ satellites in under 10 seconds using KD-tree spatial indexing. Orekit also includes conjunction analysis capabilities including collision probability calculation from CDMs.

Is open-source satellite software accurate enough for operations?

For TLE-based operations (pass prediction, basic conjunction screening, orbit visualization), open-source tools are production-quality. SGP4 is the same algorithm used by the US Space Force. However, for high-accuracy collision probability calculation, you need covariance data from CDMs, which requires additional tools and data sources beyond basic TLEs.

How much does it cost to set up an open-source ground station?

A basic SatNOGS ground station can be built for $150-300: Raspberry Pi ($50-80), RTL-SDR dongle ($25), and a simple antenna ($50-150). A more capable station with an automated antenna rotator costs $500-1,500. The SatNOGS project provides open-source designs for all components including 3D-printable rotator parts.

Can I build a satellite conjunction screening system with free tools?

Yes. Combine CelesTrak (free TLE data) + python-sgp4 (propagation) + scipy KD-tree (spatial screening) or OrbVeil (which wraps all of this into a simple API). This gives you full-catalog conjunction screening on commodity hardware. The entire stack is free and open source.

Want to see real conjunction data? View today's top 100 closest satellite approaches, updated daily. See today's close calls →

DI
Dan Isaac, OrbVeil

Builder of OrbVeil. Tracking satellites so you don't have to. GitHub →