Abstract:
Systems and methods for automated pattern recognition and object detection. The method can be rapidly developed and improved using a minimal number of algorithms for the data content to fully discriminate details in the data, while reducing the need for human analysis. The system includes a data analysis system that recognizes patterns and detects objects in data without requiring adaptation of the system to a particular application, environment, or data content. The system evaluates the data in its native form independent of the form of presentation or the form of the post-processed data.

Description:
PRIORITY CLAIM 
       [0001]    This application is a continuation-in-part of U.S. patent application Ser. No. 12/567,096 as filed on Aug. 25, 2009, and U.S. patent application Ser. No. 11/689,361 as filed on Mar. 21, 2007, both of which claim priority to U.S. Provisional Patent Application 60/743,711 as filed on Mar. 23, 2006. These patent applications are incorporated herein by reference. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The present invention, in various embodiments, relates generally to the field of data analysis and more particularly to pattern and object recognition within multispectral and hyperspectral digital data sets. 
       BACKGROUND OF THE INVENTION 
       [0003]    With the increasing use of computers and computerized technology, the amount of information represented digitally has become enormous. Analysis of these vast quantities of digital data generally involves the recognition of known patterns. 
         [0004]    Traditionally, information originating in a digital format is ultimately analyzed through manual review by a person who often requires substantial training. In order for people to efficiently interact with volumes of digital data, the information must typically be converted into a visual, audible, or other human-perceivable representation. However, during the process of translating digital data from its raw form into a convenient output format, some information may be lost or misinterpreted. Moreover, the data is often processed and/or filtered for presentation prior to analysis thereby resulting in the loss of significant information from the original data. While humans can be trained to analyze many different types of data, manual human analysis is generally more expensive with regard to time and accuracy than automated systems. Additionally, errors are often introduced due to the inherent limitations of human perception and attention span. Frequently, the data contains more detail than human senses can discern, and it is documented that human repetition begets errors. 
         [0005]    To address the innate shortcomings of human analysis, many automated data analysis and pattern recognition systems have been developed and subsequently improved upon. However, most of these solutions are highly data-specific and/or processing intensive. The data inputs that a pattern recognition system can handle are often fixed and limited by design such that applicability is restricted to a specific data modality; otherwise stated, the system by which the data is evaluated is tightly coupled to the specific data source it is designed to evaluate. Hence, improvements across a broad range of systems are very difficult. 
         [0006]    Furthermore, within many systems, pattern and feature recognition is processing-intensive. For example, image analysis commonly uses complex algorithms to find geometric shapes, edges, etc., for the purpose of characterizing or classifying features of interest; this requires multitudes of algorithms to be processed. The time to discover, develop, and implement each algorithm causes an incremental delay in deploying or improving the system. 
         [0007]    Thus, there still remains substantial room for improvement in the arena of automated data analysis and pattern recognition systems. 
       SUMMARY OF THE INVENTION 
       [0008]    In a preferred embodiment of the present invention, the data analysis and feature recognition system as described herein provides an automated pattern recognition and object detection system that can be rapidly developed and improved upon using a relatively minimal number of simple evaluation algorithms that function to capture primary or more fundamental relationships between data elements in order to fully discriminate features and objects within the data allthewhile reducing the need for human analysis. Advantageously, this limited set of algorithms can be implemented quickly in a specific data modality or across multiple modalities. Hence, the system as described herein is designed so as not to be limited by a specific data modality, submodality, etc., or by the incomplete knowledge of its developers. 
         [0009]    In one aspect of the present invention, the system recognizes patterns and detects objects within data without requiring adaptation of said system to a particular application, environment, or data content. The system evaluates the data in its native form independent of the form of presentation or the form of the post-processed data. 
         [0010]    In one aspect of the present invention, the system analyzes data from any and all multispectral and hyperspectral data modalities within all data types. Example data modalities include multi-band imagery, acoustics, and as yet undiscovered modalities. Within multispectral and hyperspectral imagery, there exists still and moving images with applications in the fields of medicine, homeland security, natural resources, geology, agriculture, food sciences, meteorology, space, military, digital rights management, and others. Within acoustic, there exists single and multi-channel audio sound, ultrasound-continuous stream, seismic, and SONAR with applications in the fields of medicine, homeland security, military, natural resources, geology, space, digital rights management, and others. Examples of other digital data streams include radar, scent, tactile, financial market and statistical data, mechanical pressure, environmental data, taste, harmonics, chemical analysis, electrical impulses, text, and others. Some data modalities are combinations of other modalities, such as video with sound or multiple forms of a single modality such as where multiple images of different types are taken of the same sample, for example correlated MRI and CT imaging or combined SAR, photograph, and IR imagery. Improvements made in the common system benefit all modalities. 
         [0011]    In still other aspects of the present invention, the system provides an automated functionality that operates on the full resolution of the native data. The results are produced in a timely manner thereby alleviating the tedium of preliminary human analysis. Moreover, in one embodiment the system can be programmed to automatically alert the operator or user to examine a data set(s) requiring closer attention. 
         [0012]    In additional aspects of the present invention, the method includes receiving a first multispectral or hyperspectral data set; selecting and analyzing individual bands of the data set(s) using a series of evaluation algorithms; generating an algorithm value cache of the results set of the first algorithmic training of the first data set; receiving a second multispectral or hyperspectral data set containing data bands of the same type as the first; processing the second data set using the same series of evaluation algorithms as is used to evaluate the first data set; generating a second algorithm value cache of the results set of the algorithmic processing on the second data set; comparing the algorithm value cache from the training results of the first data set with the algorithm value cache from the processing results of the second data set; and performing a processing action based upon the generated match result. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]    The preferred and alternative embodiments of the present invention are described in detail herein with reference to the following drawings. 
           [0014]      FIG. 1  shows an overview of one embodiment of an example data analysis and feature recognition system; 
           [0015]      FIG. 2  shows one embodiment of an example system for executing data analysis and feature recognition; 
           [0016]      FIG. 3  shows an example method for using a data analysis and feature recognition system; 
           [0017]      FIG. 4  shows an example method for creating a datastore; 
           [0018]      FIG. 5  shows an example method for creating a known feature; 
           [0019]      FIG. 6  shows an example method for modifying a synaptic web by training or untraining a known feature; 
           [0020]      FIG. 7  shows an example method for generating an algorithm value cache; 
           [0021]      FIG. 8  shows an example method for training a known feature; 
           [0022]      FIG. 9  shows an example method for creating a collection of synaptic training paths from positive and negative training value sets; 
           [0023]      FIG. 10  shows an example method for removing negative training value sets from the collection of training paths; 
           [0024]      FIG. 11  shows an example method for creating and following a synaptic path from a training synaptic path array; 
           [0025]      FIG. 12  shows an example method for associating a synaptic path with a known feature; 
           [0026]      FIG. 13  shows an example method for untraining a known feature; 
           [0027]      FIG. 14  shows an example method for using a set of algorithm values to retrieve a synaptic leaf in the synaptic web; 
           [0028]      FIG. 15  shows an example method for dissociating a synaptic leaf from a known feature; 
           [0029]      FIG. 16  shows an example method for identifying a known feature(s); 
           [0030]      FIG. 17  shows an example method for determining if a known feature(s) is identified within the data set or selection therein; 
           [0031]      FIG. 18  shows an example method for evaluating threshold detection; 
           [0032]      FIG. 19  shows an example method for evaluating cluster detection; 
           [0033]      FIG. 20  shows an example method for evaluating threshold and cluster detection; 
           [0034]      FIG. 21  shows an example method for processing the known feature(s) identified for a given data set or selection therein; 
           [0035]      FIG. 22  shows an example method for performing the known feature action(s)-on-detection; 
           [0036]      FIG. 23  shows an example ten-data element by ten-data element data array of a grey-scale image; 
           [0037]      FIG. 24  shows the adjacent data element TDA; 
           [0038]      FIG. 25  shows an example ten-data element by ten-data element data array containing the resultant algorithm values after evaluation of the original data array of  FIG. 23  with the mean algorithm using the adjacent data element TDA; 
           [0039]      FIG. 26  shows an example ten-data element by ten-data element data array containing the resultant algorithm values after evaluation of the original data array of  FIG. 23  with the median algorithm using the adjacent data element TDA; 
           [0040]      FIG. 27  shows an example ten-data element by ten-data element data array containing the resultant algorithm values after evaluation of the original data array of  FIG. 23  with the spread of values algorithm using the adjacent data element TDA; 
           [0041]      FIG. 28  shows an example ten-data element by ten-data element data array containing the resultant algorithm values after evaluation of the original data array of  FIG. 23  with the standard deviation algorithm using the adjacent data element TDA; 
           [0042]      FIG. 29  shows an example synaptic web containing a single synaptic path built from the algorithmic evaluation of TDE (2, 2) of the  FIG. 23  data array with the mean, median, spread of values, and standard deviation algorithms using the adjacent data element TDA; 
           [0043]      FIG. 30  shows an example synaptic web containing two synaptic paths built from the algorithmic evaluation of TDE (2, 2) and TDE (3, 2) of the  FIG. 23  data array with the mean, median, spread of values, and standard deviation algorithms using the adjacent data element TDA; 
           [0044]      FIG. 31  shows an example synaptic web containing eleven synaptic paths built from the algorithm evaluation of TDEs (2, 2) through (9, 2) and TDEs (2, 3) through (4, 3) of the  FIG. 23  data array with the mean, median, spread of values, and standard deviation algorithms using the adjacent data element TDA; 
           [0045]      FIG. 32  shows an example synaptic web containing sixteen synaptic paths built from the algorithmic evaluation of TDEs (2, 2) through (9, 2) and TDEs (2, 3) through (9, 3) of the  FIG. 23  data array with the mean, median, spread of values, and standard deviation algorithms using the adjacent data element TDA; 
           [0046]      FIG. 33  shows an example synaptic web containing one synaptic path that terminates in a synaptic leaf having multiple known features; 
           [0047]      FIG. 34  shows an example six-data element by six-data element data array of a grey-scale image; 
           [0048]      FIG. 35  shows an example six-data element by six-data element data array containing the resultant algorithm values after evaluation of the original data array of  FIG. 34  with the mean algorithm using the adjacent data element TDA; 
           [0049]      FIG. 36  shows an example six-data element by six-data element data array containing the resultant algorithm values after evaluation of the original data array of  FIG. 34  with the median algorithm using the adjacent data element TDA; 
           [0050]      FIG. 37  shows an example six-data element by six-data element data array containing the resultant algorithm values after evaluation of the original data array of  FIG. 34  with the spread of values algorithm using the adjacent data element TDA; 
           [0051]      FIG. 38  shows an example six-data element by six-data element data array containing the resultant algorithm values after evaluation of the original data array of  FIG. 34  with the standard deviation algorithm using the adjacent data element TDA; 
           [0052]      FIG. 39  shows an example synaptic web wherein the algorithm processing results of the first valid data element of  FIG. 34  are compared to the values of the existing partial synaptic web trained from the algorithmic evaluation of the  FIG. 23  data array in an effort to identify a known feature(s) within the data array of  FIG. 34 ; 
           [0053]      FIG. 40  shows an example ten-data element by ten-data element data array selection of Band 13 as sourced from an AVIRIS hyperspectral data set; 
           [0054]      FIG. 41  shows an example ten-data element by ten-data element data array selection of Band 20 as sourced from an AVIRIS hyperspectral data set; 
           [0055]      FIG. 42  shows an example ten-data element by ten-data element data array selection of Band 173 as sourced from an AVIRIS hyperspectral data set; 
           [0056]      FIG. 43  shows an example ten-data element by ten-data element data array selection of Band 200 as sourced from an AVIRIS hyperspectral data set; 
           [0057]      FIG. 44  shows an example ten-data element by ten-data element data array selection of Band 13 containing the resultant algorithm values after evaluation of the original data array of  FIG. 40  with the mean algorithm using the adjacent data element TDA; 
           [0058]      FIG. 45  shows an example ten-data element by ten-data element data array selection of Band 13 containing the resultant algorithm values after evaluation of the original data array of  FIG. 40  with the spread of values algorithm using the adjacent data element TDA; 
           [0059]      FIG. 46  shows an example ten-data element by ten-data element data array selection of Band 20 containing the resultant algorithm values after evaluation of the original data array of  FIG. 41  with the mean algorithm using the adjacent data element TDA; 
           [0060]      FIG. 47  shows an example ten-data element by ten-data element data array selection of Band 20 containing the resultant algorithm values after evaluation of the original data array of  FIG. 41  with the spread of values algorithm using the adjacent data element TDA; 
           [0061]      FIG. 48  shows an example ten-data element by ten-data element data array selection of Band 173 containing the resultant algorithm values after evaluation of the original data array of  FIG. 42  with the value algorithm using the adjacent data element TDA; 
           [0062]      FIG. 49  shows an example ten-data element by ten-data element data array selection of Band 200 containing the resultant algorithm values after evaluation of the original data array of  FIG. 43  with the value algorithm masked with 0xFFFC using the adjacent data element TDA; 
           [0063]      FIG. 50  shows an example synaptic web containing two synaptic paths built from the algorithmic evaluation of TDE (2, 2) and TDE (3, 2) of the  FIGS. 40-43  data arrays, which represent data selections within Bands 13, 20, 173, and 200, respectively, of the AVIRIS hyperspectral data set, with the mean, spread of values, value, and value masked with 0xFFFC algorithms using the adjacent data element TDA; 
           [0064]      FIG. 51  shows an example six-data element by six-data element data array selection of Band 13 as sourced from an AVIRIS hyperspectral data set; 
           [0065]      FIG. 52  shows an example six-data element by six-data element data array selection of Band 20 as sourced from an AVIRIS hyperspectral data set; 
           [0066]      FIG. 53  shows an example six-data element by six-data element data array selection of Band 173 as sourced from an AVIRIS hyperspectral data set; 
           [0067]      FIG. 54  shows an example six-data element by six-data element data array selection of Band 200 as sourced from an AVIRIS hyperspectral data set; 
           [0068]      FIG. 55  shows an example six-data element by six-data element data array selection of Band 13 containing the resultant algorithm values after evaluation of the original data array of  FIG. 51  with the mean algorithm using the adjacent data element TDA; 
           [0069]      FIG. 56  shows an example six-data element by six-data element data array selection of Band 13 containing the resultant algorithm values after evaluation of the original data array of  FIG. 51  with the spread of values algorithm using the adjacent data element TDA; 
           [0070]      FIG. 57  shows an example six-data element by six-data element data array selection of Band 20 containing the resultant algorithm values after evaluation of the original data array of  FIG. 52  with the mean algorithm using the adjacent data element TDA; 
           [0071]      FIG. 58  shows an example six-data element by six-data element data array selection of Band 20 containing the resultant algorithm values after evaluation of the original data array of  FIG. 52  with the spread of values algorithm using the adjacent data element TDA; 
           [0072]      FIG. 59  shows an example six-data element by six-data element data array selection of Band 173 containing the resultant algorithm values after evaluation of the original data array of  FIG. 53  with the value algorithm using the adjacent data element TDA; 
           [0073]      FIG. 60  shows an example six-data element by six-data element data array selection of Band 200 containing the resultant algorithm values after evaluation of the original data array of  FIG. 54  with the value algorithm masked with 0xFFFC using the adjacent data element TDA; 
           [0074]      FIG. 61  shows an example synaptic web wherein the algorithm processing results of the first valid data element (2, 2) of  FIGS. 51-54  are compared to the values of the existing partial synaptic web trained from the algorithmic evaluation of the  FIGS. 40-43  data arrays in an effort to identify a known feature(s) within the data arrays of  FIGS. 51-54 ; 
           [0075]      FIG. 62  shows a screenshot of the “Start” tab or introduction screen of the “New SyntelliBase Wizard”; 
           [0076]      FIG. 63  shows a screenshot of the “Required” tab of the “New SyntelliBase Wizard”; 
           [0077]      FIG. 64  shows a screenshot of the expanded “Submodality” combination box of the “Required” tab of the “New SyntelliBase Wizard”; 
           [0078]      FIG. 65  shows a screenshot of the “Optional” tab of the “New SyntelliBase Wizard”; 
           [0079]      FIG. 66  shows a screenshot of the “Target Data Shape” tab of the “New SyntelliBase Wizard”; 
           [0080]      FIG. 67  shows a screenshot of the “Summary” tab of the “New SyntelliBase Wizard”; 
           [0081]      FIG. 68  shows a screenshot of the “Summary” tab of the “New SyntelliBase Wizard; 
           [0082]      FIG. 69  shows a screenshot of one embodiment of a user-interface for a data analysis and feature recognition system as it after datastore creation is complete; 
           [0083]      FIG. 70  shows a screenshot of one embodiment of an application to accomplish data analysis and feature recognition wherein the “Grey Adjacent Pixels” TDA is expanded to show a listing of all available evaluation algorithms; 
           [0084]      FIG. 71  shows a screenshot of the “Start” tab of the “New Known Feature Wizard”; 
           [0085]      FIG. 72  shows a screenshot of the “Identification” tab of the “New Known Feature Wizard”; 
           [0086]      FIG. 73  shows a screenshot of the “Identification” tab of the “New Known Feature Wizard” wherein the known feature “Method” of detection combination box is expanded; 
           [0087]      FIG. 74  shows a screenshot of the “Training Counts” tab of the “New Known Feature Wizard”; 
           [0088]      FIG. 75  shows a screenshot of the “Cluster Range” tab of the “New Known Feature Wizard”; 
           [0089]      FIG. 76  shows a screenshot of the “Actions” tab of the “New Known Feature Wizard”; 
           [0090]      FIG. 77  shows a screenshot of the “Summary” tab of the “New Known Feature Wizard”; 
           [0091]      FIG. 78  shows a screenshot of one embodiment of an application to accomplish data analysis and feature recognition wherein the workspace is loaded with a sample image “forest.bmp” containing a user-defined region of interest of the feature “Forest”; 
           [0092]      FIG. 79  shows a screenshot of the “Start” tab or introduction screen of the “Train Known Feature Wizard”; 
           [0093]      FIG. 80  shows a screenshot of the “Known Features” tab of the “Train Known Feature Wizard”; 
           [0094]      FIG. 81  shows a screenshot of the “Method” tab of the “Train Known Feature Wizard”; 
           [0095]      FIG. 82  shows a screenshot of the “Summary” tab of the “Train Known Feature Wizard”; 
           [0096]      FIG. 83  shows a screenshot of the “Results Summary” dialog box, which displays the results of known feature training of the feature “Forest”; 
           [0097]      FIG. 84  shows a screenshot of one embodiment of an application to accomplish data analysis and feature recognition wherein the workspace is loaded with the sample image “island.bmp” containing a user-defined region of interest of the feature “Forest”; 
           [0098]      FIG. 85  shows a screenshot of the “Results Summary” dialog box, which displays the results of known feature training of the feature “Forest”; 
           [0099]      FIG. 86  shows a screenshot of the “Start” tab or introduction screen of the “Process Known Feature Wizard”; 
           [0100]      FIG. 87  shows a screenshot of the “Known Features” tab of the “Process Known Feature Wizard” wherein the known feature “Forest” is selected for processing; 
           [0101]      FIG. 88  shows a screenshot of the “Significance” tab of the “Process Known Feature Wizard”; 
           [0102]      FIG. 89  shows a screenshot of the “Training Counts” tab of the “Process Known Feature Wizard”; 
           [0103]      FIG. 90  shows a screenshot of the “Cluster Range” tab of the “Process Known Feature Wizard”; 
           [0104]      FIG. 91  shows a screenshot of the “Summary” tab of the “Process Known Feature Wizard”; 
           [0105]      FIG. 92  shows a screenshot of the “Results Summary” dialog box displaying the results of known feature processing of the feature “Forest” within the sample image “dam.bmp”; 
           [0106]      FIG. 93  shows a screenshot of one embodiment of an application to accomplish data analysis and feature recognition wherein the workspace is loaded with the sample image “dam.bmp” and only the processed image layer “Forest,” which represents the results of known feature processing, is selected for viewing; 
           [0107]      FIG. 94  shows a screenshot of one embodiment of an application to accomplish data analysis and feature recognition wherein the workspace is loaded with the sample image “dam.bmp,” and the image layer “Composite,” which is comprised of the sample image “dam.bmp” layered with the processed image layer “Forest,” is selected for viewing; 
           [0108]      FIG. 95  shows a screenshot of the “Results Summary” dialog box displaying the results of known feature processing of the feature “Forest” within the sample image “island.bmp”; 
           [0109]      FIG. 96  shows a screenshot of one embodiment of an application to accomplish data analysis and feature recognition wherein the workspace is loaded with the sample image “island.bmp” and only the processed image layer “Forest,” which represents the results of known feature processing, is available for viewing; 
           [0110]      FIG. 97  shows a screenshot of one embodiment of an application to accomplish data analysis and feature recognition wherein the workspace is loaded with the sample image “island.bmp,” and the image layer “Composite,” which is comprised of the sample image “island.bmp” layered with the processed image layer “Forest,” is selected for viewing; 
           [0111]      FIG. 98  shows a screenshot of one embodiment of an application to accomplish data analysis and feature recognition wherein the workspace is loaded with the sample image “island.bmp” containing a user-defined region of interest of the feature “Water”; 
           [0112]      FIG. 99  shows a screenshot of the “Results Summary” dialog box, which displays the results of known feature training of the feature “Water”; 
           [0113]      FIG. 100  shows a screenshot of the “Known Features” tab of the “Process Known Feature Wizard” wherein the known features “Forest” and “Water” are selected for processing in the sample image “island.bmp”; 
           [0114]      FIG. 101  shows a screenshot of the “Summary” tab of the “Process Known Feature Wizard”; 
           [0115]      FIG. 102  shows a screenshot of the “Results Summary” dialog box displaying the results of known feature processing of features “Forest” and “Water” within the sample image “island.bmp”; 
           [0116]      FIG. 103  shows a screenshot of one embodiment of an application to accomplish data analysis and feature recognition wherein the workspace is loaded the sample image “island.bmp” and only the processed image layer “Water,” which represents the results of known feature processing, is selected for viewing; and 
           [0117]      FIG. 104  shows a screenshot of one embodiment of an application to accomplish data analysis and feature recognition wherein the workspace is loaded with the sample image “island.bmp,” and the image layer “Composite,” which is comprised of the sample image “island.bmp” layered with the processed image layers “Forest” and “Water,” is selected for viewing. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       [0118]    Although several of the following embodiments and examples of a data analysis and feature recognition system are described with reference to specific data types, such as multispectral and hyperspectral image data, the invention is not limited to analysis of these data types. The methods and systems as described herein can be used to recognize discrete features in one or a plurality of data sets or any other collection of information that can be represented in a quantifiable datastore. 
         [0119]    The embodiments of a data analysis and feature recognition system described herein generally involve the analysis and organization of digital multispectral or hyperspectral data streams for the purpose of learning and repeatedly recognizing patterns and objects within the data. In some embodiments, the data organization structure used by the system involves a web (hereafter “synaptic web”) of interconnected data fields used to describe the data elements of a defined object or feature. 
         [0120]    As used herein, the term “datastore” carries its traditional meaning and refers to any software or hardware element capable of at least temporarily storing data. In one embodiment, the datastores referred to herein contain a plurality of known features represented by a plurality of synaptic webs with each synaptic web comprised of a plurality of synaptic leaves joined by synaptic paths. 
         [0121]    As used herein, the term “target data element” (TDE) refers to a discrete portion of a larger data set in a given data stream or medium that is being evaluated for characteristics using evaluation algorithms and a given target data area. A TDE can be any size appropriate for a particular data type, modality, submodality, etc. For example, in an image data set, a TDE can consist of a single pixel. In several embodiments and regardless of size, a TDE is a “point” that is evaluated in a single discrete step before processing moves to the next valid TDE in the data set or selection therein. 
         [0122]    As used herein, the term “target data area” (TDA) refers to an ordered collection of data elements immediately surrounding a TDE. In one embodiment, the size and shape of the TDA vary depending upon the type of data or medium that is evaluated, user specifications, and/or industry- or system-acceptable standards and functions to define the member data elements available for inclusion during evaluation of a given TDE. 
         [0123]    As used herein, the term “known feature” (KF) refers to an element of data representing an entity, item, object, pattern, or other discretely definable piece of information known to be present in a particular data set during training. At the time of processing, the system searches a new data set for one or more of the previously trained known features. 
         [0124]    As used herein, the term “synaptic web,” which is also embodied herein in the form of an algorithm datastore, refers to an organizational structure for storing information about discrete features, patterns, objects, or other known data sets in an implementation such as a rooted, fixed depth tree, a binary tree, or some other acceptable user-specified, preset, or automatically determined structure. A synaptic web advantageously allows the information about the known feature(s) to be quickly added and an unknown data set to be quickly evaluated in order to identify any known features contained therein. 
         [0125]    As used herein, the term “synaptic leaf” refers to a terminal node in a synaptic web that represents a plurality of known features identified by the set of algorithm values used to reach the leaf. 
         [0126]    As used herein, the term “synaptic path” refers to an evaluation pathway built from a plurality of algorithm values resulting from the analysis of a given TDE with a set of evaluation algorithms and a TDA. The synaptic path is used to reach a synaptic leaf based upon algorithmic calculations for a TDE. 
         [0127]    As used herein, the term “training event” refers to the process of associating a plurality of algorithm values and data patterns from a given data set or selection therein to a particular known feature by establishing and/or updating synaptic paths and synaptic leaves as stored in a user-specified, preset, or automatically determined organizational storage structure, such as a synaptic web or algorithm datastore. 
         [0128]    As used herein, the term “algorithm” carries its traditional meaning and refers without limitation to any series of repeatable steps resulting in a discrete value. In one embodiment, an algorithm is any mathematical calculation. In several embodiments, various algorithms are performed on a TDE in relation to a previously defined TDA in order to produce a single, meaningful value. 
         [0129]    As used herein, the term “positive training value sets” refers to the sets of algorithm values that are located within the area of data trained as the user-defined known feature. 
         [0130]    As used herein, the term “negative training value sets” refers to the sets of algorithm values that are located outside the area of data trained as the user-defined known feature and that are typically used to identify training values unique to the positive training value sets. 
         [0131]    As used herein, the term “area training” refers to a process used during a training event whereby each set of algorithm values found in a positive training value set (i.e., all data patterns within the current selection) is used to generate synaptic paths for the known feature. 
         [0132]    As used herein, the term “area untraining” refers to a process used during an untraining event whereby each set of algorithm values found in a positive training value set (i.e., all data patterns within the current selection) is dissociated from the known feature. 
         [0133]    As used herein, the term “relative adjusted training” refers to a process used during a training event whereby each set of algorithm values found in a negative training value set nullifies one matching set of algorithm values found in the positive training value set. The remaining positive training value sets can then be used to generate synaptic paths (i.e., training entry value sets) for the known feature. 
         [0134]    As used herein, the term “absolute adjusted training” refers to a process used during a training event whereby each set of algorithm values found in a negative training value set nullifies all matching sets of algorithm values found in the positive training value set. The remaining positive training value sets can then be used to generate synaptic paths (i.e., training entry value sets) for the known feature. 
         [0135]    As used herein, the term “hit detection” refers to a method for determining whether a known feature is present in a test data set based upon matching a synaptic path encountered during processing with any path in the synaptic web that is trained for the known feature. 
         [0136]    As used herein, the term “cluster detection” refers to a method of determining whether a known feature is present in a test data set based upon both hit detection and the detection of a specified number of additional known feature hits within a pre-defined “cluster range” of the TDE. 
         [0137]    As used herein, the term “cluster range” refers to a set of data elements surrounding a given centralized data element or TDE over which a known feature is evaluated. In one embodiment, the cluster range is a number representing an actual physical distance, in the sense of radius or norm in, over which the known feature operates, while in an alternate embodiment it represents a mathematical relationship between the known feature hit locations. In either embodiment, the cluster range is dictated by the topology and dimensionality of the data set or selection therein that is being processed. 
         [0138]    As used herein, the term “threshold detection” refers to a method for determining whether a known feature is present in a test data set based upon both hit detection and the number of times the synaptic path, which is used in hit detection, is trained as the known feature. 
         [0139]    As used herein, the term “(data) modality” retains its traditional meaning and refers to one of the various different forms or formats of digital data that can be processed. For example, image data represents one modality, while sound data represents another. In addition to describing data types that conform to one or more human sensory modalities, the term is also intended to encompass data types and formats that might have little or no relation to the human senses. For example, financial data, demographic data, and literary data also represent modalities within the meaning of the term as used herein. 
         [0140]    As used herein, the term “(data) submodality” refers to a sub-classification of a data modality. In some embodiments, a submodality refers to one of the applications or sources for the data that can affect how the data is processed. For example, X-ray and satellite photography are submodalities of the imaging modality. Moreover, systems manufactured by different vendors (e.g., GENERAL ELECTRIC, SIEMENS) but used for producing X-ray images can vary enough in their data formats to require distinction into different submodalities. 
         [0141]      FIG. 1  shows one embodiment of an overview of an example data analysis and feature recognition system that is configured to accept an original source data set  80  or selection therein containing one or a plurality of known and pre-identified features  81  (e.g., a known pattern, shape, object, or entity). The system is generally configured such that the user “trains”  82  said system to recognize the known feature  81  via the execution of one or a plurality of evaluation algorithms in association with a particular TDA. These algorithms and the TDA are used in concert to assess  83  the representative data of the given data set selection  80  in order to identify unique sets of algorithm values and data patterns characterizing the feature(s)  81 . In one embodiment, once training of all known features  81  is complete, the training values defining said features are stored  84  in an organizational structure, such as a synaptic web  85 , which is comprised of a plurality of synaptic leaves interconnected by a plurality of synaptic paths, or an algorithm datastore. In one embodiment, once the system has been trained for a known feature(s)  81 , a new data set selection  86  containing an unknown set of features  87  is presented to the system for subsequent analysis  88 . The same pluralities of evaluation algorithms and the same TDA as are used during preliminary known feature training are then called to evaluate  89  the new data set selection. The resultant algorithmically determined data values and patterns are subsequently compared  90  to the previously identified and stored algorithm values and data patterns  85  for the purpose of positively identifying any previously trained known features contained therein. In one embodiment, the results of this known feature processing exercise are then stored in another organizational storage structure, such as a known feature data output overlay, which is sized and addressed in the same manner as the original data set or selection therein, for retrieval at a future time if needed. In one embodiment, once a known feature(s) is found in the new data set, the system notifies  91  the user as to the identification of said feature(s) and/or presents a representation  92  (e.g., a graphical image, an audible sound) of the known feature(s) to the user. 
         [0142]      FIG. 2  shows an example system  100  for executing data analysis and feature recognition. In one embodiment, the system  100  includes a single computer  101 . In an alternate embodiment, the system  100  includes a computer  101  in communication with a plurality of other computers  103 . In an alternate embodiment, the computer  101  is connected with a plurality of other computers  103 , a server  104 , a datastore  106 , and/or a network  108 , such as an intranet or the Internet. In yet another embodiment, a bank of servers, a wireless device, a cellular telephone, and/or another data capture/entry device(s) is used in place of the computer  101 . In one embodiment, a data storage device  106  stores a data analysis and feature recognition datastore. The datastore  106  can be stored locally at the computer  101  or at any remote location while remaining retrievable by the computer  101 . In one embodiment, an application program, which can create the datastore  106 , is run by the server  104  or by the computer  101 . In one embodiment, the computer  101  or server  104  includes an application program(s) that trains a known feature and/or identifies a previously defined known feature in digital data media. In one embodiment, the medium is one or a plurality of image pixels or at least one sound recording sample. 
         [0143]      FIG. 3  shows a method formed in accordance with an embodiment of the present invention. The method initializes at block  200 , and at block  202  a datastore is created. This is described in more detail with reference to  FIGS. 4-5 . At block  204 , a known feature is trained or untrained into the datastore. This is described in more detail with reference to  FIGS. 6-15 . At block  206 , the known feature is identified. This is described in more detail with reference to  FIGS. 16-20 . At block  208 , an associated known feature action(s)-on-detection is performed. This is described in more detail with reference to  FIGS. 21-22 . At block  210 , the method for creation and processing of a known feature(s) is complete. 
         [0144]      FIG. 4  shows an example method  202  for creating a datastore. The method  202  initializes at block  212 , and at block  214  a plurality of datastore properties are assigned. In one embodiment, the datastore properties include declaration of the data modality and/or submodality. In one embodiment, at block  216  a known feature(s) is created. This is described in more detail with reference to  FIG. 5 . In one embodiment, at block  218  a TDA shape is assigned. The TDA used during data analysis and feature recognition can exist in any applicable geometric configuration, shape, or pattern, can contain any number of applicable dimensions, and can consist of any number of data elements. One example of a TDA to be used in association with the multispectral or hyperspectral imaging modality is a pattern of near and far neighboring pixels surrounding a single, centralized TDE. In another example, the TDA exists in a starburst-like pattern of eight, three-pixel radials surrounding a TDE (hereafter “starburst 8×3 TDA”). 
         [0145]    In one embodiment, at block  220  of  FIG. 4  the TDA evaluation algorithms are selected. In one embodiment, the methods and systems for data analysis and feature recognition as disclosed herein draw from a plurality of acceptable user-specified, preset, or automatically determined evaluation algorithms in order to characterize the original data set or selection therein. In an alternate embodiment, the TDA evaluation algorithms to be used are determined based upon the TDA selected for use. In another embodiment, an automated process is used to decipher the “best available” TDA and/or evaluation algorithm(s) for use in the analysis of the original data set or selection therein. Here, the “best available” TDA and/or evaluation algorithm(s) possess any of the following characteristics, which are important or relevant to evaluation of the subject data set or selection therein, including inter alia increased efficiency, productivity, and/or specificity and reduced cost with regard to time and/or processing requirements. In yet another embodiment, the evaluation algorithm(s) are masked, divided, etc., so as to decrease the specificity of the resultant algorithm values and patterns. 
         [0146]    At block  222  of  FIG. 4 , the datastore  106  is saved to the computer  101  or the network  108 , and the method  202  is complete. Blocks  214 ,  216 , and the combination of blocks  218  and  220  can be executed in any order. 
         [0147]      FIG. 5  shows an example method  216  for creating a known feature. The method  216  initializes at block  224 , and at block  226  a name for the known feature is entered into the system by the user. In one embodiment, at block  228  the known feature method of detection attribute is assigned. In one embodiment, the method of detection is selected as hit detection, while in alternate embodiments cluster detection, threshold detection, or cluster and threshold detection are selected. In one embodiment, at block  230  of  FIG. 4  the known feature processing action-on-detection is assigned In one embodiment, this processing action is the method of notification used to alert the user when a known feature is positively identified for a given data element within the subject data set or selection therein. In one embodiment, the user chooses to execute no processing action; to play a user-specified, preset, or automatically determined sound; to paint pluralities of activated data elements a user-specified, preset, or automatically determined color; or to execute another acceptable user-specified, preset, or automatically determined action. At block  232 , the method  216  is complete. Blocks  226 ,  228 , and  230  can be executed in any order. 
         [0148]      FIG. 6  shows an example method  204  for modifying a synaptic web by training or untraining a known feature. In one embodiment, the method  204  initializes at block  234 , and at block  236  an algorithm value cache is generated. This is described in more detail with reference to  FIG. 7 . At block  238 , a region of interest (hereafter “ROI”), which is an area of data within the original data set or selection therein that is known to contain the feature to be trained or untrained, is defined by the user. At block  240 , the positive training value sets are retrieved. In one embodiment, at block  242  a decision is made as to whether the user is performing adjusted training of the feature. In some circumstances, limitations in the ability of the user to finely tune a region of interest can cause some of the positive training value sets to actually contain portions of the data that the user knows should not be trained as the current known feature. Such occurrences are handled by adjusted training, which can be selected by the user as the method for training. In a given multispectral or hyperspectral image, this area outside the region of interest is often the background or noise area that the user does not wish to train as the known feature. By identifying these negative training value sets, those sets of algorithm values that are not associated with the current known feature but exist within the region of interest can be removed. If YES at block  242 , at block  244  the negative training value sets are retrieved, and the method  204  proceeds to block  246 . If NO at block  242 , the method  204  proceeds to block  246 . 
         [0149]    In one embodiment, at block  246  of  FIG. 6  a decision is made as to whether the user is training a known feature. If YES at block  246 , at block  248  the known feature is trained. This is described in more detail with reference to  FIGS. 8-12 . In one embodiment, at block  250  the number of unique synaptic paths (i.e., algorithm values and data patterns) added to and/or updated in the synaptic web is reported, and the method  204  is complete. 
         [0150]    If NO at block  246  of  FIG. 6 , at block  252  a known feature is untrained. This is described in more detail with reference to  FIGS. 13-15 . In one embodiment, at block  254  the number of unique synaptic paths removed from the synaptic web is reported, and the method  204  is complete. Blocks  236  and  238  can be executed in any order. Block  240  and the combination of blocks  242  and  244  can be executed in any order. 
         [0151]      FIG. 7  shows an example method  236  for generating and populating an algorithm value cache. In one embodiment, an algorithm value cache, which is sized and addressed in the same manner as the original data set or selection therein, consists of a data array to store the numerical results of the evaluation algorithm training or analysis processes. The method  236  initializes at block  256 , and at block  258  an algorithm value cache is initialized. At block  260 , the first TDE in the current data set or selection therein is retrieved. At block  262 , the algorithm values are calculated on the TDA for the TDE. At block  264 , the resultant algorithm values are stored in the algorithm value cache at the location specified by the subject TDE. At block  266 , a decision is made as to whether there are more TDEs to analyze in the current data set or selection therein. If YES at block  266 , at block  268  the next TDE in the data set or selection therein is retrieved, and the method  236  returns to block  262 . If NO at block  266 , the completed algorithm cache is returned, and the method  236  is complete. 
         [0152]      FIG. 8  shows an example method  248  for training a known feature. The method  248  initializes at block  272 , and at block  274  a known feature to be trained is accepted from the user. At block  276 , the training synaptic path array is developed from the positive and negative training value sets, which are determined at  FIG. 6 . This is described in more detail with reference to  FIGS. 9-10 . At block  278 , a new synaptic path is created and followed. This is described in more detail with reference to  FIG. 11 . At block  280 , the synaptic path is associated with a known feature. This is described in more detail with reference to  FIG. 12 . At block  282 , a decision is made as to whether there are more entries remaining in the training synaptic path array. If YES at block  282 , the method  248  returns to block  278 . If NO at block  282 , at block  284  the training counts are updated. In one embodiment, this is accomplished by sorting the added or changed synaptic leaves. At block  286 , the method  248  is complete. Blocks  274  and  276  can be executed in any order. Blocks  282  and  284  can be executed in any order. 
         [0153]      FIG. 9  shows an example method  276  for developing a training synaptic path array from positive and negative training value sets, which are determined at  FIG. 6 . The method  276  initializes at block  288 , and at block  290  a training type and the positive and negative training value sets are retrieved. In one embodiment, the known feature training types include: area training, which functions to associate all data patterns within the current data set or selection therein to a given known feature; area untraining, which functions to dissociate all data patterns within the current data set or selection therein from a given known feature; absolute adjusted training, which takes any occurrence of a data pattern for a given known feature that is found outside the current data set or selection therein and removes all occurrences of the same data pattern that are found inside the current data set or selection therein; and relative adjusted training, which takes each occurrence of a data pattern for a given known feature that is found outside the current data set or selection therein and nullifies only one occurrence of the same data pattern that is found inside the current data set or selection therein. In the preferred embodiment, the user selects the method of training that is optimal for the specific data type, modality, submodality, etc., and sample quality. 
         [0154]    At block  292  of  FIG. 9 , the positive training value sets are assigned to the training synaptic path array. At block  294 , a decision is made as to whether the user is performing adjusted training. If YES at block  294 , at block  296  all the negative training value sets are removed from the training synaptic path array. This is described in more detail with reference to  FIG. 10 . The method  276  then proceeds to block  298 . If NO at block  294 , at block  298  the method  276  for developing the training synaptic path array is complete. 
         [0155]      FIG. 10  shows an example method  296  for removing the negative training value sets from the training synaptic path array; otherwise stated,  FIG. 10  shows an example method  296  for performing adjusted training. In one embodiment, relative or absolute adjusted training, as described previously at  FIG. 9 , are available for use. The method  296  initializes at block  300 , and at block  302  a synaptic path in a set of negative training value sets is selected. At block  304 , a decision is made as to whether the training type is set to absolute adjusted training. If YES at block  304 , at block  306  all training synaptic paths matching the current training synaptic path are removed from the training synaptic path array, and the method  296  proceeds to block  310 . If NO at block  304 , at block  308 , one training synaptic path matching the current training synaptic path is removed from the training synaptic path array, and the method  296  proceeds to block  310 . 
         [0156]    At block  310  of  FIG. 10 , a decision is made as to whether there are more training synaptic paths remaining in the set of negative training values. If YES at block  310 , at block  312 , the next training synaptic path in the set of negative training values is selected, and the method  296  returns to block  304 . If NO at block  310 , at block  314  the method  296  is complete. 
         [0157]      FIG. 11  shows an example method  278  for creating and following a synaptic path from a training synaptic path array. The method  278  initializes at block  316 , and at block  318  the current node (hereafter “Current_Node”) is set to a root node of the synaptic web. At block  320 , an algorithm value (hereafter “Current_Alg_Val”) in a synaptic path is selected. At block  322 , a decision is made as to whether the Current_Node has a next node (hereafter “Next_Node”) link for the Current_Alg_Val. If YES at block  322 , the method  278  proceeds to block  326 . If NO at block  322 , at block  324  a new node (hereafter “New_Node”) is created, and the Current_Node is linked to the New_Node via the Current_Alg_Val. The method  278  then proceeds to block  326 . 
         [0158]    At block  326  of  FIG. 11 , the Current_Node is set to the Next_Node. At block  328 , a decision is made as to whether there are more algorithm values remaining in the synaptic path. If YES at block  328 , the method  278  returns to block  320 . If NO at block  328 , at block  330  the resulting synaptic leaf (hereafter “Returned_Leaf”) is returned from the end of the synaptic path, and the method  278  is complete. 
         [0159]      FIG. 12  shows an example method  280  for associating the synaptic path with a known feature. The method  280  initializes at block  332 , and at block  334  a current synaptic leaf (hereafter “Current_Leaf”) is set to the Returned_Leaf (from block  330  of  FIG. 11 ). At block  336 , a decision is made as to whether the Current_Leaf contains the index value of the trained known feature. If YES at block  336 , at block  338  the hit count of the Current_Leaf is updated, and the method  280  proceeds to block  346 . If NO at block  336 , at block  340  a decision is made as to whether the Current_Leaf has a valid next synaptic leaf (hereafter “Next_Leaf”). If YES at block  340 , at block  342  the Next_Leaf is set to the Current_Leaf, and the method  280  returns to block  336 . If NO at block  340 , at block  344  a new synaptic leaf (hereafter “New_Leaf”), which contains the index value of the trained known feature, is created and linked to the Current_Leaf. At block  346 , the method  280  is complete. 
         [0160]      FIG. 13  shows an example method  252  for untraining a known feature. The method  252  initializes at block  348 , and at block  350  a known feature to be untrained and a plurality of positive training value sets, which are determined at  FIG. 6 , are retrieved. At block  352 , a set of positive training values is selected. At block  354 , the synaptic path for the set of positive training values is followed. This is described in more detail with reference to  FIG. 14 . At block  356 , a decision is made as to whether the synaptic path exists within the training synaptic path array. If YES at block  356 , at block  358  the synaptic path is dissociated from the known feature. This is described in more detail with reference to  FIG. 15 . The method  252  then proceeds to block  360 . If NO at block  356 , at block  360  a decision is made as to whether there are more positive training value sets remaining in the plurality of positive training value sets retrieved at block  350 . If YES at block  360 , the method  252  returns to block  352 . If NO at block  360 , at block  362  the method  252  is complete. 
         [0161]      FIG. 14  shows an example method  354  for following a synaptic path for a set of positive training values in order to identify a synaptic leaf based upon a set of algorithm values. The method  354  initializes at block  364 , and at block  366  the Current_Node is set to a root node of the synaptic web. At block  368 , the Current_Alg_Val for the Current_Node of the synaptic path is selected. At block  370 , a decision is made as to whether the Current_Node has a Next_Node link for the Current_Alg_Val. If YES at block  370 , at block  372  the Next_Node is set to the Current_Node, and the method  354  proceeds to block  376 . If NO at block  370 , at block  374  the synaptic path does not exist, and the method  354  is complete. 
         [0162]    At block  376  of  FIG. 14 , a decision is made as to whether there are more algorithm values remaining in the synaptic path. If YES at block  376 , the method  354  returns to block  368 . If NO at block  376 , at block  378  the resulting synaptic leaf (hereafter “Returned_Leaf”) is returned at the end of the synaptic path, and the method  354  is complete. 
         [0163]      FIG. 15  shows an example method  358  for dissociating a synaptic leaf from a known feature. The method  358  initializes at block  380 , and at block  382  the Current_Leaf is set to the Returned_Leaf (from block  378  of  FIG. 14 ). At block  384 , a decision is made as to whether the Current_Leaf contains the index value of the trained known feature. If YES at block  384 , at block  386  the Current_Leaf is removed from the synaptic path, and the method  358  proceeds to block  392 . If NO at block  384 , at block  388  a decision is made as to whether the Current_Leaf has a valid Next_Leaf. If YES at block  388 , at block  390  the Next_Leaf is set to the Current_Leaf, and the method  358  returns to block  384 . If NO at block  388 , at block  392  the method  358  is complete. 
         [0164]      FIG. 16  shows an example method  206  for identifying a known feature in a given data set or selection therein. In one embodiment, the method  206  initializes at block  394 , and at block  396  an algorithm value cache is generated. This is described in more detail with reference to  FIG. 7 . At block  398 , a region of interest within the data set or selection therein is defined by the user. At block  400 , the first TDE in the data set or selection therein is selected. At block  402 , a decision is made as to whether the TDE is located within the selected region of interest. If YES at block  402 , the method  206  proceeds to block  404 . If NO at block  402 , the method  206  proceeds to block  416 . 
         [0165]    At block  404  of  FIG. 16 , the algorithm values for the TDE are retrieved from the algorithm value cache; if the algorithm value cache is unavailable, the algorithm values are calculated for the TDE. At block  406 , the synaptic web is queried with the algorithm values. (Reference  FIG. 14 .) At block  408 , a decision is made as to whether a synaptic path exists for the algorithm values. If YES at block  408 , at block  410  a determination is made as to whether any known features hit in the synaptic leaf. This is described in more detail with reference to  FIGS. 17-20 . The method  206  then proceeds to block  412 . If NO at block  408 , at block  412  a decision is made as to whether there are more TDEs remaining in the region of interest. If YES at block  412 , at block  414  the next TDE in the region of interest is retrieved, and the method  206  returns to block  402 . If NO at block  412 , at block  416  the known feature(s) identified within the region of interest is returned, and the method  206  is complete. Blocks  396  and  398  can be executed in any order. 
         [0166]      FIG. 17  shows an example method  410  for determining if a known feature hits for a synaptic leaf. The method  410  initializes at block  418 , and at block  420  the first known feature found for the current leaf (i.e., the current algorithm value set) is retrieved. At block  422 , a decision is made as to whether the known feature is selected by the user for identification. If YES at block  422 , the method  410  proceeds to block  424 . If NO at block  422 , the method  410  proceeds to block  442 . 
         [0167]    At block  424  of  FIG. 17 , a decision is made as to whether the method of known feature detection is set to hit detection. If YES at block  424 , at block  426  the known feature is added to the list of identified features for the current synaptic leaf, and the method  410  proceeds to block  440 . If NO at block  424 , at block  428  a decision is made as to whether the method of known feature detection is set to threshold detection. If YES at block  428 , at block  430  the known feature is checked for a threshold hit. This is described in more detail with reference to  FIG. 18 . The method  410  then proceeds to block  438 . If NO at block  428 , at block  432  a decision is made as to whether the method of known feature detection is set to cluster detection. If YES at block  432 , at block  434  the known feature is checked for a cluster hit. This is described in more detail with reference to  FIG. 19 . The method  410  then proceeds to block  438 . If NO at block  432 , at block  436  the known feature is checked for a threshold and cluster hit. This is described in more detail with reference to  FIG. 20 . The method  410  then proceeds to block  438 . 
         [0168]    At block  438  of  FIG. 17 , a decision is made as to whether the known feature is positively identified (i.e. hits) at the current data element location. If YES at block  438 , the method  410  returns to block  426 . If NO at block  438 , the method  410  proceeds to block  440 . 
         [0169]    At block  440  of  FIG. 17 , a decision is made as to whether the method of known feature detection is set to process only the most significant known feature found for the given data element. Since it is possible following known feature processing for multiple known features to be identified at any given data element location, known features can be processed in different ways. When determining whether a particular known feature positively activates for a given data element, the system can use any known feature that hits for the given data element or only the known feature trained most often (i.e., the most significant known feature) for the given data element. If YES at block  440 , the method  410  proceeds to block  446 . If NO at block  440 , the method  410  proceeds to block  442 . 
         [0170]    At block  442  of  FIG. 17 , a decision is made as to whether there are more known features associated with the current synaptic leaf. If YES at block  442 , at block  444  the next known feature found for the current synaptic leaf is retrieved, and the method  410  returns to block  422 . If NO at block  442 , at block  446  the method  410  is complete. 
         [0171]      FIG. 18  shows an example method  430  for determining whether a known feature is identified via a threshold hit. The method  430  initializes at block  448 , and at block  450  a decision is made as to whether the processing thresholds are set. The processing threshold value defines the minimum number of times a known feature must be associated with the synaptic path during training in order for said feature to be positively identified at the given data element location. The associated limit value defines the maximum number of times a known feature must be associated with the synaptic path during training in order for said feature to be positively identified at the given data element location. If YES at block  450 , the method  430  proceeds to block  452 . If NO at block  450 , the method  430  proceeds to block  454 . 
         [0172]    At block  452  of  FIG. 18 , a decision is made as to whether the known feature hit count on the synaptic leaf is between the processing minimum and maximum hit count values. If YES at block  452 , the method  430  proceeds to block  456 . If NO at block  452 , the method  430  proceeds to block  458 . 
         [0173]    At block  454  of  FIG. 18 , a decision is made as to whether the known feature hit count on the synaptic leaf is between the known feature minimum and maximum hit count values. If YES at block  454 , at block  456  a value of TRUE is returned, and the method  430  is complete. If NO at block  454 , at block  458  a value of FALSE is returned, and the method  430  is complete. 
         [0174]      FIG. 19  shows an example method  434  for determining whether a known feature is identified via a cluster hit. The method  434  initializes at block  460 , and at block  462  a decision is made as to whether the processing cluster range value is set. In one embodiment, the cluster range value defines how far, in each applicable direction and dimension (e.g., X, Y, and Z for three-dimensional imagery), from where a known feature is identified that another positive identification (i.e., “hit”) of the same known feature must also be located in order for the given known feature to be positively identified for a given data element. In one embodiment, this cluster range value, which can be user-specified, preset, or automatically determined, refers to the actual physical distance in which the known features operate; in an alternate embodiment, the value simply represents some mathematical relationship between the known features. Typically, the cluster range value of a particular known feature defaults to a value of zero to yield a cluster area containing a single data element. A cluster range value set to one results in a cluster area containing all the data elements, located in each applicable direction and dimension, within one unit of the subject data element. For linear data this includes three data elements—one before and one following the subject data element. For two-dimensional data, this includes a square of eight data elements surrounding the subject data element. For three-dimensional data, this includes a cubical cluster of 26 data elements surrounding the subject data element. 
         [0175]    If YES at block  462  of  FIG. 19 , at block  464  a cluster check based upon the processing cluster range value is performed, and the method  434  proceeds to block  468 . If NO at block  462 , at block  466  a cluster check based upon the known feature cluster range value is performed, and the method  434  proceeds to block  468 . 
         [0176]    At block  468  of  FIG. 19 , a decision is made as to whether a cluster of known features is found. If YES at block  468 , at block  470  a value of TRUE is returned, and the method  434  is complete. If NO at block  468 , at block  472  a value of FALSE is returned, and the method  434  is complete. 
         [0177]      FIG. 20  shows an example method  436  for determining whether a known feature is identified via a threshold and cluster hit. The method  436  initializes at block  474 , and at block  476  the known feature is checked for a threshold hit. This is described in more detail with reference to  FIG. 18 . At block  478 , a decision is made as to whether a threshold hit is present. If YES at block  478 , the method  436  proceeds to block  480 . If NO at block  478 , the method  436  proceeds to block  486 . 
         [0178]    At block  480  of  FIG. 20 , the known feature is checked for a cluster hit. This is described in more detail with reference to  FIG. 19 . At block  482 , a decision is made as to whether a cluster hit is present. If YES at block  482 , at block  484  a value of TRUE is returned, and the method  436  is complete. If NO at block  482 , at block  486  a value of FALSE is returned, and the method  436  is complete. The combination of blocks  476  and  478  and the combination of blocks  480  and  482  can be executed in any order. 
         [0179]      FIG. 21  shows an example method  208  for processing the known feature(s) identified for a given data set or selection therein. The method  208  initializes at block  488 , and at block  490  the first TDE within the data set or selection therein is retrieved. At block  492 , a decision is made as to whether the TDE is located within the user-specified region of interest. If YES at block  492 , the method  208  proceeds to block  494 . If NO at block  492 , the method  208  proceeds to block  502 . 
         [0180]    At block  494  of  FIG. 21 , the list of known features identified for the subject TDE is retrieved. At block  496 , the associated action(s)-on-detection for the list of features are performed. This is described in more detail with reference to  FIG. 22 . At block  498 , a decision is made as to whether there are more TDEs remaining in the region of interest. If YES at block  498 , at block  500  the next TDE within the data set or selection therein is retrieved, and the method  208  returns to block  492 . If NO at block  498 , at block  502  the method  208  is complete. 
         [0181]      FIG. 22  shows an example method  496  for performing the action(s) associated with the list of identified known features. The method  496  initializes at block  504 , and at block  506  the first known feature is retrieved from the list of known features identified for a given TDE. At block  508 , a decision is made as to whether the known feature action-on-detection is set to play a user-specified, preset, or automatically determined sound. If YES at block  508 , the method  496  proceeds to block  510 . If NO at block  508 , the method  496  proceeds to block  514 . 
         [0182]    At block  510  of  FIG. 22 , a decision is made as to whether the sound has been played by the system at least once before. If YES at block  510 , the method  496  proceeds to block  518 . If NO at block  510 , at block  512  the sound specified by the known feature action-on-detection attribute is played by the system, and the method  496  proceeds to block  518 . 
         [0183]    At block  514  of  FIG. 22 , a decision is made as to whether the known feature action-on-detection is set to paint a data element(s) a user-specified, preset, or automatically determined color. If YES at block  514 , at block  516  the data element color at the TDE location is set to the color specified by the known feature action-on-detection attribute, and the method  496  proceeds to block  518 . If NO at block  514 , the method  496  proceeds to block  518 . 
         [0184]    At block  518  of  FIG. 22 , a decision is made as to whether there are more known features in the list of identified known features for the subject TDE. If YES at block  518 , at block  520  the next known feature in the list of identified known features for a given TDE is retrieved, and the method  496  returns to block  508 . If NO at block  518 , at block  522  the method  496  for known feature action-on-detection processing is complete. Additional known feature actions or combinations of actions are possible as needed or specified by alternate embodiments of the present invention. The actions can be checked and/or executed in any order. 
         [0185]    For illustrative purposes, the use of a data analysis and feature recognition system as described herein is accomplished with reference to the following examples.  FIGS. 23-39  depict known feature training and subsequent recognition within two-dimensional data sets, while  FIGS. 40-61  depict known feature training and recognition within hyperspectral data sets. It is important to note that data analysis and feature recognition using the system of the present invention is not limited to applicability in the imagery data type alone. The methods and systems as described herein can be used to evaluate discrete features in any single or multidimensional data set or any other collection of information that can be represented in a quantifiable datastore. 
         [0186]    In each of the data arrays of the following examples, the X-location coordinate for each data element of the data array is indicated by the corresponding label in the column header, and the Y-location coordinate for each data element is indicated by the corresponding label in the row header as is common in the art. In one embodiment, the numbers shown within each data array are the grey-scale data element values of the original image selection, while in an alternate embodiment, the numbers represent some other quantifiable characteristic (i.e., location, brightness, elevation, etc.) of the data elements. The numbers shown are the data element values that are analyzed during known feature training and/or recognition. 
         [0187]      FIG. 23  shows an example data array for a two-dimensional, grey-scale, ten-data element (i.e., pixel) by ten-data element image selection of a known feature. The image selection contains a total of 100 data elements. 
         [0188]      FIG. 24  shows the adjacent data element TDA, which exists as a localized grouping of the eight adjacent data elements surrounding a single, centralized TDE. In this example, use of the adjacent data element TDA ensures that at some point during training, the data values of every data element in the original data set are considered. In an alternate embodiment, the adjacent data element TDA does not necessarily represent the preferred TDA embodiment for all data types, modalities, submodalities, etc. As shown in the data arrays of  FIGS. 23 ,  34 ,  40 - 43 , and  51 - 54 , the first and last rows and columns of data values are highlighted because the data elements contained therein do not abut the requisite data elements as required for complete analysis in accordance with the adjacent data element TDA; as such, these data elements are considered “invalid” during data analysis. This concept is further exemplified in the post-analyzed data arrays of  FIGS. 25-28 ,  35 - 38 ,  44 - 49 , and  55 - 60  wherein the data elements of the first and last rows and columns are devoid of algorithm values. 
         [0189]    In the example of  FIGS. 23-39 , the TDA evaluation algorithms used to accomplish known feature training include: the mean algorithm (hereafter “Alg1”), the median algorithm (hereafter “Alg2”), the spread of values algorithm (hereafter “Alg3”), and the standard deviation algorithm (hereafter “Alg4”). In an alternate embodiment, selection of the TDA to be used during known feature training automatically determines which evaluation algorithms are used. In another embodiment, selection of a given TDA or selection of a given evaluation algorithm determines all subsequent algorithms to be used throughout known feature training. 
         [0190]    For this example, algorithmic analysis (i.e., known feature training) of the  FIG. 23  data array begins at any valid, user-specified, preset, or automatically determined data element. In one embodiment, analysis with Alg1 using the adjacent data element TDA initializes at TDE (2, 2) and returns a value of 153, count 1. This resultant value 153 is stored in an algorithm value cache, which is sized and addressed in the same manner as the  FIG. 23  data array, at the corresponding TDE location (2, 2). 
         [0191]    In one embodiment, TDE (2, 2) of the  FIG. 23  data array is then processed with Alg2 using the adjacent data element TDA. A value of 159, count 1, is returned and is stored in the algorithm value cache at the corresponding TDE location (2, 2). 
         [0192]    In one embodiment, TDE (2, 2) of the  FIG. 23  data array is then processed with Alg3 using the adjacent data element TDA. A value of 217, count 1, is returned and is stored in the algorithm value cache at the corresponding TDE location (2, 2). 
         [0193]    In one embodiment, TDE (2, 2) of the  FIG. 23  data array is then processed with Alg4 using the adjacent data element TDA. A value of 64, count 1, is returned and is stored in the algorithm value cache at the corresponding TDE location (2, 2). 
         [0194]    In one embodiment, following the evaluation of TDE (2, 2) of the  FIG. 23  data array with Alg1, Alg2, Alg3, and Alg4 using the adjacent data element TDA, known feature training proceeds to the next valid TDE and then continues until the collection of valid TDEs in the data array is exhausted or processing is terminated. In an alternate embodiment, all valid TDEs of the  FIG. 23  data array are analyzed with a single evaluation algorithm using the adjacent data element TDA prior to initialization of analysis with any subsequent algorithms. 
         [0195]      FIG. 25  shows an example data array for the ten-data element by ten-data element image selection (as shown in the  FIG. 23  data array) after analysis with Alg1 (i.e., the mean algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant Alg1 value 153, count 1, is used further starting at  FIG. 29 . 
         [0196]      FIG. 26  shows an example data array for the ten-data element by ten-data element image selection (as shown in the  FIG. 23  data array) after analysis with Alg2 (i.e., the median algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant Alg2 value 159, count 1, is used further starting at  FIG. 29 . 
         [0197]      FIG. 27  shows an example data array for the ten-data element by ten-data element image selection (as shown in the  FIG. 23  data array) after analysis with Alg3 (i.e., the spread of values algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant Alg3 value 217, count 1, is used further starting at  FIG. 29 . 
         [0198]      FIG. 28  shows an example data array for the ten-data element by ten-data element image selection (as shown in the  FIG. 23  data array) after analysis with Alg4 (i.e., the standard deviation algorithm) using the adjacent data element TDA. The first valid data element is (2, 2) and the resultant Alg4 value 64, count 1, is used further starting at  FIG. 29 . 
         [0199]      FIG. 29  shows one embodiment of an example synaptic web containing a single synaptic path formed after algorithm evaluation of the first valid TDE (2, 2) of the  FIG. 23  data array with Alg1, Alg2, Alg3, and Alg4 using the adjacent data element TDA. The first node  600  shows the resultant algorithm value 153, count 1, of algorithmic analysis of TDE (2 2) with Alg1 using the adjacent data element TDA. A count of one signifies the number of times during known feature training that evaluation of the original data array of  FIG. 23  with Alg1 results in a value of 153; the count value is incremented each time the resultant algorithm value 153 is found after evaluation of a TDE with Alg1. The second node  602  of the  FIG. 29  synaptic web shows the resultant algorithm value 159, count 1, after algorithmic analysis of TDE (2, 2) with Alg2 using the adjacent data element TDA. The third node  604  shows the resultant algorithm value 217, count 1, after algorithmic analysis of TDE (2, 2) with Alg3 using the adjacent data element TDA. Finally, the fourth node  606  shows the resultant algorithm value 64, count 1, after algorithmic analysis of TDE (2, 2) with Alg4 using the adjacent data element TDA. Following this synaptic path leads to a synaptic leaf  608  containing a known feature (hereafter “KF1”). Since this is the first time this synaptic path is established (i.e., identified) for KF1, the count for said known feature is also one. In this example, the synaptic leaf  608  is the first synaptic leaf of the synaptic web. 
         [0200]      FIG. 30  shows one embodiment of an example synaptic web containing two synaptic paths formed after algorithmic evaluation of TDE (2, 2) and TDE (3, 2) of the  FIG. 23  data array with Alg1, Alg2, Alg3, and Alg4 using the adjacent data element TDA. The synaptic leaf  610  results from the algorithmic evaluation of TDE (3, 2). After the analysis of TDE (2, 2) and (3, 2) of the original data array of  FIG. 23 , there are two different synaptic paths that identify the same known feature, “KF1.” 
         [0201]      FIG. 31  shows one embodiment of an example synaptic web containing eleven synaptic paths formed after algorithmic evaluation TDEs (2, 2) through (9, 2) and TDEs (2, 3) through (4, 3) of the  FIG. 23  data array with Alg1, Alg2, Alg3, and Alg4 using the adjacent data element TDA. The data elements are analyzed from left to right within the data array rows, and the corresponding resultant algorithm values are presented from left to right within the synaptic web. There are no repeat algorithm values calculated as a result of Alg1, and accordingly, for each data element evaluated in the original data array of  FIG. 23 , a new synaptic path terminating in a new synaptic leaf is added to the synaptic web. 
         [0202]      FIG. 32  shows one embodiment of an example synaptic web containing sixteen synaptic paths formed after algorithmic evaluation of TDEs (2, 2) through (9, 2) and TDEs (2, 3) through (9, 3) of the  FIG. 23  data array with Alg1, Alg2, Alg3, and Alg4 using the adjacent data element TDA. Again, the data elements are analyzed from left to right within the data array rows, and the corresponding resultant algorithm values are presented from left to right within the synaptic web. In this example, as analysis proceeds through the TDEs and each synaptic path is built, a repeat in the resulting Alg1 value of 151 is calculated at TDE (8, 2) and TDE (5, 3). Since this value of 151 for Alg1 is encountered twice, the associated value count is incremented to two. As the algorithmic analysis continues, the synaptic path associated with the Alg1 value of 151 branches into separate synaptic paths because the resulting Alg2 values for TDE (8, 2) and TDE (5, 2) are different. 
         [0203]      FIG. 33  shows one embodiment of an example synaptic web containing a single synaptic path that results in a synaptic leaf with two known features  612  and  614 . When multiple known features are associated with a single synaptic path, said features are stored in a sorted list that is ordered by each feature hit count value. The known feature that is most often associated with the synaptic pattern appears first in the list, and it is followed by the other known features, which are in order by decreasing hit count values. In the case of a tie, the first known feature associated with the synaptic path appears first in the list. 
         [0204]    In one embodiment, once training of one or a plurality of known features from the original ten-data element by ten-data element data array of  FIG. 23  is complete and the training values are stored in the synaptic web (which is partially shown in  FIG. 32 ), a new data set selection containing one or a plurality of unknown features is presented to the system for analysis and known feature recognition. 
         [0205]      FIG. 34  shows an example data array for a two-dimensional, grey-scale, six-data element (i.e., pixel) by six-data element image selection of a known feature. In the preferred embodiment, it is presumed that this example image selection is obtained using the same type of data capture device as is used to obtain the example data array of  FIG. 23 . The image selection contains a total of thirty-six data elements. 
         [0206]    It is important to note that the same evaluation algorithms and the same TDA as are used during preliminary known feature training (as described with relation to  FIGS. 23-32 ) must be employed to evaluate the new data set selection (as shown in  FIG. 34 ). For this example, the adjacent data element TDA (as shown in  FIG. 24 ) and the mean algorithm (i.e., Alg1), the median algorithm (i.e., Alg2), the spread of values algorithm (i.e., Alg3), and the standard deviation algorithm (i.e., Alg4) are used to accomplish known feature recognition. 
         [0207]    For this example, algorithmic processing of the  FIG. 34  data array begins at any valid, user-specified, preset, or automatically determined data element. In one embodiment, processing with Alg1 using the adjacent data element TDA initializes at TDE (2, 2) and returns a value of 164, count 1. This resultant value 164 is stored in an algorithm value cache, which is sized and addressed in the same manner as the  FIG. 34  data array, at the corresponding TDE location (2, 2). 
         [0208]    In one embodiment, TDE (2, 2) of the  FIG. 34  data array is then processed with Alg2 using the adjacent data element TDA. A value of 152, count 1, is returned and is stored in the algorithm value cache at the corresponding TDE location (2, 2). 
         [0209]    In one embodiment, TDE (2, 2) of the  FIG. 34  data array is then processed with Alg3 using the adjacent data element TDA. A value of 179, count 1, is returned and is stored in the algorithm value cache at the corresponding TDE location (2, 2). 
         [0210]    In one embodiment, TDE (2, 2) of the  FIG. 34  data array is then processed with Alg4 using the adjacent data element TDA. A value of 55, count 1, is returned and is stored in the algorithm value cache at the corresponding TDE location (2, 2). 
         [0211]    In one embodiment, following the evaluation of TDE (2, 2) of the  FIG. 34  data array with Alg1, Alg2, Alg3, and Alg4 using the adjacent data element TDA, processing proceeds to the next valid TDE and then continues until the collection of valid TDEs in the data array is exhausted or training is terminated. In an alternate embodiment, all valid TDEs of the  FIG. 34  data array are processed with a single evaluation algorithm using the adjacent data element TDA prior to initialization of processing with any subsequent algorithms. 
         [0212]      FIG. 35  shows an example data array for the six-data element by six-data element image selection (as shown in the  FIG. 34  data array) after analysis with Alg1 (i.e., the mean algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant Alg1 value 164, count 1, is used further starting at  FIG. 39 . 
         [0213]      FIG. 36  shows an example data array for the six-data element by six-data element image selection (as shown in the  FIG. 34  data array) after analysis with Alg2 (i.e., the median algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant Alg2 value 152, count 1, is used further starting at  FIG. 39 . 
         [0214]      FIG. 37  shows an example data array for the six-data element by six-data element image selection (as shown in the  FIG. 34  data array) after analysis with Alg3 (i.e., the spread of values algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant Alg3 value 179, count 1, is used further starting at  FIG. 39 . 
         [0215]      FIG. 38  shows an example data array for the six-data element by six-data element image selection (as shown in the  FIG. 34  data array) after analysis with Alg4 (i.e., the standard deviation algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant Alg4 value 55, count 1, is used further starting at  FIG. 39 . 
         [0216]      FIG. 39  shows one embodiment of an example synaptic web wherein the algorithm processing results of the first valid data element (2, 2) of the  FIG. 34  data array (as shown in the data arrays of  FIGS. 35-38 ) are compared to the existing partial synaptic web (as originally shown in  FIG. 32 ), which is trained from the algorithmic evaluation of the  FIG. 23  data array (as shown in the data arrays of  FIGS. 25-28 ). Referencing the previously trained synaptic web of  FIG. 32 , the list of Alg1 values is searched for the value 164, and a node for the second algorithm (i.e., Alg2) is found. At the second node, a search for the Alg2 value of 152 is conducted, and a node for the third algorithm (i.e., Alg3) is found. At the third node, a search for the Alg3 value of 179 is conducted, and a node for the fourth algorithm (i.e., Alg4) is found. At the fourth node, a search for the Alg4 value of 55 is also found. Thus, the first valid data element (2, 2) of the sample data array of  FIG. 34  is identified as being consistent with KF1 following the known synaptic path  616  as highlighted. 
         [0217]    In one embodiment, the results of the known feature processing example (as described in  FIGS. 34-39 ) are stored in another organizational storage structure, such as a known feature data output overlay, which is sized and addressed in the same manner as the original data set selection of  FIG. 34 , for retrieval at a future time if needed. In one embodiment, once a known feature(s) is identified in a new data set, the system notifies the user as to the identification of the feature(s) and/or presents the user with a representation (e.g., a graphical image or an audible sound) associated with the known feature(s). 
         [0218]    For further illustrative purposes, the use of a data analysis and feature recognition system as described herein is accomplished with reference to a hyperspectral data example sourced from NASA&#39;s Airborne Visible/Infrared Imaging Spectrometer (referred to hereafter as “AVIRIS”), which collected data in 224 contiguous spectral bands with a bandwidth of 0.10 μm. The AVIRIS sensor was utilized to collect data and spectrally analyze the hydrothermal mineral alterations in rocks of the Cuprite mining district in western Nevada, USA. For the example as shown in  FIGS. 40-61 , four bands (i.e., Band 13, Band 20, Band 173, and Band 200) of this hyperspectral data set are analyzed using one embodiment of the system of the present invention. 
         [0219]      FIG. 40  shows an example data array representing a selection of Band 13, which is located at 500.5 nanometers on the visible spectrum and is hereafter referred to as “B13,” of the AVIRIS hyperspectral data set. In this example, B13 is represented as a two-dimensional, ten-data element by ten-data element selection of a known feature. The data selection has a total of 100 data elements. 
         [0220]      FIG. 41  shows an example data array representing a selection of Band 20, which is located at 558.7 nanometers on the visible spectrum and is hereafter referred to as “B20,” of the AVIRIS hyperspectral data set. In this example, B20 is represented by a two-dimensional, ten-data element by ten-data element selection of a known feature. The data selection has a total of 100 data elements. 
         [0221]      FIG. 42  shows an example data array representing Band 173, which is located at 2,000.5 nanometers on the infrared spectrum and is hereafter referred to as “B173,” of the AVIRIS hyperspectral data set. In this example, B173 is represented by a two-dimensional, ten-data element by ten-data element selection of a known feature. The data selection has a total of 100 data elements. For the purpose of simplicity, only the values for data elements (2, 2) and (3, 2) are shown; the remaining data element values are represented by the symbol “X” within this data array. 
         [0222]      FIG. 43  shows an example data array representing Band 200, which is located at 2,270.2 nanometers on the infrared spectrum and is hereafter referred to as “B200,” of the AVIRIS hyperspectral data set. In this example, Band 200 is represented by a two-dimensional, ten-data element by ten-data element selection of a known feature. The data selection has a total of 100 data elements. For the purpose of simplicity, only the values for data elements (2, 2) and (3, 2) are shown; the remaining data element values are represented by the symbol “X” within this data array. 
         [0223]    In the example of  FIGS. 40-61 , the adjacent data element TDA as shown in  FIG. 24  is used to accomplish known feature training. In addition, the TDA evaluation algorithms to be used to accomplish known feature training include: the mean algorithm (hereafter “Alg1”) and the spread of values algorithm (hereafter “Alg3”), which are used to analyze B13 (as shown in the  FIG. 40  data array) and B20 (as shown in the  FIG. 41  data array) of the AVIRIS hyperspectral data set; the value algorithm (hereafter “Alg5”), which is used to analyze B173 (as shown in the  FIG. 42  data array); and the value algorithm with a mask of 0xFFFC (hereafter “Alg6”), which is used to analyze B200 (as shown in the  FIG. 43  data array). In an alternate embodiment, selection of the TDA to be used during known feature training automatically determines which evaluation algorithms are used. In another embodiment, selection of a given TDA or selection of a given evaluation algorithm determines all subsequent algorithms to be used throughout known feature training. 
         [0224]    For this example, algorithmic analysis of a selection of B13 as shown in the  FIG. 40  data array begins at any valid, user-specified, preset, or automatically determined data element. In one embodiment, analysis with Alg1 (which is hereafter designated with relation to B13 as “B13Alg1”) using the adjacent data element TDA initializes at TDE (2, 2) and returns a value of 153, count 1. This resultant value 153 is stored in an algorithm value cache, which is sized and addressed in the same manner as the  FIG. 40  data array, at the corresponding TDE location (2, 2). 
         [0225]    In one embodiment, TDE (2, 2) of B13 as shown in the  FIG. 40  data array is then processed with Alg3 (which is hereafter designated with relation to B13 as “B13Alg3”) using the adjacent data element TDA. A value of 217, count 1, is returned and is stored in the algorithm value cache at the corresponding TDE location (2, 2). 
         [0226]    In one embodiment, following the evaluation of TDE (2, 2) of the  FIG. 40  data array with B13Alg1 and B13Alg3 using the adjacent data element TDA, known feature training proceeds to the next valid TDE and then continues until the collection of valid TDEs in the data array is exhausted or processing is terminated. In an alternate embodiment, all valid TDEs of the  FIG. 40  data array are processed with a single evaluation algorithm using the adjacent data element TDA prior to initialization of training with any subsequent algorithms. 
         [0227]      FIG. 44  shows an example data array for the ten-data element by ten-data element selection of B13 (as shown in the  FIG. 40  data array) after analysis with B13Alg1 (i.e., the mean algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant B13Alg1 value 153, count 1, is used further starting at  FIG. 50 . 
         [0228]      FIG. 45  shows an example data array for the ten-data element by ten-data element image selection of B13 (as shown in the  FIG. 40  data array) after analysis with B13Alg3 (i.e., the spread of values algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant B13Alg3 value 217, count 1, is used further starting at  FIG. 50 . 
         [0229]    For this example, algorithmic analysis of a selection of B20 as shown in the  FIG. 41  data array begins at any valid, user-specified, preset, or automatically determined data element. In one embodiment, analysis with Alg1 (which is hereafter designated with relation to B20 as “B20Alg1”) using the adjacent data element TDA initializes at TDE (2, 2) and returns a value of 120, count 1. This resultant value 120 is stored in an algorithm value cache, which is sized and addressed in the same manner as the  FIGS. 40-41  data arrays, at the corresponding TDE location (2, 2). 
         [0230]    In one embodiment, TDE (2, 2) of B20 as shown in the  FIG. 41  data array is then processed with Alg3 (which is hereafter designated with relation to B20 as “B20Alg3”) using the adjacent data element TDA. A value of 116, count 1, is returned and is stored in the algorithm value cache at the corresponding TDE location (2, 2). 
         [0231]    In one embodiment, following the evaluation of TDE (2, 2) of the  FIG. 41  data array with B20Alg1 and B20Alg3 using the adjacent data element TDA, known feature training proceeds to the next valid TDE and then continues until the collection of valid TDEs in the data array is exhausted or processing is terminated. In an alternate instance, all valid TDEs of the  FIG. 41  data array are processed with a single evaluation algorithm using the adjacent data element TDA prior to initialization of processing with any subsequent algorithms. 
         [0232]      FIG. 46  shows an example data array for the ten-data element by ten-data element selection of B20 (as shown in the  FIG. 41  data array) after analysis with B20Alg1 (i.e., the mean algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant B20Alg1 value 120, count 1, is used further starting at  FIG. 50 . 
         [0233]      FIG. 47  shows an example data array for the ten-data element by ten-data element image selection of B20 (as shown in the  FIG. 41  data array) after analysis with B20Alg3 (i.e., the spread of values algorithm) using the adjacent data element TDA. The first valid data element is (2, 2) and the resultant B20Alg3 value 111, count 1, is used further starting at  FIG. 50 . 
         [0234]    For this example, algorithmic analysis of a selection of B173 as shown in the  FIG. 42  data array begins at any valid, user-specified, preset, or automatically determined data element. In one embodiment, processing with Alg5 (which is hereafter designated with relation to B173 as “B173Alg5”) using the adjacent data element TDA initializes at TDE (2, 2) and returns a value of 84, count 1. This resultant value 84 is stored in an algorithm value cache, which is sized and addressed in the same manner as the  FIGS. 40-42  data arrays, at the corresponding TDE location (2, 2). 
         [0235]    In one embodiment, following the evaluation of TDE (2, 2) of the  FIG. 42  data array with B173Alg5 using the adjacent data element TDA, known feature training proceeds to the next valid TDE and then continues until the collection of valid TDEs in the data array is exhausted or processing is terminated. 
         [0236]      FIG. 48  shows an example data array for the ten-data element by ten-data element selection of B173 (as shown in the  FIG. 42  data array) after analysis with B173Alg5 (i.e., the value algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant B173Alg5 value 84, count 1, is used further starting at  FIG. 50 . 
         [0237]    For this example, algorithmic processing of a selection of B200 as shown in the  FIG. 43  data array begins at any valid, user-specified, preset, or automatically determined data element. In one embodiment, analysis with Alg6 (which is hereafter designated with relation to B200 as “B200Alg6”) using the adjacent data element TDA initializes at TDE (2, 2) and returns a value of 124, count 1. This resultant value 124 is stored in an algorithm value cache, which is sized and addressed in the same manner as the  FIGS. 40-43  data arrays, at the corresponding TDE location (2, 2). 
         [0238]    In one embodiment, following the evaluation of TDE (2, 2) of the  FIG. 43  data array with B200Alg6 using the adjacent data element TDA, known feature training proceeds to the next valid TDE and then continues until the collection of valid TDEs in the data array is exhausted or processing is terminated. 
         [0239]      FIG. 49  shows an example data array for the ten-data element by ten-data element selection of B200 (as shown in the  FIG. 43  data array) after analysis with B200Alg6 (i.e., the value algorithm masked with 0xFFFC) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant B200Alg6 value 124, count 1, is used further starting at  FIG. 50 . 
         [0240]      FIG. 50  shows one embodiment of an example synaptic web containing two synaptic paths formed after algorithmic evaluation of TDE (2, 2) and TDE (3, 2) of the  FIG. 40  data array (which represents a data selection from B13 of the AVIRIS hyperspectral data set) with B13Alg1 and B13Alg3; TDE (2, 2) and TDE (3, 2) of the  FIG. 41  data array (which represents a data selection from B20 of the AVIRIS hyperspectral data set) with B20Alg1 and B20Alg3; TDE (2, 2) and TDE (3, 2) of the  FIG. 42  data array (which represents a data selection from B173 of the AVIRIS hyperspectral data set) with B173Alg5; and TDE (2, 2) and TDE (3, 2) of the  FIG. 43  data array (which represents a data selection from B200 of the AVIRIS hyperspectral data set) with B200Alg6 using the adjacent data element TDA. After analyzing TDE (2, 2) and (3, 2), there are two different synaptic paths that terminate with two synaptic leaves  618  and  620 , each of which identify the same known feature, “KF1.” 
         [0241]    In one embodiment, once training of one or a plurality of known features from the original ten-data element by ten-data element data arrays (as shown in  FIGS. 40-43 ) is complete and the training values are stored in the synaptic web (as shown in  FIG. 50 ), a new data set selection containing one or a plurality of unknown features is presented to the system for analysis and known feature recognition. 
         [0242]      FIG. 51  shows an example data array representing a selection of B13 of the AVIRIS hyperspectral data set. In this example, B13 is represented as a two-dimensional, six-data element by six-data element selection of a known feature. In one embodiment, it is presumed that this example data selection is obtained using the same type of data capture device as is used to obtain the example data array of  FIG. 40 . The image selection has a total of thirty-six data elements. 
         [0243]      FIG. 52  shows an example data array representing a selection of B20 of the AVIRIS hyperspectral data set. In this example, B20 is represented as a two-dimensional, six-data element by six-data element selection of a known feature. In one embodiment, it is presumed that this example data selection is obtained using the same type of data capture device as is used to obtain the example data array of  FIG. 41 . The image selection has a total of thirty-six data elements. 
         [0244]      FIG. 53  shows an example data array representing a selection of B173 of the AVIRIS hyperspectral data set. In this example, B173 is represented as a two-dimensional, six-data element by six-data element selection of a known feature. In one embodiment, it is presumed that this example data selection is obtained using the same type of data capture device as is used to obtain the example data array of  FIG. 42 . The image selection has a total of thirty-six data elements. 
         [0245]      FIG. 54  shows an example data array representing a selection of B200 of the AVIRIS hyperspectral data set. In this example, B200 is represented as a two-dimensional, six-data element by six-data element selection of a known feature. In one embodiment, it is presumed that this example data selection is obtained using the same type of data capture device as is used to obtain the example data array of  FIG. 43 . The image selection has a total of thirty-six data elements. 
         [0246]    As previously noted, the same evaluation algorithms and the same TDA as are used during preliminary known feature training (as described with relation to  FIGS. 40-50 ) must be employed to evaluate the new data set selections (as shown in  FIGS. 51-54 ). For this example, the adjacent data element TDA (as shown in  FIG. 24 ) and the mean algorithm, the spread of values algorithm, the value algorithm, and the value algorithm masked with 0xFFFC are used to accomplish known feature recognition. 
         [0247]    For this example, algorithmic processing of a selection of B13 as shown in the  FIG. 51  data array begins at any valid, user-specified, preset, or automatically determined data element. In one embodiment, processing with B13Alg1 using the adjacent data element TDA initializes at TDE (2, 2) and returns a value of 153, count 1. This resultant value 153 is stored in an algorithm value cache, which is sized and addressed in the same manner as the  FIG. 51  data array, at the corresponding TDE location (2, 2). 
         [0248]    In one embodiment, TDE (2, 2) of B13 as shown in the  FIG. 51  data array is then processed with B13Alg3 using the adjacent data element TDA. A value of 217, count 1, is returned and is stored in the algorithm value cache at the corresponding TDE location (2, 2). 
         [0249]    In one embodiment, following the evaluation of TDE (2, 2) of the  FIG. 51  data array with B13Alg1 and B13Alg3 using the adjacent data element TDA, processing proceeds to the next valid TDE and then continues until the collection of valid TDEs in the data array is exhausted or processing is terminated. In an alternate embodiment, all valid TDEs of the  FIG. 51  data array are processed with a single evaluation algorithm using the adjacent data element TDA prior to initialization of processing with any subsequent algorithms. 
         [0250]      FIG. 55  shows an example data array for the six-data element by six-data element selection of B13 (as shown in the  FIG. 51  data array) after analysis with B13Alg1 (i.e., the mean algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant B13Alg1 value 153, count 1, is used further starting at  FIG. 61 . 
         [0251]      FIG. 56  shows an example data array for the six-data element by six-data element selection of B13 (as shown in the  FIG. 51  data array) after analysis with B13Alg3 (i.e., the spread of values algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant B13Alg3 value 217, count 1, is used further starting at  FIG. 61 . 
         [0252]    For this example, algorithmic processing of a selection of B20 as shown in the  FIG. 52  data array begins at any valid, user-specified, preset, or automatically determined data element. In one embodiment, processing with B20Alg1 using the adjacent data element TDA initializes at TDE (2, 2) and returns a value of 120, count 1. This resultant value 120 is stored in an algorithm value cache, which is sized and addressed in the same manner as the  FIGS. 51-52  data arrays, at the corresponding TDE location (2, 2). 
         [0253]    In one embodiment, TDE (2, 2) of B13 as shown in the  FIG. 52  data array is then processed with B20Alg3 using the adjacent data element TDA. A value of 111, count 1, is returned and is stored in the algorithm value cache at the corresponding TDE location (2, 2). 
         [0254]    In one embodiment, following the evaluation of TDE (2, 2) of the  FIG. 52  data array with B20Alg1 and B20Alg3 using the adjacent data element TDA, processing proceeds to the next valid TDE and then continues until the collection of valid TDEs in the data array is exhausted or processing is terminated. In an alternate instance, all valid TDEs of the  FIG. 52  data array are processed with a single evaluation algorithm using the adjacent data element TDA prior to initialization of processing with any subsequent algorithms. 
         [0255]      FIG. 57  shows an example data array for the six-data element by six-data element selection of B20 (as shown in the  FIG. 52  data array) after analysis with B20Alg1 (i.e., the mean algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant B20Alg1 value 120 count 1, is used further starting at  FIG. 61 . 
         [0256]      FIG. 58  shows an example data array for the six-data element by six-data element selection of B20 (as shown in the  FIG. 52  data array) after analysis with B20Alg3 (i.e., the spread of values algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant B20Alg3 value 143, count 1, is used further starting at  FIG. 61 . 
         [0257]    For this example, algorithmic processing of a selection of B173 as shown in the  FIG. 53  data array begins at any valid, user-specified, preset, or automatically determined data element. In one embodiment, processing with B173Alg5 using the adjacent data element TDA initializes at TDE (2, 2) and returns a value of 84, count 1. This resultant value 84 is stored in an algorithm value cache, which is sized and addressed in the same manner as the  FIGS. 51-53  data arrays, at the corresponding TDE location (2, 2). 
         [0258]    In one embodiment, following the evaluation of TDE (2, 2) of the  FIG. 53  data array with B173Alg5 using the adjacent data element TDA, processing proceeds to the next valid TDE and then continues until the collection of valid TDEs in the data array is exhausted or processing is terminated. 
         [0259]      FIG. 59  shows an example data array for the six-data element by six-data element selection of B173 (as shown in the  FIG. 53  data array) after analysis with B173Alg5 (i.e., the value algorithm) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant B173Alg5 value 84, count 1, is used further starting at  FIG. 61 . 
         [0260]    For this example, algorithmic processing of a selection of Band 200 as shown in the  FIG. 54  data array begins at any valid, user-specified, preset, or automatically determined data element. In one embodiment, processing with B200Alg6 using the adjacent data element TDA initializes at TDE (2, 2) and returns a value of 124, count 1. This resultant value 124 is stored in an algorithm value cache, which is sized and addressed in the same manner as the  FIGS. 51-54  data arrays, at the corresponding TDE location (2, 2). 
         [0261]    In one embodiment, following the evaluation of TDE (2, 2) of the  FIG. 54  data array with B200Alg6 using the adjacent data element TDA, processing proceeds to the next valid TDE and then continues until the collection of valid TDEs in the data array is exhausted or processing is terminated. 
         [0262]      FIG. 60  shows an example data array for the six-data element by six-data element selection of B200 (as shown in the  FIG. 54  data array) after analysis with B200Alg6 (i.e., the value algorithm masked with 0xFFFC) using the adjacent data element TDA. The first valid data element is (2, 2), and the resultant B200Alg6 value 124, count 1, is used further starting at  FIG. 61 . 
         [0263]      FIG. 61  shows one embodiment of an example synaptic web wherein the algorithm processing results of the first valid data element (2, 2) of the  FIGS. 51-54  data arrays (as shown in the data arrays of  FIGS. 55-60 ) are compared to the existing partial synaptic web (as originally shown in  FIG. 50 ), which is trained from the algorithmic evaluation of the data arrays of  FIGS. 40-43  (as previously described in  FIGS. 44-49 ). Referencing the previously trained synaptic web of  FIG. 50 , the list of B13Alg1 values is searched for the value 153, and a node for the second algorithm (i.e., B13Alg3) is found. In the second node, a search for the B13Alg3 value of 217 is conducted, and a node for the third algorithm (i.e., B20Alg1) is found. In the third node, a search for the B20Alg1 value of 120 is conducted, and a node for the fourth algorithm (i.e., B20Alg3) is found. In the fourth node, a search for the B20Alg3 value of 111 is conducted, and a node for the fifth algorithm (i.e., B173Alg5) is found. In the fifth node, a search for the B173Alg5 value of 84 is conducted, and a node for the sixth algorithm (i.e., B200Alg6) is found. In the sixth node, a search for the B200Alg6 value of 124 is also found. Thus, the first valid data element (2, 2) of the sample data arrays of  FIGS. 55-60  is identified as being consistent with KF1 following the known synaptic path  622  as highlighted. 
         [0264]    The screenshots presented in  FIGS. 62-104  represent one embodiment of a user interface for data analysis and feature recognition in the multispectral and/or hyperspectral imagery modality; infinite alternatives exist. 
         [0265]      FIG. 62  is a screenshot  800  showing the “Start” tab  804  or introduction screen of the “New SyntelliBase Wizard,” which guides the user through the step-by-step creation and/or editing of a datastore (which is embodied herein as a synaptic web and which may be referred to hereafter as a “SyntelliBase”). In the top right corner of the wizard is a button  802  to close and exit the wizard. In one embodiment, the user navigates through the wizard using the tab controls at the top of each wizard dialog box or the “Cancel  808 ,” “Back  810 ,” “Next  812 ,” and “Finish  814 ” buttons at the bottom. This general layout for the wizard as described herein is prevalent throughout most wizard dialog boxes. 
         [0266]      FIG. 63  is a screenshot  800  showing the “Required” tab  804  of the “New SyntelliBase Wizard” wherein the initial values defining the datastore are set by the user. The type of digital data to be processed is identified by the “Modality” combination box  820 , which contains a listing of data modalities specifying the digital data stream format, and the “Submodality” combination box  822 , which contains a series of data submodalities specifying the use of the data or specific application of the data modality. While the SyntelliBase name can be changed later and at any time, the modality and submodality information cannot. Also located on this tab, the user decides whether or not to turn on “Logging”  824 . 
         [0267]      FIG. 64  is a screenshot  800  showing the expanded “Submodality” combination box  822  of the “Required” tab  804  of the “New SyntelliBase Wizard.” In one embodiment, the “Submodality” combination box  822  contains a configurable list of data sub-classifications (i.e., submodalities) that are currently available for selection within the previously selected digital data “Modality.” Assigning a data submodality enables a user to address differences in digital data within a given data modality. 
         [0268]      FIG. 65  is a screenshot  800  showing the “Optional” tab  804  of the “New SyntelliBase Wizard” wherein descriptive demographic parameters for information relating to the machine “Vendor” name  830 , “Machine” type  832 , machine “Model”  834 , “Trainer” name  836 , and datastore “Use”  838  are optionally entered into text boxes by the user. In one embodiment, this information is used to categorize datastores received and/or stored by a network. 
         [0269]      FIG. 66  is a screenshot  800  showing the “Target Data Shape” tab  804  of the “New SyntelliBase Wizard” wherein the target data shape  840  (i.e., TDA) and a set of evaluation algorithms  842  corresponding to the selected target data shape are selected by the user. The “Target Data Shape” combination box  840  provides a listing of available TDAs that are used to determine how data immediately surrounding a given TDE is collected for analysis by the evaluation algorithms. In this example, the “Target Data Shape” box  840  is set to the “Grey Adjacent Pixels” TDA, which exists as a square of the nine adjacent pixels surrounding a single, central pixel (i.e., TDE). In one embodiment, the process of selecting the evaluation algorithms applicable to the current processing run begins by choosing a specific TDA shape, while in an alternate embodiment the evaluation algorithms are selected independently from the TDA. In this example a series of three evaluation algorithms  842 , “Algorithm 2,” “Algorithm 3,” and “Algorithm 4,” are selected by the user. It is a combination of the analysis results for the selected evaluation algorithms, not just the analysis results for a single evaluation algorithm, using the “Grey Adjacent Pixel” target data shape that is employed for training and processing by the synaptic web. 
         [0270]      FIG. 67  is a screenshot  800  showing the “Summary” tab  804  of the “New SyntelliBase Wizard” wherein the current datastore properties and settings are displayed in a table  850  for easy user reference and review. In one embodiment, the selections can be edited by selecting the “Back” button and confirmed by selecting the “Finish” button. In this example, the data “Modality” is “Imaging2D”  851 ; the data “Submodality” is “X-Ray”  852 ; and “Logging” is “True”  854 . 
         [0271]      FIG. 68  is a screenshot  800  showing the “Summary” tab  804  of the “New SyntelliBase Wizard” wherein the table  850 , which displays the current datastore properties and settings for easy user reference and review, is scrolled down. In this example, the “Target Data Shape” is “Grey Adjacent Pixels”  860  and the number of evaluation “Algorithms” selected is “7”  862 . 
         [0272]      FIG. 69  is a screenshot  900  showing one embodiment of a user-interface for a data analysis and feature recognition system that is used to accomplish known feature training and identification and as it exists after the completion of datastore creation; infinite alternatives exist. In one embodiment, the application contains some or all of the following user-interface features: a menu bar(s)  910 , which is known in the art; sets of icons  914  representing toolbar options designed to provide easy access to the most commonly used application operations while also allowing customization of user preferences; and an application workspace  926 . The left-most panel  916  of the user interface, titled “SyntelliBases”  912 , contains information including any associated attributes and user settings about any currently open datastores. In this example, there is one datastore, “syntellibase1”  918 , opened in the “Imaging2D” data modality; a set of known features, when defined and trained, are stored in the “Known Features” folder  920 ; and the “Grey Adjacent Pixels” TDA  924  is selected to train “syntellibase1.” The right-most panel  926  is a workspace wherein any currently open images, which can be used to train the opened datastore(s) and then subsequently processed to identify the presence of any trained known features, are displayed. 
         [0273]      FIG. 70  is a screenshot showing one embodiment of a user-interface for a data analysis and feature recognition system wherein the “Grey Adjacent Pixels” TDA  924  attribute of “syntellibase1” is expanded to reveal a listing of all the associated evaluation algorithms that can be selected for use in conjunction with the current TDA. In this example, the selected evaluation algorithms, which include “Algorithm 8,” “Algorithm 9,” “Algorithm 10,” “Algorithm 19,” “Algorithm 20,” “Algorithm 26,” and “Algorithm 27,” are designated by filled-in icons. 
         [0274]      FIG. 71  is a screenshot  950  showing the “Start” tab  952  or introduction screen of the “New Known Feature Wizard,” which guides the user through the step-by-step creation and/or editing of a known feature. The layout of the “New Known Feature Wizard” is described in more detail with reference to  FIG. 62 . 
         [0275]      FIG. 72  is a screenshot  950  showing the “Identification” tab  952  of the “New Known Feature Wizard” wherein the user assigns a known feature name, which functions to distinguish the current feature from other features, and a known feature processing method of detection, which defines how the known feature is identified in the data set. Also on the “Identification” tab  952 , the user decides whether the entire data selection is to be processed or if processing terminates when the system identifies a single occurrence of the current known feature. In one example, the option to stop data processing upon the first found occurrence of the known feature is beneficial if the system identifies an anomaly that should immediately trigger an event such as stopping a production line for quality control purposes. In such a situation, the user checks the option to “Stop processing on first found occurrence.” Otherwise, the entire data selection is processed. In this example, the known feature “Name”  960  is entered into the textbox as “Forest,” the known feature “Method” of detection  962  combination box is set to “HitDetection,” and the option to “Stop processing on first found occurrence”  964  is unchecked. 
         [0276]      FIG. 73  is a screenshot  950  showing the “Identification” tab  952  of the “New Known Feature Wizard” wherein the known feature “Method” of detection combination box  962  is expanded to reveal a listing of all available known feature methods of identification. In one embodiment, there are four types of processing methods of detection available for selection: “Hit Detection,” “Cluster” detection, “Threshold” detection, and “Cluster and Threshold” detection. 
         [0277]    In one embodiment, when hit detection is selected as the known feature processing method, a positive identification of a known feature is made when any of the trained entries in the SyntelliBase is matched. In one example, this method is useful to show the user all of the possible locations that a known feature is identified. 
         [0278]    In one embodiment, when a known feature is trained, the data patterns associated with the feature are likely to be encountered multiple times. The number of times the pattern is encountered is stored in the synaptic web as the feature&#39;s “hit count.” In one embodiment, a known feature with cluster detection as its processing method is recognized if the pattern is identified as a trained entry in the synaptic web, and the known feature is identified a given number of times for other surrounding data elements within the given area. In one example, cluster detection is useful to prevent isolated data elements from being erroneously identified as the known feature and has further applicability when the user is attempting to filter out spurious hits. 
         [0279]    In one embodiment, threshold detection identifies a known feature if said feature is present for a given synaptic path assuming said path is trained as this known feature a minimum number of times (i.e., threshold) and is not trained more than a maximum number of times (i.e., limit). Otherwise stated, the threshold method of known feature detection recognizes a known feature if the pattern is identified as a trained entry in the synaptic web and that entry has been trained as this known feature a number of times greater than a given threshold but less than a given limit. In one example, threshold detection ensures that patterns that have seldom been associated with a feature cannot be used to cause a misidentification and is useful to filter out under-trained or over-trained known feature hits. 
         [0280]    In one embodiment, the cluster and threshold detection processing method uses a combination of both the clustering and thresholding methodologies as previously described. Accordingly, a known feature is identified if said feature is present for a given synaptic path assuming said path is trained as this known feature a minimum number of times greater than the threshold value but less than a given limit value (i.e., thresholding filter), and then if the known feature is identified a given number of times for other surrounding data elements within the given area (i.e., clustering filter). 
         [0281]      FIG. 74  is a screenshot  950  showing the “Training Counts” tab  952  of the “New Known Feature Wizard” wherein the threshold detection parameters are set by the user. In one embodiment, the user selects a “Threshold” value representing the minimum number of times the given known feature must be associated with a synaptic path during training in order for said known feature to be positively identified for the given synaptic path. In one embodiment, increasing the threshold value guarantees that only recurring synaptic paths with a number of occurrences higher than the threshold value are used in processing thus ensuring a higher level of confidence in the eventual identification of the known feature. In one embodiment, the user selects a “Limit” value representing the maximum number of times the given known feature can be associated with the synaptic path during training in order for said known feature to be positively identified for the given synaptic path. In one embodiment, processing with an upper limit can identify those patterns that may be producing erroneous known feature identification. In this example, the “Threshold” value  970  is set to the default value of “1,” and the “Limit” value  974  is set to the default value of “2,147,483,647.” 
         [0282]      FIG. 75  is a screenshot  950  showing the “Cluster Range” tab  952  of the “New Known Feature Wizard” wherein the cluster detection parameters are set. In cluster detection, as well as in cluster and threshold detection, the known feature has an associated “dimension value” or “cluster range value”  982 , which defines how far, in each applicable dimension  980  of the multispectral or hyperspectral data set, from where a known feature is identified that other positive identifications (i.e., hits) of the same known feature must also be identified in order for the known feature to be positively identified for a given data element (i.e., TDE). In one embodiment, the user selects the “Cluster Count” value  984 , which is the number of times the same known feature must occur within the defined cluster area (as specified by the “dimension value” or “cluster range value”) in order for the known feature to be positively identified (i.e., “hit”) for the current data element. In one example, a cluster range value of zero yields a cluster area containing a single data element, while in another example, a cluster range value of one yields a cluster area containing all the data elements within one unit of the subject data element. In one embodiment, adjustment of the cluster range values is useful if the data is known to have different vertical and horizontal scales. 
         [0283]      FIG. 76  is a screenshot  950  showing the “Actions” tab  952  of the “New Known Feature Wizard” wherein the system action output is selected by the user. In one embodiment, the “Action” combination box  990  contains a listing of the available system actions-on-detection, which are the possible responses of the system and/or methods of user notification that can occur when a known feature is positively identified for a given data element within the data set. In one embodiment, the possible output options are “No Action” (i.e., do nothing), “System Sounds” (i.e., play a user-specified, preset, or automatically determined system sound), and “Paint” (i.e., paint the data element identified as the known feature a user-specified, preset, or automatically determined system color in an output layer). 
         [0284]      FIG. 77  is a screenshot  950  showing the “Summary” tab  952  of the “New Known Feature Wizard” wherein the current known feature properties and settings are displayed for easy user reference and review. In this example, the known feature “Name”  1000  is “Forest”; the “Method” of known feature detection is “Hit Detection”  1002 ; the “Threshold” value  1004  is “1”; the “Limit” value is “2,147,483,647”  1006 ; the “Cluster Range” value  1008  sets the “X” dimension value to “0,” the “Y” dimension value to “0,” and the “Cluster Count” value to “1”; the known feature “Action” on detection is “Paint”  1010 ; and the action “Data” value  1012  is “ForestGreen.” 
         [0285]    In one embodiment and after one or a plurality of datastores and one or a plurality of known features are created and/or edited, one medium or a plurality of media, which are to be used to train the datastore(s) by associating the user-specified known feature(s) with the data patterns in a given selection(s), are retrieved and loaded into the system of the present invention. In one embodiment, multiple training sessions are required to achieve reliable feature identification. In one embodiment, selections are used to include or exclude areas of interest within a selected image medium for training or processing purposes. 
         [0286]      FIG. 78  is a screenshot  900  showing one embodiment of an application  1024  to accomplish data analysis and feature recognition. The user-interface features are previously described with reference to  FIG. 69 . For this example, the application workspace  926  is loaded with three sample images: the image “forest.bmp”  1020  showing an area of forest, the image “dam.bmp,” and the image “island.bmp.” Within the sample image  1020  is a user-defined selection of forest  1028 , which is delimited by a black outlined polygon drawn using a selection tool as is common in the art. This selection area (referred to hereafter as the “region of interest”) is to be trained as the known feature “Forest” into the datastore “syntellibase1” using the TDA and evaluation algorithms as selected at  FIG. 66 . In one embodiment, the panel directly to the left of the sample image  1020  contains a listing of the layers  1026  (i.e., processed known features) that are currently available for viewing. In one embodiment, the area  916  located to the left of the workspace contains a listing of any opened datastores and their associated attributes, such as a listing of trained known features and the user-specified TDA, and the right-most panel of the application contains a “Gallery” of thumbnail images  1030  that are currently loaded into the system. In one embodiment, mouse position and color values  1022 , which are based upon the current cursor location as is common in the art, are shown at the bottom right corner of the screen. 
         [0287]      FIG. 79  is a screenshot  1100  showing the “Start” tab  1110  or introduction screen of the “Train Known Feature Wizard,” which guides the user through the step-by-step process of training or untraining one or a plurality of selected known features. The layout of the “Train Known Feature Wizard” is described in more detail with reference to  FIG. 62 . 
         [0288]      FIG. 80  is a screenshot  1100  showing the “Known Features” tab  1110  of the “Train Known Feature Wizard” wherein the one or a plurality of previously created known features are selected for training by the user. In one embodiment, the user opts to simultaneously train one or a plurality of known features into one or a plurality of datastores if available. In this example, the listing of available datastores  1120  contains “syntellibase1”; the known feature “Forest”  1122  is selected for training into “syntellibase1”; and the known feature “Water”  1124  is not selected for training into “syntellibase1.” 
         [0289]      FIG. 81  is a screenshot  1100  showing the “Method” tab  1110  of the “Train Known Feature Wizard” wherein the method of known feature training is selected by the user. In one embodiment, the known feature training methodologies include: “Area” training  1130 , in which all data patterns within the current data selection are associated with the known feature; area “Untrain”  1132 , in which all the data patterns within the current data selection are dissociated from the known feature; “Absolute” adjusted training  1134 , in which any occurrence of a feature data pattern found outside the current data selection causes all occurrences of the same data pattern inside the data selection to be removed; and “Relative” adjusted training  1136 , in which each occurrence of the feature data pattern found outside the current data selection nullifies one occurrence of the data pattern found inside the current data selection. In the preferred embodiment, the user selects the method of known feature training that is optimal for the specific data modality, data submodality, and data sample quality currently being processed. For this example, the method selected to train the known feature “Forest” into datastore “syntellibase1” is “Area” training. 
         [0290]      FIG. 82  is a screenshot  1100  showing the “Summary” tab  1110  of the “Train Known Feature Wizard” wherein the current known feature training options are displayed for easy user reference and review. In this example, the number of “Known Features”  1140  selected for training is one, and the “Method” of known feature training  1142  is “Area.” In one embodiment, clicking the “Finish” button on the “Summary” tab of the “Train Known Feature Wizard” initializes known feature training or untraining based upon user selections. 
         [0291]      FIG. 83  is a screenshot  1200  showing the “Results Summary” dialog box, which displays the results  1210  of known feature training or untraining in tabular format. In this example, area training of the region of interest containing the feature “Forest” (as defined at  FIG. 78 ) into the datastore “syntellibase1” results in the identification of “30,150” new data patterns representing said known feature and “0” new data paths, which is the number of times the known feature “Forest” is associated with an existing data pattern from another known feature. In addition, there are “0” updated data patterns in the datastore; otherwise stated, the number of times the known feature “Forest” is associated with a data pattern already known for said feature is zero. In one embodiment, the user can elect not to see the results summary dialog box by unselecting the checkbox labeled “Always show results summary.” 
         [0292]    In one embodiment, these new and updated data patterns are generated as a result of executing the previously selected evaluation algorithms (as defined at  FIG. 66 ) on the data element values within the previously selected region of interest (i.e., the selected area of forest as shown in the sample image of  FIG. 78 ) using the training process as described in  FIGS. 23-32 . The algorithm values for each data element are calculated and taken as a set; those values generate a data pattern associated with the known feature in the synaptic web. Within the region of interest, 30,150 data patterns are associated with the known feature “Forest.” 
         [0293]      FIG. 84  is a screenshot  900  showing one embodiment of an application to accomplish data analysis and feature recognition. The user-interface features are previously described with reference to  FIG. 69 . For this example, the application workspace is loaded with three sample images of interest: the image “island.bmp” and two other images. The sample image “island.bmp”  1252  shows light shaded areas of forest and a dark shaded area of water. Also within the sample image  1252  is a user-defined selection of forest, which is delimited by a black outlined polygon drawn using a selection tool as is common in the art. This region of interest is to be trained as the known feature “Forest” into the datastore “syntellibase1” using the TDA and evaluation algorithms as selected at  FIG. 66 . In one embodiment, the panel  1250  directly to the left of the sample image  1252  contains a listing of layers (i.e., processed known features) that are currently available for viewing. In one embodiment, the area  916  located to the left of the workspace contains a listing of any opened datastores and their associated attributes, such as a listing of trained known features  920  and the user-specified TDA. 
         [0294]      FIG. 85  is a screenshot  1200  showing the “Results Summary” dialog box, which displays the results  1210  of known feature training in tabular format. For this example, area training of the user-defined region of interest containing the feature “Forest” (as defined in  FIG. 84 ) into the datastore “syntellibase1” results in the identification of “8,273” new data patterns representing said known feature and “0” new data paths. In addition, there are “2,301” updated data patterns in the datastore; otherwise stated, the number of times the known feature “Forest” is associated with a data pattern already known for said feature is 2,301. 
         [0295]    In one embodiment, these new and updated data patterns are generated as a result of executing the previously selected evaluation algorithms (as defined at  FIG. 66 ) on the data element values within the previously selected region of interest (i.e., the selected area of forest as shown the sample image of  FIG. 84 ) using the training process as described in  FIGS. 23-32 . Within the region of interest, 2,301 data patterns, which were previously associated with the known feature “Forest,” are updated in the synaptic web. In addition, 8,273 data patterns, which were not previously associated with the known feature “Forest,” are created. 
         [0296]    In one embodiment, once training of one or a plurality of user-specified known features is complete and a collection of synaptic paths is stored in association with said feature(s), the feature(s) is considered to be “trained.” Once a known feature is sufficiently trained, in one embodiment the system can be tasked to identify the trained known feature(s) in the same or a different sample data set(s). 
         [0297]      FIG. 86  is a screenshot  1300  showing the “Start” tab  1310  or introduction screen of the “Process Known Feature Wizard,” which guides the user through the step-by-step process of identifying one or a plurality of selected known features. The layout of the “Process Known Feature Wizard” is described in more detail with reference to  FIG. 62 . In one embodiment, the wizard allows a new selection of digital data to be processed using the previously trained datastore(s) in order to determine if one or a plurality of trained known features are present. 
         [0298]      FIG. 87  is a screenshot  1300  showing the “Known Features” tab  1310  of the “Process Known Feature Wizard” wherein one or a plurality of previously created datastores and known features are selected for processing by the user. In one embodiment, the user opts to simultaneously process one or a plurality of known features within any or all of the opened and trained datastores. For this example, the listing of available datastores  1320  contains “syntellibase1”  1322 , and the known feature “Forest” is selected for processing. 
         [0299]      FIG. 88  is a screenshot  1300  showing the “Significance” tab  1310  of the “Process Known Feature Wizard” wherein the user can optionally override the significance processing options as previously set at  FIG. 72 . In one embodiment, multiple known features can be identified by a similar set of algorithm values, and said features are stored in a list that is ordered by the training hit counts of each feature. The feature most often associated with a particular algorithm value set is the first feature in the list and is called the “most significant feature” for that data value path. Because some data value sets are common to more than one known feature, the “Significance” tab of the “Process Known Feature Wizard” presents the user with a choice related to assignment of the action to be taken among said features. In one embodiment, all known features matching a particular data value path are used when the user selects the option button  1330 , “Use any known feature trained for a data point.” In an alternate embodiment, only the known feature trained most often to a particular data value path is used when the user selects the option button  1332 , “Use the known feature trained most often.” In this example, the option button  1330  is selected. 
         [0300]      FIG. 89  is a screenshot  1300  showing the “Training Counts” tab  1310  of the “Process Known Feature Wizard” wherein the user can optionally override the training count values, as previously set at  FIG. 74 , for a single known feature processing run. In one embodiment, the user selects a “Threshold” value  1340  representing the minimum number of times the given known feature must be associated with the synaptic path during training in order to be positively identified for the given synaptic path. In one embodiment, a user selects a “Limit” value  1342  representing the maximum number of times the given known feature can be associated with the synaptic path during training in order to be positively identified for the given synaptic path. It is important to note that for the threshold processing overrides to work here, the known feature must already be set to threshold processing or to cluster and threshold processing; this setting is determined during known feature creation as shown at  FIG. 73 . 
         [0301]      FIG. 90  is a screenshot  1300  showing the “Cluster Range” tab  1310  of the “Process Known Feature Wizard” wherein the user can optionally override the cluster detection parameters, as previously set at  FIG. 75 , for a single known feature processing run. In one embodiment, the user sets the cluster area (i.e., cluster range) size by entering X, Y, Z, etc., “Dimension Values”  1352  for each of the “Dimensions”  1350  of the multispectral or hyperspectral data set. In one embodiment, the user selects the “Cluster Count” value  1354 , which is the number of times the same known feature must occur within the defined cluster area for the known feature to be positively identified for the current data element. It is important to note that for the cluster processing overrides to work here, the known feature must already be set to cluster processing or cluster and threshold processing; this setting is determined during known feature creation as shown at  FIG. 73 . 
         [0302]      FIG. 91  is a screenshot  1300  showing the “Summary” tab  1310  of the “Process Known Feature Wizard” wherein the current known feature processing options are displayed for easy user reference and review. For this example, the number of “Known “Features”  1360  selected for processing is “1”; the “Threshold” override value is “0”  1362 , the “Limit” override value  1364  is “100,000”, the “Significance” processing option override value is “Use any known feature trained for a data point”  1366 ; and the “Cluster Range” override value  1368  sets the “X” dimension cluster range value to “0,” the “Y” dimension cluster range value to “0,” and the “Cluster Count” value to “1.” 
         [0303]      FIG. 92  is a screenshot  1400  showing the “Results Summary” dialog box, which displays the results of known feature processing in tabular format. For this example, the sample image “dam.bmp” is processed using the trained datastore “syntellibase1”  1402 , and the known feature “Forest” is identified a total of “131,656” times using “31,556” possible data patterns  1404  representing said known feature. In addition, the known “Feature Action”  1406 , which is to paint one or a plurality of data elements identified as the known feature “Forest” the color “ForestGreen,” is executed by the system. 
         [0304]    It is important to note that the same evaluation algorithms and the same TDA as are used during known feature training, as described in more detail with reference to  FIGS. 78-83 , must also be used during known feature processing. The algorithmically determined data values and patterns resulting from known feature processing are then compared to the previously trained, identified, and stored algorithm values and data patterns resulting from known feature training for the purpose of positively identifying any previously trained known features contained therein. In one embodiment, when the same algorithm set is executed and returns the same set of values, the same data pattern is developed as was developed in training, and the known feature associated with the data pattern is identified. 
         [0305]      FIG. 93  is a screenshot  900  showing one embodiment of an application to accomplish data analysis and feature recognition. The user-interface features are previously described with reference to  FIG. 69 . For this example, the application workspace is loaded with two sample images: the image “forest.bmp,” and the image “dam.bmp.” The processed image layer “Forest”  1410 , which is shown as the only visible layer over the image “dam.bmp,” represents the results of known feature processing as described in  FIGS. 86-92  and contains a total of 131,656 data elements identified as the known feature “Forest” and painted the color “ForestGreen” (which appears as the color black). Accordingly, the processed image layer “Forest”  1410  contains data patterns matching the 31,556 data patterns identified as the known feature “Forest.” 
         [0306]      FIG. 94  is a screenshot  900  showing one embodiment of an application to accomplish data analysis and feature recognition. The user-interface features are previously described with reference to  FIG. 69 . For this example, the application workspace is loaded with two sample images: the image “forest.bmp” and the image “dam.bmp.” The image layer “Composite”  1420 , which is comprised of the sample image “dam.bmp” and the processed image layer “Forest,” represents the results of known feature processing as described in  FIGS. 86-92  and contains a total of 131,656 data elements identified as the known feature “Forest” and painted the color “ForestGreen” (which appears as black). Accordingly, the processed image layer “Forest” contains data patterns matching the 31,556 data patterns previously identified as the known feature “Forest.” 
         [0307]      FIG. 95  is a screenshot  1400  showing the “Results Summary” dialog box, which displays the results of known feature processing in tabular format. In this example, the sample image “island.bmp” (as shown in  FIG. 84 ) is processed using the trained datastore “syntellibase1”  1402 , and the known feature “Forest” is identified a total of “89,818” times using “17,999” possible data patterns  1404  representing said known feature. In addition, the known “Feature Action”  1406 , which is to “Paint” one or a plurality of data elements identified as the known feature “Forest” the color “ForestGreen,” is executed by the system. 
         [0308]      FIG. 96  is a screenshot  900  showing one embodiment of an application to accomplish data analysis and feature recognition. The user-interface features are previously described with reference to  FIG. 69 . For this example, the application workspace is loaded with three sample images: the image “forest.bmp,” the image “island.bmp,” and another image. The processed image layer “Forest”  1430 , which is shown as the only visible layer over the image “island.bmp,” represents the results of known feature processing as summarized in  FIG. 95  and contains a total of 89,818 data elements identified as the known feature “Forest” and painted the color “ForestGreen” (which appears as the color black). Accordingly, the processed image layer “Forest”  1430  contains data patterns matching the 17,999 data patterns identified as the known feature “Forest.” Also shown in this example, the solid block of the color “ForestGreen” (which appears as a solid block of black) present within the processed image layer “Forest”  1430  represents the user-selected region of interest containing the feature “Forest” within the original sample image “island.bmp” (as shown in  FIG. 84 ); this region of interest is subsequently area trained by the system as the known feature “Forest.” 
         [0309]      FIG. 97  is a screenshot  900  showing one embodiment of an application to accomplish data analysis and feature recognition. The user-interface features are previously described with reference to  FIG. 69 . For this example, the application workspace is loaded with three sample images: “forest.bmp,” “island.bmp,” and another image. The image layer “Composite”  1440 , which is comprised of the sample image “island.bmp” and the processed image layer “Forest,” represents the results of known feature processing as summarized in  FIG. 95  and contains a total of 89,818 data elements identified as the known feature “Forest” and painted the color “ForestGreen” (which appears as black). Accordingly the processed image layer “Forest” contains data patterns matching the 17,999 data patterns previously identified as the known feature “Forest.” 
         [0310]      FIG. 98  is a screenshot  900  showing one embodiment of an application to accomplish data analysis and feature recognition. The user-interface features are previously described with reference to  FIG. 69 . For this example, the application workspace is loaded with three sample images: the image “dam.bmp,” the image “forest.bmp,” and the image “island.bmp.” The sample image “island.bmp”  1450  shows light shaded areas of forest and a dark shaded area of water. Also within the sample image  1450  is a user-defined selection of water, which is delimited by a black outlined polygon drawn using a selection tool as is common in the art. This region of interest is to be trained as the known feature “Water” into the datastore “syntellibase1” using the TDA and evaluation algorithms as selected at  FIG. 66 . 
         [0311]      FIG. 99  is a screenshot  1460  showing the “Results Summary” dialog box, which displays the results of known feature training in tabular format. For this example, area training of the user-defined region of interest containing the feature “Water” (as defined in  FIG. 98 ) into the datastore “syntellibase1” results in the identification of “1” new data pattern representing said known feature and “0” new data paths In addition, there are “0” updated data patterns in the datastore; otherwise stated, the number of times the known feature “Water” is associated with a data pattern already known for said feature is zero. 
         [0312]      FIG. 100  is a screenshot  1500  showing the “Known Features” tab  1510  of the “Process Known Feature Wizard” wherein one or a plurality of previously created datastores and known features are selected for processing by the user. For this example, the listing of available datastores  1512  contains “syntellibase1,” and the known features “Forest” and “Water” are selected for processing. 
         [0313]      FIG. 101  is a screenshot  1500  showing the “Summary” tab  1510  of the “Process Known Feature Wizard” wherein the current known feature processing options are displayed for easy user reference and review. For this example, the number of “Known Features”  1522  selected for processing is “2”; the “Threshold” override value is “0”  1524 ; the “Limit” override value  1526  is “100,000”; the “Significance” processing option override value is, “Use any known feature trained for a data point”  1528 ; and the “Cluster Range” override value  1530  sets the “X” dimension cluster range value to “0,” the “Y” dimension cluster range value to “0,” and the “Cluster Count” value to “0.” 
         [0314]      FIG. 102  is a screenshot  1540  showing the “Results Summary” dialog box, which displays the results of known feature processing in tabular format. For this example, the sample image “island.bmp” is processed using the trained datastore “syntellibase1”  1542 . The known feature “Forest” is identified at total of “89,818” times using “17,999” possible data patterns  1544  representing said known feature, and the known “Feature Action”  1546 , which is to “Paint” one or a plurality of data elements identified as the known feature “Forest” the color “ForestGreen,” “Forest,” is executed by the system. In addition, the known feature “Water” is identified a total of “45,467” times using “1” possible data pattern  1548  representing said known feature, and the known “Feature Action”  1550 , which is to paint one or a plurality of data elements identified as the known feature “Water” the color “Blue,” is executed by the system. 
         [0315]      FIG. 103  is a screenshot  900  showing one embodiment of an application to accomplish data analysis and feature recognition. The user-interface features are previously described with reference to  FIG. 69 . For this example, the application workspace is loaded with three sample images: the image “forest.bmp,” the image “island.bmp,” and another image. The processed image layer “Water”  1570 , which is shown as the only visible layer over the image “island.bmp,” represents the results of known feature processing as described in  FIGS. 100-102  and contains a total of 45,467 data elements identified as the known feature “Water” and painted the color “Blue” (which appears as black horizontal lines). Accordingly, the processed image layer “Water”  1570  contains data patterns matching the “1” data pattern identified as the known feature “Water.” 
         [0316]      FIG. 104  is a screenshot  900  showing one embodiment of an application to accomplish data analysis and feature recognition. The user-interface features are previously described with reference to  FIG. 69 . For this example, the application workspace is loaded with three sample images: the image “forest.bmp,” the image “island.bmp,” and another image. The image layer “Composite”  1580 , which is comprised of the sample image “island.bmp,” the processed image layer “Forest,” and the processed image layer “Water,” represents the result of known feature processing as described in  FIGS. 95-103 . Within the image layer “Composite”  1580 , there are a total of 89,818 data elements identified as the known feature “Forest” and painted the color “ForestGreen” (which appears as black) and  45 , 467  data elements identified as the known feature “Water” and painted the color “Blue” (which appears as black horizontal lines). The data elements of the image layer “Composite” that remain unpainted (white) represent the data elements that are not trained as either the known feature “Forest” or the known feature “Water.” For example, the area  1590 , which appears to contain the known feature “Water” (as shown in  FIG. 84 ), actually contains data patterns that do not match the data patterns associated with either the known feature “Forest” or the known feature “Water”; these unidentified data patterns most likely represent areas of shallow water or shoreline. 
         [0317]    While the preferred embodiment of the invention has been illustrated and described, as noted above, many changes can be made without departing from the spirit and scope of the invention. Accordingly, the scope of the invention is not limited by the disclosure of the preferred embodiment. Instead, the invention should be determined entirely by reference to the claims that follow.