项目作者: Collen-Roller

项目描述 :
Aircraft Registration Prefix Dataset
高级语言: Jupyter Notebook
项目地址: git://github.com/Collen-Roller/flydenity.git
创建时间: 2019-01-30T17:53:07Z
项目社区:https://github.com/Collen-Roller/flydenity

开源协议:MIT License

下载




Flydenity

" class="reference-link">
Flydenity

GitHub Super-Linter
PyPI version
made-with-python
PyPI license
PyPI pyversions
PyPI download month

Flydenity - Aircraft Identification Library

Flydenity is a callsign identification library to help match tail numbers or
callsigns to origin nations. The library is a python wrapper on top of a curated
dataset containing a set of regular expressions generated from the
International Telecommunications Union (ITU) International Call Sign prefixes.
The registration codes in this dataset are separated by country post The Paris
Convention in 1929. The database also contains a description of each codeset
with 2 and 3 letter ISO country codes following the ISO-3166 standard.

Installation

Flydenity is on PyPi, simply install it with PIP

  1. pip3 install flydenity

Running the library

To run, you can simply include it in your python library using the following

  1. >>> from flydenity import Parser
  2. >>> parser = Parser()
  3. >>> parser.parse("AF1234")
  4. {'nation': 'United States', 'description': 'general', 'iso2': 'US', 'iso3': 'USA'}

You can also run it from the command line (multiple arguments allowed)

  1. $ python -m flydenity AF1234 D-1234
  2. {'AF1234': {'nation': 'United States', 'description': 'general', 'iso2': 'US', 'iso3': 'USA'},
  3. 'D-1234': {'nation': 'Germany', 'description': 'gliders', 'iso2': 'DE', 'iso3': 'DEU'}}

Stats

In total, the dataset contains a total of 408 unique regular expressions to
describe aircraft tail numbers across 217 unique countries.

Using the Data

Of course, everyone has a programming language of choice. Mine for this effort
was Python. I’ve including a wrapper class classed “ARP” which you can use to
parse through the expressions.

Maritime

Since the ITU International Call Sign prefexies are universal across Aircraft
and Maritime Call Signs, we include functions within out API to parse Maritime
Call Signs as well.

Testing

To evaluate how well the regular expressions work, we extracted unique tail
numbers from a years worth of air traffic from FlightRadar24.com In total,
we evaluated over 250k unique tail numbers against the regular expressions
to minimize duplicate tags. In total, the parser was around 98% accurate in
matching tail numbers to a specific country. Of course this could be
improved, but that’s why this library is open-source :)

Registration Numbers

All data was collected using open sources across the web, specifically using
the links below.

Country Codes Extracted From

Datasets

I constructed two datasets (as of right now) for this effort.

  1. processed_itu_countries_regex.csv
  2. processed_itu_organizations_regex.csv

Countries, Regions or Territories with No Standard

Compared to country list at https://countrycode.org, there are a total of that are not included

Some of these countries or regions could have a standard that is not within
this database. Please update the list if you make changes.

  • Aland Islands (AX)
  • American Samoa (AS)
  • Antarctica(AQ)
  • Bouvet Island (BV)
  • British Indian Ocean Territory (IO)
  • Christmas Island (CX)
  • Cocos (Keeling) Islands (CC)
  • Curacao (CW)
  • French Guiana (GF)
  • French Southern Territories (TF)
  • Guadeloupe (GP)
  • Guam (GU)
  • Heard and Mcdonald Islands (HM)
  • Jersey (JE)
  • Martinique (MQ)
  • Mayotte (YT)
  • New Caledonia (NC)
  • Niue (NU)
  • Norfolk Island (NF)
  • Northern Mariana Islands (MP)
  • Pitcairn (PN)
  • Puerto Rico (PR)
  • Saint-Barthélemy (BL)
  • Saint Martin (MF)
  • Saint Pierre and Miquelon (PM)
  • South Georgia and the South Sandwich Islands (GS)
  • Svalbard and Jan Mayen Islands (SJ)
  • Tokelau (TK)
  • U.S. Outlying Islands (UM)
  • U.S. Virgin Islands (VI)
  • Wallis and Futuna (WF)
  • Western Sahara (EH)

Contact

Collen Roller
collen.roller@gmail dot com