# Various Support GDAL Raster Formats

## AAIGrid -- Arc/Info ASCII Grid

Supported for read access, including reading of an affine georeferencing transform and some projections. This format is the ASCII interchange format for Arc/Info Grid, and takes the form of an ASCII file, plus sometimes an associated .prj file. It is normally produced with the Arc/Info ASCIIGRID command.

The projections support (read if a *.prj file is available) is quite limited. Additional sample .prj files may be sent to the maintainer, warmerdam@pobox.com.

The NODATA value for the grid read is also preserved when available. Grids are treated as signed 16bit integer unless the first scanline contains decimal values in which case the image is treated as 32bit floating point.

The AIG GIO drivers are also available for Arc/Info Binary Grid format.

NOTE: Implemented as `gdal/frmts/aaigrid/aaigriddataset.cpp`.

## AIG -- Arc/Info Binary Grid

Supported for read access, including reading of an affine georeferencing transform and some projections. This format is the internal binary format for Arc/Info Grid, and takes the form of a coverage level directory in an Arc/Info database. To open the coverage select the coverage directory, or an .adf file (such as hdr.adf) from within it.

This driver is implemented based on a reverse engineering of the format. See the format description for more details.

The projections support (read if a prj.adf file is available) is quite limited. Additional sample prj.adf files may be sent to the maintainer, warmerdam@pobox.com.

Note that another driver (GIO) is available for Windows platforms with ArcView installed.

NOTE: Implemented as `gdal/frmts/aigrid/aigdataset.cpp`.

## BSB -- Maptech/NOAA BSB Nautical Chart Format

Supported for read access, including reading the colour table and the reference points (as GCPs). Note that the .BSB files cannot be selected directly. Instead select the .KAP files.

This driver is based on work by Mike Higgins. See the frmts/bsb/bsb_read.c files for details on patents affecting BSB format.

NOTE: Implemented as `gdal/frmts/bsb/bsbdataset.cpp`.

## CEOS -- CEOS Image

This is a simple, read-only reader for ceos image files. To use, select the main imagery file. This driver reads only the image data, and does not capture any metadata, or georeferencing.

This driver is known to work with CEOS data produced by Spot Image, but will have problems with many other data sources. In particular, it will only work with eight bit unsigned data.

See the separate SAR_CEOS driver for access to SAR CEOS data products.

NOTE: Implemented as `gdal/frmts/ceos/ceosdataset.cpp`.

## DOQ1 -- First Generation USGS DOQ

Support for read access, including reading of an affine georeferencing transform, and capture of the projection string. This format is the old, unlabelled DOQ (Digital Ortho Quad) format from the USGS.

NOTE: Implemented as `gdal/frmts/raw/doq1dataset.cpp`.

## DOQ2 -- New Labelled USGS DOQ Support for read access, including reading of an affine georeferencing transform, capture of the projection string and reading of other auxilary fields as metadata. This format is the new, labelled DOQ (Digital Ortho Quad) format from the USGS.

This driver was implemented by Derrick J Brashear.

NOTE: Implemented as `gdal/frmts/raw/doq2dataset.cpp`.

See Also: USGS DOQ Standards

## DTED -- Military Elevation Data

GDAL supports DTED Levels 1, and 2 elevation data for read access. Elevation data is returned as 16 bit signed integer. Appropriate projection (always WGS84) and georeferencing information is also returned. No other metadata is captured.

NOTE: Implemented as `gdal/frmts/dted/dteddataset.cpp`.

## EFF -- Eosat Fast Format

Support for read access to EOSAT Fast Format data is available in GDAL. EOSAT datasets normally consist of one or more raster data files (eg. BAND1.DAT, BAND2.DAT, ...) and a header file which must be called HEADER.DAT. To open the dataset select the HEADER.DAT file.

Currently only the raster data is accessed. Georeferencing, and other meta data is ignored.

NOTE: Implemented as `gdal/frmts/raw/effdataset.cpp`.

## EHdr -- ESRI .hdr Labelled

GDAL supports the ESRI .hdr labelling format for reading raw raster data (often referred to as ESRI BIL format) for read-only access. Eight, sixteen and thirty-two bit integer raster data types are supported as well as reading of the affine georeferencing transform. Reading of projection definitions is not supported. Unrecognised options in the .hdr file are ignored. To open a dataset select the file with the image file (often with the extension .bil).

