Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.valar.space/llms.txt

Use this file to discover all available pages before exploring further.

For the complete documentation index, see llms.txt.
Click New AOI in the top bar from either the AOI Overview or AOI Map page to start creating an AOI. The button always lands you on the AOI Map first, then opens a method picker so you choose how to define the geometry: by drawing on the map, by typing coordinates into a form, or by pasting a GeoJSON document. Save persists the AOI; an automatic recompute fires once you save so the events forecast populates immediately. Route: Opened from the New AOI button on the AOI Overview page or the AOI Map page. Clicking the button from either page navigates to /aoi/map first and then opens the method picker.

Method Picker

Create-AOI method picker with the Draw, Coordinate form, and GeoJSON cards The picker is a modal headed Create a new AOI with the subtitle Pick how you want to define the area of interest. It offers three cards — none is preselected:
CardWhen to use
Draw on mapSketch the AOI directly on the map. Use this when you have a visual reference and want to define the shape interactively.
Coordinate formType latitude / longitude coordinates by hand. Use this when you have precise vertices in mind, or when you are converting from another system.
GeoJSONPaste or upload a GeoJSON file. Use this when you already have a GeoJSON document from QGIS, ArcGIS, or another GIS tool.
Click a card to pick the method; the picker closes and the corresponding creation surface opens. Click Cancel, click outside the modal, or press Escape to dismiss the picker without choosing.

Draw on Map

Picking Draw on map keeps you on the AOI Map and surfaces a floating toolbar in the top-left corner of the canvas. The toolbar segments are:
SegmentBehaviour
PolygonClick each vertex on the map; double-click or click the first vertex to close the shape.
RectangleClick and release for the first corner, then click and release for the opposite corner.
DiskClick the centre, drag to the desired radius, and release. The radius is computed as the great-circle distance from the centre to the furthest sketched point.
A helper text reading Draw a shape on the map to continue renders beneath the toolbar until the shape is complete. Once you finish the shape, a small popover anchors at the top-right corner of the map with the AOI form (described below). The shape stays visible on the map and updates live when you adjust fields.

Coordinate Form

Picking Coordinate form opens the AOI form in a centered modal dialog headed New AOI — Coordinate form. As you type vertices, a dashed sky-blue preview of the shape renders on the world map behind the dialog so you can sanity-check the geometry against the basemap. The geometry editor at the top of the form lets you pick the primitive (Polygon, Disk, or Multipolygon) and enter the structured fields:
PrimitiveInputs
PolygonA list of vertices, each a latitude (-90..90) and longitude (-180..180) pair. Add vertex extends the list.
DiskCentre latitude, centre longitude, and a radius (in kilometres in the form; the wire format uses metres internally).
MultipolygonTwo or more piece blocks, each a polygon vertex list. Add piece extends the list.
A polygon with fewer than 3 vertices surfaces Add at least 3 vertices to continue and disables Save until the geometry is valid. The form caps each polygon at 100 vertices.

GeoJSON

Picking GeoJSON opens the AOI form in a centered modal dialog headed New AOI — GeoJSON. A textarea + file picker at the top accepts your GeoJSON; the live preview on the map behind the dialog updates as soon as the document parses.
ControlBehaviour
GeoJSON textareaPaste any GeoJSON document. The placeholder reads Paste a Polygon / Disk / MultiPolygon GeoJSON Feature here…. Live preview updates on every keystroke.
Upload .geojson fileOpens the file picker. Accepts .geojson and application/geo+json content. Files larger than 1 MB are rejected before being read; the textarea is not populated.
While the textarea is empty, a helper line reads Paste valid GeoJSON to continue. While a parse fails, the helper reads GeoJSON must be a Polygon, Disk, or MultiPolygon. While a file is too large, the helper reads GeoJSON file must be 1 MB or smaller. See the GeoJSON file format page for the supported RFC 7946 subset.

Shared Form Fields

Regardless of the creation method, every AOI form surfaces the same sections beneath the geometry block.

Identity

FieldDescription
NameRequired. Up to 100 characters. Must be unique within the workspace.
DescriptionOptional. Up to 100 characters with a live counter beneath the field.
TagsOptional. Up to 20 chips, each ≤64 characters. Press Enter or , to commit a chip; press Backspace on an empty input to remove the last chip.
ColorA 12-swatch palette: Emerald, Teal, Sky, Blue, Indigo, Violet, Fuchsia, Rose, Red, Orange, Amber, Lime. Defaults to Emerald.

Visibility

FieldDescription
Min elevation (°)Required. Enter a value between and 90° (step 0.5°). Spacecraft below this elevation are not considered visible from any point in the AOI. Placeholder reads Enter elevation threshold.

Lifecycle

