List of Routines By Functionality | MISR Toolkit: Main Page
-Abstract
MTK_READBLOCK returns a single block of MISR data given file, grid, field, and block number.
See Particulars below regarding extra dimensions in some fields.
-Copyright
Copyright (2005), California Institute of Technology.
U.S. Government sponsorship acknowledged.
-I/O
Given:
filename MISR product file
gridname grid name
fieldname field name
blocknum block number
the call:
status = MTK_READBLOCK( filename, gridname, fieldname, blocknum, databuf )
returns:
status 0 on success; otherwise failure
databuf data array
-Examples
;;
;; Set up input parameters
;;
filename = '../Mtk_testdata/in/MISR_AM1_GRP_ELLIPSOID_GM_P037_O029058_AA_F03_0024.hdf'
gridname = 'RedBand'
fieldname = 'Red Radiance/RDQI'
blocknum = 40
status = MTK_READBLOCK( filename, gridname, fieldname, blocknum, databuf )
;;
;; Output...
;;
print, 'file : ', filename
print, 'grid : ', gridname
print, 'field : ', fieldname
print, 'block number : ', blocknum
print, '================================================='
help, databuf
IDL outputs:
file : ../Mtk_testdata/in/MISR_AM1_GRP_ELLIPSOID_GM_P037_O029058_AA_F03_0024.hdf
grid : RedBand
field : Red Radiance/RDQI
block number : 40
=================================================
DATABUF UINT = Array[2048, 512]
-Particulars
The MISR Toolkit read functions always return a 2-D data plane buffer. Some fields in the MISR data products
are multi-dimensional. In order to read one of these fields, the slice to read needs to be specified.
A bracket notation on the fieldname is used for this purpose. For example fieldname = “RetrAppMask[0][5]”.
Additional dimensions can be determined by the routine mtk_file_grid_field_to_dimlist() or by the
MISR Data Product Specification (DPS) Document. The actually definition of the indices are not described in the
MISR product files and thus not described by the MISR Toolkit. These will have to be looked up in the
MISR DPS. All indices are 0-based.
Example with 1-dimensional field:
filename = '../Mtk_testdata/in/MISR_AM1_AS_AEROSOL_P037_O029058_F09_0017.hdf'
gridname = 'RegParamsAer'
basefieldname = 'RegBestEstimateSpectralOptDepth'
blocknum = 40
status = MTK_FILE_GRID_FIELD_TO_DIMLIST(filename, gridname, basefieldname, ndim, dimnames, dimsizes)
print, ndim
print, dimnames
print, dimsizes
fieldname = 'RegBestEstimateSpectralOptDepth[1]'
status = MTK_READBLOCK( filename, gridname, fieldname, blocknum, databuf )
status = MTK_READBLOCK( filename, gridname, basefieldname, blocknum, databuf )
% MTK_READDATA: MISSING FIELD DIMENSION
Example with 2-dimensional field:
filename = '../Mtk_testdata/in/MISR_AM1_AS_AEROSOL_P037_O029058_F09_0017.hdf'
gridname = 'SubregParamsAer'
basefieldname = 'RetrAppMask'
blocknum = 40
status = MTK_FILE_GRID_FIELD_TO_DIMLIST(filename, gridname, basefieldname, ndim, dimnames, dimsizes)
print, ndim
print, dimnames
print, dimsizes
fieldname = 'RetrAppMask[0][5]'
status = MTK_READBLOCK( filename, gridname, fieldname, blocknum, databuf )
status = MTK_READBLOCK( filename, gridname, basefieldname, blocknum, databuf )
% MTK_READDATA: MISSING FIELD DIMENSION
-Required Reading
For important details concerning this module's function, please refer to
the MTK routine MtkReadBlock.c.
-Version
-IDL-MTK Version 1.2.0