You could try the following:
- There should be a .hdr file sitting in the same directory as your ASTER HDF file. It will have the same rootname as the HDF file. Delete it.
- Open your ASTER HDF in ENVI and orthorectify the VNIR bands as you described.
- Remove all four of the original ASTER segments from the Available Bands List
- The .hdr file described above should be there again. Delete it again.
- Open your ASTER HDF in ENVI again, and orthorectify the SWIR bands
- Layer stack the VNIR and SWIR ortho results. The shift *should* be gone now.
The reason for the shift is as follows. While ASTER scenes are loaded into ENVI as four discrete segments (due to differences in GSD or look angle), all segments exist within one HDF file. When ENVI reads in the file, it creates an ENVI header for each segment in memory. However, when you begin an ortho process on a segment, RPCs must be generated and those are added to a header that is written to a file. The RPCs for each segment should be different because each segment's sensory geometry is different. When you start an ortho process on another segment, though, the RPCs from the first segment are used. This happens because ENVI does a general check to see if RPCs for the *file* already exist in a header--not if they exist for an individual segment. If it finds RPCs in a header that shares the same rootname as the HDF, it uses them. To force ENVI to create appropriate RPCs for other segments, all you need to do is delete the generated .hdr file after you orthorectify a segment. That way, ENVI will have to build new RPCs that will work with the segment you want to orthorectify.
|