Constraints¶
Constraints define additional rules that must be satisfied for access, visibility, or analysis validity. They are attached to assets and evaluated by analysis services such as the access engine.
Built-in Constraint Types¶
| Constraint | Applies to | Mode | Main parameters |
|---|---|---|---|
| Elevation (Ground) | Facility | Continuous | min_deg, max_deg |
| Azimuth (Ground) | Facility | Discrete | min_deg, max_deg |
| Range | Spacecraft, sensor, antenna, facility, vehicle | Continuous | min_km, max_km |
| Ground Elevation | Spacecraft, sensor, vehicle | Continuous | min_deg |
| Eclipse State | Spacecraft, sensor, vehicle | Discrete | state |
| Target Illuminated | Spacecraft, sensor, vehicle | Continuous | None |
| Ground Sun Zenith Angle | Spacecraft, sensor, vehicle | Continuous | min_deg, max_deg |
| Altitude | Spacecraft, sensor, vehicle | Continuous | min_km, max_km |
| Solar Beta Angle | Spacecraft, sensor, vehicle | Discrete | min_deg, max_deg |
Continuous vs Discrete Constraints¶
Continuous constraints can be represented as a margin and may support boundary refinement. Discrete constraints are evaluated as boolean state filters and are not always suitable for continuous bisection.
flowchart TD
C["Constraint"] --> T{"Mode"}
T -->|Continuous| M["Margin evaluation"]
T -->|Discrete| B["Boolean mask"]
M --> R["Boundary refinement possible"]
B --> F["Filter sampled timeline"]
Constraint Ownership¶
ASTROLAB collects constraints from the endpoint hierarchy:
- Asset-level constraints.
- Host-level constraints.
- Sensor-level constraints.
This allows a spacecraft bus, facility, mounted payload, or antenna to impose its own requirements without duplicating analysis logic.
Best Practices¶
- Put ground station horizon rules on the facility.
- Put payload-specific field or operating limits on the sensor or antenna.
- Use range constraints for engineering or operational distance limits.
- Treat eclipse and beta angle constraints carefully, because they may be discrete and sample-step sensitive.