Publish entities
This page explains how to create and update assets, tracks, and geo-entities - the most common Entity
templates in Lattice.
In the following steps, you publish various entities and learn how the entity model lets you represent a variety of real-world objects and geographic areas.
Before you begin
- To publish entities, set up a Lattice environment.
- The following examples use
uuid
to generate unique entity IDs. To use the TypeScript examples, install@types/uuid
:TypeScript - Learn about required components and various entity shapes in Lattice.
Publish an asset
An asset is an entity under your control, or under the control of another operator or system. Assets may accept tasks such as search or tracking. To publish an asset, do the following:
Drone
Define the entity model’s required components. Together with the asset-specific fields, you get the following entity object:
Take a closer look at the following components in entity.json
and familiarize yourself
with common pattenrs used to model an asset in Lattice. In this example:
- Set
template
toTEMPLATE_ASSET
. - Set
platform_type
toUAV
rendering a drone icon in the Lattice UI. - Use
taskCatalog
to publicize the assets tasks. The asset can listen for, and act upon, any task assigned to it, matching its specifiedtaskDefinition
. - Use
health
to define the health status of the asset. When an asset sends updates to Lattice, Lattice automatically setshealth.connection_status
toCONNECTION_STATUS_ONLINE
. If there are no updates after one minute, the field value changes toCONNECTION_STATUS_OFFLINE
.
Publish a track
A track represents any entity tracked by another asset or integration source.
Tracks are not directly under the control of friendly forces. This includes aircraft
tracks from radar or sensor hits, signal detections, and vehicles, people, or animals detected through cameras. You can specify the type of track you want to publish by
setting ontology.template
field:
Airplane
Satellite
Radar
Define the entity model’s required components. To create a generic track, such as an airplane:
- Set
template
toTEMPLATE_TRACK
. - Set
platform_type
toAIRPLANE
.
Together with the track-specific fields, you get the following entity object:
Publish a geo-entity
A geo-entity is a shape, region, or point of interest drawn on the map, which may not physically exist. Use geo-entities to represent an geographical areas of interest, such as airfield, or a control zone for autonomous vehicles to operate in. To publish a geo-entity, do the following:
Polygon
Define the entity model’s required components. Together with the geo-entity-specific fields, you get the following entity object:
Take a closer look at the following components in entity_model.json
and familiarize yourself
with common pattenrs used to model a get-entity in Lattice. You define rings
to create the polygon.
Each ring
must have at least four points, each represented by a position
component.
The last point must be the same as the first point you define for the ring
component.
In the folloiwing example, you publish a three-sided polygon. Each point in
the polygon has a minimum altitude defined as altitudeAglMeters
.
The first and the last point have a heightM
component, which sets
additional height, in meters, above altitudeAglMeters
:
Set platform type
For iconography within Lattice, add a platform_type
value to the ontology
component. The Lattice UI supports the following types:
Airplane
Animal
Car
Person
Radar
Satellite
Surface Vessel
Submarine
UAV
Vehicle

Specify motion
The entity location
component contains kinematic fields, including position, attitude, and velocity,
that represent the motion of entities over time. Third-party integrations are
responsible for providing all available kinematic field data.
Altitude
Attitude
An entity contains four altitude references, specified in meters:
The entity’s height above the World Geodetic System 984 (WGS84) ellipsoid.
The entity’s height above the terrain. This is typically measured with a radar altimeter or by using a terrain tile set lookup.
The entity’s height above the sea floor.
The depth of the entity from the surface of the water.
Lattice does not support Mean Sea Level (MSL) references,
EGM-96 and the EGM-08. If the only altitude reference available to your
integration is MSL, convert it to Height Above Ellipsoid (HAE) and populate the
altitude_hae_meters
field. We recommend using an open-source library, such as
EGM96 for Go
to apply this conversion
For example, to indicate to Lattice that a plane is flying at an altitude of 2,994 meters higher than the World Geodetic System 1984 (WGS-84) ellipsoid, you would populate an entity with the following data:
Set transponder code
For most civilian aircraft it is common to assign a unique 24-bit ICAO address to identify the aircraft.
In order to add a badge to Lattice with the ADS-B identifier, populate the Mode-S.Address
field.
To indicate that an entity has an ADS-B transponder:
- Set Transponder codes.
- Set
aliases.name
to specify any flight number associated with the aircraft, for example, an UAL-1235. - Add
aliases.alternate_ids
to indicate a call-sign for the aircraft:ALT_ID_TYPE_CALLSIGN
.

What’s next?
- Learn more about the Entities API in REST and gRPC.
- Learn how to task an asset.
- Check out the Lattice sample apps.