Back to EveryPatent.com



United States Patent 5,150,295
Mattingly September 22, 1992

Computerized system for joining individual maps into a single map product

Abstract

An improved method of making a larger map from individual 7.5 minute digital line graph (DLG) data is described herein. The process is fully automated and performed by a computer with minimal human interaction required. This eliminates errors and produces a more accurate final map product. The method includes conversion of the raw DLG data files into ARC/INFO format, locating the border arcs of each individual data set, edgematching the individual map data sets, and joining the data sets into a single, large map coverage. Any node along the border arc which cannot be automatically edgematched is noted in a special error file. A geographer then matches the unmatched edges which contain an error in the input data. A large map product is available as the product of the process.


Inventors: Mattingly; William (Huntsville, AL)
Assignee: Teledyne Industries, Inc. (Los Angeles, CA)
Appl. No.: 526144
Filed: May 22, 1990

Current U.S. Class: 702/5
Intern'l Class: G06F 015/62
Field of Search: 434/130,147 364/449,521,420 73/178 R 340/990,995,998,993


References Cited

Attorney, Agent or Firm: Beveridge, DeGrandi & Weilacher

Claims



I claim:

1. A computerized method of producing a map from a plurality of small map sections, said small map sections being in digital line graph format, the method comprising:

(a) receiving data corresponding to geographical features on the earth's surface as raw map data, said raw map data relating to small sections of the earth's surface in digital line graph format;

(b) locating the north, south, east and west border arcs in said raw map data, wherein said border arcs include nodes along the border arc;

(c) converting said raw map data into a format which identifies the latitude and longitudinal coordinates, and a type of map coverage;

(d) edgematching each node along the border arc of one map section to its adjacent map sections by matching the nodes along the border arc with the most closely corresponding node along an adjacent border arc, within a predetermined tolerance distance;

(e) snapping said node of said one map section to said most closely corresponding node along said adjacent border arc;

(f) repeating steps (b), (c), (d), and (e) for each border of said one map section, with its corresponding adjacent border on the adjacent map section;

(g) repeating steps (b) through (f) until all of the edges of the small map sections are matched;

(h) joining said small map sections at the matched edges; and

(i) producing a final map product from the joined small map sections.

2. A method of producing a map according to claim 1, wherein the edgematching in step (d) includes the following steps:

(d)(1) edgematching each node along the border arc of one map section to its adjacent map sections by matching the nodes with the most closely corresponding node, within a predetermined range and the predetermined tolerance distance:

(d)(2) if no match for a node is found within the predetermined range and within the predetermined tolerance distance, edgematching the unmatched nodes along the border arc with the nodes having the most closely corresponding node, within said predetermined range, along the adjacent border arc within an expanded tolerance distance; and

(d)(3) if no match for a node is found within the predetermined range and within the expanded tolerance distance, indicate a matching error.

3. A method of producing a map according to claim 1, wherein said type of map coverages are chosen from the group consisting of: hydrology coverage, road coverage, railroad coverage, and miscellaneous transportation coverage.

4. A method of producing a map according to claim 3, wherein said final map product includes at least two of said map coverages, one superimposed over the other.

5. A method of producing a map according to claim 2, wherein the expanded tolerance distance is five times the predetermined tolerance distance.

6. A method of producing a map according to claim 1, wherein the converted data of step (c) is put into the following format:

AwwBxyyyCzD,

wherein:

A represents a coverage type and is selected from the group consisting of H, R, T, or M, which stand for Hydrology, Roads, Trains or Miscellaneous transportation, respectively;

ww represents a number from 0 to 90 which stands for the number of degrees latitude from the equator of a southeastern corner of the small map sections;

B represents a direction selected from the group consisting of N or S, which stand for North or South of the equator, respectively;

x represents a decimal degree selected from the group of 0, 1, 2, 3, 5, 6, 7, or 8, which stand for 0.0 degrees, 0.125 degrees, 0.25 degrees, 0.375 degrees, 0.5 degrees, 0.625 degrees, 0.75 degrees and 0.875 degrees, respectively;

yyy represents a number from 0 to 180 which stands for the number of degrees longitude from the prime meridian in Greenwich of the southeastern corner of the small map sections;

C represents a direction selected from the group consisting of W or E, which stand for West or East of the prime meridian in Greenwich, respectively;

z represents a decimal degree selected from the group of 0, 1, 2, 3, 5, 6, 7, or 8, which stand for 0.0 degrees, 0.125 degrees, 0.25 degrees, 0.375 degrees, 0.5 degrees, 0.625 degrees, 0.75 degrees and 0.875 degrees, respectively; and

D represents a type of data to be converted into and is selected from the group consisting of A, P, or N, which stand for Area, Points or Nodes, respectively.

7. A computerized method for producing a map from a plurality of small map sections, said small map sections being in digital line graph format, the method comprising:

(a) inputting data into a computer corresponding to geographical features on the earth's surface as raw map data, said raw map data relating to small sections of the earth's surface in digital line graph format;

(b) locating border arcs in said raw map data, wherein said border arcs include nodes along the border arc;

(c) converting said raw map data into a format which identifies the latitude and longitudinal coordinates, and a type of map coverage;

(d) edgematching each node along the border arc of one map section to its adjacent map sections by matching the nodes along the border arc with the most closely corresponding node along an adjacent border arc, within a predetermined range and a predetermined tolerance distance;

(e) using the computer, repeating steps (b)., (c), and (d), for each border of said one map section, with its corresponding adjacent border on the adjacent map section;

(f) using the computer, repeating steps (b) through (e) until all of the edges of the small map sections are matched;

(g) joining said small map sections at the matched edges; and

(h) producing a map product from the joined small map sections.

8. A method of producing a map according to claim 7, wherein the edgematching in step (d) includes the following steps:

(d) 1) edgematching each node along the border arc of one map section to its adjacent map sections by matching the nodes with the most closely corresponding node, within the predetermined range and the predetermined tolerance distance;

(d) (2) if no match for a node is found within the predetermined range and within the predetermined tolerance distance, edgematching the unmatched nodes along the border arc with the nodes having the most closely corresponding node, within said predetermined range, along the adjacent border arc within an expanded tolerance distance; and

(d) (3) if no match for a node is found within the predetermined range and within the expanded tolerance distance, indicate a matching error.

9. A method of producing a map according to claim 8, wherein the expanded tolerance distance is five times the predetermined tolerance distance.

10. A method of producing a map according to claim 7, wherein said type of map coverages are chosen from the group consisting of: hydrology coverage, road coverage, railroad coverage, and miscellaneous transportation coverage.

11. A method of producing a map according to claim 10, wherein said final map product includes at least two of said map coverages, one superimposed over the other.

12. A method of producing a map according to claim 7, wherein the converted data of step (c) is put into the following format:

AwwBxyyyCzD,

wherein:

A represents a coverage type and is selected from the group consisting of H, R, T, or M, which stand for Hydrology, Roads, Trains or Miscellaneous transportation, respectively;

ww represents a number form 0 to 90 which stands for the number of degrees latitude from the equator of a southeastern corner of the small map sections;

B represents a direction selected from the group consisting of N or S, which stand for North or South of the equator, respectively;

x represents a decimal degree selected from the group of 0, 1, 2, 3, 5, 6, 7, or 8, which stand for 0.0 degrees, 0.125 degrees, 0.25 degrees, 0.375 degrees, 0.5 degrees, 0.625 degrees, 0.75 degrees and 0.875 degrees, respectively;

yyy represents a number form 0 to 180 which stands for the number of degrees longitudinal from the prime meridian in Greenwich of the southeastern corner of the small map sections;

C represents a direction selected from the group consisting of W or E, which stand for West or East of the prime meridian in Greenwich, respectively;

z represents a decimal degree selected from the group of 0, 1, 2, 3, 5, 6, 7, or 8, which stand for 0.0 degrees, 0.125 degrees, 0.25 degrees, 0.375 degrees, 0.5 degrees, 0.625 degrees, 0.75 degrees and 0.875 degrees, respectively; and

D represents a type of data to be converted into and is selected from the group consisting of A, P, or N, which stand for Area, Points or Nodes, respectively.
Description



BACKGROUND OF THE INVENTION

The invention relates to the art of map making. Geographic information is available in a variety of forms, and numerous Geographic Information Systems (GIS) have been implemented and are used throughout the world. These information systems allow organizations to display, manipulate and analyze geographical data.

The United States Geological Survey (USGS) is one of the major sources of raw geographical data at the present time. USGS transforms a hard copy of a map into a digital form. This is called a digital map. The digital data is stored on tape and sold to users in an ASCII format known as digital line graph (DLG) format (defined by USGS as Digital Line Graphs from 1:100,000 Scale Maps by the Data User Guide 2, available from USGS). This data is in a vector format. USGS provides DLG tapes on various topographical coverages including hydrology, roads, railroads, and miscellaneous transportation. Miscellaneous transportation may include data such as power lines, pipes, air strips, ski lifts, tramways and the like.

USGS provides DLG data blocks in map sections which cover a 7.5 minute by 7.5 minute area of the earth's surface (7.5 minute map). This area is equivalent to one-eighth of a degree longitude by one-eighth of a degree latitude. The area encompassed by a 7.5 minute map varies, depending upon the location on the earth's surface. Within the Continental United States, the area is typically about 10-11 km east to west by about 19 km north to south. More than 50,000 of USGS's 7.5 minute maps are required to completely cover the Continental United States (CONUS) for each type of coverage (i.e. 50,000 maps for roads, 50,000 maps for railroads, etc.). As a further example, the State of Kentucky requires 765 of the 7.5 minute maps to completely cover its borders.

It is often desirable to have a single map which covers a larger area than the 7.5 minute map. Also, it is often necessary to create a map which includes more than one topographical feature, for example, a map with both roads and railroads may be desired.

The Environmental Science Research Institute (ESRI) has developed a software package called ARC/INFO which is used for processing the data from DLG files. The DLG data files are not directly compatible with the ARC/INFO system. Before ARC/INFO can be used, the DLG data files must be converted into ARC/INFO format.

ARC/INFO includes a program which allows the user to convert the raw DLG data files into ARC/INFO format. This conversion program requires periodic human interfacing with the program. Thus an operator must be present throughout the conversion process to input the proper parameters to the computer at various stages in the conversion. The operator loads the tape, and the program prompts the operator for additional information. The system prompts the user for the DLG file name, the number of files to process and the name of the directory in which to store the data in. This is a long, time consuming operation which is subject to error because of the constant human interaction.

The second step in producing a larger map from the 7.5 minute map sections is an edgematching procedure, wherein the edge features of one map are matched to the corresponding features on the four surrounding maps. This process is completed in the prior art systems by a manual edgematching process. This process will be described in more detail below.

As shown in FIG. 1, a larger map 10 is often desired as opposed to the individual 7.5 minute maps 12. An enlarged version of the 7.5 minute map labelled A is shown in FIG. 2. Map A is shown to contain various arcs which represent topographical features (i.e. roads, waterways, etc.). It will be appreciated by those skilled in the art that an actual 7.5 minute map may contain hundreds or even thousands of these arcs.

As mentioned above, the edgematching process of the prior art systems requires a manual edgematching step. To match the edges, the two adjacent data sets representing the edges to be matched are called up onto a computer screen. The computer screen typically places these edges approximately one inch apart. For every node along an edge (16 and 26, for example), the operator must locate the corresponding node on the adjacent data set. The operator selects the end node of one of the edges, looks over at the adjacent edge,.makes an interpretation of which feature on this edge he believes that the first end node should be joined to, and he selects this feature. The operator then enters a command on his keyboard that joins these two features together. This is called "snapping" the two features together. This manual matching process must be performed on every node along the edge, along every edge on the 7.5 minute map, and around every map that is to be joined. As mentioned above, there are more than 50,000 7.5 minute maps per coverage (i.e. hydrology, roads, etc.) to cover the Continental United States.

Those skilled in the art recognize the time consuming and tedious nature of this edgematching procedure. Furthermore, matching of every node requires a judgment on the part of the operator; hence, this process is highly error prone. The operators become tired and bored, nodes are completely missed, mismatched, and many other human errors may be involved. It is also a very time consuming process; therefore, it is also very costly in terms of man hours and money. Additionally, this process requires a graphic terminal to match the edges on.

Furthermore, the final product is also full of errors. It is virtually impossible to obtain an error free final map product.

The final steps in creating the map product are to correct the attribute files and to clean up any coverage which does not have the correct topology. Then, the various individual coverages (7.5 minute maps) desired in the final product are combined into a single map layer.

In the prior ar& systems, the user again was required to manually interface with the computer, this time to assure that the attribute files for each map matched up. The attribute file of each individual file (7.5 minute data file) had to be looked at individually to determine how many attributes were missing. The correct number of attributes cannot be determined until all of the files are inspected. After inspecting all of the attribute files, the operator then needed to determine the correct number of attributes, and enter any missing attributes into each individual file by means of a program routine called ADDITEM. ADDITEM is a routine that is a standard command in the ARC/INFO package which allows the user to enter attributes. The operator is required to enter the ADDITEM command over and over on the terminal. This process is also extremely time consuming and tedious.

The procedure for joining the individual maps into a single coverage was relatively simple for the user in the prior art systems. The user only needed to enter all of the individual file names for the maps that were to be joined. ARC/INFO would join these files into one map layer. This is also a very tedious chore in situations where hundreds or thousands of individual data files are being joined.

As noted above, the process of the prior art requires a large investment of time and money. Shown in Table I are the approximate times requires to process 256 DLS files using the prior art manual processing methods.

                  TABLE I
    ______________________________________
    Process                Time
    ______________________________________
    1.   Convert DLG files into ARC/INFO,
                               100 man hours
         building topology, projecting,
         reading tapes, etc.
    2.   Edgematching (correcting map
                               100 man hours
         features to meet at the map
         borders).
    3.   Attribute correction and combining
                                32 man hours
         of individual maps into a single
         layer.
         TOTAL                 232 man hours
    ______________________________________


Since this data is processed manually, there are typically numerous errors which are present in the processed data.

SUMMARY OF THE INVENTION

It is an object of this invention to provide a procedure for processing DLG data files in a more efficient and less costly manner.

