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
- Website: https://rotastellar.com/products/orbital-intelligence
- Documentation: https://docs.rotastellar.com/sdks/python/intel
- Main SDK: https://pypi.org/project/rotastellar/
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)
| File | Size | Uploaded | |
|---|---|---|---|
| rotastellar_intel-0.1.1.tar.gz | 16.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|