A Python 3 client for retrieving data from the NWS Weather Forecast API
Project description
nwswx
A Python 3 client for retrieving data from the NWS Weather Forecast API.
Installation
pip install nwswx
Requirements
- Python 3.6+
- Requests
Package Build Requirements
The full list of packages required to build this module can be found in requirements.txt
Documentation
Full documentation, including examples and an API reference: http://nwswx.readthedocs.io
Examples
Get forecast for a point in GeoJSON format:
>>> import nwswx
>>> nws = nwswx.WxAPI('your@email.com')
>>> forecast = nws.point_forecast(39.0693, -94.6716)
>>> print(forecast)
{
"@context": [
"https://raw.githubusercontent.com/geojson/geojson-ld/master/contexts/geojson-base.jsonld",
{
"wx": "https://api.weather.gov/ontology#",
"geo": "http://www.opengis.net/ont/geosparql#",
"unit": "http://codes.wmo.int/common/unit/",
"@vocab": "https://api.weather.gov/ontology#"
}
], ...
Get forecast for a point in JSON-LD format:
>>> import nwswx
>>> nws = nwswx.WxAPI('your@email.com')
>>> forecast = nws.point_forecast(39.0693, -94.6716, return_format=nwswx.formats.JSONLD)
>>> print(forecast['periods'])
[{'number': 1, 'name': 'Tonight', 'startTime': '2019-01-13T22:00:00-08:00', 'endTime':
'2019-01-14T06:00:00-08:00', 'isDaytime': False, 'temperature': 28, 'temperatureUnit':
'F', 'temperatureTrend': None, 'windSpeed': '2 to 6 mph', 'windDirection': 'N',
'icon': 'https://api.weather.gov/icons/land/night/few?size=medium', 'shortForecast':
'Mostly Clear', 'detailedForecast': 'Mostly clear, with a low around 28. North wind 2
to 6 mph.'}, ...
Get an hourly forecast for a point in JSON-LD format:
>>> import nwswx
>>> nws = nwswx.WxAPI('your@email.com')
>>> forecast = nws.point_hourly_forecast(39.0693, -94.6716, return_format=nwswx.formats.JSONLD)
>>> print(forecast['periods'])
[{'number': 1, 'name': '', 'startTime': '2019-01-16T19:00:00-08:00', 'endTime':
'2019-01-16T20:00:00-08:00', 'isDaytime': False, 'temperature': 42,
'temperatureUnit': 'F', 'temperatureTrend': None, 'windSpeed': '10 mph', 'windDirection':
'NE', 'icon': 'https://api.weather.gov/icons/land/night/rain,90?size=small',
'shortForecast': 'Light Rain', 'detailedForecast': ''}, ...
Get active weather alerts for a point in ATOM format:
>>> import nwswx
>>> nws = nwswx.WxAPI('your@email.com')
>>> alerts = nws.active_alerts({'point': '39.0693,-94.6716'}, return_format=nwswx.formats.ATOM)
>>> print(alerts)
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:cap="urn:oasis:names:tc:emergency:cap:1.2">
<id>https://api.weather.gov/alerts?point=39.0693%2C-94.6716&active=1&zone=KSZ104%2CKSC209</id>
<generator>NWS CAP Server</generator>
<updated>2019-01-17T06:04:28+00:00</updated>
<author>
<name>w-nws.webmaster@noaa.gov</name>
</author>
<title>current watches, warnings, and advisories for 39.0693 N, 94.6716 W</title>
<link rel="self" href="https://api.weather.gov/alerts?point=39.0693%2C-94.6716&active=1&zone=KSZ104%2CKSC209"/>
<entry>
<id>https://api.weather.gov/alerts/NWS-IDP-PROD-3320294-2901037</id>
<link rel="alternate" href="https://api.weather.gov/alerts/NWS-IDP-PROD-3320294-2901037"/>
<updated>2019-01-16T14:52:00-06:00</updated>
<published>2019-01-16T14:52:00-06:00</published>
<author>
<name>NWS</name>
</author>
<title>Winter Weather Advisory issued January 16 at 2:52PM CST expiring January 17 at 9:00AM CST by NWS Kansas City/Pleasant HIll MO</title>
...
Limitations, of Which There Are Many
The following list of endpoints have not been implemented:
/stations
/stations/{stationId}
/stations/{stationId}/observations
/stations/{stationId}/observations/current
/stations/{stationId}/observations/{recordId}
/products/{productId}
/products/types
/products/types/{typeId}
/products/types/{typeId}/locations
/products/types/{typeId}/locations/{locationId}
/products/locations
/products/locations/{locationId}/types
/offices/{officeId}
/zones/{type}/{zoneId}
/zones/{type}/{zoneId}/forecast
/alerts/active/count
/alerts/active/zone/{zoneId}
/alerts/active/area/{area}
/alerts/active/region/{region}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nwswx-0.1.2.tar.gz
.
File metadata
- Download URL: nwswx-0.1.2.tar.gz
- Upload date:
- Size: 13.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c554d4b5338113e135a439a59aa5a2a3f175ad6fa24e259ca9bd3bee89efc89c |
|
MD5 | 005535f63b80b08ec1f291329fdf4a51 |
|
BLAKE2b-256 | c09c07a45deed89e2a80e6a1d578f595ce3ccc5d9f245fed82cf37c695ef281b |
File details
Details for the file nwswx-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: nwswx-0.1.2-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0364abf23a1be6d0c8852b790cf688db1a22e997d0fb0cb38c1a027d2384b44 |
|
MD5 | 2c59997728b0a232656b80fe5ef39604 |
|
BLAKE2b-256 | 48deadc8c092857af2c0802493b64743b6e30c0a8a0a638a31d6a7251c1f5366 |