Another object of this invention is to provide a surface area map product with dimensions larger than 7.5 minutes, wherein the map is error free.

Another object of the invention is to provide a fully automated process for converting DLG data files into ARC/INFO format. It is desired to totally eliminate human interaction in the DLG data files into ARC/INFO conversion process.

Another object of the invention is to provide a fully automated edgematching procedure that eliminates human interaction and errors while edge matching the smaller map sections into a larger map area.

Another object of the invention is to provide a fully automated procedure for creating maps which contain a plurality of topographical coverages.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other advantageous features of the invention will become evident from the following detailed description, the attached computer programs, and the attached figures,, wherein:

FIG. 1 shows a diagram of 32 7.5 minute maps in their edgematched and joined format;

FIG. 2 shows an enlarged diagram of one 7.5 minute map section before edgematching, along with the four adjacent map coverages;

FIG. 3 is a flow chart of the overall process;

FIG. 4 is a flow diagram of the DLG-CONVERSION process;

FIG. 5 is a flow diagram of the DLGLINK.AML process; and

FIG. 6 is a flow diagram of the FIX-JOIN process.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

The invention is a computerized system which eliminates the need for human interaction in the map producing process. An overview of the process is shown in FIG. 3. The preferred embodiment of the invention uses FORTRAN programs, in particular, FORTRAN 77. In particular, the AUTO-LINK.FOR program was written in FORTRAN 77 on a VAX computer. The programs ending with the ".AML" portion are the interface to the ARC/INFO codes to drive the programs. The process initially receives the raw DLG data as input. A first computer program (DLG-CONVERSION) converts the raw DLG data for each 7.5 minute map into ARC/INFO format. ARC/INFO coverages are generated using the following data set naming convention:

H48N8103WOA

wherein

H--the coverage type for hydrology. The different types of coverages are named as follows:

[H]ydrology,

[R]oads,

[T]rains (Railroads), and

[M]isc. Transportation (trails, etc.)

48 N8--represents the latitude of the Southeastern corner of the 7.5 minute map. 48 represents degrees, N means north of the equator, 8 represents 0.875 degrees. Since each coverage is one-eighth of a degree square, only the tenth of the degree is needed for identification purposes.

103 WO--103 degrees west longitude of the Southeastern corner, plus 0.00 degrees

A--this refers to the ARC/INFO type of data to be converted to, labelled according to the following convention:

[A]rea (polygons and lines),

[P]oints, and

[N]odes.

This procedure is fully automated. The raw DLG data is generated from map products, such as existing hard copy map products. These map products are put into a digital form and placed on a tape. The tape or digital map is available from USGS. This data is in a vector format. The DLG data tapes are loaded into the computer, the first and last DLG files to be processed are entered, the type of topographical coverage is entered, and the program is run. No additional user interaction is required.

The next step is the automated edgematching procedure. This was the most difficult and challenging aspect of perfecting the invention. The main program is called DLGLINK.AML. The computer matches each node on the border arc with the most closely matched node on the other map's border arc within the edit distance. The edit distance is preferably set to the smallest discernable distance that can be digitized on a map of that scale. A distance of 30 meters on 1:100,000 scale data is preferred. Often the DLG data which is obtained from USGS contains errors, because USGS uses manual processes in producing the DLG files. If an error is present in the raw DLG data, the computer will not be able to match the node. A match is searched for over a distance of five times the edit distance. If none is found, the program notes this node failure and its location in a separate error file. This error file is called the DLGLINK.LOG file, or the "Log File" in the programs. These unmatched nodes must be manually checked by a geographer after the remaining edges are matched. This edgematching process will be described in more detail below.

The final procedure step is the correction of the attribute files for the coverage and the correction of any coverage which lacks correct topology. The desired coverages are joined into a single output coverage, and a map is the final product. The program for the last procedural steps is called Fix-Join.

The "Fix" part of this program assures that the files have the correct topology and the correct number of attributes. Each 7.5 minute map data set includes a coverage attribute file. To join the 7.5 minute map sections, the coverage attribute files must match exactly. This attribute file contains a record for each arc in the coverage, and details on what the arc is (e.g. read type, HWY 101, HSY 20, US 64, etc.). This program determines the number of attributes required in all of the individual 7.5 minute maps and adds the correct attributes to each individual file for any that are missing. This assures that the coverage attribute files in the adjacent map sections match up exactly, which, in turn, allows these map sections to be joined together into a single coverage. This process is fully automated, thus the need for human interaction is eliminated.

The "Join" part of this program also saves time for the operator. This is the part of the system which joins all the individual maps into one map. The operator need only put in the file name for one of the files to be joined. Recall that the prior art system previously required the operator to enter every file name to be joined together. In the system in accordance with the invention, the computer will automatically generate the remaining file names based on the latitude and longitude coordinates of a single data file. This feature saves a substantial amount of time, especially if hundreds or thousands of individual coverage maps are involved.

Other quantitative data may be obtained from the data, such as the miles of railroad within the area, percentage of the surface over a certain elevation within the area and the like. Also, other topographical map features may be overlaid or superimposed over this map. Buildings, military installation locations, or other geographical features may be included in the map after the larger map has been completed.

For purposes of comparison, Table II shows the employee time and computer time required to process the DLG data into a finalized map product. By a finalized map product in this specification, the inventor is referring to hard copy map products, map products stored on tape or in other computer generated and readable forms, or maps displayed on a computer screen. Hard copy map products may be generated by any ARC/INFO supported plotter, this equipment being known to those skilled in the art. The final map product may be used for a wide variety of purposes. The maps may be used to create a library of maps which document the construction and/or development of a geographical region. Environmental conditions in a region can be monitored over a time period. Various types of geographic analysis may be performed on the map data. For example, the miles of roadways or railroads over a region may be ascertained. The surface area of a region covered by water or over a certain elevation may be determined. The maps generated may be overlaid with other topographical features, such as the location of particular buildings or other landmarks, military base locations and other items of interest to the user. These additional topographical features may be digitized into the map or superimposed over the final map produce.

As in Table I, 256 DLG files were processed using the procedures in accordance with the invention.

                  TABLE II
    ______________________________________
    Process           Computer Time
                                  Man Time
    ______________________________________
    1.  Convert DLG files into
                          8 hrs.      0.1 man hours
        ARC/INFO, building
        topology, projecting, reading
        tapes, etc.
    2.  Edgematching (correcting
                          8 hrs.      0.1 man hours
        map features to meet at map
        borders).
    3.  Attribute correction and
                          2 hrs.      0.1 man hours
        combining of individual
        maps into a single map
        layer.
        TOTAL             18 hrs.     0.3 man hours
    ______________________________________


Note the dramatic time savings that is realized when utilizing the process of the invention, as opposed to the human interfacing process of the prior art. A further advantage to the process of the invention is the fact that errors are virtually eliminated. Any edge which the computer cannot match is noted in an error file as mentioned above. These edges must be matched manually by a geographer.

Since the process is fully automated, the process may be completed by the computer in the evenings or over weekends. This keeps the computer available for normal business purposes during working hours.

Returning to FIGS. 1 and 2, the edgematching process, performed by the program DLGLINK.AML, will be described in more detail. When creating a large map 10 from the 7.5 minute maps 12, it has been found that the automated edgematching process is the most difficult and technically challenging aspect of the procedure.

It is preferred that the edges of the various maps be matched by a checkerboard method. The edgematching process will be described with particular reference to the 7.5 minute map designated A in FIGS. 1 and 2.

The 7.5 minute map A shown in FIG. 2 contains several arcs. An arc is comprised of nodes and vertices, wherein the nodes are the endpoints of the arcs. Reference numbers 14 and 16 are nodes, and these nodes define an arc. Vertices are represented by numbers 18 and 20. In actual map data, a 7.5 minute map may contain hundreds or thousands of arcs. Using the checkerboard method, the arcs of map A are adjusted to line up with the arcs of maps B, C, D and E. This method of edgematching is called the checkerboard method because only the maps marked by an "X" in FIG. 1 are allowed to be adjusted by electronically "shifting" the map edge. The maps which are not marked by an "X" are not electronically adjusted.

Each 7.5 minute map also contains four arcs which are not part of a map feature at all. These arcs are the border arcs which define the outer edges of the map. One of the border arcs for map A is shown between points 22 and 24 in FIG. 2. The USGS codes these otherwise useless border arcs as -9999 in the attribute file.

By using nodes which exist along the border arcs, the process for edgematching becomes much less complicated and less time consuming. Matches of internal arcs are eliminated. Furthermore, using only nodes from the border arcs prevents arcs from being drawn into the border and collapsing the arc. The edgematching process between maps A and C along border arc 22-24 will be described.

Each map has four border arcs, namely, East, West, North and South. The nodes and locations of the nodes for map A are stored in four different arrays, one array for each border. The same storage process is completed with map C. Because map A is being matched to map C, only the North nodes of map A need to be tested against the South nodes of Map C. This process prevents a possible erroneous match of node 28 to node 30. If all of the nodes along the North border of map A have a corresponding match with the nodes on the South border of map C, then the edge has been successfully edgematched. If a node fails to have a match, the location of the failure is logged into a file, as described above. These unmatched nodes must be manually checked by a geographer however, in the overwhelming majority of cases the map edges are successfully matched.

The edgematching process is completed for all four borders of map A. If an edge coverage is missing, such as on an outside piece of the larger map (see 7.5 minute map 32 in FIG. 1), the value "NONE" is passed, and the edge is assumed to be matched.

