Class Hierarchy Compound List File List Compound Members File Members Related Pages

# GDAL - Geospatial Data Abstraction Library

GDAL is a translator library for raster geospatial data formats that is released under an Open Source license. As a library, it presents a single abstract data model to the calling application for all supported formats.

Master Page: http://www.remotesensing.org/gdal/index.html
Maintainer: Frank Warmerdam.

## Status

GDAL is in active use in a few projects, and includes a number of formats. Current translators include GeoTIFF (read/write), Erdas Imagine (read), ESRI .BIL (read/write), .aux labelled raw (read/write), DTED (read), SDTS DEM (read), CEOS (read), JPEG (read/write), PNG (read/write), Geosoft GXF (read) and Arc/Info Binary Grid (read). A full list is available in Supported Formats.

The gdal-dev@yahoogroups.com mailing list can be used for discussion of development and user issues related to GDAL and related technologies. Subscriptions can be done, and archives reviewed on the web.

API Documentation exists for GDAL, and was created using Doxygen.

## Bug Reporting

GDAL bugs can be reported, and can be listed using BugZilla.

## Source Access

The GDAL source is available by anonymous CVS:

    export CVSROOT=:pserver:anonymous@cvs.remotesensing.org:/cvsroot
    cvs login
    Password: anonymous
    cvs checkout gdal

Update access to the CVS repository can be obtained by arrangement with the maintainer. The CVS tree can also be browsed on the web. The last full source release is available as gdal116.zip or +gdal-1.1.6.tar.gz.

## Key Documentation Entry Points

- GDAL FAQ
- Supported Formats
- GDAL Data Model
- GDAL API Tutorial
- GDAL Driver Implementation Tutorial
- GDALDataset
- GDALRasterBand

## Building

GDAL has been successfully built on Linux, IRIX, Solaris, and Windows NT. On Unix platforms you might be able to build it as follows (assuming it is unpacked or checked out of CVS as gdal):

    % cd gdal
    % ./configure
    % make

Some caveats are:

- I depend on GNUmake on Unix platforms. Just get and install it if you don't already have it.

- The shared library building is pretty specific to the GNU tool chain. If you are using something different than GNU C++, then you will likely finding that the .so files isn't built successfully. You could just link against the static libraries (normally gdal/gdal.a gdal/ogr/ogr.a gdal/frmts/o/ *.a gdal/gdal.a gdal/port/cpl.a) or you could hack LD_SHARED command in gdal/GDALmake.opt to work on your platform. For the SGI a value of "c++ -shared -all" is often suitable.

- GDAL, and it's utilities should now build on Cygwin and other platforms where shared libraries are not supported. However, to build your own applications against it, you will need to link against a more extensive set of libraries. The gdal-config --libs command can be used to determine the library set.

- My "autoconf" logic that checks for libtiff, libpng and libjpeg isn't too savvy about versions. If it is using pre-installed versions of these libraries and this support isn't working, rerun configure with ``--with-png=internal'', ``--with-jpeg=internal'', ``--with-geotiff=internal'' or ``--with-libtiff=internal'' instead.

- To build on IRIX it is generally necessary to hand modify the GDALmake.opt file resulting from configure, and change "ld -shared" to "ld -shared -all".

- If you find build problems with one of the format drivers that you don't care about, just remove the format from the GDAL_FORMATS line at the bottom of gdal/GDALmake.opt, do a make clean, and make. This will drop it from the build and default runtime registration.

GDAL can be built on Windows using MS VC++ at the commandline. For this to work you will normally have to have run the VCVAR32.BAT script that comes with the compiler, and then do the following:

    C:\> CD GDAL
    C:\GDAL\> nmake /f makefile.vc

I frequently forget to update the Windows makefiles when I add new files, so if something comes up missing consider comparing the file lists in the appropriate makefile.vc against the GNUmakefile or just contact me.

## GDAL Utility Programs

The following GDAL utility programs exist current:

- gdal/apps/gdalinfo: Dumps a variety of information about a dataset to the terminal.

- gdal/apps/gdal_translate: Translate between GDAL formats. The default output format is GeoTIFF. Limited support for resizing images, selecting subwindows, and converting between data types.
- gdal/apps/gdaladdo: Add overviews to an existing database.

Binaries of the GDAL utility programs and the shared libraries are available for MS Windows NT/95/98 and Linux.

## Related Information

- My other projects, many of which are incorporated into GDAL or use GDAL.

- RemoteSensing.ORG: An organization for cooperative OpenSource work related to remote sensing. GDAL is hosted at remotesensing.org.

- OGRSpatialReference: My OGR encapsulation of OpenGIS projection definitions.

- OpenEV: An OpenGL/GTK/Python based graphical viewer which exclusively uses GDAL for raster access.

- OSSIM: Another geospatial viewing and analysis environment which uses GDAL as one of several plugins.

- UMN MapServer: A popular web mapping application with GDAL support.

- Virtual Terrain Project: The VTP libraries now use GDAL.