GithubHelp home page GithubHelp logo

opentraveldata / opentraveldata Goto Github PK

View Code? Open in Web Editor NEW
231.0 31.0 98.0 1.52 GB

Collection of open data related to (at least) travel, transport, tourism

Home Page: https://opentraveldata.github.io/opentraveldata/

Shell 28.98% Awk 38.00% HTML 1.90% JavaScript 1.98% Perl 4.45% Makefile 0.06% C++ 9.65% Python 13.92% ActionScript 0.36% PHP 0.24% TSQL 0.44%

opentraveldata's Introduction

Build Status

Overview

Open Travel Data (OPTD) provides a collection of transport, travel and leisure related data. The project makes extensive use of already existing data sources such as Geonames and Wikipedia, and adds some glue around those (e.g. links).

All data sets are as carefully maintained as possible, and kept up-to-date by the OPTD team, which we would be glad to welcome you on!

Flat/data files are used with hat (^) separated columns, so that it should be easy to use with your own tools of choice.

Directory structure

  • All the data sets, which are directly curated and maintained by OPTD, are located in the opentraveldata directory.
  • The data directory contains a sub-directory per collected data source. For instance, the data/unlocode directory contains data snapshots from UN/LOCODE. See the README file in that directory for more details. In all the cases, those data are collected legally, either directly from a download service, when it exists, or through public web screen-scraping methods when required.
  • Some usage examples can be found in the examples directory.
  • The tools directory contains scripts, which are used to generate the data sets.
  • .travis contains continuous integration (CI) related code.

GeoBases

GeoBases is a good addition to OPTD, offering easy-to-use data manipulation and visualization Python-based tools and API, on top of OPTD curated data files.

OpenTREP

OpenTREP is a C++-based transport related full-text search library, with Python bindings, powering the Travel Search Web application. That Web application also gets its own Wikipedia template, so as to ease its use on that world wide encyclopedia.

The full stack of that Web application is open, from the data sources up to the front-end source code, through the back-end Python and C++ libraries. So, do not hesitate to contribute, for instance just for the fun of it.

Data Quality

An independent Quality Assurance (QA) project aims at monitoring the quality of data provide by OPTD. There is still some work to be done in order to automate most of the steps, though.

Legacy

This is the master repository of the Open Travel Data (OPTD) project. For backwards compatibility reasons, all changes are synchronized back to the old repository.

Licensing

The data curated and/or generated by the OPTD project are governed by the CC-BY license.

With OPTD own generated/curated data, you are free to

  • Share — copy and redistribute the material in any medium or format
  • Adapt — remix, transform, and build upon the material for any purpose, even commercially.

This license is acceptable for Free Cultural Works. The licensor cannot revoke these freedoms as long as you follow the license terms.

Under the following terms

  • Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.

Non OPTD maintained data

For the data in the data directory, you should check directly with the corresponding data producer. In no way OPTD endorses you to use, remix, transform or build upon those data sources.

Contributions

Any contribution or feedback is welcome!

Please do not hesitate to open an issue request or to suggest enhancement through pull request (PR)!

If you notice something missing, like Laudamotion airline (OE) at some point, you can just step up, and we will try to fix what is wrong.

You can also become a regular contributor: just create a GitHub account and we will enlist you right away! That is the surest way for you to know that you will always be best served (by yourself) and receive our eternal gratefulness :)

OpenTravelData aims at being useful to the human kind, no more, no less. Anyone is welcome to contribute to make our world a better place. Knowledge is key, essential to preserve our freedom. We are happy that you read so far, thanks!

opentraveldata's People

Contributors

1ajeremiemontiel avatar alexprengere avatar andk avatar aseredyn avatar bat-cha avatar benct avatar beovulfo avatar cfuentesgrobas avatar chmduquesne avatar comtef avatar da115115 avatar datavizdude avatar dchoe avatar dependabot[bot] avatar juliencojan avatar lnaejus avatar meriemelqsimi avatar nickoas avatar ogarbe avatar opentraveldata-bot avatar pauldeschacht avatar pgrandjean avatar sahilkulria002 avatar seoker avatar steve-z avatar thepermanenturl avatar trothe avatar wasserfuhr avatar wsteitz avatar wuarmin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opentraveldata's Issues

