Skip to main content

A storm surge forecasting system for the Singapore Strait


Being a small low-lying island nation, Singapore has a high density population, recreational and industrial facilities along the coast. It is thus highly vulnerable to weather extremes including storm surges. Strong sea level surges due to the northeast monsoon when coinciding with spring tides may lead to coastal floods in the southwest regions of the South China Sea including Singapore Strait, with the heights of about 0.3-0.5 m observed from tidal records and satellite altimetry. We developed an operational system codenamed “Stormy” to provide storm surge forecasts for the Sunda Shelf with focus on the Singapore Strait for a lead time of 6–7 days. Stormy has been working operationally since February 2013, successfully capturing storm surge events on 19–30 December 2013 and 14–23 February 2014. Stormy’s web-based portal has an intuitive visual user interface which conveniently offers forecast products, including evolutional plan-view and time-series of storm surge heights compared with historical anomalies.


Singapore is a highly urbanized city state. The country has a dense population of 5.54 million people residing in a low-lying island with an area of about 719 km2 (Singapore Department of Statistics, 2015). Singapore has high density economic facilities within a few kilometers from its coastal lines, including ports, manufacturing, warehouses and prime residences, which are highly vulnerable economically and socially to the coastal hazards. Natural hazards may damage the maritime industry of Singapore which is valued about 20 billion USD (accounted for 7 % of its total gross domestic product), and influence the water ways which has an annual throughput of 140,000 vessels transporting 33.9 million containers (Maritime and Port Authority of Singapore, 2014).

Among other hazards, storm surges have been known to cause severe damage to coastal communities around the world. For example, in North America the storm surge due to Hurricane Katrina (August–September 2005) reached 6 m above mean sea level and inundated 230,000 km2 (as large as the area of United Kingdom), causing deaths or the loss of about 1970 persons (American Society of Civil Engineers, 2007) and damages costing 108 billion USD. In Asia, there have been more than 60 cyclones hitting Bangladesh since 1791, with the highest storm surge height of 12 m observed on October 1876, killing about 400,000 lives (Khalil 1992).

Operational systems to forecast storm surges are necessary to minimize their potential negative impacts on a wide range of coastal and maritime facilities, such as residences, coastal defenses, shipping, fisheries, offshore mining and others. Operational and pre-operational systems have been recently developed in many countries, including HANSOM Nivmar (Spain), MIKE21 pre-operational 3D, MOG 2D (Denmark), NPAC, Coupled Ice-Ocean (Canada), JMA Storm Surge (Japan), KMA Storm Surge (South Korea), NIVELMA (Portugal), BSHsmod and BSHcmod (Germany), Kaspian Storm Surge (Kazakhstan), HIROMB/NOAA (Sweden), WAQUA in Simona/DCSM98 (Netherlands), MOTHY Oil Spill Drifts (France), SLOSH (Hong Kong), Short-term Sea-level and Current Forecast (Russia), IIT–Delhi/IIT–Chennai/NIOT–Chennai (India), CS3 Tide Surge (United Kingdom) and SLOSH, P-Surge for Tropical Systems, ETSS, ESTOFS for Extra-Tropical Systems (United States) as summarized in World Meteorological Organization (2011).

In brief, a storm surge is the displacement of coastal and inland waters driven by atmospheric forces, wind and pressure gradients, within a timescale of minutes to days (World Meteorological Organization, 2011). It propagates in the form of a long-gravity wave with the wave-length much larger than the underlying water depth. Storm surge heights vary depending mainly on the dynamics of atmospheric forces, topography of the domain, magnitude of bottom friction, and interactions with astronomic tide.

In the Singapore Strait, storm surge events have been detected from tide gauge records within last 40 years (Table 1). For instance, the average storm surge height obtained during the event on 22 December 1999 at both, Tanjong Pagar and Sembawang tide stations, are 0.55 m. The skew surge, which is defined as the difference between maximum observed sea level and maximum predicted tide, is as high as 0.75 m during this event (Fig. 1). When coinciding with spring tide during the north-east (NE) monsoon, storm surges may lead to coastal floods along the Singapore coasts. For instance, a storm surge in combination with spring tide has increased the sea level anomaly (SLA) to submerge the wooden walkway of Sungei Buloh Wetland Reserve during the event on 25 Jan 2015 (Zengkun, 2015).

