Skip to content

kinverarity1/ausweather

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ausweather

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

Installation

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, 'kinverarity@hotmail.com')
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()
Date
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

License

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

About

Python package to download Australian rainfall data from the Bureau of Meteorology via the Queensland Government's SILO Patched Point Data service

Topics

Resources

License

Stars

Watchers

Forks