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/Weather_data_GUI/

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.1.tar.gz (26.6 kB 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.1-py3-none-any.whl (26.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for teamoverbyeweather-0.4.1.tar.gz
Algorithm Hash digest
SHA256 cc3de1cc3d68f93f68bd431482b4d326722751661b604216224497677bc98dcd
MD5 f8af635b5873dc92b74313e9c49c562c
BLAKE2b-256 531a26d85f66480b2b31387907384b3063672a43dc852435f75dd17f566c4680

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for teamoverbyeweather-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9f8f52791a5d33e53f4a736f2d01420dad9c85b2f2bfdb194478352ef9c1f6c5
MD5 44f39c6c2ffc8925925014a8028cbc88
BLAKE2b-256 c468fe4543f0acf1a6f16cdc1927fde1bca8ca371df9ca2294aeb5ca0410834a

See more details on using hashes here.

Release history Release notifications | RSS feed

0.4.2

2 files

This release

0.4.1 This release

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