Polygonal Validity Scope



Polygonal Validity Scope in NTv2 files

A NTv2 file contains one or more quasi-rectangular coordinate grids which are defined in the NTv2 headers. Instead only a polygonal area should and must be covered, for example, a state territory within the country borders. How can outside of a polygonal administrative area located coordinates be excluded from the coordinate transformations and reference system transitions (datum shifts) and thereby localization errors be suppressed?


NTv2 was developed in Canada in the mid-nineties and means “National Transformation Version 2”. Meantime the pretty precise NTv2 method is used for the implementation of reference system transitions in many countries. NTv2 uses coordinate grids which are stored in files to perform exact transformations from one geodetic reference system to another. The coordinate grids of the NTv2 files contain the required shifts between both reference systems. Using bilinear interpolation, the exact coordinates of points in the source reference system are calculated to the target reference system.

Im Text verwendete neue Begriffe:


Polygonal Validity Scope

A polygon within a NTv2 grid in which reference system transitions are allowed.


Exopolygonal Entry

Entry of the value pair -99/-99 in shift values or accuracy values of a grid mesh for exclusion from the polygonal validity scope.


The NTv2 file is composed of one or several parent and child coordinate grids in hierarchical structure. With compacted grid meshes optional child coordinate grids improve subareas of the parent coordinate grids lying below. In a hierarchical way child grids can appear as parent grids to further child grids lying above (see figure 3). Most grid files, e.g. the German Beta2007, only contain one single parent coordinate grid.









MAJOR_F  6377397.155

MINOR_F  6356078.963

MAJOR_T  6378137.000

MINOR_T  6356752.314

The NTv2 file begins with a main header (left) in which general information, the names of the used reference systems and the particular ellipsoid parameters are stored. Parent and child coordinate grids follow and each begins with a sub header (right). Therein validity scopes of the coordinate grids are specified by southern and northern latitudes and western and eastern longitudes.



CREATED  06-11-09

UPDATED  06-11-09

S_LAT    169200.000000

N_LAT    199080.000000

E_LONG   -56400.000000

W_LONG   -19800.000000

LAT_INC  360.000000

LONG_INC 600.000000



-2.749746  7.165792  0.000000  0.000000

-2.750032  7.067153  0.000000  0.000000

-2.750411  6.968641  0.000000  0.000000

-2.750896  6.870278  0.000000  0.000000

-2.751498  6.772085  0.000000  0.000000

Each sub header is followed by grid meshes with two values for longitudinal and latitudinal shifts as well as two values for accuracy. Shifts between reference systems are mostly specified in seconds, but can also be stored as minutes or degrees. Optionally the accuracy can be specified in meters for the mean error of the longitudinal and latitudinal shifts.


Thus, the rectangular validity scope of a NTv2 file is defined by one or several quasi-rectangular coordinate grids. Therefore, polygonal areas like frontiers or the exclusion of certain areas are not possible. To solve this problem you could fill grid meshes that lie outside of the desired polygonal area with certain values. These values are called “exopolygonal entries” in the following text.

Figure 1: NTv2 grid with rectangular validity scope.

This rectangular coordinate grid of a common NTv2 file covers the state territory of the Federal Republic of Germany. Coordinate transformations outside of the state territory, which is provided for the reference system transition, will inevitably cause errors.


The first option for implementing polygonal structures is the use of exopolygonal entries for accuracy values of the grid meshes. In most NTv2 files, accuracy values are set to 0 or -1 to indicate that there is no information about accuracy available. Empirically, there are no NTv2 files in which accuracy values are specified by plausible numbers. There is no known GIS software that includes accuracy values in calculations.


Grid meshes that are supposed to be excluded are marked as invalid, in case you determine both of their accuracy values by an exopolygonal entry of -99. So labeled grid meshes are excluded from the calulations of reference system transitions. The number -99 is proper for the mark because it cannot be found as a value pair for plausible accuracies.


A total of four grid meshes are addressed, each of them extending one grid spacing LAT_INC in northern and southern direction and one grid spacing LON_INC in western and eastern direction from the grid point. These are the four grid meshes that are arranged around the grid point. Due to the fact that the area of a grid mesh is four times the size of the area of one grid mesh, an overlap zone to the polygonal validity area must be considered.


This method should be used if averaging from the surrounding grid points is to be excluded due to very high accuracy requirements.

Figure 2: NTv2 grid with polygonal validity scope.

This example addresses the area of the Federal Republic of Germany as polygonal validity scope. The red grid meshes are marked by exopolygonal entries and thus excluded from reference system transitions. The white grid meshes are border areas in which reference system transitions have to occur.


The second option is the exopolygonal entry -99 in both longitudinal and latitudinal shifts of the grid meshes. Again it applies, that this value pair cannot be found for plausible longitudinal or latitudinal shifts.


Exactly one grid mesh is addressed, which extends one grid spacing LAT_INC in northern and one grid spacing LON_INC in western direction from the grid point. This is exactly the grid mesh that is defined by the grid point and that is addressed when interpolating a coordinate located therein. If no value -99 is entered in at least one of the three remaining grid points of this grid mesh, a new shift value is generated from the mean value of the remaining grid meshes.


This method is preferable, as only grid meshes in the NTv2 file are excluded from polygonal validity if all four grid points contain the value -99.


-2.749746   7.165792   0.000000   0.000000

-2.750032   7.067153   0.000000   0.000000

-99.000000 -99.000000   0.000000   0.000000

-99.000000 -99.000000   0.000000   0.000000

-2.751498   6.772085   0.000000   0.000000

-2.752229   6.674087 -99.000000 -99.000000

-2.753104   6.576315 -99.000000 -99.000000

-2.754140   6.478805   0.000000   0.000000

-2.755358   6.381604   0.000000   0.000000

The example on the left shows both methods for the implementation of polygonal validity scopes. The shifts of two grid meshes marked yellow and the accuracy values of two further grid meshes marked blue have exopolygonal entries. Consequently, these four grid meshes are outside of the polygonal validity scope.


KilletSoft’s Geodetic Development Kit GeoDLL from version 16.00 on and their coordinate transformation program TRANSDAT from version 19.00 on already support polygonal validity scopes. Both tools detect exopolygonal entries in shifts and accuracies of grid meshes and check all hierarchical child and parent coordinate grids. On hits they generate a note, that the coordinate is located outside of the polygonal validity scope of the NTv2 grid file. Common NTv2 files without polygonal validity scopes still work as usual.


The full article about Polygonal Validity Scopes in NTv2 files can be read on the KilletSoft website at https://www.killetsoft.de/t_1512_e.htm.