In determining which node to match to the corresponding node in the other map, the node is matched to the node with closest value within a predetermined range and within the edit distance. The edit distance is input by the system user. It is preferred that the edit distance be set to the smallest discernible distance that can be digitized on a map at the scale being used. As noted above, a 30 meter edit distance is preferred on 1:100,000 scale data. If a match is found, the two nodes are snapped together. If a node needs to be electronically moved, the node alone is not moved. Rather, the entire coverage, including all of the arcs, is moved proportionally. This type is movement is called "rubbersheeting".

If all of the four borders are matched with the surrounding borders automatically, there is no need for manual inspection of the geographic data. The matching process is more accurate than the prior art systems, because there is no human interaction, thus, errors are eliminated.

The process of the invention is used to output a final map product in hard copy form. Other topographical features may be overlaid or superimposed onto the map, such as military installations, buildings or other geographic features. Other geographic analyses may be performed on the finalized map data, such as the number of miles of roads or railroads, the percentage of the surface area that is covered by water, the percentage of the area above a certain elevation etc. Other types of geographic analysis will be apparent to those skilled in the art.

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.

COMPUTER PROGRAM

An algorithm of the various computer programs used will be described in conjunction with FIGS. 3-6 and the attached computer codes.

FIG. 3 shows the Process Overview. The system begins by receiving the individual DLG data files as input, as shown at 30. The first part of the process, called DLG-CONVERSION 32, transforms the raw DLG data files into ARC/INFO format.

After the data is in ARC/INFO format, the information is processed by a program called DLGLINK.AML 34. DLGLINK.AML is used to edgematch the individual DLG data files to the surrounding data files. The DLGLINK.AML recursively calls a program called AUTO-LINK.FOR 36. DLGLINK.AML sends the necessary information to AUTO-LINK.FOR, and AUTO-LINK.FOR is the program which actually matches the adjoining edges. The matched results are sent back to DLGLINK.AML, which stores this data and sends the next data sets to be matched to AUTO-LINK.FOR.

After all of the edges are matched, the information is processed by a program called Fix-Join 38. Fix-Join cleans any topology with mistakes and adds any necessary data to the attribute files. The attribute files of the data sets must match exactly before the individual maps may be joined. After the data sets are fixed, the individual map sections are joined into a single map layer. A hard copy may be made. Various map layers, such as a railroad layer and a road layer, may be added together to get a more detailed map. Other map features may also be added, or other geographic analysis may be run on the data as discussed above.

The DLG-CONVERSION program is shown diagrammatically in FIG. 4. This program is to convert the raw DLG data files into ARC/INFO format. The program, first prompts the operator for the parameters of the run. The input parameters are the base names of the DLG file to convert, the first DLG file to process and the last DLG file to process. The program double checks with the user that all of the input data was correct. The program also prompts the user for the pathnames of the coverages, for example, hydrology, roads, railroads or miscellaneous transportation coverages. Their is also a double check feature on this data input step. Each type of layer is stored in a separate workspace, thus enhancing performance.

The main program calls a Routine named READ-DLG-HEADER. This routine calls the DLG file to determine the type of layer, UTM zone, and latitude and longitude coordinates of the southeast corner of the 7.5 minute map. This information is used to generate the map name in ARC/INFO format. This format was described above. The DLG-FILE name generated by READ-DLG-HEADER includes the map scale (which is used to set the tolerances and edit distance), the UTM zone (for use in projection, UTM stands for Universal Transverse Mercator, a standard map projection known to those skilled in the art), the latitude and longitude coordinates, and the coverage type. The READ-DLG-HEADER opens the appropriate DLG file and obtains the necessary information to name the coverage, UTM zone for projection, tolerences and coverage type. The coverage name is in the following format: [.HYDRO]H103W036N2A([.HYDRO] refers to a computer directory; H corresponds to a hydrology coverage: 103WO corresponds to 103.00 degrees west longitude; 36N2 corresponds to 36.25 degrees north latitude; and A represents an Area ARC/INFO coverage). This coverage name is returned to the main program, DLG-CONVERSION.

DLG-CONVERSION checks the input data for polygon topology. Polygon data is coded A at the end of the ARC/INFO format convention. If polygon data exists, then a topology is built with the polygon option (BUILD is a standard ARC/INFO command). The polygon topologies for all of the data files are joined by JOINITEM (a standard ARC/INFO command).

The presence of a Line topology is checked next, in the same manner as the polygon topology, and a topology with the line option is built. Similar operations take place on the Point topology and the Node topology.

If the coverage is a hydrology coverage and it includes a polygon topology but no line topology, it is a situation where the entire map area is a large lake or sea. In this case, the line topology must be built in and coded as -9999 to indicate that the lines are border arcs.

The temporary DLG attribute files are deleted. The coverages for the various types of topology (area, points, and nodes) are projected to the user output projection system and stored under the appropriate ARC/INFO naming convention. A routine called PROJECT-COVERAGE projects the coverages to the user's base projection system. Various base projection systems may be used, for example, state plane, ALBERS, Lambert, or others. The choice of projection system depends on what projection is used by the user in his normal mapping process. This choice is deemed to be within the level of normal skill in the art.

