Skip to content

Latest commit

 

History

History
109 lines (65 loc) · 2.45 KB

README.md

File metadata and controls

109 lines (65 loc) · 2.45 KB

frost-client

Build Status

Documentation Status

This Python client wraps the Frost API. You should read up on those docs before using this client. And be sure to check out met.no's Terms of Use

The main purpose of this client is returns Pandas Dataframes from Frost API data.

This is an unofficial client. We have no relationship to met.no

Documentation: https://frost-client.readthedocs.io/en/latest/

Install

Requires Python 3.7

pip install frost-client

or if you want the response from the API returned as Pandas DataFrame, use:

pip install frost-client[pandas]

or using pipenv:

pipenv install frost-client[pandas]

Note about zsh: If you're using zsh add unsetopt nomatchto your .zshrc

Usage

The Frost API key should be exposed as a environment variable:

FROST_API_KEY=xxxxxx

or passed as a username parameter when creating and instance of the class.

Get weather data sources

Get all available observation sources (stations) for Hordaland county (12)

from frost.client import APIError, Frost
f = Frost()
res = f.get_sources(county='12')

# return as Pandas Dataframe (requires Pandas installed)
df = res.to_df()

# return IDs of sources as list
ids = res.to_ids_list()

Get available time series

Display available time series for a station (here Bergen - Florida)

from frost.client import APIError, Frost
f = Frost()
res = f.get_available_timeseries(sources=['SN50540'])

# return as Pandas Dataframe
df = res.to_df()

Get observations

Display observations for a station (here Bergen - Florida)

from frost.client import APIError, Frost
f = Frost()
res = f.get_observations(
            sources=['SN50540'],
            elements=['sum(precipitation_amount P1D)'],
            timeoffsets=['PT6H'],
            referencetime='2018-01-01/2018-02-01')
df = res.to_df()

See tests for more examples.

Local development

You should use pipenv

Tests

Enable the pipenv with

pipenv shell

Make sure to export env variable

FROST_API_KEY=xxxxxx

To run all tests:

nosetests

To run specific tests:

nosetests tests.test_requests:TestFrostRequests.test_get_sources