Skip to main content

One Letter Aerobatic Notation Parser

Project description

PyOlan

This WIP package contains a OLAN (One Letter Aerobatic Notation, https://openaero.net/) parser written in Python. The OLAN string is interpreted as a set of elements (loop, line, stallturn, spin etc). This is currently used by FCScore (https://www.flightcoach.org/fcscore/) to generate sequence definitions for automatic scoring.

Installation

    pip install pyolan

Install from source

    pip install -e .

Read the next figure from an olan string:

    from pyolan.figure_parser import OlanFig

    ostr = "/d'1 5% 2a,f (-3,6) 4h4^> p(2)...' dq"
    olan_array = ostr.split(" ")
    ofig, olan_array = OlanFig.take(olan_array)

parse an entire olan sequence, join the templates into one and plot:

    from flightdata import State
    from pyolan.parser import parse_olan

    olans: list[ParsedOlanFig] = parse_olan(
        "/d'1 5% 2a,f (-3,6) 4h4^> p(2)...' dq 4% 2b.''1.''+``` (-13,0) 3% ~2g~ (2,0) 3% iv```6s.....'' 22y````1.. (-3,0) 8% `24'zt`8''",
    )

    template = State.stack({fig.definition.info.short_name: fig.template for fig in olans}, "manoeuvre")

    template.plotlabels("manoeuvre").show()

TODO:

  • Modify so it respects the correct olan figure directions (prefers turnarounds when there is ambiguity)
  • Consider closer links with open-aero. Would it be better to read .seq files?
  • Add K factor calculation
  • Think about positioning the generated templates so they fit in the box better (probably better handled in the FlightAnalysis submodule).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyolan-0.1.1.tar.gz (30.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyolan-0.1.1-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file pyolan-0.1.1.tar.gz.

File metadata

  • Download URL: pyolan-0.1.1.tar.gz
  • Upload date:
  • Size: 30.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pyolan-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9034bfd452b42e05b28a5d61e8406eb8c980fc893d67f00d791d19ce55ff2da5
MD5 d7a8b242977819139aacf002b64c1d13
BLAKE2b-256 5ca89d8b69480f07abe1616b1c7d029b533bedaaa2b981798adf770df0c35dfa

See more details on using hashes here.

File details

Details for the file pyolan-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pyolan-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pyolan-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 51c493bf5aee588c18d38c7446247118cb674790a93c5bf39141972d276c08b2
MD5 6a7cb2a34f5a9eef941cc20475c106a3
BLAKE2b-256 282fafa531b2978324b4301c237203a8ed2eb1e5c3191326182c606c0ea44fa5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page