CROSS REFERENCE TO RELATED APPLICATIONS

[0001]
This application is a continuation of and claims priority from pending U.S. Application “System and Method for Georeferencing Digital Raster Maps” (Ser. No. 09/537,849), filed Mar. 29, 2000. Furthermore, this application is related to and claims priority from the following pending applications: “System and Method for Performing Flood Zone Certifications” (Ser. No. 09/537,161), filed Mar. 29, 2000 and “System and Method for Synchronizing Raster And Vector Map Images” (Ser. No. 09/537,162), filed Mar. 29, 2000 which are hereby incorporated by reference.
BACKGROUND OF THE INVENTION

[0002]
1. Technical Field

[0003]
The present invention generally relates to geographic map processing and in particular to a system and method for associating digital raster maps with known geographic features. Still more particularly, the present invention relates to a system and method for associating specific points on digital raster maps with a geographic coordinate system.

[0004]
2. Description of the Related Art

[0005]
A digital raster map is a computerized map image that resembles a conventional paper map in that it presents an image of the mapped area, but has no additional underlying data associated with the features of the map. A raster map is typically created by scanning a conventional paper map, and is a gridbased map composed of pixels (or dots) of color or black & white. Each pixel in the grid has can be referenced by the pixel coordinates, and has only one value, which indicates the color of that pixel. Raster images are commonly referred to as “bit mapped.”

[0006]
A vector map uses lines and polygons, rather than pixels, to describe an image. Unlike a raster map, in which the map image is simply stored as a grid of pixels, when a vector map is displayed, it is drawn from a set of underlying data. The vector map is created through the placements of nodes on a plane and connecting those nodes with lines. Vector lines can be attributed with tables of data such as elevations, values, names or other information relative to the line. Vector data can be displayed in three dimensions if the lines are attributed with z values, modified or changed relative to user need, or layered to allow for turning off and on the viewing of different information.

[0007]
Because of their feature attribution properties, they are particularly useful for displaying geographic data. Vector maps are used to display boundaries or lines that denote the position and extent of features, such as county boundaries or lines denoting stream and river systems. It is also very easy to view or manipulate the data underlying a vector map, for example to view or change the elevation of a feature.

[0008]
Also because vector maps are commonly drawn from a geographic data set describing the area shown, they are very easily, and generally inherently, georeferenced. Georeferencing is the process of relating source coordinates to referenced geographic coordinates., which are typically in standard latitude/longitude. An image or a vector file is georeferenced to be used within a mapping/geographic environment. In a vector map, the data from which the map is drawn will typically already include a geographic coordinate set.

[0009]
Modem GIS systems normally make use of digital vector based map information. However, a vast legacy of paperbased map information exists. It is very expensive and time consuming to convert all of the information on these paper maps over to a digital vector format. In many cases the scope and expense of such conversions render them completely impractical. However, even when a complete conversion to digital vectorbased format is not possible, it is still possible to obtain some of the benefits of computerized map systems, first by converting the paper maps to digital raster maps (by scanning them), and then by georeferencing the raster image. After georeferencing, there should be a clear relationship between the pixel coordinates in the raster map, and the geographic coordinates of the feature represented by that pixel. It would be desirable to provide a system and method for georeferencing a raster map by associating points on that map with corresponding points on a previouslygeoreferenced vector map, or with reference points designated in the raster map which have known latitude and longitude.
SUMMARY OF THE INVENTION

[0010]
It is therefore one object of the present invention to provide improved geographic map processing.

[0011]
It is another object of the present invention to provide an improved system and method for associating digital raster maps with known geographic features.

[0012]
It is yet another object of the present invention to provide an improved system and method for associating specific points on digital raster maps with a geographic coordinate system.

[0013]
The foregoing objects are achieved as is now described. The preferred embodiment provides a system and method for georeferencing digital raster maps by associating specific points on the raster map with corresponding points on a georeferenced vector map or another georeferenced raster map. According to the preferred embodiment, a raster map and a corresponding vector map are simultaneously displayed to a user. The user then locates a common geographic point or feature on each map, and marks each of them as a unique pointpair. When the user has marked at least two pointpairs, the system then computes a georeferencing function, based on the pixelcoordinates of the points marked on the raster map and the corresponding geographic coordinates of the points on the vector map. Thereafter the geographic coordinates of any point on the map may be easily computed. The preferred embodiment provides that as more pointpairs are identified, the georeferencing function is modified for increased accuracy.