Table 1 Historical extreme SLAs observed in the Singapore Strait, derived from deriving the tide gauge records
Fig. 1
figure 1

Sea level anomalies (SLAs) observed at Tanjong Pagar tide gauge during (a) 2006, and (b) December 2006; (c) and (d) represent SLAs observed at Sembawang, respectively

At the seasonal time-scale, Tkalich et al. (2013) reported that storm surges due to monsoonal wind peak at 0.2 m high in December above the annual mean sea level. On a larger scale, the observed SLAs along the eastern coast of Peninsular Malaysia reaches 0.3 m at the middle of the NE monsoon from November to February (Luu et al. 2015). During the south-west (SW) monsoon from June to August, the SLA is 0.15-0.2 m lower than the annual mean. Tkalich et al. (2012) explained this observed mechanism as shown in Fig. 2. During the NE monsoon, strong winds over the South China Sea (SCS) blow towards the Singapore Strait carrying water-mass from deeper seas to accumulate in the shallow part of the Sunda Shelf; while during SW monsoon, the seasonal winds reverse their direction driving waters away from the region, including the Singapore Strait.

Fig. 2
figure 2

Climatology of storm surge heights (cm) and wind field during (a) NE monsoon and (b) SW monsoon for the period 1993–2008 from satellite altimetry measurements (after Tkalich et al., 2012)

At hourly to daily time-scales, Tkalich et al. (2012) pointed out that the intensified wind over SCS is the most important factor determining the observed variability of SLAs in the Singapore Strait. Local SLA magnitude is correlated with the wind speed of NE monsoon over the central part of SCS (Fig. 2) with an average time lag of 36–42 h. The mechanism of rising and falling sea levels in the Singapore Strait for the shorter timescale (hours to days) is physically similar to that of the seasonal phenomenon.

Tkalich et al. (2012) further derived an empirical relationship to estimate the storm surge heights measured in the Singapore Strait as a function of the wind observed at the central part of SCS. The simple algebraic equation allows for a quick estimate of the storm surge height in the Strait. However, given the risks and impacts of storm surges, an accurate numerical model is necessary.



The Stormy system is based on the Regional Ocean Modeling System (ROMS) developed by Haidvogel et al. (2000). The Adaptive Grid Refinement in Fortran (AGRIF) deviation of ROMS (Penven et al., 2006; Debreu et al., 2011) was utilized in this study, as it allows the adaptive mesh refinement (AMR) nesting technique that is extendable to increase the resolution around domains of interest. Since storm surge is a mainly barotropic phenomenon in shallow regions, ROMS was configured in plan-view (2D). Bottom friction and wind drag coefficients were tuned using the reanalysis product ERA Interim provided by the European Centre for Medium-range Weather Forecasts (ECMWF), which was downloaded at

The model domain (83E-131E, 16S-27N; Fig. 3) which covers entirely the SCS region and part of the eastern side of Indian Ocean, and the western part of Pacific Ocean. It permits the formation and propagation of storm surge from deep seas towards coastal regions, as well as reduces the computational noise from sponge zones at open-boundaries. The mesh has 1500 × 1400 curvilinear cells with the grid size of 1/32O × 1/32O (about 3.5 × 3.5 km2 near the equator).

Fig. 3
figure 3

Study area. Color contours represent the bathymetry (m)

Forecast data

