I'm trying to decide how to best serve data layers on a map. The data will be preprocessed on the server. The workflow I'm currently trying to implement goes as follows:
- Acquire satellite imagery (eg. Landsat, OHS, Worldview) for particular location
- Run algorithms on bands
- Reproject output and save result to disk, likely cropping to finer location
- Display result on map (limiting layer to resolution of source) via custom RESTful API
Current algorithms revolve around computing indices (eg. NDVI, NBR, SI, etc) but I'll eventually be classifying pixels (eg. grass, concrete, bitchumen, etc). Each computation will be displayed on it's own map layer. The computation will maintain the resolution of the source because each pixel will hold a value, the calculated index. I imagine I will do the same when classifying what's going on at each pixel.
Initially, it seemed like a no-brainer to maintain raster throughout this workflow, yet I believe online maps are produced as vectors and every layer displayed to a user is often a vector (ie. stations, trains, shops, etc). I tried converting my rasters to GeoJSON polygons (gdal_polygonise), however the file size blew-up and it wasn't exactly a 1:1 representation (I imagine I could find a better solution?).
I'm aware online maps tile their display, aptly referred to as a 'slippy map'. Tiling seems possible with vectors and rasters so serving large GeoJSONs may not be an issue for the user?
The TLDR is when is a raster/vector best? I imagine I will be utilising both types in the longterm yet unsure what's best for processing satellite imagery. Thanks.