Skip to content
forked from slavak/PyNotam

Notice To Airmen Parser Written in Python

License

Notifications You must be signed in to change notification settings

Noon-tech/PyNotam

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyNotam

Notice To Airmen Parser module written in Python.

This provides a means to parse standard format ICAO NOTAMs, and extract useful information from them without having to do any string processing yourself.

Usage

Parsing a NOTAM is as easy as:

>>> s = """(A1912/15 NOTAMN
Q) LOVV/QWPLW/IV/BO/W/000/130/4809N01610E001
A) LOVV B) 1509261100 C) 1509261230
E) PJE WILL TAKE PLACE AT AREA LAAB IN WALDE
PSN:N480930 E0161028 RADIUS - 1NM
F) GND G) FL130)"""
>>> n = notam.Notam.from_str(s)

Now you can access all information provided in the NOTAM easily and natively:

>>> n.valid_from
datetime.datetime(2015, 9, 26, 11, 0, tzinfo=datetime.timezone.utc)
>>> n.area
{'lat': '4809N', 'long': '01610E', 'radius': 1}

You can also get a decoded form of the NOTAM, with all ICAO abbreviations expanded, with a single method call:

>>> print(n.decoded())
(A1912/15 NOTAMN
Q) LOVV/QWPLW/IV/BO/W/000/130/4809N01610E001
A) LOVV B) 1509261100 C) 1509261230
E) Parachute Jumping Exercise WILL TAKE PLACE AT AREA LAAB IN WALDE
Position:N480930 E0161028 RADIUS - 1NM
F) Ground G) FL130

For a full list of the fields available in a Notam object, see its __init__ method in the code.

Requirements

Tested on Python 3.5.

Parsing grammar implemented with Erik Rose's excellent module Parsimonious. To install it:

> pip install parsimonious

About

Notice To Airmen Parser Written in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%