libgeotiff  1.7.1
About: libgeotiff is a library (built on top of libtiff) for reading and writing coordinate system information from and to GeoTIFF files (GeoTIFF establishes a TIFF based interchange format for georeferenced raster imagery).
  Fossies Dox: libgeotiff-1.7.1.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

libgeotiff Documentation

Some Fossies usage hints in advance:

  1. To see the Doxygen generated documentation please click on one of the items in the steelblue colored "quick index" bar above or use the side panel at the left which displays a hierarchical tree-like index structure and is adjustable in width.
  2. If you want to search for something by keyword rather than browse for it you can use the client side search facility (using Javascript and DHTML) that provides live searching, i.e. the search results are presented and adapted as you type in the Search input field at the top right.
  3. Doxygen doesn't incorporate all member files but just a definable subset (basically the main project source code files that are written in a supported language). So to search and browse all member files you may visit the Fossies libgeotiff-1.7.1.tar.gz contents page and use the Fossies standard member browsing features (also with source code highlighting and additionally with optional code folding).

This library is designed to permit the extraction and parsing of the
"GeoTIFF" Key directories, as well as definition and installation
of GeoTIFF keys in new files. For more information about GeoTIFF
specifications, projection codes and use, see the WWW web page at:

or the download archive at:
Mailing List

To ask questions and to follow release announcements, subscribe at:


The default configuration assumes that the public-domain LIBTIFF
package for reading and writing TIFF files has been installed, with
the development kit (include files).  The latest version of libtiff may 
be found at:

For this build to work you must use libtiff version v3.6.0 alpha or newer.

Use of PROJ

PROJ 6 or later is a required dependency of libgeotiff 1.5 or later.
The latest version of PROJ can be found at


Assuming that whatever TIFF library you use has been built, and installed
may now build the rest of the geotiff library with:

   % cd libgeotiff
   % ./configure --with-proj=/contrib/proj-6
   % make 

Common Configuration Issues:

 o If you want to alter the compiler used, set the CC environment variable
   before running configure.  

   % setenv CC cc
   % rm config.status
   % ./configure
   % make clean 
   % make 

 o If you want to control the compiler files, set the CFLAGS environment 
   variable.  This can be used to override the default optimization/debug
   flags for instance.

   % setenv CFLAGS -O4
   % rm config.status
   % ./configure
   % make clean 
   % make

 o If you want to force use of a locally built libtiff that was never 
   "installed" you can point to the directory like this:

   % rm config.status
   % ./configure --with-libtiff=/u/contrib/libtiff-3.6.0/libtiff
   % make clean 
   % make

 o If you have installed libtiff in a location other than /usr, then you can
   point to the install tree like this:

   % rm config.status
   % ./configure --with-libtiff=/usr/local
   % make clean 
   % make

 o The logic to build shared libraries is pretty weak, and is likely to
   only work on systems with the GNU tool chain (gcc, and ld) installed. 
   On other systems you can try hacking on Makefile after running configure.
   It may be necessary to set the GEOTIFF_SO macro to "libgeotiff.1.2.x"
   as it is made empty by default on systems configure doesn't think can 
   build shared libraries.

Test Programs:

There are two demonstration test programs "makegeo" and "listgeo"
that create and list-out the GeoTIFF tags and keys associated 
with a small TIFF file, as well as a full-featured utility called
"geotifcp". These will all be built in the bin/ directory as a matter of 
course, though may require modification if you are not using LIBTIFF, as they
make explicit calls to LIBTIFF for opening the files and setting the
tags. To run them simply call:

  % bin/makegeo
  % bin/listgeo newgeo.tif

to generate and list an example GeoTIFF file. To see the
"geotifcp" utility in action, first call:

  %  bin/listgeo newgeo.tif > metadata.txt
to create a GeoTIFF metadata file "metadata.txt", and then

  %  bin/geotifcp  -g  metadata.txt  newgeo.tif  newer.tif
to copy the TIFF file newgeo.tif to newer.tif, using the
GeoTIFF metadata as stored in "metadata.txt". See "docs/manual.txt"
for further uses of geotifcp.

To convert a projection metafile, an ESRI world file, and a raw TIFF file
into a GeoTIFF file do something like the following:

  % bin/tiffcp -g metadata.txt -e abc.tfw abc.tif geo_abc.tif

Non-Standard Configuration:

If you are using a TIFF software package other than libtiff, then you
must override the TIFF file methods used in LIBGEOTIFF. To do this, 
go into directory libgeotiff and edit the files:

which contain all of the TIFF externals. You will need to define your
own versions of the TIFF tag reading, writing, and memory allocation
calls. See the comments of those two files to see what needs to be
changed. Also, whatever software package you use will have to 
recognize the GeoTIFF tags listed in the include files, and permit
variable-length arrays to be passed in to those tags.


 o This library was originally written by Niles Ritter (also the primary
   author of the GeoTIFF specification).  

 o Eric Brown of Universal Systems, who contributed a bug fix to 

 o Safe Software ( who supported by upgrade to use the 
   EPSG 6.2.2 database for libgeotiff 1.2.0.

 o Many others who contributed before it occured to me to maintain credits.