Creating 3D Worlds Using Open Source GIS

As we move into 2015, we look forward to a year of airborne adventures, with plans to utilise our unmanned aircraft systems (UAS) for a wide range of applications.  One of the many advantages of this technology is that (assuming you, like us, have CAA approval) it is continually lowering the barriers of access for communities and organisations to observe their earth from the sky...no helicopter or satellite needed.

However, one of the main constraints to this relatively new revolution is that the software (and indeed computing power) needed to analyse and visualise these outputs can be expensive.  Now what kind of revolution is that?

In true GeoGeo style, we thought it only fair to launch our year with a quick guide as to how to make a 3D world using only free and open source GIS software.  So here we go:

Ingredients:

  • One geo-referenced orthomosaic (preferably in .tiff format)
  • One Digital Surface Model, or DSM (also in .tiff format)
  • QGIS (any version from 1.8 onwards will do)
  • QGIS2threejs Plug In (available from all QGIS plug in repositories)

Next Steps:

Open up QGIS (at the time of writing this, we're using Brighton 2.6.1) and, if you haven't already, go to Plugins and install 'QGIS2threejs' (developed by Minoru Akagi).  

Now we need to add in our raster data, so go to Layer > Add Layer > Add Raster Layer and select both the .tiff files for your orthomosaic and prepared DSM, adding these to your project.  Make sure these use coordinate reference systems that are not based in degrees.  After all, you can't be 'x degrees' altitude can you - here, we used EPSG:32630 - WGS 84 / UTM zone 30N

Before you start to turn everything 3D, make sure you right-click on one of your layers and select 'Zoom to Layer'.  Next we want to run QGIS2threejs, which has its own icon on the QGIS toolbar.  Here, select your DEM Layer at the top, using the Simple re-sampling method to set both the X and Y resolution; WARNING - higher the resolution, the more memory you'll need - our original datasets have a whopping 3cm resolution!  You can also use SAGA GIS to re-sample XYZ data and reduce the point cloud and re-generating a lower resolution raster instead.

Make sure the Display Type is set to 'Map canvas image' and you're ready to click RUN!  Optionally, you can also add a 'Output HTML file path' name and reduce the vertical exaggeration (located in the World tab on the left panel).  Upload the output files onto any server and that should get you up and running!

The Result

You can view a 'live' web & mobile-friendly version here (use Chrome or Firefox, as this is a bit memory intensive!) or simply click on the image below to see Steven's visualisation on Flickr.