と思いきや。
ただの趣味で、航空会社のコールサインを openflights のデータを使って PowerShell に喋らせようとして、Japan Transocean Air がこんなことに:
「JAI OCEAN」を「ハイ オーシャン」と発声するのも良くわからないが、なんかそもそもヘンだ。
と思ったら。
wikipediaによれば、「JAY OCEAN」が正しいと思われる。のでめでたく:
なお、コールサインは特殊は特殊で。
Name: Air Japan
ICAO: AJX
IATA: NQ
Callsign: air japan
Name: All Nippon Airways
ICAO: ANA
IATA: NH
Callsign: all nippon
Name: Air Nippon
ICAO: ANK
IATA: EL
Callsign: ank air
Name: Hokkaido International Airlines
ICAO: ADO
IATA: HD
Callsign: air do
Name: Ibex Airlines
ICAO: IBX
IATA: FW
Callsign: ibex
Name: JAL Express
ICAO: JEX
IATA: JC
Callsign: janex
Name: JALways
ICAO: JAZ
IATA: JO
Callsign: jalways
Name: Japan Airlines
ICAO: JAL
IATA: JL
Callsign: japanair
Name: Japan Airlines Domestic
ICAO: JAL
IATA: JL
Callsign: j-bird
Name: Japan Asia Airways
ICAO: JAA
IATA: EG
Callsign: asia
Name: Japan Transocean Air
ICAO: JTA
IATA: NU
Callsign: jay ocean
Name: Star Flyer
ICAO: SFJ
IATA: 7G
Callsign: starflyer
Name: Skymark Airlines
ICAO: SKY
IATA: BC
Callsign: skymark
Name: Skynet Asia Airways
ICAO: SNJ
IATA: 6J
Callsign: newsky
Name: Japan Air System
ICAO: JAS
IATA: JD
Callsign: air system
Name: Fuji Dream Airlines
ICAO: \N
IATA: JH
Callsign: fuji dream
Name: Peach Aviation
ICAO: \N
IATA: MM
Callsign: air peach
Name: AirAsia Japan
ICAO: WAJ
IATA:
Callsign: wing asia
Star Flyer は「スターフライヤー」じゃないかと思うのだが、英語読みだと「スターフレアー」になってしまうんだろうか? これは謎。jalways も「ヤルウェイズ」と、中国人みたいな発音。なんかヘン。
なお、airlines.dat はこんなんで簡単に読めます:
1 # -*- coding: utf-8 -*-
2 import csv
3
4 keys = ("ID", "Name", "Alias", "IATA", "ICAO", "Callsign", "Country")
5 reader = csv.reader(open("airlines.dat", "rb"))
6 all_active_with_callsign = {}
7 for row in reader:
8 if row[-1] == "N": # not active
9 continue
10 # \N means null.
11 # " S.A" is strange...
12 if row[-2] == "\\N" or row[-2].startswith(" S.A."):
13 continue
14 # Name
15 # Name of the airline.
16 # Alias
17 # Alias of the airline. For example, All Nippon Airways
18 # is commonly known as "ANA".
19 # IATA
20 # 2-letter IATA code, if available.
21 # ICAO
22 # 3-letter ICAO code, if available.
23 # Callsign
24 # Airline callsign.
25 # Country
26 # Country or territory where airline is incorporated.
27 data = dict(zip(keys, map(lambda s: s.decode("iso-8859-1").strip(), row[:-1])))
28 if not data["IATA"] and not data["ICAO"]:
29 continue
30 del data["Alias"] # i don't care
31 cntry = data["Country"]
32 if data["Callsign"] and data["Callsign"] != "\\N":
33 if cntry not in all_active_with_callsign:
34 all_active_with_callsign[cntry] = []
35 all_active_with_callsign[cntry].append(data)