GIE(1)

NAME
gie - The Geospatial Integrity Investigation Environment

SYNOPSIS
gie [-options]... infile...

DESCRIPTION
gie, the Geospatial Integrity Investigation Environment, is a modest regression testing environment for the PROJ transformation library.

Its primary design goal was to be able to replace those thousands of lines of regression testing code that are (at time of writing) part of PROJ, while not requiring any other kind of tooling than the same C compiler already employed for compiling the library.

The basic functionality of the gie command language is implemented through just 3 command verbs:

operation, which defines the PROJ operation to test,
accept, which defines the input coordinate to read, and
expect, which defines the result to expect.

E.g:

operation +proj=utm +zone=32 +ellps=GRS80
accept 12 55
expect 691_875.632_14 6_098_907.825_05

Note that gie accepts the underscore ("_") as a thousands separator. It is not required (in fact, it is entirely ignored by the input routine), but it significantly improves the readability of the very long strings of numbers typically required in projected coordinates.

By default, gie considers the EXPECTation met, if the result comes to within 0.5 mm of the expected. This default can be changed using the "tolerance" command verb (and yes, I know, linguistically speaking, both "operation" and "tolerance" are nouns, not verbs). See the first few hundred lines of the "builtins.gie" test file for more details of the command verbs available (verbs of both the VERBal and NOUNistic persuation).

But more importantly than being an acronym for "Geospatial Integrity Investigation Environment", gie were also the initials, user id, and USGS email address of Gerald Ian Evenden (1935--2016), the geospatial visionary, who, already in the 1980s, started what was to become the PROJ of today.

Gerald's clear vision was that map projections are *just special functions*. Some of them rather complex, most of them of two variables, but all of them *just special functions*, and not particularly more special than the sin(), cos(), tan(), and hypot() already available in the C standard library.

And hence, according to Gerald, *they should not be particularly much harder to use*, for a programmer, than the sin()s, tan()s and hypot()s so readily available.

Gerald's ingenuity also showed in the implementation of the vision, where he devised a comprehensive, yet simple, system of key-value pairs for parameterising a map projection, and the highly flexible PJ struct, storing run-time compiled versions of those key-value pairs, hence making a map projection function call, pj_fwd(PJ, point), as easy as a traditional function call like hypot(x,y).

While today, we may have more formally well defined metadata systems (most prominent the OGC WKT2 representation), nothing comes close being as easily readable ("human compatible") as Gerald's key-value system. This system in particular, and the PROJ system in general, was Gerald's great gift to anyone using and/or communicating about geodata.

It is only reasonable to name a program, keeping an eye on the integrity of the PROJ system, in honour of Gerald.

So in honour, and hopefully also in the spirit, of Gerald Ian Evenden (1935--2016), this is the Geospatial Integrity Investigation Environment.

OPTIONS

-h  Help: print usage information

-o /path/to/file
    Specify output file name

-v  Verbose: Provide non-essential informational output. Repeat -v for more verbosity (e.g. -vv)

-q  Quiet: Opposite of verbose. In quiet mode not even errors are reported. Only interaction is through the return code (0 on success, non-zero indicates number of FAILED tests)

-l  List the PROJ internal system error codes

LONG OPTIONS

--output
    Alias for -o

--verbose
    Alias for -v

--help
    Alias for -h

--list
    Alias for -l

EXAMPLES
1. Run all tests in file

    gie -vvvv corner-cases.gie

2. Run all tests in files

    gie foo bar

HOME PAGE
http://proj4.org/