This release is a pre-release and may not be stable for production use.
arl-met
Read, write, subset, and sample NOAA ARL meteorological files.
arl-met provides a Python-first interface to the ARL packed meteorology
format used by HYSPLIT and related workflows. It supports:
- low-level record-preserving reads and writes through
File,RecordSet, andDataRecord - xarray Dataset reads and common-case writes through
open_dataset()andwrite_dataset() - NOAA source fetching helpers for common ARL archives
- crop-before-unpack subset extraction with
extract_subset() - vertical helper functions such as
pressure(),z_agl(), andz_msl() - point sampling with
sample_points() - joining files with
concat()andconcat_by_time()(e.g. 6-hourly into daily)
Alpha status
This is an alpha release. The core read/write/subset APIs are usable, but the package is still tightening its high-level contracts and release surface.
Current strengths:
- low-level ARL fidelity, including preservation of trailing
DIF*records - xarray-native analysis workflow for common ARL files
- direct subset extraction and point sampling
- tested support for Python 3.10 through 3.12
Current limitations:
write_dataset()is intentionally conservative and targets the flat common-case Dataset contract- complex multi-record DIFF chains are not tested
- WRF vertical flag 5 is not implemented
Installation
Install the core package:
pip install arlmet
Install the optional source-fetching dependencies:
pip install "arlmet[sources]"
For development:
git clone https://github.com/jmineau/arl-met.git
cd arl-met
uv sync --dev
Quick examples
Open an ARL file as a Dataset:
import arlmet
ds = arlmet.open_dataset("met.arl")
print(ds)
Modify a Dataset and write it back:
import arlmet
ds = arlmet.open_dataset("met.arl")
ds["TEMP"] = ds["TEMP"] - 273.15
ds["WWND"].attrs["diff"] = "DIFW"
arlmet.write_dataset(ds, "edited.arl")
Extract a subset without unpacking the full file first:
import arlmet
arlmet.extract_subset(
"met.arl",
"subset.arl",
bbox=(-114.0, 39.0, -110.0, 42.0),
levels=[0, 1, 2],
).close() # returns the new file opened for reading
Join short files into longer ones (HYSPLIT accepts at most 12 met files per run):
import arlmet
# join a list of files into one (ordered by valid time)
arlmet.concat(["20240101_00_hrrr", "20240101_06_hrrr"], "20240101_hrrr").close()
# or batch a whole directory into daily files
arlmet.concat_by_time(
"hrrr/", "daily/", freq="1D", pattern="*_hrrr", template="{time:%Y%m%d}_hrrr"
)
Use the low-level writer for irregular layouts:
import numpy as np
import pandas as pd
import arlmet
grid = arlmet.Grid(
projection=arlmet.Projection(
pole_lat=90.0,
pole_lon=0.0,
tangent_lat=1.0,
tangent_lon=1.0,
grid_size=0.0,
orientation=0.0,
cone_angle=0.0,
sync_x=1.0,
sync_y=1.0,
sync_lat=-10.0,
sync_lon=20.0,
),
nx=20,
ny=20,
)
vertical_axis = arlmet.VerticalAxis(flag=2, levels=[0.0, 1000.0])
time = pd.Timestamp("2024-07-18 00:00")
prss = np.ones((grid.ny, grid.nx), dtype=np.float32)
wwnd = np.ones((grid.ny, grid.nx), dtype=np.float32)
with arlmet.File("custom.arl", mode="w", source="TEST", grid=grid, vertical_axis=vertical_axis) as arl:
rs = arl.create_recordset(time, forecast=0)
rs.create_datarecord("PRSS", level=0, forecast=0, data=prss)
rs.create_datarecord("WWND", level=1, forecast=0, data=wwnd, diff="DIFW")
Records are held in memory until the file is flushed or closed. When writing
many time steps, call arl.flush() after filling each one so memory stays
bounded by a single time step.
Resources
Documentation is available at https://jmineau.github.io/arl-met/
Useful ARL/HYSPLIT references:
- HYSPLIT User Guide for the broader model and file-format context.
- HYSPLIT meteorology page for the ARL meteorology format overview.
- READY archive for the available meteorology archives.
- GDAS1 packing notes for a concrete example of ARL packing behavior.
Related project:
- ARLreader, which focuses on GDAS1 files, while
arl-mettargets a broader ARL/xarray workflow.
Release notes
See CHANGELOG.md for release history.
Contributing
Contributions are welcome. See CONTRIBUTING.md for development setup and contribution guidelines.
Use of AI coding agents
This project is developed with the help of AI coding agents, directed and reviewed by the maintainer, who owns the design and the science.
License
This project is licensed under the MIT License. See LICENSE.
Metadata
Release files for arlmet 0.1.0a9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| arlmet-0.1.0a9.tar.gz | 105.8 kB | Details |
Built distributions (wheels)
Total release size: 1.1 MB
Release files / arlmet-0.1.0a9.tar.gz
| Download URL | arlmet-0.1.0a9.tar.gz |
|---|---|
| Size | 105.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
20c35e3c4cb6776d44d4bb6d47b9f8d6d4d416d28f9be585d483a81f3781bab8
|
|
BLAKE2b-256 checksum How to use checksums |
b3853554776ab13ab4beafd2cb1b6a7793d06a41331c7a3527c0d49145cda37f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / arlmet-0.1.0a9-cp312-cp312-win_amd64.whl
| Download URL | arlmet-0.1.0a9-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 84.2 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
05b8f181e3f9aa2a6595ce02f1844a98831d0ad213e5aa5c209eccf164c0866e
|
|
BLAKE2b-256 checksum How to use checksums |
fc47a70144f3f3e0c9d12a04b1ff0898821fbc8b989e3015d3ae37d11f76beae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / arlmet-0.1.0a9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
| Download URL | arlmet-0.1.0a9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 91.0 kB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
3a9a70fadf48bb26c702c0b6a5da1b13f624e78dd9c94188c7206fab50e030d1
|
|
BLAKE2b-256 checksum How to use checksums |
a09c24756561dcaafde3d70d4e1350c54c2d58ca4fc91fcc3dc9d655de08c1b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / arlmet-0.1.0a9-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | arlmet-0.1.0a9-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 81.7 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5e1bd2d8c5702091127c85ad7112163a950e136f2b9e7bb7d5ed9949ff492fcf
|
|
BLAKE2b-256 checksum How to use checksums |
2f3238cb1aaa100c6e3e24cb06883e94a6a4dd4e747da34b49529a8a9b9b7e49
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / arlmet-0.1.0a9-cp312-cp312-macosx_10_13_x86_64.whl
| Download URL | arlmet-0.1.0a9-cp312-cp312-macosx_10_13_x86_64.whl |
|---|---|
| Size | 81.3 kB |
| Tags | CPython 3.12 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
f39b2420462a342960596b8f0fcc886a8eef07ac2ec68807e2735a8ab7516265
|
|
BLAKE2b-256 checksum How to use checksums |
ac42705ce17aa1d8592f8eff9c0ce18d9b05bf149de5fafd96cb014bce1aba17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / arlmet-0.1.0a9-cp311-cp311-win_amd64.whl
| Download URL | arlmet-0.1.0a9-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 84.2 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c209903549b954ddfb892cb64a284ad27b331ce664059a06746354c13d49fe30
|
|
BLAKE2b-256 checksum How to use checksums |
52d3400a5b9eef63b7a752ea2c8525aed03d067b2e98fbac37e2ba56f27e6fae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / arlmet-0.1.0a9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
| Download URL | arlmet-0.1.0a9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 90.5 kB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
a5f3a1a952dac392644249cf78171e332cf1c8ff885a0a9aa767f5324ee4402d
|
|
BLAKE2b-256 checksum How to use checksums |
1095ca6acd32ba8532c933021c644eece70c646710009de87196936ea4b79f86
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / arlmet-0.1.0a9-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | arlmet-0.1.0a9-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 81.7 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1e6d7cc5c39e340df02fe40ddffd9a909f347f36a4ffb9985cfaedd12241520a
|
|
BLAKE2b-256 checksum How to use checksums |
ea62664f86512db6b5347581662cafcee4b676cfad8e204f949e69189c7ee856
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / arlmet-0.1.0a9-cp311-cp311-macosx_10_9_x86_64.whl
| Download URL | arlmet-0.1.0a9-cp311-cp311-macosx_10_9_x86_64.whl |
|---|---|
| Size | 81.3 kB |
| Tags | CPython 3.11 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
860f4353946933952fd60683a2a16e8ff73fb3669f5b6a055c3afecb415b44af
|
|
BLAKE2b-256 checksum How to use checksums |
39e58863ce8b1218d9bf82ecddf1f2a34a3c145a4fca8c844e163f3cef639b0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / arlmet-0.1.0a9-cp310-cp310-win_amd64.whl
| Download URL | arlmet-0.1.0a9-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 84.2 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f21877a210111faeb477d9c13cbff55c09a3bfa3f45ed51354c44a9404980012
|
|
BLAKE2b-256 checksum How to use checksums |
07e29763c48aa91d27849a59af6d2597c44f8ecce27596b5dc461ebfb0b490dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / arlmet-0.1.0a9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
| Download URL | arlmet-0.1.0a9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 90.4 kB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
fd949e238688af872c31620a63a4e95660e80c45ee04704d686ec0cd288f94e6
|
|
BLAKE2b-256 checksum How to use checksums |
6f87b2aba7aa9a942c0f5b13b51bfd55a2ff024ffea87ab574ddc14cc43b2e4e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / arlmet-0.1.0a9-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | arlmet-0.1.0a9-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 81.7 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
dc8a3044c29eda517611f6d31aa13aa0087d7730cf3366d4d581b7e5b14cedb1
|
|
BLAKE2b-256 checksum How to use checksums |
ce92ba4697560db3f103150bcb4b34ae2c57e78ce73e1312dc634864708b952d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / arlmet-0.1.0a9-cp310-cp310-macosx_10_9_x86_64.whl
| Download URL | arlmet-0.1.0a9-cp310-cp310-macosx_10_9_x86_64.whl |
|---|---|
| Size | 81.3 kB |
| Tags | CPython 3.10 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
4380525bf6d2829331815b0d257e07148449c5ed390e3c3e9b995333402e9217
|
|
BLAKE2b-256 checksum How to use checksums |
9756a123cfd44feae30218f157756aaedd79f020f17ca6a95300488f7a8e71a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency log