jarrodconnolly / xplane_apt_convert

Convert X-Plane airport data to GIS-friendly formats like GeoJSON or ESRI Shapefile.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

X-Plane apt.dat convert

Package version Supported Python versions Wheel support License

xplane_apt_convert is a Python package and CLI application allowing to convert X-Plane airport data to GIS-friendly formats like GeoJSON or ESRI Shapefile.

Example LELL airport layout

Input

X-Plane apt.dat files are used as input. Two input modes exist:

Note: Only tested with apt.dat files version 1100.

Output

The following output formats are supported:

Format Extension
ESRI Shapefile .shp
FlatGeobuf .fgb
GeoJSON .geojson
GeoJSON lines (GeoJSONSeq) .geojsonl
GeoPackage (GPKG) .gpkg
GML .gml
OGR_GMT .gmt
SQLite .sqlite

Supported Features

The following airport features are supported:

  • Windsocks (row code 19)
  • Ground signs (row code 20)
  • Runways (row code 100)
  • Pavement areas (taxiway and aprons) (header row code 110)
  • Ground markings (linear features) (header row code 120)
  • Airport boundary (header row code 130)
  • Aircraft startup locations (parking and gates) (row code 1300)
  • Airport metadata (row code 1302)

Installation

The xplane_apt_convert Python package can be installed using pip:

pip install xplane_apt_convert

Python 3.10 and above

When using Python 3.10 and above, you might encounter the following error during the installation of the bezier dependency: The BEZIER_INSTALL_PREFIX environment variable must be set.

To solve it, you can install the pure Python version of the bezier package by running:

BEZIER_NO_EXTENSION=true pip install bezier --no-binary=bezier

And then try installing xplane_apt_convert again.

See dhermes/bezier/issues/283 for more details about this issue.

CLI Basic Usage

Convert an airport in a local apt.dat file to GeoJSON:

python -m xplane_apt_convert -a LEBL -i ./apt.dat -o ./out/ -d GeoJSON

Convert multiple airports:

python -m xplane_apt_convert -a LEBL,LEGE,LERS,LELL -i ./apt.dat -o ./out/ -d GeoJSON

Download the recommended airport data files from the X-Plane Scenery Gateway and convert them:

python -m xplane_apt_convert -a LEBL,LEGE,LERS,LELL -g -o ./out/ -d GeoJSON

Other output file formats are available using the -d option, for example GeoJSON, ESRI Shapefile, or GPKG.

For information about all available options run the command using --help.

CLI help

Python Basic Usage

Convert an airport in a local apt.dat file to GeoJSON:

from xplane_airports.AptDat import AptDat
from xplane_apt_convert import ParsedAirport

input_file = "./apt.dat"
airport_id = "LEBL"

with open(input_file, "r") as f:
    apt_dat = AptDat.from_file_text(f.read(), input_file)

apt = apt_dat.search_by_id(airport_id)

p_apt = ParsedAirport(apt)
p_apt.export("./airport.geojson")

Download an airport from the X-Plane Scenery Gateway and convert it to ESRI Shapefile:

from xplane_airports.gateway import scenery_pack
from xplane_apt_convert import ParsedAirport

airport_id = "LEBL"

recommended_pack = scenery_pack(airport_id)
apt = recommended_pack.apt

p_apt = ParsedAirport(apt)
p_apt.export("./airport.shp", driver="ESRI Shapefile")

See the function's docstring for more information on all the allowed arguments.

License

This software is licensed under the terms of the MIT License.

About

Convert X-Plane airport data to GIS-friendly formats like GeoJSON or ESRI Shapefile.

License:MIT License


Languages

Language:Python 100.0%