Mehran Hoodeh, Visual Rectification

What is Rectification?
When a Satellite Image is taken it needs some pre-processes to make it a geo-referenced geo-shaped image. (This is because of so many factors which are not going to be discussed herein.)

Why is it important?
All data in GIS, to be used scientifically, need to be Geo-Referenced. This referencing, to be propagated into for example an image, enforces it to be reshaped in a way so that all its pixels can be referenced through a single regular coordinate function.

Classic method:
In classic method, which I have implemented in mGIS like many other GIS/RS softwares do, you can load the Raw Image, click on a known points and assign their geo-coordinate to them. These points are called GCP (Ground Control Point). When a proper number of GCPs are defined, then the software can do a Rectification Algorithm (mostly matrix operations) and the whole image would be geo-referenced and can used as the Raster Layer in a GIS software.

Conventional Interfaces:
The most common User Interface for defining the GCPs in the classic method is a side window along with the image window. You click on a point in the image (whose coordinate is known) and in the side window you set the (X, Y) or (Lat, Lon) coordinates and you repeat this selection and coordinate-typing until a sufficient number of GCPs are defined and the software can then start rectifying the image which finally gives you the rectified geo-referenced image and RMS error. Naturally, the less the RMS errors, the more accurate the results.

The weakness of the classic method:
The classic method is almost good on every image, but its only weakness is that it is very dependent to the GCPs. In fact, the resulting image won't be precise if:

1- The number of GCPs are not adequate,
2- The GCPs are not distributed well all around the image; the resulting image would be precise just in pixels close to the points but not on pixels far from them,
3- The selection of (clicking on) the points on the image is not done accurately by the user,
4- The real coordinate of the selected points are not accurate.

For the reasons above, the resulting image is not always completely matched with the Vector Layer when they are both displayed together in a GIS software. This mismatching and discrepancy makes the data-view a little bit ugly and sometimes problematic.

My Innovation:
To improve the resulting image from a classic method and to remove the tiny mismatching of the Rectified Raster Image with the Vector Layer, I created a User Interface in mGIS software with which you can click on a desired pixel and visually connect it to the matching point in the Vector Layer (by a Red Arrow which is shown above and in the sample animation) and when you do this on some of mismatching points, you can run the Visual Rectification and the system will start stretching the image in way that it would completely match the Vector Layer. This process is shown in an animated sample below. Note that in this animation, the image is stretched by each single point, but in the real software the stretching is done once after you run the Visual Rectification tool.

When & where it works best:
1- It is best to use this interface as the second phase (after the classic method is applied) on an image to match the final few discrepancies that may exist in the image because of the reasons discussed above.
2- It is best to use this interface if no more GCPs are available to reduce the RMS and the final image still has mismatching points with the Vector Data.
3- It is best to connect the crossing points from the raster to vectors, like cross-roads, etc. 

The advantages of this type of rectification are:
1- It is very easy for every user to utilize and apply it on an inaccurate image.
2- It is very precise.
3- This method does not require "a lot of" GCPs.
4- In this method GCPs do not require to be "well-distributed" all around the image.

Although, connected GCPs being "a lot" and "distributed" has a positive effect on the resulting image, but it's not a necessity.

The are no special noticeable disadvantages to this tool, but if one wants to be strict, s/he may say:
1- This method is not and cannot be as a substitution to the classic method (the first phase of Image Rectification.)
2- If a single point is given, the stretching done around that point makes the image inaccurate. 

Can it work vice versa, too?
This interface can work on both Rater and Vector Layers to rectify them.
If you trust your Satellite Image in its referencing (because it has already been rectified very accurately, or you have purchased it from a certified source,) but your Vector Layers do not match the image, you can do the process of visually connecting the desired point from vector layer to the raster layer and the software will rectify the vector points.

  Sample Visual Rectification  
  Mehran Hoodeh, Visual Rectification