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.1.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.1-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for rotastellar_intel-0.1.1.tar.gz
Algorithm Hash digest
SHA256 cc13f16d4a89244aebb76ccb1e852c2b18f03fd1b2d38f236368b4d5330c4f74
MD5 307943a0ed5393caee476ac4dfa06d73
BLAKE2b-256 f74435220b28b0fe419d88d1b8327f2b6b5a85b08b6cb93b4f254767002f4214

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rotastellar_intel-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 436eb38ebe7e2e2907837a24835ab57d5992acaaac8fa1f8395e874b7018fbbe
MD5 f1c1cc0f98c47980277bdbec586e9756
BLAKE2b-256 644341574121091b6a06ed357764d4c1329e4c443c13dcf970526db739ba680c

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