The HDF_SD_ATTRSET procedure writes attributes to an open HDF SD dataset. If no data type is specified, the data type is taken from the Values argument.
            Examples
            fid = HDF_OPEN('demo.hdf', /ALL) 
            SDinterface_id = HDF_SD_START('demo.hdf', /RDWR) 
            
            HDF_SD_ATTRSET, SDinterface_id, 'TITLE', 'MY TITLE GLOBAL', 16
            
            HDF_SD_ATTRSET, SDinterface_id, 'RANGE', [-99.88,55544.2], /DOUBLE
            
            SDdataset_id = HDF_SD_CREATE(SDinterface_id, 'var1', [10,20], /FLOAT)
            
            HDF_SD_ATTRSET, SDdataset_id, 'TITLE', 'MY TITLE SDinterface_id', 15
            
            index=HDF_SD_ATTRFIND(SDinterface_id, 'RANGE')
            
            HDF_SD_ATTRINFO,SDinterface_id,index,NAME=atn,COUNT=atc,TYPE=att,DATA=d
            
            HELP, atn, atc, att 
            
            PRINT, d, FORMAT='(F8.2,x,F8.2)'
            HDF_SD_ENDACCESS, SDdataset_id 
            HDF_SD_END, SDinterface_id 
            HDF_CLOSE, fid
            IDL Output
            ATN STRING = 'RANGE'
            ATC LONG = 2
            ATT STRING = 'DOUBLE'
             
            -99.88 55544.20
            Syntax
            HDF_SD_ATTRSET, SD_id, Attr_Name, Values [, Count] [, /BYTE] [, /DFNT_CHAR] [, /DFNT_FLOAT32] [, /DFNT_FLOAT64] [, /DFNT_INT8] [, /DFNT_INT16] [, /DFNT_INT32] [, /DFNT_UINT8] [, /DFNT_UINT16] [, /DFNT_UINT32] [, /DOUBLE] [, /FLOAT] [, /INT] [, /LONG] [, /SHORT] [, /STRING]
            Arguments
            SD_id
            An SD interface ID as returned by HDF_SD_START (i.e., a global attribute’s “SDinterface_id”), or HDF_SD_SELECT/HDF_SD_CREATE (i.e., a dataset’s “SDdataset_id”).
            Attr_Name
            A string containing the name of the attribute to be written.
            Values
            The attribute values to be written.
            Count
            An optional integer argument specifying how many items are to be written. Count must be less than or equal to the number of elements in the Values argument.
            Keywords
            BYTE
            Set this keyword to indicate that the attribute is composed of bytes. Data will be stored with the HDF DFNT_UINT8 data type. Setting this keyword is the same as setting the DFNT_UINT8 keyword.
            DFNT_CHAR
            Set this keyword to create an attribute of HDF type DFNT_CHAR8. Setting this keyword is the same as setting the STRING keyword.
            DFNT_FLOAT32
            Set this keyword to create an attribute of HDF type DFNT_FLOAT32. Setting this keyword is the same as setting the FLOAT keyword.
            DFNT_FLOAT64
            Set this keyword to create an attribute of HDF type DFNT_FLOAT64. Setting this keyword is the same as setting the DOUBLE keyword.
            DFNT_INT8
            Set this keyword to create an attribute of HDF type DFNT_INT8.
            Note: IDL does not have a signed 8-bit integer type. When writing the data to the file using DFNT_INT8, byte values from 0-127 will be written unchaged, while byte values from 128-255 will be wrapped into the range -127 to -1. When reading data of type DFNT_INT8 from the file into IDL, values from 0-127 will be read in unchanged, while values from -127 to -1 will be wrapped into the byte range 128 to 255.
            DFNT_INT16
            Set this keyword to create an attribute of HDF type DFNT_INT16. Setting this keyword is the same as setting either the INT keyword or the SHORT keyword.
            DFNT_INT32
            Set this keyword to create an attribute of HDF type DFNT_INT32. Setting this keyword is the same as setting the LONG keyword.
            DFNT_UINT8
            Set this keyword to create an attribute of HDF type DFNT_UINT8. Setting this keyword is the same as setting the BYTE keyword.
            DFNT_UINT16
            Set this keyword to create an attribute of HDF type DFNT_UINT16.
            DFNT_UINT32
            Set this keyword to create an attribute of HDF type DFNT_UINT32.
            DOUBLE
            Set this keyword to indicate that the attribute is composed of double-precision floating-point values. Data will be stored with the HDF DFNT_FLOAT64 data type. Setting this keyword is the same as setting the DFNT_FLOAT64 keyword.
            FLOAT
            Set this keyword to indicate that the attribute is composed of single-precision floating-point values. Data will be stored with the HDF DFNT_FLOAT32 data type. Setting this keyword is the same as setting the DFNT_FLOAT32 keyword.
            INT
            Set this keyword to indicate that the attribute is composed of 2-byte integers. Data will be stored with the HDF DFNT_INT16 data type. Setting this keyword is the same as setting either the SHORT keyword or the DFNT_INT16 keyword.
            LONG
            Set this keyword to indicate that the attribute is composed of longword integers. Data will be stored with the HDF DFNT_INT32 data type. Setting this keyword is the same as setting the DFNT_INT32 keyword.
            SHORT
            Set this keyword to indicate that the attribute is composed of 2-byte integers. Data will be stored with the HDF DFNT_INT16 data type. Setting this keyword is the same as setting either the INT keyword or the DFNT_INT16 keyword.
            STRING
            Set this keyword to indicate that the attribute is composed of strings. Data will be stored with the HDF DFNT_CHAR8 data type. Setting this keyword is the same as setting the DFNT_CHAR8 keyword.
            Version History
            
            See Also
            HDF_SD_ATTRFIND, HDF_SD_ATTRINFO, HDF_SD_CREATE, HDF_SD_SELECT