Australian Weather Data (using bom.gov.au)
Access to the Australian Bureau of Meteorology weather data.
Currently a work in progress subject to breaking changes!
Purpose
The purpose of these modules is to fetch weather data from various Australian Bureau of Meteorology websites.
Weather API
Fetches data from the API's at api.weather.bom.gov.au (e.g. Parkville 3-hourly forecast).
This information has been reverse engineered from the beta website with no information about future access arrangements, content or availability.
Example using WeatherApi
import sys
from weather_au import api
w = api.WeatherApi(search='parkville+vic', debug=0)
location = w.location()
# check if the search produced a result (other methods will also return None if the search fails).
if location is None:
sys.exit('Search failed for location ' + loc)
print(f"\nLocation: {location['name']} {location['state']}, timezone:{location['timezone']}\n")
for warn in w.warnings():
print(f"Warning short title: {warn['short_title']}")
warning = w.warning(id=warn['id'])
print(f"Warning title: {warning['title']}")
observations = w.observations()
print(f"\nObservations (temp): {observations['temp']:2}")
forecast_rain = w.forecast_rain()
print(f"Forecast Rain: amount:{forecast_rain['amount']}, chance:{forecast_rain['chance']}")
print('\n3 Hourly:')
for f in w.forecasts_3hourly():
print(f"{f['time']} temp:{f['temp']:2}, {f['icon_descriptor']}")
Example using Summary
from weather_au import summary
print(summary.Summary(search='parkville+vic'))
XML and Scraping
Modules:
observations- fetch XML formatted data from the BOM FTP server.uv_index- fetch the UV data from the XML encoded state based IDZ00107-IDZ00113 products.place- scrape data from location based pages.
Where possible WeatherApi, should be used as it uses an API rather than scraping the web page.
Sample for Parkville in Melbourne Vic Australia
from weather import place, observations, uv_index
# Parse http://www.bom.gov.au/places/vic/parkville
place_data = place.Place('vic', 'parkville')
print(place_data.acknowedgment)
station_id = place_data.station_id()
print('Station ID',station_id)
air_temperature = place_data.air_temperature()
print('Air Temperature', air_temperature)
forecast = place_data.forecast()
print('Forecast', forecast)
uv_data = uv_index.UvIndex('Vic')
print('\n' + uv_data.acknowedgment)
location_name = 'Melbourne'
uv_message = uv_data.uv_message(uv_data.get_aac(location_name))
print('UV Message for', location_name, uv_message)
Disclaimer
This project is not related to or endorsed by the Australian Bureau of Meteorology (BOM).
From the BOM copyright notice: Where no terms of use are associated with a set of material, then you may download, use and copy that material for personal use, or use within your organisation but you may not supply that material to any other person or use it for any commercial purpose.
Usage
Additional examples are in the examples folder.
URL's
- Base for anon FTP data
ftp://ftp.bom.gov.au/anon/gen/ - Capital City Observations - VIC - Melbourne (Olympic Park)
http://www.bom.gov.au/fwo/IDV60901/IDV60901.95936.json- where
IDV60901is the product, and 95936is the weather station id.
- where
- Weather Observations - VIC - Melbourne (Olympic Park)
http://www.bom.gov.au/fwo/IDV60910/IDV60910.95936.json http://www.bom.gov.au/places/vic/parkville/
Resources
Metadata
Release files for weather-au 0.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| weather-au-0.0.7.tar.gz | 11.0 kB | Without provenance | Details for weather-au-0.0.7.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| weather_au-0.0.7-py3-none-any.whl | Python 3 | none | any | Details for weather_au-0.0.7-py3-none-any.whl |
Total release size: 38.1 kB
Release files / weather-au-0.0.7.tar.gz
| Download URL | weather-au-0.0.7.tar.gz |
|---|---|
| Size | 11.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
68057ab011cfe1fb2bb9741e8317533c8f6bf649d0cd728ec7434c77d6b042c9
|
|
BLAKE2b-256 checksum How to use checksums |
211e2085da1363ce9a1b72e5e40658ea2e9e8d889467e254bd7aa97748060816
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.2
|
Release files / weather_au-0.0.7-py3-none-any.whl
| Download URL | weather_au-0.0.7-py3-none-any.whl |
|---|---|
| Size | 27.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
da86c1c463fa93b9c5383bcffd96174b0065bb2f8e1586233cc307062696f399
|
|
BLAKE2b-256 checksum How to use checksums |
146664b84695fca1ba8b4f07c1ebefb52327c3144dd492a58ea78d43d68028af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.2
|
Security for weather-au 0.0.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.