Skip to content

R package for the international performance benchmarking work. Developed as part of the bi-regional projects.

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

euctrl-pru/ansperf

Repository files navigation

ansperf

The general objective of air navigation services is to enable the “… safe, efficient, and orderly flow of air traffic.” ICAO promotes further the use of a performance-based approach and encourages stakeholder to monitor and benchmark services. For this purpose a set of (global) key performance indicators (KPI) were established under the Global Air Navigation Plan. These KPIs (and variants of them) are actively used by the performance benchmarking community.

This package is jointly developed by the Department of Airspace Control (DECEA) und EUROCONTROL. Performance groups of both organisations are committed to further harmonise the use of the KPIs as part of the bi-lateral and multi-lateral/international work.

The {ansperf} package implements the common KPIs and supporting metrics in R.

GANP KPIs

The performance framework of the GANP lists the following KPIs (c.f. https://www4.icao.int/ganpportal/ASBU/KPI) and whether {ansperf} has it implemented:

<style>#xzhuvhcdjp table { font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } #xzhuvhcdjp thead, #xzhuvhcdjp tbody, #xzhuvhcdjp tfoot, #xzhuvhcdjp tr, #xzhuvhcdjp td, #xzhuvhcdjp th { border-style: none; } #xzhuvhcdjp p { margin: 0; padding: 0; } #xzhuvhcdjp .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 16px; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; } #xzhuvhcdjp .gt_caption { padding-top: 4px; padding-bottom: 4px; } #xzhuvhcdjp .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; } #xzhuvhcdjp .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; } #xzhuvhcdjp .gt_heading { background-color: #FFFFFF; text-align: center; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; } #xzhuvhcdjp .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; } #xzhuvhcdjp .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; } #xzhuvhcdjp .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 6px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; } #xzhuvhcdjp .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; } #xzhuvhcdjp .gt_column_spanner_outer:first-child { padding-left: 0; } #xzhuvhcdjp .gt_column_spanner_outer:last-child { padding-right: 0; } #xzhuvhcdjp .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; } #xzhuvhcdjp .gt_spanner_row { border-bottom-style: hidden; } #xzhuvhcdjp .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; } #xzhuvhcdjp .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; } #xzhuvhcdjp .gt_from_md > :first-child { margin-top: 0; } #xzhuvhcdjp .gt_from_md > :last-child { margin-bottom: 0; } #xzhuvhcdjp .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; } #xzhuvhcdjp .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; } #xzhuvhcdjp .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; } #xzhuvhcdjp .gt_row_group_first td { border-top-width: 2px; } #xzhuvhcdjp .gt_row_group_first th { border-top-width: 2px; } #xzhuvhcdjp .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; } #xzhuvhcdjp .gt_first_summary_row { border-top-style: solid; border-top-color: #D3D3D3; } #xzhuvhcdjp .gt_first_summary_row.thick { border-top-width: 2px; } #xzhuvhcdjp .gt_last_summary_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; } #xzhuvhcdjp .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; } #xzhuvhcdjp .gt_first_grand_summary_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; } #xzhuvhcdjp .gt_last_grand_summary_row_top { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; } #xzhuvhcdjp .gt_striped { background-color: rgba(128, 128, 128, 0.05); } #xzhuvhcdjp .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; } #xzhuvhcdjp .gt_footnotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; } #xzhuvhcdjp .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; } #xzhuvhcdjp .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; } #xzhuvhcdjp .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; } #xzhuvhcdjp .gt_left { text-align: left; } #xzhuvhcdjp .gt_center { text-align: center; } #xzhuvhcdjp .gt_right { text-align: right; font-variant-numeric: tabular-nums; } #xzhuvhcdjp .gt_font_normal { font-weight: normal; } #xzhuvhcdjp .gt_font_bold { font-weight: bold; } #xzhuvhcdjp .gt_font_italic { font-style: italic; } #xzhuvhcdjp .gt_super { font-size: 65%; } #xzhuvhcdjp .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; } #xzhuvhcdjp .gt_asterisk { font-size: 100%; vertical-align: 0; } #xzhuvhcdjp .gt_indent_1 { text-indent: 5px; } #xzhuvhcdjp .gt_indent_2 { text-indent: 10px; } #xzhuvhcdjp .gt_indent_3 { text-indent: 15px; } #xzhuvhcdjp .gt_indent_4 { text-indent: 20px; } #xzhuvhcdjp .gt_indent_5 { text-indent: 25px; } </style>
KPI  name data-basic data-advanced ...5 ...6
data-type flight data ATFM data meta-data trajectory data
SYS system characterisation as required
FLT flight related data ADEP, ADES
KPI01  departure punctuality STD/SOBT, AOBT
KPI02  additional taxi-out time  AOBT, ATOT, RWY, STND
KPI03  ATFM slot adherence  ATOT CTOT
KPI04  filed flight plan route extension  X (flight plan)
KPI05  actual en-route extension  X (actual flown traj)
KPI06  en-route airspace capacity  decl. cap. per sector/FIR  
KPI07  en-route ATFM delay  ETOT, CTOT sector/FIR assoc.
KPI08  add. time in terminal airspace  ALDT, RWY, TYPE 40/100NM pos. & time
KPI09  airport peak arrival capacity  (max) arrival rates
KPI10  airport peak arrival throughput  ALDT
KPI11  airport arrival capacity utilisation  ALDT, ELDT arrival capacity
KPI12  airport/terminal ATFM delay  ETOT, CTOT airport/TMA assoc.
KPI13  additional taxi-in time  ALDT, AIBT, RWY, STND
KPI14  arrival punctuality  STA/SIBT, AIBT
KPI15  flight time variability  AOBT, ATOT, ALDT, AIBT 
KPI16  additional fuel burn  based on KPI02, KPI13, KPI05, KPI08  fuel burn per flight phase or fuel flow/burn data 
KPI17  level-off during climb  Level segments within 200NM 
KPI18  level capping during cruise  Plan: Max (RFL) last plan, Actual: max cruise FL ; Ref city pair FL  
KPI19  level-off during descent  Level segments within 200NM 
KPI20 number of aircraft accidents safety reporting
KPI21 number of runway incursions safety reporting
KPI22 number of runway excursions safety reporting
KPI23 Number of airprox/TCAS alert/loss of separation safety reporting

Installation

You can install the development version of ansperf from GitHub with:

# install.packages("devtools")
devtools::install_github("euctrl-pru/ansperf")

Example

This is a basic example which shows you how to solve a common problem:

library(ansperf)
## basic example code

About

R package for the international performance benchmarking work. Developed as part of the bi-regional projects.

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages