Skip to main content

usdata

PyPI Python CI Live checks License Docs

usdata.dev: public science, reproducible inputs

Reproducible acquisition of U.S. public scientific data. One Python SDK and CLI discovers curated NOAA and USGS datasets, fetches their files, and keeps a record of every input: a manifest names them, a lockfile pins them by checksum, and the record of what was fetched is what a methods section cites. Analysis stays in pandas and xarray; usdata only acquires. If you need every product one agency publishes, that agency's own library is the better tool; usdata is for pinning inputs across sources and proving later that they have not changed.

pip install "usdata[pandas]"
usdata search precipitation --location Oklahoma
usdata fetch noaa:ghcn-daily -p stations=USW00013967 --start 2024-05-06 --end 2024-05-07

Save the same station query as dataset.yaml in your working directory:

name: first-station
sources:
  - dataset: noaa:ghcn-daily
    start: 2024-05-06
    end: 2024-05-07
    params:
      stations: USW00013967

Then fetch and pin its inputs, and print their citation:

usdata pull dataset.yaml && usdata cite dataset.yaml

The first pull writes dataset.lock.json; later pulls restore its pinned assets.

From Python, using the same dataset.yaml:

from usdata import build_query, fetch, get, pull

query = build_query(start="2024-05-06", end="2024-05-07", stations="USW00013967")
items = fetch(get("noaa:ghcn-daily"), query)
frame = items[0].open()  # pandas DataFrame, units and provenance in frame.attrs
result = pull("dataset.yaml")  # every manifest source, pinned in dataset.lock.json
print(result.fetched[0].provenance.checksum)  # what usdata cite reports

Alpha. Releases are tested and lockfiles are stable, but the Python API and CLI can change between minor versions; the changelog marks breaking changes.

Where to look

usdata.dev What it is for: the dataset browser and worked examples with saved results
docs.usdata.dev How to use it: install, getting started, guides, dataset notes, and reference
Severe-weather case study One tornado, six sources, one manifest and lockfile, ending in a citation

Twenty-seven datasets are available today and nineteen more are planned, grouped by agency and product family in the catalog.

How this compares

usdata resolves a place, a time window, and a few parameters to the exact files that satisfy them, then pins those files so the same inputs can be restored and verified later. Neighbouring tools each do part of that.

Tool What it does What usdata adds
pooch Downloads and verifies files from a registry of names, hashes, and a base URL you write Discovery: the query resolves to the URLs, and the lockfile is written, not authored
intake Describes datasets in catalogs and opens them through drivers Checksums, lockfiles, and provenance; usdata stops at handing a file to pandas or xarray
DVC Versions data files and can track one URL by its ETag or hash Knowing which URLs a scientific question needs, across agencies
Herbie Deep access to model output, including subsetting GRIB2 through index files One interface across observations, radar, satellite, and models, with a lockfile; usdata's index-file fetch reproduces Herbie's for that reason
dataretrieval Full coverage of USGS water data Cross-agency pinning; use dataretrieval for USGS breadth

Contributing

Setup, commands, checks, and the release procedure are in CONTRIBUTING.md. The project record lives beside it: architecture, testing, decisions, roadmap, and versioning. The main way the project grows is a new dataset, following adding a dataset.

License

Apache-2.0.

Release files for usdata 0.26.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for usdata 0.26.0
File Size Uploaded
usdata-0.26.0.tar.gz 282.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for usdata 0.26.0
File Interpreter ABI Platform
usdata-0.26.0-py3-none-any.whl Python 3 none any Details

Total release size: 609.3 kB

Release files / usdata-0.26.0.tar.gz

Download URL usdata-0.26.0.tar.gz
Size 282.6 kB
Tags Source
SHA-256 checksum
How to use checksums
cdf9117b025394927d65d33740031b38af90f016dbc38fb33767e177d75c704f
BLAKE2b-256 checksum
How to use checksums
70b8b8e1658a12854e0ab78a3afee2f1a29f1f8a2a3a8ce64139b9a87837664c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / usdata-0.26.0-py3-none-any.whl

Download URL usdata-0.26.0-py3-none-any.whl
Size 326.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf045cbdd6fcb2e7ec5e7dbb3fc5f23d47ef27c8b69b1343e134269f3a2bb2fa
BLAKE2b-256 checksum
How to use checksums
19fc8dd243972ce3d7e3b4129ef778fc3ce7fc0831ebeec7214eae04ae1943be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.27.0

2 release files

This release

0.26.0 This release

2 release files

0.25.0

2 release files

0.24.0

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.20.0

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page