If a polygon topology coverage exists, it must be rebuilt after projecting it. The tolerance levels are set to the default values and the topology is copied into the user's work space with the ARC/INFO naming conventions described above.

The above procedures are performed on every DLG data file which is input into the system. After all the data files are in ARC/INFO format, the process for edgematching the data files begins.

The program which is used to edgematch the maps is called DLGLINK.AML, shown as a flow diagram in FIG. 5. This program recursively calls the program AUTO-LINK.FOR (AUTOLINK in FIG. 5), which in turn matches each map with the surrounding four map coverage sections(AUTO-LINK.FOR may also be referred to as DLGLINK in some of the program codes, flow diagrams and algorithms.)

DLGLINK.AML accepts the user's parameters, which include: the name of the Southeast coverage, the horizontal coverage size in decimal degrees, the vertical coverage size in decimal degrees, the number of horizontal coverages and the number of vertical coverages. The coverage name, which is generated by the routine COV.sub.-- NAME. enables the system to ascertain the location of the southeast most corner and the type of coverage (roads, etc.). This name is generated in the standard naming format for the coverage name described above. The latitudinal and longitudinal coverages are determined from the input data. DLGLINK.AML also creates the error file called DLGLINK.LOG, Any coverage that is unable to be matched automatically is noted in this file. After all of the automatic matching is complete, the locations of the edges which were not matched are disclosed to the operator. These locations must be checked manually by a geographer before the maps can be joined.

From the input data, the checkerboard pattern described above is generated. The coverages for the east, west, north and south directions are determined for the first map section to be matched. Only every other map in the horizontal and vertical directions are actually adjusted by the computer, thus creating the "checkerboard pattern". The fatal error file "FATAL.ERROR" is created, after any previously created FATAL.ERROR file is deleted. If this file is not deleted at the time when the AUTO-LINK.FOR program completes the edgematching process for this map, then a fatal error was encountered when matching the map section. The location of the error is stored in DLGLINK.LOG.

After the error file is created, the AUTO-LINK.FOR program is called. For each map section which needs to be matched, DLGLINK.AML recursively calls the AUTO-LINK.FOR program. This program will be discussed in more detail below.

After all of the edges for the first map section are matched, the east, west, north and south tables for the next map section are generated. Any existing FATAL ERROR file is deleted and a new FATAL ERROR file is generated. AUTOLINK.FOR is called again. This process repeats itself for every map section in the checkerboard which needs to be matched.

DLGLINK.AML also calls a routine called GET-COVS. This routine checks the input north, east, west, and south coverages of the 7.5 minute maps to determine when the data is at the edge of the final map. When at the edge, the value "NONE" is passed, to tell the system that it is at the map edge, and the edge is assumed to be matched as it is. GET-COVS further calls the routine COV-NAME, which generates the proper latitude and longitude coordinates which are used by GET-COVS to determine if the data is from an edge location.

As mentioned above, DLGLINK.AML calls the program AUTO-LINK.FOR for each map section which must be matched. This program takes advantage of the fact that DLG data codes the border arcs as -9999. If all of the nodes along the edge are matched to the adjacent coverage nodes, these nodes are snapped together, and the edge has been automatically edgematched. If any edge fails at only one node, the error file is created and the location is noted, as described above. The following criteria are used to generate the links,

A) Only nodes on border arcs coded -9999 are considered;

B) Only one edge of coverage is compared to the corresponding edge of the adjacent coverage (i.e. north edge of one map compared to the south edge of the adjacent coverage map);

C) Nodes are matched to the closest node within the edit distance to create the link;

D) Only one link is allowed per node;

E) If all the border nodes (snapcover nodes) are linked, the edge is linked; and

F) If all the edges are linked, the coverage is linked.

AUTO-LINK.FOR first initializes a variety of ARC/INFO subsystems by calling the following interface routines which are available to all ARC/INFO users: TTINIT, LUNINI, AMLINI, VINIT, GETINT, MINIT, MESINI, MESIAM, and AMLTTY. These routines set up the environment to receive parameters from DLG-LINK.AML. These are generic routines for interfacing with the ARC/INFO. The user parameters are read in, which include the edit coverage, the east border coverage, the west border coverage, the north border coverage and the south border coverage. The edit distance is set to 30. Next the error file and the output files are created.

The subroutine PROC-COV is used to open and read in the data of the attribute file of the map to be matched. If the arc is coded less than zero, this program recognizes this as a border arc. If it is a border arc, the nodes are recorded. If the slope of the line between the nodes is between -45 degrees and +45 degrees, the nodes are placed in a north/south table. If the slope is not in that range, the data is stored in an east/west table. The midpoint is then located at half way between the minimum and maximum node location entries. Horizontal lines have nodes on either the east or west sides and vertical lines have nodes on either the north or south sides. The two east/west and north/south tables are divided into the four coordinate directions (east, west, north and south) by comparing to the midpoint.

After the nodes for the map to be matched are placed in the proper coordinate tables, the nodes in each table are then sorted and placed in X,Y order. The X and Y coordinate values depend on the map projection. For UTM, typical coordinate values would be (650,000, 4,170,330). The EDITCOV nodes (i.e. the nodes being adjusted to match the four adjacent coverages) are also sorted into X,Y order by a "bubble sort".

Each edge is processed, unless the edge has been labelled "NONE", which corresponds to a large map edge piece. A logic variable called BAD-EDGE is set to "false"; if BAD-EDGE becomes "true", the coverage cannot be autolinked.

The programs are designed with the commands that are needed to interface with the ARC/INFO system. The commands needed are: arcedit, set edit feature, editcover, coordinate keyboard, and add. To process a cover, the nodes of the adjacent maps are separated into the north, south, east and west edges for the cover. This sorting is done by the PROC-COV routine also. First the west edge of the map is matched to the east edge of the "cover" map (the adjacent map). The location of each node in the adjust map is compared to the cover nodes within the edit distance, and the closest cover node within the edit distance is returned. Once a matching node is found, the ARC/INFO ASCII command to add the link is executed. The links are later added by the ARCEDIT command.

First, the closest match is sought within the edit distance. A subroutine called FIND-CLOSEST is used for matching. If no match within the tolerance limits is found within the edit distance, the distance is expanded to five times the original distance. If no match is found in this range, an error is noted by the computer, and the logical variable BAD-EDGE is changed to "true". If a match within the tolerance limit is located in the wider range, this match is snapped using the ARC/INFO commands, for example, ARCEDIT and ADD.

This method of finding the closest match is repeated for the east, south, and north edges of the map to be matched. If no bad edge is found around all four edges of the map to be matched (i.e. BAD-EDGE=.FALSE. at the end of the matching steps), then the map is adjusted and saved. If a failure is noted, the error is noted in the error file.

The subroutine FIND-CLOSEST is used to find the closest node match within the edit distance. If a match within the tolerance limit is found, the closest match is located by a binary search, and the location of the successful cover node is passed back to the main program.

The final steps in the matching process are completed by a program called FIX-JOIN, shown in FIG. 6. As discussed above, in order to snap to individual maps together, the attribute files must match each other exactly. Fix-Join receives as input: the name of the southeast coverage, the horizontal size in decimal degrees, the vertical size in decimal degrees, the number of horizontal coverages and the number of vertical coverages. Default numbers of attributes are preset in two files called "MINOR" and "MAJOR". The following steps are repeated until every attribute file has the same number of MAJOR and MINOR code pairs.

First the latitude and longitude of the southeast corner are used to generate the coverage name. These coordinates are incremented during the successive loops. When lines are shifted during the edge matching process, the lengths of lines, the areas of polygons, and the location of nodes are changed. When this occurs, the coverage is said to not be "clean". If the coverage is a network coverage (Area) and it is not clean, the coverage is first cleaned with the polygon option. If the coverage lacks line topology, "topology" referring to the relationship of map features to one another, the topology is cleaned with the line option. "Clean" and "Build" are ARC/INFO procedures which are used to re-establish the topology after a shift during edge matching. To determine the number of PAT (Polygon Attribute Table) files, subtract 16 from the number of attribute files and divide the result by 12. To determine the AAT(ARC Attribute Table) file number, subtract 28 from the number of attribute bytes. This provides the number of MAJOR and MINOR codes for the coverage.

If the number of attributes in the PAT and AAT files do not match the maximum number of attributes in PAT-MAX and AAT-MAX, a single item is added for all missing attribute pairs. The items are added with the ARC/INFO ADDITEM command discussed above. Preferably, a single ADDITEM command is used to reduce the input/output overhead.

If any file has more attributes than the default amount or the previous PAT-MAX or AAT-MAX amount, the values in PAT-MAX or AAT-MAX are increased to correspond to the higher value.

The final step is to append or join the multiple 7.5 minute maps which have been matched into a single output coverage. From the coordinates of the southeast corner, the coverages are appended together as the latitude and longitude coordinates are incremented. If the coverage has been matched, the coverage is appended to the surrounding coverages. A large map product is produced as the final product. Several map layers may be added together and superimposed onto a single map.

A copy of the program codes described above are attached to the end of this specification, along with flow diagrams and algorithms of these codes. This material will be understood by those skilled in the art. All codes, flow diagrams and algorithms referred to herein and attached to this specification are relied on and incorporated by reference.

While the invention has been described in conjunction with particular embodiments, various modification may be made without departing from the invention, as defined in the claims. ##SPC1##


Top