Hierarchical Data Format

 

DSpHDFDriver.pas

 

The Hierarchical Data Format (HDF) is a complex format that was developed by the National Center for Supercomputing Applications (NCSA) at the University of Illinois at Urbana-Champaign. The format was developed to support the storage, retrieval, and analysis of large volumes of scientific data. NCSA has developed a software library to access HDF files, and the DSpatial driver is built on top of a shared library produced by NCSA.

The driver supports multiple rasters per file set, which each can have multiple bands. All DSpatial data types are supported by HDF and the driver, with the exception of dspInt64.

General

A complex format for the storage, retrieval, and analysis of large amounts of scientific data. The driver can access data that is stored as so-called scientific data sets (SDS, and the older DFSD). The driver uses version 4.2r1 of HDF. Since HDF is a superset of the older CDF format, files in this last format can be accessed as well.

The driver is built on top of a shared library produced by NCSA. As well, HDF and the software library are copyrighted by NCSA. For these reasons, and because many users may not need to read HDF files, this driver is distributed as a separate download.

Read

The driver reads raster data sets of any data type supported by HDF. Descriptive information is read as well. Multiple rasters can be read from a single file, and every raster can have multiple bands.

Data in HDF files can have up to 6 dimensions. The driver currently accesses only up to three dimensions. If the SDS has three of more dimensions, the first dimension represents the bands of the raster, the second the rows, and the third the columns. When only two diemsions are present, the first dimension represents the rows, and the second the columns of a single-band raster.

NASA distributes a prodigious amount of (free-of-charge) satellite imagery in HDF format. The data follows a strict organization, which is otherwise knows as HDF-EOS. This driver implements a subset of HDF-EOS so that (most) datasets can be read successfully. Examples of satellite imagery in this format includes MODIS and ASTER imagery.

Write

The driver does not support writing of new or modified data sets.

Attributes This format includes attributes at different levels, but these are not yet read.
Coordinate system

The HDF format does not support coordinate system information. Certain spatial data sets in HDF format (e.g. NASA EOS, GMT) include coordinate system information as attributes.

Documentation The HDF site at UIUC.
Data sources

The HDF format was selected by NASA as the preferred format for the distribution of Earth Observation System (EOS) satellite imagery. Consequently, huge volumes of data are available in HDF format. You can search for, order, and download NASA EOS data through the EOS Data Gateway. Most data is available free of charge.

The Global Land Cover Facility at the University of Maryland maintains an archive of satellite images from different sensors. Global coverage with Landsat 7 ETM data in HDF format is available at no charge. Every scene actually consists of a small HDF file which references secondary files (that you will need to unzip) that contain the actual bands of the satellite image. Make sure to download band 8 (high resolution panchromatic), with which you can do pan-sharpening using a multi-band renderer.

The Generic Mapping Toolbox (GMT) is a Unix-based toolbox of spatial analysis routines. GMT uses the CDF format which is supported by the HDF driver.

Developer information

The HDF driver is actually composed of a family of units. The DSpHDFInterface.pas unit contains low-level routines to access the shared library and setup function pointer into the shared library. The DSpHDFTypes.pas unit contains low-level definitions for the HDF code. The DSpHDFObject.pas unit provides an object-oriented wrapper for the HDF library, and the DSpHDFDriver.pas unit implements the DSpatial driver. The DSpHDFEOS unit mimics the EOS data format.


Go to SourceForge
Last modified: 24 August 2005. Page maintained by pvanlaake