openair

Crates.ioopenair
lib.rsopenair
version0.3.2
sourcesrc
created_at2019-04-26 15:16:19.043819
updated_at2024-10-12 20:19:27.066945
descriptionParser for airspace files in OpenAir format.
homepagehttps://github.com/dbrgn/openair-rs/
repositoryhttps://github.com/dbrgn/openair-rs/
max_upload_size
id130335
size63,131
Danilo Bargen (dbrgn)

documentation

README

openair-rs

CircleCI Rust Docs

A Rust parser for airspace files in OpenAir format (used by flight instruments like Skytraxx and others).

http://www.winpilot.com/UsersGuide/UserAirspace.asp (see also FORMAT.txt)

Docs: https://docs.rs/openair/

Status

Supported file format features:

  • Parse airspace metadata
  • Parse terrain metadata
  • Support polygon points
  • Support circles
  • Support arcs
  • Support AY/AF/AG extension records

Label placement hints (AT) and style records (SP, SB) are not supported.

Implementation Notes

Unfortunately the OpenAir format is really underspecified. Every device uses varying conventions. For example, there is nothing we can use as clear delimiter for airspaces. Some files delimit airspaces with an empty line, some with a comment. But on the other hand, some files even place comments between the coordinates so that they cannot be used as delimiter either.

This parser tries to be very lenient when parsing, based on real life data. The end of an airspace is reached when the next one starts (with an AC record) or when the file ends.

NOTE: Altitude levels without a unit specifier (e.g. "1000 GND") will be treated as feet!)

Example

You can try the parser using the example program:

$ cargo run --example parse_file example_data/Switzerland.txt

Serde Serialization

To include serialization of all data types, enable the serde feature.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 84

cargo fmt