X
3666

How to access the items stored in the ENVI metadata object of an ENVIRaster

The below example shows how you can access and save the items in the ENVI metadata object of an ENVIRaster.  This can be useful if you need to save these items for other processes. 

Example commands:

;open a raster
ENVI>raster = 'C:\Program Files\Exelis\ENVI52\data\qb_boulder_msi'
ENVI>in_raster= e.OpenRaster(raster)

;access the metadata object and tags
ENVI>metadata=in_raster.metadata
ENVI>tags = metadata.tags

;store the various metadata items in a HASH data type
ENVI>h = HASH()
ENVI>foreach tag, tags do $
  h[tag] = metadata[tag]

; raster can be closed 
ENVI>in_raster.close

;print the output:

ENVI> print, h, /implied
> metadata:
<ObjHeapVar284720>
> h:
{
    "WAVELENGTH": [485.00000000000000, 560.00000000000000, 660.00000000000000, 830.00000000000000],
    "WAVELENGTH UNITS": "Nanometers",
    "SENSOR TYPE": "QuickBird",
    "DESCRIPTION": ["Demo QuickBird 2 data courtesy DigitalGlobe", "Inc.  Not for commercial use."],
    "BAND NAMES": ["Band 1", "Band 2", "Band 3", "Band 4"]
}

;to access a single item from the metadata such as 'wavelength'
;first find the tag you want to access
ENVI> print, tags
SENSOR TYPE DESCRIPTION BAND NAMES WAVELENGTH UNITS WAVELENGTH

;save the wavelengths to a variable
ENVI>wl=metadata['wavelength']
ENVI> print, wl
       485.00000       560.00000       660.00000       830.00000

 ;-------------------

MM June 18, 2015