Skip to main content

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

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&amp;active=1&amp;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&amp;active=1&amp;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


Download files

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

Source Distribution

nwswx-0.1.2.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

nwswx-0.1.2-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

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

Hashes for nwswx-0.1.2.tar.gz
Algorithm Hash digest
SHA256 c554d4b5338113e135a439a59aa5a2a3f175ad6fa24e259ca9bd3bee89efc89c
MD5 005535f63b80b08ec1f291329fdf4a51
BLAKE2b-256 c09c07a45deed89e2a80e6a1d578f595ce3ccc5d9f245fed82cf37c695ef281b

See more details on using hashes here.

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

Hashes for nwswx-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e0364abf23a1be6d0c8852b790cf688db1a22e997d0fb0cb38c1a027d2384b44
MD5 2c59997728b0a232656b80fe5ef39604
BLAKE2b-256 48deadc8c092857af2c0802493b64743b6e30c0a8a0a638a31d6a7251c1f5366

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page