Skip to content

Instantly share code, notes, and snippets.

@qoomak
qoomak / sustained_rapid_descent.sql
Last active April 15, 2026 12:14
Flink SQL MATCH_RECOGNIZE — sustained rapid descent (A B{2,} C)
PATTERN (A B{2,} C)
DEFINE
A AS A.on_ground = FALSE
AND A.vertical_rate < -15.0
AND A.baro_altitude > 3000,
B AS B.on_ground = FALSE
AND B.vertical_rate < -15.0
AND (LAST(B.baro_altitude, 1) IS NULL
OR B.baro_altitude < LAST(B.baro_altitude, 1)),
C AS C.on_ground = FALSE
@qoomak
qoomak / rapid_descent.sql
Last active April 15, 2026 12:21
Flink SQL MATCH_RECOGNIZE — go-around detection (A B{1,} C{2,}? D)
PATTERN (A B{1,} C{2,}? D)
DEFINE
A AS A.on_ground = FALSE
AND A.vertical_rate < -1.0
AND A.baro_altitude < 1500,
B AS B.on_ground = FALSE
AND B.vertical_rate < -1.0
AND B.baro_altitude < 800
AND (LAST(B.baro_altitude, 1) IS NULL
OR B.baro_altitude < LAST(B.baro_altitude, 1)),
@qoomak
qoomak / landing_detection.sql
Last active April 15, 2026 12:14
Flink SQL MATCH_RECOGNIZE — simple landing detection
PATTERN (A B) WITHIN INTERVAL '3' MINUTE
DEFINE
A AS A.on_ground = FALSE,
B AS B.on_ground = TRUE
@qoomak
qoomak / descent_detection.sql
Created April 15, 2026 12:05
Flink SQL MATCH_RECOGNIZE example — descent detection
SELECT *
FROM (
SELECT
uniqueFlightRecord.baro_altitude AS baro_altitude,
uniqueFlightRecord.callsign AS callsign,
uniqueFlightRecord.latitude AS latitude,
uniqueFlightRecord.true_track AS true_track,
uniqueFlightRecord.last_contact AS last_contact,
uniqueFlightRecord.on_ground AS on_ground,
uniqueFlightRecord.position_source AS position_source,