A comprehensive ASTERIX message decoder with an interactive DearPyGui dashboard for real-time aircraft tracking visualization.
Download the latest release from GitHub Releases:
- Linux:
asterix-dashboard-linux- Self-contained executable for Linux x86-64 - Windows:
asterix-dashboard-windows.exe- Self-contained executable for Windows x86-64
Running:
# Linux
chmod +x asterix-dashboard-linux
./asterix-dashboard-linux
# Windows
asterix-dashboard-windows.exe# Clone the repository
git clone https://github.com/Sergiogd112/asterix_decoder.git
cd asterix_decoder
# Install uv (Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create virtual environment and install dependencies
uv venv
uv pip install -e .
# Run the dashboard
uv run python dashboard.py- Interactive Dashboard: Real-time aircraft tracking on an interactive map
- Play/Pause Controls: Control animation playback with adjustable speed
- Advanced Filtering: Filter by location, altitude, ground status, and category
- Data Export: Export filtered data to CSV format
- Multi-format Support: Handles various ASTERIX categories (CAT21, CAT48, etc.)
- Self-contained: No Python installation required for pre-built executables
- Linux: glibc 2.17+ (most modern distributions)
- Windows: Windows 10+ with Visual C++ Redistributable
- No Python installation required
- Python 3.10+
- Dependencies listed in
pyproject.toml
See BUILD_INSTRUCTIONS.md for detailed build instructions, including:
- Local builds for Linux and Windows
- GitHub Actions automated builds
- Cross-platform compilation
- Start the app (pre-built binary or
uv run python dashboard.py). - In the
Loadingwindow, click Select File and choose an.astcapture. - Pick the decoder backend (
Rustrecommended) and optional Max Messages limit. - Press Load and Run to stream the capture into the dashboard.
- Use the Play/Pause controls at the top to animate frames; drag the Frame slider for random access.
- Adjust Speed (fps) to fast-forward or slow down playback.
- Hover aircraft markers for rich tooltips.
- Click an aircraft to pin its details in the
Clicked Aircraft Infopane.
- Toggle the
Filterspanel to constrain latitude/longitude, altitude, ground/airborne status, or ASTERIX category. - Enable Ground Status or Category selectors to isolate specific traffic types.
- When satisfied, hit Export to CSV to save the currently filtered dataset for offline analysis.
asterix_decoder/
├── decoder/ # Core ASTERIX decoding logic in Python
├── decoderrs/ # Core ASTERIX decoding logic in Rust
├── dashboard.py # Main DearPyGui dashboard
├── mapdata.py # Map visualization data
├── Test_Data/ # Sample ASTERIX data files
├── BUILD_INSTRUCTIONS.md # Detailed build guide
└── .github/workflows/ # Automated CI/CD
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.

