Lab 7 - Due 7 PM on Oct 25, 2011 Student name: ______
Geo5053 - Remote Sensing, UTSA Page 1 of 6
Hyperspectral Image Analysis and Image Processing
Objective: Learn some things about hyperspectral image analysis and processing: z-profile display tools, convert raw digital number to radiance using bandmath, and run an image classification algorithm to locate a specific feature in the hyperspectral image.
A. Preparation:
Copy the Lab7 folder from the server (\\129.115.25.240\XIE_misc\EES5053\ to your local computer
Open image EO1H_p27r39_subset.img. Display a true color image in the display #1.
Question 1: What bands did you use for the RGB true color image? Include your image screen capture in the report.
B. Introduction
The Hyperion sensor is on the EO-1 satellite (http://edcsns17.cr.usgs.gov/eo1/sensors/hyperion) and is composed of 242 channels or wavebands. Table 1 list the Hyperion basic parameters, and compares the hyperspectral image with multiple-band imagery. There are actually two different sensors: a VNIR sensor (visible and near infrared) in bands 1 - 70, and a SWIR sensor (short wave infrared) in bands 71 - 242. Each sensor has a different gain applied to it. Also, there is considerable overlap in the sensor channels in the region from 851 to 1057 nm.
The image referenced above was acquired on 8/17/2005 for LRSG, taken over Kerr County, northwest of San Antonio. The image has already been subsetted to remove the overlapping channels and some noisy channels, reducing it to 221 channels. In order to convert the raw DN to radiance, you will have to use Band Math.
C. Basic Display - Get familiar with a couple of useful ENVI display tools.
1) Check the EO1H_p27r39_subset.img in the Available Band List window. You will see there are 221 bands. It is in BSQ storage format.
Question 2: What storage format is better for this type of image? Why?
2) Load RGB band 130, 50, and 30 in display #2, and link #1 (true color) and #2 together;
3) Use the pixel locator tool (Image toolbar -> Tools -> Pixel Locator) to find the pixel at sample (column) 130, line (row) 2070. On display #1, it is a white spot. Use z-profile image window (Image toolbar -> Tools -> Profiles -> Z Profile (Spectrum)) to examine the raw DN spectra for this pixel
4) Use pixel locator to find pixel at sample 100, line 2050. On display #2, it is a dark spot. Use z-profile image window to examine the raw DN spectra for this pixel.
Question 3: Compare and describe spectra for each of the two pixels, including their differences.
D. Convert raw DN to Radiance
Steps to follow for the VNIR Bands 1-57:
1) Select ENVI toolbar -> Basic Tools -> Band Math
2) From the Band Math window, in Enter an expression, type b1/40.0, Click OK.
3) From Variables to Band Pairings window, Click on “Map Variable to Input File”
4) Select the "EO1H_p27r39_subset.img" file, select Spectral Subset, highlight bands 1 to 57. Click OK, Click OK.
5) Choose output file name, such as: EO1H_b1-57.img. This is the Hyperion VNIR converted to absolute radiance (in Wm-2μm-1sr-1).
Steps to follow for the SWIR Bands 58-221:
1) Select ENVI toolbar -> Basic Tools -> Band Math
2) From Band Math Window, in Enter an expression, type b2/80.0, Click OK.
3) From Variables to Band Pairings window, Click on “Map Variable to Input File”
4) Select the "EO1H_p27r39_subset.img" file, select Spectral Subset, and highlight bands 58 to 221. Click OK, Click OK
5) Choose the output file name such as: EO1H_b58-221.img. This is the Hyperion SWIR converted to absolute radiance (in W m-2 sr-1 μm-1).
Now combine the two data files
1) Select ENVI toolbar -> Save File As -> ENVI Standard
2) In New File Builder, select Import File, select the VNIR radiance file (EO1H_b1-57.img) and then the SWIR radiance file (EO1H_b58-221.img). Make sure New File Builder shows the 57 bands on top of the 164 bands. Name this file:EO1H_p27r39_Radiance_bands1-221.img, Click OK.
3) Compare this image with the original one in the Available Band List window. The wavelength number for each band is missing (this is a problem... what band number has what wavelength?)
4) To put the wavelength numbers back into the Radiance image, first close ENVI. Navigate Windows to your Lab7 subfolder, and see two .hdr files: one header file for the original DN image and another for the new Radiance image. Open both header files using WordPad. The DN header has a lot of information that is not in the Radiance header, specifically the wavelength and fwhm (full width at half maximum). Copy the wavelength and fwhm sections from the DN header and paste it to the end of the Radiance header and save.
wavelength = {
355.589996, 365.760010, 375.940002, 386.109985, 396.290009, 406.470001,
416.640015, 426.820007, 436.989990, 447.170013, 457.339996, 467.519989,
477.690002, 487.869995, 498.040009, 508.220001, 518.390015, 528.570007,
538.739990, 548.919983, 559.090027, 569.270020, 579.450012, 589.619995,
599.799988, 609.969971, 620.150024, 630.320007, 640.500000, 650.669983,
660.849976, 671.020020, 681.200012, 691.369995, 701.549988, 711.719971,
721.900024, 732.070007, 742.250000, 752.429993, 762.599976, 772.780029,
782.950012, 793.130005, 803.299988, 813.479980, 823.650024, 833.830017,
844.000000, 854.179993, 864.349976, 874.530029, 884.700012, 894.880005,
905.049988, 915.229980, 925.409973, 932.640015, 942.729980, 952.820007,
962.909973, 972.989990, 983.080017, 993.169983, 1003.299988, 1013.299988,
1023.400024, 1033.500000, 1043.589966, 1053.689941, 1063.790039, 1073.890015,
1083.989990, 1094.089966, 1104.180054, 1114.180054, 1124.280029, 1134.380005,
1144.479980, 1154.579956, 1164.680054, 1174.770020, 1184.869995, 1194.969971,
1205.069946, 1215.170044, 1225.170044, 1235.270020, 1245.359985, 1255.459961,
1265.560059, 1275.660034, 1285.760010, 1295.859985, 1305.959961, 1316.050049,
1326.050049, 1336.150024, 1346.250000, 1356.349976, 1366.449951, 1376.550049,
1386.640015, 1396.739990, 1406.839966, 1416.939941, 1426.939941, 1437.040039,
1447.140015, 1457.229980, 1467.329956, 1477.430054, 1487.530029, 1497.630005,
1507.729980, 1517.829956, 1527.920044, 1537.920044, 1548.020020, 1558.119995,
1568.219971, 1578.319946, 1588.420044, 1598.510010, 1608.609985, 1618.709961,
1628.810059, 1638.810059, 1648.910034, 1659.010010, 1669.099976, 1679.199951,
1689.300049, 1699.400024, 1709.500000, 1719.599976, 1729.699951, 1739.689941,
1749.790039, 1759.890015, 1769.989990, 1780.089966, 1790.189941, 1800.290039,
1810.380005, 1820.479980, 1830.579956, 1840.579956, 1850.680054, 1860.780029,
1870.869995, 1880.969971, 1891.069946, 1901.170044, 1911.270020, 1921.369995,
1931.469971, 1941.569946, 1951.560059, 1961.660034, 1971.760010, 1981.859985,
1991.959961, 2002.060059, 2012.160034, 2022.250000, 2032.349976, 2042.449951,
2052.449951, 2062.550049, 2072.649902, 2082.750000, 2092.840088, 2102.939941,
2113.040039, 2123.139893, 2133.239990, 2143.340088, 2153.340088, 2163.429932,
2173.530029, 2183.629883, 2193.729980, 2203.830078, 2213.929932, 2224.020020,
2234.120117, 2244.219971, 2254.219971, 2264.320068, 2274.419922, 2284.520020,
2294.620117, 2304.709961, 2314.810059, 2324.909912, 2335.010010, 2345.110107,
2355.209961, 2365.209961, 2375.300049, 2385.399902, 2395.500000, 2405.600098,
2415.699951, 2425.800049, 2435.899902, 2445.989990, 2456.090088, 2466.090088,
2476.189941, 2486.290039, 2496.389893, 2506.489990, 2516.580078, 2526.679932,
2536.780029, 2546.879883, 2556.979980, 2566.979980, 2577.070068}
fwhm = {
11.387100, 11.387100, 11.387100, 11.387100, 11.387100, 11.387100, 11.387100,
11.387100, 11.387100, 11.387100, 11.387100, 11.387100, 11.387100, 11.378400,
11.353800, 11.313300, 11.258000, 11.190700, 11.111900, 11.024500, 10.932100,
10.836800, 10.740700, 10.648200, 10.560700, 10.482300, 10.414700, 10.359500,
10.318800, 10.294200, 10.285700, 10.298000, 10.334900, 10.390900, 10.459100,
10.532200, 10.600400, 10.656200, 10.693300, 10.705800, 10.727600, 10.790700,
10.883300, 10.993800, 11.104500, 11.198000, 11.260000, 11.282300, 11.282100,
11.281500, 11.280900, 11.279600, 11.278200, 11.277100, 11.276400, 11.275600,
11.275400, 11.045700, 11.045700, 11.045700, 11.045700, 11.045700, 11.045700,
11.045700, 11.045700, 11.045700, 11.045100, 11.042300, 11.037100, 11.030200,
11.021800, 11.012200, 11.001300, 10.987100, 10.973200, 10.957200, 10.941800,
10.924800, 10.906400, 10.888400, 10.869600, 10.851300, 10.833500, 10.815400,
10.797900, 10.782200, 10.766200, 10.752000, 10.738500, 10.727000, 10.717400,
10.709100, 10.702200, 10.697000, 10.694600, 10.693700, 10.694900, 10.699600,
10.705800, 10.716300, 10.728300, 10.743700, 10.761200, 10.780700, 10.803400,
10.826700, 10.853400, 10.881800, 10.911000, 10.942200, 10.974300, 11.007300,
11.041400, 11.075900, 11.110800, 11.146100, 11.181100, 11.215500, 11.249600,
11.282600, 11.314600, 11.346100, 11.375300, 11.403700, 11.430200, 11.453800,
11.476000, 11.495800, 11.513300, 11.528600, 11.540400, 11.550500, 11.558000,
11.562100, 11.563400, 11.561700, 11.556200, 11.547700, 11.534600, 11.519300,
11.500200, 11.478900, 11.454800, 11.427900, 11.399400, 11.368800, 11.336600,
11.303600, 11.269600, 11.236300, 11.200700, 11.166600, 11.133400, 11.101800,
11.071400, 11.042400, 11.015500, 10.991300, 10.969800, 10.950800, 10.935500,
10.923000, 10.913900, 10.908300, 10.906900, 10.905700, 10.901300, 10.895000,
10.885400, 10.873900, 10.859100, 10.842900, 10.824300, 10.803900, 10.782000,
10.759100, 10.734100, 10.709200, 10.683400, 10.657200, 10.631300, 10.605200,
10.580400, 10.556000, 10.532800, 10.510100, 10.490400, 10.472200, 10.455200,
10.440800, 10.428500, 10.419700, 10.412900, 10.408800, 10.407700, 10.407700,
10.407700, 10.407700, 10.407700, 10.407700, 10.407700, 10.407700, 10.407700,
10.407700, 10.407700, 10.407700, 10.407700, 10.407700, 10.407700, 10.407700,
10.407700, 10.407700, 10.407700, 10.407700, 10.407700, 10.407700, 10.407700,
10.407700, 10.407700, 10.407700, 10.407700}
6) Open the new radiance image file in ENVI. Now you should see the wavelength numbers are back with the bands.
Question 4: Explain what "full width at half maximum" means. What are the units for wavelength and fwhm?
E. Preliminary image analysis and interpretation
1) Open the Hyperion Radiance image as RGB band 130, 50, 30. Find the pixel at (130, 2070) and examine its z-profile.
2) Select Spectral Profile Toolbar menu -> File -> Save plot as -> Spectral Library. In the Output plots to spectral library window, click on the pixel plot and click OK. In the Output spectral library window, keep all defaults, select “Output result to memory”, and click OK. This will now show up in the ENVI "Available bands list".
3) Find the pixel at (100, 2050), examine its z-profile, and save this plot as a spectral library using the same steps listed above.
4) Select Spectral Profile Toolbar menu -> File -> Input data from -> Spectral library. Find the file you saved to memory 1 (the one associated with pixel 130, 2070), and load it. Examine both spectra of the two pixels in the plot window (see figure 1).
Figure 1
Question 5: Include your screen capture. Why are the two spectra so radically different? What might account for the large differences in radiance across all the bands? Use your image interpretation skills to describe what the materials on the surface might be? To facilitate interpretation, you might compare them with the true RGB image opened in the Display #1.
6. Image classification using Spectral Angle Mapper algorithm
1) Leave the Hyperion Radiance image displayed with RGB bands 130, 50, 30
2) Select ENVI Toolbar menu -> Spectral -> Mapping methods -> Spectral Angle Mapper
3) Select your Hyperion Radiance image as the input file, and click OK
4) On the Endmember Collection:SAM popup window, select Toolbar -> Import -> From spectral library file
5) Select the Memory2 input file (the one from pixel 100, 2050), and click OK.
6) On the Input Spectral Library popup window, you should see X:100 Y:2050 in the Available Spectra window. Click Select All Items button, and then click OK.
7) Back on the Endmember Collection:SAM window, click Apply.
8) The Spectral Angle Mapper Parameters dialog will now appear. Set Output to Result to Memory. Toggle Output Rule Images to No. Click on Preview
9) The Preview windows shows all image pixels that have z-profiles similar to the one stored in the Spectral Library. Notice the "Maximum Angle (radians)" was set to 0.10. You have probably already guessed the feature at pixel (100,2050) is a water body: Do you think the SAM algorithm correctly classified all water bodies in the image? Look around on the RGB display for more water features. Did it miss any?
10) Adjust the spectral angle to 0.2 and click on Preview again. Preview various other spectral angles.
11) Now set the spectral angle to 0.5 and click OK to run the final SAM classification. It will appear in the Available Bands window as MemoryN (where N is the next unused memory number). Load it in a new display, and link it to your RGB 130,50,30 display.
Question 6: Do you think all water features in the image were classified as water by the SAM algorithm? What did it miss? Why were the streams not classified properly? What about the dark feature near pixel (239, 2107)? What do you suppose that feature is, if it is not water? What percentage of water is in the entire image? Include appropriate screen captures.
*****
Optional: Run SAM for a stream water pixel, combine results using the reservoir water pixel, be sure to exclude features you know are not water (ex near pixel 239, 2107), and calculate a new percentage of water in the entire image. Include appropriate screen captures.
*****
Optional: Run SAM for the pixel 130, 2070 spectral signature and give some basic analysis. Include appropriate screen captures.