Skip to content

Spacecraft

Asset reference

Concept

In ASTROLAB a spacecraft is the central orbital actor of a mission study. It owns the dynamic state (orbit + attitude), participates in the 3D scene, and usually acts as the parent for payloads that see the Earth or talk to the ground: sensors, antennas, transmitters/receivers, solar arrays, and batteries.

Think of it as the digital twin of a satellite bus: mass and area properties feed drag/SRP and power; the propagator turns an initial state into an ephemeris over the scenario; attitude laws orient instruments and panels; constraints can further restrict when the spacecraft is allowed to “count” in access-like calculations.

Constellations do not replace spacecraft — a Walker or trailing constellation creates and groups member spacecraft that remain individually propagated.

Where in the UI

Action How
Create Mission Tree → Spacecraft category → Add Spacecraft (desktop context menu or mobile )
Edit Select spacecraft → Properties (tabbed editor)
Apply Apply Changes when the header shows dirty *
Children Add from tree under the spacecraft, or manage Power/Battery panels inside the spacecraft tabs

Editor tabs

Tab Purpose
Generic Identity, mass properties, propagator
Orbit State / frame / orbit design wizard / external ephemeris
Attitude Attitude law and parameters
Visual 3D model, color, trail
COMM Bus data-plane for Latency (MMFU, rates, processing)
Power Bus size + solar array panels
Battery Battery packs
Constraints Access / environment constraints

Generic

Parameter Type Default Notes
Asset ID text Display / report name
Active in scene refresh checkbox When off, skipped on scene refresh
Mass [kg] decimal 500 UI: Mass kg
Drag coefficient Cd decimal 2.2
Geometric properties source select Constant Values / From Custom Assembly Assembly needs a custom 3D design on the Visual tab
Area mode select Nominal / Randomly Tumbling / Max / Min Only when From Custom Assembly
Drag area [m²] decimal 1 Locked when areas come from the assembly
SRP coefficient Cr decimal 1
Reflectivity area [m²] decimal 1 Locked when areas come from the assembly
Propagator Type select Keplerian See table below

Spacecraft — Generic tab, mass and areas

Spacecraft Properties — Generic (mass, Cd, areas).

Propagator types

Apply Changes refreshes Design with the selected propagator (Keplerian, Eckstein–Hechler, DSST, or Numerical). Analyses that propagate the bus use the same choice.

Propagator Description
Keplerian Two-body analytical
Eckstein Hechler Analytical (LEO-style perturbations)
DSST Propagator Semi-analytical — efficient on long horizons
Numerical Propagator Numerical integrator + force models (table below)

Numerical propagator options

Visible only when Propagator Type = Numerical Propagator:

Parameter Type Default
Min step [s] decimal 0.001
Max step [s] decimal 300
Abs tolerance decimal 1e-6
Rel tolerance decimal 1e-8
Gravity field Degree integer 4
Gravity field Order integer 4
Include atmospheric drag checkbox off
Atmosphere model select NRLMSISE-00 (also DTM2000, Harris-Priester, Simple Exponential, JB2008)
Space weather source select CSSI Space Weather / Marshall Solar Activity Forecast
Solar activity select Low / Moderate / High
Include solar radiation pressure checkbox off
Include third-body point masses checkbox off

Spacecraft — Generic tab

Spacecraft Properties — Generic (identity and propagator).


Orbit

Parameter Type Options / notes
Epoch start UTC text Locked if external ephemeris is on
Epoch end UTC text Locked if external ephemeris is on
Coordinate frame select Inertial: EME2000, GCRF, TEME, TOD, MOD, CIRF, ECLIPTIC · Earth-fixed: ITRF
State type select Cartesian, Keplerian, Equinoctial, Delaunay — Keplerian/Equinoctial/Delaunay require an inertial frame (not ITRF)

State elements by type

State type Parameters
Keplerian SMA [km], ECC [-], INC [deg], RAAN [deg], AOP [deg], TA [deg]
Cartesian X/Y/Z [km], VX/VY/VZ [km/s]
Equinoctial a [km], ex, ey, hx, hy, Lv [deg]
Delaunay L/G/H (×1e6), l/g/h [deg]

