We have new imagery available for tracing in OSM along the eastern section of Bulacan, Pampanga and Nueva Ecija.
Last year, we have imported Quickbird imagery in Pangasinan. This time, SPOT Asia through a local distributor (Certeza Infosys) extended assistance to provide us with SPOT5 10 meter color imagery . Unlike the previous Quickbird imagery import, I felt the SPOT5 image needs a some remote sensing massage to be more useful for OSM’s purpose. The raw color images have several limitations:
- Large portions of the east of the image is covered with clouds, a total waste of disk space to load for OSM’s web-based imagery overlays.
- Image is too dark which makes it difficult to identify and discriminate features.
- Default image rectification is off by ~10-50 meters.
I have outlined the processing procedures below.
I performed color balancing using the i.landsat.rgb module of GRASS GIS. This was designed for auto-balancing LANDSAT color channels but is useful for other imagery as well. I then assigned NULL values to all pixels with 0 digital number using r.null in GRASS GIS.
You can perform a similar approach using any image manipulation application (like GIMP). I simply used GRASS GIS because it can easily process such large imagery even with my meager hardware.
The output image shows a much better results.
Rectification converts the imags to a standard map coordinate system. (http://en.wikipedia.org/wiki/Image_rectification). To put it in simple terms, this process ties the image pixel to a specific location on the Earth’s surface. It requires the identification Ground Control Points (GCPs) as reference to calculate the necessary image transformation.
The SPOT5 image covers a very large area (60 km by 60 km). It can take me months to collect GCP in order to rectify the image. Adhering to the principles of “crowdsourcing”, I initially thought of using the excellent web-based MapWarper service. I can just upload the map and allow others to add GCPs based on OSM maptiles. However, this comes with several limitations:
- A single image for MapWarper should be at maximum of 5 MB and 1500 x 1500 pixel resolution. Not enough for my 3 GB, 30000 x 30000 pixel image!
- The identification of GCPs is dependent on the available data contributed in OSM. This becomes problematic when data is sparse and you can’t easily identify the accuracy of the sources.
My only recourse is to rectify the image myself. However, collecting GCPs across the whole image can be a daunting task.
I realized another option is to get all GPS traces uploaded in OSM within the area and select good traces to align and rectify the image. I found several good ones with multiple traces of the same road. The multiple traces is good in approximating the position of GCPs.
After a few hours of GCP hunting and adjustments in QGIS and the Georeferencer plugin, the image is now rectified and fits nicely to the GPS traces. Although there maybe some errors , I think this is good enough for OSM.
Big thanks again to Andy for creating map tiles using Mapnik’s generate_tiles.py magic.
You can now use the data in any of the OSM editors (potlatch, josm or merkaartor). Instructions on how to use them are available in the wiki.
I’m sure there are better ways to do it, but this post highlights how you can re-purpose user contributed GPS tracks in OSM to rectify imagery (and another good reason why OSM contributors should upload GPS tracks).