Crowdsourced air traffic data from The OpenSky Network 2020

“The data in this dataset is derived and cleaned from the full OpenSky dataset to illustrate the development of air traffic during the COVID-19 pandemic. It spans all flights seen by the network’s more than 2500 members since 1 January 2019. More data will be periodically included in the dataset until the end of the COVID-19 pandemic”.

Source: https://zenodo.org/record/5092942#.YRBCyTpRXYd

Martin Strohmeier, Xavier Olive, Jannis Lübbe, Matthias Schäfer, and Vincent Lenders
“Crowdsourced air traffic data from the OpenSky Network 2019–2020”
Earth System Science Data 13(2), 2021
https://doi.org/10.5194/essd-13-357-2021

Download the Dataset

Run the command:

  1. wget -O- https://zenodo.org/record/5092942 | grep -oP 'https://zenodo.org/record/5092942/files/flightlist_\d+_\d+\.csv\.gz' | xargs wget

Download will take about 2 minutes with good internet connection. There are 30 files with total size of 4.3 GB.

Create the Table

  1. CREATE TABLE opensky
  2. (
  3. callsign String,
  4. number String,
  5. icao24 String,
  6. registration String,
  7. typecode String,
  8. origin String,
  9. destination String,
  10. firstseen DateTime,
  11. lastseen DateTime,
  12. day DateTime,
  13. latitude_1 Float64,
  14. longitude_1 Float64,
  15. altitude_1 Float64,
  16. latitude_2 Float64,
  17. longitude_2 Float64,
  18. altitude_2 Float64
  19. ) ENGINE = MergeTree ORDER BY (origin, destination, callsign);

Import Data

Upload data into ClickHouse in parallel:

  1. ls -1 flightlist_*.csv.gz | xargs -P100 -I{} bash -c 'gzip -c -d "{}" | clickhouse-client --date_time_input_format best_effort --query "INSERT INTO opensky FORMAT CSVWithNames"'
  • Here we pass the list of files (ls -1 flightlist_*.csv.gz) to xargs for parallel processing.
    xargs -P100 specifies to use up to 100 parallel workers but as we only have 30 files, the number of workers will be only 30.
  • For every file, xargs will run a script with bash -c. The script has substitution in form of {} and the xargs command will substitute the filename to it (we have asked it for xargs with -I{}).
  • The script will decompress the file (gzip -c -d "{}") to standard output (-c parameter) and the output is redirected to clickhouse-client.
  • We also asked to parse DateTime fields with extended parser (--date_time_input_format best_effort) to recognize ISO-8601 format with timezone offsets.

Finally, clickhouse-client will do insertion. It will read input data in CSVWithNames format.

Parallel upload takes 24 seconds.

If you don’t like parallel upload, here is sequential variant:

  1. for file in flightlist_*.csv.gz; do gzip -c -d "$file" | clickhouse-client --date_time_input_format best_effort --query "INSERT INTO opensky FORMAT CSVWithNames"; done

Validate the Data

Query:

  1. SELECT count() FROM opensky;

Result:

  1. ┌──count()─┐
  2. 66010819
  3. └──────────┘

The size of dataset in ClickHouse is just 2.66 GiB, check it.

Query:

  1. SELECT formatReadableSize(total_bytes) FROM system.tables WHERE name = 'opensky';

Result:

  1. ┌─formatReadableSize(total_bytes)─┐
  2. 2.66 GiB
  3. └─────────────────────────────────┘

Run Some Queries

Total distance travelled is 68 billion kilometers.

Query:

  1. SELECT formatReadableQuantity(sum(geoDistance(longitude_1, latitude_1, longitude_2, latitude_2)) / 1000) FROM opensky;

Result:

  1. ┌─formatReadableQuantity(divide(sum(geoDistance(longitude_1, latitude_1, longitude_2, latitude_2)), 1000))─┐
  2. 68.72 billion
  3. └──────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Average flight distance is around 1000 km.

Query:

  1. SELECT avg(geoDistance(longitude_1, latitude_1, longitude_2, latitude_2)) FROM opensky;

Result:

  1. ┌─avg(geoDistance(longitude_1, latitude_1, longitude_2, latitude_2))─┐
  2. 1041090.6465708319
  3. └────────────────────────────────────────────────────────────────────┘

Most busy origin airports and the average distance seen

Query:

  1. SELECT
  2. origin,
  3. count(),
  4. round(avg(geoDistance(longitude_1, latitude_1, longitude_2, latitude_2))) AS distance,
  5. bar(distance, 0, 10000000, 100) AS bar
  6. FROM opensky
  7. WHERE origin != ''
  8. GROUP BY origin
  9. ORDER BY count() DESC
  10. LIMIT 100;