Orbit design wizard

Writes a designed orbit into the document when you click Design orbit (document) (Apply still required for the scene). Check that the initial state fields updated before applying.

Wizard class Key parameters (min–max, default)
LEO Generic alt_km 200–2000 (500), ecc 0–0.1 (0.001), inc_deg 0–180 (98.6), aop/raan/ta 0–360
LEO Alternative perigee/apogee alt 200–2000, inc, aop/raan/ta
SSO alt 400–900 (700), ecc, mltan_h 0–24 (10.5), aop/raan/ta
Repeating Ground-Track revolutions 1–200 (14), cycle_days 1–100 (1), ecc, inc, raan, aop
SSO Repeating (I/D) i 1–15 (3), d 2–20 (10), ecc, aop/raan/ta
GTO perigee 200–2000 (250), apogee fixed ~35786 km, inc 0–90 (27)
GEO alt fixed ~35786 km, ecc 0–0.01, inc 0–10
Molniya perigee 500–1000 (600), apogee 39000–41000 (40000), inc ~63.4°, aop often 270°

External ephemeris

Parameter Type Notes
Use external ephemeris file checkbox Locks manual orbit editing
Load ephemeris file file .txt, .eph, .oem
Ephemeris file / external epoch readonly Filled after load

Spacecraft — Orbit state vector

Orbit — frame and state vector.

Spacecraft — Orbit design wizard

Orbit — design wizard (SSO, LEO, GEO, …).


Attitude

Parameter Type Options
Attitude law select Nadir, LVLH, QSW, TNW, VVLH, Inertial, Sun Pointing, Spin-Stabilized
Law Extra parameters
Nadir
LVLH / QSW / TNW / VVLH Roll/Pitch/Yaw [deg], Rotation order (XYZ…ZYX)
Inertial Inertial frame (EME2000, GCRF, TEME, TOD, MOD, CIRF, ECLIPTIC)
Sun Pointing Sun axis X/Y/Z (default Z = −1)
Spin-Stabilized Base frame (Inertial/LOF), frame select, spin axis (±X/Y/Z), spin rate [deg/s]

Spacecraft — Attitude tab

Spacecraft Properties — Attitude (nadir and other laws).


Visual

Parameter Type Default
Model select From resource catalog, or Point only
Color color #66E8FF typical
Model scale decimal Normalized Cesium scale
Trail [s] decimal 3600
Show orbit path checkbox on
Show label in scene checkbox off

Spacecraft — Visual tab

Spacecraft Properties — Visual (model, color, trail).


COMM (spacecraft bus)

This tab is the data-plane size of the bus for Latency: how fast data is produced, how much can sit onboard, and how fast it can leave on a downlink or ISL. It is not the RF budget — EIRP, G/T, and margins live on Transmitter / Receiver and Link.

Each field is a value + unit pair.

How Latency uses the bus

Coverage answers when you acquire. Latency then moves bytes along a Connection Network. The spacecraft COMM fields are the caps on that move.

flowchart LR
  Cov["Coverage window"] --> Acq["Acquisition data rate"]
  Acq --> Mmfu["MMFU onboard"]
  Mmfu --> Isl["ISL data rate"]
  Mmfu --> Dl["Downlink data rate"]
  Isl --> Mmfu
  Dl --> Gnd["Facility"]
Field (editor) Default Where Latency uses it
MMFU capacity 512 GB Onboard mass memory. Acquired bytes accumulate here until a contact can drain them. If the tank fills, later data overflows (not delivered).
MMFU initial fill 0 GB How full the memory is at the start of the study. Non-zero fill means you already have a backlog before the first acquisition.
Acquisition data rate 150 Mbps How fast this bus produces data while Coverage says it is acquiring — only if the acquirer is the spacecraft (no sensor, or Coverage picked the bus). Bytes ≈ rate × time. If Coverage’s acquirer is a sensor, Latency uses that sensor’s Acquisition data rate (default 80 Mbps) instead; the bytes still land in this spacecraft’s MMFU. Discrete Acquirer rate × acquisition window uses the same rule. Discrete Fixed payload size ignores this rate and uses the size you set on Latency.
Downlink data rate 450 Mbps Space → ground hop. The hop is limited by the slower of this rate and the facility’s Downlink max RX rate. Used whenever the route includes a downlink (direct or last hop after ISL).
ISL data rate 200 Mbps Spacecraft → spacecraft hop when Latency policy is Use CN nodes as relay. That relay policy is the next Beta (Pro+). Unused while policy is No inter-satellite link.
Processing latency 5 s Fixed onboard delay on the relay / processing path (not the Coverage acquisition clock). Added when the bus handles the message — store-and-forward and ISL relays feel this.
Uplink data rate 2 Mbps How fast the bus can receive from the ground (user / session / TT&C-style inbound). Matters for Static Continuous session (and similar inbound) stories; it is not the downlink dump rate.
Max. concurrent link 1 How many ground/user sessions this bus may hold at once. Latency drops extra assignments when the cap is exceeded (typical IoT / session crowding).

Sensor vs bus: production rate comes from the Coverage acquirer. Memory and space-to-ground / ISL drain always come from the parent spacecraft COMM tab.

Facility COMM (on the station asset) is the other half of a downlink: ingest rate, ground buffer, ground processing delay — Facility.

After you change these numbers, re-run Latency (it goes stale). Changing COMM does not by itself recompute Coverage or Link.

Spacecraft — COMM tab

Spacecraft Properties — COMM (MMFU, rates, processing, concurrent links).


Power (solar arrays)

Solar arrays are child assets (solar_array) edited inside this tab (no standalone web editor).

Control Meaning
Add panel / Remove panel Create/remove solar_array children
Model source Custom Design (bus X/Y/Z [m]) or Default Models
Per panel Asset ID, Mount face (±X/Y/Z), Pos X/Y/Z [m], Euler sequence, R1/R2/R3 [°], Dim X/Y/Z [m], Use SADM, Pointing (Fixed / Sun-Tracking), SADM axis, Area [m²] (default 5), Efficiency (default 0.3)

Plan limit

solarArrayPerParent caps how many panels you can add per spacecraft.

Spacecraft — Power tab, bus

Power — bus size and model source.

Spacecraft — Power tab, panels

Power — solar-array panel card.


Battery

Batteries are child assets (battery) edited in this tab.

Group Parameters
Generic Battery ID; Battery Type preset (Generic Li-Ion / LiFePO4 / NiH2) — applies chemistry defaults
Energy Nominal Capacity [Wh] (default 500), Initial / Min / Max SOC [%]
Charge/discharge Charge/Discharge efficiency [%], Max charge/discharge power [W]
Electrical bus Nominal / Min / Max voltage [V]
Advanced Self-discharge [%/day], Capacity degradation [%/yr], Min/Max operating temp [°C]

Validation: non-empty ID; capacity > 0; 0 ≤ min SOC ≤ max SOC ≤ 100; initial SOC in 0–100; nominal voltage > 0.

Plan limit

batteryPerParent caps batteries per spacecraft.

Spacecraft — Battery tab

Spacecraft Properties — Battery (packs and SOC limits).


Constraints

Constraint type Default parameters
Range min_km 0, max_km 2000
Ground elevation min_deg 10, max_deg 90
Eclipse state not_in / in
Target illuminated (flag only)
Ground sun zenith angle min_deg 0, max_deg 80
Altitude min_km 0, max_km 2000
Solar beta angle min_deg -90, max_deg 90

Each constraint card has Enabled and Remove.

Spacecraft — Constraints tab

Spacecraft Properties — Constraints (type, Enabled, parameters).


Allowed children

Child type How
sensor, antenna, transmitter, receiver Tree → Add under spacecraft
solar_array, battery Power / Battery tabs (preferred on web)

Example workflow

  1. Add Spacecraft, set Asset ID SAT-DEMO.
  2. Orbit wizard → SSO, altitude 700 km → Design orbit (document) → check that the initial state fields updated.
  3. Attitude → Nadir.
  4. Power → Add one sun-tracking panel.
  5. Battery → Add Generic Li-Ion, 500 Wh.
  6. Apply Changes (updates the 3D scene).
  7. Optionally attach a sensor, then create Coverage / Power analyses.