Flightstats API:到着スコアボードをボーイングとエアバスで書く

はじめに



この投稿を読んでいる皆さん、こんにちは。

航空は私の趣味です、私はすでにそれについて書きました。 私は何時間も立って飛行機の写真を撮り、それらについてのビデオを見て、 エアマンのブログを読んで、 fr24.comで交通を監視する準備ができています。 また、航空では、ECAM、CDA、ACES、APUなどの略語が1つしかありません。 一般的に、魔法。 しかし、私の環境のほとんどすべての人は航空に無関心です。「まあ、飛行機、飛行機のように。 いいですね なに? ボーイング777-300ER? まあ、明らかに、明らかに...」。 しかし、何もする必要はありません。すべてのマーカーの味と色は異なります。

断食のアイデアはどのように思いついたのですか? シェレメーチエヴォ国際空港から車で20分ほどの場所に住んでいました。 どういうわけか私は自由な時間を過ごし、小さな写真を撮るようになりました。 私がそこにいる間に、約10機が私を通り過ぎました。 ほとんどすべてがアエロフロートです。 私は主張しません、アエロフロートには興味深い側面があります。 たとえば、 ドブロレットまたはホフロマ 。 しかし、その日私は幸運ではなかった、私はそのようなものを見ていませんでした。 そして、そのような旅行を計画することは非常に有用だと思いました。 そして、断食のアイデアが生まれました。 次の機能が必要でした:出発表-選択した空港の到着、興味深いボットとあまりボットではないものの両方の色の強調表示、pdfへのエクスポート。



さあ始めましょう!

したがって、最初に行う必要があるのは、 https://developer.flightstats.comにアクセスして登録し、ダッシュボードに移動して、[新しいアプリケーションを作成]ボタンをクリックすることです。 これは、多数のAppId + AppKeyを取得するために必要です。これがないと、APIにアクセスできません。 一般に、それは支払われますが、無料の料金プランもあります-「 評価プラン 」、私たちのニーズに対するその能力は完全に十分でしょう。 その後、「 Get Started 」->「 Flex API Reference 」->「 Flight Status&Track API 」->「 Flight Status&Track by Airport 」に大胆に進みます 。 ページの下部に「 対話型ドキュメント 」セクションがあり、「 空港の状態(出発) 」を選択します。 このリクエストには7つの必須フィールドがあり、次のように入力する必要があります。

appId appKey 空港 hourOfDay
あなたのappId あなたのappKey SVO 2013 12 7 10




数秒後、答えが表示されます。



つまり、2014年12月7日にシェレメーチエヴォ空港から10時間後に出発するフライトについての情報を求めました。 はい、SVO-シェレメチェボ。 また、UUEE-シェレメチェボ。 覚えておいて、私は略語について少しだけ話したのですか? ここで、最初に出くわしました。



空港コード。 IATA vs. ICAO



IATA-国際航空運送協会、 IATA (英語国際航空運送協会)国際非政府組織。 協会はコーディネーターとして行動し、航空安全、飛行操作、関税政策、保守、航空安全、ICAOと連携した国際標準の開発などの分野における航空輸送業界の利益を代表しています。



ICAO-国際民間航空機関は国連の専門機関であり、民間航空の国際基準を設定し、安全性と効率性を高めるために開発を調整しています。



IATAとICAOの両方に独自の空港コードがあります。 IATAコードは空港の名前に合わせて選択され、ICAOコードは空港の場所に基づいているため、これらは異なります。 それが、シェレメーチエヴォがIATAコードSVOとICAO-UUEEを持っている理由です。プルコボの場合、たとえばそれぞれLEDとULLIです。 唯一の例外は、米国の空港(IATAコードに「K」を追加:ロサンゼルス-LAX-KLAX)およびカナダ(「C」を追加:トロント-YYZ-CYYZ)です。



フライト統計に回答する



このリクエストでは、レスポンスの構造は次のとおりです。

{   } "appendix": { "airlines": {...} "airports": {...} "equipments": {...} "flightStatuses": {...} }
      
      





航空会社空港 、および機器のセクションには、flightStatusesセクションにある航空会社、空港、および航空機の種類の説明が含まれています。

航空会社のセクションは非常にシンプルです:

 "airlines": [ { "fs": "SU", "iata": "SU", "icao": "AFL", "name": "Aeroflot", "active": true }, ...
      
      





「fs」フィールドには、flightStatsデータベースの航空会社コードが含まれています。 ほとんどの場合、IATAコードと一致します。



空港セクションはより複雑です。

 "airports": [ { "fs": "BUD", "iata": "BUD", "icao": "LHBP", "name": "Liszt Ferenc International Airport", "city": "Budapest", "cityCode": "BUD", "countryCode": "HU", "countryName": "Hungary", "regionName": "Europe", "timeZoneRegionName": "Europe/Budapest", "localTime": "2013-12-06T20:51:56.974", "utcOffsetHours": 1, "latitude": 47.433037, "longitude": 19.261621, "elevationFeet": 495, "classification": 2, "active": true, "delayIndexUrl": "https://api.flightstats.com/flex/delayindex/rest/v1/json/airports/BUD?codeType=fs", "weatherUrl": "https://api.flightstats.com/flex/weather/rest/v1/json/all/BUD?codeType=fs" }, ...
      
      





天気と遅延係数を除き、必要なすべての情報が含まれています。これらは別途要求する必要があります。



セクション「機器」。

 "equipments": [ { "iata": "319", "name": "Airbus Industrie A319", "turboProp": false, "jet": true, "widebody": false, "regional": false }, ...
      
      





航空機の基本的な特性を説明します。



APIから再び脱線しましょう。



航空機の種類を区別することを学ぶ



これはまったく難しいことではありません。 空の車の世界を簡単にナビゲートするのに役立つ小さな図(クリック可能)を用意しました。 Rasckoからの追加ガイド



そして今、私の言葉の確認:

エアバスA380対 ボーイング747





IL-96対 エアバスA340





ボーイング737対 エアバスA320





ボーイング757対 ボーイング767





エアバスA330対 ボーイング777





ヤク42対 Tu-154対 マクドネルダグラスMD-11







フライトの解析



flightStatusの内容。 長いので非表示
 { "flightId": 317846653, "carrierFsCode": "SU", "flightNumber": "2030", "departureAirportFsCode": "SVO", "arrivalAirportFsCode": "BUD", "departureDate": { "dateLocal": "2013-12-07T10:50:00.000", "dateUtc": "2013-12-07T06:50:00.000Z" }, "arrivalDate": { "dateLocal": "2013-12-07T10:35:00.000", "dateUtc": "2013-12-07T09:35:00.000Z" }, "status": "L", "schedule": { "flightType": "J", "serviceClasses": "RJY", "restrictions": "" }, "operationalTimes": { "publishedDeparture": { "dateLocal": "2013-12-07T10:50:00.000", "dateUtc": "2013-12-07T06:50:00.000Z" }, "publishedArrival": { "dateLocal": "2013-12-07T10:35:00.000", "dateUtc": "2013-12-07T09:35:00.000Z" }, "scheduledGateDeparture": { "dateLocal": "2013-12-07T10:50:00.000", "dateUtc": "2013-12-07T06:50:00.000Z" }, "estimatedGateDeparture": { "dateLocal": "2013-12-07T10:50:00.000", "dateUtc": "2013-12-07T06:50:00.000Z" }, "actualGateDeparture": { "dateLocal": "2013-12-07T11:27:00.000", "dateUtc": "2013-12-07T07:27:00.000Z" }, "scheduledGateArrival": { "dateLocal": "2013-12-07T10:35:00.000", "dateUtc": "2013-12-07T09:35:00.000Z" }, "estimatedGateArrival": { "dateLocal": "2013-12-07T11:12:00.000", "dateUtc": "2013-12-07T10:12:00.000Z" }, "actualGateArrival": { "dateLocal": "2013-12-07T10:43:00.000", "dateUtc": "2013-12-07T09:43:00.000Z" } }, "delays": { "departureGateDelayMinutes": 37, "arrivalGateDelayMinutes": 8 }, "flightDurations": { "scheduledBlockMinutes": 165, "blockMinutes": 136 }, "airportResources": { "departureTerminal": "D", "departureGate": "28", "arrivalTerminal": "2" }, "flightEquipment": { "scheduledEquipmentIataCode": "320", "actualEquipmentIataCode": "A320", "tailNumber": "VP-BWI" } }, ...
      
      







ほとんどの場合、フィールドの目的は明らかです。 内容が完全に明らかではないものについてのみ詳細に説明します。 なんで? そうです、カットだからです。

答えのこの部分は次のとおりです。

 "status": "L", "schedule": { "flightType": "J", "serviceClasses": "RJY", "restrictions": "" },
      
      





フィールド 説明
状態 現在のフライト状況

A-アクティブ

C-キャンセル済み

D-迂回-目的地の変更が行われた(たとえば、気象条件に応じて)

DN-データソースが必要-ステータス情報を取得する場所がありません

L-着陸

いいえ -操作不可

R-リダイレクトされました

S-スケジュール済み

U-不明
flightType フライトのタイプ。 合計で23個あります。 例えば

J-定期旅客-定期旅客

M-定期貨物/郵便(MailOnly)-貨物、ただし手紙のみ。

W-軍事-軍事
serviceClasses IATAフライトで提供されるサービスオプション。 詳細はこちら-http://en.wikipedia.org/wiki/IATA_class_codes
制限事項 IATA分類の制限。 詳細-http ://www.flyerguide.com/wiki/index.php/Traffic_Restriction_Codes_(AA)




プログラミング



今は、Python 2.7、urllib2、simplejsonを使用しています。



最初に行うことは、必要なライブラリを接続し、変数を初期化することです。

 import urllib2 import simplejson appId = " appId " appKey = " appKey " #  .        flightstats,     ICAO  IATA requestedAirport = "SVO" #    . arr - , dep -  flightsType = "arr" #  requestedDate = "2013/12/7" # ,        requestedHour = "15" #  ,      requestedNumHours = "6"
      
      







次のステップでは、これらの変数をURLにパックし、リクエストを送信して、応答を待ちます。

 #    url = "https://api.flightstats.com/flex/flightstatus/rest/v2/json/" \ "airport/status/%s/%s/%s/%s?appId=%s&appKey=%s&utc=false&numHours=%s" #      url = url %(requestedAirport, flightsType, requestedDate, requestedHour, appId, appKey, requestedNumHours) #     JSON- req = urllib2.Request(url, None) opener = urllib2.build_opener() f = opener.open(req) response = simplejson.load(f)
      
      







次に、補助フィールドを解析します。 リスト内の航空機と飛行機の詳細な名前を置き換えるためにそれらが必要です。

 #     airports = response["appendix"]["airports"] #        (dictionary) airportsDict = dict() #      [ flightstats]:[] for airport in airports: airportsDict[airport["fs"]] = airport["name"] #     ... equipments = response["appendix"]["equipments"] equipmentsDict = dict() for equipment in equipments: equipmentsDict[equipment["iata"]] = equipment["name"], equipment["iata"] #...    airlines = response["appendix"]["airlines"] airlinesDict = dict() for airline in airlines: airlinesDict[airline["fs"]] = airline["name"]
      
      







コードの結果は、次のような表になります。

フライト 運送業者 装備品 登録 から STD ATD STA STD
XQ114 SunExpress ボーイング737-800の乗客 D-asxa アンタルヤ 15:00:00.000 --- Cgn 17:55:00.000 ---




データをHTMLで出力します。

 #    webPage = "<html><body><table border=\"1\"> \ <tr><th>Flight</th><th>Carrier</th><th>Equipment</th><th>Registration</th><th>From</th><th>STD</th> \ <th>ATD</th><th>To</th><th>STA</th><th>ETA</th></tr>" #     templateRow = "<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td> \ <td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>" f = open("./list.html", "w")
      
      







次に、補助関数を作成する必要があります。

必要な値は異なる深さにあります。 たとえば、深さ0のcarrierFsCode



、空港コード。 実際の出発時間を取得するには、2番目の深さ( operationalTimes --> actualGateDeparture --> dateLocal"



必要があります。これを行うには、最初の補助関数が必要です。

 def getProperty(status, propertyNames): #     try: #     propertyNames for propertyName in propertyNames: #   status = status[propertyName] #   ! return status except #   ,    return "---"
      
      







ここで最も興味深いのは、トラフィックに最も関心のあるものを選択する必要があることです。 次の3つの配列に含まれています。

 interestingCarriers = ["RU", # AirBridgeCargo "CU", # Cubana de Aviacion "ME", # China Eastern Airlines "KE", # Korean Air Lines ] interestingEquipments = ["SU9"] # Sukhoi Superjet 100 interestingTailNumbers = ["VP-BGB"] #   Boeing 777-300ER  
      
      







そして今、実際には、パーサー:

 for flightStatus in flightStatuses: newRow = templateRow %(getProperty(flightStatus, ["carrierFsCode"]) + getProperty(flightStatus, ["flightNumber"]), airlinesDict[getProperty(flightStatus, ["carrierFsCode"])], getProperty(flightStatus, ["flightEquipment", "scheduledEquipmentIataCode"]), getProperty(flightStatus, ["flightEquipment", "tailNumber"]), str(airportsDict[getProperty(flightStatus, ["departureAirportFsCode"])]).replace("Airport", ""), str(getProperty(flightStatus, ["departureDate", "dateLocal"])).split("T")[-1], str(getProperty(flightStatus, ["operationalTimes", "actualGateDeparture", "dateLocal"])).split("T")[-1], str(airportsDict[getProperty(flightStatus, ["arrivalAirportFsCode"])]).replace("Airport", "") str(getProperty(flightStatus, ["arrivalDate", "dateLocal"])).split("T")[-1], str(getProperty(flightStatus, ["operationalTimes", "estimatedGateArrival", "dateLocal"])).split("T")[-1]) #    if (getProperty(flightStatus, ["carrierFsCode"]) in interestingCarriers) or \ (getProperty(flightStatus, ["flightEquipment", "scheduledEquipmentIataCode"]) in interestingEquipments) or \ (getProperty(flightStatus, ["flightEquipment", "tailNumber"]) in interestingTailNumbers): newRow = newRow.replace("<tr>", "<tr bgcolor=\"#FF0000\">") #     webPage += newRow
      
      







最後の仕上げ-ページの最後にタグを追加し、ファイルを閉じます。

 webPage = webPage + "</table></body></html>" f.write(webPage) f.close()
      
      





作業結果


フライト 運送業者 装備品 登録 から STD ATD STA えた
SU155 アエロフロート 332 VQ-BBE カンクン国際 午後12時30分 13:17:00.000 シェレメーチエヴォ国際空港 10:30:00.000 11:03:00.000
DL466 デルタ航空 76W --- ジョン・F・ケネディ・インターナショナル 16:15:00.000 16:14:00.000 シェレメーチエヴォ国際空港 10:50:00.000 10:12:00.000
SU111 アエロフロート 332 VP-BLX マイアミインターナショナル 17:35:00.000 18:35:00.000 シェレメーチエヴォ国際空港 13:45:00.000 13:46:00.000
SU103 アエロフロート 333 VP-BDE ジョン・F・ケネディ・インターナショナル 19:05:00.000 --- シェレメーチエヴォ国際空港 13:25:00.000 13:34:00.000
UN576 Transaero Airlines 744 EI-XLJ プンタカナ国際 19:55:00.000 21:18:00.000 シェレメーチエヴォ国際空港 14:50:00.000 15:35:00.000
RU566 AirBridgeCargo 74年 --- フランクフルト・アム・マイン 04:45:00.000 --- シェレメーチエヴォ国際空港 11:00:00.000 ---
RU498 AirBridgeCargo 74N --- 上海浦東国際 05:00:00.000 --- シェレメーチエヴォ国際空港 10:45:00.000 ---
SU233 アエロフロート 332 --- インディラガンジーインターナショナル 05:05:00.000 05:26:00.000 シェレメーチエヴォ国際空港 10:10:00.000 10:13:00.000
RU506 AirBridgeCargo 74N --- ミラノ・マルペンサ 05:30:00.000 --- シェレメーチエヴォ国際空港 12:00:00.000 ---
SU1827 アエロフロート 320 Vq-baz シンフェロポリ 06:00:00.000 06:25:00.000 シェレメーチエヴォ国際空港 10:15:00.000 10:40:00.000
SU2437 アエロフロート 320 VP-BLH デュッセルドルフ国際 06:05:00.000 06:27:00.000 シェレメーチエヴォ国際空港 12:25:00.000 12:24:00.000
RU440 AirBridgeCargo 74N VP-BIM 香港インターナショナル 06:15:00.000 06:15:00.000 シェレメーチエヴォ国際空港 12:25:00.000 ---
KE529 大韓航空 74年 Hl7466 仁川インターナショナル 06:25:00.000 07:07:00.000 シェレメーチエヴォ国際空港 10:40:00.000 ---
JU650 ジェットエアウェイズ 733 --- ベオグラード・ニコラ・テスラ 06:45:00.000 06:45:00.000 シェレメーチエヴォ国際空港 12:35:00.000 12:39:00.000
PS561 UIA 73N ウルギャップ キエフ/キエフ-ボリスポル 07:00:00.000 07:00:00.000 シェレメーチエヴォ国際空港 10:35:00.000 10:35:00.000
SU1009 アエロフロート 321 VQ-BED カリーニングラード 07:10:00.000 07:36:00.000 シェレメーチエヴォ国際空港 10:00:00.000 10:26:00.000
AF1644 エールフランス 319 F-GRHL シャルルドゴール 07:15:00.000 07:13:00.000 シェレメーチエヴォ国際空港 13:55:00.000 13:52:00.000
SU1867 アエロフロート 320 VP-BQP ズヴァルトノッツインターナショナル 08:10:00.000 08:21:00.000 シェレメーチエヴォ国際空港 11:00:00.000 11:11:00.000
5N502 ノルダビアリージョナル航空 735 --- スィクティフカル 08:20:00.000 08:27:00.000 シェレメーチエヴォ国際空港 10:15:00.000 10:11:00.000
Kc893 エアアスタナ 320 P4-kbc アスタナ 08:40:00.000 08:36:00.000 シェレメーチエヴォ国際空港 10:20:00.000 10:49:00.000
SU3 アエロフロート 321 VP-BWO プルコヴォ 08:55:00.000 09:04:00.000 シェレメーチエヴォ国際空港 10:20:00.000 10:29:00.000
SU1513 アエロフロート 319 VP-BWA スルグート 09:00:00.000 08:59:00.000 シェレメーチエヴォ国際空港 10:35:00.000 10:34:00.000
SU1293 アエロフロート 320 VQ-BIV カザン 09:00:00.000 09:27:00.000 シェレメーチエヴォ国際空港 10:30:00.000 10:50:00.000
SU1229 アエロフロート 320 VP-BDK ニジニ・ノヴゴロド 09:05:00.000 09:21:00.000 シェレメーチエヴォ国際空港 10:25:00.000 10:41:00.000
SU1309 アエロフロート 319 VP-BDO サマラ 09:15:00.000 09:20:00.000 シェレメーチエヴォ国際空港 10:55:00.000 11:00:00.000
AY153 フィンエアー 319 OH-LVI ヘルシンキ・ヴァンター 09:25:00.000 09:29:00.000 シェレメーチエヴォ国際空港 13:05:00.000 12:57:00.000
OK892 CSA 319 --- ヴァーツラフハヴェルプラハ 09:30:00.000 09:31:00.000 シェレメーチエヴォ国際空港 15:10:00.000 15:05:00.000
SU2005 アエロフロート 320 VP-BWI J.ポールIIインターナショナルクラクフバリス 09:35:00.000 09:56:00.000 シェレメーチエヴォ国際空港 14:40:00.000 14:49:00.000
SU1121 アエロフロート 320 VP-BTI アドラー/ソチ 09:50:00.000 09:55:00.000 シェレメーチエヴォ国際空港 12:20:00.000 12:25:00.000
SU2685 アエロフロート 320 VQ-BCM シェーネフェルト 09:50:00.000 10:44:00.000 シェレメーチエヴォ国際空港 15:25:00.000 16:15:00.000
SU5 アエロフロート 320 VQ-BAX プルコヴォ 09:55:00.000 10:20:00.000 シェレメーチエヴォ国際空港 11:15:00.000 11:40:00.000
SU1839 アエロフロート SU9 RA-89010 ハリコフ 09:55:00.000 10:10:00.000 シェレメーチエヴォ国際空港 13:30:30.000 13:20:00.000
SU2321 アエロフロート 320 VQ-BHL フランツ・ヨーゼフ・シュトラウス 10:00:00.000 10:16:00.000 シェレメーチエヴォ国際空港 16:00:00.000 16:16:00.000
SU1001 アエロフロート 320 VP-BLL カリーニングラード 10:05:00.000 10:25:00.000 シェレメーチエヴォ国際空港 12:55:00.000 13:15:00.000
R25807 オレネア 738 --- バルナウル 10:10:00.000 10:15:00.000 シェレメーチエヴォ国際空港 11:30:00.000 11:35:00.000
SU1307 アエロフロート 320 VP-BKX トルマチョーボ 10:15:00.000 10:19:00.000 シェレメーチエヴォ国際空港 11:25:00.000 11:29:00.000
SU1701 アエロフロート 333 VQ-BNS ウラジオストック国際 10:20:00.000 10:24:00.000 シェレメーチエヴォ国際空港 12:25:00.000 12:29:00.000
SU1805 アエロフロート 321 VP-BOE キエフ/キエフ-ボリスポル 10:20:00.000 11:00:00.000 シェレメーチエヴォ国際空港 13:50:00.000 14:30:00.000
SU2137 アエロフロート 321 VQ-BHK イスタンブールアタチュルク 10:20:00.000 11:03:00.000 シェレメーチエヴォ国際空港 15:15:00.000 15:26:00.000
SK734 SAS 320 オイカップ コペンハーゲン 10:20:00.000 10:46:00.000 シェレメーチエヴォ国際空港 15:45:00.000 16:02:00.000
SU7 アエロフロート 320 --- プルコヴォ 10:25:00.000 10:43:00.000 シェレメーチエヴォ国際空港 11:45:00.000 12:03:00.000
SU1813 アエロフロート 320 VP-BRX ドネツク 10:30:00.000 10:31:00.000 シェレメーチエヴォ国際空港 14:25:00.000 14:26:00.000
SU1831 アエロフロート 320 --- ミンスクインターナショナル2 10:50:00.000 11:40:00.000 シェレメーチエヴォ国際空港 13:15:00.000 14:05:00.000
SU2107 アエロフロート 320 VP-BZS タリン 10:50:00.000 10:54:00.000 シェレメーチエヴォ国際空港 14:30:00.000 14:18:00.000
SU1479 アエロフロート 319 VP-BDM アバカン 10:55:00.000 10:55:00.000 シェレメーチエヴォ国際空港 11:55:00.000 11:55:00.000
SU1483 アエロフロート 77W VP-BGB クラスノヤルスク 11:00:00.000 11:13:00.000 シェレメーチエヴォ国際空港 11:35:00.000 11:48:00.000
SU2683 アエロフロート 319 VQ-BCO リガ 11:00:00.000 11:24:00.000 シェレメーチエヴォ国際空港 14:35:00.000 14:44:00.000
D95399 ドナビア 319 VP-BNN スタブロポリ 11:15:00.000 11:17:00.000 シェレメーチエヴォ国際空港 13:30:30.000 13:32:00.000
SU2035 アエロフロート SU9 RA-89008 オトペニインターナショナル 11:15:00.000 11:28:00.000 シェレメーチエヴォ国際空港 15:35:00.000 15:33:00.000
SU11 アエロフロート 320 --- プルコヴォ 11:30:00.000 11:49:00.000 シェレメーチエヴォ国際空港 12:45:00.000 13:04:00.000
SU1139 アエロフロート 321 VQ-BKU アドラー/ソチ 11:35:00.000 11:55:00.000 シェレメーチエヴォ国際空港 14:00:00.000 14:20:00.000
SU1211 アエロフロート 320 VQ-BIT サマラ 11:40:00.000 12:13:00.000 シェレメーチエヴォ国際空港 13:25:00.000 13:42:00.000
SU1759 アエロフロート SU9 VP-BZQ ヴォルゴグラード 11:45:00.000 11:53:00.000 シェレメーチエヴォ国際空港 13:35:00.000 13:43:00.000
SU1255 アエロフロート 319 VP-BDN ベギシェボ 11:50:00.000 12:03:00.000 シェレメーチエヴォ国際空港 13:40:00.000 13:53:00.000
SU1643 アエロフロート 320 VQ-BIW アストラハン 11:50:00.000 11:55:00.000 シェレメーチエヴォ国際空港 14:10:00.000 14:15:00.000
SU1305 アエロフロート 320 VP-BLP ミネラルニエボディ 11:50:00.000 12:08:00.000 シェレメーチエヴォ国際空港 14:15:00.000 14:33:00.000
SU1761 アエロフロート 738 VP-BRH 知多 11:55:00.000 12:00 10:00 シェレメーチエヴォ国際空港 12:45:00.000 13:00:00.000
SU1221 アエロフロート 320 VP-BMF ニジニ・ノヴゴロド 12:05 p.m. 12:12:00.000 シェレメーチエヴォ国際空港 13:10:00.000 13:17:00.000
SU1743 アエロフロート 333 VQ-BQX ユジノサハリンスク 12:00 10:00 12:20:00.000 シェレメーチエヴォ国際空港 14:05:00.000 14:15:00.000
D95301 ドナビア 734 VQ-BCS ロストフ 12:15:00.000 12:28:00.000 シェレメーチエヴォ国際空港 14:15:00.000 14:28:00.000
SU13 アエロフロート 319 --- プルコヴォ 12:20:00.000 12:50:00.000 シェレメーチエヴォ国際空港 13:35:00.000 14:05:00.000
5N117 ノルダビアリージョナル航空 735 --- アルハンゲリスク 12:20:00.000 12:25:00.000 シェレメーチエヴォ国際空港 14:05:00.000 14:10:00.000
SU1191 アエロフロート 320 VQ-BEA カザン 12:25:00.000 13:04:00.000 シェレメーチエヴォ国際空港 13:55:00.000 14:34:00.000
SU1751 アエロフロート 738 VP-BRF ヤクーツク 午後12時30分 12:58:00.000 シェレメーチエヴォ国際空港 13:15:00.000 13:43:00.000
SU1547 アエロフロート SU9 --- アナパ 午後12時30分 12:50:00.000 シェレメーチエヴォ国際空港 14:45:00.000 15:05:00.000
D95377 ドナビア 319 --- ミネラルニエボディ 12:45:00.000 13:03:00.000 シェレメーチエヴォ国際空港 15:10:00.000 15:28:00.000
D95363 ドナビア 319 VP-BQK ロストフ 13:05:00.000 13:20:00.000 シェレメーチエヴォ国際空港 15:05:00.000 15:20:00.000
SU1411 アエロフロート 321 VQ-BOI コルツォヴォ国際 13:15:00.000 13:43:00.000 シェレメーチエヴォ国際空港 13:40:00.000 14:08:00.000
SU1731 アエロフロート 333 VQ-BCQ ペトロパブロフスク・カムチャツキー 13:30:30.000 13:44:00.000 シェレメーチエヴォ国際空港 14:30:00.000 14:44:00.000
SU15 アエロフロート 320 --- プルコヴォ 13:30:30.000 13:39:00.000 シェレメーチエヴォ国際空港 14:45:00.000 14:52:00.000
SU1231 アエロフロート 320 VP-BLR ウファ 13:55:00.000 14:19:00.000 シェレメーチエヴォ国際空港 14:00:00.000 14:24:00.000
SU1421 アエロフロート 320 VP-BNL チェリャビンスク 13:55:00.000 13:56:00.000 シェレメーチエヴォ国際空港 14:20:00.000 14:21:00.000
R25803 オレネア 738 --- イルクーツク 14:05:00.000 14:30:00.000 シェレメーチエヴォ国際空港 14:50:00.000 15:15:00.000
SU1201 アエロフロート SU9 --- パーマ 14:10:00.000 --- シェレメーチエヴォ国際空港 14:25:00.000 14:25:00.000
5N9134 ノルダビアリージョナル航空 --- --- カザン 14:10:00.000 15:07:00.000 シェレメーチエヴォ国際空港 15:30:00.000 ---
SU17 アエロフロート 320 --- プルコヴォ 14:25:00.000 14:56:00.000 シェレメーチエヴォ国際空港 15:40:00.000 16:11:00.000




今後の仕事






All Articles