プログラミング
Little Navmap を使ったフライトプランニング
Flight Planning with Little Navmap (tech.marksblogg.com)
要約
Little Navmap は、X-Plane や Microsoft Flight Simulator といったフライトシミュレーターに対応したオープンソースのフライトプランナーです。10年前にAlexander Barthel氏によって開始されたこのプロジェクトは、C++で書かれた約12万行のコードで構成されています。本記事では、このツールを使って2つのフライトプランを作成する手順を解説します。
全文翻訳
Little Navmap を使ったフライトプランニング
Little Navmap はオープンソースのフライトプランナーです。X-Plane や Microsoft Flight Simulator のようなフライトシミュレーターと連携して作業できます。このプロジェクトは10年前に Alexander Barthel 氏によって開始されました。約12万行の C++ コードで構成されており、UIのレンダリングには Qt5、OpenGL、D3D を使用しています。367 MB のインストール容量には、データが保存される134 MB の SQLite3 データベースが含まれています。このアプリケーションは、コードベースが桁違いに大きい QGIS を思い出させます。Little Navmap はルーティングに14K行の C++ しか必要とせず、メイン UI は約7K行、マップ表示とインタラクションは KDE の Marble に大きく依存しているため、21K行しか必要ありません。気象サポートにはわずか2K行のコードしか必要ありません。この記事を書いている時点で、GitHub には119件の未解決のイシューと992件のクローズされたイシューがあります。この記事では、Little Navmap を使って2つのフライトを計画する手順を説明します。
私のワークステーション
私は 5.7 GHz の AMD Ryzen 9 9950X CPU を使用しています。16コア32スレッドで、1.2 MB の L1、16 MB の L2、64 MB の L3 キャッシュを備えています。液体クーラーが取り付けられており、広々としたフルサイズの Cooler Master HAF 700 コンピューターケースに収められています。システムには 4,800 MT/s でクロックされる 96 GB の DDR5 RAM と、最大 12,400 MB/s の読み取り速度を持つ第5世代 Crucial T700 4 TB NVMe M.2 SSD が搭載されています。SSD にはヒートシンクが付いており、温度を下げるのに役立ちます。これが私のシステムの C ドライブです。システムは 1,200 ワットのフルモジュラー Corsair 電源で駆動され、ASRock X870E Nova 90 マザーボード上に配置されています。Windows 11 Pro を実行しています。なぜ私のプライマリワーク環境として Linux ベースのデスクトップを実行しないのか疑問に思っているかもしれませんが、私はまだ Nvidia GTX 1080 GPU を使用しており、Windows ではドライバーのサポートが優れており、ArcGIS Pro は Windows ネイティブでしかサポートされていません。
前提条件のインストール
フライトシミュレーターとしては Steam から購入した X-Plane 12 を使用しています。SteamDB の価格監視サービスによると、数ヶ月に一度短時間セールが行われます。Little Navmap 3.0.18 がインストールされており、これは11月にリリースされました。
Little Navmap、起動と実行
アプリケーションのテーマは、Window メニュー -> Style -> Dark を選択して変更しました。マップビューにはグローブを使用しています。これは View メニュー -> Projection -> Spherical Map Projection を通じて変更しました。Little Navmap は X-Plane の航空データベースを読み込むことができます。アプリケーションを初めて起動すると、このデータをインポートするように求められます。インポートを実行した際に報告されたアイテム数は以下の通りです。
ファイル: 15,930
空港: 38,890
VOR: 4,700
ILS: 11,387
NDB: 3,472
マーカー: 1,042
ウェイポイント: 244,105
空域: 24,213
Little Navmap は、シミュレーターで飛行中にライブ電子フライトプランとしても使用できます。Tools メニューで "Install Little XConnect in X-Plane Plugins" をクリックします。次に X-Plane 12 を起動し、新しいフライトを開始します。以下は、Cirrus SR-22T G6 航空機を選択し、タリンの Lennart Meri 空港 (TLL / EETN) から出発する様子です。これはシミュレーターの滑走路にいる私の航空機です。Little Navmap に戻り、Tools メニュー -> Connect to Flight Simulator をクリックします。X-Plane タブを選択し、ダイアログの下部にある "Connect" ボタンをクリックします。これで、シミュレーターから航空機の位置が Little Navmap に表示されるはずです。
タリンからコペンハーゲンへ
タリンの空港アイコンを右クリックして出発空港に設定します。次に、コペンハーゲンの Kastrup 空港 (CPH / EKCH) を目的地に設定します。Cirrus SR-22T G6 の航空機性能データをダウンロードしました。以下はその内容です。
[Options]
Metadata=Created by Little Navmap Version 2.4.5 (revision 0bde498) on 2020 06 17T16:12:26
ProgramVersion=2.4.5
FormatVersion=2.4.0
Name=Cirrus SR-22T G6
AircraftType=SR-22T
Description=
FuelAsVolume=true
JetFuel=false
[Perf]
UsableFuel=92
TaxiFuelLbsGal=1
ReserveFuelLbsGal=7
ExtraFuelLbsGal=1
ContingencyFuelPercent=10
ClimbVertSpeedFtPerMin=1200
ClimbSpeedKtsTAS=115
ClimbFuelFlowLbsGalPerHour=22
CruiseSpeedKtsTAS=183
CruiseFuelFlowLbsGalPerHour=14
DescentSpeedKtsTAS=160
DescentVertSpeedFtPerMin=850
DescentFuelFlowLbsGalPerHour=7
AlternateSpeed=120
AlternateFuelFlow=14
MinRunwayLength=1800
RunwayType=Soft
Aircraft メニュー -> Open Aircraft Performance をクリックします。次に上記の lnmperf ファイルを開きます。その後、Flight Plan メニュー -> Flight Plan Calculation をクリックします。デフォルト値をそのままにして計算を実行します。これが生成されたフライトプランです。マップをズームインすると、バルト海を横切り、スウェーデンを通過してデンマークに入るフライトの区間が見えます。Flight Plan メニュー -> Flight Plan Route Description をクリックします。上部にある "Load from Flight Plan" ボタンをクリックします。これでフライトプラン文字列の詳細が表示されるはずです。
ヘルシンキからバンコクへ
新しいフライトプランを開始し、Airbus A350-900 の航空機性能詳細を読み込みます。これがその性能ファイルです。
<?xml version="1.0" encoding="UTF-8"?>
<LittleNavmap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://www.littlenavmap.org/schema/lnmperf.xsd">
<AircraftPerf>
<Header>
<CreationDate>2024-03-05T15:18:29+01:00</CreationDate>
<FileVersion>1.0</FileVersion>
<ProgramName>Little Navmap</ProgramName>
<ProgramVersion>2.8.12</ProgramVersion>
<Documentation>https://www.littlenavmap.org/lnmperf.html</Documentation>
</Header>
<Options>
<Name>IniBuilds A350 - 900</Name>
<AircraftType>A359</AircraftType>
<Simulator>MSFS</Simulator>
<Description>A320 CFM Fenix</Description>
<FuelAsVolume>0</FuelAsVolume>
<JetFuel>1</JetFuel>
</Options>
<Perf>
<ContingencyFuelPercent>00.0</ContingencyFuelPercent>
<ExtraFuelLbsGal>0.000</ExtraFuelLbsGal>
<MinRunwayLengthFt>6000.000</MinRunwayLengthFt>
<ReserveFuelLbsGal>4409.25</ReserveFuelLbsGal>
<RunwayType>HARD</RunwayType>
<TaxiFuelLbsGal>1512.37</TaxiFuelLbsGal>
<UsableFuelLbsGal>48501.7</UsableFuelLbsGal>
<Alternate>
<FuelFlowLbsGalPerHour>14330.0</FuelFlowLbsGalPerHour>
<SpeedKtsTAS>250.000</SpeedKtsTAS>
</Alternate>
<Climb>
<FuelFlowLbsGalPerHour>24462.5</FuelFlowLbsGalPerHour>
<SpeedKtsTAS>360.000</SpeedKtsTAS>
<VertSpeedFtPerMin>1069.000</VertSpeedFtPerMin>
</Climb>
<Cruise>
<FuelFlowLbsGalPerHour>12215.8</FuelFlowLbsGalPerHour>
<SpeedKtsTAS>476.000</SpeedKtsTAS>
</Cruise>
<Descent>
<FuelFlowLbsGalPerHour>2407.450</FuelFlowLbsGalPerHour>
<SpeedKtsTAS>331.000</SpeedKtsTAS>
<VertSpeedFtPerMin>877.000</VertSpeedFtPerMin>
</Descent>
</Perf>
</AircraftPerf>
</LittleNavmap>
ヘルシンキ・ヴァンター空港 (HEL / EFHK) を出発空港、バンコクのスワンナプーム国際空港 (BKK / VTBS) を到着空港に設定します。空域制限は何も設定していないため、Little Navmap が自動生成したプランでは、ありえないことにロシア空域を通過するルートになっています。世界の現在の空域制限を考慮したフライトプランを生成するために SimBrief を使用します。ダミーの航空会社コードと便名を作成し、EFHK を出発地、VTBS を目的地、A350-900 を航空機タイプに設定しました。これが計画されたルートです。
上部の "Calculate & Compare" をクリックすると、フライトプラン文字列とさまざまな計算結果が表示されます。これがプレーンテキストのルート文字列です。
EFHK/22R N0492F360 KOIV4Q KOIVU DCT LARTI DCT NAVOT DCT LUTAL DCT BERIL/N0494F350 DCT BOKSU/N0492F360 DCT TOXAR/N0490F370 DCT LIBGA/N0495F360 DCT ROBTU/N0492F370 DCT KENIN DCT REVDA DCT UDROS DCT CRM UM11 REBLO DCT TABAS DCT MATAL T916 SUBUT T923 ERLEV M11 RODAR A909 BABUM/N0495F390 A909 LEMOD N644 DI A466 JHANG M875 IGONA/N0491F410 M875 LAPAN B209 JJS P646 TARED DCT WILLA WILA1C VTBS/20R
Little Navmap で、Flight Plan メニュー -> Flight Plan Route Description をクリックし、上記のフライトプランを貼り付けます。UI 下部にある "Create Flight Plan and Close" ボタンをクリックします。これにより、上記をさらに分析および調整できます。
この記事をお読みいただきありがとうございます。北米およびヨーロッパのクライアント向けにコンサルティングおよびハンズオン開発サービスの両方を提供しています。私のサービスがお客様のビジネスにどのように役立つかについてご相談したい場合は、LinkedIn を通じてご連絡ください。