[0014]
The above as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.
BRIEF DESCRIPTION OF THE DRAWINGS

[0015]
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself however, as well as a preferred mode of use, further objects and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:

[0016]
[0016]FIG. 1 depicts a data processing system in accordance with a preferred embodiment of the present invention;

[0017]
[0017]FIG. 2 is an image of an exemplary raster map, in accordance with the preferred embodiment;

[0018]
[0018]FIG. 3 is an image of an exemplary vector map, corresponding to the raster map of FIG. 2, in accordance with a preferred embodiment of the present invention; and

[0019]
[0019]FIG. 4 is a flowchart of a process in accordance with a preferred embodiment of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0020]
With reference now to the figures, and in particular with reference to FIG. 1, a block diagram of a data processing system in which a preferred embodiment of the present invention may be implemented is depicted. Data processing system 100 includes processor 102 and associated L2 Cache 104, which in the exemplary embodiment is connected in turn to a system bus 106. System memory 108 is connected to system bus 106, and may be read from and written to by processor 102.

[0021]
Also connected to system bus 106 is I/O bus bridge 110. In the exemplary embodiment, data processing system 100 includes graphics adapter 118 connected to bus 106, receiving user interface information for display 120. Peripheral devices such as nonvolatile storage 114, which may be a hard disk drive, and keyboard/pointing device 116, which may include a conventional mouse, a trackball, or the like, are connected to I/O bus 112.

[0022]
The exemplary embodiment shown in FIG. 1 is provided solely for the purposes of explaining the invention and those skilled in the art will recognize that numerous variations are possible, both in form and function. For instance, data processing system 100 might also include a compact disk read only memory (CDROM) or digital video disk (DVD) drive, a sound card and audio speakers, and numerous other optional components. All such variations are believed to be within the spirit and scope of the present invention. Data processing system 100 is provided solely as an example for the purposes of explanation and is not intended to imply architectural limitations.

[0023]
The preferred embodiment provides a system and method for georeferencing digital raster maps by associating specific points on the raster map with corresponding points on a georeferenced vector map or another georeferenced raster map. According to the preferred embodiment, a raster map and a corresponding vector map are simultaneously displayed to a user. The user then locates a common geographic point or feature on each map, and marks each of them as a unique point pair. When the user has marked at least two pointpairs, the system then computes a georeferencing function, based on the pixelcoordinates of the points marked on the raster map and the corresponding geographic coordinates of the points on the vector map. Thereafter the geographic coordinates of any point on the map may be easily computed. The preferred embodiment provides that as more pointpairs are identified, the georeferencing function is modified for increased accuracy.

[0024]
[0024]FIG. 2 is an exemplary raster map, in accordance with the preferred embodiment. This exemplary map shows a scanned image from a Federal Emergency Management Agency (FEMA) paper map. This raster image shows a land area with flood zone indications, but would, in a computer system, contain no underlying data regarding the area shown.

[0025]
[0025]FIG. 3 is an exemplary vector map, corresponding to the raster map of FIG. 2, in accordance with a preferred embodiment of the present invention. This map shows the same area as the map in FIG. 2, but is created by a computer system from a database describing the locations of features such as the streets shown. Typically, each feature shown on a vector map such as this will already be georeferenced, in that the geographic coordinates of each feature will also be recorded in the underlying data.

[0026]
A digital map image is considered georeferenced if a pair of mathematical functions, f, and g, have been defined that can be used to convert back and forth between the coordinates of the map image (as defined by the pixels of the image) and the corresponding longitude and latitude of the location of that point. That is, f and g do the following:

[0027]
1. If (x, y) represents a location on the digital map image, then f(x, y)=(Lon, Lat) represents the longitude and latitude of the corresponding physical location.

