Reads NOAA Integrated Surface Database (ISD) data.
pip install isd
There is a simple command line interface.
The isd record
command prints a single record in JSON format:
isd record tests/data/720538-00164-2021
The Python API allows reading compressed and uncompressed ISD files:
from isd import Batch
batch = Batch.from_path("isd-file")
for record in batch:
print(record)
Streaming is also supported:
import isd.io
with isd.io.open("isd-file") as records_iterator:
records = list(records_iterator)
There is currently no parsing of the additional_data
section, but all mandatory fields are parsed out into appropriately-typed fields on a Record
.
Install the development requirements and the package in editable mode:
pip install -e '.[dev]'
To run the unit tests:
pytest
To cut a new release of pyisd (assuming you have the appropriate permissions):
- Create a new branch, e.g.
release/v0.1.4
. - Update pre-commit hooks:
pre-commit autoupdate
- Update the CHANGELOG and pyproject.toml.
- Open a pull request with the changes.
- Merge the pull request once all required checks pass.
- Create an annotated tag, e.g.
git tag -a v0.1.4
. - Push the annotated tag to github.
- Create a Github release. This will trigger a new PyPI release.