Build Status |
---|
A web client for the 7-Day Streamflow Forecasting Service the Australian Bureau of Meteorology in the Julia programming language. The website at http://www.bom.gov.au/water/7daystreamflow provides 3-day ahead streamflow forecasts for catchments across Australia.
The package can be installed with the Julia package manager. From the Julia REPL, type ]
to enter the Pkg REPL mode and run:
pkg> add SevenDayStreamflowForecasts
If you want to install the package directly from its github development site,
pkg> add http://github.com/petershintech/SevenDayStreamflowForecasts.jl
And load the package using the command:
using SevenDayStreamflowForecasts
When you create an instance of the SDF
structure, it downloads
site information.
julia> sdf = SDF();
Once it is instantiated, the fields of sdf
should be considered as read-only so don't try to change any values of the fields.
sdf.sites
has site information including ID, AWRC ID and description.
julia> sdf.sites
208×8 DataFrame. Omitted printing of 5 columns
│ Row │ station_name │ bom_id │ awrc_id │
│ │ String │ String │ String │
├─────┼──────────────────────────────────────────────┼────────┼──────────┤
│ 1 │ Timbarra River D/S Wilkinson Creek │ 584008 │ 223212 │
│ 2 │ St. Pauls River above Avoca │ 592003 │ 18311 │
│ 3 │ Macquarie River D/S Elizabeth River Junction │ 093026 │ 18312 │
│ 4 │ Macquarie River at Fosterville │ 093059 │ 18313 │
...
get_forecasts()
returns the most recent forecast data as DataFrames.DataFrame
. The method needs a site ID.
The returned data have precentiles of ensemble forecasts and historical reference (streamflow climatology) along with the recent observation data.
The site ID of a station can be found in awrc_id
columne of sdf.sites
.
A new column called DateTime
is created from Time
strings but without considering the time zone.
julia> using Dates
julia> site_id = "410730";
julia> data, header = get_forecasts(sdf, site_id);
julia> data
264×14 DataFrame. Omitted printing of 11 columns
│ Row │ DateTime │ Time │ Observed Rainfall (mm/hour) │
│ │ DateTime │ String │ Union{Missing, Float64} │
├─────┼─────────────────────┼───────────────────────┼─────────────────────────────┤
│ 1 │ 2020-09-16T10:00:00 │ 2020-09-16 10:00 AEST │ 0.0 │
│ 2 │ 2020-09-16T11:00:00 │ 2020-09-16 11:00 AEST │ 0.0 │
│ 3 │ 2020-09-16T12:00:00 │ 2020-09-16 12:00 AEST │ 0.0 │
...
This project is not related to or endorsed by the Australian Bureau of Meteorology.
The materials downloaded from the 7-Day Streamflow Forecast website are licensed under the Creative Commons Attribution Australia Licence.