List of Routines By Functionality |  MISR Toolkit: Main Page

-Abstract

   MTK_READDATA returns 2-D array of MISR data given a file, grid, field, and region. The data returned is
   unscaled, unpacked or interpreted.  If a field is not packed or the fieldname parameter input string is
   preceded by the word “raw”, Mtk_ReadRaw is called and no unpacking, unscaling or interpreting is done.
   If the field has a flag associated with it the word “flag” can follow the fieldname parameter input
   string and the fields flag value is returned.  Use Mtk_file_grid_to_fieldlist to get a complete list
   of field options for a given MISR product file and grid. The Mtk_ReadData routine always returns data
   on a MISR grid approximated by the region, no spatial interpolation is performed (only block assembly). 
   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
      region         region structure

   the call:
   
      status = MTK_READDATA( filename, gridname, fieldname, region, databuf, mapinfo )
   
   returns:
   
      status         0 on success; otherwise failure
      databuf        2-D data array
      mapinfo        map info structure

-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'
      lat         = 66.0
      lon         = -89.0
      lat_extent  = 1.5
      lon_extent  = 1.0
      status      = MTK_SETREGION_BY_LATLON_EXTENT( lat, lon, lat_extent, lon_extent, "degrees", region )
      status      = MTK_READDATA( filename, gridname, fieldname, region, databuf, mapinfo )
      
      ;;
      ;; Output...
      ;;
      print, 'file                  : ', filename
      print, 'grid                  : ', gridname
      print, 'field                 : ', fieldname
      print, '================================================='
      help, databuf
      help, /struct, mapinfo

   IDL outputs:
   
      file                  : ../Mtk_testdata/in/MISR_AM1_GRP_ELLIPSOID_GM_P037_O029058_AA_F03_0024.hdf
      grid                  : RedBand
      field                 : Red Radiance/RDQI
    =================================================
      DATABUF         UINT      = Array[448, 640]
      ** Structure <2866210>, 37 tags, length=1064, data length=1064, refs=1:
         PATH            LONG                37
         START_BLOCK     LONG                36
         END_BLOCK       LONG                37
         RESOLUTION      LONG               275
         RESFACTOR       LONG                 1
         NLINE           LONG               640
         NSAMPLE         LONG               448
         PIXEL_CENTER    LONG                 1
         SOM_PATH        LONG                37
         SOM_ULC_X       DOUBLE           12394112.
         SOM_ULC_Y       DOUBLE           1065762.5
         SOM_CTR_X       DOUBLE           12481975.
         SOM_CTR_Y       DOUBLE           1127225.0
         SOM_LRC_X       DOUBLE           12569838.
         SOM_LRC_Y       DOUBLE           1188687.5
         GEO_ULC_LAT     DOUBLE           66.950041
         GEO_ULC_LON     DOUBLE          -89.380321
         GEO_URC_LAT     DOUBLE           66.451144
         GEO_URC_LON     DOUBLE          -86.901382
         GEO_CTR_LAT     DOUBLE           66.001338
         GEO_CTR_LON     DOUBLE          -89.003794
         GEO_LRC_LAT     DOUBLE           65.052256
         GEO_LRC_LON     DOUBLE          -88.652965
         GEO_LLC_LAT     DOUBLE           65.523048
         GEO_LLC_LON     DOUBLE          -91.031282
         PP_PATH         LONG                37
         PP_PROJCODE     LONG                22
         PP_ZONECODE     LONG                -1                                                  
         PP_SPHERECODE   LONG                12
         PP_PROJPARAM    DOUBLE    Array[15]
         PP_ULC_BLOCK1   DOUBLE    Array[2]
         PP_LRC_BLOCK1   DOUBLE    Array[2]
         PP_NBLOCK       LONG               180
         PP_NLINE        LONG               512
         PP_NSAMPLE      LONG              2048
         PP_RELOFFSET    FLOAT     Array[179]
         PP_RESOLUTION   LONG               275

-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'
      lat           = 66.0
      lon           = -89.0
      lat_extent    = 1.5
      lon_extent    = 1.0
      status = MTK_FILE_GRID_FIELD_TO_DIMLIST(filename, gridname, basefieldname, ndim, dimnames, dimsizes)
      print, ndim
      print, dimnames
      print, dimsizes

      fieldname = 'RegBestEstimateSpectralOptDepth[1]'
      status      = MTK_SETREGION_BY_LATLON_EXTENT( lat, lon, lat_extent, lon_extent, "degrees", region )
      status      = MTK_READDATA( filename, gridname, fieldname, region, databuf, mapinfo )

      status      = MTK_READDATA( filename, gridname, basefieldname, region, databuf, mapinfo )
      % 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'
      lat           = 66.0
      lon           = -89.0
      lat_extent    = 1.5
      lon_extent    = 1.0
      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_SETREGION_BY_LATLON_EXTENT( lat, lon, lat_extent, lon_extent, "degrees", region )
      status      = MTK_READDATA( filename, gridname, fieldname, region, databuf, mapinfo )

      status      = MTK_READDATA( filename, gridname, basefieldname, region, databuf, mapinfo )
      % MTK_READDATA: MISSING FIELD DIMENSION

-Required Reading
   For important details concerning this module's function, please refer to
   the MTK routine MtkReadData.c.

-Version
   -IDL-MTK Version 1.2.0