Skip to main content

Orbital intelligence and space situational awareness tools

Project description

rotastellar-intel

Orbital Intelligence & Space Situational Awareness

Track satellites, parse TLEs, analyze conjunctions, and detect orbital patterns.

Installation

pip install rotastellar-intel

Quick Start

TLE Parsing

from rotastellar_intel import TLE

# Parse a Two-Line Element set
tle_lines = [
    "ISS (ZARYA)",
    "1 25544U 98067A   24001.50000000  .00016717  00000-0  10270-3 0  9025",
    "2 25544  51.6400 208.9163 0006703  40.5765  35.4667 15.49560927421258"
]

tle = TLE.parse(tle_lines)
print(f"Satellite: {tle.name}")
print(f"NORAD ID: {tle.norad_id}")
print(f"Inclination: {tle.inclination_deg:.2f}°")
print(f"Period: {tle.orbital_period_minutes:.2f} minutes")

# Get position at epoch
position = tle.propagate()
print(f"Position: {position.latitude:.2f}°, {position.longitude:.2f}°")

Satellite Tracking

from rotastellar_intel import Tracker, GroundStation
from rotastellar import Position

# Create a tracker
tracker = Tracker()
tracker.add_tle("ISS", tle)

# Get current position
pos = tracker.get_position("ISS")

# Calculate passes over a ground station
gs = GroundStation(
    name="KSC",
    position=Position(28.5729, -80.6490, 0.0),
    min_elevation_deg=10.0
)
passes = tracker.predict_passes("ISS", gs, hours=24)
for p in passes:
    print(f"AOS: {p.aos}, Max El: {p.max_elevation_deg:.1f}°")

Conjunction Analysis

from rotastellar_intel import ConjunctionAnalyzer, RiskLevel

analyzer = ConjunctionAnalyzer()

# Analyze collision probability
conjunction = analyzer.analyze(
    primary_id="ISS",
    secondary_id="DEBRIS-12345",
    miss_distance_km=0.5,
    relative_velocity_km_s=10.0
)

print(f"Risk Level: {conjunction.risk_level}")
print(f"Collision Probability: {conjunction.collision_probability:.2e}")

if conjunction.risk_level == RiskLevel.CRITICAL:
    print("⚠️  Maneuver recommended!")

Pattern Detection

from rotastellar_intel import PatternDetector, PatternType

detector = PatternDetector()

# Detect maneuvers from TLE history
patterns = detector.detect(satellite_id="STARLINK-1234", days=30)

for pattern in patterns:
    if pattern.pattern_type == PatternType.ORBIT_RAISE:
        print(f"Orbit raise detected: +{pattern.delta_altitude_km:.1f} km")
    elif pattern.pattern_type == PatternType.MANEUVER:
        print(f"Maneuver: Δv = {pattern.delta_v_m_s:.2f} m/s")

Features

  • TLE Parsing — Full Two-Line Element support with SGP4 propagation
  • Satellite Tracking — Real-time position and pass prediction
  • Conjunction Analysis — Collision probability using NASA CARA methodology
  • Pattern Detection — Maneuver detection, anomaly identification

Links

Author

Created by Subhadip Mitra at RotaStellar.

License

MIT License — Copyright (c) 2026 RotaStellar

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rotastellar_intel-0.1.0.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rotastellar_intel-0.1.0-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file rotastellar_intel-0.1.0.tar.gz.

File metadata

  • Download URL: rotastellar_intel-0.1.0.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for rotastellar_intel-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ab95667d0f4824f6fbde5fb66b73f002e1d8db215ca0dddb48ebdd868f82c92c
MD5 f046d84dbcd4515d6f609ab65ca491ed
BLAKE2b-256 4fecdc64144a48f9a92f597213bf9570b132c7c24d7e30464fb3c82d88fac7dd

See more details on using hashes here.

File details

Details for the file rotastellar_intel-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for rotastellar_intel-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 79b309a67b5d5c46c81f1b656207f424ce5b21fdb208b18e00e2799b6a756e2e
MD5 23a39994f721cefe9500f9a431ab804f
BLAKE2b-256 e548cbbfb14220c19d415ace05834380e497aee99e29ac1ec50fdc8e677c9a02

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page