Skip to main content

Bidirectional METAR/SPECI ↔ TAF ↔ SIGMET/AIRMET ↔ VAA/TCA ↔ IWXXM 3.0 converter.

Project description

aviconv-met

Bidirectional METAR / SPECI ↔ TAF ↔ SIGMET / AIRMET ↔ VAA / TCA ↔ IWXXM 3.0 converter — part of the aviconv monorepo.

pip install aviconv-met

ICAO mandated IWXXM (XML weather) for OPMET exchange in November 2020. Existing toolchains for it are vendor-locked or one-way. aviconv-met is the pip-installable, MIT-licensed, round-trip alternative.

Public surface

from aviconv_met import (
    Metar, Taf, Sigmet, Airmet, Vaa, Tca,
    parse_metar, format_metar,
    parse_taf, format_taf,
    parse_sigmet, format_sigmet,
    parse_advisory, format_advisory,
)
from aviconv_met.iwxxm import to_iwxxm, from_iwxxm

Frozen pydantic-v2 models for every report type, byte-stable text round-trip for all six message types, and XSD-validated IWXXM 3.0 emission with field-level round-trip on inbound IWXXM.

CLI

Mounted on the umbrella aviconv binary (provided by aviconv-core):

aviconv met parse <file>           # text → JSON
aviconv met format <file>          # JSON → text
aviconv met to-iwxxm <file>        # text → IWXXM 3.0 XML
aviconv met from-iwxxm <file>      # IWXXM XML → JSON or text
aviconv met validate <file>        # run validators

Each subcommand reads from - for stdin and writes stdout unless -o PATH. Exit codes: 0 ok, 1 parse error, 2 validation error, 3 schema error.

Round-trip semantics

  • Text round-trip (METAR/TAF/SIGMET/AIRMET/VAA/TCA): byte-stable — format_*(parse_*(text)) == text whenever the model came from parse_*.
  • IWXXM round-trip: field-level — from_iwxxm(to_iwxxm(report)) == report. GML IDs and namespace prefix choices are intentionally not preserved.

Licence

MIT for aviconv-met itself. Bundled WMO IWXXM 3.0 schemas are distributed under WMO open-data terms — see LICENSES/README.md.

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

aviconv_met-0.3.1.tar.gz (52.2 kB view details)

Uploaded Source

Built Distribution

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

aviconv_met-0.3.1-py3-none-any.whl (57.0 kB view details)

Uploaded Python 3

File details

Details for the file aviconv_met-0.3.1.tar.gz.

File metadata

  • Download URL: aviconv_met-0.3.1.tar.gz
  • Upload date:
  • Size: 52.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aviconv_met-0.3.1.tar.gz
Algorithm Hash digest
SHA256 35eea3546b9122c51588fcfcef13073b4fb1e8b464f8276d805f9f010c5be68d
MD5 6a36031b6dbd0122b94c3196b93f510e
BLAKE2b-256 da8863bfe34f1d8ab6e213f99793caa177a756ceac693ce12300dea47b5cae87

See more details on using hashes here.

Provenance

The following attestation bundles were made for aviconv_met-0.3.1.tar.gz:

Publisher: release.yml on ams-mmd/aviconv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aviconv_met-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: aviconv_met-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 57.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aviconv_met-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b1d99cd904c22190581d9e0f140ef6eeb240bec00e24b8106cb9bf553cdf7e70
MD5 e00bd153974dd1bea53d3782a3aa7f12
BLAKE2b-256 7568e05706691c440e1084eb5b383ac0f9df28e68a9773ae3c9906ba15a960e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for aviconv_met-0.3.1-py3-none-any.whl:

Publisher: release.yml on ams-mmd/aviconv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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