Aircraft Transponder (ADS-B) Template
This template allows you to ingest and analyze aircraft transponder data (ADS-B) from military aircraft. It demonstrates how to build a data pipeline that collects aircraft tracking information, processes it in real-time, and stores it in ClickHouse for analysis.
Getting Started
Prerequisites
Before getting started, make sure you have the following installed:
- NodeJS
- Docker Desktop
Install Moose and Aurora
To get started, install Moose (open source developer platform for data engineering) and Aurora (AI data engineering product).
bash -i <(curl -fsSL https://fiveonefour.com/install.sh) moose,aurora
Anthropic API Key
This installation will ask for your Anthropic API key if you want to use the AI features. If you don’t have one, you can follow the setup guide at Anthropic’s website.
Create a new project using the ADS-B template
aurora init aircraft ads-b --mcp claude-desktop
Set up the project
Navigate to the project directory and install dependencies:
cd aircraft
npm install
Start the Docker services
Make sure Docker Desktop is running, then start the Moose development server:
moose dev
This will start all necessary local infrastructure including ClickHouse, Redpanda, Temporal, and the Rust ingest servers.
Run the data ingestion workflow
Open a new terminal window and navigate to your project directory, then run:
moose workflow run military_aircraft_tracking
This workflow will retrieve data from the adsb.lol military aircraft tracking API, process it according to the data model, and ingest it into ClickHouse.
Explore the Data
The template allows you to explore the ingested aircraft data using AI tools like Claude Desktop or Cursor.
Explore with Claude Desktop
Claude Desktop can help you analyze the data through natural language queries.
Example Questions for Claude
Try asking Claude exploratory questions like:
- “Tell me about the data in my ClickHouse tables”
- “Tell me about the flow of data in Moose project”
- “Create a pie chart of the types of aircraft in the air right now”
- “Create a visualization of aircraft type against altitude”
Productionize Your Results with Cursor
For a code-forward workflow, Cursor provides a great environment to productionize your queries.
Configure Cursor with Aurora MCP
cd path/to/your/project
cursor .
Then run the Aurora command to configure the MCP for Cursor:
aurora setup --mcp cursor-project
This will create a /.cursor/mcp.json
file with Aurora’s MCP configuration.
Enable the MCP in Cursor by going to:
cursor > settings > cursor settings > MCP
and clicking enable
and refresh
.
Example Question for Cursor
Try asking Cursor to help you productionize your analysis: “Could you create an egress API that, for a given aircraft type input, returns the altitude, and longitude of each instance of that aircraft?”
Project Structure
The template implements a data pipeline that:
- Fetches military aircraft data from the adsb.lol API
- Processes and normalizes the data (handling special cases like the “ground” altitude)
- Enriches the data with additional metrics like Z-order coordinates
- Stores the data in ClickHouse for analysis
aircraft/
├── app/
│ ├── datamodels/ # Data models for aircraft tracking
│ ├── functions/ # Processing functions for aircraft data
│ └── scripts/ # Workflow scripts for data ingestion
└── README.md # Project documentation
Next Steps
Once you have the data flowing, you can:
- Build custom visualizations of aircraft movement
- Create alerting systems for specific aircraft types or behaviors
- Analyze flight patterns and trends over time
- Create APIs to surface insights from your data
Feel free to modify the data models, processing functions, or create new APIs to suit your specific needs!