GOAT allows you to calculate and visualize isochrones using alpha shapes. GOAT is using a very fast 2D concave hull algorithm, which is described in this paper A New Concave Hull Algorithm and Concaveness Measure for n-dimensional Datasets, 2012 and is implemented in a Javascript library called Concaveman. This library generates isochrones (polygons) representing the area from a set of points that can be reached in a dedicated time.

1. Concave Hull

Concave hulls are often used to generalize bounding polygons around a given sets of points. Depending on the chosen concaveness the precision of the isochrone can differ. The following example illustrates the difference between a convex and a concave hull.

1.1. Points from the network

1.2. Convex Hull

Imagine you take an a rubber band and you stretch it around the points. This is called convex hull. As you can see this representation is missing level of detail but comes with the advantage of fast computation.

1.3. Concave Hull

A concave hull usually begins with a convex hull as starting geometry and then tries to fit better the point dataset. Depending on the chosen concavity the shape can be more or less precise. Different parameters can be used for the calculation of the isochrones, depending of the needed precision. However rising precision comes with higher computation times.

Therefore, GOAT uses a specific parameter for the caclulation of the isochrones, that represents a compromise between accuracy and computation time. Thanks to the PLV8 extension the Concaveman library can be used directly in the PostgreSQL database.