POR with potential state code issue

The service-delivery-quality/quality-assurance/samples/opentraveldata/check-por-cmp-optd-it.py script provides a lot of cases to be investigated, in which the OPTD-maintained state code is not consistent with the IATA one. That may be an issue of state code, or even of the POR itself.

The full details are available in http://gist.github.com/denisarnaud/cf54f9e17de293cda8e25065bd887023

Several OPTD-maintained files may need to be amended:

How is page_rank calculated (and why does CFN have a page rank but LDY does not)?

We're working to replace our old ORI number of movements data with page rank in our nearest relevant airport API

In general, we see improved results, but we also see some unwelcome regressions.

For example, I come from Letterkenny. My local nearby airports would be DUB, LDY, CFN, BFS, BHD. Today, the API returns these airports, but using the page rank data, LDY is not returned because it does not feature in the page rank. This is obviously incorrect, it has 10 times higher passenger traffic than nearby CFN which does feature in the page rank. (Despite not having many passengers, it is very beautiful!)

I can't figure out how the page rank is created

In /opentraveldata/ref_airport_pageranked.csv it says

PageRank values (http://en.wikipedia.org/wiki/PageRank) for the 4504 most important travel-related POR (points of reference).

but with no more info than that, /tools/README and in I see

PageRank derived from the flight schedules for a whole year

How do you determine which airports are page ranked, and what criteria are used? (Maybe the beauty of the airport? 😄 )

Empty city name lists

Currently every por of the optd_por_public.csv file has:

  • always a non-empty name field
  • always a non-empty city_code_list field

This is great! It means that such code never raises IndexError:

from GeoBases import GeoBase
g = GeoBase(data='ori_por', verbose=False)
g.get('ADJ', 'city_code_list')[0]

This is really nice because this is really frequent, as mentioned in this issue. But you would think that if every por has a non-empty name and a non-empty city_code_list:

  • it should always have a non-empty city_name_list
  • the city_code_list and city_name_list should have the same size

This is not currently the case.

I think the city_name_list should be a simple iteration of the field name for each element of the city_code_list. We could remove duplicates, when cities with same iata codes have different names, so city_name_list could actually be longer than city_code_list. Anyway, it should never be empty, and no IndexError should occur when attempting to access the name of the main city with g.get(por, 'city_name_list')[0].

I created a gist here logging all pors with empty city_name_list, 804 with the latest data. The output of the script is enclosed in the gist, otherwise the usage is simple:

$ python check_names.py
QPF with name Pompeia SP BR Off has city_code_list ('QPF',) and city_name_list ()
ZZL with name Larbaâ has city_code_list ('ZZL',) and city_name_list ()
XPC with name Port Canaveral has city_code_list ('XPC',) and city_name_list ()
ZVV with name Dutch Rail Zone 11 NL Off Line has city_code_list ('ZVV',) and city_name_list ()
...

Prefer current POR than retired ones

As of August 2017, a search for 'SAG' yields the retired Sagwon airport, Alaska (AK), United States (US) rather than the currently SAG-assigned airport, ie, Shirdi airport, India (IN). When the IATA code has been assigned to a newer POR, that latter should be retrieved from the search, rather than the retired POR.

A way to achieve that may be to slightly decrease the matching weight for retired POR (the ones with a strictly positive envelop ID), linearly with the envelop ID (that way, the older the POR, the least weight they have).

EWR and SWF city codes

In the latest revision of optd_por_public, SWF airport has the following city codes: ['SWF', 'NYC'], but EWR has ['NYC', 'EWR']. The order seems inconsistent here, IMO it would be better if both por had NYC as first city code.

multiple airports with the same IATA code active at the same time

Sometimes IATA airport codes are reused. But at any point in time, the IATA codes of active airports should be unique. Looking at optd_por_public.csv, this is currently not the case. The date_from/date_to dates seem to be incomplete.

These IATA codes can be detected with a python script: https://gist.github.com/wsteitz/0905c749b6b811e1df75

The output of the script:
MZA 1900-01-01 to 2012-09-01 and 1900-01-01 to 2999-12-31
YGS 1900-01-01 to 2013-09-01 and 1900-01-01 to 2013-09-01
MHC 1900-01-01 to 2012-01-01 and 1900-01-01 to 2999-12-31
NAT 1900-01-01 to 2014-06-01 and 1900-01-01 to 2999-12-31
SHO 1900-01-01 to 2012-12-14 and 1900-01-01 to 2999-12-31

PKL has disappeared from IATA website

PKL has disappeared from IATA website. Geonames has this as AIRP: http://www.geonames.org/8298860/pakatoa-island.html with iate=PKL, but latlong is very different from the island https://en.wikipedia.org/wiki/Pakatoa_Island (which has same latlong as the ISL http://www.geonames.org/2185067/pakatoa-island.html )

I'm not sure where to start, so I try it with an issue.

Maybe 8298860 needs to be moved to the same location as 2185067 and then the iata code removed?

Unknown timezones in latest optd_por_public

I checked the latest optd_por_public and we have a good number of por with invalid timezones. I ran the same script as last time to try to find relevant existing timezones for those:

KXD with tz "Europe/Russia" matches tz "Asia/Yekaterinburg" (dist 156.9km, "Kondinskoye RU" -> "Uray")
DUQ with tz "America/Canada" matches tz "America/Vancouver" (dist 0.2km, "Duncan BC CA" -> "Duncan")
RJM with tz "Asia/Indonesia" matches tz "Asia/Jayapura" (dist 74.3km, "Waisai ID Marinda" -> "Sorong")
NSA with tz "America/Brazil" matches tz "America/Fortaleza" (dist 4.4km, "Natal" -> "Natal")
NGF with tz "America/USA" matches tz "Pacific/Honolulu" (dist 5.7km, "Kaneohe Bay HI US Mcas" -> "Kailua")
HDQ with tz "" matches tz "Africa/Accra" (dist 577.0km, "Headquarters ZZ" -> "Takoradi")
LUF with tz "America/USA" matches tz "America/Phoenix" (dist 10.2km, "Phoenix" -> "El Mirage")
AXI with tz "Europe/Spain" matches tz "Europe/Madrid" (dist 0.8km, "Algeciras" -> "Algeciras")
TNQ with tz "Pacific/Kiribati" matches tz "Pacific/Honolulu" (dist 1765.1km, "Teraina KI" -> "Hilo")
JBU with tz "Europe/Spain" matches tz "Europe/Madrid" (dist 1.2km, "Santiago de Compostela" -> "Santiago de Compostela")
RAT with tz "Europe/Russia" matches tz "Asia/Magadan" (dist 287.4km, "Raduzhny RU" -> "Magadan")
EVO with tz "Europe/Spain" matches tz "Europe/Madrid" (dist 1.7km, "Estepona ES Bus Station" -> "Estepona")
SWM with tz "America/Brazil" matches tz "America/Sao_Paulo" (dist 224.8km, "Alto Boa Vista MT BR Suia Miss" -> "São Miguel do Araguaia")
UIZ with tz "America/USA" matches tz "America/New_York" (dist 1.4km, "Utica MI US Berz Macomb" -> "Utica")
TQQ with tz "Asia/Indonesia" matches tz "Asia/Makassar" (dist 180.5km, "Tomia ID Maranggo" -> "Katabu")
FOP with tz "America/USA" matches tz "America/New_York" (dist 8.5km, "Forest Park GA US Morris Aaf" -> "Evans")
GHK with tz "America/Canada" matches tz "America/Yellowknife" (dist 283.3km, "Kennedy Lake NT CA Gahcho Kue" -> "Yellowknife")
NNN with tz "" matches tz "Africa/Accra" (dist 577.0km, "Pseudo Message Dep ZZ" -> "Takoradi")
HKP with tz "America/USA" matches tz "Pacific/Honolulu" (dist 199.5km, "Kaanapali Maui HI US" -> "Kailua")
VBR with tz "Europe/Russia" matches tz "Europe/Moscow" (dist 0.9km, "Vyborg RU Railway Station" -> "Vyborg")
RVH with tz "Europe/Russia" matches tz "Europe/Moscow" (dist 5.4km, "Saint Petersburg" -> "Vsevolozhsk")
VVV with tz "" matches tz "Africa/Accra" (dist 577.0km, "Pseudo Message Arr ZZ" -> "Takoradi")
SZQ with tz "America/Argentina" matches tz "America/Argentina/Cordoba" (dist 3.7km, "Saenz Pena BA AR" -> "Presidencia Roque Sáenz Peña")
ZMD with tz "America/Brazil" matches tz "America/Rio_Branco" (dist 0.7km, "Sena Madureira AC BR" -> "Sena Madureira")
PZS with tz "America/Chili" matches tz "America/Santiago" (dist 4.3km, "Temuco" -> "Temuco")
BBE with tz "America/Argentina" matches tz "America/Montevideo" (dist 6.4km, "Buenos Aires" -> "Maldonado")
SMT with tz "America/Brazil" matches tz "America/Cuiaba" (dist 70.1km, "Sorriso MT BR" -> "Sinop")
ZUF with tz "Pacific/New_Zealand" matches tz "Pacific/Auckland" (dist 5.4km, "Mystery Explorer NZ" -> "Mangere")
GVW with tz "America/USA" matches tz "America/Chicago" (dist 0.3km, "Grandview MO US Richards Gebau" -> "Grandview")
ENZ with tz "Pacific/New_Zealand" matches tz "Pacific/Auckland" (dist 5.4km, "Mystery Break NZ Mystery Break" -> "Mangere")
CAT with tz "Atlantic/Portugal" matches tz "Europe/Lisbon" (dist 3.6km, "Cascais PT Tires" -> "São Domingos de Rana")
IAT with tz "" matches tz "America/Los_Angeles" (dist 160.2km, "Iata Traffic Serv ZZ" -> "Lompoc")
YWO with tz "America/Canada" matches tz "America/Yellowknife" (dist 397.4km, "Lupin NT CA Lupin" -> "Yellowknife")

Invalid timezones in latest data

The latest version of the data contains invalid timezones: NEI (Europe/Russia) and KJT (Asia/Indonesia).

The second part of the timezone is usually a city. The list of all timezones can be displayed with pytz:

$ python -c "import pytz; print('\n'.join(pytz.all_timezones))"
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
...

[POR] DNE - Dallas North Airport

On behalf of @dchoe

The DNE IATA code used to be associated to Dallas North Airport, which has apparently closed. Indeed:

  1. The IATA code search site, DNE yields no location today.
  2. wanderbat.com states: "The airport code DNE was assigned to Dallas North airport in Dallas/Fort Worth, TX by the United States Department of Transportation. Since airport codes can be reused, DOT also assigned the airport the ID #11355, which identifies a unique airport, and the sequence ID #1135501 which identifies a unique airport at a given point in time. Airport code started from 1990/03/01 and ended 2014/10/22”.
  3. airfields-freeman.com states that Dallas North Airport closed in 1991/1992. The runway is no longer visible, and houses are now appearing everywhere on top of the former field.

So DNE no longer designates an active airport.

On Geonames and hence on OPTD, DNE is mapped to a different airport, namely Hidden Valley Airpark, which is associated to “Dallas North Airport” via an alternative name.

Ambiguous Virgin Australia (VA) records in optd_airlines.csv

Hi Team,

Following are the records we get in airlines files for the Virgin Australia.

air-virgin-australia-int-v1^^2009-02-27^^VAU^VA^795^Virgin Australia International^V Australia^^^^http://en.wikipedia.org/wiki/V_Australia^^en|Virgin Australia International|=en|V Australia|^^air-virgin-australia-int^1
air-virgin-australia-regional-v1^^1963-01-01^^VOZ^VA^608^Virgin Australia Regional^SkyWest^^^^http://en.wikipedia.org/wiki/Virgin_Australia_Regional_Airlines^15638^en|Virgin Australia Regional|=en|SkyWest|^^air-virgin-australia-regional^1
air-virgin-australia-v1^^2000-08-31^^VOZ^VA^856^Virgin Australia^Virgin Blue^^^^http://en.wikipedia.org/wiki/Virgin_Australia^15638^en|Virgin Australia|=en|Virgin Blue|^^air-virgin-australia^1

The issue is that all the three records are valid for departure date after 2009-02-27. Due to the duplication of the IATA code ("VA" here), the schedule reconciliation process is ambiguous.

I am not sure If we can fix the data.

Regards,
Nishaj

Comparison between search logs and optd_por_public

Hi,
I wrote a script to analyze in search logs and see what requested airports/cities were not in optd_por_public.
Those may very well be typos (like the suspicious NRW), but some cases are more interesting. For example, FFC seems to be Atlanta Regional Airport, but has no IATA code attributed, "FFC" seems to be an identifier from the FAA.

Anyway, here is the list of codes I found more than once over a few million searches:

FFC JRC OPJ HEW KOB IBU NRW FBX XYV TJR NBK NRW AQH GWW HCS GCRE

I will try to investigate them, see if this method yields interesting results.

Duplicate city codes - which one is relevant?

I have noticed that in opentraveldata/optd_por_public.csv there are some duplicate IATA codes for the same location_type.

For example: AAJ is referenced twice, on lines 20 and 21, with different names. Both have location_type C(=city), but different GeoNames IDs. Nearly all of the remaining properties are the same.

Which one should I keep? Is there some way to help me determine which one to keep?

More widely, is there any way to filter the file so I can get a unique key based on IATA code + location_type + some other column?

dulicate entries in optd_por_public

There are some duplicate entries:
ZZZ^WRLE
SBD

In the SBD case, I am expecting two entries because it is contained in the "no longer valid" and in the "best known" file. But it just appears twice with the same geonames ID

WRLE is one of those ICAO-only airports. While it appears twice, another one from the "best known" file is missing.

optd_airlines.csv: Issue with following airlines (JU, FS)

Hi All,

JU
In the reference file we have one entry for 9U (Air Serbia) valid from 26th Sep 2013. Before this date (as per wiki) this airline was known as JAT airways. Is it possible to have an entry for that?

FS
This Iata code is mapped to two airlines Fly540 Angola (Valid from 1st Jan 2011 to 31st May 2014) and Syphax Airlines (Valid from 29th April 2012). As per the wiki (https://en.wikipedia.org/wiki/Fly540_Angola) Fly540 Angola's Iata code should have been "F5" instead of "FS". Can you please check the same? (I am not sure if my understanding is correct or not).

Thanks & Regards,
Nishaj

Add an 'abbr' field for Geonames ADM1 POR, where missing

A few countries (eg, US, CA, BR, IN, AU) have states with notorious abbreviations, though not normalized. The details of all those corresponding states are extracted and dumped into the opentraveldata/optd_country_states.csv file, thanks to the tools/extract_states.sh script. That latter works based on the abbr alternate name in Geonames administrative level 1 (ADM1) POR.

Procedure:

  • Run the tools/extract_states.sh script
  • Run git diff
  • For all the states (ie, administrative level 1 POR), in the corresponding optd_country_states.csv generated file, missing, or having an empty abbr field, add the abbr alternate name in the corresponding Geonames POR (http://geonames.org/GeonamesID)

[Airline] Controlled Duplicate handling

Often, Controlled Duplicate airlines are identifiable via their geographical separation among other criteria. An example is shown below:
fc_vcc_airlines
In the example, the FC in Innovata from 2016 is Fly Corporate (or Vee H Aviation) which covers Region 5 while FC in OAG for the same time period is Viva Colombia covering Region 2. Hence, a suggestion to

  • add this airline network region(s) to the airline ref file (either in the existing "bases" column or in additional column)
  • (optional) add a Boolean indicating "Control Duplicate" for given two-letter airline code

YEH has no coordinates

In the latest revision of the optd por file, YEH has no coordinates (it had them before the update).

Airline num code 909

Airline num code 909 is currently assigned to Czech airlines instead of Thai-Smile.

Feature Request: Include currency codes

It would be very useful to include the ISO 4217 currency code in either optd_country_region_info.csv or optd_por_public.csv

Currently we use this data to back sandbox.amadeus.com, and being able to display the currency of the city is a popular request. The use case is obvious: when the developer identifies the traveler's nearest relevant airport, they want to be able to display the results of flight/car/hotel searches in the traveler's currency. As a result, they need that currency data when they look up the location.

In the sandbox, we provide this in the output, merging it with a simple gist we found when the data is uploaded to our service. But we would much rather it comes from Open Travel Data ;)

I can see you have some currency related elements in here already - https://github.com/opentraveldata/opentraveldata/tree/master/data/currency/ccy - but it doesn't seem to be used.

Could we include the currency in one or more of the maintained output data files?

Add Russian ISO 3166-2 (region/oblast/ADM1) codes

As many other big countries (e.g., USA, Australia, Brazil), Russia has got regions (administrative level 1), which are assigned standard (ISO 3166-2) codes: http://en.wikipedia.org/wiki/ISO_3166-2:RU
Those codes should be added to the optd_por_public.csv file.

The region codes should first be added to the opentraveldata/optd_country_states.csv CSV file. They can be derived from the Geonames ADM1 codes.

And, then, the opentraveldata/optd_state_exceptions.csv CSV file must be amended with the new Russian region codes, in order to reflect that IATA does not reference those regions correctly.

A way to extract the state (administrative level 1) details from the file in order to add them into the file:

$ # To be performed once
$ mkdir -p ~/dev/geo
$ cd ~/dev/geo
$ git clone https://github.com/opentraveldata/opentraveldata.git
$ #
$ cd ~/dev/geo/opentraveldata/data/geonames/data/por/data
$ wget http://download.geonames.org/export/dump/admin1CodesASCII.txt
$ awk -F '\t' '/^RU/ {state_code = substr ($1, 0, 2); adm1_code = substr ($1, 4); print (state_code "^" $4 "^" adm1_code "^" $2 "^") }' admin1CodesASCII.txt | sort -t'^' -k2,2
RU^468898^88^Jaroslavl^
RU^472039^86^Voronezj^
RU^472454^85^Vologda^
...
RU^2125072^92^Kamtsjatka^
RU^2126099^15^Chukotka^
RU^7779061^93^Transbaikal Territory^

Just for information, the relevant AWK scripts are:

Daylight savings?

Not really an issue, but a question - is this file updated per changes in daylight savings? Thanks for providing this info!

Accident during merge Coyhaique, Chile

Commit 9dfa31f misplaced the A, it contains:

-GXQ-CA-6300694^GXQ^-45.594211^-72.106133^GXQ^
+GXQ-A-6300694^GXQ^35.90611^0.14583^GXQ^
+GXQ-C-3894426^GXQ^-45.57524^-72.06619^GXQ^

My branch had instead:

-GXQ-CA-6300694^GXQ^-45.594211^-72.106133^GXQ^
+GXQ-A-6300694^GXQ^-45.59421^-72.10613^GXQ^
+GXQ-C-3894426^GXQ^-45.57524^-72.06619^GXQ^

Best,

airports without IATA code missing in POR file

many airports don't have an IATA code, but just an ICAO one. Usually, these are very small airports without any scheduled flights. But some of them do have regular flights and it would be nice to have them in our POR file.

An example is Beringin Airport. The airport actually exists in geonames, but we don't seem to pick it up from there.

Missing airlines with IATA code

Hello,

I tried to use opentraveldata to decode ADS-B packets and information from RadarBox24.
I found several missing airlines, here are the one I was able to identify.
All data comes from real flying plane + cross checked on IATA website.

5X -> UPS Airline
https://en.wikipedia.org/wiki/UPS_Airlines

RW -> Royal Air Charter
https://en.wikipedia.org/wiki/Royal_Air_Charter

GB -> ABX Air
https://en.wikipedia.org/wiki/ABX_Air

PO -> Polar Air Cargo
https://en.wikipedia.org/wiki/Polar_Air_Cargo

4R -> Star East Airline S.R.L.
https://www.planespotters.net/airline/Star-East-Airlines
https://www.airfleets.net/flottecie/Star%20East%20Airlines.htm

9S -> Southern Air
https://en.wikipedia.org/wiki/Southern_Air

VO -> VLM Airlines
https://en.wikipedia.org/wiki/VLM_Airlines

M6 -> Amerijet International
https://en.wikipedia.org/wiki/Amerijet_International

CY -> Charlie Airlines (Cyprus Airways)
https://en.wikipedia.org/wiki/Charlie_Airlines

CS -> Comlux Aruba NV

D0 -> DHL Air UK
https://en.wikipedia.org/wiki/DHL_Air_UK

A4 -> Azimuth
https://en.wikipedia.org/wiki/Azimuth_(airline)

GG -> Sky Lease Cargo
https://en.wikipedia.org/wiki/Sky_Lease_Cargo

JA -> JetSmart
https://en.wikipedia.org/wiki/JetSmart

KZ -> Nippon Cargo Airlines
https://en.wikipedia.org/wiki/Nippon_Cargo_Airlines

VV -> Viva Air Peru
https://en.wikipedia.org/wiki/Viva_Air_Peru

ES -> DHL International Aviation ME
ES -> Estelar Latinoamerica
https://en.wikipedia.org/wiki/DHL_International_Aviation_ME
https://en.wikipedia.org/wiki/Estelar_Latinoamerica

KH -> Aloha Air Cargo
https://en.wikipedia.org/wiki/Aloha_Air_Cargo

Hoping you can include these airlines in a next release.

Regards,
Vincent

old version of given airline appears in optd_airlines.csv

I had impression that optd_airlines.csv keeps only latest information
For below 8 airlines, there are multiple records.

cut -d'^' -f5,6,8 optd_airlines.csv |sort |uniq -c |sort -r|less

      2 VFC^0V^Vietnam Air Services Company
      2 TBA^TV^Tibet Airlines
      2 SNC^2Q^Air Cargo Carriers
      2 ^IV^Air Djibouti
      2 IAW^IA^Iraqi Airways
      2 EXW^OW^Nicon Airways
      2 EAL^EA^East Air Lines
      2 BDR^J4^Badr Airlines

For example, the two records of "Air Cargo Carriers" correspond to:

air-air-cargo-carriers-v1^1^1986-01-01^2003-12-31^SNC^2Q^0^Air Cargo Carriers^^^^C^http://en.wikipedia.org/wiki/Air_Cargo_Carriers^^en|Air Cargo Carriers|^^air-air-cargo-carriers^1
air-air-cargo-carriers-v2^^2015-01-01^^SNC^2Q^0^Air Cargo Carriers^^^^C^http://en.wikipedia.org/wiki/Air_Cargo_Carriers^^en|Air Cargo Carriers|^^air-air-cargo-carriers^2

Missing location codes in optd_por_public.csv

While processing IATA prorating data, some three letter location codes are not found in optd_por_public.csv:

Present on http://www.iata.org/publications/Pages/code-search.aspx:
GEM - Mongomo
JJG - Jaguaruna
NBN - Annobon
RDP - Durgapur

Google gave the rest:

Present in LH flights:
KJR - Karlsruhe Rail Station
KWQ - Kassel-Wilhelmshöhe Rail Station
MHJ - Mannheim Rail Station
QBB - Thomastrasse Bus Station

LO flights:
LKJ - Lodz: Kaliska Bus Station

KL flights:
QNQ - Nijmegen Bus

9W flights:
RUJ - Riyadh Bus Station

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.