SynopticPy
Gives you access to real-time and historical surface-based weather and environmental observations for thousands of stations.
https://github.com/blaylockbk/SynopticPy
Category: Sustainable Development
Sub Category: Data Catalogs and Interfaces
Keywords
mesonet mesowest polars python synoptic-api weather
Keywords from Contributors
big-data-program cfgrib ecmwf-data gfs grib grib2 hrrr noaa-data nomads numerical-weather-prediction
Last synced: about 20 hours ago
JSON representation
Repository metadata
Retrieve mesonet weather data as Polars DataFrames from Synoptic's Weather API.
- Host: GitHub
- URL: https://github.com/blaylockbk/SynopticPy
- Owner: blaylockbk
- License: mit
- Created: 2020-08-19T02:52:50.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2026-06-03T04:46:15.000Z (18 days ago)
- Last Synced: 2026-06-11T07:06:11.016Z (10 days ago)
- Topics: mesonet, mesowest, polars, python, synoptic-api, weather
- Language: Python
- Homepage: https://synopticpy.readthedocs.io/
- Size: 34.6 MB
- Stars: 73
- Watchers: 3
- Forks: 8
- Open Issues: 6
- Releases: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.cff
README.md
Synoptic API for Python
📘 Documentation | 💬 Discussions | 🚑 Issues
Synoptic's Weather API provides real-time and historical surface-based weather and environmental observations for thousands of mesonet stations, and the open-access data is free. More data and enhanced services may be purchased (from Synoptic, not me).
I'm a Synoptic user. I wrote this package to conveniently request data from Synoptic in a Pythonic way and convert its returned JSON to a Polars DataFrame.
from datetime import timedelta
from synoptic import TimeSeries
df = TimeSeries(
stid="wbb",
recent=timedelta(minutes=30)
).df()

I'm sharing this package to improve my skills with Polars and gain more experience in building and maintaining open-source Python packages. If you came across this package, I hope you find it valuable.
Best of Luck 🍀
-Brian
🐍 Install
uv add SynopticPy
pip install SynopticPy
conda install -c conda-forge synopticpy
Configure Token
[!IMPORTANT]
🎟️ To use SynopticPy you need a Synoptic API token.
There are three ways you can configure your Synoptic API token:
- Set an environment variable
SYNOPTIC_TOKENwith your token. For example, in bash:export SYNOPTIC_TOKEN="yourTokenHere123456789" - Create a file
~/.config/SynopticPy/config.tomlwith the followingtoken = "yourTokenHere123456789" - Pass your token whenever you use one of SynopticPy's classes.
TimeSeries( stid="wbb", recent=30, token="yourTokenHere123456789" )
How to Cite and Acknowledge
If SynopticPy played an important role in your work, please tell me about it! Also, consider including a citation or acknowledgement in your article or product.
Suggested Citation
Blaylock, B. K. (YEAR). SynopticPy: Synoptic API for Python (Version 20??.?.?) [Computer software]. https://github.com/blaylockbk/SynopticPy
Suggested Acknowledgment
A portion of this work used code generously provided by Brian Blaylock's SynopticPy Python package (https://github.com/blaylockbk/SynopticPy)
[!TIP]
📈 See also my SynopticPy Web App which lets you plot station data in your browser powered by pyscript!
Citation (CITATION.cff)
cff-version: 1.2.0
abstract: The Synoptic Weather API gives access to real-time and historical surface-based weather and environmental observations for thousands of stations. SynopticPy is a Python package that provides convenient access to data from the Synoptic API and convert the returned JSON data to a Polars DataFrame. This may be helpful to others who are getting started with the Synoptic API and Python.
message: "If you use this software, please cite it as below."
authors:
- family-names: Blaylock
given-names: Brian K.
email: blaylockbk@gmail.com
orcid: "https://orcid.org/0000-0003-2133-9313"
title: "SynopticPy: Synoptic API for Python"
version: 2024.11.0
date-released: "2024-11-09"
url: "https://synopticpy.readthedocs.io/"
repository-code: "https://github.com/blaylockbk/SynopticPy"
type: software
keywords:
- meteorology
- weather
- atmosphere
license: "MIT"
identifiers:
- type: doi
value: 10.5281/zenodo.4567546
Owner metadata
- Name: Brian Blaylock
- Login: blaylockbk
- Email:
- Kind: user
- Description: Meteorologist
- Website: http://home.chpc.utah.edu/~u0553130/Brian_Blaylock/home.html
- Location: Monterey, CA
- Twitter: blaylockbk
- Company:
- Icon url: https://avatars.githubusercontent.com/u/6249613?u=83e593317387e0cfacc6d86df40f6d2ee2f13676&v=4
- Repositories: 45
- Last ynced at: 2024-03-15T18:11:46.924Z
- Profile URL: https://github.com/blaylockbk
GitHub Events
Total
- Release event: 3
- Delete event: 1
- Pull request event: 10
- Fork event: 1
- Issues event: 24
- Watch event: 21
- Issue comment event: 13
- Push event: 90
- Create event: 7
Last Year
- Release event: 1
- Pull request event: 2
- Fork event: 1
- Issues event: 1
- Watch event: 3
- Push event: 11
- Create event: 2
Committers metadata
Last synced: 2 days ago
Total Commits: 539
Total Committers: 6
Avg Commits per committer: 89.833
Development Distribution Score (DDS): 0.089
Commits in past year: 17
Committers in past year: 1
Avg Commits per committer in past year: 17.0
Development Distribution Score (DDS) in past year: 0.0
| Name | Commits | |
|---|---|---|
| Brian Blaylock | b****k@g****m | 491 |
| Brian Blaylock | b****r@n****l | 20 |
| Nathan Blaylock | n****k@g****m | 14 |
| Weidav | d****r@g****m | 11 |
| Brian | = | 2 |
| The Gitter Badger | b****r@g****m | 1 |
Committer domains:
- gitter.im: 1
- nrlmry.navy.mil: 1
Issue and Pull Request metadata
Last synced: 2 months ago
Total issues: 37
Total pull requests: 24
Average time to close issues: 6 months
Average time to close pull requests: 5 days
Total issue authors: 10
Total pull request authors: 4
Average comments per issue: 1.16
Average comments per pull request: 0.46
Merged pull request: 20
Bot issues: 0
Bot pull requests: 0
Past year issues: 9
Past year pull requests: 13
Past year average time to close issues: 6 days
Past year average time to close pull requests: 11 days
Past year issue authors: 2
Past year pull request authors: 1
Past year average comments per issue: 0.56
Past year average comments per pull request: 0.23
Past year merged pull request: 10
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- blaylockbk (27)
- jh-206 (2)
- ngblaylock (1)
- hayesfj (1)
- mysterefrank (1)
- j0nes2k (1)
- nick-dawson (1)
- vandam60 (1)
- dsjstc (1)
- charliephillips4201 (1)
Top Pull Request Authors
- blaylockbk (20)
- Weidav (2)
- gitter-badger (1)
- ngblaylock (1)
Top Issue Labels
- web app (6)
- bug (3)
- help wanted (2)
- pyscript (1)
- 🛑 BLOCKED (1)
- enhancement (1)
Top Pull Request Labels
- 🛑 BLOCKED (1)
- web app (1)
Package metadata
- Total packages: 1
-
Total downloads:
- pypi: 5,345 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 11
- Total maintainers: 1
pypi.org: synopticpy
Retrieve mesonet weather data as Polars DataFrames from Synoptic's Weather API.
- Homepage: https://github.com/blaylockbk/SynopticPy
- Documentation: https://synopticpy.readthedocs.io/
- Licenses: MIT License
- Latest release: 2026.6.0 (published 18 days ago)
- Last Synced: 2026-06-17T13:47:54.536Z (4 days ago)
- Versions: 11
- Dependent Packages: 0
- Dependent Repositories: 1
- Downloads: 5,345 Last month
-
Rankings:
- Dependent packages count: 7.31%
- Stargazers count: 10.923%
- Forks count: 11.986%
- Average: 16.143%
- Dependent repos count: 22.088%
- Downloads: 28.408%
- Maintainers (1)
Dependencies
- actions/checkout v3 composite
- actions/configure-pages v3 composite
- actions/deploy-pages v2 composite
- actions/setup-node v3 composite
- actions/upload-pages-artifact v1 composite
- 249 dependencies
- @11ty/eleventy ^2.0.1 development
- @sherby/eleventy-plugin-files-minifier ^1.1.1 development
- cross-env ^7.0.3 development
- rimraf ^5.0.1 development
- actions/checkout v4 composite
- actions/setup-python v5 composite
- pypa/gh-action-pypi-publish release/v1 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- pytest <8 test
- 140 dependencies
Score: 14.745498256643808