System and method for a dynamic professional syllabus

The present invention relates to an integrated professional information server and, in particular, it concerns a inter or intra-net system to coordinate professional learning, organization, information, and communication needs, generate and communicate a syllabus containing a program of missions. Exercises strengthen a professional's proficiency and knowledge in at least one topic. Preferentially the syllabus automatically presents at least one trainee with appropriate exercises, controls support materials, and tracks progress. An on-line real time graphical simulation algorithm facilitates simulations of real localities.

DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention is of a dynamic professional syllabus which can be used to make training programs more efficient. Specifically, the present invention can be used to conserve training resources by monitoring trainee progress. The principles and operation of a system and method for a dynamic professional syllabus according to the present invention may be better understood with reference to the drawings and accompanying descriptions. Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of the components set forth in the following description or illustrated in the drawings. The invention is capable of other embodiments or of being practiced or carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting. For purposes of this specification and the accompanying claims, the phrase indicator statistics refers to numerical data indicating the location of characteristic forms in a domain. For purposes of this specification and the accompanying claims, the phrase outputting a syllabus includes the reporting of data from the syllabus or presenting a mission from the syllabus to a trainee or to a user. For purposes of this specification and the accompanying claims, the term map refers to a data structure defining a value of a characteristic at a plurality of locations in a domain. For purposes of this specification and the accompanying claims, the term mesh refers to a data structure defining a value of a characteristic in continuous space in a geometric domain. For purposes of this specification and the accompanying claims, the phrase polygon mesh refers to a data structure defining a value of a characteristic on set of polygons in a geometrical domain. For purposes of this specification and the accompanying claims, the term trainee refers to any user of receiver of information. For purposes of this specification and the accompanying claims, the terms geo-statistics and spatial-statistics. For purposes of this specification and the accompanying claims, the term mission refers to an assignment to a person or a group of people and the assignment may be for the sake of training or have an intrinsic motivation. For the purposes of this specification and the accompanying claims, the phrase generate a syllabus may include but is not limited to scheduling a mission, scheduling a class, revising a schedule, updating data in an existing syllabus, sending messages to involved personnel, and reserving equipment. Referring now to the drawings, FIG. 1 illustrates a first preferred embodiment which is a system for a dynamic training syllabus, which is referred to hereinunder as system 10 . System 10 includes: a database 14 a for storing training topics and topic attributes. System 10 also includes a processor 15 a which generates a training syllabus 16 a based on the training topics and training topic attributes. The database and processor may be, for example, the storage and processing components of a personal computer. System 10 also includes input interfaces, for example 12 a , 12 b , 12 c , 12 d , and 12 e communicating with processor 15 a and, output interfaces, for example 17 a , 17 b , 17 c , 17 d , and 17 e communicating with processor 15 a. Training coordinator 11 inputs data including training topics and topic attributes into input interface 12 a , which may be, for example, a personal computer. The data is relayed over a local area network 13 a to via processor 15 a to database 14 a . Database 14 a is in communication with processor 15 a . Processor 15 a generates a training syllabus 16 a . Syllabus 16 a is stored in database 14 a . Processor 15 a outputs a first program from stored syllabus 16 a for the first training session to a first output interface 17 a . For example, output interface 17 a is the input channel of a flight simulator 18 a . The first program contains a formatted simulator control program communicated through the simulator control channel of output interface 17 a . The first program also contains instructions for the trainee during the simulated flight. The instructions are presented during the training exercise on the video screen of simulator 18 a. It is understood that exercises supplied by training coordinator 11 may include audio visual materials which can be scanned into input interface 12 a or input through a digital video recorder. Physical materials such as audio and videotapes, charts and drawings may also be made available to trainees. The store room for such materials can be considered part of database 14 a and the materials can be communicated to database 14 a by any convenient means, for example fax or mail. Database 14 a further stores trainee progress data. Thus, the output channel of flight simulator 18 a is also a second example of an input interface 12 b communicating trainee performance data to processor 15 a . Processor 15 a evaluates the trainee performance data according to performance requisites stored in database 14 a and updates database 14 a by adding a current evaluation of trainee performance. Input interfaces for inputting trainee performance include but are not limited to a formatted evaluation such as a multiple-choice test graded by an automated test reader, a data collection device of a vehicle such as a flight recorder, a device measuring performance of a vehicle such as flight controller radar, a voice communication device such as an aircraft radio, a recording device such as a video camera. Processor 15 a receives data pertaining to the availability of an instructor from input interface 12 c which is, for example, the instructor's personal data assistant (PDA). PDA 12 c can also be used to edit scheduling data, the edited data being uploading to database 14 a at a convenient time. Processor 15 a also receives resource availability data from input interface 12 d which is the workstation of a resource provider. Input interface 12 d is also used to input information pertaining to equipment cost and a budget. When there are changes in costs, input interface 12 d is used to edit budget information. Processor 15 a uses the training topic data, the trainee data, and the scheduling data to update training syllabus 16 a. Processor 15 a subsequently communicates an updated training schedule from database 14 a to output interface 17 b , which is, for example, instructor PDA 12 c . PDA 12 c reports scheduling information to the instructor. Processor 15 a also communicates an updated training schedule from database 14 a to output interface 17 c which is, for example, resource provider workstation 12 d . Resource provider workstation 12 d further presents orders for resources required for the training session to a resource provider. For example, in this preferred embodiment, the resources include training vehicle 34 , an aircraft for use in a training flight. If a piece of equipment for example vehicle 34 is out of service, the resource provider uses input interface 12 d to edit information pertaining to resource availability to reflect the change in the status of vehicle 34 . It is understood that communication with PDA 12 c and workstation 12 d is by any convenient communication network. For example, a telephone or automated e-mail system can be used to contact an instructor who manually extracts data from PDA 12 c and sends a return message to database 14 a or alternatively PDA 12 c may be capable of direct cellular communication (for example the Nokia Communicator T and the like) in which case database 14 a directly communicates with PDA 12 c over the cellular network automatically receiving schedule information and reserving dates for training sessions. Communication with workstation 12 d is, for example, over the Internet. It is also understood that workstation 12 d can supply resource cost information to database 14 a . The cost information can be used, for example, by an accountant for budgetary calculations. Further examples of networks include but are not limited to a cellular communication network, a telephone network, a computer network, a radio transmitter and receiver network and interconnected fax machines. During the training flight, processor 15 a presents an updated second training session training program from database 14 a via voice instructions over output interface 17 d which is, for example, the radio receiver of training vehicle 34 to an instructor on board training vehicle 34 . The radio transmitter of training vehicle 34 also acts as a second input interface 12 e and communicates trainee performance data to database 14 a . Further trainee performance data may be reported to database 14 a from external measurements of vehicle performance supplied for example by control tower radar. It is understood that in this way, processor 15 a may adjust second session training program during the session. Such an adjustment saves valuable time and resources when unforeseen circumstances interfere with execution of the original training program. FIG. 2 illustrates a second preferred embodiment hereunder referred to as method 50 , which is a method for a dynamic training syllabus. In the first step there is supplied database 14 a including initial data 51 and processor 15 a . Initial data 51 includes data on topics to be covered, attributes of the topics and may also include information on trainees. For example, initial data 51 for a pilot training course may include the following topics: (A) avoiding dynamic stall (B) ascending in an aircraft. The syllabus also specifies that the order of completing the topics. A trainee must be first learn to avoid stall and then ascending in an aircraft. Each topic includes attributes, for example: I) Exercises (A) pertaining to avoiding dynamic stall (i) class in flight theory—conditions that cause stall (ii) simulation of stall 1 (iii) simulation of stall 2 (iv) flight training avoiding stall—estimated time to complete exercise 2 hours (v) flight training recovering from stall—estimated time to complete exercise 3 hours (B) exercises pertaining to ascending in an aircraft (i) class in aircraft control (ii) simulated ascent (iii) flight training ascent—estimated time to complete exercise 3 hours; (II) Prerequisites: flight training of stall recovery requires flight training of stall avoidance; flight training of ascent requires simulator training of stall (III) Requisites for completion of topics (A) avoidance of stall—successful recovery from stall in real flight (B) ascent in an aircraft—successful ascent in real flight; (IIII) Trainee data (trainee &lsqb;A&rsqb;) previous training in aeronautical engineering, previously completed ascent simulator exercise, required time to complete ascent simulator exercise was 2 hours; (trainee &lsqb;B&rsqb;) psychological examination revealed that may be panic prone (trainee &lsqb;C&rsqb;) physiological data reveal that is left handed. Based on initial data 51 an initial training syllabus 16 a is generated and output to an instructor (syllabus output is represented by the solid arrow). In the pilot training example, syllabus 16 a includes a program for a first training session 52 a ( FIG. 2 ), which is, for example, a class in aeronautical theory. At the end of training session 52 a trainees complete an exam using a computer graded test form output by a printer (not shown). A test reader grades The test form and communicates the results into via processor 15 a to database 14 a (trainee data input is represented by the dotted arrow). Processor 15 a compares test results to the exercise completion requisites in database 14 a and passes the trainees to a second training session 52 b ( FIG. 2 ) which is, for example, a flight simulation session to be attended by all trainees. If test results were poor, training syllabus 16 would be updated by processor 15 a to include further classes containing exercises on topics that were incompletely mastered. A training coordinator 11 may also use an input interface 12 a to edit topics or topic attributes. For example, if training supervisor feels trainees &lsqb;A&rsqb;, &lsqb;B&rsqb; and &lsqb;C&rsqb; are unprepared making stall exercises are too dangerous then training supervisor edits the attributes of the topic (A) avoiding dynamic stall and adds more prerequisites. Trainings supervisor 11 may also use input interface 12 a to edit a training topic. For example, training supervisor 11 may change the topic from “(A) avoiding dynamic stall” to “(A) theory of dynamic stall” removing the in flight stall exercise. Based on psychological data on trainee &lsqb;B&rsqb;, syllabus 16 a includes a program 79 c for a second simulation session for trainee &lsqb;B&rsqb;. In this example, trainee &lsqb;B&rsqb; excels in flight simulation 52 b and based on the results of training session 52 b input into database 14 a , processor 15 a outputs a revised training syllabus 16 b which does not include second simulator session program 79 c. Trainee performance is input to database 14 a after flight training in third training session 52 d ( FIG. 2 ). For example, trainee &lsqb;A&rsqb; took longer than scheduled to complete flight training exercise i. Based on the trainee performance data, final training syllabus 16 c includes extra time for flight training for trainee &lsqb;A&rsqb; in fourth and fifth training session programs 79 e , and 79 f respectively. Programs 79 e and 79 f are, for example, further flight training session programs. During training sessions 52 e ( FIG. 2 ) and 52 f ( FIG. 2 ), trainee performance is reported to database 14 a . Because in this example, trainee performance is acceptable, final training syllabus 16 c is the final training syllabus. The initial syllabus 16 a , revised syllabus 16 b and final syllabus 16 c of the second preferred embodiment are shown in FIG. 3 . Each syllabus contains session programs 79 a , 79 b , 79 c , 79 d , 79 e , 79 f . Each training program 79 a , 79 b , 79 c , 79 d , 79 e , 79 f is to be attended by at least one trainee represented by a letter in square brackets. Exercises to be completed by each trainee in the flight training programs 79 d , 79 e , 79 f are shown by small Roman numerals below the trainee letter. Class program 79 a may include printed material, for example, a class schedule, exercises and test questions. Program 79 a may also include audiovisual materials for use of the instructor. Based on data pertaining to previous experience, trainee &lsqb;A&rsqb; is not required to attend class 52 a ( FIG. 2 ) and is not included in program 79 a. Program 79 b is a flight simulator session to be attended by all trainees. Based on psychological data, trainee &lsqb;B&rsqb; is scheduled to attend an extra simulated flight training session in program 79 b . In this example, trainee &lsqb;B&rsqb; performs exceptionally well in second training session 52 b ( FIG. 2 ). Based on trainee performance data input (shown as a dotted arrow) into database 14 a ( FIG. 2 ) from training session 52 b a revised syllabus 16 b is generated and output. Revised syllabus 16 b does not contain second simulator session program 79 c . Therefore according to revised syllabus 16 b , flight training program 79 d comes directly after simulator training program 79 b. According to revised syllabus 16 b , trainee &lsqb;A&rsqb; is to complete flight training exercises i and ii in flight training session 52 d ( FIG. 2 ) as is seen in training program 79 c . In the example, trainee &lsqb;A&rsqb; completed only flight training exercise i in training session 52 d . Therefore, after input of performance data from session 52 d , final syllabus 16 c transfers flight time from trainee &lsqb;C&rsqb; in training program 79 e to trainee &lsqb;A&rsqb;. Training program 79 f is lengthened to give more time for trainee &lsqb;C&rsqb; making up for the training time lost by &lsqb;C&rsqb; is program 79 d. FIG. 4 illustrates a third preferred embodiment, which is a system for a dynamic training syllabus, which is referred to hereinunder as system 80 . In system 80 there is a processor 15 b and a database 14 b . Processor 15 b is in communication with network 13 b , which is the Internet. Database 14 b includes a library of aviation data 82 an import export algorithm 84 , resource availability data 86 . tools algorithms 88 , and a syllabus 16 d . In system 80 , syllabus 16 b is a syllabus for a flight mission. The mission of system 80 is to bring medical equipment to a flooded region in a Spanish speaking country on a outbound leg of the mission and to bring injured people to medical treatment on the return leg of the mission. A supervisory user uses, for example, a desktop personal computer (PC) as an output interface 17 e and a keyboard as an input interface 12 f . Output interface 17 e is connected to processor 15 b through a high-speed intranet 96 . The supervisor first generates a new mission syllabus 16 d , which will store data and scheduling for the new mission. Having received a request for the mission the supervisory user must first identify trainees who will be crewmembers. A flight crew must include crewmembers with experience flying large cargo aircraft on short runways, have medical skills, have current inoculations against hepatitis, and be able to communicate in Spanish. To find crewmembers, the supervisory user accesses database 14 b using input interface 12 f and requests that processor 15 b search personnel data 90 for trainees having the proper qualifications. For example personnel data 90 includes a medical database supplied and updated with permission from employee by personal physicians. The medical database includes an inoculation status for each employee. Because database 14 b does not contain data on medical skills, the supervisor uses processor 15 b to send a memo to all flight personnel. In order to keep track of potential crewmembers that have yet to be reached, the memo requires an acknowledgement with a digital signature from each recipient. The memo requests that employees having medical training send a list of medical qualifications. The supervisory user identifies three people including a first trainee &lsqb;D&rsqb; who is a pilot, a second trainee &lsqb;E&rsqb; who is a navigator and also knowledgeable in first aid, and a third trainee &lsqb;F&rsqb; who is a copilot and Spanish speaker. The supervisory user sends a message to a training supervisor 92 requesting that training supervisor 92 arrange a crew exercise covering short foul weather landing and takeoff using local data from the mission destination. Training supervisor is also to provide information pertinent to the syllabus such as health conditions in the destination country and visa requirements. Training supervisor 92 is to add the pertinent information to database 14 b. Trainer 92 adds a crew exercise 100 to a mission syllabus 16 d . Pilot, trainee &lsqb;D&rsqb;, will train on a flight simulator while crew members &lsqb;E&rsqb; and &lsqb;F&rsqb; will participate from their homes using, for example, personal computers as communication devices (PCs serve as both input interfaces 12 and output interfaces 17 ) communicating over network 13 b . Crew exercise 100 includes trainees &lsqb;D&rsqb;, &lsqb;E&rsqb;, and &lsqb;F&rsqb; and is designed to give trainees &lsqb;D&rsqb;, &lsqb;E&rsqb;, and &lsqb;F&rsqb; experience working together under conditions analogous to the conditions of the planned mission. Therefore crew exercise is synchronous and simulator data includes sound recorded over a microphone (not shown), terrain images (not shown), cockpit instrumentation and readings (not shown) and messages from a virtual instructor (VI) 102 . The simulator data are output to trainee pilot &lsqb;D&rsqb; and simultaneously relayed to trainee crew &lsqb;E&rsqb; and &lsqb;F&rsqb; over network 13 b. Training supervisor 92 must build exercise 100 . The first step is to develop topics and topic attributes to be covered. Training supervisor first outlines topics to be covered and attributes of the topics. Training supervisor 92 must also develop a model of local terrain. To develop the terrain model, trainer 92 uses network 13 b to e-mail an air force official 104 from the host country requesting local terrain data 106 for use in exercise 100 . In reply, air force official 104 sends data 106 as an e-mail attachment to trainer 92 . Data 106 needs to be adapted to an available simulator. Therefore data 106 is first converted using import/export algorithm 84 , which contains programs for processor 15 b facilitating transfer of data between various simulator formats. A terrain builder tool 108 facilitates, through interactive menus, the development of a locally accurate simulation model. Builder 108 is an algorithm executable by processor 15 b . Builder 108 outputs a simulator instruction code to simulate local conditions based upon interactive menu driven choices. For example, a weather tool (not shown) allows adjust the lighting, sound, and instrument readings in order to simulate rain, lighting and high winds. The weather tool also adjusts appropriate parameters such as the ground hardness in response to specified rates for rainfall. Lightening may be added at specific times in the simulation, as specific points in the simulation (for example when the aircraft reaches a certain altitude in final landing decent) or at random times according to a random distribution function specified by trainer 92 . Terrain builder 108 also menus for adding a structure (for example a building) from terrain data 106 . Along with terrain data 106 in the proper format exercise 100 contains a VI 102 . VI building tool 107 is a computer algorithm that facilitates the programming of a virtual instructor. The VI, gives instructions to trainees during a training session in response to trainee actions. Specifically, the destination runway of the mission is a grassy field. The grassy field is softer than temporary runways of dessert stone in the home country of pilot &lsqb;D&rsqb;. Therefore, one instruction that trainer 92 programs into VI 102 is that if pilot &lsqb;D&rsqb; approaches the runway with a steep decent, VI 102 informs pilot &lsqb;D&rsqb; that this runway is of soft wet dirt and must be approached more carefully. VI builder 107 can also be used to build a virtual peer to the trainee. For example, VI builder 107 can build a virtual crewmember for simulations that do not include the entire crew learning synchronously. Thus, a crew exercise can be made non-synchronous by recording the reactions of one crewmember during a simulation and designing a virtual peer to react in a similar fashion. Information from a psychological database (not shown) included in personnel data is also used to program the reactions of virtual crewmembers. The remaining crewmembers then perform simulations with the virtual peer. Similarly, for combat pilots, the virtual peer would be an enemy pilot. Builder tools 88 include but are not limited to VI builder 107 , terrain builder 108 , a scenario builder 111 , a device builder 114 , a certification tool 116 and a debugger 112 . Device builder 114 is an algorithm for an interactive tool to facilitate designing and modifying a virtual cockpit of a simulator to resemble real or proposed aircraft. Device builder 114 can also be used to design a virtual weapons having properties of known real weapons such as missiles for combat simulations. Certification tool 116 checks code to test if the code meets programming standards. Programming standards may be rules of programming etiquette for portable code, or programming standards may be requirements of particular target devices and processors. Debugger 112 monitors program progress during a simulation and outputs a log file that informs a user of the state of various virtual device and actor codes. Debugger 112 is useful for tracing coding errors that cause a simulator program to fail. Scenario builder 111 , allows a trainer 92 to specify alternate scenarios for a missions. For example, in embodiment 80 , trainer 92 uses scenario builder 111 , to set up two scenarios. In the first scenario the flight arrives during a thunderstorm and in the second scenario the weather is good but the airstrip is crowded. Scenario builder 111 facilitates interactive building of scenario's that share some information (for instance terrain, aircraft characteristics) but have significant non-shared data. Writing two simulations as two scenarios saves storage space and run time (because processor 15 b does not need to load and reload all the data of both scenarios separately into memory). The supervisor also uses input interface 12 f , output interface 17 e , intranet 96 and database 14 b to mark a transport aircraft as reserved in resource availability data 86 . Processor 15 b automatically pushes a message over intranet 96 informing a resource coordinator 94 of the change to resource availability data 86 . Processor 15 b also pushes a message to the supervisor reporting the cost of ordered equipment as budget information over output interface 17 e . Resource coordinator 94 then adds to mission syllabus 16 d a scheduled item 98 that will trigger on the morning of the mission and send a message over intranet 96 to ground personnel reminding them to prepare the aircraft. In this way processor 15 b and database 14 b coordinate data and messages. Thus processor 15 d sends messages on the inter-net or intranet to remind users or trainees of data, missions, classes, changes in laws, changes in policy, upcoming exams, and periodically reminds pilots to review particular subjects. Processor 15 d also reports progress and activities of trainees over output interface 17 e to the supervisor. Processor 15 d also collects information 110 relevant to trainees who are pilots from the Internet, for example changes in laws, changes in policy, upcoming exams, weather forecasts 109 , and airport conditions. After collecting information 110 , processor 15 d sorts and stores information 110 . When information 110 fits a predetermined criterion, a message or information 110 itself is pushed to the trainee or user in an e-mail message or an internal memo. Information may be pushed to a user in an immediate on line message. For example a reminder is sent to an instructor and trainees immediately before scheduled class. A message may be sent as an e-mail message. For example, when there are changes in air-routes, an e-mail is sent to concerned pilots with an attached map. Information may be collected and sent as a bundle at a predetermined time set aside for review of new information. For example processor may collect industry reports of new aircraft technology and forward the reports as a bundle to pilots every Friday morning. Database 14 b also contains tips 115 and tutorials 113 . For example, a pilot may submit a tip 115 based on experiences at an individual airport. A supervisor may submit a tip or a tip may be automatically generated by a virtual instructor and targeted to the particular trainee when the trainee has consistent trouble with a certain skill. Pilot &lsqb;D&rsqb; after being informed of his new mission looks through tips database 115 to find any comments from pilots flying into unfinished airstrips in the region of the mission. Tutorials 113 are used brush up old skills or develop new skills. For example, pilot &lsqb;D&rsqb; has not flown the type cargo plane reserved for the current mission for a few years. Pilot &lsqb;D&rsqb; finds a tutorial 113 supplied by the plane manufacturer reminding pilots of the structure and placement of instruments, the load and speed limits of the aircraft and the recommended pre and post flight checks. Database 14 b also includes briefing 118 and debriefing 120 data. Briefing 118 informs trainee &lsqb;D&rsqb;, &lsqb;E&rsqb;, and &lsqb;F&rsqb; of particular points in an exercise or mission requiring trainee attention. Data in a briefing 118 is tailored to a given mission or exercise and also to a given trainee. Thus, for the cargo mission of this embodiment, training supervisor 92 sets up a briefing for crew exercise 100 . The briefing data includes reminders of the difficulties to be expected in exercise 100 and notes on the crewmembers. Specifically, pilot &lsqb;D&rsqb; is reminded that on the return leg of the journey navigator &lsqb;E&rsqb; may be busy with patients being transported and therefore pilot &lsqb;D&rsqb; must remain aware of navigational problems. Similarly copilot &lsqb;F&rsqb; is reminded that pilot &lsqb;D&rsqb; has most of his experience under dessert conditions and should be reminded of potential problems related to wet conditions. An evaluation of performance of a trainee in an exercise or on a mission is reported in a debriefing 120 . Debriefing 120 information includes records from VI 102 as well as records of crew activities during a real or training mission. Thus, the debriefing data reminds pilot &lsqb;D&rsqb; of mistakes made during the training mission. Debriefing data 120 is sufficient to allow pilot &lsqb;D&rsqb; to replay the simulator flight, stopping or slowing the replay, and viewing the replay at different angles in order to understand the cause of problems and how problems can be avoided. Replay data may be stored on a videotape, then the output interfaces being, for example, a video viewer. VI program 102 , briefing 118 , library information 82 , reminders, and debriefing data 120 are made available to pilot &lsqb;D&rsqb; before during and after a real mission via an on board computer and on board communication equipment of the mission aircraft. FIG. 5 is a schematic overview of a method for construction of a base polygon mesh 204 a . Construction of a base polygon mesh 204 a is accomplished offline prior to a flight simulation. Base polygon mesh 204 a is a simple mesh containing only active vertices without the need for complicated hierarchal structures requiring graphical expertise. The geometrical input to the method is raw geometrical data 200 a . Data 200 a is a set of point elevation values generated by digitizing a graphical image for example a aerial photograph. Geometrical data 200 a is not optimized. Therefore, there may be large numbers of unnecessary data points. A data point is unnecessary if the elevation of the point could be found to sufficient precision from by interpolation from nearby points. Geometrical data 200 a may also be inadequate in some locations. Data is inadequate in a location if the correct height of the location cannot be determined to sufficient precision from the data. Therefore an optimal unstructured map 212 a ( FIG. 6 ) is generated and used to construct polygon mesh 204 a. Before generating optimal unstructured map 212 a , a domain of data 200 a is variance-mapped 202 a . The first step in variance mapping is breaking the domain into zones 206 a ( FIG. 6 ). First preliminary zones are divided 218 ( FIG. 7 ) according to natural boundaries by visual inspection (for example separating hilly from flow terrain, separating a river valley from a plain). Variance mapping 202 a may include but is not limited to Fourier analysis, spatial-statistics or fractal analysis. For example in spatial-statistical analysis, the set of possible lags between any two points is divided into bins. For example, for a square domain of 100 square kilometers, bins are chosen as 1-5 m, 5-10 m, 10-50 m, 50-200 m, 200-1000 m, 1000-5000 m. Variance may also be anisotropic and therefore, distance between two points (x 1 , y 1 , h 1 ) and (x 2 , y 2 , h 2 ) is defined as {square root}{square root over ((x 1 −x 2 ) 2 &plus;(&lsqb;y 1 −y 2 &rsqb;/&lgr;) 2 )} where &lgr; represents the ratio of the integral scales in the y and x directions. For a data-pair (x 1 , y 1 , h 1 ) (x 2 , Y 2 , h 2 ) a variogram estimator (h 1 −h 2 ) 2 is computed. In each zone, every pair of points is classified into a bin according to the lag distance between the points in the xy-plane. Various values of the anisotropy ratio &lgr; are tested and the anisotropy ratio &lgr; is optimized in each zone to minimize the variance of the variogram estimator within the bins. In each zone, a variogram is chosen by fitting the average height difference in the bins to a variogram model (for example a Guassian or an exponential variogram model). A covariogram may also be used for variance mapping. According to the computed variograms and zone size, zones are further subdivided or joined. Specifically, the preliminary zones are broken into base zones 206 a wherein each base zone 206 a has a consistent variance structure. Specifically, a zone has a consistent variance structure if the coefficient of variation of variogram values in all bins is less than one. Preliminary zones having bins in which the variogram values have a coefficient of variation greater than one are subdivided. Within the zone pairs of points are classified as of high or low variogram value in the bin. The zone is divided into two or more zones wherein, the data pairs in each zone at a particular lag contain a consistent set of variogram values. For each new zone, a new analysis of variance is made. Preliminary zones are further subdivided when the size of the zone is greater than ten times the lag scale at which the variogram value is 6. For example a zone of size 1 Km in the x-direction and 1.4 Km in the y-direction has an anisotropy ratio &lgr;&equals;1.5 and a fit Guassian variogram of 1 v = 10 &it; { 1 - exp &af; ( - ( x 1 - x 2 ) 2 - [ ( x 1 - x 2 ) / λ ] 2 100 ) } + 3 Thus the variogram is 6 at the lag of 60 m. Because of the effect of &lgr;, the lag of 60 m occurs for an x-lag of 60 m or a y-lag of 90 m. Thus, in order that the domain be ten times the lag scale of a variogram value of 6, the 1×1.4 Km zone is further divided 205 a into four smaller base zones 206 a . Each base zone will be 0.5×0.7 Km (see FIG. 6 ). On the other hand, where there are two adjacent zones of consistent variance structure and each of the two zones are smaller than the determined base zone size, the two zones are combined into on large sub-domain. For example if two zones have a difference of less 30% in variogram values for all bins and have a difference of less than 30% in anisotropy ratios, then the zones are combined. After variance mapping an optimal unstructured map 212 a ( FIG. 6 ) is generated 210 . In each zone a set of best-fit Bezier Splines 207 (B-splines) are fit 208 to the geometrical data and a minimal set of points to reproduce the height map is defined as the control points 211 ( FIG. 6 ) of B-splines 207 . Optimal unstructured map 212 a contains the height information of geometrical data 200 a using a minimum storage. Unstructured optimum map 212 a is stored and used for further refinements of polygon mesh 204 a. If 90% of the data pairs in a particular zone 206 a are separated by lags of less than one integral scale of the variogram of the particular zone 206 a , then B-splines 207 are fit 208 to a simplified geometric map including a small sample of the geometrical data in particular zone 206 a . Specifically, where there is a cluster of data points having similar height within an area of radius one integral scale of lag, a small sample of the points is selected other data points being removed. Fitting 208 B-splines 207 to the smaller sample decreases the computer resources necessary to build a simulation. LOD manager 214 defines a desired LOD for base polygon mesh 204 a . Using the geometrical data from optimal unstructured map 212 and the LOD a triangulator 216 a constructs base polygon mesh 204 a by Delaunay triangulation. FIG. 7 is a detailed flow chart illustrating a method for adaptive triangulation. Note that in FIGS. 7 and 8 , thin lines represent flow of the process while thick lines represent flow of data. The input to the method is height map 200 b . In the first general step, analysis of variance 202 b , a set of preliminary zones are defined 218 . In each zone the spatial structure of the variance of height is analyzed 220 using a Fourier Transform. The bins of the spectrum of the Fourier Transform (wave-length) represent lag distance and the peaks heights of the spectrum represent the variance in height at the given lag. Based on the spectrum of the Fourier Transform, base geometric zones 206 b are defined 205 b. After analysis of variance 220 and definition 205 b of base zones 206 b , an optimal unstructured map 212 b is generated 210 . In optimal unstructured map 212 b , conditional simulation is used to fill in 222 areas with inadequate data. Specifically, at an area where there is inadequate data, an expected mean height and variance are calculated by kridging. Then a random number is generated from a distribution having the expected variance and mean zero. The height assigned to the point is a sum of the random number added and the expected mean. Optimal unstructured map 212 b is generated for each zone 206 b by fitting 208 height map 200 b to a set of B-splines 207 and storing the controls points 211 needed to generate the B-splines 207 . Optimal unstructured map 212 b requires one-fifth the storage space of raw height map 200 b . The saving is not merely storage, but also processing time because in further steps of constructing a polygon mesh, the processor does not need to manipulate the huge data structures of raw height map 200 b . Further reduction of data manipulation is achieved because new points for triangulation will be based on small-scale zones 206 b and will not require manipulating the entire optimal unstructured map 212 b. After generating optimal unstructured map 212 b , a base polygon sub-mesh 204 b is constructed 224 by triangulation 216 b in each zone 206 b . Base polygon sub-meshes 204 b , unstructured optimal unstructured map 212 b and zones 206 b , are used on line in a flight simulation 226 . Heights are assigned 250 to the vertices of each sub-mesh 204 b by kridging based on known heights at neighboring locations in optimal unstructured map 212 b . When a polygon 300 h 2 ( FIG. 11 d ) is added (either during construction of sub-mesh 300 h 2 , or during polygon reduction or splitting) to a sub-mesh 240 b ( FIG. 11 d ) a height error is computed and stored, the error being between the face of polygon 300 h 2 and points of defined height in optimal unstructured map 212 b falling in the domain of the polygon 300 h 2 . During flight simulation 226 , polygon mesh 204 b is used to render 228 an image for the simulator. According to movements 229 of a pilot and an aircraft, a new view is defined 230 . The LOD required by the new view is determined 232 . From the new LOD requirement, a maximum permissible height error is defined 234 everywhere and zones 236 of maximum permissible error are generated. Error zones 236 serve as input along with the optimal unstructured map 212 b and polygon mesh 204 b for polygon mesh modification 238 . The detailed steps of mesh modification 238 are shown in the detailed flowchart of FIG. 8 . Mesh modification 238 produces a set of sub-meshes 240 ( FIG. 8 ) at the determined 232 required LOD. For smooth rendering, sub-meshes 240 must be joined 242 . The details of a method for joining 242 sub-meshes 240 are shown in FIG. 10 and explained hereinbelow. FIG. 8 is a detailed flow chart of a method for progressively modifying 238 a location in polygon mesh 204 b . Based on maximum error zones 236 and base zones 206 b (which are divided according to the variance of height) sub-mesh boundaries are defined 244 . The step of determining sub-mesh boundaries is of great importance because modifying the entire polygon mesh 204 b on line would be too slow for real time rendering and flight simulation. Therefore, sub-meshes 240 are determined and changes in LOD are carried out on line only a sub-mesh of sub-meshes 240 . At times portions of the terrain will come into view or go out of view (for instance when a low flying aircraft passes a ridge). Included in redefinition of sub-mesh boundaries is the removal of invisible sub-meshes from active memory. A sub-mesh 240 a ( FIG. 11 c ) is removed only when sub-mesh 240 a has been inactive for 100 time steps and when all sub-meshes 240 b sharing a boundary with sub-mesh 240 a are also invisible. When invisible sub-mesh 240 a shares a boundary with visible sub-mesh 240 b , sub-mesh 204 a is stored in active memory for quick rendering in case sub-mesh 240 a returns to active view. In each error zone 236 there is a defined maximum error. The variance of height at each data point in the optimal unstructured map can be determined by kridging. If there are points in optimal unstructured map 212 b where the standard deviation of the height is greater than the maximum permissible error 246 , new points 248 are generated by conditional simulation 222 . Points 248 are added to optimal unstructured map 212 b . Whenever a point 248 is added to optimum map 212 b an error between point 248 and a corresponding polygon face in polygon mesh 204 b is computed and stored. When the optimal unstructured map 212 b is sufficient, heights are assigned to new vertices of polygon sub-meshes 240 by kridging and new polygons are created in sub-meshes 240 as needed. If 254 the maximum error in a sub-mesh from sub-meshes 240 is greater than the permissible error 234 , then new vertices are added 256 to the sub-mesh where the error is beyond the permissible limit 234 and the process returns to testing whether the new sub-mesh is adequate. Adding 256 new vertices to a sub-mesh is illustrated in FIGS. 9 a , and 9 b . Joining 242 sub-meshes is illustrated in detail in the flowchart of FIG. 10 and in the illustrations of FIGS. 11 a , 11 b , 11 c , 11 d , 12 a , 12 b , 13 , 14 a , and 14 b. When a polygon sub-mesh 240 c ( FIG. 12 a ) exceeds the LOD requirements then vertices of sub-mesh 204 c are removed and polygons reduced ( FIG. 13 ). Specifically, if in a particular sub-mesh 240 c , the error at 90% of points used for error testing have an error of less than 50% of the permissible error tolerance, then the particular sub-mesh 240 c is simplified. In simplification, a vertex is removed from a sub-mesh. When a vertex is removed then polygons containing the vertex are reduced and new faces are based on the remaining vertices. Specifically, quadrilaterals 310 f - i of FIG. 12 are reduced to quadrilateral 310 fghi in FIG. 13 . Reduction of polygons is not carried out where reduction will produce illegal structures (for example the illegal quadtree structure shown in FIG. 14 as explained hereinbelow). If 254 the maximum error in all sub-meshes 240 is less than the permissible maximum error 234 and in no sub-mesh 240 is the error of 90% of the polygons less than 50% of the maximum error, then sub-meshes 240 are joined 242 to produce polygon mesh 204 b for rendering 228 . FIGS. 9 a - b illustrate a method of adding a new vertex 253 to a triangulated mesh using a modified butterfly interpolation algorithm to assign height to new vertex 253 based on old vertices a 1 , a 2 , b 1 , b 2 , c 1 , c 2 , C 3 , and C 4 . FIG. 9 a illustrates a rectangle &lcub;c 1 , c 2 , c 3 , c 4 &rcub; 250 triangulated according to the Rottger-Hiedrich algorithm. The coordinates of each vertex a 1 , a 2 , b 1 , b 2 , c 1 , c 2 , c 3 , and c 4 are defined by an ordered triplet (x, y, h) (0.5, 0.5, 1.2), (0.5, 1.5, 1.6), (1, 1, 2.1), (1, 0, 1.5), (0, 1, 1.3), (2, 1, 1.6) and (0, 0, 2) respectively. Any point inside rectangle 250 is found on the face of a triangle. The height of every point on each face is defined by three vertices surrounding the point. Specifically, point 252 is surrounded by vertices a 1 , a 2 , and b 2 and point 252 is located at (x, y)&equals;(1.1, 0.25) therefore the height of point 252 is 1.49. To increase detail in a triangulated region, a vertex is added at the center of a side of any existing triangle. Specifically in FIG. 9 b in order to increase detail in the middle of rectangle 250 , a vertex 253 is added at the center of side 254 (line segment &lcub;a 1 , a 2 &rcub;). The height of vertex 253 is assigned by interpolation according to the formula for the new point is h&equals;(a 1 &plus;a 2 )/4&plus;({fraction (1/8)}&plus;w)(b 1 &plus;b 2 )&plus;(c 1 &plus;c 2 &plus;c 3 &plus;c 4 )({fraction (1/16)}−{fraction (w/2)}) where w is an arbitrary weighing constant (whose value will usually be {fraction (1/8)}>w>−{fraction (1/8)}). Specifically choosing the value of w as {fraction (1/8)}, the height of vertex 253 becomes (a 1 &plus;a 2 &plus;b 1 &plus;b 2 )/4&equals;1.575. After adding vertex 253 , point 252 is surrounded by vertices a 1 , b 2 , and 253 . Therefore the height of point 252 is 1.54. FIG. 10 is a flow chart illustrating a method of joining two sub-meshes 240 a and 240 b (sub-mesh 240 a and sub-mesh 240 b are shown separately in FIG. 11 a and sub-mesh 240 a and sub-mesh 240 b are shown in their true joined position in FIG. 11 b ). Sub-mesh 240 a shares a boundary with sub-mesh 240 b where triangles 300 k and 300 l meet triangle 300 h . On the shared boundary there is an extra vertex 260 in sub-mesh 240 a for which there is no corresponding vertex in sub-mesh 240 b , when the mesh is rendered, at the location of the extra vertex, a crack will form (see illustration of cracks 350 a , 350 b , and 350 c FIG. 15 b ). The crack is removed 262 by removing vertex 260 ( FIGS. 11 a , 11 b ). Removing 262 vertex 260 requires reduction 263 of triangles 300 k and 300 l ( FIG. 11 b ) producing triangle 300 kl ( FIG. 11 c ). After reduction 263 , sub-meshes 240 a and 240 b have no un-matched vertices ( FIG. 11 c ). Combined sub-meshes 240 a and 240 b without cracks are ready for rendering 228 . FIG. 11 a illustrates triangulation of rectangular sub-meshes 240 a and 240 b by adding a fan of triangles 300 a - 300 l around a central vertex. FIG. 11 b illustrates the juxtaposition of sub-meshes 240 a and 240 b . Vertex 260 of sub-mesh 240 a does not correspond to a vertex in sub-mesh 240 a . Therefore, a crack (similar to cracks 350 a - 350 c in FIG. 15 b ) will form. Sub-mesh 240 a is joined to sub-mesh 240 b without cracks by stitching. Specifically, FIG. 11 c illustrates stitching by vertex omission, vertex 260 is removed from sub-mesh 240 a and triangles 300 k and 300 l (of FIG. 11 b ) are reduced to form triangle 300 kl. An alternative means of joining sub-mesh 240 a to sub-mesh 240 b is illustrated in FIG. 11 d . Vertex 260 is added to sub-mesh 240 b by splitting triangle 300 h (of FIG. 11 b ) of sub-mesh 240 b into triangles 300 h 1 and 300 h 2 . FIG. 12 a illustrates a quadtree structure used for Rottger-Hiedrich triangulation. In a quadtree triangulation sub-mesh 240 c is filled with quadrilaterals 310 a - 310 p (as shown in FIG. 12 a ). Each Quadrilateral 310 a - 310 p is filled with triangles surrounding a central vertex as illustrated in FIG. 11 a . Finally, by vertex omission, as illustrated in FIG. 11 c , cracks are removed from sub-mesh 240 c as illustrated in FIG. 12 b. When joining quadtree sub-meshes by omitting vertices of triangles, it is not permissible to juxtapose two quadrilaterals differing in depth by a factor greater than two. An illegal quadtree structure is illustrated in FIG. 14 . Quadrilateral 310 d (of FIG. 12 a ) has been subdivided into four quadrilaterals 310 d 1 - 310 d 4 . The quadrilateral 310 a differs in subdivision depth by a factor of two in comparison to quadrilaterals 310 d 1 and 310 d 2 . Therefore the juxtaposition is not permissible. Particularly, quadrilateral vertex 315 has no corresponding triangle vertex in quadrilateral 310 a . Therefore quadrilaterals 310 d 1 and 310 d 2 cannot be joined to quadrilateral 310 a. FIG. 15 a shows a 3D wire-frame illustration of a permissible Rottger-Hiedrich quadtree mesh 340 a. FIG. 15 b show a 3D wire frame illustration of an impermissible Rottger-Hiedrich mesh 340 b . Mesh 340 b contains cracks 350 a , 350 b , and 350 c. FIG. 16 illustrates a system for progressive meshing according to the present invention. Geographical data is manufactured from an aerial photograph on input interface 12 g , for example a scanner, which digitizes the photograph data. The digitized data is input into computer 490 and stored in database 16 e which exists on an internal hard drive of computer 490 . Processor 15 e (the CPU of computer 490 ) generates from the digitized data an optimal unstructured map and constructs from the digitized data a base polygon mesh. Processor 15 e stores the optimal unstructured map and the base polygon mesh in database 16 e . When simulation starts, processor 490 outputs the polygon mesh to output interface 17 f (a flight simulator) to be projected onto simulator screen 18 b. Although the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, it is intended to embrace all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims. All publications, patents and patent applications mentioned in this specification are herein incorporated in their entirety by reference into the specification, to the same extent as if each individual publication, patent or patent application was specifically and individually indicated to be incorporated herein by reference. In addition, citation or identification of any reference in this application shall not be construed as an admission that such reference is available as prior art to the present invention.