Calculate Accurate 3D Cost Distance Efficiently
Cost distance is one of the fundamental functions in geographic information systems (GIS), which has been used in various applications such as route planning, construction of Thiessen polygons and distance weighted interpolation. Conventional 2D cost distance function, due to its limited movement directions (either 4 or 8 neighbourhood cells) in the raster data model, overestimates the least cost and the problem is especially severe with a homogeneous friction surface. 3D cost distance function removes the limitation that movement must occur on a planar surface. It can therefore take into account tunnels and bridges when calculating least cost paths. In addition, it can also be used in many other application domains which deal with 3D geospatial data such as in atmospheric science, geology, and oceanography. Based on the method in Tomlin (2010), which can completely eliminate the overestimation when traveling on a homogeneous friction surface, this research proposes an algorithm that calculates accurate least cost with both homogeneous and heterogeneous friction in 3D space. When extending the cost distance function from 2D to 3D, the number of voxels in the propagation front increases significantly and efficiency is an imperative issue. This research also improves the computational efficiency by developing a data structure that combines a binary heap and a hash table. Our results show that the proposed algorithm can calculate accurate 3D cost distance in a homogeneous friction space, and the proposed data structure (i.e., heap plus hash table) not only significantly reduces the algorithm’s runtime but also benefits more in 3D than in 2D. In addition, we have applied the method in a 3D drone delivery routing application in a city environment (Figure 1). Additional applications, such as calculating groundwater flow paths of least hydraulic resistance in a heterogeneous 3D hydraulic conductivity field, are currently under development.