FieldDescription
ActiveDefault on. When off, the AOI generates no overflight events even if it has a populated schedule.
Validity start (UTC)Optional. When set, also requires Validity end (UTC).
Validity end (UTC)Optional. When set, also requires Validity start (UTC). Must be strictly after the start.
The create form is paired — leave both bounds empty for an always-active AOI, or set both together. To produce a one-bound (open-ended) window, create the AOI without bounds, then edit it via the dialog on the AOI Overview page, which exposes a per-bound Set / Open-ended switch.
All times are UTC.

Validation Errors

The form validates input inline before letting you Save. The error strings are surfaced verbatim:
ErrorWhat triggered it
Name is requiredThe Name field is blank or contains only whitespace.
Min elevation is required (1–90)The Min elevation field is blank.
Min elevation must be between 1 and 90The Min elevation value is outside the [1, 90] range. The server-side toast for the same condition reads Elevation threshold must be between 1° and 90°.
Both validity dates required, or neitherOnly one of the validity bounds is filled in.
Validity end must be after validity startBoth validity bounds are set and the end is at or before the start.
Up to 20 tags, each ≤64 charactersEither the tag count exceeds 20 or a single tag exceeds 64 characters.
Add at least 3 vertices to continueThe Coordinate-form polygon has fewer than 3 vertices.
GeoJSON must be a Polygon, Disk, or MultiPolygonThe pasted or uploaded GeoJSON could not be parsed as a supported AOI primitive.
GeoJSON file must be 1 MB or smallerThe uploaded .geojson file exceeds 1 MB.
Polygon edges must not intersectThe polygon has self-intersecting edges.
Polygon must have at least 3 distinct verticesThe polygon has fewer than 3 distinct vertices after submission.
Polygon must have at most 500 distinct verticesThe polygon exceeds the 500-vertex backend cap (the Coordinate form caps at 100).
Polygon must have positive areaThe polygon is degenerate (zero area).
Polygon must not span more than a hemisphereThe polygon extent is too large for the spherical model.
MultiPolygon must have at least 2 disjoint piecesA multipolygon needs at least 2 pieces; use a single polygon for one piece.
MultiPolygon must have at most 50 disjoint piecesThe multipolygon exceeds the 50-piece cap.
MultiPolygon pieces must have disjoint interiorsTwo or more multipolygon pieces overlap.
Disk radius must be greater than 0 m and at most 500,000 mThe disk radius is outside the accepted range.
Latitude must be between -90° and 90°A latitude input is outside [-90, 90].
Longitude must be between -180° and 180°A longitude input is outside [-180, 180].
Could not parse this file as GeoJSON. Please check the format.The GeoJSON body is malformed or unparseable.
This primitive is not supported. Supported primitives: Polygon, CircularDisk, MultiPolygon.The GeoJSON references a primitive outside the supported subset.
Polygons with holes are not supportedThe polygon has interior rings (holes).
GeometryCollection is not supportedThe GeoJSON uses a GeometryCollection wrapper.
FeatureCollection with multiple features is not supportedThe FeatureCollection contains more than one feature.
Point and MultiPoint are not supportedThe GeoJSON uses Point or MultiPoint geometries.
File exceeds 1 MB limit (1,000,000 bytes). Simplify in QGIS/ArcGIS before paste.The pasted or uploaded GeoJSON body exceeds 1 MB on the server.
An AOI with this name already exists in this workspace.An AOI with the same name already exists in the workspace.
End date must be after start date.The validity window’s end is at or before the start.
Provide either structured geometry or GeoJSON, not bothBoth a structured geometry block and a GeoJSON body were submitted.

Saving and Cancelling

Click Save to create the AOI. The button reads Saving… while the request is in flight. On success the form closes, the new AOI is selected on the map, and an automatic recompute fires so the events forecast populates immediately. If the save rejects, an inline banner above the form reads Couldn't save AOI — try again; the banner clears the moment you edit any field. Click Cancel to discard the draft. If you have unsaved changes, a confirmation dialog Discard changes appears with the body Discard your changes? Your edits will be lost. Choose Keep editing to return to the form or Discard to close it. A non-dirty cancel routes straight to the closing transition.

Editing an Existing AOI

To edit an existing AOI, open the AOI Overview page, select the AOI, and click the pen icon in the identity hero to enter edit mode. Identity fields become inline-editable; the validity window opens an edit dialog from the geometry block. The full editing workflow — including the kebab actions for Set active, Set inactive, and Delete AOI — is documented on the Overview page. Editing the geometry, the min elevation, the validity window, or the Active flag automatically triggers a recompute. Editing only identity fields (name, description, tags, colour) does not trigger a recompute; existing events stay in the list.

Deleting an AOI

Deletion is initiated from the kebab menu in the identity hero on the AOI Overview page, or from the kebab menu on a hovercard on the AOI Map page. Both paths surface a Delete AOI confirmation dialog; click Delete to confirm or Cancel to keep the AOI. After deletion the page navigates to the next remaining AOI, or to the empty state if it was the only one.