(12) Optimal triangulation of data

Our next example operates on a data set of topographic readings non-uniformly distributed in the plane (Table 5.11 in Davis: Statistics and Data Analysis in Geology, J. Wiley). We use [triangulate] to perform the optimal Delaunay triangulation, then use the output to draw the resulting network. We label the node numbers as well as the node values, and call [contour] to make a contour map and image directly from the raw data. Thus, in this example we do not actually make grid files but still are able to contour and image the data. We use the CPT topo.cpt (created via [gmtinfo] and [makecpt]). The script becomes:

using GMT
GMT.resetGMT() # hide

table_5 = gmtread("@Table_5_11.txt")    # The data used in this example
T = gmtinfo(table_5, nearest_multiple=(dz=25, col=2))
makecpt(color=:jet, range=T.text[1][3:end])  # Make it also the current cmap

subplot(grid=(2,2), limits=(0,6.5,-0.2,6.5), col_axes=(bott=true,), row_axes=(left=true,),
        figsize=8, margins=0.1, panel_size=(8,0), tite="Delaunay Triangulation")
    # First draw network and label the nodes
    net_xy = triangulate(table_5, M=true)
    plot(net_xy, lw=:thinner)
    plot(table_5, marker=:circle, ms=0.3, fill=:white, MarkerLine=:thinnest)
    text(table_5, font=6, rec_number=0)

    # Then draw network and print the node values
    plot(net_xy, lw=:thinner, panel=(1,2))
    plot(table_5, marker=:circle, ms=0.08, fill=:black)
    text(table_5, zvalues=true, font=6, justify=:LM, fill=:white, pen="", clearance="1p", offset=("6p",0), noclip=true)

    # Finally color the topography
    contour(table_5, pen=:thin, mesh=(:thinnest,:dashed), labels=(dist=2.5,), panel=(2,1))
    contour(table_5, colorize=true, panel=(2,2))
subplot("show")