This is a sample application showcasing an integration between AIS vessel traffic data and Lattice.
The sample application demonstrates how to create an entity as a JSON payload and call the HTTP PUT /api/v1/entities
endpoint to publish an entity to the Lattice API.
The AIS (Automatic Identification System) vessel traffic dataset is a repository of vessel identification and positioning data. The data is collected through an onboard navigation safety device that transmits and monitors the location and characteristics of vessels in U.S. For this sample demonstration, the only 4 fields in the dataset that we are interested in are the MMSI, latitude, longitude, and vessel name. These fields are used to simulate maritime traffic, creating and continuously updating vessel entities with their latest position and publishing them to the Lattice API in real-time.
- Python version greater than or equal to 3.9
Ensure you have set up your development environment
git clone https://github.com/anduril/sample-app-ais-integration-rest.git sample-app-ais-integration-rest
cd sample-app-ais-integration-rest
Optional: Initialize a virtual environment
python -m venv .venv source .venv/bin/activate
- Install the dependencies used for this project:
pip install -r requirements.txt
- Modify the configuration file in
var/config.yml
:
- Replace
<YOUR_LATTICE_IP>
and<YOUR_LATTICE_BEARER_TOKEN>
with your Lattice IP and Lattice Bearer Tokenlattice-ip: <YOUR_LATTICE_IP> lattice-bearer-token: <YOUR_LATTICE_BEARER_TOKEN>
- If you would like, you can also modify:
entity-update-rate-seconds
: to change the interval between publishing vessel entitiesvessel-mmsi
: to change the vessels to trackais-generate-interval-seconds
: to change the interval between generating vessel data
Run the following command to start the program
python src/main.py --config var/config.yml
Navigate to your Lattice UI and verify that the vessel entities are displayed.
Congrats! You've successfully created and published entities to Lattice!