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.
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
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
There are currently 3 channels:
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
npm run serve- starts a local server to preview production build