NASA-Funded ResearchIn ProgressUpdated

Dynamic Heterogeneous Flight Graphs for AAM Security

A graph neural network approach to risk modeling and security analysis for Advanced Air Mobility (AAM) systems using heterogeneous flight data.

Initial Research & Scoping

Foundational

Nov 2025 to Jan 2026

Early literature review, data source evaluation, and the first pass at architecture and methodology. Several decisions from this period were revised later; the superseded ones are marked where they appear.

This phase set the starting architecture and research foundation. The update pattern, graph structure, and training labels all changed later, and the entries below track each change.

Nov 1, 2025Research

Data Source Evaluation

Surveyed the available aircraft trajectory and accident/incident datasets. AAM-specific data barely exists outside simulators, so the project works with conventional aircraft surveillance data instead.

Nov 15, 2025Research

Literature Review: Dynamic GNN Patterns

Reviewed 30 papers across Dynamic GNNs, Temporal Knowledge Graphs, and dynamic heterogeneous graphs. Three architectural patterns for temporal graph data kept recurring across them.

Dec 1, 2025Decision

Initial Model Architecture & Methodology

First pass at the model architecture: a multi-stage pipeline running from raw data through graph construction and GNN layers to a risk output, plus the methodology calls on decoder, loss function, and GNN design.

Dec 15, 2025Report

Raw Data Schema Definition

Documented the field-level schema for OpenSky state vectors, NTSB event records, and NTSB aircraft records. These definitions stayed stable for the rest of the project.

Synthetic Data Approach

Dropped

Jan 14 to Feb 16, 2026

Attempted to build training data by matching NTSB accidents to OpenSky trajectories, then generating synthetic collisions for the missing aircraft. The pipeline matched 370 accident-trajectory pairs and generated 20 synthetic collision encounters.

Dropped. Most incidents had only one aircraft's ADS-B data, the synthetic collisions were unrealistic, and no near-miss data could be generated.

Jan 14, 2026Decision

Data Quality Requirements

Defined what counts as a "usable" accident-trajectory pair. The trajectory requirements (minimum points, time alignment, etc.) were written up as a spec that the pipeline code enforces.

Jan 14, 2026Report

Airport Proximity Baseline Analysis

Baseline analysis of proximity metrics near busy airports during normal operations. Sampled major US airports to learn what "normal close" looks like, so proximity alone would not be mistaken for risk.

Jan 14, 2026Report

Trajectory Pattern Mining

Tried mining repeatable kinematic patterns from trajectory features, hoping to characterize normal flight behavior and spot anomalies.

Jan 16, 2026Report

Synthetic Pipeline Implementation

Built the end-to-end synthetic data pipeline. Matched 370 NTSB accident-trajectory pairs and tiered them by quality: 212 gold, 38 silver, 22 bronze, 98 rejected.

Jan 29, 2026Report

Incident Classification & Narrowing

Classified the 41 usable incidents into multi-aircraft conflicts (15), runway incursions (11), and wrong surface/runway events (15). Narrowed the list to the 8 airborne multi-aircraft conflicts that have trajectory data.

Feb 4, 2026Decision

Canonical Schema & Synthetic Generation Plan

Designed a canonical data schema to standardize real and synthetic data formats. Step 5 tackled synthetic collision generation to fill the missing-aircraft gap: 7 of 8 incidents had only 1 aircraft's trajectory.

Feb 6, 2026Dropped

Synthetic Pipeline Results: Limitations Found

Generated 20 synthetic collision encounters, but only collisions (y=1), no near-misses. The limitations were fundamental: dead-reckoned positions, rotation distortion, and a perfect 0.0m separation at every collision. This was the inflection point that led to the surrogate pivot.

Feb 16, 2026Dropped

Final Synthetic Data Attempts: Approach Dropped

Last attempts to salvage the synthetic approach: an updated classification (v2) and a hybrid simulator proposal for near-miss generation. Both were dropped in the end. The simulator was too complex for thesis scope, and the underlying data gap could not be solved synthetically.

The Surrogate Pivot

Validated

Feb 19 to Mar 6, 2026

A literature review surfaced surrogate safety measures (LoS, well-clear, NMAC, CPA) as well-established alternatives to direct accident labels. An empirical validation on real LA Basin data confirmed these signals are dense enough for training after airport filtering.

Validated. Surrogate signals provide dense, computable training labels while preserving the core architecture.

Feb 19, 2026Report

Literature Review: Surrogate Safety Measures

Deep research report on surrogate safety measures for airspace collision risk modeling. Mapped the aviation safety literature onto the thesis architecture constraints: computable at event time, dense enough for learning, and compatible with an encounter-to-accident interpretation.

Feb 27, 2026Pivot

The Pivotal Decision: Surrogate Labels

The defining document for the project's current direction. The thesis architecture stays the same, but the training labels change from accidents to surrogate safety measures. Defines severity tiers, published thresholds, and the MVP training plan.

Mar 6, 2026Result

LA Basin Empirical Validation

Empirical audit of surrogate safety signals on 4 hours of LA Basin ADS-B data. Confirmed the surrogates are viable once airport noise is filtered out.

Graph & Pipeline Build-Out

Validated

Mar 12 to Mar 30, 2026

With the surrogate approach validated, work shifted to defining the formal graph schema, evaluating update strategies, and scaling data collection to the top 5 US airports by passenger traffic.

Complete. The graph schema was finalized at the end of March and data collection scaled to national airports; the work then moved into model selection and training.

Mar 13, 2026Decision

Graph Update Strategy Evaluation

Evaluated three graph update patterns: event-only, periodic (constant-interval snapshots), and hybrid. This report recommended Pattern 2 (event-driven) as backbone with Pattern 3 (hybrid) as encoder. The late-March meeting overruled it in favor of Pattern 1 (snapshot-based).

Mar 30, 2026Decision

Definitive Graph Schema

Settled the graph schema in the graph definition report, finalized at the late-March meeting: a two-layer multigraph with aircraft nodes and directed proximity edges carrying raw separation distance. Pattern 1 (snapshot-based) updates were chosen at that meeting, reversing the Mar-13 recommendation of Pattern 2 + Pattern 3.

Mar 24, 2026Data Collection

Scaled Data Collection: Top 5 US Airports

Scaled the 4-hour LA Basin pilot to a representative national dataset. Defines the study scope: top 5 US airports by passenger traffic (KATL, KDFW, KDEN, KORD, KLAX), with 24-hour ADS-B query windows.

Model Training & the Leakage Saga

Validated

Apr 7 to Jun 15, 2026

Model selection, the move into DyGLib, and the first real training runs. A too-good first AUROC turned into a week of leak hunting, which ended with encounter aggregation as permanent methodology and a defensible canonical result.

DyGFormer selected and validated through the leakage scare. Encounter aggregation, the LA-only scope, and threshold Class B were all locked in as methodology.

Apr 7, 2026Decision

Model Selection: DyGFormer + TGN

Scored 16 dynamic-GNN architectures against six criteria. DyGFormer came out as the primary model, with TGN kept as the baseline, both run through the DyGLib benchmark library.

Apr 23, 2026Report

DyGLib Integration

First DyGLib integration. Wrote to_dyglib.py to convert the encounter data, chose per-second edge semantics over per-encounter edges to preserve intra-encounter trajectory, and assigned z-node IDs with pd.factorize on ICAO24.

Apr 24, 2026Result

First DyGFormer Training: 0.9972 AUROC

First DyGFormer training run scored 0.9972 AUROC, which initially read as a success. Two code blockers were fixed along the way, and a sigmoid saturation problem was traced to the edge features and fixed with z-scoring.

Apr 25, 2026Dropped

Self-Reversal: Within-Encounter Leakage