[0028]
2. If (Lon, Lat) represents a physical location that lies within the region covered by the map, then g (Lon, Lat)=(x, y) represents the point on the digital map image that corresponds to that longitude and latitude.

[0029]
Here, x and y represent the natural internal coordinate system of the map image. Typically, as described above, a digital raster map image uses the pixels of its image as a natural coordinate matrix. However, in most cases, a vectorbased map image uses longitude and latitude as its internal coordinate system; if so, it can be considered to be trivially georeferenced already. Therefore, the functions f( ) and g( ) above are nontrivial georeferencing functions required to convert back and forth between coordinate systems.

[0030]
Following is a description of a georeferencing process in accordance with the preferred embodiment:

[0031]
First, the raster map to be georeferenced (referred to as Map1) is displayed on a computer monitor in conjunction with another previously georeferenced map (referred to as Map2) (step 400). Typically, Map2 will be a vector map, but could also be another raster map, for which georeferencing functions are already known. Map1 and Map2 can be independently manipulated for rotation, position and scale. The user will manipulate the maps until the region shown in Map1 is contained within the region shown by Map2.

[0032]
Next, pairs of points representing identical geographic locations on Map1 and Map2 are identified, and the user uses a keyboard, mouse, or other pointing device to mark these pointpairs (step 405). For each pointpair, one point is marked on Map1 and the other point is marked at the corresponding location on Map2. Examples of common georeferencing pointpairs include street intersections, places where rivers cross roads, mountain peaks, building locations, and other readily identifiable map features. If any points on Map1 have points of known longitude and latitude already marked on the map, then a georeferencing pointpair can be obtained by marking that point on Map1 and moving to the point with identical latitude and longitude on Map2 and marking it as the other half of the pointpair. Alternatively, once the known points are marked with the known latitude and longitude, they can be used to determine the georeferencing functions without requiring a corresponding mark on Map2.

[0033]
After a pointpair is marked, the xy point on Map1 is assigned the corresponding latitude and longitude of its matching point on Map2 (step 410).

[0034]
When two georeferencing pointpairs are marked, the system will compute georeference functions for Map1 based on a linear transformation that allows an arbitrary rotation and predefined scaling, between the xy domain and the latitudelongitude domain (step 415).

[0035]
To improve accuracy and allow increased generality, more georeferencing pointpairs will frequently be desired. To facilitate the process of gathering these additional georeferencing pointpairs, Map1 and Map2 are now selectively synchronized. This means that as either map is zoomed, panned, scrolled, or otherwise caused to display a different region, then the other map automatically does the same. This greatly increases the ease with which georeferencing pointpairs can be identified and marked on the maps, since when the user of the system locates an identifiable feature on one map, the other map will automatically be showing very nearly the same location on the other map.

[0036]
Thereafter, when the user marks a georeferencing point on one of the maps, then the system automatically marks the corresponding point on the other map, based on its current georeferencing function (step 420). The user can then make corrections to the location of a point marked by the system in this way (step 425). The user may enter as many pointpairs as are desired; each additional pointpair will increase the accuracy of the georeferencing process.

[0037]
When three or more georeferencing pointpairs are determined, the system computes georeference functions for Map1 based on a completely general linear transformation between the xy domain and the latitudelongitude domain.

[0038]
When four or more georeferencing pointpairs are determined, the general linear georeferencing functions are overdetermined. This means that more than the required amount of information to compute the general linear georeferencing functions is available, but that it is not, in general, completely consistent. The system use the extra information contained in the additional georeferencing points to provide validation checks to protect against the possibility that some of the data points may be inaccurate (step 430). Points that deviate excessively with respect to a calculated standard error are presumed to be inaccurate and are omitted from the calculation of the georeferencing functions. Note that as new point are added, the system also rechecks points previously marked as inconsistent, to determine if those points should now be considered when recomputing the georeferencing functions.

[0039]
The additional pointpairs allow the system to compute the general linear georeferencing functions which best fit the combination of all the available georeferencing pointpairs, so that the active georeferencing functions are revised with each new pointpair (step 435). According to the preferred embodiment, this is done by using a “least square” parameter fitting operation.

