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/
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 nomatch
to your .zshrc
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 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()
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()
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.
You should use pipenv
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