Help pages : Calibration, Rubber Sheeting
Calibration Accuracy, Rubber Sheeting
Calibration is the process that links points on a map with positions on the Earth. Mathematically this is an Isomorphism. Every point on the map can be related to exactly one point on the earth and every point on the earth within the map's area can be related to exactly one point on the map.
Usually the calibration is comprised by a set of points whose pixel position (x, y) is known and also map co-ordinates (easting, northing or longitude, latitude) but it can also be specified as a single point with scales and rotation. [Note that, conventionally, pixels are counted across (x) and down(y) from the top left corner off the map image]
Internally, MAPC2MAPC maintains the relationship between points and coordinates as two transformations :
pixels <-transform-> map coordinates (easting, northing) <-transform-> latitude/longitude
These transformations have to be reversible. The second transformation is trivial for a plate carree map but otherwise it uses mathematical formulae to calculate between the coordinates of the map projection and latitude/longitude. My main reference for this is here.
MAPC2MAPC normally creates an affine (linear) transformation to link pixels and map coordinates. This comprised of formulae such as :-
easting = base easting + a * pixel x + b * pixel y
with the base, a and b calculated to give the closest fit across all the points provided. Three points always have an exact fit. Two calibration points are a special case where the program has to assume either that the map is not rotated or that the scales in the x and y directions are the same : the assumption used is determined by the checkbox 'stretch not rotate' in Settings Load tab.
The best fit calculation works well when the map is known to be accurate but it is hard to place the calibration points accurately. Adding more points evens out the errors but nothing else.
But what to do when the map is know to be inaccurate - a bay, perhaps, with an island that has been drawn at the wrong position on the map?
From version 536 an alternative method of implementing the the transformation between pixels and coordinates is introduced. This is known as Rubber Sheeting as it is akin to stretching an elastic sheet which has points that are pulled to specific positions.
This is switched on with a checkbox in Settings Load tab but only applies if the calibration is specified by points (so not for maps calibrated with World files - TFW, GEOTIF, GEOPDF etc) and there are five or more points. The transformation is then a formula that links each of the calibration points to its coordinate exactly with other points averaged between the calibration points.
[For the mathematically inclined :
The same best fit formulae are calculated and the coefficients (a,b) remembered. For each pixel a calculation is made for each calibration point :
easting = calibration easting + a * (pixel x - calibration x) + b * (pixel y -calibration y)
these are then weighted by the reciprocal of the distance between the calibration point and the pixel and summed]
When you View a map with rubber sheeting, the coordinate grid will be distorted to reflect the stretching :
The process of restoring the rubber sheet to a rectangular grid is called 'orthorectification'. Note how the grid lines are straight and the map has been curved instead:
MAPC2MAPC orthorectifies implicitly for almost all output formats including KMZ, JNX and the various 'mobile atlas' (tiled spherical mercator) file types. The map can be explicitly orthorectified by using Warping (Reprojecting) the map. Rubber sheets cannot be cropped but other operations on them can be performed. If you need to handle a KAP or WCI file with Rubber Sheeting then turn off the ' Crop KAP and PDF when loading ' option.
Because of the additional calculations, processing speed will be reduced for rubber sheeted maps.