Skip to main content
For the complete documentation index, see llms.txt.
VALAR reads a single area out of a .kml or .kmz file and converts it to the same typed geometry the GeoJSON flow produces. You supply that file in one of two places: when you create an Area of Interest with the KML method (see the KML upload in the AOI creation dialog), or when you replace the boundary of an area you already track (see Replace the boundary from a file). This page catalogues what geometry is accepted, what is silently dropped, the file-size limits, and what each error means — all of it identical on both paths. The page covers both directions. Everything up to Exporting a Boundary is the import contract — the KML VALAR accepts from you. That final section is the export contract — the KML VALAR produces from an area you already track. The two are deliberately different, and the export section says where and why.
KML is an OGC standard originally created for Google Earth. A .kmz file is a ZIP archive containing a KML document — it is the default format Google Earth exports.

Supported Geometry

VALAR imports exactly one area per file. That area is either a single polygon or a set of polygons: The imported polygons follow the same vertex and area rules the GeoJSON subset enforces — an exterior ring of 3 to 500 distinct vertices per piece, positive area, no self-intersection, and at most a hemisphere of extent. See the Validation Errors catalogue for the full list.

Rejected Geometry

Anything that is not a single solid polygonal area is rejected before the area reaches the map:

What Is Dropped on Import

VALAR keeps only the area outline. The following are dropped without failing the import:

File Types and Size Limits

Replacing an Existing Boundary

An area’s boundary can be replaced from a file long after the area was created, from the Replace from file… control in the geometry editor on the Areas of Interest overview page. The file is read exactly as it is on the creation path: A file holding more than one area is refused on both paths with the same message — This KML file contains multiple areas — import a single area. Split the file and supply a single area, whether you are creating the AOI or replacing its boundary. The replace dialog also accepts a .geojson file; see the GeoJSON file format page for that subset.

Import Errors

Each failure surfaces a single inline message — on the KML card when you are creating an area, and inside the replace dialog when you are replacing a boundary. No area is placed on the map until the file passes every check, and a refused replacement leaves the existing boundary untouched.

Worked Example

Below is a valid KML file describing a small AOI over the Tuscany coast near Livorno — one placemark, one polygon, a closed outer ring, no hole, no altitude.
Save this as tuscany.kml, pick KML in the AOI creation dialog, upload the file, fill in the rest of the Create an AOI form, and Save — the AOI lands in the workspace and an automatic recompute follows. To try the .kmz path, zip the same file (Google Earth’s Save Place As… → .kmz does this for you) and upload the archive instead. The same file also drives the replace path: open an existing area in edit mode, click Replace from file…, and choose it.

Exporting a Boundary

Everything above is the import contract — what VALAR accepts from you. This section is the export contract — what VALAR produces from an area you already track. Export runs from the area’s own actions menu on the Areas of Interest overview page: choose Export as KML and the file downloads directly. It is named aoi-<area-name>-<yyyymmdd>.kml, where the date is the UTC calendar date of the export. Export writes plain .kml only — there is no .kmz export, though both extensions are accepted on import.

What the File Contains

One <Document> holding one <Placemark>, whatever the area’s shape: No <Style> is written — the consumer owns presentation. Nothing beyond the fields above leaves the product: never the area’s validity window, colour, active flag, computed overflight events, or any workspace identifier. Every exported file carries this <description> verbatim:
This file contains the area boundary only, not its overflight results. The boundary is exported as straight segments; the file’s maxDeviationM value states how far they depart from the stored outline. VALAR’s published bound is 250 m for latitudes up to 89.5°.

Accuracy of the Exported Boundary

VALAR computes overflights against a boundary whose edges are great-circle arcs. A KML <LinearRing> has no arc primitive, so every edge in the file is a straight segment, and each one is subdivided until it tracks the arc closely.
Exported area boundaries are densified so that every edge stays within 250 m on the ground of the great-circle boundary VALAR computes overflights against. This is a geometric bound only. It does not guarantee that a third-party tool re-evaluating access against the exported boundary reproduces VALAR’s overflight results: whether a boundary deviation changes an access determination depends on the tasked sensor’s footprint and slew geometry, which is not known when the area is exported.
The 250 m bound holds for absolute latitude up to 89.5°.

The valar Provenance Block

KML has no nested-object type, so the provenance block is flattened into <ExtendedData> as six <Data name="valar.…"> entries. It carries exactly six values, in this order: valar.boundaryOnly sits immediately before valar.maxDeviationM deliberately: the accuracy figure describes the boundary, and the file carries no overflight results for it to describe.
In OGC KML 2.2 a <Data name> element’s <value> is a string — the format has no typed values. A consumer must parse every value in <ExtendedData> as a string. The number and boolean types used on the GeoJSON side do not survive into KML: maxDeviationM arrives as the string "4.9", not a number, and boundaryOnly arrives as the string "true", not a boolean. Compare it as text, or convert it before use.

An Exported File Is Not an Import File

A file VALAR exports is not guaranteed to import back into VALAR, and usually will not. The two contracts are deliberately asymmetric, in both directions: Export exists to hand a boundary to another tool — Google Earth, a GIS package, a planning system, your own pipeline — not to move areas between VALAR workspaces. To change an area’s boundary inside VALAR, use Replace from file… on the Areas of Interest overview page.

Worked Example — An Exported File

A small, mid-latitude polygon area exports to a document like this:
This area’s edges are short enough, and far enough from the poles, that none of them needed subdividing — so the exported ring holds the same positions the area was created with. A wider area, or one nearer a pole, carries many more positions than it was created with, and a correspondingly different valar.maxDeviationM.