Result:

  1. ┌─origin─┬─count()─┬─distance─┬─bar────────────────────────────────────┐
  2. 1. KORD 745007 1546108 ███████████████▍
  3. 2. KDFW 696702 1358721 █████████████▌
  4. 3. KATL 667286 1169661 ███████████▋
  5. 4. KDEN 582709 1287742 ████████████▊
  6. 5. KLAX 581952 2628393 ██████████████████████████▎
  7. 6. KLAS 447789 1336967 █████████████▎
  8. 7. KPHX 428558 1345635 █████████████▍
  9. 8. KSEA 412592 1757317 █████████████████▌
  10. 9. KCLT 404612 880355 ████████▋
  11. 10. VIDP 363074 1445052 ██████████████▍
  12. 11. EDDF 362643 2263960 ██████████████████████▋
  13. 12. KSFO 361869 2445732 ████████████████████████▍
  14. 13. KJFK 349232 2996550 █████████████████████████████▊
  15. 14. KMSP 346010 1287328 ████████████▋
  16. 15. LFPG 344748 2206203 ██████████████████████
  17. 16. EGLL 341370 3216593 ████████████████████████████████▏
  18. 17. EHAM 340272 2116425 █████████████████████▏
  19. 18. KEWR 337696 1826545 ██████████████████▎
  20. 19. KPHL 320762 1291761 ████████████▊
  21. 20. OMDB 308855 2855706 ████████████████████████████▌
  22. 21. UUEE 307098 1555122 ███████████████▌
  23. 22. KBOS 304416 1621675 ████████████████▏
  24. 23. LEMD 291787 1695097 ████████████████▊
  25. 24. YSSY 272979 1875298 ██████████████████▋
  26. 25. KMIA 265121 1923542 ███████████████████▏
  27. 26. ZGSZ 263497 745086 ███████▍
  28. 27. EDDM 256691 1361453 █████████████▌
  29. 28. WMKK 254264 1626688 ████████████████▎
  30. 29. CYYZ 251192 2175026 █████████████████████▋
  31. 30. KLGA 248699 1106935 ███████████
  32. 31. VHHH 248473 3457658 ██████████████████████████████████▌
  33. 32. RJTT 243477 1272744 ████████████▋
  34. 33. KBWI 241440 1187060 ███████████▋
  35. 34. KIAD 239558 1683485 ████████████████▋
  36. 35. KIAH 234202 1538335 ███████████████▍
  37. 36. KFLL 223447 1464410 ██████████████▋
  38. 37. KDAL 212055 1082339 ██████████▋
  39. 38. KDCA 207883 1013359 ██████████▏
  40. 39. LIRF 207047 1427965 ██████████████▎
  41. 40. PANC 206007 2525359 █████████████████████████▎
  42. 41. LTFJ 205415 860470 ████████▌
  43. 42. KDTW 204020 1106716 ███████████
  44. 43. VABB 201679 1300865 █████████████
  45. 44. OTHH 200797 3759544 █████████████████████████████████████▌
  46. 45. KMDW 200796 1232551 ████████████▎
  47. 46. KSAN 198003 1495195 ██████████████▊
  48. 47. KPDX 197760 1269230 ████████████▋
  49. 48. SBGR 197624 2041697 ████████████████████▍
  50. 49. VOBL 189011 1040180 ██████████▍
  51. 50. LEBL 188956 1283190 ████████████▋
  52. 51. YBBN 188011 1253405 ████████████▌
  53. 52. LSZH 187934 1572029 ███████████████▋
  54. 53. YMML 187643 1870076 ██████████████████▋
  55. 54. RCTP 184466 2773976 ███████████████████████████▋
  56. 55. KSNA 180045 778484 ███████▋
  57. 56. EGKK 176420 1694770 ████████████████▊
  58. 57. LOWW 176191 1274833 ████████████▋
  59. 58. UUDD 176099 1368226 █████████████▋
  60. 59. RKSI 173466 3079026 ██████████████████████████████▋
  61. 60. EKCH 172128 1229895 ████████████▎
  62. 61. KOAK 171119 1114447 ███████████▏
  63. 62. RPLL 170122 1440735 ██████████████▍
  64. 63. KRDU 167001 830521 ████████▎
  65. 64. KAUS 164524 1256198 ████████████▌
  66. 65. KBNA 163242 1022726 ██████████▏
  67. 66. KSDF 162655 1380867 █████████████▋
  68. 67. ENGM 160732 910108 █████████
  69. 68. LIMC 160696 1564620 ███████████████▋
  70. 69. KSJC 159278 1081125 ██████████▋
  71. 70. KSTL 157984 1026699 ██████████▎
  72. 71. UUWW 156811 1261155 ████████████▌
  73. 72. KIND 153929 987944 █████████▊
  74. 73. ESSA 153390 1203439 ████████████
  75. 74. KMCO 153351 1508657 ███████████████
  76. 75. KDVT 152895 74048
  77. 76. VTBS 152645 2255591 ██████████████████████▌
  78. 77. CYVR 149574 2027413 ████████████████████▎
  79. 78. EIDW 148723 1503985 ███████████████
  80. 79. LFPO 143277 1152964 ███████████▌
  81. 80. EGSS 140830 1348183 █████████████▍
  82. 81. KAPA 140776 420441 ████▏
  83. 82. KHOU 138985 1068806 ██████████▋
  84. 83. KTPA 138033 1338223 █████████████▍
  85. 84. KFFZ 137333 55397
  86. 85. NZAA 136092 1581264 ███████████████▋
  87. 86. YPPH 133916 1271550 ████████████▋
  88. 87. RJBB 133522 1805623 ██████████████████
  89. 88. EDDL 133018 1265919 ████████████▋
  90. 89. ULLI 130501 1197108 ███████████▊
  91. 90. KIWA 127195 250876 ██▌
  92. 91. KTEB 126969 1189414 ███████████▊
  93. 92. VOMM 125616 1127757 ███████████▎
  94. 93. LSGG 123998 1049101 ██████████▍
  95. 94. LPPT 122733 1779187 █████████████████▋
  96. 95. WSSS 120493 3264122 ████████████████████████████████▋
  97. 96. EBBR 118539 1579939 ███████████████▋
  98. 97. VTBD 118107 661627 ██████▌
  99. 98. KVNY 116326 692960 ██████▊
  100. 99. EDDT 115122 941740 █████████▍
  101. 100. EFHK 114860 1629143 ████████████████▎
  102. └────────┴─────────┴──────────┴────────────────────────────────────────┘