[0040]
The user may then proceed o enter the next pointpair (step 440). When the user is finished, the system stores the active georeferencing functions with the rastermap (step is 445). At this time, the raster map is considered fully georeferenced. When accessed at any future time, the system may simply retrieve the georeferencing functions, and apply them to find the latitude and longitude of any point on the raster map.

[0041]
The process of determining he georeferencing function set from a set of pointpairs is believed to be within the ability of one of ordinary skill in the art. The specific approach used by the system an method of the preferred embodiment is discussed below.

[0042]
At any given point in the georeferencing process a set of points P, has been specified. Let i∈P denote one of the points of P. Associated value x_{i}, y_{i}, Lat_{i }and Lon_{i }refer to the x and y coordinates of the point on the bitmap, and the latitude and longitude of the point on the earth's surface. We also define A⊂c P to be the subset of “active” points, i.e. points which are currently being used in the calculation of the georeferencing functions. Assume that we have selected a parametric family of functions F. Functions in this family map from (x, y) to (Lon, Lat). Any function ƒ∈calF has components ƒ_{1}(x, y)=Lon, and ƒ_{2}(x, y)=Lat. From within this family we seek the specific function {circumflex over (ƒ)}, which (in a sense to be defined below) comes closest to making the following system of equations true:

{circumflex over (ƒ)}(x _{i} , y _{i})=(Lon _{i} , Lat _{i}) for i∈A

[0043]
Once determined, {circumflex over (ƒ)} will b the georeferencing function which is used to compute corresponding latitude and longitude values, (Lon, Lat)for any point, (x, y) on the bitmap. There are any number of possible ways to define the function that “comes closest to making (1) true.” We shall follow a “least squares” approach also known in mathematics as an L_{2 }approach. This approach seeks to find the function, {circumflex over (ƒ)}, which minimizes the sum of the squared differences between the actual and the predicted values of latitude and longitude. In other words, from among all the functions ƒ∈F, {circumflex over (ƒ)} is the one which minimizes:

SSE=Σ└(ƒ_{1}(x _{i} , y _{i})−Lon _{i})^{2}+(ƒ_{2}(x _{i} , y _{i})−Lat _{i})^{2}┘ (2)