Reassessed the previous day's result and withdrew it: within-encounter redundancy is itself a leakage channel, so the "genuine learning confirmed" conclusion did not hold. Scaling paused until encounters could be aggregated.

Apr 29, 2026Result

Encounter Aggregation

Aggregated per-second edges into one row per encounter (gap_threshold_s=60). EdgeBank collapsed to 0.516 while DyGFormer held 0.877 ± 0.003, which is the real signal. Encounter aggregation became permanent methodology.

Apr 30, 2026Dropped

Five-Airport Scale-Up

Scaled up to all five airports (OpenSky_5ap_enc, 145,709 encounters). The historical-negative score collapsed from 0.944 to 0.620, hypothesized at the time as cross-airport pollution.

May 1, 2026Decision

Event Definition Lock-Down

Locked the event definition: an event is an observed encounter, an exposure opportunity. Surrogates are features, not labels, and severity-tier labeling was explicitly rejected. LA rebuilt at 24 hours (44,566 encounters).

May 8, 2026Result

Seven-Day Canonical LA Dataset

Extended LA from 1 day to 7 consecutive days (2024-06-15 to 2024-06-21, 254,243 encounters). Adopted the canonical headline result of 0.8219 ± 0.0036, disproved the cross-airport-pollution hypothesis, and decided to scope the thesis to LA only.

May 14, 2026Result

Class B Dataset, Built Twice in One Day

Built the Class B Only dataset twice in one day. v1 kept all 161,029 terminal encounters (0.8227), which turned out to be a framing error. v2 added --require-safety-flag any, leaving 11,804 encounters at 0.7576, the cost of asking the harder question.

May 15, 2026Report

Repository Cleanup and Master Docs

Cleanup day. Dropped methods were archived under _archives/, the _final script pair was promoted, and three master context docs were written: PROJECT_TIMELINE, PROJECT_DICTIONARY, and AAM_Data_Pipeline_Summary.

May 17, 2026Report

Sparsity Audit and Threshold Classes

A sparsity and frequency audit turned up the 12:00 to 12:00 UTC file-window convention in the OpenSky data. Defined threshold classes A, B, and C by reclassifying existing data offline, roughly 1000x faster than re-querying OpenSky.

May 25, 2026Result

Threshold Sweep and the 100-Epoch Correction

Trained all three threshold classes. The 10-epoch results (0.7959 / 0.7763 / 0.6440) suggested a small-data ceiling for Class C, but the 100-epoch follow-up corrected that reading: 0.8508 / 0.8281 / 0.7514. The instability was under-training, and Class B was locked as the recommended operational filter.

Jun 15, 2026Report

Node Identity Audit

Answered Dr. Noruz's question on node identity: one persistent node per ICAO24, so aircraft-as-airframe is confirmed. The flight-instance alternative was framed as a rebuild-scale decision.

Forecast-Head Extension

In Progress

Jul 8, 2026 to present

The active phase: extending DyGFormer from event-conditional link scoring to state-conditional event forecasting. The design direction is agreed with the advisor and a head design is proposed, awaiting approval; implementation has not started.

In progress. The forecast-head design is proposed and awaiting advisor approval; no code has been written yet.

Jul 8, 2026Decision

Advisor Meeting: Forecast-Head Phase Opens

The advisor meeting opened the forecast-head phase: extend DyGFormer from event-conditional link scoring to a state-conditional forecast, P(surrogate-flag event in (t, t+δ] | history < t). Options ranked B (frozen encoder + MLP probe), then C (δ-conditioned sequence head, the novelty claim), then A (fine-tune).

Aug 21, 2026Report

Forecast-Head Design Proposed

The forecast-head design proposal is registered as the phase's reference spec, awaiting advisor approval, with the head option not yet settled. The proposal conditions the head on δ and evaluates several horizons, from tens of seconds to a few minutes, with history fixed at the DyGLib default of the last 32 encounters. No code has been written.

Related Work & Citations