HDF Scientific Dataset ID Numbers

IDL's HDF_SD_ routines can accept two different types of ID numbers. Documentation for these routines in the IDL Reference Guide refers to these ID numbers as the SD_ID and SDS_ID arguments.

The SD_ID is the Scientific Dataset interface ID. There is only one SD_ID per HDF file. For each actual dataset used, you will also need an SDS_ID , which is the ID for the particular dataset.

Some routines, such as HDF_SD_ATTRFIND accept either an SD_ID or an SDS_ID . In these cases, the documentation refers to the ID as an S_ID , meaning that either type of ID is accepted.

A Cautionary Note about Tags

Both the old DFSD and the new MFSD HDF interfaces use the same tags. Therefore, you must be careful when reading or writing SDs. Use only the appropriate "HDF_SD_" or "HDF_DFSD_" routines. The wrong SD interface may seem to work, but may return bad results.

IDL and HDF Data Types

HDF and IDL support many different data types. Many of the HDF routines allow you to perform a data type conversion "on the fly" by setting keywords such as FLOAT. When the data type desired is not explicitly specified, IDL uses the conversions shown in the following tables. Note that single-precision floating-point is the default data type and that the complex data type is not supported.

When writing IDL data to an HDF file, IDL data types are converted to the HDF data types shown in See Type Conversions when Writing IDL Data to an HDF File :

  • Type Conversions when Writing IDL Data to an HDF File

IDL Data Type

HDF Data Type

BYTE

DFNT_UINT8 (IDL bytes are unsigned)

INT

DFNT_INT16

LONG

DFNT_INT32

FLOAT

DFNT_FLOAT32

DOUBLE

DFNT_DOUBLE

STRING

DFNT_CHAR

When reading data from an HDF file, HDF data types are converted to the IDL data types shown in See Type Conversions when Reading HDF Data into IDL :

  • Type Conversions when Reading HDF Data into IDL

HDF Data Type

IDL Data Type

DFNT_CHAR or DFNT_UCHAR

STRING

DFNT_INT8 or DFNT_UINT8

BYTE

DFNT_INT16 or DFNT_UINT16

INT

DFNT_INT32 or DFNT_UINT32

LONG

DFNT_FLOAT32 or DFNT_NONE

FLOAT

DFNT_DOUBLE

DOUBLE

HDF type codes for the supported HDF data types are shown in See HDF Data Type Codes :

  • HDF Data Type Codes

HDF Data Type

Type Code

DFNT_UCHAR

3

DFNT_CHAR

4

DFNT_FLOAT32

5

DFNT_DOUBLE

6

DFNT_INT8

20

DFNT_UINT8

21

DFNT_INT16

22

DFNT_UINT16

23

DFNT_INT32

24

DFNT_UINT32

25

Common HDF Tag Numbers

Common HDF Tag Numbers lists common HDF tag numbers and their meanings.

  • Common HDF Tag Numbers

Tag Number

Meaning

030

Version Identifier

100

File Identifier

101

File Description

102

Tag Identifier

103

Tag Description

104

Data Identifier Label

105

Data Identifier Annotation

106

Number Type

107

Machine Type

200

Obsolete

201

Obsolete

202

Obsolete

203

Obsolete

204

Obsolete

300

RIG Image Dimension

301

Raster Image Look Up Table (LUT)

302

Raster Image

303

Compressed Raster Image

306

Raster Image Group (RIG)

307

RIG LUT Dimension

308

RIG Matte Dimension

309

Raster Image Matte Data

310

Raster Image Color Correction

311

Raster Image Color Format

312

Raster Image Aspect Ratio

400

Composite Image Descriptor

500

XY Position

602

Vector Image - Tek4014 Stream

603

Vector Image - Tek4105 Stream

701

SD Dimension Record

702

SD Data

703

SD Scales

704

SD Labels

705

SD Units

706

SD Formats

707

SD Max/Min

708

SD Coordinates

710

SD Link

720

SD Descriptor (NDG)

731

SD Calibration Information

732

SD Fill Value

1962

Vdata Description

1963

Vdata

1965

Vgroup