🏗️ Architectures API¶
The node_fdm.architectures namespace contains the blueprint definitions for specific flight dynamics problems.
It serves two main purposes: Registration (mapping string names to Python objects) and Implementation (defining the column groups, preprocessing logic, and model stacks for specific datasets like OpenSky or QAR).
🧩 Registry¶
The mapping module is the central lookup table. It allows the ODETrainer and Predictor to instantiate the correct classes based on a configuration string.
mapping
¶
Helpers to dynamically load and assemble architecture components.
get_architecture_from_name(architecture_name)
¶
Return architecture definition, model columns, and custom functions by name.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
architecture_name
|
str
|
Name of the architecture to load. |
required |
Returns:
| Type | Description |
|---|---|
Tuple[Any, Any, Any]
|
Tuple of (architecture layers, model columns, custom functions). |
Source code in src/node_fdm/architectures/mapping.py
get_architecture_module(name)
¶
Dynamically import only the architecture requested.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
Architecture package name to load. |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, Any]
|
Dictionary containing imported column, model, and custom function modules. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the provided architecture name is not supported. |
Source code in src/node_fdm/architectures/mapping.py
get_architecture_params_from_meta(meta_path)
¶
Load architecture parameters and stats from a meta JSON file.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
meta_path
|
str
|
Path to the meta JSON file. |
required |
Returns:
| Type | Description |
|---|---|
Tuple[Any, Any, Any, Dict[Any, Any]]
|
Tuple containing architecture, model columns, model parameters, and stats dictionary. |
Source code in src/node_fdm/architectures/mapping.py
📡 OpenSky 2025¶
This is the reference implementation for public ADS-B data. It defines a physics-informed architecture capable of handling noisy surveillance data.
Columns Definition¶
Defines the input/output variables (State, Control, Environment) and their units.
columns
¶
Column definitions and unit mappings for the OpenSky 2025 architecture.
Processing Hooks¶
Functions to clean, smooth, and augment raw ADS-B data.
flight_process
¶
Pre-processing utilities for OpenSky 2025 flight data.
flight_processing(df)
¶
Prepare OpenSky flight data by computing altitude differences.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
df
|
DataFrame
|
Input DataFrame containing flight measurements. |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame with altitude difference column added. |
Source code in src/node_fdm/architectures/opensky_2025/flight_process.py
segment_filtering(f, start_idx, seq_len)
¶
Check whether a segment meets distance variation thresholds.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
f
|
DataFrame
|
DataFrame containing flight measurements. |
required |
start_idx
|
int
|
Starting index of the segment to evaluate. |
required |
seq_len
|
int
|
Length of the segment to evaluate. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if the segment stays within distance thresholds, otherwise False. |
Source code in src/node_fdm/architectures/opensky_2025/flight_process.py
Model Stack¶
The assembly of the Neural ODE, connecting physics layers with the learned derivative layer.
model
¶
Layer configuration and column grouping for the OpenSky 2025 architecture.
Trajectory Layer¶
A specialized physics layer that computes derived kinematic variables.
trajectory_layer
¶
Torch module for computing basic trajectory features for OpenSky 2025 data.
TrajectoryLayer
¶
Bases: Module
Compute trajectory outputs such as vertical speed, Mach, and calibrated airspeed.
Source code in src/node_fdm/architectures/opensky_2025/trajectory_layer.py
__init__()
¶
forward(x)
¶
Compute derived trajectory quantities from the provided inputs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
Mapping[Any, Tensor]
|
Mapping from column identifiers to input tensors. |
required |
Returns:
| Type | Description |
|---|---|
Dict[Any, Tensor]
|
Dictionary of derived tensors keyed by their column identifiers. |