SWIFT2: Advanced software for continuous ensemble short-term streamflow forecasting

Research undertaken through the Water Information Research and Development Alliance (WIRADA) has laid the foundations for continuous deterministic and ensemble short-term forecasting services. One output of this research is the software Short-term Water Information Forecasting Tools version 2 (SWIFT2). SWIFT2 is designed to support research on short term streamflow forecasting techniques as well as operational forecasting services at the Bureau of Meteorology. The variety of uses demands a modular software system whose components can be arranged in applications that are fit for each particular purpose, without unnecessary duplication. SWIFT2 modelling structures consist of sub-areas of hydrologic models, nodes and links with in-stream routing and reservoirs. While this modelling structure is traditional, SWIFT2 is built from the ground up for computational and data intensive applications such as ensemble forecasts necessary for the estimation of the uncertainty in forecasts. Support for parallel computation on multiple processors or on a compute cluster is a primary use case. A convention is defined to store large forecasting multi-dimensional data and its metadata using the netCDF library. SWIFT2 is written in modern C++, and includes a well-defined application programming interface (API) to facilitate access from different applications and technologies. SWIFT2 is accessible on Windows and Linux via packages in R, Python, and .NET languages such as C# and F#. Command line or graphical front-end applications are also feasible in C++ or other programming languages. This paper gives a brief overview of the technology stack, and illustrates salient features of SWIFT2 from a user's perspective as well as computational. We provide an initial assessment of runtime performance and scalability of SWIFT2.