Skip to main content

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

Metadata

Release files for rotastellar-intel 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rotastellar-intel 0.1.1
File Size Uploaded
rotastellar_intel-0.1.1.tar.gz 16.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rotastellar-intel 0.1.1
File Interpreter ABI Platform
rotastellar_intel-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 35.9 kB

Release files / rotastellar_intel-0.1.1.tar.gz

Download URL rotastellar_intel-0.1.1.tar.gz
Size 16.2 kB
Tags Source
SHA-256 checksum
How to use checksums
cc13f16d4a89244aebb76ccb1e852c2b18f03fd1b2d38f236368b4d5330c4f74
BLAKE2b-256 checksum
How to use checksums
f74435220b28b0fe419d88d1b8327f2b6b5a85b08b6cb93b4f254767002f4214
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / rotastellar_intel-0.1.1-py3-none-any.whl

Download URL rotastellar_intel-0.1.1-py3-none-any.whl
Size 19.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
436eb38ebe7e2e2907837a24835ab57d5992acaaac8fa1f8395e874b7018fbbe
BLAKE2b-256 checksum
How to use checksums
644341574121091b6a06ed357764d4c1329e4c443c13dcf970526db739ba680c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page