Skip to main content

Access historical weather data in Australia

Project description


Download Australian weather data from the Bureau of Meteorology via SILO using Python


Install from the command line:

python -m pip install -U ausweather

Example of how to use

In a Python interpreter session:

>>> import ausweather

To use this package to download annual rainfall data for Kent Town, first you need to find the station number using the BoM Weather Station Directory. Then you can use the fetch_bom_station_from_silo(station_number, email_address) function to return a dictionary:

>>> data = ausweather.fetch_bom_station_from_silo(23090, '')
station #: 23090 name: ADELAIDE (KENT TOWN) title: 23090 ADELAIDE (KENT TOWN) (fetched from SILO on 2020-03-04 16:23:26.395696)
>>> data.keys()
dict_keys(['silo_returned', 'station_no', 'station_name', 'title', 'df', 'annual', 'srn'])

The data is stored in this dictionary under the key "df":

>>> data['df'].info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 25677 entries, 1 to 25677
Data columns (total 28 columns):
Date       25677 non-null datetime64[ns]
Day        25677 non-null int32
Date2      25677 non-null object
T.Max      25677 non-null float64
Smx        25677 non-null int32
T.Min      25677 non-null float64
Smn        25677 non-null int32
Rain       25677 non-null float64
Srn        25677 non-null int32
Evap       25677 non-null float64
Sev        25677 non-null object
Radn       25677 non-null float64
Ssl        25677 non-null int32
VP         25677 non-null float64
Svp        25677 non-null int32
RHmaxT     25677 non-null float64
RHminT     25677 non-null float64
FAO56      25677 non-null float64
Mlake      25677 non-null float64
Mpot       25677 non-null float64
Mact       25677 non-null float64
Mwet       25677 non-null float64
Span       25677 non-null float64
Ssp        25677 non-null int32
EvSp       25677 non-null float64
Ses        25677 non-null int32
MSLPres    25677 non-null float64
Sp         25677 non-null int32
dtypes: datetime64[ns](1), float64(16), int32(9), object(2)
memory usage: 4.6+ MB

To see annual rainfall, you can group-by the dt.year accessor of the "Date" column:

>>> df = data["df"]
>>> df.groupby(df.Date.dt.year).Rain.sum()
1950    426.9
1951    677.9
1952    584.9
1953    601.0
1954    439.6
2016    820.8
2017    536.2
2018    429.8
2019    376.3
2020    101.6
Name: Rain, Length: 71, dtype: float64


Released under the MIT License.

Version history

Version 0.2.1 (3 Mar 2020)

  • Fix bug for whitespace in BoM station name

Version 0.2.0 (3 Mar 2020)

  • Update, many changes.

Version 0.1.0 (11 Feb 2020)

  • Initial release

Project details

Download files

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

Source Distributions

No source distribution files available for this release. See tutorial on generating distribution archives.

Built Distribution

ausweather-0.3-py3-none-any.whl (9.1 kB view hashes)

Uploaded py3

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