The model used Global Forecast System (GFS) data provided in real-time by the National Center for Environment Prediction (NCEP), National Oceanic and Atmospheric Administration (NOAA), provided at the NOMADS Inventory ( It has a global resolution of 1/2° × 1/2° at 6-hourly intervals, with forecast lead time of 7 days. Sea level pressure and surface wind at 10 m height were extracted for the aforementioned domain.

In addition, the reanalysis Final Operational Analysis (FNL) data from NCEP, NOAA are used to represent the wind field and to compute the latest storm surge heights. Sea level measurements at the Tanjong Pagar tide gauge (Maritime and Port Authority of Singapore, MPA), was used to validate the model. Tide predictions at Tanjong Pagar was obtained from the software Admiralty TotalTide (

System development

The architecture of storm surge forecasting system Stormy comprises a backend and the web-portal.

System architecture

Figure 4 shows the physical view of the high-level operational processes and dataflow of the system. The system’s hardware includes: (i) a high performance computing (HPC) cluster comprising several Intel-based servers (ii) an entry-level server functioning as the web server. The system process is as follows. First, global forecast fields are downloaded to HPC clusters. They are then interpolated to model grid points as the input to drive the model, ROMS. The model outputs are then accessible from users’ web browsers via the web server, which allows end-users to interact and visualize the storm surge forecasts.

Fig. 4
figure 4

Overview of operational process and data flow of the storm surge forecasting system, Stormy

In the backend, input wind data from NCEP global models is downloaded daily to the HPC Linux cluster. This input wind data is post-processed for input into ROMS. After ROMS completes its execution, the output data is stored in a folder accessible by Stormy’s plotters.

Graphical user interface

In the web-portal, the graphical user interface (GUI) displays all the graphs and maps of model outputs produced in the backend. Names of the respective software used to build Stormy are listed in the boxes in Fig. 5. When the user requests for a particular visualization of a user-selected dataset, Stormy’s plotters are activated via the web application framework to plot the data and returns the images to the user’s browser for display.

Fig. 5
figure 5

Logical system architecture of Stormy

The plotters, web application framework and map servers are Java softwares (Fig. 4). The OpenStreetMap ( map server is a free remote service outside of Stormy that provides the data and images for free-of-charge basemaps similar to Google maps. Geoserver ( is an open-source map server running within Stormy and provides model mesh images to the user’s browser. OpenLayers ( is an open-source software framework which functions within the user’s browser, to display map data.

For plotting of two-dimensional contours, we selected the free-of-charge VisIt visualization tool ( primarily because of its ability to plot contours directly from unstructured-grid datasets (while most other plotters could only directly plot structured grid datasets). Since VisIt does not provide the appropriate plugins to read the datasets we have, we wrote custom VisIt plugins, in the C++ programming language, to handle the data. For plotting vector arrows (e.g. wind barbs from the wind datasets), VisIt did not meet our requirements and was limited in its features for vector arrows. Therefore, we developed a custom vector arrow plotter from scratch to allow us the flexibility of customizing the look and behavior of the plotted arrows. For plotting time-series, we chose JfreeChart (, a popular open-source chart-plotting tool. It is powerful and has a Java API (application programming interface) which suits our requirements.

Resources used to build the system

Resources used to develop the system comprised mainly manpower and hardware. The web-based GUI and backend system utilized 2 software engineers for 12 man-months to develop. Storm surge model customizing and preparation required 6 man-months for one research fellow. Maintenance of the entire system without further model-tuning requires about one man-month for a systems engineer. The system’s hardware comprises: (a) six high-end 8-core Intel HPC servers for daily model computation and input data downloads from the internet (b) one entry-level Intel server to function as the webserver which hosts the web portal. Financial budget thus varies, depending on the nation and the time of system deployment.


Forecast operations

Daily storm surge forecasts by Stormy is generated automatically every 24 h on our HPC cluster. The sequence of key processes on the backend system is as follows:

Step 1. Data from NCEP website is downloaded from Internet into the HPC server on the daily basis. They consist of 7-day GFS forecast and 1-day FNL reanalysis datasets. Near-real time tide measurements at Tanjong Pagar station are retrieved from MPA website daily.

Step 2. Data of sea level pressure and surface wind at 10 m are pre-processed are interpolated into the model mesh to provide the inputs for the ROMS model.

Step 3. The core model ROMS was activated to run the forecasts. Bash scripts are made to automatically handle the process on the Unix server.

The operational ROMS runs on our HPC cluster using from 32 central processing unit (CPU) cores to 48 CPU cores. The time taken to complete a 7-day forecast is approximately 3 h with this configuration on the HPC cluster.

Validation on extreme events

We first ran the system for the hindcast experiment for the extreme event during 18–22 December 2006. The atmospheric fields were derived from NFL reanalysis dataset. Our system could capture well the storm surge height, both the magnitude and the evolution, as shown in Fig. 6.

Fig. 6
figure 6

Storm surge time-series at Tanjong Pagar tide station during 18–22 December 2006 in hindcast mode

A recent storm surge occurred during 14–23 February 2014, when a maximum height of +0.3 m was captured on 22 February. Forecast from the Stormy system successfully captured both the process and the peak at Tanjong Pagar tide station (Fig. 7, top panel). Since deployment, the strongest event happened during 19–30 December 2013 with a height of +0.4 m well observed on Stormy at Tanjong Pagar on 29 December 2013 (Fig. 7, bottom panel).

Fig. 7
figure 7

Storm surge time-series at Tanjong Pagar tide station during 14–23 February 2014 (top panel), and during 19–30 December 2013 (bottom panel) in the forecast mode

Overall performance

The system has been deployed operationally since March 2013, delivering daily forecast for a lead time of 6–7 days. Time-series of storm surge forecast versus measurements at Tanjong Pagar station during one year are shown in Fig. 8. During that year, the Stormy system reasonably reproduced the forecast that was similar to the observation.

Fig. 8
figure 8

Screenshot of Stormy showing storm surge forecast time-series at Tanjong Pagar tide station since the deployment (February 2013)

To further assess the accuracy of the system as a whole, we computed the total root mean square error (RMSE) of sea level using the formula (e.g. Luu et al., 2011; Tkalich et al., 2012) \( \mathrm{RMSE}=\sqrt{\frac{1}{N}\;{\displaystyle \sum_{n=1}^N{\left({\eta}_n^c-{\eta}_n^o\right)}^2}} \) where N is number of available observations, ηC - computed sea level, ηO - observed sea level. The total RMSE for the period 15 February 2013 to 1 May 2014 was 0.054 m, which implies reasonably good performance of Stormy.

The user may view 6- to 7-day forecasts of storm surges in Singapore Strait from time-series plots of storm surges and sea levels, and two-dimensional forecast maps. For instance, Fig. 9.

Fig. 9
figure 9

Screenshot of Stormy showing two-dimensional forecast field of storm surge at 9:30 on 30 December 2012


Being a small island country, Singapore has a dense population and economic facilities along its coastal line, which is vulnerable to storm surges. High sea levels are possible during the strong northeast monsoon surges (November–February) if they coincide with spring tides. This would usually lead to floods in the coastal areas. In this study, we presented the development of an operational system, Stormy, providing storm surge forecast for the Singapore Strait. The system has been deployed successfully since February 2013, delivering daily forecast with an accuracy of 0.05 m for a lead time of 6–7 days. A web-based portal with an intuitive visual interface was developed for end-users to conveniently explore the forecast products.

The system is extendable to estimate storm surges over the entire Sunda Shelf region in near real-time. It can also be integrated into early-warning systems to minimize the aftermaths of storm surge for the coastal communities and activities. As the quality of forecast relies mainly on the resolution and quality of atmospheric fields, Stormy can be improved with the better forecast fields. We are developing the next version of Stormy, which uses a finite-element model as the core to resolve the complex bathymetry, and integrate tidal oscillations.


AGRIF, Adaptive Grid Refinement in FORTRAN; CPU, central processing unit; ECMWF, European Centre for Medium-range Weather Forecasts; FNL, Final Operational Analysis; GFS, Global Forecast System; GUI, Graphic User Interface; HPC, high performance computing; MPA, Maritime and Port Authority of Singapore; NCEP, National Center for Environment Prediction; NE, North-East; NOAA, National Oceanic and Atmospheric Administration; RMSE, root mean square error; ROMS, Regional Ocean Modeling System; SCS, South China Sea; SLA, Sea Level Anomalies; SW, South-West


Download references

Author information

Authors and Affiliations


Corresponding author

Correspondence to Quang-Hung Luu.

Additional information

Competing interests

The authors declare that they have no competing interests.

Authors’ contributions

QHL carried out the calibration of model, collected and analyzed the data, drafted the manuscript and is responsible for submission and peer review. PT guided the research, controlled quality of system and revised the manuscript. HKC designed the operational system, prepared necessary hardware and contributed to draft the manuscript. JW deployed the system and elaborated GUI. BT set up the core operational model. All authors read and approved the final manuscript.

Rights and permissions

Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (, which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Luu, QH., Tkalich, P., Choo, H.K. et al. A storm surge forecasting system for the Singapore Strait. Smart Water 1, 2 (2016).

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: