Tool Documentation

How the research prototype calculates traffic, geofences, U-plans, blue disks, DAA decisions, and safety outputs.

Model In One Minute

The tool estimates a daily A/n-classification metric by sampling active drone positions from a normalized Dn traffic map, grouping nearby drones into blue disks, calculating local free area per drone, and applying a proposed binary DAA rule. U-plans are evaluated separately as planned routes with speed, altitude, departure time, and geofence-band checks.

Dn map Geofences Traffic snapshots Blue disks A/n DAA rule Estimated rate/TLS

Sources

The papers support the traffic-map, conflict-graph, separation-radius, and route-risk concepts. Project hypotheses, numerical approximations, and configurable defaults are identified separately.

Product description Working specification: maps, geofences, grids, vertical separation, U-plans, randomized flights, DAA as black box, and ALS/TLS comparison.
LiU probabilistic map paper Research paper, Sections II-III: probabilistic drone map, sampled traffic snapshots, conflict graphs, connected components, and the Norrkoping case.
ATM Seminar 2019 paper Research paper: Norrkoping traffic case, drones represented as disks, and a safety-radius sweep from r = 50 m to r = 300 m.
QRA first-party risk paper Research paper, Sections 2-4: route-GUI inspiration, probabilistic demand map, Norrkoping case, and an NMAC example with 2r = 152 m.
AST notes Informal working notes supporting discussion of geofences, obstacle congestion, altitude layers, and parameter sweeps; not a normative source.

Current Defaults

Daily operations3,000. Scenario default, not source-fixed.
Average flight duration15 min. Scenario default.
Simulated days80. Monte Carlo runtime/default tradeoff.
TLS target1e-7 NMAC/fh. Source-inspired safety target range from product/AST material.
Vertical separation30 m. Configurable U-plan separation default.
U-plan defaults12 m/s, 120 m altitude, departure minute 0, and 6 generated routes. Scenario settings, not source-fixed.
Default edge search radius180 m per geofence. A local baseline of roughly one to two cell widths in this grid; sensitivity setting, not source-fixed.
Default receiver cells4 per blocked cell. Keeps redistribution local without assigning all mass to one cell; sensitivity setting, not source-fixed.

Traffic Field: Dn Overlay

Dn is the relative traffic weight stored in the GeoJSON file. The colored overlay shows where sampled active drones are more or less likely to appear. It is not a direct real-time probability that a drone is currently there.

pi = Dni / Σj Dnj

Here pi is the probability of selecting grid cell i for one active-drone position in one five-minute snapshot. It is not a probability for an exact point or for an entire day. After selecting a cell, the position is sampled inside that cell. High Dn cells are therefore sampled more often. The displayed map is a bounded analysis scenario, not the full reachable world. Transparent or uniform-looking areas are retained exactly as represented by the loaded grid; the tool does not invent synthetic Dn outside or between source cells.

The overlay displays the current adapted Dn weights. Its colours are contrast-enhanced and clipped near the high end, so colour differences are relative rather than a linear probability scale. Satellite imagery is an ArcGIS World Imagery backdrop and does not enter any calculation.

Source: LiU probabilistic traffic map, QRA demand-map approach, and the local GeoJSON Dn field. Display scaling is an implementation choice.

Geofences

A geofence is a polygon that blocks traffic in the horizontal Dn map. A cell is blocked when its centre lies inside the polygon. Its probability mass is moved to nearby unblocked edge-cell candidates.

adaptedWeightinside = 0
blockedMass = Σ blocked baseWeight
movedMass = blockedMass − unassignedMass
sharej = (1 / dj) / Σk(1 / dk)

For each blocked cell, the nearest configured number of candidates receive mass using inverse-distance weights. The altitude band, for example 0-3000 m, is used for U-plan crossing checks. The density-based Dn simulation itself is still horizontal.

