nasrparse
nasrparse is a parser for the National Airspace System Resources CSV files, released every 28 days by the FAA. It allows pilots, dispatchers, and others interested in flight data to quickly parse the files into Python dictionaries or a SQLite database for use in other programs. For example, the parsed data can then be used as a database for flight planning tools.
If you are interested in seeing the differences between each data cycle, have a look at NASRDiff.
Versions
| Version | Description | Release Date |
|---|---|---|
| 1.1.0 | Added to_str() methods to records. |
2025-11-12 |
| 1.0.1 | __repr()__ Bugfix for enums. |
2025-11-06 |
| 1.0.0 | Initial public release. | 2025-11-06 |
A changelog is available in the CHANGELOG.md with additional detail and guidance.
Installation
Install using pip:
pip install nasrparse
Usage
Usage is relatively straightforward. Setting the path to the files can be
somewhat finnicky, as it will only accept relative paths. To keep things simple,
place the NASR files in subdirectory of your project directory. Otherwise, if
you want to go up several folders into a download folder, it might end up
looking like ../../../../Downloads/28DaySubscription_Effective_[date]/CSV_Data/[date]_CSV.
Given the amount of data, parsing can take a moment. If dumping the data to a file, that can also add time. Dumping every airport to JSON can take around 10 seconds, and the result file is about 16MB.
Examples
Start by importing nasrparse, setting the path to the NASR CSV directory, and
then parsing the data.
import nasrparse
# Initialize the parser:
from nasrparse import NASR
# Set the relative path to where you have the NASR CSV files:
n = NASR("./data/CSV_DATA/20_MAR_2025_CSV")
# Parse the data in the file:
n.parse()
Exporting Data
Database
Each object has its own to_db() method. This is useful when you would like
the data to persist, or query it using standard database methods:
from nasrparse import NASR
n = NASR("./data/CSV_DATA/20_MAR_2025_CSV")
n.parse()
n.to_db("NASR.db")
NASR Objects
The individual NASR objects are exposed in the package and include the FAA
descriptions in the code documentation. More detail can also be found in the
individual [section] DATA LAYOUT.pdf (e.g. APT DATA LAYOUT.pdf) files
included with the CSV files in the same directory.
Metadata
Release files for nasrparse 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nasrparse-1.1.0.tar.gz | 129.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nasrparse-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 351.5 kB
Release files / nasrparse-1.1.0.tar.gz
| Download URL | nasrparse-1.1.0.tar.gz |
|---|---|
| Size | 129.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7fc6d50cd5bfebcd8a9a70839a6e970946c2e20ca2e7eddd3a7da7bd7d5eeec4
|
|
BLAKE2b-256 checksum How to use checksums |
59c8dfc7b028a6189c43d5959f93f7c5cc5ffc131f6e4e14422ae2dbba96c655
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / nasrparse-1.1.0-py3-none-any.whl
| Download URL | nasrparse-1.1.0-py3-none-any.whl |
|---|---|
| Size | 222.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9c0341702e06bbeee98fd7b7194f4fd3c1d14df36a82fb6d654ec74ab5090122
|
|
BLAKE2b-256 checksum How to use checksums |
71d765003c19ff0b06b5a38e4be50c9c3caeb6333f0d792095034df0a639380e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|