Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Check Weather SG

β˜€οΈπŸŒ§ Yet another weather app for Singapore


The Beginning

This began with my long-time curiosity on how to convert raster radar images into vector on a map. I've been using's Rain Areas map whenever it rains, so I thought if I could convert that raster image to be used on Mapbox GL JS. I could put the whole raster image on Mapbox but choose to make it vector because I like it smoother.

After few trials and errors, I cooked up the Rain GeoJSON SG project, a straight-forward API server to convert rain area radar images (Singapore) to GeoJSON.

Since I've gone this far, so I thought "why not?", let's build yet another weather app for Singapore! Thus this project just happens.

2D radar 3D radar 3D clouds and rain

πŸ‘‰ Read more: Building Check Weather SG.

The lock-down period

2 years later (2020), I revisited this project and rebuilt it:

  • ⏳ Past 2 hours of radar snapshots
  • 🧼 Cleaner UI
  • πŸ—Ί Cleaner maps
  • 🌏 Remove the 3D mode (it's not useful)


I've also built an πŸ“± iOS app.

And... a plethora of open-source projects to make the impossible possible:

  • β˜”οΈ rain-geojson-sg - the core API to fetch weather observations and rain radar
  • ⏰ checkweather-sg-checker - a scheduled serverless function to keep checking for rain
  • β›± sg-coverage - a script that converts the Singapore boundary into a 217x120 array of indices with values indicating its (land) region excluding the surrounding areas (other countries and water).
  • πŸ“Έ rainshot - a serverless instance to capture rain radar images
  • 🍩 rainshot-checker - A site to experiment contouring the radar data
  • πŸ“€ sg-rain-radar-scribbler - another site to load rain radar image and generates a JSON output similar to the one generated by rain-geojson-sg.

Rain notifications

There are currently 3 channels:

  1. Push notifications, via the iOS app.
  2. Twitter @checkweathersg
  3. Telegram channel /checkweathersg


Node.js is required to run this web app. Here's a list of readily-provided scripts:

  • npm start - starts a local server for development
  • npm run build - build the files for production in dist folder
  • npm run serve - starts a local server to preview production build

Copyright & license