Using Python to drive Australian water availability forecasting
Project: | Extended Hydrological Prediction, Bureau of Meteorology |
With Andrew MacDonald and Daehyok Shin
The Australian Bureau of Meteorology provides water availability forecasts to the public and to key stakeholders at different time-scales across the nation. A number of the systems driving these forecasts make extensive use of Python. Python is used throughout the forecasting process - from data ingestion and management, to hydrological modelling and data analysis through to graphical product generation. A wide variety of packages are used heavily. These include NumPy, SciPy, Matplotlib, PyTables and Pandas. Such a suite of scientific computing packages for Python enables us to complete the development of fully automated systems quickly even with limited resources.
This presentation will give an overview of the systems used by the Bureau in the generation of water availability forecasts and highlight the wide variety of tasks and processes enabled by Python. In particular, we will introduce the Hydrologic Reference Stations (HRS) toolkit and the Water Availability Forecasts for Australian Rivers (WAFARi) system. The HRS toolkit analyses time-series of streamflow data and produces a huge number of products describing mean state, trends and variability in that data, which are released at http://bom.gov.au/water/hrs. WAFARi is used to generate probabilistic seasonal streamflow forecasts along with a suite of graphical products for each of those forecasts. The system is being used to update streamflow forecasts available at http://bom/gov.au/water/ssf every month.
David Kent
David Kent is a web, systems and database developer with the Bureau of Meteorology. He works with a small team to develop and maintain tools and systems to provide water availabilty forecasts across the nation. David has a number of years of experience working at the intersection of computer science, the earth sciences (climate science, hydrology, meteorology) and software engineering. Python forms the glue of much of this work.