Skip to main content

Reads and archives NOAA Integrated Surface Database (ISD) files

Project description

pyisd

Tests Lint PyPI - Version Read the Docs (version)

Reads NOAA Integrated Surface Database (ISD) data.

Installation

pip install isd

Usage

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.

Development

Install the development requirements and the package in editable mode:

pip install -e '.[dev]'

To run the unit tests:

pytest

Release

To cut a new release of pyisd (assuming you have the appropriate permissions):

  1. Create a new branch, e.g. release/v0.1.4.
  2. Update pre-commit hooks: pre-commit autoupdate
  3. Update the CHANGELOG and pyproject.toml.
  4. Open a pull request with the changes.
  5. Merge the pull request once all required checks pass.
  6. Create an annotated tag, e.g. git tag -a v0.1.4.
  7. Push the annotated tag to github.
  8. Create a Github release. This will trigger a new PyPI release.

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

isd-0.3.0.tar.gz (9.2 kB view hashes)

Uploaded Source

Built Distribution

isd-0.3.0-py3-none-any.whl (8.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page