GeofencesNumber of currently defined geofence polygons.
Altitude levelsNumber of distinct minimum-maximum altitude bands used by the geofences.
Analyzed clear areaThe bounded map scenario area outside the horizontal geofence union, estimated on a 100 × 100 sample grid. It is not the total geographic area in which a drone could fly.
Analyzed area / active droneAnalyzed clear area divided by average active drones. This is a global map reference, not local A/n.
Moved Dn massNormalized Dn probability mass removed from blocked cells and successfully redistributed.
Edge search radiusFor each geofence, the maximum distance from its polygon edge where cells may receive moved Dn mass.
Receiver cellsFor each blocked cell, how many nearest edge cells receive its moved Dn mass.
Geofence areaPlanar polygon-area estimate for the individual geofence.
Blocked cellsDn cells whose centres lie inside the geofence. Overlapping cells are assigned to the first matching geofence.
Receiver edge cellsUnblocked candidate cells whose centres are within the selected search radius of a geofence edge.
No receiver cellsThe blocked mass is reported as unassigned and the density evaluation is marked Insufficient. The tool does not silently move it somewhere else.

RWY5K is a bundled local geometry preset for scenario work; the cited material does not establish it as an authoritative airspace restriction.

Source: Product description for geofences/height restrictions; QRA and AST notes motivate boundary congestion. The exact edge-push algorithm and its parameters are project sensitivity choices.

U-plans

A U-plan is one planned drone route. It does not replace the Dn background simulation; it is evaluated as a separate planned route layer. In the current implementation, one U-plan represents one drone mission.

SpeedRoute speed in m/s. Used to convert route distance into travel time.
AltitudeRoute altitude in metres. Used against geofence altitude bands and pairwise route conflicts.
DepartureStart time in minutes from the beginning of the day.
Random route countNumber of Dn-sampled routes to generate.
routeDistance = Σlegs ‖xi+1 − xi
duration = routeDistance / speed

Generated U-plans sample start and end points from adapted Dn, add 1-3 bend waypoints, vary speed/altitude/departure, and reject active geofence-band crossings when possible. They do not avoid other generated U-plans until rerouting is requested. After creation, each U-plan row has a Route settings dropdown where speed, altitude, and departure can be adjusted for that route.

The route row reports whether it is manual or Dn-generated, number of legs, first-leg heading, total distance, calculated duration, altitude, speed, and geofence-band crossings. Together with the global U-plan conflict output, this supports strategic route feasibility: can the mission avoid restrictions and remain separated from other planned missions at the same time? It does not contribute to the background level-of-safety KPI.

Reroute uses a strategic grid planner. It keeps the original start/end points, searches for new intermediate waypoints with A*, blocks active geofence bands, and rejects route segments that are too close to other U-plans at the same time. If geometry alone is not enough, it tests small altitude and departure shifts. A start point inside an active geofence band is reported as an error because rerouting cannot both preserve that start and produce a fully valid route. Reroute all processes plans sequentially, so its result is heuristic and can depend on route order.

blocked if routeSegment ∩ activeGeofenceBand ≠ ∅
routeConflict if horizontalDistance(t) ≤ 2r and verticalDistance ≤ verticalSeparation
τCPA = clamp(−p0 · vrel / ‖vrel‖², 0, Δt)
dCPA = ‖p0 + vrelτCPA

Pairwise route conflicts use a continuous closest-point-of-approach calculation on every overlapping constant-speed route-leg interval. If the relative velocity is zero, their separation remains constant during that interval. The output counts merged conflict intervals; the same pair may count more than once if it separates and later conflicts again. This checks the time between displayed samples as well, so a fast crossing cannot pass unnoticed between two time steps.

Source: Product description for U-plans, randomized flights, and {course, distance, height} route legs; QRA route-GUI inspiration. CPA and A* routing are project implementation choices.

Scenario Model

The scenario converts daily demand into simultaneous traffic exposure and flight hours. Each simulated day contains independent five-minute traffic snapshots. The 95% Monte Carlo interval describes sampling uncertainty between those simulated days; it does not cover uncertainty in Dn, the A/n hypothesis, real operations, or DAA performance.

activeDrones = dailyOperations · averageFlightMinutes / 1440
flightHoursPerDay = dailyOperations · averageFlightMinutes / 60

With the defaults, 3,000 daily operations and 15 minutes per operation give 31.25 expected active drones in each of 288 snapshots per day. The actual snapshot count is Poisson-sampled around 31.25. Positions are then sampled independently from Dn. The background simulation contains no origin, destination, line segment, speed, heading, or persistent drone identity between snapshots; it is not the same as generating hundreds of random U-plans.

Scenario sampling is deterministically seeded so every DAA preset is evaluated against the same sampled traffic. Recalculating an unchanged in-memory scenario produces the same result.

Daily operationsNumber of drone operations represented during one simulated day. Together with duration, this controls expected simultaneous traffic.
Average flight durationMean airborne time per operation. It is used both for average active drones and accumulated flight hours.
Simulated daysNumber of independent Monte Carlo days. More days reduce sampling uncertainty but increase runtime.
TLS target event rateMaximum target NMAC rate per operational flight hour. It is a comparison target, not produced by the simulation.
Vertical separationMaximum vertical distance used by U-plan pairwise conflict detection. It does not change the horizontal Dn snapshots.
Selected DAA radiusThe selected preset's radius r. It controls the source-backed 2r encounter test and the proposed πr² A/n threshold.
Operational flight hours/dayTotal flight hours accumulated by all operations in one day.
Average active dronesExpected number of drones airborne at a random moment.
Selected DAA thresholdThe current hypothesis boundary πr². A blue disk is NMAC-classified when its local A/n is below this value.
TLS as safety levelInverse of TLS. For 1e-7, this is 1.00e+7 flight hours per NMAC.
selectedDaaThreshold = πr²
tlsSafetyLevel = 1 / TLS

Source: Product description for ALS/TLS per operational flight hour. Numeric scenario defaults are configurable.

DAA Models

Each current preset is represented only by one conflict radius r; these are radius sensitivity points, not complete ATM, QRA, or supplier DAA implementations. The source-backed geometric baseline is that two drone safety disks conflict when their centres are at most 2r apart. Larger r therefore creates more potential connected groups. The selected radius can be edited; the Basis label records the preset's origin.

ATM lowr = 50 m, from ATM parameter sweep.
QRA NMACr = 76 m, derived from QRA 2r = 152 m.
ATM highr = 300 m, from ATM parameter sweep.

Source for r and the 2r overlap test: ATM Seminar 2019 paper and QRA first-party risk paper. These papers do not establish the A/n threshold below.

Blue Disks and A/n

A blue disk is a local group of drones connected by pairwise horizontal distance. If drone A is close to B, and B is close to C, all three belong to the same blue disk even if A and C are not directly close.

connected if distance(i, j) ≤ 2r
Rblue = r + maxi ‖xi − x̄‖
A/n = localClearArea / dronesInBlueDisk

The current blue disk is a circular implementation envelope centred on the component mean x̄; it is not a minimum enclosing circle. localClearArea is the estimated area inside that envelope that is not inside geofences. The tool estimates this with 72 deterministic area samples. The canvas boundary is not treated as a wall: a blue disk may extend outside the displayed map without losing area. Only geofences reduce localClearArea.

Grouping is transitive: if A connects to B and B connects to C, all three form one component. This resembles the Java prototype's recursive enclosing-disk idea, but the geometry is not identical. The Java code merges disks recursively; this tool first finds the complete connected component and then uses the mean-centred envelope above. Radii are therefore not simply added as 3r, 5r, and so on.

Source-backed concept: LiU conflict graph/connected components and ATM overlapping safety disks. Mean-centred envelope and 72-point area estimate: project implementation choices.

Binary DAA Rule

The current DAA rule is an explicit research hypothesis and is replaceable. It classifies each blue disk as either NMAC-classified or not classified.

NMAC = 1 ⇔ A/n < πr²
NMAC = 0 ⇔ A/n ≥ πr²

Concrete example without geofences, with r = 50 m and two drones separated by distance d. Their mean-centred blue-disk radius is Rblue = r + d/2. At d = 20 m, Rblue = 60 m and A/n = π · 60²/2 ≈ 5,655 m², which is below the 7,854 m² threshold: NMAC = 1. At d = 100 m, the drones are still connected exactly at 2r, but Rblue = 100 m and A/n = π · 100²/2 ≈ 15,708 m²: NMAC = 0. A geofence cutting either disk reduces A and can move the same geometry toward NMAC = 1.

