Skip to main content

TeamOverbyeWeather

Python client for the Team Overbye Weather Data API at Texas A&M University — ERA5 reanalysis, HRRR history and forecasts, and NOAA/GFS forecasts, as PowerWorld .pww files.

Download, crop to a region, and crop in time, in one call.

Installation

pip install TeamOverbyeWeather

Python 3.10 or newer. No credentials needed.

Quick start

from TeamOverbyeWeather import WeatherClient

client = WeatherClient()

# What is available?
client.sources()                        # ['era5', 'hrrr', 'noaa']
client.types("hrrr")                    # ['archive', 'current', 'forecast', ...]
client.list("hrrr", "hourly_current")   # ['2026-07-21', '2026-07-20', ...]

# Download, cropped to Texas and to a six-hour window
client.download(
    "hrrr",
    type="hourly_current",
    dates="2026-07-21",
    region="TX",
    time_start="2026-07-21T06:00",
    time_end="2026-07-21T18:00",
    dest="./data",
)

Cropping happens server-side, so only what you asked for crosses the network — a Texas six-hour NOAA slice is 240 KB instead of the 120 MB full file.

One file is written per date key, already cropped, ready to open in PowerWorld.

Selecting a region

Use exactly one of:

client.download(..., region="TX")                       # one state
client.download(..., region=["TX", "OK", "NM"])         # union bounding box
client.download(..., iso="ERCOT")                       # ISO zone
client.download(..., bbox=(33.0, -100.0, 30.0, -96.0))  # lat_max, lon_min, lat_min, lon_max

List valid ids with client.region_ids("states") and client.region_ids("iso"). Multiple states crop to the union rectangle, not to the state outlines.

Selecting a time window

client.download(..., time_start="2026-07-21T06:00", time_end="2026-07-21T18:00")
client.download(..., time_start="2026-07-21T06:00")   # to the end of the file
client.download(..., time_end="2026-07-21T18:00")     # from the start

Times are UTC and both bounds are inclusive. datetime objects work too.

Data sources

Source Types Date key
era5 historical, texas YYYY-Qn
hrrr current, archive (15-min), hourly_current, hourly_archive, forecast YYYY-MM-DD, YYYY-MM, YYYY-MM-DDTHHZ
noaa recent, archive YYYY-MM-DDTHHZ
extreme events YYYY-MM-DD_Title_Zone

Extreme temperature events

62 curated historical events (1899–2023) — the three hottest and three coldest per ISO zone, plus notable scenarios like ERCOT's 2011 rolling outages. Each comes with an animation.

client.extreme.zones()                       # ISO zones with events
client.extreme.events("Texas")               # events in a zone, newest first
client.extreme.find("uri")                   # search by title

event = client.extreme.find("uri")[0]
client.extreme.download(event["key"], region_ids=["TX"], region_layer="states",
                        time_start="2021-02-15T00:00", dest="./data")
client.extreme.video(event["key"], dest="./data")     # the .mp4 animation
client.extreme.coverage("Texas", dest="./data")       # zone coverage map

Always take date keys from client.list(source, type) — formats differ per source, and NOAA recent / archive are separate folders rather than a date split.

Reading the data

from TeamOverbyeWeather import pww_io

header, stations, arr = pww_io.read_pww(open(path, "rb").read())
arr.shape        # (time, variable, latitude, longitude)

255 marks missing data. Latitude ascends, longitude descends.

Documentation

Full guides and API reference: https://chunsikpark.github.io/TeamOverbyeWeather/

Point-and-click alternative: https://weather-data-gui.pages.dev

demo.ipynb in this repository is a runnable walkthrough of everything above.

Problems or questions

Open an issue — bugs and data questions are both welcome. For bugs, include your version (TeamOverbyeWeather.__version__), the code you ran, and the full traceback.

Two things worth checking first:

  • AttributeError: 'WeatherClient' object has no attribute ... almost always means an old version. Run pip install --upgrade TeamOverbyeWeather, then restart your kernel — Python will not replace a module that is already imported, so upgrading mid-session appears to do nothing.
  • A source showing no data may genuinely be empty. Check client.list(source, type), and try client.catalog(refresh=True) — the catalog is cached for 30 minutes.

Development

git clone https://github.com/ChunSikPark/TeamOverbyeWeather.git
cd TeamOverbyeWeather
pip install -e .

Point the client at a local backend with WeatherClient(base_url="http://localhost:8000").

The backend and web portal live in a separate repository; this one holds the Python package only.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

teamoverbyeweather-0.4.2.tar.gz (10.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

teamoverbyeweather-0.4.2-py3-none-any.whl (26.7 kB view details)

Uploaded Python 3

File details

Details for the file teamoverbyeweather-0.4.2.tar.gz.

File metadata

  • Download URL: teamoverbyeweather-0.4.2.tar.gz
  • Upload date:
  • Size: 10.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for teamoverbyeweather-0.4.2.tar.gz
Algorithm Hash digest
SHA256 72b1bd174ca42331b6ad8bfab748cab1a20aaf5ce586e7760866d027feeb2b37
MD5 a7b6f278ca99def96245df5e83937779
BLAKE2b-256 19697ae7085a012d9a4e86eef4eaaad3cfdcf1e759aba024f24683dd4d6e023a

See more details on using hashes here.

File details

Details for the file teamoverbyeweather-0.4.2-py3-none-any.whl.

File metadata

File hashes

Hashes for teamoverbyeweather-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cf3091a2c382093d86bf0b0c652a0e983bee584550e87e7a793bb2fca0e82f40
MD5 ec6d74a76d8624a34533ba8db40eaf5a
BLAKE2b-256 630118a55ccfa6f975929ead59650b871acbbedca8f6fcf458acfa3f2311ee92

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.2 This release

2 files

0.4.1

2 files

0.4.0

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page