[GIS] Producing Space-Time Cube in QGIS

cartographyqgisspace-time-cubespatio-temporal-datavisualisation

Although I have seen many examples about doing this at ArcGIS Desktop, I am still trying to find a how to using QGIS. What I want to do is something like the image below.

example

Best Answer

One option to do this would be by modifying your data and visualizing it with the excellent qgis2threejs plugin. The idea is to turn your your time to Z coordinates. I tried it out with two GPX tracks I had. After adding the files to QGIS, I ran Set Z value algorithm, where I entered the following expression as the Z value:

second("time"-minimum("time"))

enter image description here

The expression takes the timestamp (stored in my data in a field called "time") from each point feature and compares it to the minimum timestamp in the whole layer. This calculation results in to an interval data type, which can be converted to integer seconds with the second function. For this to work with your data, you might have to use minutes or hours or use some kind of a multiplier.

Next up you should install the qgis2threejs plugin via the plugins dialog. If you have data with Z coordinates in your project it should detect that automatically and you can visualize the results with additional data and a basemap if you want. I also merged the layers and added a extruded polygon from the bounding box as the "cube":

qgis2threejs preview

  • Downside: really hard to build a legend for the space-time cube.
  • Upside: you'll have an interactive space-time cube and you can use all the cool functionalities in qgis2threejs to make the end result more informative.
Related Question