This driver may be sufficient to read GTopo 30 data, and Geospot products.

NOTE: Implemented as `gdal/frmts/raw/ehdrdataset.cpp`.

## Envisat -- Envisat Image Product

GDAL supports the Envisat product format for read access. All sample types are supported. Files with two matching measurement datasets (MDS) are represented as having two bands.

The control points of the GEOLOCATION GRID ADS dataset are read if available, generally giving a good coverage of the dataset. The GCPs are in WGS84.

Virtually all key/value pairs from the MPH and SPH (primary and secondary headers) are copied through as dataset level metadata.

NOTE: Implemented as `gdal/frmts/envisat/envisatdataset.cpp`.

## FITS -- Flexible Image Transport System

FITS is a format used mainly by astronomers, but it is a relatively simple format that supports arbitrary image types and multi-spectral images, and so has found its way into GDAL. FITS support is implemented in terms of the standard CFITSIO library, which you must have on your system in order for FITS support to be enabled. Both reading and writing of FITS files is supported. At the current time, no support for a georeferencing system is implemented, but WCS (World Coordinate System) support is possible in the future.

NOTE: Implemented as `gdal/frmts/fits/fitsdataset.cpp`.

## GIO -- Arc/Info Binary Grid

This is a second implementation for reading, and writing Arc/Info grids, and only works on Windows platforms with ArcView installed. It uses the AVGRIDIO.DLL installed with ArcView to implement full access.

This driver supports georeferencing bounds, but no projection definition. New coverages can be created with a code of GIO.

Also see the AIG read-only driver available on all platforms.

NOTE: Implemented as `gdal/frmts/aigrid/giodataset.cpp`.

## GXF -- Grid eXchange File

This is a raster exchange format propagated by Geosoft, and made a standard in the gravity/magnetics field. The format is supported for read, and write and includes support for georeferencing information, and projections.

Details on the supporting code, and format can be found on the GXF-3 page.

NOTE: Implemented as `gdal/frmts/gxf/gxfdataset.cpp`.

## JDEM -- Japanese DEM (.mem)

GDAL includes read support for Japanese DEM files, normally having the extension .mem. These files are represented as having one 32bit floating band with elevation data. The georeferencing of the files is returned as well as the coordinate system (always lat/long on the Tokyo datum). There is no update or creation support for this format. NOTE: Implemented as `gdal/frmts/jdem/jdemdataset.cpp`.

## MFF -- Atlantis MFF Raster

GDAL includes read, update, and creation support for Atlantis Scientific's MFF raster format. MFF dataset consist of a header file (typically with the extension .hdr) and a set of data files with extensions like .x00, .b00 and so on. To open a dataset select the .hdr file.

Reading lat/long GCPs (TOP_LEFT_CORNER, ...) is supported but there is no support for reading affine georeferencing or projection information.

Unrecognised keywords from the .hdr file are preserved as metadata.

All data types with GDAL equivelents are supported, including 8, 16, 32 and 64 bit data precisions in integer, real and complex data types. In addition tile organized files (as produced by the Atlantis SAR Processor - APP) are supported for reading.

On creation (with a format code of MFF) a simple, ungeoreferenced raster file is created.

MFF files are not normally portable between systems with different byte orders. However GDAL honours the new BYTE_ORDER keyword which can take a value of LSB (Integer -- little endian), and MSB (Motorola -- big endian). This may be manually added to the .hdr file if required.

NOTE: Implemented as `gdal/frmts/raw/mffdataset.cpp`.

## MFF2 -- Atlantis MFF2 Image

GDAL supports MFF2 Image raster file format for read, update, and creation. This format is primarily used internally to the Atlantis Scientific InSAR processing system.

To select an MFF2 dataset select the directory containing the `attrib`, and `image_data` files for the dataset.

Currently only the UTM projection is supported (georef.projection.name = utm), with the affine transform computed from the lat/long control points. In any event, if GCPs are available in a georef file, they are returned with the dataset.

Newly created files (with a type of `MFF2`) are always just raw rasters with no georeferencing information. For read, and creation all data types (real, integer and complex in bit depths of 8, 16, 32) should be supported.

NOTE: Implemented as `gdal/frmts/raw/hkvdataset.cpp`.

## PAux -- PCI .aux Labelled Raw Format

GDAL includes a partial implementation of the PCI .aux labelled raw raster file for read, write and creation. To open a PCI labelled file, select the raw data file itself. The .aux file (which must have a common base name) will be checked for automatically.

