List of Routines By Functionality |  MISR Toolkit: Main Page

-Abstract

   MTK_PATH_BLOCKRANGE_TO_BLOCKCORNERS returns block corner coordinates in decimal degrees of latitude and longitude
   for a given path and block range. Coordinates returned are with respect to the pixel center of the upper left
   corner, center and lower right corner of each block.

-Copyright

   Copyright (2005), California Institute of Technology.
   U.S. Government sponsorship acknowledged.

-I/O
   
   Given:
   
      path           path number
      start_block    starting block
      end_block      ending_block

   the call:
   
      status = MTK_PATH_BLOCKRANGE_TO_BLOCKCORNERS( path, start_block, end_block, bc_struct )
   
   returns:
   
      status         0 on success; otherwise failure
      bc_struct      MTK block corner structure

-Examples

      ;;
      ;; Set up input parameters
      ;;
      path        = 37
      sb          = 50
      eb          = 53
      status      = MTK_PATH_BLOCKRANGE_TO_BLOCKCORNERS( path, sb, eb, bc )
      
      ;;
      ;; Output...
      ;;
      for i = bc.start_block, bc.end_block do begin
          pth = bc.path
          blk = bc.block[i].block_number
          ulc_lat = bc.block[i].ulc.lat
          ulc_lon = bc.block[i].ulc.lon
          urc_lat = bc.block[i].urc.lat
          urc_lon = bc.block[i].urc.lon
          ctr_lat = bc.block[i].ctr.lat
          ctr_lon = bc.block[i].ctr.lon
          lrc_lat = bc.block[i].lrc.lat
          lrc_lon = bc.block[i].lrc.lon
          llc_lat = bc.block[i].llc.lat
          llc_lon = bc.block[i].llc.lon
          status = MTK_DD_TO_DEG_MIN_SEC(ulc_lat, ulc_lat_deg, ulc_lat_min, ulc_lat_sec)
          status = MTK_DD_TO_DEG_MIN_SEC(ulc_lon, ulc_lon_deg, ulc_lon_min, ulc_lon_sec)
          status = MTK_DD_TO_DEG_MIN_SEC(urc_lat, urc_lat_deg, urc_lat_min, urc_lat_sec)
          status = MTK_DD_TO_DEG_MIN_SEC(urc_lon, urc_lon_deg, urc_lon_min, urc_lon_sec)
          status = MTK_DD_TO_DEG_MIN_SEC(ctr_lat, ctr_lat_deg, ctr_lat_min, ctr_lat_sec)
          status = MTK_DD_TO_DEG_MIN_SEC(ctr_lon, ctr_lon_deg, ctr_lon_min, ctr_lon_sec)
          status = MTK_DD_TO_DEG_MIN_SEC(lrc_lat, lrc_lat_deg, lrc_lat_min, lrc_lat_sec)
          status = MTK_DD_TO_DEG_MIN_SEC(lrc_lon, lrc_lon_deg, lrc_lon_min, lrc_lon_sec)
          status = MTK_DD_TO_DEG_MIN_SEC(llc_lat, llc_lat_deg, llc_lat_min, llc_lat_sec)
          status = MTK_DD_TO_DEG_MIN_SEC(llc_lon, llc_lon_deg, llc_lon_min, llc_lon_sec)
          print, format = '(%"Path: %3d  Block: %3d")', pth, blk
          print, format = '(%"   ULC: Lat %3d %02d %05.2f (%f)  Lon %4d %02d %05.2f (%f)")', $
            ulc_lat_deg, ulc_lat_min, ulc_lat_sec, ulc_lat, $
            ulc_lon_deg, ulc_lon_min, ulc_lon_sec, ulc_lon
          print, format = '(%"   URC: Lat %3d %02d %05.2f (%f)  Lon %4d %02d %05.2f (%f)")', $
            urc_lat_deg, urc_lat_min, urc_lat_sec, urc_lat, $
            urc_lon_deg, urc_lon_min, urc_lon_sec, urc_lon
          print, format = '(%"   CTR: Lat %3d %02d %05.2f (%f)  Lon %4d %02d %05.2f (%f)")', $
            ctr_lat_deg, ctr_lat_min, ctr_lat_sec, ctr_lat, $
            ctr_lon_deg, ctr_lon_min, ctr_lon_sec, ctr_lon
          print, format = '(%"   LRC: Lat %3d %02d %05.2f (%f)  Lon %4d %02d %05.2f (%f)")', $
            lrc_lat_deg, lrc_lat_min, lrc_lat_sec, lrc_lat, $
            lrc_lon_deg, lrc_lon_min, lrc_lon_sec, lrc_lon
          print, format = '(%"   LLC: Lat %3d %02d %05.2f (%f)  Lon %4d %02d %05.2f (%f)")', $
            llc_lat_deg, llc_lat_min, llc_lat_sec, llc_lat, $
            llc_lon_deg, llc_lon_min, llc_lon_sec, llc_lon
      endfor

   IDL outputs:

   Path:  37  Block:  50
      ULC: Lat  51 30 06.22 (51.501728)  Lon -110 20 30.52 (-110.341812)
      URC: Lat  50 33 33.17 (50.559215)  Lon -102 27 22.40 (-102.456223)
      CTR: Lat  50 28 34.30 (50.476195)  Lon -106 32 37.43 (-106.543731)
      LRC: Lat  49 19 56.61 (49.332393)  Lon -102 54 56.06 (-102.915573)
      LLC: Lat  50 15 02.61 (50.250725)  Lon -110 36 17.44 (-110.604845)
   Path:  37  Block:  51
      ULC: Lat  50 14 53.79 (50.248276)  Lon -110 36 19.25 (-110.605348)
      URC: Lat  49 19 47.96 (49.329990)  Lon -102 54 59.21 (-102.916447)
      CTR: Lat  49 13 53.06 (49.231405)  Lon -106 53 59.02 (-106.899728)
      LRC: Lat  48 06 03.56 (48.100988)  Lon -103 21 05.71 (-103.351586)
      LLC: Lat  48 59 47.34 (48.996484)  Lon -110 51 24.19 (-110.856720)
   Path:  37  Block:  52
      ULC: Lat  49 00 50.64 (49.014067)  Lon -111 05 44.19 (-111.095608)
      URC: Lat  48 08 01.93 (48.133868)  Lon -103 34 57.28 (-103.582578)
      CTR: Lat  48 00 45.96 (48.012766)  Lon -107 28 13.49 (-107.470415)
      LRC: Lat  46 54 06.78 (46.901884)  Lon -103 59 25.70 (-103.990473)
      LLC: Lat  47 45 40.24 (47.761179)  Lon -111 19 50.29 (-111.330636)
   Path:  37  Block:  53
      ULC: Lat  47 46 40.61 (47.777947)  Lon -111 33 50.17 (-111.563935)
      URC: Lat  46 56 00.05 (46.933346)  Lon -104 13 00.12 (-104.216699)
      CTR: Lat  46 47 28.12 (46.791145)  Lon -108 00 53.00 (-108.014723)
      LRC: Lat  45 41 55.11 (45.698643)  Lon -104 35 58.87 (-104.599686)
      LLC: Lat  46 31 26.60 (46.524056)  Lon -111 47 03.26 (-111.784239)
   
-Particulars
   None.

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

-Version
   -IDL-MTK Version 1.2.0