Number of flights from three major Moscow airports, weekly

Query:

  1. SELECT
  2. toMonday(day) AS k,
  3. count() AS c,
  4. bar(c, 0, 10000, 100) AS bar
  5. FROM opensky
  6. WHERE origin IN ('UUEE', 'UUDD', 'UUWW')
  7. GROUP BY k
  8. ORDER BY k ASC;

Result:

  1. ┌──────────k─┬────c─┬─bar──────────────────────────────────────────────────────────────────────────┐
  2. 1. 2018-12-31 5248 ████████████████████████████████████████████████████▍
  3. 2. 2019-01-07 6302 ███████████████████████████████████████████████████████████████
  4. 3. 2019-01-14 5701 █████████████████████████████████████████████████████████
  5. 4. 2019-01-21 5638 ████████████████████████████████████████████████████████▍
  6. 5. 2019-01-28 5731 █████████████████████████████████████████████████████████▎
  7. 6. 2019-02-04 5683 ████████████████████████████████████████████████████████▋
  8. 7. 2019-02-11 5759 █████████████████████████████████████████████████████████▌
  9. 8. 2019-02-18 5736 █████████████████████████████████████████████████████████▎
  10. 9. 2019-02-25 5873 ██████████████████████████████████████████████████████████▋
  11. 10. 2019-03-04 5965 ███████████████████████████████████████████████████████████▋
  12. 11. 2019-03-11 5900 ███████████████████████████████████████████████████████████
  13. 12. 2019-03-18 5823 ██████████████████████████████████████████████████████████▏
  14. 13. 2019-03-25 5899 ██████████████████████████████████████████████████████████▊
  15. 14. 2019-04-01 6043 ████████████████████████████████████████████████████████████▍
  16. 15. 2019-04-08 6098 ████████████████████████████████████████████████████████████▊
  17. 16. 2019-04-15 6196 █████████████████████████████████████████████████████████████▊
  18. 17. 2019-04-22 6486 ████████████████████████████████████████████████████████████████▋
  19. 18. 2019-04-29 6682 ██████████████████████████████████████████████████████████████████▋
  20. 19. 2019-05-06 6739 ███████████████████████████████████████████████████████████████████▍
  21. 20. 2019-05-13 6600 ██████████████████████████████████████████████████████████████████
  22. 21. 2019-05-20 6575 █████████████████████████████████████████████████████████████████▋
  23. 22. 2019-05-27 6786 ███████████████████████████████████████████████████████████████████▋
  24. 23. 2019-06-03 6872 ████████████████████████████████████████████████████████████████████▋
  25. 24. 2019-06-10 7045 ██████████████████████████████████████████████████████████████████████▍
  26. 25. 2019-06-17 7045 ██████████████████████████████████████████████████████████████████████▍
  27. 26. 2019-06-24 6852 ████████████████████████████████████████████████████████████████████▌
  28. 27. 2019-07-01 7248 ████████████████████████████████████████████████████████████████████████▍
  29. 28. 2019-07-08 7284 ████████████████████████████████████████████████████████████████████████▋
  30. 29. 2019-07-15 7142 ███████████████████████████████████████████████████████████████████████▍
  31. 30. 2019-07-22 7108 ███████████████████████████████████████████████████████████████████████
  32. 31. 2019-07-29 7251 ████████████████████████████████████████████████████████████████████████▌
  33. 32. 2019-08-05 7403 ██████████████████████████████████████████████████████████████████████████
  34. 33. 2019-08-12 7457 ██████████████████████████████████████████████████████████████████████████▌
  35. 34. 2019-08-19 7502 ███████████████████████████████████████████████████████████████████████████
  36. 35. 2019-08-26 7540 ███████████████████████████████████████████████████████████████████████████▍
  37. 36. 2019-09-02 7237 ████████████████████████████████████████████████████████████████████████▎
  38. 37. 2019-09-09 7328 █████████████████████████████████████████████████████████████████████████▎
  39. 38. 2019-09-16 5566 ███████████████████████████████████████████████████████▋
  40. 39. 2019-09-23 7049 ██████████████████████████████████████████████████████████████████████▍
  41. 40. 2019-09-30 6880 ████████████████████████████████████████████████████████████████████▋
  42. 41. 2019-10-07 6518 █████████████████████████████████████████████████████████████████▏
  43. 42. 2019-10-14 6688 ██████████████████████████████████████████████████████████████████▊
  44. 43. 2019-10-21 6667 ██████████████████████████████████████████████████████████████████▋
  45. 44. 2019-10-28 6303 ███████████████████████████████████████████████████████████████
  46. 45. 2019-11-04 6298 ██████████████████████████████████████████████████████████████▊
  47. 46. 2019-11-11 6137 █████████████████████████████████████████████████████████████▎
  48. 47. 2019-11-18 6051 ████████████████████████████████████████████████████████████▌
  49. 48. 2019-11-25 5820 ██████████████████████████████████████████████████████████▏
  50. 49. 2019-12-02 5942 ███████████████████████████████████████████████████████████▍
  51. 50. 2019-12-09 4891 ████████████████████████████████████████████████▊
  52. 51. 2019-12-16 5682 ████████████████████████████████████████████████████████▋
  53. 52. 2019-12-23 6111 █████████████████████████████████████████████████████████████
  54. 53. 2019-12-30 5870 ██████████████████████████████████████████████████████████▋
  55. 54. 2020-01-06 5953 ███████████████████████████████████████████████████████████▌
  56. 55. 2020-01-13 5698 ████████████████████████████████████████████████████████▊
  57. 56. 2020-01-20 5339 █████████████████████████████████████████████████████▍
  58. 57. 2020-01-27 5566 ███████████████████████████████████████████████████████▋
  59. 58. 2020-02-03 5801 ██████████████████████████████████████████████████████████
  60. 59. 2020-02-10 5692 ████████████████████████████████████████████████████████▊
  61. 60. 2020-02-17 5912 ███████████████████████████████████████████████████████████
  62. 61. 2020-02-24 6031 ████████████████████████████████████████████████████████████▎
  63. 62. 2020-03-02 6105 █████████████████████████████████████████████████████████████
  64. 63. 2020-03-09 5823 ██████████████████████████████████████████████████████████▏
  65. 64. 2020-03-16 4659 ██████████████████████████████████████████████▌
  66. 65. 2020-03-23 3720 █████████████████████████████████████▏
  67. 66. 2020-03-30 1720 █████████████████▏
  68. 67. 2020-04-06 849 ████████▍
  69. 68. 2020-04-13 710 ███████
  70. 69. 2020-04-20 725 ███████▏
  71. 70. 2020-04-27 920 █████████▏
  72. 71. 2020-05-04 859 ████████▌
  73. 72. 2020-05-11 1047 ██████████▍
  74. 73. 2020-05-18 1135 ███████████▎
  75. 74. 2020-05-25 1266 ████████████▋
  76. 75. 2020-06-01 1793 █████████████████▊
  77. 76. 2020-06-08 1979 ███████████████████▋
  78. 77. 2020-06-15 2297 ██████████████████████▊
  79. 78. 2020-06-22 2788 ███████████████████████████▊
  80. 79. 2020-06-29 3389 █████████████████████████████████▊
  81. 80. 2020-07-06 3545 ███████████████████████████████████▍
  82. 81. 2020-07-13 3569 ███████████████████████████████████▋
  83. 82. 2020-07-20 3784 █████████████████████████████████████▋
  84. 83. 2020-07-27 3960 ███████████████████████████████████████▌
  85. 84. 2020-08-03 4323 ███████████████████████████████████████████▏
  86. 85. 2020-08-10 4581 █████████████████████████████████████████████▋
  87. 86. 2020-08-17 4791 ███████████████████████████████████████████████▊
  88. 87. 2020-08-24 4928 █████████████████████████████████████████████████▎
  89. 88. 2020-08-31 4687 ██████████████████████████████████████████████▋
  90. 89. 2020-09-07 4643 ██████████████████████████████████████████████▍
  91. 90. 2020-09-14 4594 █████████████████████████████████████████████▊
  92. 91. 2020-09-21 4478 ████████████████████████████████████████████▋
  93. 92. 2020-09-28 4382 ███████████████████████████████████████████▋
  94. 93. 2020-10-05 4261 ██████████████████████████████████████████▌
  95. 94. 2020-10-12 4243 ██████████████████████████████████████████▍
  96. 95. 2020-10-19 3941 ███████████████████████████████████████▍
  97. 96. 2020-10-26 3616 ████████████████████████████████████▏
  98. 97. 2020-11-02 3586 ███████████████████████████████████▋
  99. 98. 2020-11-09 3403 ██████████████████████████████████
  100. 99. 2020-11-16 3336 █████████████████████████████████▎
  101. 100. 2020-11-23 3230 ████████████████████████████████▎
  102. 101. 2020-11-30 3183 ███████████████████████████████▋
  103. 102. 2020-12-07 3285 ████████████████████████████████▋
  104. 103. 2020-12-14 3367 █████████████████████████████████▋
  105. 104. 2020-12-21 3748 █████████████████████████████████████▍
  106. 105. 2020-12-28 3986 ███████████████████████████████████████▋
  107. 106. 2021-01-04 3906 ███████████████████████████████████████
  108. 107. 2021-01-11 3425 ██████████████████████████████████▎
  109. 108. 2021-01-18 3144 ███████████████████████████████▍
  110. 109. 2021-01-25 3115 ███████████████████████████████▏
  111. 110. 2021-02-01 3285 ████████████████████████████████▋
  112. 111. 2021-02-08 3321 █████████████████████████████████▏
  113. 112. 2021-02-15 3475 ██████████████████████████████████▋
  114. 113. 2021-02-22 3549 ███████████████████████████████████▍
  115. 114. 2021-03-01 3755 █████████████████████████████████████▌
  116. 115. 2021-03-08 3080 ██████████████████████████████▋
  117. 116. 2021-03-15 3789 █████████████████████████████████████▊
  118. 117. 2021-03-22 3804 ██████████████████████████████████████
  119. 118. 2021-03-29 4238 ██████████████████████████████████████████▍
  120. 119. 2021-04-05 4307 ███████████████████████████████████████████
  121. 120. 2021-04-12 4225 ██████████████████████████████████████████▎
  122. 121. 2021-04-19 4391 ███████████████████████████████████████████▊
  123. 122. 2021-04-26 4868 ████████████████████████████████████████████████▋
  124. 123. 2021-05-03 4977 █████████████████████████████████████████████████▋
  125. 124. 2021-05-10 5164 ███████████████████████████████████████████████████▋
  126. 125. 2021-05-17 4986 █████████████████████████████████████████████████▋
  127. 126. 2021-05-24 5024 ██████████████████████████████████████████████████▏
  128. 127. 2021-05-31 4824 ████████████████████████████████████████████████▏
  129. 128. 2021-06-07 5652 ████████████████████████████████████████████████████████▌
  130. 129. 2021-06-14 5613 ████████████████████████████████████████████████████████▏
  131. 130. 2021-06-21 6061 ████████████████████████████████████████████████████████████▌
  132. 131. 2021-06-28 2554 █████████████████████████▌
  133. └────────────┴──────┴──────────────────────────────────────────────────────────────────────────────┘

Online Playground

You can test other queries to this data set using the interactive resource Online Playground. For example, like this. However, please note that you cannot create temporary tables here.