Latency Simulation
Model end-to-end latency for orbital compute deployments, including propagation delay, ground station handovers, and inter-satellite links.
Overview
Latency in orbital systems depends on:
Propagation delay — Speed of light distance
Ground station availability — Coverage and handover
Inter-satellite links (ISL) — Routing through constellation
Processing delay — On-board and ground processing
Quick Start
from rotastellar import RotaStellarClient
client = RotaStellarClient( api_key = "rs_..." )
latency = client.planning.latency(
orbit = "LEO-550" ,
ground_stations = [ "us-west" , "us-east" , "europe" , "asia" ],
include_isl = True
)
print ( f "P50 latency: { latency.p50_ms } ms" )
print ( f "P95 latency: { latency.p95_ms } ms" )
print ( f "P99 latency: { latency.p99_ms } ms" )
print ( f "Coverage: { latency.coverage_percent } %" )
Parameters
Orbit specification (e.g., LEO-550, MEO-8000, GEO)
List of ground station regions:
us-west, us-east, us-central
europe, europe-north
asia, asia-south
australia
south-america
Include inter-satellite link routing
Number of satellites (affects ISL routing options)
Specific user location for point-to-point latency: { "lat" : 37.7749 , "lon" : -122.4194 }
Response
{
"p50_ms" : 25 ,
"p95_ms" : 48 ,
"p99_ms" : 72 ,
"min_ms" : 12 ,
"max_ms" : 145 ,
"coverage_percent" : 98.5 ,
"breakdown" : {
"propagation_ms" : 8 ,
"processing_ms" : 5 ,
"handover_ms" : 12 ,
"isl_hops_avg" : 1.3
},
"ground_station_stats" : [
{
"station" : "us-west" ,
"contact_percent" : 35 ,
"avg_elevation_deg" : 42
},
{
"station" : "europe" ,
"contact_percent" : 28 ,
"avg_elevation_deg" : 38
}
],
"gaps" : [
{
"start_min" : 23 ,
"duration_min" : 4 ,
"region" : "pacific"
}
]
}
Latency by Orbit Type
Orbit Altitude One-way Propagation RTT (typical) LEO 550 km 1.8 ms 20-50 ms MEO 8,000 km 27 ms 80-150 ms GEO 35,786 km 120 ms 480-600 ms
Latency Optimization
With Inter-Satellite Links
ISLs can reduce latency by routing traffic through space instead of bouncing to ground:
# Without ISL - must wait for ground station contact
latency_no_isl = client.planning.latency(
orbit = "LEO-550" ,
ground_stations = [ "us-west" ],
include_isl = False
)
# With ISL - can route through constellation
latency_with_isl = client.planning.latency(
orbit = "LEO-550" ,
ground_stations = [ "us-west" ],
include_isl = True ,
constellation_size = 100
)
print ( f "Without ISL: P99 = { latency_no_isl.p99_ms } ms" )
print ( f "With ISL: P99 = { latency_with_isl.p99_ms } ms" )
Geographic Coverage Analysis
Analyze latency from specific user locations:
# Latency from San Francisco to orbital compute
latency = client.planning.latency(
orbit = "LEO-550" ,
ground_stations = [ "us-west" , "us-east" ],
user_location = { "lat" : 37.7749 , "lon" : - 122.4194 }
)
print ( f "SF to orbit P50: { latency.p50_ms } ms" )
Coverage Gaps
LEO satellites don’t provide continuous coverage. The API identifies gaps:
latency = client.planning.latency(
orbit = "LEO-550" ,
ground_stations = [ "us-west" ]
)
for gap in latency.gaps:
print ( f "Gap at { gap.start_min } min, duration { gap.duration_min } min" )
To eliminate gaps, add more ground stations or enable ISL:
# Add more ground stations
latency = client.planning.latency(
orbit = "LEO-550" ,
ground_stations = [ "us-west" , "us-east" , "europe" , "asia" ],
include_isl = True
)
print ( f "Coverage: { latency.coverage_percent } %" ) # ~99%+
Next Steps
Power Budgeting Plan power for your orbital deployment
Feasibility Analysis Complete feasibility assessment