[0044]
Among various alternative methods for choosing the function {circumflex over (ƒ)} are choosing it so t ht it minimizes the sum of absolute errors (rather than squared errors, or so that it minimizes the largest error. Other criteria are also possible.

[0045]
In what follows we shall describe methods for computing georeferencing functions based on both a “rotational linear” parametric family of functions and a “general linear” family of functions. A knowledgeable practitioner will readily perceive that this approach may be easily generalized to other parametric families of functions. Obvious candidates include nonlinear parametric families of functions arising from the projection of the earth's surface onto a flat map.

[0046]
The General Linear Case:

[0047]
In the general linear case, we let F be the set of all possible linear transformations which map from (x, y) to (Lon, Lat). Thus
$\begin{array}{cc}\hat{f}\ue8a0\left(x,y\right)=\left[\begin{array}{cc}{\hat{a}}_{11}& {\hat{a}}_{12}\\ {\hat{a}}_{21}& {\hat{a}}_{22}\end{array}\right]\ue8a0\left[\begin{array}{c}x\\ y\end{array}\right]+\left[\begin{array}{c}{\hat{b}}_{1}\\ {\hat{b}}_{2}\end{array}\right]& \left(3\right)\end{array}$

[0048]
for some choice of parameters â_{11}, â_{12}, â_{21}, â_{22}, {circumflex over (b)}_{1}, and {circumflex over (b)}_{2}. If the region covered by the map to be georeferenced is not too large, then this family of functions will contain a suitable function, {circumflex over (ƒ)} whose total error is quite small. In the case where the map to be georeferenced covers a larger area than this, then the curvature of the earth must be taken into account and F is not a suitable family of functions. In such a case, nonlinear functions must be used as mentioned above. We shall not pursue that case further, since it is a straightforward extension of the procedures used in the linear case.

[0049]
To find {circumflex over (ƒ)} we seek the parameters which minimize
$\begin{array}{c}\mathrm{SSE}=\text{\hspace{1em}}\ue89e\sum _{i\in A}\ue89e{\left({a}_{11}\ue89e{x}_{i}+{a}_{12}\ue89e{y}_{i}+{b}_{i}{\mathrm{Lon}}_{i}\right)}^{2}+\\ \text{\hspace{1em}}\ue89e{\left({a}_{21}\ue89e{x}_{i}+{a}_{22}\ue89e{y}_{i}+{b}_{2}{\mathrm{Lat}}_{i}\right)}^{2}\end{array}$

[0050]
The parameter values which minimize this expression are found by solving the following two independent systems of linear equations:
$\begin{array}{cc}\left[\begin{array}{ccc}n& \sum _{i\in A}\ue89e{x}_{i}& \sum _{i\in A}\ue89e{y}_{i}\\ \sum _{i\in A}\ue89e{x}_{i}& \sum _{i\in A}\ue89e{x}_{i}^{2}& \sum _{i\in A}\ue89e{x}_{i}\ue89e{y}_{i}\\ \sum _{i\in A}\ue89e{y}_{i}& \sum _{i\in A}\ue89e{x}_{i}\ue89e{y}_{i}& \sum _{i\in A}\ue89e{y}_{i}^{2}\end{array}\right]\ue8a0\left[\begin{array}{c}{b}_{1}\\ {a}_{11}\\ {a}_{12}\end{array}\right]=\left[\begin{array}{cc}\sum _{i\in A}\ue89e{\mathrm{Lon}}_{i}& \text{\hspace{1em}}\\ \sum _{i\in A}\ue89e{x}_{i}& {\mathrm{Lon}}_{i}\\ \sum _{i\in A}\ue89e{y}_{i}\ue89e{\mathrm{Lon}}_{i}& \text{\hspace{1em}}\end{array}\right]& \left(5\ue89ea\right)\\ \left[\begin{array}{ccc}n& \sum _{i\in A}\ue89e{x}_{i}& \sum _{i\in A}\ue89e{y}_{i}\\ \sum _{i\in A}\ue89e{x}_{i}& \sum _{i\in A}\ue89e{x}_{i}^{2}& \sum _{i\in A}\ue89e{x}_{i}\ue89e{y}_{i}\\ \sum _{i\in A}\ue89e{y}_{i}& \sum _{i\in A}\ue89e{x}_{i}\ue89e{y}_{i}& \sum _{i\in A}\ue89e{y}_{i}^{2}\end{array}\right]\ue8a0\left[\begin{array}{c}{b}_{2}\\ {a}_{21}\\ {a}_{22}\end{array}\right]=\left[\begin{array}{c}\sum _{i\in A}\ue89e{\mathrm{Lat}}_{i}\\ \sum _{i\in A}\ue89e{\mathrm{Lat}}_{i}\\ \sum _{i\in A}\ue89e{y}_{i}\ue89e{\mathrm{Lat}}_{i}\end{array}\right]& \left(5\ue89eb\right)\end{array}$

[0051]
These systems can be easily solve by well known methods, such as Gaussian Elimination, or LU factorization. The solutions yield the desired values of â
_{11}, â
_{12}, â
_{21}, â
_{22}, {circumflex over (b)}
_{1}, and {circumflex over (b)}
_{2}. It should be noted that equations (5a) and (5b) do not have a unique solution unless three or more noncolinear points are contained in A. Generally speaking, then, it requires 3 points to choose a georeferencing function from the family of general linear transformations. When there are four points or more, it is possible to compute a standard deviation of errors using the formula:
$\begin{array}{cc}s=\sqrt{\frac{\sum _{i\in A}\ue89e\left[{\left({\hat{a}}_{11}\ue89e{x}_{i}+{\hat{a}}_{12}\ue89e{y}_{i}+{\hat{b}}_{1}{\mathrm{Lon}}_{i}\right)}^{2}+{\left({\hat{a}}_{21}\ue89e{x}_{i}+{\hat{b}}_{2}{\mathrm{Lat}}_{i}\right)}^{2}\right]}{n3}}& \left(6\right)\end{array}$

[0052]
s is an estimator for the amount of error to be expected between actual and predicted latitude and longitude values.

[0053]
Note that the inverse georeferencing function, {circumflex over (ƒ)}^{−1 }that maps from (Lon, Lat) to (x, y) is readily obtained now, by inverting the function {circumflex over (ƒ)}. Having done this, it is possible to compute a similar standard deviation of error for {circumflex over (ƒ)}^{−1 }which is an estimate of error as measured in the bitmap coordinates.

[0054]
The Rotational Linear Case:

[0055]
In the, so called, rotational linear case, we let F be the set of all possible linear transformations which map from (x, y)to (Lon, Lat) and which also allow for a known scale change caused by the difference in distance per degree of latitude and per degree of longitude at any point not on the equator. Thus
$\begin{array}{cc}\hat{f}\ue8a0\left(x,y\right)=\left[\begin{array}{cc}\frac{{\hat{\beta}}_{3}}{\gamma}& {\hat{\beta}}_{4}\\ {\hat{\beta}}_{4}& {\hat{\beta}}_{3}\end{array}\right]\ue8a0\left[\frac{x}{y}\right]+\left[\begin{array}{c}\frac{{\hat{\beta}}_{1}}{\gamma}\\ {\beta}_{2}\end{array}\right]& \left(7\right)\end{array}$

[0056]
for some choice of parameters {circumflex over (β)}_{1}, {circumflex over (β)}_{2}, {circumflex over (β)}_{3}, and {circumflex over (β)}_{4}, where γ=cos(Lat) is computed from the estimated latitude of the map to be georeferenced.

[0057]
Clearly, this is a special case of the more general linear transform described above, where we take

a _{11}=β_{3} /γ,a _{12}=−β_{4} ,a _{21}=−β_{4},

a _{22}=−β_{3} ,b _{1}=β_{1} /γ,b _{2}=β_{2}.

[0058]
In theory, if the region covered by the map to be georeferenced is not too large, then this family of functions will contain a suitable function, {circumflex over (ƒ)} whose total error is quite small. In the case where the map to be georeferenced covers a larger area than this, then the curvature of the earth must be taken into account and F is not a suitable family of functions. In such a case, nonlinear functions must be used as noted above. In practice, the general linear transform will yield results which are somewhat superior to the rotational linear transform due to the former's innate ability to use arbitrary scaling factors. These arbitrary scaling factors might compensate, for example, for scaling flaws in the digital scanner used to scan in the maps. The primary advantage of the rotational linear transform is that it can be computed with only two reference points (unlike the general linear transform which requires three reference points).

[0059]
To find {circumflex over (f)} we seek, as before, the parameters which minimize SSE as defined in equation (4).

[0060]
The parameter values which minimize this expression are found by solving the following system of linear equations:
$\left[\begin{array}{cccc}n& 0& \sum {x}_{i}& \sum {y}_{i}\\ 0& n& \sum {y}_{i}& \sum {x}_{i}\\ \sum _{i\in A}\ue89e{x}_{i}& \sum _{i\in A}\ue89e{y}_{i}& \sum _{i\in A}\ue89e\left({x}_{i}^{2}+{y}_{i}^{2}\right)& 0\\ \sum _{i\in A}\ue89e{y}_{i}& \sum _{i\in A}\ue89e{x}_{i}& 0& \sum _{i\in A}\ue89e\left({x}_{i}^{2}+{y}_{i}^{2}\right)\end{array}\right][\text{\hspace{1em}}\ue89e\begin{array}{c}{\beta}_{1}\\ {\beta}_{2}\\ {\beta}_{3}\\ {\beta}_{4}\end{array}]=\hspace{1em}[\text{\hspace{1em}}\ue89e\begin{array}{c}\gamma \ue89e\sum _{i\in A}\ue89e{\mathrm{Lon}}_{i}\\ \sum _{i\in A}\ue89e{\mathrm{Lat}}_{i}\\ \gamma \ue89e\sum _{i\in A}\ue89e{x}_{i}\ue89e{\mathrm{Lon}}_{i}\sum _{i\in A}\ue89e{y}_{i}\ue89e{\mathrm{Lat}}_{i}\\ \gamma \ue89e\sum _{i\in A}\ue89e{y}_{i}\ue89e{\mathrm{Lon}}_{i}\sum _{i\in A}\ue89e{x}_{i}\ue89e{\mathrm{Lat}}_{i}\end{array}]$

[0061]
These systems can easily solved by well known methods, such as Gaussian Elimination, or LU factorization. The solutions yield the desire values of {circumflex over (β)}_{1}, {circumflex over (β)}_{1}, {circumflex over (β)}_{1}, and {circumflex over (β)}_{1 }which in turn yield the desired values for â_{11}, â_{12}, â_{21}, â_{22}, {circumflex over (b)}_{1}, and {circumflex over (b)}_{2}.

[0062]
It should be noted that equation (8) does not have a unique solution unless two or m re points are contained in A. Generally speaking, then it requires two points to determine a georeferencing function from the family of rotational linear transformations. When there are three points or more, it is possible to compute a standard deviation of error, s using the formula:
$s=\sqrt{\frac{\sum _{i\in A}\ue89e\left[{\left({\hat{a}}_{11}\ue89e{x}_{i}+{\hat{a}}_{12}\ue89e{y}_{i}+{\hat{b}}_{1}{\mathrm{Lon}}_{i}\right)}^{2}+{\left({\hat{a}}_{21}\ue89e{x}_{i}+{a}_{22}\ue89e{y}_{i}+{\hat{b}}_{2}{\mathrm{Lat}}_{i}\right)}^{2}\right]}{n2}}$

[0063]
s is an estimator for the amount of error to be expected between actual and predicted latitude and longitude values.

[0064]
Note that the inverse georeferencing function {circumflex over (ƒ)}^{−1 }that maps from (Lon, Lat) to (x, y) is readily obtained now, by inverting the function {circumflex over (ƒ)}. Having done this, it is possible to compute a similar standard deviation of error for {circumflex over (ƒ)}^{−1 }which is an estimate of error as measured in the bitmap coordinates.

[0065]
Automatic Error Detection and Handling

[0066]
When individual points are being assigned x, y, Lon, and Lat values, there is always a potential for error. To reduce the risk of incorrect georeferencing resulting from such errors, certain error handling procedures are built into the georeferencing process. The fundamental conk t is that of detecting a “bad” point and then removing it from the set of active points, A Note that removing point from A will not delete the information associate, with that point, but it will cause the georeferencing parameters to be completely uninfluenced by that point. We o not wish to remove the point entirely, since it may be determined at a later stage of the georeferencing, that the point was not really bad at all, and should beused in the georeferencing calculation. This will be clarified shortly.

[0067]
Detecting Bad Points

[0068]
The following steps outline the bad point detection process using the general linear transform approach to georeferencing.

[0069]
1. Begin by placing all existing points into the active set, A

[0070]
2. If there are fewer than five active points then you are done, Otherwise, for each of the currently active points in turn, move it (call it point k for the sake of convenience) temporarily out of the active set, and then calculate the resulting inverse georeferencing function (call it ĝ
^{(k)}) and its corresponding SSE
_{k}. Also, calculate the difference between the predicted value and the actual value δ
_{k}=ĝ
^{(k)}(Lon
_{k}, Lat
_{k})−(x
_{k}, y
_{k}). Make a note of the values, δ
_{k }and
${\delta}_{k}/{\mathrm{SSE}}_{k}.$

[0071]
Return point k to the active set (and move on to the next value of k.

[0072]
3. From among the results found in step 2 above, find the point, k, with the largest value of
${\delta}_{k}/{\mathrm{SSE}}_{k}\u3009\ue89e{c}_{1}\ue89e\text{\hspace{1em}}\ue89e\mathrm{and}\ue89e\text{\hspace{1em}}\ue89e{\delta}_{k}$

[0073]
which also satisfies
${\delta}_{k}/{\mathrm{SSE}}_{k}\u3009\ue89e{c}_{1}\ue89e\text{\hspace{1em}}\ue89e\mathrm{and}\ue89e\text{\hspace{1em}}\ue89e{\delta}_{k}\u3009\ue89e{c}_{2},\mathrm{where}\ue89e\text{\hspace{1em}}\ue89e{c}_{1},$

[0074]
and c_{2 }are some constants which are set according to the general level of accuracy to be expected on the particular type of map which is being georeferenced, the current number of active points, and the dots per inch of the scanned image. If there is such a point then mark it as bad (by removing it from the active set) and return to step 2 above. Otherwise you are done.

[0075]
There are several things to note about this procedure. One is that it allowing the value of c_{1 }and c_{2 }to change with the number of active points, makes it possible for the georeferencing system and method to utilize points which it might originally determine bad or inconsistent after a large enough sample of points has been gathered to make it clear that a lesser level of accuracy is all that can be achieved on this map. Another observation is that using this procedure it is impossible to reduce the number of active points down to less than four (unless you started with less than 4 in which case this procedure does not apply at all). This scheme means that as each new point is added, all points determined so far are considered, even those which had previously been marked bad. Thus early “misjudgments” on the part of the system can be corrected later, in light of new point information.

[0076]
The same bad point detection process, can also be implemented using the rotational linear transform approach. In this case the method is capable of reducing the number of active points down as low as three (rather than four for the general linear transform approach outlined above). This can be useful when dealing with small sets of active points.

[0077]
When the system is georeferencing raster map images that cover a large enough area so that the (nonlinear) curvature of the earth is a source of significant error, the system can calculate nonlinear georeferencing functions whose form corresponds to the map projection that was used to create Map1.

[0078]
A specific example of the operation and application of the preferred georeferencing method may be shown with reference to the “Flood Zone Determination” business. The Federal Emergency Management Agency (FEMA) publishes a library of tens of thousands of paper maps showing various types of flood zones and their locations in the United States. A flood zone determination on a property is frequently done in the following way:

[0079]
1. The address of the property is examined, and the location of the property is determined (perhaps through the use of a geocoding system, or b examining an available street map).

[0080]
2. A map analyst attempts to determine which of the many thousands of FEMA flood maps will contain this property.

[0081]
3. The map analyst goes to a map storage area and retrieves the desired map, often examining several maps before making a final selection.

[0082]
4. Having retrieved the paper map, the map analyst next determines where, precisely, the property is located on the map.

[0083]
5. Finally, the map analyst examines flood zone notations on the map at the property's location in order to determine its floodzone status.

[0084]
When performed using paper maps, the above process is difficult and quite time consuming. A database of scanned raster map images, alone, can be used to reduce the time and effort expended on step 3 above. However, georeferenced raster map images can also be used to eliminate virtually all work from steps 2 and 4 above. Since those are generally the most time consuming steps under the current process, the value of georeferenced flood maps is considerable.

[0085]
Using georeferenced flood map raster images, steps 2 and 4 above, are replaced by:

[0086]
2. A computer system combines the predesignated outlines of the raster map and the georeferencing information to obtain a polygon expressed in terms of latitude and longitude that outlines the region included in each flood map. Then the system determines which of the polygons contain the address in question, which is done using a “pointinpolygon” algorithm. At the conclusion of this process, the computer system has identified a map panel (or perhaps a small number of map panels) that contains the address.

[0087]
4. Since the latitude and longitude of the property are known (by virtue of a geocoding phase), the computer system can use the georeferencing of the map panels to locate the property on each of the panels found above, thus largely eliminating any need for he map analyst to scan the flood map for the address location.

[0088]
Therefore, it is easily seen that by using georeferenced raster maps instead of paper maps, the process of determining flood zones is substantially automated and much more efficient.

[0089]
It is important to note that while the present invention has been described in the context of a fully functional data processing system and/or network, those skilled in the art will appreciate that the mechanism of the present invention is capable of being distributed in the form of a computer usable medium of instructions in a variety of forms, and that the present invention applies equally regardless of the particular type of signal bearing medium used to actually carry out the distribution. Examples of computer usable mediums include: nonvolatile, hardcoded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs), recordable type mediums such as floppy disks, hard disk drives and CDROMs, an transmission type mediums such as digital and analog communication links.

[0090]
While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.