This began with my long-time curiosity on how to convert raster radar images into vector on a map. I've been using Weather.gov.sg'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.
👉 Read more: Building Check Weather SG.
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
.
There are currently 3 channels:
- Push notifications, via the iOS app.
- Twitter @checkweathersg
- 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 developmentnpm run build
- build the files for production indist
foldernpm run serve
- starts a local server to preview production build
- Data © Data.gov.sg © Meteorological Service Singapore © National Environment Agency
- Code licensed under MIT