Environmental Remote Sensing

Forestry 753

Lab Three: Geometric Correction


Introduction

The purpose of this lab is to conduct geometric registration of two images. In this lab we will be working with the tm_data/raleigh94_alb and tm_data/raleigh88_alb images. We will use ground control points (GCPs) to rectify the raleigh88_alb image to the raleigh94_alb image. This process is known by several names, among those are: georeferencing, georegistration, georectification, geocorrection, and geometric registration. There are subtle shades of meaning in these terms, but we will generally use them interchangeably. The goals of the process are to remove or compensate for positional errors and to assign a projection and coordinate system to the image.

Background

Satellite image data are acquired at different times of the day, from different sensors which are on (possibly) different satellites. Changes in the acquisition time, the look angle from the sensor to the ground, the atmospheric effects that sensor has to "see through", and differences in the sensor characteristics can all make the same area on the ground look different even if no change has occured.

These issues in remote sensing are referred to as radiometric and geometric distortions. To avoid or minimize the effects of these distortions, often the first step in a remote sensing project after the image data are acquired is to conduct a geometric and radiometric correction. In this lab we will show how Imagine can be used to do a geometric correction.

For information on radiometric correction see Jensen, Chapter 6

Doing Image Registration in Imagine

The first step is to open three viewers. One for the '88 image, one for the '94 image, and one with both. (Opening two images in one window was described in Lab 1.)

Now, use the Utility / Swipe to get some idea of how the images "line up". You may want to zoom out and magnify the image once or twice and then do the Utility / Swipe. (You can zoom in on the image by clicking on the magnifying glass with the "+" sign from the viewer menu bar and then clicking on the area on the image you would like to magnify.) It appears that the '88 image is a bit down and to the left of the '94 image. Please check for yourself.

So what do we do about it? We want to "correct" the images so that they are as close as possible to being directly "on top" of each other. To do this, we match, one pair at a time, a pixel from the '88 image to its corresponding pixel on the '94 image (the user determines the location and the number of pixel pairs to use). We call these matching pixels Ground Control Points (GCP). After we have matched enough points, we use the coordinate pairs to determine the appropriate transformation to adjust one image to the other. How many points do we need? Good question. This is very similar to a regression sampling problem; the answer greatly depends on the size of the image (total number of pixels) in question. A rule of thumb for the small images we are using is about twenty points and they should be uniformly distributed throughout the image.

So lets start...

You can close the window that contains both scenes. (This will help to avoid confusion.) Do not worry if, at any time during this process, you get a message about not being able to save the image, it would be important if you were doing this "for real" but for the lab exercise it will be fine.

Then on the '88 image select Raster/Geometric Correction which should produce the following window.

 

 

 

 

 

 

 

This dialog box is asking you what kind of geocorrection you want to do. Select Polymomial and click OK. The other models are described in the Imagine Field Guide in this file: e:\program files\imagine 8.4\help\hardcopy\fieldguide.pdf. You may have need of some of these other models (especially Reproject and Camera) for your projects.

The next dialog box that comes up looks like this:

Notice that the status message at the bottom of the window says "Model has no solution." This is because we have not defined our model and selected GCPs. Let's go ahead and do that. In the Parameters tab, enter 2 as the Polynomial Order. Now click on the Projection tab. You will see that there is no projection currently defined for this model. Click the button labeled Set Projection from GCP Tool. Another dialog box will pop up that is titled GCP Tool Reference Setup. In this box, select Existing Viewer and click OK. Imagine will then tell you to click inside the viewer to select for Reference Coordinates. Imagine is asking us to specify the image to which the '88 image will be referenced. Click in the viewer that contains the '94 image. Imagine will then show you the current projection information in the Reference Map Information dialog box. It should look like this (if yours doesn't, make sure you're using the "alb" images):

Go ahead and click OK in the Reference Map Information box. Imagine will then start the GCP editor and open two magnifiers (one for each of the '88 and '94 images).

By starting in the raleigh88_alb image we will be matching the '88 image to the '94 image. The GCP Editor lists the GCPs you select, their coordinates on both images, and the error between them (RMS error). The two magnifiers allow you to see a close-up view of the two images so you can select good GCPs. Adjust the zoom on the images and the area magnified until you feel comfortable selecting an individual pixel from the magnifiers.

Now to the good stuff. Start picking the GCPs by moving around the image until you find pixels from each scene that you are reasonably comfortable in assuming are the same point on the ground (note, this is not easy and it is not very "scientific", it is more the "art" of remote sensing). Handy locations for Ground Control Points are intersections, either with roads or with clearly defined features. Water/land edges should not be used, as shorelines can shift. Once you have what you believe are matching pixels, select from the GCP Editor window the cross-hair button .

Now move the mouse pointer to the magnifier viewer for the '88 image and Left click over the pixel you have selected. You will see some numbers appear in the GCP Editor under "X Source" and "Y Source". Now you need to add the point from the '94 data. This will fill in the related numbers for the "X Destination" and "Y Destination". Do this by, again, selecting the cross-hair icon. Now move to the magnifier window from the '94 scene over the pixel which matched the pixel selected in the '88 scene. Left click on that pixel and you should get numbers in the "X Dest." and "Y Dest." columns.

This same process is repeated unit you have enough points. Your points should be scattered throughout the entire image.

If you are not happy with a point you can delete that point by selecting it in the GCP Editor by left-clicking on the point # and then right-hold to get a menu. From that menu select Delete Selection
 
So what are we doing?

For every pixel pair you select you are telling the computer that those two pixels should have the same coordinates. The "X" and "Y"'s that are listed in the GCP editor give the coordiates for each point. You will notice that the values are not the same for the 1988 image as for the 1994 image. It is this difference we are trying to correct. To do the correction, we will "transform" the original coordinates from the 1988 image to new coordinates that better match the 1994 image. The function that will map the old coordinates to the new coordinates is called the transformation or transformation matrix. Basically the transformation matrix will get the new X value by taking a function of the old X and Y values. It will also produce a new Y value by taking a function of the old X and Y values. The functional value is defined by the transformation matrix. So, now we go on to determining this matrix.

Imagine shows you, in the GCP editor, the current RMS error for each point and the total RMS error for the transformation. Another rule of thumb for geocorrection is that you want the total RMS error to be less than 1/2 pixel. Since we are dealing with 30 meter pixels, your total RMS error must be less than 15.

To have a valid geocorrection, you must have a sufficient number of GCPs. To lower the total RMS error, you can replace any points that contribute significantly to the overall RMS error. You must also adequately space your points, so if points in a certain area of the image always produce high RMS errors, you need to put more points in that area, not replace them. This is a symptom of a local distortion in the image.

Once you have a good model solution with a low RMS error, you need to create the "fixed" image from the model.

Please read through the following without actually doing the steps, then go on the the "Some things to try" section where you will actually do the geometric correction.

Once you decide on a transformation, you conduct the transformation by resampling the image. This is done in the Geocorrection Tools dialog box (note: this box has a tendency to hide behind the main Imagine toolbar.)

Just click on the Resample button  to get the Resample dialog box. window. The Resample dialog box has options which will apply to the transformed image.  You should select Nearest Neighbor from the Resample Method drop-down box. You must also set the Output Cell Sizes. To match the original '94 scene, these should be set to 28.5 meters. Also check the Ignore Zero in Output Stats box. Once you select the options you want and name the output file you can select OK to perform the transformation. This will create a new image derived from the 1988 TM data. The new image should be more closely registered to the 1994 data.


Review Questions:

1. Set up a transformation model to register the '88 TM image to the '94 TM image using the steps we described above. Collect between fifteen and twenty Ground Control Points. Note the transformation RMS error. Try editing the transformation order in the Polynomial Model Properties dialog box (if you have closed this window, you can get it back by clicking this button in the Geocorrection Tools dialog box.) In the Properties tab choose a few different orders and examine the effect on the overall RMS error. To make the order change take effect, you need to click Apply in the Polynomial Model Properties window. (There is a bug in Imagine that sometimes prevents the transformation (and RMS errors) from being recalculated when you change the polynomial order. If this happens to you, just click this button in the GCP editor twice. By that I mean turn off Automatic Transformation Calculation and then turn it right back on.) Note that "single order" or "order = 1" matches Equation 6-18 in Jensen's text. Which transformation order has the lowest RMS Error? Why do the different polynomial orders have different RMS errors?

2. What is the overall RMS error of the transformation you chose? How many GCPs did you use? How confident are you in your transformation?

3. Using the transformation you chose, create a new image using the steps given just before the start of these questions (the ones you were asked to read, but not perform at that time). Check out the transformed image by viewing the transformed image and the '94 image in the same window and using the Utility / Swipe tool. Hopefully the transformed image will match more closely than did the original '88 image. Does it? If not, try to figure out why.

4. Go through the procedure again (but only collect 5 or 6 points) and develop a transformation to geometrically correct the spot_data/raleigh_mss89_alb to the raleigh94_alb image. How does the difference in resolution between the two images effect your ability to find matching ground control points?


Go back to the FOR753 Home Page