Nemo Library project grew out of an attempt to provide anybody with the minimal required set of software tools necessary to calculate the coordinates of Point Nemo. The original 1992 calculation used the coastline coordinates available on the DCW CD-ROM published only a year earlier.
The data included here is sourced from the OpenStreetMap project. It has an order of magnitude higher spatial density and coordinate resolution than DCW. However - and unlike DCW - it completely lacks any formal data positional accuracy attestation. What follows should therefore not be considered not as an improvement of the positional accuracy of 1992 published coordinates, but an invitation to anyone that may be in the possession of the coastline coordinates in the surroundings of the three Point Nemo proximity vertices (i.e., the South Pacific islets of Pandora, Motu Nui and Maher) with credible, publicly presented positional accuracy attestation to recalculate the coordinates using the programs on this web‑page and publish the results.
In addition to calculating a particular set of numbers, the programs presented here are also meant to provide Nemo Library API example code that can be used in other projects. This is the primary reason why the computation is broken into a number of steps, where each step is performed by a separate program. The steps (and the programs) are:
The first included program is r8bToP8bSelect.c -
[source],
[Linux executable] creates a UniSpherical
binary coordinate array of coastline points, in this case from a OSM
coastline coordinates in a txt file. The program provides the code that
can be, probably with very minor modifications, used to extract the
coastline data from other sources and create coastline data file
(osmPacific.p8b
) in the format
used by pointNemoProximityVertices.c
and
pointNemoDisqualify.c
programs (see below).
Using the coastline data file created in the previous step, pointNemoProximityVertices.c - [source], [Linux executable] performs a heuristic search for three costline points that the Point Nemo is equidistant from. In addition, the program determines its approximate location. The result of the program execution is a three line (one for each proposed coastline point) text file proximityVertices.pts used as the only input for the next step. (See the extensive preamble in the program source code for details).
The program pointNemoIterate.c - [source], [Linux executable] performs an iterative geodesic trilateration to find the exact location of the geodetic circle defined by three vertices found in the previous step. This center is the presumed (but not certain - see below!) Pint Nemo. The program writes (on the standard output) the solution, consisting of four text lines: the coordinates of the Point Nemo (first line) and (following three lines) of its three proximity vertices (in decimal degrees) and the distances to them (in meters along the geodesics).
The result of the calculation carried out so far is only a possible (or proposed) solution the ellipsoidal geometry problem considered here: There is no method to prove the proposed solution is correct. It is however trivially simple to disqualify an erroneous proposed solution.
The program pointNemoDisqualify.c - [source], [Linux executable] performs this function by traversing all coastline vertices, calculating their geodesic distances from the proposed Point Nemo. The solution is disqualified either by finding fewer than three points at the claimed Point Nemo distance, or by finding one (or more) vertices that are closer to Point Nemo than the claimed solution distance. Consequently, a solution may be considered correct only pending another proposed solution (with the same coastline coordinate data) with greater Point Nemo distance (i.e., a "longer swim") which passes the disqualification test performed by this program. The program writes a (dis)qualification report that consists of one line for each point on the coastline at the claimed distance and closer (with an epsilon introduced by the finite resolution of the coastline point coordinates, typically lower than the precision of the computational engine).
The computation carried out by this program is completely independent of the method (here embodied in the three previous steps) used to calculate the Point Nemo coordinates. It is therefore applicable to any proposed solution in combination with the coastline coordinate data used to derive it.