The format type for creating new files is `PAux`. All PCI data types (8U, 16U, 16S, and 32R) are supported. Currently georeferencing, projections, and other metadata is ignored.

NOTE: Implemented as `gdal/frmts/raw/pauxdataset.cpp`.

See Also: PCI's .aux Format Description

## PNG -- Portable Network Graphics

GDAL includes support for reading, and creating .png files. Greyscale, pseudo-colored, Paletted, RGB and RGBA PNG files are supported as well as precisions of eight and sixteen bits per sample.

PNG files are linearly compressed, so random reading of large PNG files can be very inefficient (resulting in many restarts of decompression from the start of the file).

Text chunks are translated into metadata, typically with multiple lines per item. World files with the extension of .wld will be read. Single transparency values in greyscale files will be recognised as a nodata value in GDAL. Transparent index in paletted images are preserved when the color table is read.

PNG files can be created with a type of PNG, using the CreateCopy() method, requiring a prototype to read from. Writing includes support for the various image types, and will preserve transparency/nodata values. However, georeferencing .wld files are not current written. All pixel types other than 16bit unsigned will be written as eight bit.

NOTE: Implemented as `gdal/frmts/png/pngdataset.cpp`. PNG support is implemented based on the libpng reference library. More information is available at http://www.libpng.org/pub/png.

## PNM -- Netpbm (.pgm, .ppm)

GDAL includes support for reading, and creating .pgm (greyscale), and .ppm (RGB color) files compatible with the Netpbm tools. Only the binary (raw) formats are supported.

Netpbm files can be created with a type of PNM.

NOTE: Implemented as `gdal/frmts/raw/pnmdataset.cpp`.

## SAR_CEOS -- CEOS SAR Image

This is a read-only reader for CEOS SAR image files. To use, select the main imagery file.

This driver works with most Radarsat and ERS data products, including simple look complex products; however, it is unlikely to work for non-Radar CEOS products. The simplier CEOS driver is often appropriate for these.

This driver will attempt to read 15 lat/long GCPS by sampling the per-scanline CEOS superstructure information. It also captures various pieces of metadata from various header files, including:

      CEOS_LOGICAL_VOLUME_ID=EERS-1-SAR-MLD
      CEOS_PROCESSING_FACILITY=APP
      CEOS_PROCESSING_AGENCY=CCRS
      CEOS_PROCESSING_COUNTRY=CANADA
      CEOS_SOFTWARE_ID=APP 1.62
      CEOS_ACQUISITION_TIME=19911029162818919
      CEOS_SENSOR_CLOCK_ANGLE=  90.000
      CEOS_ELLIPSOID=IUGG_75
      CEOS_SEMI_MAJOR=    6378.1400000
      CEOS_SEMI_MINOR=    6356.7550000

NOTE: Implemented as `gdal/frmts/ceos2/sar_ceosdataset.cpp`.

## SDTS -- USGS SDTS DEM

GDAL includes support for reading USGS SDTS formatted DEMs. USGS DEMs are always returned with a data type of signed sixteen bit integer. Projection and georeferencing information is also returned.

SDTS datasets consist of a number of files. Each DEM should have one file with a name like XXXCATD.DDF. This should be selected to open the dataset.

NOTE: Implemented as `gdal/frmts/sdts/sdtsdataset.cpp`.

## USGSDEM -- USGS ASCII DEM

GDAL includes support for reading USGS ASCII DEM files. These are the traditional format used by USGS before being replaced by SDTS. Most popular variations on USGS DEM files should be supported, including correct recognition of coordinate system, and georerenced positioning.

The 7.5 minute (UTM grid) USGS DEM files will generally have regions of missing data around the edges, and these are properly marked with a nodata value. Elevation values in USGS DEM files may be in meters or feet, and this will be indicated by the return value of GDALRasterBand::GetUnitType() (either "m" or "ft").

Note that USGS DEM files are represented as one big tile. This may cause cache thrashing problems if the GDAL tile cache size is small. It will also result in a substantial delay when the first pixel is read as the whole file will be ingested.

Some of the code for implementing usgsdemdataset.cpp was derived from VTP code by Ben Discoe. See the Virtual Terrain project for more information on VTP.

NOTE: Implemented as `gdal/frmts/sdts/usgsdemdataset.cpp`.