The πr² boundary is not a validated DAA law. It operationalizes the project idea of mapping r and local A/n to a binary result so that the prototype can be tested. It does not model real sensor range, field of view, latency, nuisance alerts, or avoidance manoeuvres.

Source: Product description for black-box DAA and parameterized capability. Exact πr² threshold: project research hypothesis, not paper-derived.

Output and Safety KPIs

Mean NMAC-classified blue-disk observations/dayAverage number of connected components, across all five-minute snapshots in a simulated day, where the rule returns NMAC = 1. One component counts once per snapshot whether it contains two drones or many. It is not a crash count, and the UI does not report the component's drone count. Because snapshots are independent, the tool also cannot identify a persistent or unique encounter across time.
Level-of-safety KPIEstimated NMAC classifications per 10,000 operations.
Estimated A/n-classified event rateMean classifications/day divided by operational flight hours/day.
Estimated classified-event intervalInverse estimated rate: flight hours per classified blue disk.
TLS evidence checkPass if the 95% upper rate is at or below TLS; Fail if the 95% lower rate is above TLS; otherwise Insufficient.
NMAC share of blue disksFraction of detected blue disks classified as NMAC.
Probability of at least one classificationFraction of simulated days containing at least one NMAC-classified blue-disk observation.
Blue disks/dayMean number of connected components containing at least two drones, summed across the day's snapshots.
Mean local A/nArithmetic mean of local A/n over all observed blue disks for the selected model.
Shared traffic/dayThe configured daily operations used for every DAA preset, allowing a like-for-like radius comparison.
LoS KPI = meanNMACPerDay / dailyOperations · 10000
estimatedRate = meanClassificationsPerDay / flightHoursPerDay
estimatedEventInterval = 1 / estimatedRate
Pass ⇔ CI95%, upper ≤ TLS
Fail ⇔ CI95%, lower > TLS

Positive-event intervals use between-day variation with a Poisson variance floor. With zero observed classifications, the one-sided 95% Poisson upper bound is −ln(0.05) divided by simulated flight hours. These are uncertainty diagnostics for the simulator, not certification evidence.

effective = max(sampleVariance, dailyMean)
CI95% = estimatedRate ± 1.96 · √(s²effective / simulatedDays) / flightHoursPerDay

At TLS = 1e-7, a zero-event run needs at least −ln(0.05)/1e-7 ≈ 29.96 million simulated flight hours before it can show Pass at 95% confidence. The default scenario provides 80 · 750 = 60,000 flight hours, so even zero classifications would be Insufficient rather than Pass. A clearly high observed rate can still produce Fail.

Source: Product description for ALS/TLS. Confidence handling uses standard Monte Carlo sampling uncertainty and the exact zero-count Poisson upper bound.

Charts

A/n research-hypothesis decision map 2D view of the proposed binary rule. X is A/n, Y is r. Dark means not classified; red means NMAC-classified. At r = 50 m, A/n = 6,000 m² lies on the red side of the 7,854 m² boundary, while A/n = 10,000 m² lies on the dark side. Yellow/cyan bubbles summarize observed A/n bins at the selected r, bubble size is frequency, and the ring is mean A/n. The ring is not a TLS verdict and does not imply that every observation has the same classification.
A/n research-hypothesis surface Rotatable 3D view of the same rule. X is A/n, Y is r, Z is classification 0 or 1: the 6,000 m² example is raised to Z = 1, while the 10,000 m² example remains at Z = 0. Its A/n axis zooms to the selected model's observed range, while labels retain the true values. A highlighted slice and binned bubbles show observations at the selected r without moving or adding artificial radius values. It explains the hypothesis and is not a DAA performance surface.

Source: Visual design inspired by the supplied sharp 0/1 boundary reference; calculation is the project research hypothesis.

Import and Export

Export JSON stores the scenario inputs, DAA radii, geofence geometry and settings, U-plan geometry and settings, satellite and Dn-overlay choices, and calculated outputs. Import JSON validates the stored inputs, restores them, and recalculates outputs against the local Dn dataset and current tool version. Stored result values are not trusted as current results. The current format is schema version 1 and references, rather than embeds, the local GeoJSON dataset.

Implementation feature for reproducible scenarios; not a mathematical model assumption.

Known Limits