Hipparchus (software product)

Ever since humans first used numbers to describe the size, shape and relationship between the objects on the planetary surface, they did it in two different ways: When the objects were relatively small and in their immediate surroundings (for instance, plots of agricultural land) they assumed that the objects were located on the plane. On the other hand, when they used Sun and stars to navigate a boat hundreds of miles to distant ports, they had to assume that the objects of their interest were located on the surface of a sphere.

These two ways of dealings with the "where of things" coexisted for many centuries, with different computations used in different fields of human activity.

However, as the size of the objects and the extent of the area of interest grew, the discrepancy between what was calculated in the plane and what was measured in the field was also growing: Neither the topology nor the metrics of the plane are the same as those of the spherical surface. Likewise, as the precision of astronomical observations increased, and as they covered whole continents and ultimately the complete planetary surface, even the sphere did not adequately represent the shape of the planet. In order to properly match what was calculated and what was observed, the calculations had to assume the sphere was somewhat "squished" at the Poles. The Earth's shape most closely resembles what is mathematically known as an "oblate ellipsoid".

Great mathematical minds of the 18-th and 19-th century (most notable among them Carl Friedrich Gauß (1777 - 1855 AD), "Prince of Mathematicians" - his name often anglicized as "Gauss") - developed an arrangement to keep, for the most part, the speed and simplicity of planar computations, but still be able to describe the location and shape of objects using numbers ("coordinates") that covered the boundless but finite surface of the ellipsoid.

How did they do it?

A "control network" of a relatively small number of points (perhaps less than a hundred covering a country, later several hundreds covering whole continents) was selected. Their mutual distances and direction were measured with a combination of astronomical and ground measurements. Using those measurements, their ellipsoid coordinates were calculated using as precise ellipsoid geometry computations as it was practical to do when performing the calculations "by hand" - using only logarithmic tables and mechanical calculating machines.

In addition, they proposed some very specific methods for finding the mathematical correspondence between ellipsoid and planar coordinates for a plane positioned anywhere on the ellipsoid. If size of the plane was suitably restricted, the discrepancy between planar calculations and field measurements could be kept within tolerable limits. Any number of such planes could be used - perhaps a single one for a small country, or several, each about a hundred or at most several hundred kilometres in size for a large country. All calculations required to manage spatial knowledge of objects within a single plane could be done using simple, planar geometry calculations. The mutual positions of those planar coordinate system was determined using the control network point coordinates known at the same time on the ellipsoid and in each plane. Control network points were also physically marked on the terrain, so as to connect other measurements to them. If and when the relationships between objects in different planar systems were to be derived, more complex calculations were required - something done much less frequently.

This combination of continental (or later global) control networks known by ellipsoid coordinates and multiple, local planar "patches" worked reasonably well for another couple of centuries.

Then humans built electronic devices we now call "digital computers", and everything changed.

The difference in cost between planar and ellipsoidal coordinate computations - dramatic when done by humans - nearly disappeared. What was a difference between days vs. months of hard, error-prone computational labour by a human, became a difference of only a few additional CPU cycles. This, in theory at least, made that whole system of ellipsoid control networks interconnecting multiple, locale-specific computational planes obsolete. Any calculation that had to be done, could be done by a digital computer, using ellipsoid coordinates and ellipsoid computational geometry, in a single, continuous, planet-wide coordinate system. Planar coordinates would still serve a purpose - but only to aid the visualization of spatial objects and phenomena on a flat piece of paper or computer display - not to be used to perform coordinate calculations.

Hipparchus - the astronomer of antiquity (190 - 120 BC) - is believed to be the first to introduce the coordinate system to describe positions on the surface of a sphere using angular measurements of latitude and longitude. He also developed the basic trigonometry computations with those angles. Gauß used the same angles and an old, but at his time ascending branch of mathematics called calculus, to make the computations work with the desired precision not only on a sphere, but also on an ellipsoid.

Hipparchus - the software product - was developed in 1980s and '90s in order to provide prepackaged "middle-ware" computer code that would make it possible to build software applications that dealt with the "where of things" directly on the ellipsoid, without the aid of those "planar patches". While rooted firmly in the computational fundamentals established by Hipparchus and Gauß, it replaced trigonometry performed on angular latitude and longitude with vector algebra, and calculus used to achieve ellipsoid-level precision with iterative algorithms. For many different reasons, both of those methods are much better suited to the way digital computers work than their traditional alternatives.

In addition, the software product tackled another problem that did not merit much attention before. In the age of digital computers, applications emerged that stored many millions of spatial objects with, potentially, billions of individual point coordinates. This requires the construction of index structures that would quickly and efficiently retrieve stored items based on their mutual proximity. Just like the coordinate computations, this problem is much more difficult to solve adequately on the boundless, continuous surface of a sphere or an ellipsoid than it is to solve it for objects in a plane.

www.lukatela.com/hrvoje