Knowledge Base

What is HDF-EOS?

Hierarchical Data Format (HDF) is the standard data format for all NASA Earth Observing System (EOS) data products.It is also known as HDF-EOS.

The HDF Group developed HDF, a multi-object file format, to assist users in the transfer and manipulation of scientific data across diverse operating systems and computer platforms, using FORTRAN and C calling interfaces and utilities. HDF supports a variety of data types: n-Dimensional scientific data arrays, tables, text annotations, several types of raster images and their associated color palettes, and metadata. The HDF library contains interfaces for storing and retrieving these data types in either compressed or uncompressed formats.

For each data object in an HDF file, predefined tags identify the type, amount, and dimensions of the data; and the file location of various objects. The self-describing capability of HDF files helps users to fully understand the file's structure and contents from the information stored in the file itself. A program interprets and identifies tag types in an HDF file and processes the corresponding data. A single HDF file can also accommodate different data types, such as symbolic, numerical, and graphical data; however, raster images and multidimensional arrays are often not geolocated. Because many earth science data structures need to be geolocated, The HDF Group developed the HDF-EOS format with additional conventions and data types for HDF files.

HDF-EOS supports three geospatial data types: grid, point, and swath, providing uniform access to diverse data types in a geospatial context. The HDF-EOS software library allows a user to query or subset the contents of a data file by spatial or temporal coverage. Tools that process standard HDF files also read HDF-EOS files; however, standard HDF library calls cannot access spatial or temporal data and product metadata as easily as with HDF-EOS library calls. 

Geolocating HDF-EOS Data

A primary function of the HDF-EOS format is to specify geolocation information in a file. Each HDF-EOS object (point, swath, or grid) supports geolocation differently. Point and swath files provide explicit latitude and longitude values. For grid structures, the HDF-EOS library uses the U.S. Geological Survey (USGS) General Cartographic Transformation Package (GCTP) conventions for storing projection information. Tools that fully support HDF-EOS files should automatically read the latitude and longitude arrays associated with point and swath objects, or should use the HDF-EOS library routines that enable conversion of latitude and longitude coordinates to row and column indices for grid objects. In addition, several commercial packages can read the structural metadata to automatically geolocate the data arrays. Visit the NASA Goddard Earth Science, Data, and Information Services Center Data Tools website for more information about these tools.

To manually determine the geographic coverage of a data file, refer to the XML metadata (.xml) file delivered with the data. The HDF global text attribute StructMetadata.0 contains geolocation metadata for all data arrays. Level 2 swath data have latitude and longitude arrays called Geolocation Fields inside each swath VGroup. The structural metadata specifies the mapping of geolocation arrays to data arrays. For more information on Geolocation Fields, please consult Section 5.1.2 Geolocation Fields, page 27 of the HDF-EOS Library User's Guide, Volume 1. For Level 3 gridded data, the projection type and associated parameters are stored in the structural metadata according to GCTP conventions.

For additional information and tools for working with HDF-EOS, explore the online resources provided by the HDF Group.