RELATED APPLICATIONS  
       [0001]    This application is related to co-pending patent application Ser. No. 09/070,110, entitled “METHOD AND APPARATUS FOR BIOMATHEMATICAL PATTERN RECOGNITION,” filed on Apr. 29, 1998; U.S. Provisional Application Serial No. 60/395,960 entitled “PATTERN RECOGNITION APPLIED TO OIL EXPLORATION AND PRODUCTION” by Robert Wentland, et al., that was filed on Jul. 12, 2002; U.S. Provisional Application Serial No. 60/395,959 entitled “PATTERN RECOGNITION APPLIED TO GRAPHIC IMAGING” filed on Jul. 12, 2002, by inventors Robert Wentland, et al.; [Attorney Docket No. 066543.0104] entitled “METHOD, SYSTEM, AND APPARATUS FOR COLOR REPRESENTATION OF SEISMIC DATA AND ASSOCIATED MEASUREMENTS” by Robert Wentland, et al, that was filed contemporaneously with this application; and [Attorney Docket No. 066543.0105] entitled “PATTERN RECOGNITION TEMPLATE CONSTRUCTION APPLIED TO OIL EXPLORATION AND PRODUCTION” by Robert Wentland, et al, that was filed contemporaneously with this application; and [Attorney Docket No. 066543.0106] entitled “PATTERN RECOGNITION TEMPLATE APPLICATION APPLIED TO OIL EXPLORATION AND PRODUCTION” by Robert Wentland, et al, that was filed contemporaneously with this application, and the latter five applications are hereby incorporated by reference herein for all purposes.  
     
    
     
       FIELD OF THE INVENTION  
         [0002]    The present invention relates generally to oil exploration and production. More particularly, the present invention relates to applying pattern recognition templates to geophysical data in combination with geological, geophysical and engineering data processing, analysis and interpretation for hydrocarbon exploration, development, or reservoir management on digital computers.  
         BACKGROUND OF THE INVENTION TECHNOLOGY  
         [0003]    Many disciplines can benefit from pattern recognition. Disciplines where the benefit is greatest share characteristics and needs. Some common characteristics include large volumes of data, anomalous zones of interest that are mixed together with a large number of similar non-anomalous zones, timeframes too short to allow rigorous manual examination, and anomalies that manifest themselves in many ways, no two of which are exactly the same. Analysis of the data is usually done by highly trained professionals working on tight time schedules. Examples of these disciplines include, but are not limited to, hydrocarbon exploration and medical testing.  
           [0004]    Exploring for hydrocarbon reservoirs is a very competitive process. Decisions affecting large amounts of capital investment are made in a time-constrained environment based on massive amounts of technical data. The process begins with physical measurements that indicate the configuration and selected properties of subsurface strata in an area of interest. A variety of mathematical manipulations of the data are performed by computer to form displays that are used by an interpreter, who interprets the data in view of facts and theories about the subsurface. The interpretations may lead to decisions for bidding on leases or drilling of wells.  
           [0005]    A commonly used measurement for studying the subsurface of the earth under large geographical areas is seismic signals (acoustic waves) that are introduced into the subsurface and reflected back to measurement stations on or near the surface of the earth. Processing of seismic data has progressed hand-in-hand with the increased availability and capabilities of computer hardware. Calculations performed per mile of seismic data collected have increased many-fold in the past few years. Display hardware for observation by a human interpreter has become much more versatile.  
           [0006]    When an interpreter makes decisions from the seismic and other data, all of the data is used with some knowledge of geology of the area being investigated. The decisions involve identification, analysis, and evaluation of the geological components of an oilfield, which include the presence of a reservoir rock, presence of hydrocarbons, and the presence of a container or trap. The rationale for the decisions that were made was based on both the geologic information and the data. That rationale is not generally documented in detail for seismic data analysis due to the large amount of data and information being analyzed. Therefore, it is difficult to review the history of exploration decisions and repeat the decision process using conventional procedures. The relative importance attached to the many characteristics shown in the seismic data and known from the geology is a subjective value that does not become a part of the record of the exploration process.  
           [0007]    It is recognized that seismic data can also be used to obtain detailed information regarding producing oil or gas reservoirs and to monitor changes in the reservoir caused by fluid movement. Description of neural network modeling for seismic pattern recognition or seismic facies analysis in an oil reservoir is described, for example, in “Seismic-Pattern Recognition Applied to an Ultra Deep-Water Oilfield,”  Journal of Petroleum Technology  August, 2001, page 41). Time-lapse seismic measurements for monitoring fluid movement in a reservoir are well known. The fluid displacement may be caused by natural influx of reservoir fluid, such as displacement of oil by water or gas, or may be caused by injection of water, steam or other fluids. Pressure depletion of a reservoir may also cause changes in seismic wave propagation that can be detected. From these data, decisions on where to drill wells, production rates of different wells and other operational decisions may be made. The neural network technique usually assumes that all significant combinations of rock type are known before analysis is started so that they can be used as a training set. This assumption is usually acceptable when analyzing fully developed fields but breaks down when only a few or no wells have been drilled. Common implementations of the neural network technique usually assume selection of the location of the geology of interest is an input that is determined prior to the analysis and often selects it using an analysis gate of fixed thickness. As the geology of interest is not always well known, the geology of interest should be a product of the analysis, not an input. Moreover, geology of interest rarely has a fixed thickness. The thickness varies significantly as the depositional process varies from place to place, sometimes by an amount that is sufficient to significantly degrade the result of the neural network analysis. This form of analysis includes information extraction and information classification in a single step that has little of no user control.  
           [0008]    U.S. Pat. No. 6,336,943 B1 discloses a neural network-based system for delineating spatially dependent objects in the subsurface from seismic data. The application of neural networks to seismic data interpretation has been widely investigated.  
           [0009]    U.S. Pat. No. 6,336,596 B1 discloses the use of a Voxel Coupling Matrix, which is developed using a finite number of neighboring voxels forming a textile. “Texture attributes” are developed. The attribute volumes are then used as inputs into an attribute-trace classification method to produce a seismic interpretation volume. The interpretation volume is displayed using distinct colors to represent various numbers of classes of reflection patterns present within the seismic volume. The aforementioned technique is an example of a class of image analysis called texture matching. These techniques have a significant trade off. While larger textiles (blocks of neighboring voxels) give better results, larger textiles smear out and blur the resulting image. Smaller textiles give better image resolution and edges but give poorer results. Success in finding a textile size that gives results of adequate quality with sufficiently small blurring is difficult often very difficult, especially when the rock layers are dipping rather than horizontally flat. The analysis classifies textures which is only one class of attributes the others being features and patterns.  
           [0010]    U.S. Pat. No. 6,151,555 discloses a workstation computer system and an associated method and program storage device. U.S. Pat. No. 6,131,071 discloses a method for processing seismic data to provide improved quantification and visualization of subtle seismic thin bed tuning effects and other lateral rock discontinuities. A reflection from a thin bed has a characteristic expression and the frequency domain that is indicative of the thickness of the bed. The method may be applied to any collection of spatially related seismic traces. Other methods of presentation of seismic data are disclosed in the patent and technical literature.  
           [0011]    While 3D seismic produces images of structures and features of the subsurface of the earth over very large geographical areas, it does not interpret those images. A trained geoscientist or specialist performs the interpretation. Unfortunately, reliance upon a relatively few qualified individuals increases the cost of the interpretation process and limits the number of interpretations that can be made within a given period. This makes current seismic interpretation techniques impractical for the analysis of the very large volumes of seismic data that are currently available. As a result of the large and growing amount of available data, there is a need in the art for a knowledge capture technique where the information in the 3D seismic data that the specialist looks at is captured by a pattern recognition process. Ideally, the pattern recognition process would be repeated for large amounts of data in a screening process, with the results displayed in an intuitive manner so that the specialist can quickly perform quality control on the results, and correct noise induced errors, if any.  
           [0012]    What is needed is a way to capture in a template and reuse the information used to perform a pattern analysis including the computation of the feature, pattern, and texture extraction, the decision surfaces required to classify the data, and the parameters required to visualize the results. Moreover, a data analysis specialist should not be required to rely on analysis of non-visual measures of object characteristics. The information describing the visual characteristics of seismic data should be stored in a way that allows the data specialist to interact with the information to infer and extract geological information and to make a record of the exploration process. Templates with various uses and for various geological settings should be stored and retrieved for later reuse.  
           [0013]    The above-identified needs are shared across many disciplines yet the specific nature and the characteristics of the anomalies vary across disciplines and sometimes within a single problem. Thus there is a need for a common method of analysis that is capable of being applied to a wide variety of data types and problems, yet it is capable of being adapted to the specific data and problem being solved in situations where required.  
         SUMMARY OF THE INVENTION  
         [0014]    The present invention solves many of the shortcomings of the prior art by providing an apparatus, system, and method for identifying hyperdimensional fragments in a PDB that identify geological targets of interest, stored them as a part of a template, optimizing the templates, verifying the templates, and storing the templates of the known data in a template database (“PDB”). The present invention is applicable to a variety of applications where large amounts of information are generated. These applications include many forms of geophysical and geological data analysis including but not limited to 3D seismic.  
           [0015]    However, it is not simply what is accomplished, but of equal importance are how it is accomplished and how the intermediate and final products are organized and stored. Specifically, it is the order in which the tools of the method of the present invention are used that provides the great benefits of the present invention. In general, the method of the present invention first builds a pattern database for a target data set with known targets and if possible known non-targets. It then builds a template for identifying targets using either a previously determined template or a set of default parameters. Next the method repeatedly tests the template, identifies cases where it fails, and refines the template until failures are minimized. The result is stored in a template database.  
           [0016]    The present invention makes extensive use of templates for knowledge capture. Templates are feature, pattern, and texture decision surfaces that are used by the associated classifiers to find like structures. Known patterns that are captured in templates can then be compared, in an automated fashion, to new data to detect similar patterns and hence find the desired features in the new data. The templates also contain all of the processing and display parameters required to start with an initial data set and create a final product in a batch data computer run without human intervention. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0017]    Referring now to the drawings, the details of the preferred embodiments of the present invention are schematically illustrated.  
         [0018]    [0018]FIG. 1 a  is a diagram of the pattern pyramid and associated levels of abstraction FIG. 1 b  is a diagram of an example of a pattern pyramid for data with three spatial dimensions  
         [0019]    [0019]FIG. 1 c  is a diagram of the pattern pyramid, an example of the components within each level, plus an example of a hyperdimensional fragment  
         [0020]    [0020]FIG. 1 d  is a block diagram of the apparatus of the present invention.  
         [0021]    [0021]FIG. 2 a  is a diagram of pattern pyramid comparison to a template using hyperdimensional fragments  
         [0022]    [0022]FIG. 2 b  is a diagram of defining decision surfaces with hyperdimensional fragments and binding strengths.  
         [0023]    [0023]FIG. 2 b  is a diagram of defining decision surfaces with hyperdimensional fragments and using minimum and maximum thresholds  
         [0024]    [0024]FIG. 3 is a flowchart illustrating an embodiment of a method of verifying and tuning a template.  
         [0025]    [0025]FIG. 4 is a flowchart illustrating an embodiment of a method of creating a pattern data base from a template  
         [0026]    [0026]FIG. 5 is a flowchart illustrating an embodiment of a method of applying a template to a target data set.  
         [0027]    [0027]FIG. 6 is a flowchart illustrating an embodiment of a method of data mining with a template.  
         [0028]    [0028]FIG. 7 is a flowchart illustrating an embodiment of a method of applying a template to a target data set as a batch process. 
     
    
       [0029]    The present invention may be susceptible to various modifications and alternative forms. Specific embodiments of the present invention are shown by way of example in the drawings and are described herein in detail. It should be understood, however, that the description set forth herein of specific embodiments is not intended to limit the present invention to the particular forms disclosed. Rather, all modifications, alternatives, and equivalents falling within the spirit and scope of the invention as defined by the appended claims are intended to be covered.  
       DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0030]    The present invention includes a system for and method of extracting, organizing, and classifying features, patterns, and textures from a data set. The data and the information extracted therefrom, is organized as a pattern hierarchy and stored in a pattern database. The present invention also provides a system for the segmentation and the analysis of geological objects, for example, by identifying, extracting, and dissecting the best estimate of hydrocarbon filled reservoir rocks from band-limited acoustical impedance (“RAI”) data computed from 3D seismic data or, if available, broadband acoustical impedance (“AI”) computed from 3D seismic data, stacking velocities, well logs, and user supplied subsurface structural models. In addition the present invention includes a system for capturing the knowledge of the geoscientists operating the present invention in templates and reusing the templates for automated mining of large volumes of data for additional geological objects.  
         [0031]    The following are definitions of terms that are used in the description of the present invention. Terms not defined herein retain their common usage.  
         [0032]    Abstraction Process: An abstraction process is a process of successive identification of features, patterns, and textures within data and storing the results of each step into a layer within a pattern database.  
         [0033]    Affinity: See Binding Strength.  
         [0034]    Auto-track: An auto-track is the process of building objects by identifying spatially connected zones with a common attribute, collection of attributes, a common hyperdimensional fragment, or satisfying a template.  
         [0035]    Attribute/Attributing: Intuitively, an attribute it is a characteristic or measurement of data. For the purposes of the present invention, it is defined as the measurements used to characterize the data at a given level of the pattern pyramid. In addition to characterizing the data, attributes can characterize the cuts or the boundary representation of objects after segmentation. Examples include local curvature measurements on the exterior of a segmented geological reservoir in geoscience, or colon in medical studies. Examples are features, patterns, and textures.  
         [0036]    Attribute Location: The attribute location is the physical starting and ending location in the data set defining the location of an attribute.  
         [0037]    Azimuth: See Dip/Azimuth.  
         [0038]    Binding Strength: Binding strength is a threshold which is supplied by the operator that sets the degree of match required to determine if the known data matches the target data. The binding strength allows the present invention to recognize patterns in data that contains defects or noise or where a perfect match is not required. It is implemented as the threshold of values for each level of a hyperdimensional fragment.  
         [0039]    Classifiers: Classifiers are a computational method (algorithm) that sorts out data into various sets with common characteristics or classes. See template.  
         [0040]    Classification: Classification is the process of applying classifiers or templates. For the purposes of the present invention it is the process of identifying hyperdimensional fragments in the pattern database of the target data set that match, within a given binding strength, the hyperdimensional fragments of a known data set.  
         [0041]    Cut/Cutting: Cut and cutting is the process of subdividing the data into a collection of one-dimensional fragments.  
         [0042]    Cutting Criteria: The cutting criteria are a set of methods and related parameters for creating fragments. The specific method depends on the nature of the data and the objective of the analysis. The simplest example is to choose a fixed length of data samples. A more complex method is to perform cuts based on changes in the data values such as sign changes, identification of edges, and others. Either of the above examples result in cuts with varying spatial lengths. Variable length cuts give rise to a topological surface that has measurable characteristics or attributes. While cuts of variable spatial lengths are possible, cuts of uniform length are also possible.  
         [0043]    Data Mining: Data mining is the process of applying templates from a template database to one or many target data sets creating output objects, in scenes, that satisfy the template.  
         [0044]    Decision Surface: The decision surface is a surface that separates two or more classes during classification. For the present invention it exists each of the feature level, pattern level, and texture level and is defined by a hyperdimensional fragment plus a non-zero binding strength that performs classification at each of the levels of abstraction. A template is a concatenation of the decision surfaces for each level of abstraction.  
         [0045]    Dip/Azimuth: A dip or azimuth is a measurement system used to measure the orientation of geological formations. It refers to the orientation of a plane that is tangent to the surface of a rock layer at a given map location. They are two angles defining the orientation of a vector that points in a direction that maximizes the vectors dip magnitude and lies on the tangent plane. The dip angle is referenced to the horizon, which is a horizontal plane oriented so that its normal points toward the center of the earth at the location of interest. Dip is the angle the vector makes relative to the horizon. When the vector is projected onto the horizon plane, strike is the angle from the projected vector to a unit vector pointing north.  
         [0046]    Earth Manifold: An earth manifold is, mathematically, a manifold is a topological space that is only locally Euclidean. It consists of a collection of local coordinate charts and a set of transformations between the charts. The transformations allow motion from one chart to the next. For the present invention the manifold is also required to be piecewise continuous. Intuitively it is a space that was distorted. One example of a manifold is the globe manifold, which is the 3D space representing the surface of the planet earth. It has been mapped using a set of maps (locally Euclidean coordinate charts) and a convention (overlapping of the maps) for moving from the edge of one map to the corresponding edge of the next (set of transformations). To describe the subsurface of the earth the 3D earth manifold follows the undulating geology. Each fragment, or a related coordinate neighborhood, has a coordinate chart defined by the local strike and dip of the rock layers (plus the normal to both) and rules for connecting them together along the rock layers. For problems where the space on which the attributes of interest occur has been distorted, pattern analysis is performed on a manifold.  
         [0047]    Edge: An edge occurs where the data or attribute(s) of the data changes significantly at a given spatial location. In other words, an edge occurs at locations where the derivative of the attribute(s) has a peak. In reality, edges are often not sharp and are obscured by various noises in the data. Also, see segmentation and cutting.  
         [0048]    Feature: A feature is the smallest interpretable and classifiable measurement that can be made on the data. It is one member of a feature set. Also, see feature set, visual feature set, and feature space.  
         [0049]    Feature Location: The feature location is the physical starting and ending location that defines the spatial position of a feature.  
         [0050]    Feature Set: A feature set is a set of feature attributes that represent the state of the data or image at each feature location in the image. Different feature sets are selected to classify data in various ways. Also, see feature, visual feature set, and feature space.  
         [0051]    Feature Space: The feature space is, Mathematically and specifically topologically, a feature set is represented by a vector space (state space) where each axes of the space is a feature attribute. The smallest feature attribute set, which is also the computationally most efficient set, is described mathematically as a set, or basis of the vector space, where each member of the set is linearly independent. Linearly independent means that one axes, or set member, is not a linear combination of the other set members. Each feature attribute represents a degree of freedom of the image. When all of the degrees of freedom are represented as feature attributes, then the feature set, which is also the basis of the vector space, are described as spanning. Intuitively spanning means that a feature set can be recombined to exactly recreate the data from which it was measured. In practice a feature set capable of spanning the feature space is defined, but to reduce computation time only the features required to solve the problem are computed.  
         [0052]    Fragment: A fragment is a one-dimensional interval that has a physical size and spatial location. It is the smallest interval at the given spatial location within which attributes can be measured. Fragments may be defined as having a fixed physical length or include a fixed number of attribute values. They may also have a variable physical length where the fragment is cut using cutting criteria that are a function of the data, attributes, or statistics of any lower level in the pattern pyramid. Variable length fragments usually lay between data value, attribute, or statistic edges. Fragments are cut at each of the feature, pattern, or texture levels of the pattern pyramid. Also, see fragment sequence.  
         [0053]    Fragment Orientation: When the data being analyzed has more than one dimension a fragment orientation needs to chosen while cutting the data into fragments. For example 3D seismic is often measured in a three dimensional space with three axes, line, xline, and time. Other 3D data is often measured in three-dimensional space in three axes, x, y, and z. Thus, the fragment orientation can be aligned along any of these three axes. Another option is to align the fragment orientation along the earth manifold in the dip, strike, or normal (to the rock layers) direction, or in an alternate coordinate system, such as a geology or tissue aligned manifold.  
         [0054]    Fragment Sequence: A fragment sequence is the sequence of data, attribute, or statistic values that occur within a fragment.  
         [0055]    Global Statistic: A global statistic is a statistical comparison of the value of the attribute of interest at a particular location in a data set to the value of this attribute at all locations of the data set. Also, see statistic and local statistic.  
         [0056]    Hyperdimensional Fragment: A hyperdimensional fragment is a fragment that extends vertically through the various levels of a pattern pyramid. It represents an ordered collection of attributes containing members from each level. At each level, the hyperdimensional fragment contains a single point and the associated attribute value. If required, a binding strength, which is a set of thresholds representing a range of values about the attributes at each level above the data level, can be used. It is defined for both known data and target data and is used for the simultaneous classification of features, patterns, and textures. See template and classification. Mathematically, topologically, it is a fiber view of the tangent spaces represented by the levels of the pattern pyramid. In terms of pattern recognition, it represents a classifier derived from the known data that is used to perform classification of the target data.  
         [0057]    Known Data: Known data are a specified portion of a geophysical data set containing either a geological analog that is a known hydrocarbon deposit or an example composed of a subset of the geophysical data that is identified by a geoscientist as a potential hydrocarbon deposit. It is chosen to include primarily the item of interest and little else.  
         [0058]    Local Statistic: Local statistic is a statistical comparison of the value of the attribute of interest at a particular location to the value of this attribute in a local coordinate neighborhood. The size of the path is operator selected. Also, see statistic and global statistic.  
         [0059]    Object: An object is a spatially connected body within a scene that has a common attribute, hyperdimensional fragment (collection of attributes), or fits a template. Software objects are not to be confused with an object of the present invention. Software objects retain their standard meaning.  
         [0060]    Object Space: An object space is a manifold space that represents either the exterior boundary of an object or the interior of an object. An example of a 3D manifold is the surface on the outside of an object. Another example is the 3D manifold representing rock layers within the earth.  
         [0061]    Object Attribute: An object attributes are the measurable properties that is associated with an object&#39;s boundary representation or outside edge. An example of an object attribute is the local curvature of the exterior surface of an object.  
         [0062]    Pattern: A pattern is a naturally occurring repetition of feature attributes in a fragment sequence. Also, see Pattern Space.  
         [0063]    Pattern Database (PDB): A pattern database is a database that consists of several levels of attributes (usually features, patterns, and textures) within a data set. It can be a relational database containing the attributes. It can also be an object database containing the attributes as parameters and the reduction process computations as methods plus other parameters and methods if required for data handling and/or display.  
         [0064]    Pattern Location: The pattern location is the physical starting and ending location that defines the spatial position of a pattern.  
         [0065]    Pattern Pyramid: A pattern pyramid is a diagram that represents the pattern database. The pyramid sits on a broad rectangular base representing the data. A triangle sets on the base that decreases in width upward. The triangle has 3 levels consisting from bottom to top of features, patterns, and textures. The width at each level represents the number of fragments at that level, which decreases as the level of abstraction increases. Mathematically, topologically, the levels of the pattern pyramid represent tangent spaces of the data set.  
         [0066]    Pattern Recognition: Pattern recognition is the analysis of data for making a decision. It involves making measurements on the data (pattern attributes and data statistics), analyzing the measurements (classification) and making a decision (computing a decision surface).  
         [0067]    Pattern Space: Physical space is determined by a transformation from feature space to pattern space. Pattern space is an abstract vector space (state space) where each axes of the space represents a degree of freedom of the patterns in the image. Each location in the fragment sequence (NF) and each member of the associated feature set represent the degrees of freedom (NM). Thus, the pattern space has a dimension of D=NF×NM. For example, a fragment sequence of length  3  with only 1 measured feature is a 3D space. There are several methods of assigning pattern attribute values. One is to identify clusters in pattern space, assign numbers to the clusters, and use the cluster number as the pattern attribute number. A second is to simply bin the space and assign the bin numbers to the pattern attributes. A third is to identify the location where the pattern maps into pattern space and use the coordinates as pattern attribute values. In practice it is computationally more efficient to estimate the pattern space by transforming only selected portions of the feature space. Also, see pattern.  
         [0068]    Physical Space: Physical space is the space within which the data is measured or sampled. It is usually a Euclidean space. For problems where the space on which the patterns of interest occur has not been distorted, attribute calculations are performed on the physical space. For seismic data, the axes of the physical space are inline, xline, and time. The time axes refers to the two way travel time of sound through the earth. Sometimes time is replaced by subsurface depth.  
         [0069]    Scene: Intuitively, a scene is a spatial region that is viewable and contains one or more objects. It is analogous to a room that is being viewed by an observer where the room contains furniture objects and people objects, all of which can be viewed. For the purposes of the present invention, a scene is a collection of objects. It is implemented as an integer data cube that contains integer numbers that represent object numbers plus a null value. Data points containing the null value represent null zones, which are not assigned to objects. Zones containing object numbers are assigned to the objects associated with the specific numbers.  
         [0070]    Statistic/Statisizing: Statistic is a method of analyzing the attributes of each layer in the PDB for the purpose of analyzing the probability of a selected occurrence of the attribute occurring elsewhere in the entire data set or in a selected local coordinate neighborhood. Also, see local statistic, and global statistic. Statisizing is the process of applying the statistic method.  
         [0071]    Target Data: Target data is a geophysical data set that is to be analyzed. Examples include seismic, electrical, magnetic, optical, or other form of measurements that measure rock properties. Target data is usually in the form of a 3D voxel cube although higher or lower spatial dimensions or analog data may also be used. The data that is most frequently used is 3D seismic data. To allow analysis of the rock layers rather than their interfaces, band-limited acoustical impedance is usually used. To maximize the quality of the analysis, the broadest bandwidth that can be reliably computed should be used. In terms of pattern recognition this is a data set to be classified into targets and non-targets by the hyperdimensional fragment which functions as a classifier.  
         [0072]    Template: Intuitively a template is a sorting device for selecting a subset of a data collection where each member of the subset matches the template. It is implemented in software as a collection of one or more decision surfaces. For the purposes of the present invention, a template contains a hyperdimensional fragment representing the pertinent contents of the pattern database of a known data plus the binding strength. It is applied to the hyperdimensional fragments of the PDB of a target data set to identify targets. In addition, a template can contain decision surfaces that are related to object attributes that are properties of the objects boundary representation. An example is selecting objects for which the local curvatures lie within a given range of values as defined by decision surfaces in the template.  
         [0073]    Template database: A template database is a database that contains one or more templates. It can be stored as data files, in a relational database, or in an object database.  
         [0074]    Texture: Intuitively, a texture is the visual characteristic of a cloth that is composed of closely interwoven threads where the threads have unique patterns. It is a measurement of the order of repeated patterns in a series of spatially adjacent fragment sequences. Also, see Texture Space.  
         [0075]    Texture Location: The texture location is the physical starting and ending location that defines the spatial position of a texture.  
         [0076]    Texture Space: Texture space is, mathematically (topologically), an abstract vector space (state space) that is computed as a transformation from a pattern space to the texture space. The transformation is computed in the same way as transforming from feature space to pattern space with the exception that the input is a pattern space. In practice, it is computationally more efficient to estimate the pattern space by transforming only selected portions of the feature space. Also, see texture.  
         [0077]    Visual feature set: A visual feature set is a feature set designed to classify data based on its visual appearance. An instance of a visual feature set is the one a shipping company uses to classify packages. The feature set is measurements of boxes including length, width, height, and shape (square, rectangular, etc.). An instance of a visual feature set that is used by seismic stratigraphers and interpreters to analyze band-limited acoustical impedance (inverted seismic) includes distance between zero crossings, maximum amplitude, and shape (skewed upward, skewed downward, single peak, multiple peaks, shoulder). Also, see features.  
         [0078]    Voxel cube: A voxel cube is a 3D regular, ordered, quadmesh representing discreet measurements in a Euclidean space. A voxel cubes are also referred to as 3D pixels.  
         [0079]    Pattern Recognition of Geoscience and Geological Data  
         [0080]    The first step of the pattern recognition method of the present invention is feature extraction. Feature extraction comes in many forms, and tends to be specific to the type of problem encountered. For example, in seismic data analysis, geological features are extracted. Most traditional methods of feature extraction for seismic data involve mathematical algorithms that focus on the measurements of the sound rather than on the visual appearance of the displayed data. Most geophysicists, however, think of geology in a visual way, which makes analysis and interpretation of traditionally extracted seismic signal features difficult. Many other examples and uses for the feature extraction and imaging technique of the present invention will be apparent upon examination of this specification.  
         [0081]    In general, a mathematical representation of features describes the local state of a system. The features are then represented as a vector in an abstract vector space or tangent space called the feature state space. The axes of the state space are the degrees of freedom of the system, in this case the features of the image. To minimize the amount of information required to represent the state of the image it is preferred that the features, axes of the state space, be linearly independent. The features have the capacity to “span the signal,” or to describe all seismic attributes such that, for example, a geophysicist could accurately recreate the underlying geology.  
         [0082]    Using seismic data as an example, geological features are extracted for performing pattern recognition on a seismic data set. Feature descriptors of seismic data tend to be one-dimensional, measuring only one aspect of the image, such as measuring only properties of the signal at specific locations in the signal. These feature descriptors taken singly do not yield enough information to adequately track geology. The relationship these measurements have with their local neighbors contains information about depositional sequences which is also very important geological information. Thus, the relationship features have with their neighbors and the total data set also needed to be analyzed.  
         [0083]    The present invention utilizes a hierarchical data structure called a pattern pyramid that is stored in a pattern database (PDB). The pattern database employs a process that is based on DNA-like pseudo sequencing to process data and places the information into a pattern database. This database contains the data plus features and their relationship with the data and, in addition, information on how the features relate with their neighbors and the entire data set in the form of pattern, textures, and related statistics.  
         [0084]    Intuitively the basic concept of the pattern pyramid is that complex systems can be created from simple small building blocks that are combined with a simple set of rules. The building blocks and rules exhibit polymorphism in that their specific nature varies depending on their location or situation, in this case the data being analyzed and the objective of the analysis. The basic building block used by the present invention is a fragment sequence built from a one-dimensional string of data samples. A pattern pyramid is built using fragment sequences (simple building blocks) and an abstraction process (simple rules). The specific definition of the building blocks, cutting criteria, exhibits polymorphism in that the algorithm varies depending on the data being analyzed and the goal of the analysis. Similarly, the abstraction process exhibits polymorphism in that the algorithm depends on the data being analyzed and the goal of the analysis.  
         [0085]    A pattern database is built for known data, which functions as a reference center for estimating the locations in the target data that are potential hydrocarbon deposits. The estimation is accomplished by building a pattern database for the target data using the same computations as for the known data and comparing the pattern databases. The pattern pyramids have several levels of abstraction which may include features, patterns, and textures. The pattern pyramids are built using an abstraction process. Comparing the pattern databases is performed by defining a hyperdimensional fragment which associates the appropriate pattern information in the pattern database to the specific data samples from which they were computed. Classification of the target data into portions which match the known data and portions which do not match is accomplished by searching through the hyperdimensional fragments of the target data and comparing them to the hyperdimensional fragments for the known data (the classifier) to identify matches. Intuitively this means that for the target data to match the known data at any location not only do the data values need to agree but the data values must also be a part of local features, patterns and textures that also agree adequately. Thus, the present invention not only performs pattern recognition, but is also capable of performing feature recognition, texture recognition, and data comparison all at the same time as required for solving the problem.  
         [0086]    To allow for natural variation or noise in the data, exact matches do not have to be required. This is accomplished by defining a binding strength or affinity which allows hyperdimensional fragments that are reasonably similar but not exactly the same to be classified as matched. The hyperdimensional fragment selected by the geoscientist operating the present invention captures the operators&#39; knowledge of what is a desirable outcome, or in other words what a hydrocarbon filled reservoir looks like.  
         [0087]    The hyperdimensional fragments and associate abstraction process parameters can be saved as a template into a template database. One or more templates can be checked out from the library and applied to large volumes of target data to identify targets. Targets which have been segmented out of the data set are stored as objects in a collection of objects called a scene. The objects, along with additional data the geoscientist adds to them, become a list of drilling opportunities.  
         [0088]    Oil Exploration &amp; Production Uses  
         [0089]    This invention is capable of being used for geological, geophysical and engineering data processing, analysis and interpretation for hydrocarbon exploration, development, or reservoir management. It supports application for a variety of types of geophysical data. The present invention is flexible and extensible allowing adaptation to provide solutions to many geoscience problems.  
         [0090]    For example, the present invention is capable of being used to analyze 3D seismic target data set with the goal of identifying the drilling target locations that represent potential hydrocarbon bearing reservoir rock. An ideal path to reaching this goal is to directly locate and analyze the hydrocarbons in reservoirs. Experience has shown that geology is diverse and complex and geophysical tools (other than drilling) do not directly measure the existence of hydrocarbons. Thus, oil finders build a set of corroborating evidence to decrease risk and increase the probability of drilling success, where success is defined as locating profitable hydrocarbon accumulations. Accomplishing this involves using several forms of geological and geophysical analysis, the goal of which is to identify sufficient evidence of the three basic components of an oil field, which are a reservoir, a charge, and a trap. Identifying a reservoir involves collecting evidence of the existence of a rock having the property that it is capable of holding sufficient hydrocarbons (adequate porosity) and the property that allows the hydrocarbons to be removed from the earth (adequate permeability). Identifying a charge involves collecting evidence that a hydrocarbon is present in the reservoir rock (bright spots, fluid contacts, and others). Another way is to identify a source rock that is or was expelling hydrocarbons and a hydrocarbon migration path to the trap. Identifying a trap involves collecting evidence that the earth structure and/or stratigraphy forms a container in which hydrocarbons collect forming structural traps, stratigraphic traps, or a combination of the two. When the identification of a reservoir, charge, and trap are complete the result is called a lead. After a full analysis of the reservoir, charge, and trap plus risk analysis, economic analysis, and drilling location selection the lead becomes a prospect that is ready to be drilled. The probability of success is highest when there is strong evidence that a reservoir, charge, and trap all exist, that they exist in the same drillable location, and that they can be profitable exploited. Our objective is to construct a pattern recognition process and associated tools that identify a location with all of the constituent parts of a lead and to quantify them to covert a lead into a prospect.  
         [0091]    When it is applied to 3D seismic, the present invention identifies a potential reservoir through feature analysis, identifies hydrocarbon indications through pattern and texture analysis, and identifies the presence of a depositional process that deposits reservoir rock though texture analysis. It is also capable of identifying the presence of a trap by determining the presence of stratigraphic sequences that create stratigraphic traps through texture analysis and the determining the presence of structural trapping components through fault identification by edge identification. In addition it is capable of identifying the presence of a charge by locating stratigraphic sequences capable of expelling hydrocarbons through feature, pattern, and texture analysis plus determining the presence of faults in the neighborhood through fault identification. The final step of associating and validating the three components of an oil field is usually accomplished by a geoscientist.  
         [0092]    After a lead has been identified the pattern database, along with appropriate visualization, could be used to perform reservoir dissection. This is a study of the internal characteristics of the reservoir to estimate the economics and convert the lead into a prospect.  
         [0093]    After an oil field has been discovered the present invention is capable of being used to improve reservoir characterization, which is the estimation of rock properties (rock type, porosity, permeability, etc.), and fluid properties (fluid type, fluid saturations, etc.). Rock types and properties are a function of the geologic process that deposited them. In addition to information about the rock&#39;s acoustical impedance, the local features, patterns and textures contain information about depositional processes. Thus, the rock type and property estimations can be improved by including the feature, pattern, and texture information while estimating them.  
         [0094]    In addition to the above seismic analysis methods, the present invention could be used for portions of data processing. Examples include but are not limited to, automatic stacking velocity picking, automatic migration velocity picking, noise identification, and noise muting.  
         [0095]    The present invention is also capable of performing data set registration and comparison by successively aligning textures, patterns, and features. When applied to seismic it includes registering shear data to compressional data, registering 4D seismic data, registering angle stacks for AVA analysis, and others.  
         [0096]    3D Seismic First Pass Lead Identification  
         [0097]    This example performs first pass lead identification through simultaneous identification of a potential reservoir through feature analysis, identification of hydrocarbon indications through pattern and texture analysis, and identification of the presence of a depositional process, that deposits reservoir rock, though texture analysis. One way to do this is to use a known data set, which represents a successful lead or example lead, and compare the target data to known data. For this example, the goal is to identify reservoirs that occur in all forms of traps. Thus, it is preferable to disassociate the structural aspects of the earth from the stratigraphic, rock property, and hydrocarbon indication aspects. During this analysis, the structural aspects are not used. After the potential lead is identified using this example, the existence of a trap and charge will be determined.  
         [0098]    For 3D seismic lead identification, the overall process starts by building a pattern database with successive levels of abstraction (features, patterns, and textures) for the known data. After the pattern database building process has been applied to a set of known data, and the minimum set of attributes that characterize the known data has been identified, the pattern database is applied to a set of data to be analyzed (the “target data”). The data of each set are subjected to the same series of steps within the abstraction process.  
         [0099]    Before or during the comparison an affinity or binding strength is selected by the operator which determines how closely the known data has to match the target data to result in a target being identified. The binding strength helps to identify features, patterns, and textures in the target data that adequately match, but do not exactly match, the desired features, patterns, and textures in the known data.  
         [0100]    Next the pattern database for the known data is compared to that of the target data. This is performed by identifying a hyperdimensional fragment from the known data pattern database that adequately and reasonably uniquely characterizes the known data. This hyperdimensional fragment relates the data at the location where the hydrocarbons were found or are expected to be found to the set of features, patterns, and textures which were derived from it. The hyperdimensional fragment and associated abstraction process parameters can be combined into a template. Templates can be used immediately or stored in a template database on one or more mass storage devices, and then retrieved when needed.  
         [0101]    When templates are applied to target data sets the resulting targets are identified. These targets are stored as objects which represent leads. The leads objects are the locations in the target data sets which have a potential reservoir identified through feature analysis, potential hydrocarbon indications identified through pattern and texture analysis, and the potential presence of a depositional process that deposits reservoir rock identified though texture analysis. A collection of objects are stored in a scene. The scene represents the physical locations of the leads identified by the present invention in this example. Geological and other required properties of the leads can be stored with them.  
         [0102]    Because the nature of the reservoirs, and possibly the hydrocarbons trapped in them, varies across each data set due to natural geological variations, it is often necessary to create more than one template to identify all of the leads any given area offers. A collection of templates can be created and stored in a template database. These may be sequentially applied to one or many target data sets in a process called data mining. When multiple templates are applied to the same target data set, the results are several scenes each containing lead objects. The scenes and their associated objects, one scene from each template, can be combined by performing Boolean operations on the scenes containing the objects creating one composite scene.  
         [0103]    3D Seismic Pattern Pyramid  
         [0104]    A 3D seismic data set exemplary embodiment of the layers of abstraction associated with the method of the present invention is illustrated in FIG. 1 a.  Each level of the pattern pyramid represents a level of abstraction. The input data lie at the bottom of the pyramid  100 . The width at the base of each layer is generally indicative of the number of data samples or fragments involved within that stage of the method of the present invention. For each level of abstraction the smallest spatial unit that needs to be analyzed is a fragment. A fragment sequence is a one dimensional, ordered, spatially sequential, set of data values that cover multiple data samples and becomes larger with each higher level of abstraction. The total number of fragments for each level decreases as the level of abstraction increases leading to the pyramid-shaped illustration of FIG. 1 a.    
         [0105]    In the exemplary embodiment, the pattern pyramid  100  contains three layers of abstraction above the data level  108  (see FIG. 1 a ). The abstraction process is first applied to the data level to generate the feature level  106 . Thereafter, the abstraction process is applied (at least once) to the feature layer data to generate the pattern level  104 . Next, the abstraction process is applied (at least once) to the pattern layer data to generate the texture level  103 . While the exemplary embodiment illustrated in FIG. 1 a  has three layers of abstraction above the data level  108 , only one layer is required. On the other hand, should the analysis call for it, any number of layers may be generated above the data level  108 . How many layers are generated, or how they are generated is problem-specific.  
         [0106]    The pattern pyramid shown in FIG. 1 a  corresponds to a single fragment orientation during analysis. Some data sets with more than one spatial dimension may require analysis in more than one fragment orientation to achieve the desired results. Seismic data has a strong preferred direction caused by the geology of the subsurface of the earth. Another example of data with a preferred direction is wood grain. For these types of data, the analysis can give very different results depending on the fragment orientation relative to the preferred direction of the data. Successful analysis of this data might require using fragments with more than on alignment. To accomplish the analysis, sides can be added to the pyramid as shown in FIG. 1 b.  Each side is associated with a fragment alignment direction. The example in FIG. 1 b  shows three views (oblique  112 , top  114 , and side  116 ) of a 3D pattern pyramid. The example shows a pattern pyramid for 3D seismic data which has 3 spatial dimensions consisting of the inline axes, xline axes, and time axes. Each direction has an associated side on the pattern pyramid, an inline side  118 , an xline side  119 , and a time side  117 . Because geology does not always align itself with the coordinate system on which the data is collected, this orientation will result in a pattern recognition analysis where the largest effect is the structure of the earth. When analyzing the trap component of an oil field this is very useful. If the goal is to not want to analyze geological structure and instead analyze the earth&#39;s stratigraphy, a different coordinate system is needed. To accomplish that goal, the fragments need to be aligned with the earth manifold, along dip, strike, and normal to the layers.  
         [0107]    The pattern database building process identifies the minimum set of attributes (features, patterns, and textures) of one or several examples of known data so that, when the known data is compared to the target data, only the desired characteristics need to be considered. The results of each step are represented in the pattern pyramid  120  as shown in FIG. 1 c  and are stored in the pattern database. The process starts at the data layer which for seismic data can contain a lower layer of pre-stack seismic data  142  setting under a layer of post-stack seismic data  140 . Above the data layer at the base, the pattern database contains several layers of abstraction that are built sequentially starting at features, proceeding through patterns, and finally ending with textures, the highest level of abstraction. There may be one or several layers of each type. Not all of the layers are required. The pattern database can be built only up to the pattern pyramid level required to solve the problem. The creation of each layer includes one or more steps of cutting, computing attributes, and computing statistics. Each layer has a cut  138 ,  132 , and  126 , computed attributes  136 ,  130 , and  124 , plus computed statistics  135 ,  128 , and  122 . The precise methods of cutting, computing attributes, and computing statistics changes from layer to layer, and can change within the layers. They specific computations in the abstraction process are designed to capture the minimum set of feature level attributes  136 , feature level statistics  135 , pattern level attributes  130 , pattern level statistics  128 , texture level attributes  124 , and texture level statistics  122  required to solve the problem.  
         [0108]    Hyperdimensional Fragment and Binding Strength  
         [0109]    [0109]FIG. 1 c  illustrates how a particular point of space in the input data  140  and  142 , represented by the point  156 , has corresponding points  154  and  152  in the feature layer,  150  and  148  in the pattern layer, plus  146  and  144  in the texture layer. The ordered set of points  156 ,  154 ,  152 ,  150 ,  148 ,  146 , and  144  forms a trajectory called a hyperdimensional fragment of the data point  156  in question. The pattern pyramid has a set of hyperdimensional fragments that associate each data sample to the features, patterns, and textures to which it contributed. Because the type of abstraction analysis is problem specific, so too is the resultant hyperdimensional fragment.  
         [0110]    When comparing the known data hyperdimensional fragment to the collection of target data hyperdimensional fragments the amount of similarity required to consider them matched is determined by the binding strength or affinity. This invention implements the concept of a binding strength by setting a range of acceptable feature, pattern, and texture values at each pattern pyramid level that the hyperdimensional fragment passes through. The result is that exact matches are no longer required but similar matches are allowed.  
         [0111]    When the above-described process is completed, the hyperdimensional fragment and associated threshold becomes a template that is used for object identification. Making a comparison between the known data and the target data is accomplished by applying the template to the target data. The comparison is accomplished by searching through all of the hyperdimensional fragments in the target data set and determining if the feature, pattern, and texture values though which they pass are the same within the binding strength as the values in the known data hyperdimensional fragment. Templates can be stored in a template database and retrieved for later use on any target data set.  
         [0112]    Scenes and Objects  
         [0113]    The result of applying a template to a target data set pattern database is a scene that contains null values where matches did not occur and a value representing matched where matches did occur. The next step is to identify all data connected points where matches occurred and assign them to an object. This is accomplished by stepping through all of the points that are marked as matched and performing an auto-track that assigns all connected points that are marked as matched to an object. This is repeated until all points that are marked as matched have been assigned to connected objects. The result is a scene containing connected objects that represent potential hydrocarbon deposits. These objects represent a simultaneous analysis of how well they represent a potential reservoir through feature analysis, represent hydrocarbon indications through pattern and texture analysis, and include the presence of a depositional process that deposits reservoir rock though texture analysis.  
         [0114]    Objects can have associated properties. For example, a 3D manifold (also referred to as a shrink-wrap) can be placed on the boundary (outside edge) of an object forming an object space. Topological properties of the object surface, such as local curvature, can be measured and stored as an object property.  
         [0115]    Next, the scene, the collection of objects, is then analyzed in a quality control step to determine if the system is correctly creating the desired objects. If the system creates the expected objects, but the objects are incomplete or obscured due to seismic noise, the binding strength is modified and the data mining is repeated. If the expected objects are not created or too many objects which are false positives are created the amount of information in the PDB or associated parameters are modified, a new template is created and the data mining is repeated.  
         [0116]    Finally the collection of objects, in the scene(s), is viewed to manually identify and remove any remaining false positives. The goal is to minimize the work in this step by a good choice of PDB construction.  
         [0117]    Data Mining  
         [0118]    Templates can be precomputed from known data sets, stored in a template database, and used the pattern databases for one or many target data sets creating resultant scenes containing objects which satisfy the templates. This process is often referred to as data mining. The collection of objects becomes a lead inventory.  
         [0119]    PDB Comparison, Objects, and Scenes  
         [0120]    For the 3D seismic first pass lead identification example, the PDB comparison is performed by comparing hyperdimensional fragments. The binding strength is specified for each level of the pattern pyramid where it was not already specified during pattern database construction usually by using the quick clustering technique above. When this step is performed for the first time it is often performed interactively during visualization of a target data set and the related pattern database. When the optimal binding strength has been chosen, the template is applied to the target data set. This step is often referred to as applying a scene construction tool. After this is accomplished the spatially connected objects are computed using another tool which is also referred to as a scene tool.  
         [0121]    Data Mining and Lead Inventory  
         [0122]    For the 3D seismic first pass lead identification example the template computed above is saved in the template database. The appropriate templates are checked out and applied to all of the data in the geographical region being analyzed. The resulting scenes and associated templates are combined using Boolean operations which are usually referred to as Boolean scene tools. The final product is a lead inventory which is associated with a scene containing a list of multiple leads (objects) and lead parameters. The lead parameters include lead names, locations, spatial sizes, global statistics, local statistics, and other useful information as required by the operator.  
         [0123]    Template Contents  
         [0124]    The template contains the decision surfaces required to identify targets in data sets. The decision surfaces may be defined in many ways. One example is that the decision surfaces are defined by a list of target hyperdimensional fragments, a list of non-target hyperdimensional fragments, and a binding strength. Another example is a collection of ranges defined by the minimum allowed value and maximum allowed value for each pattern pyramid level. Other forms of decision surface definitions or combinations of more than one form can be used.  
         [0125]    In addition the template needs to contain associated information which allows the PDB to be created. This includes the definition of the PDB contents including all parameters and information required to create the appropriate PDB on which the template is applied.  
         [0126]    In addition the template needs to contain associated information which allows the results of applying the template plus the associated PDB to be visualized and analyzed for quality control. Examples include color tables, opacity tables, and other display parameters that may be used to display each of the levels of the PDB. In addition it might contain false color image combinations of information from several layers of the PDB. Other display information can be included.  
         [0127]    The Implementation of the Present Invention  
         [0128]    The present invention is preferably implemented as a set of one or more software processes on a digital computer system. However, the present invention may also be implemented purely in hardware, or may be virtually any combination of hardware and software.  
         [0129]    The Apparatus of the Present Invention  
         [0130]    [0130]FIG. 16 illustrates an enhanced personal computer (“PC”)  160  used for extracting features from a signal. Enhanced PC  160  includes a main unit  162 , a high-resolution display  180 , a VGA cable  182 , an optional CD-ROM drive  172 , an optional 8 mm (or other type) tape drive  174 , a mouse  176 , and a keyboard  178 . Main unit  162  further includes one or more CPUs  164 , a high-speed memory  166 , a network card  168 , a high-speed graphics card  170 , and an internal and/or external hard drive  180 . The hard drive  180  can be replaced with any suitable mass storage device, such as a storage area network (“SAN”), RAM, tape, drum, bubble or any other mass storage media. Hard drive  180  stores, for example, a seismic and SEG-Y format database  184 , a pattern database (“PDB”)  186  (also called a knowledge hierarchy), well data, culture data, other supporting adapt and documents, one or more applications  188 , and a template library  190 .  
         [0131]    High-speed memory  166  is used to accelerate processing. High-speed graphics card  170  is preferably an ultrahigh-speed graphics card like the Intense 3D Wildcat (manufactured by 3DLabs of Huntsville, Ala.). High-resolution display  192  is the highest resolution display currently available in order to support the applications, which are intensely graphic in nature, and is electrically connected to main unit  162  by VGA cable  182 . Also electrically connected to main unit  162  are CD-ROM drive  172 , 8 mm tape drive  174 , mouse  176 , and keyboard  178 .  
         [0132]    In operation, seismic data enters the enhanced PC  160  via, for example, the 8 mm tape drive  174 , the CD-ROM drive  172  and/or the network card  168 . This seismic data is stored in, for example, SEG-Y format in database  184  and is processed by CPU  164  using applications  188 , with mouse  176 , and keyboard  178  as input devices and high-speed memory  164  to facilitate processing. The processed seismic data is then stored in a PDB  188  format.  
         [0133]    After pattern analysis, a PDB contains a collection of data volumes. The collection includes a 3D seismic data volume, multiple associated pattern, feature, texture volumes, and multiple scene volumes. The data values are stored so that they can be addressed as spatially vertical columns or horizontal slabs with the columns and slabs made up of subsets called bricks. A stack of bricks that extend from the top of the cube to the bottom is a column. A mosaic of bricks that extends horizontally across the volume is a slab. The brick size is chosen to optimize data access, for example, 64 by 64 samples in size. The samples are 8-bit integer, 32-bit floating point, or any other desired format. Each volume contains metadata including:  
         [0134]    the volumes name;  
         [0135]    physical dimensions in slice coordinates (index numbers), seismic survey coordinates, and world (map) coordinates;  
         [0136]    labels for each spatial axes;  
         [0137]    physical units for the world coordinates of each axes;  
         [0138]    registration points associating the slice coordinates to the seismic survey coordinates;  
         [0139]    registration points associating the seismic survey coordinates to the world coordinates;  
         [0140]    default display properties appropriate to the type of data:  
         [0141]    default color table; and  
         [0142]    default opacity table;  
         [0143]    sample value label;  
         [0144]    sample value scaling properties (additive minimum and maximum values of scaled sample values);  
         [0145]    history including date and text entry including:  
         [0146]    source from which the adapt was obtained;  
         [0147]    operations which were performed on the data by the present invention;  
         [0148]    description of the data; and  
         [0149]    user provided notes;  
         [0150]    minimum and maximum sample values, plus histogram of data values;  
         [0151]    locking keys and other data management keys and pointers; and  
         [0152]    other associated information.  
         [0153]    The PDB collection, and associated metadata, can be stored as files on a file system, as information in a database, or as a combination of the two.  
         [0154]    After modification, a seismic template is created for each geoscientist, and this template is stored in template library  190 . During processing, the seismic data is viewed on the high-resolution display  180 . After further processing, the seismic data is stored in template library  190 , and output to 8 mm tape drive  174  or CD-ROM  172 , or transmitted via the network card  168 .  
         [0155]    The methods are executed using object-oriented programming, which allows reflection coefficient (“RFC”) data, acoustic impedance (“AI”), and other calculated feature extraction information to be stored either as parameters and methods or as results, according to the available memory and processing capability of the host system. If the full results of the seismic data analysis are stored in the PDB  188 , the memory requirement is measured in terabytes, which is more memory capacity than many systems have. If the parameters and methods for generating the seismic analysis are stored instead, the system must have enormous processing capability and high-speed memory  166  in order to rapidly calculate the analyzed seismic data when the seismic object is executed.  
         [0156]    Method of Verifying and Tuning a Template  
         [0157]    [0157]FIGS. 2 a,    2   b,  and  2   c  illustrate a method of creating hyperdimensional fragments for a target data set and comparing them to the hyperdimensional fragments stored in a template.  
         [0158]    [0158]FIG. 2 a  shows a pattern pyramid  225  for which the intersection of the hyperdimensional fragment  226  with each level of the pattern pyramid is encoded as a one or zero for each bit in the hyperdimensional data value  205 . The hyperdimensional fragment data value is associated with one sample in the target data set  220 . Other hyperdimensional fragment data values are associated with every sample in the target data set. The hyperdimensional fragment  205  is compared to the hyperdimensional fragment from the template  210  by comparing each bit in the hyperdimensional fragment data value. If they all match the value representing matched is written to the output scene sample. To identify matching hyperdimensional fragments in the target data set the above is repeated for all of the data samples in the target data set. The output scene, which was initialized to not-matched for all samples will contain matched for those sample which match the template.  
         [0159]    Two of many methods for defining decision surfaces are shown in FIGS. 2 b  and  2   c.  A feature, pattern, or other space is defined by the two axes  260  and  265 . FIG. 2 b  shows the technique of assigning a user specified binding strength  250  which defines a circular region around the location where a hyperdimensional fragment  255  intersects a level of the pattern pyramid. A collection of hyperdimensional fragments  27  with a given non-zero binding strength will result in a decision surface  275 . Samples which map inside the decision surface are assigned the value  1  and outside are assigned the value of 0.  
         [0160]    Another method of defining a rectangular region is shown in FIG. 2 c.  Here a feature, pattern, or other space is defined by the two axes  290  and  292 . The minimum ranges  284  and  280  plus the maximum ranges  282  and  286  are chosen so that the collections of hyperdimensional fragments  285  all lie in the interior of the rectangular region that is defined by the minimum and maximum values. The outside edge of the region is the decision surface. Samples which map inside the decision surface are assigned the value 1 and outside are assigned the value of 0.  
         [0161]    The present invention employs the above-identified apparatus for various purposes. The method of the present invention will now be illustrated via the verifying and tuning a template method of the present invention as illustrated in FIG. 3 by method  300 . In practice the operator might perform only portions of this method or variations of the method as is appropriate to the problem being solved and the operator&#39;s individual working style. This method is performed to verify that a template designed to work on a target data set in another geographical location will work in the current new location. If necessary, the template will be tuned, or small modifications are made, to make it work acceptably.  
         [0162]    Step  305 : Method  300  starts. The method starts generally at step  305 .  
         [0163]    Step  310 : Obtain a list of the templates that are in a template library. In this step, the operator creates a list of the templates in the template library. The list can take one of many forms including a printed report, reports that are imported into spreadsheet applications, scrollable lists and others. The list includes additional information that allows easy template selection. Examples of additional information include the geographical location of the data set on which the template was defined, the geological setting in which the geology of the data on which the template was defined was deposited, and other types of information. It is useful to filter the list based on these pieces of additional information.  
         [0164]    Step  315 : Select a template. In this step, the operator uses the list created in step  310  to select a template. Identifying the proper selection can be accelerated by sorting the list or filtering the list based on or more of the additional pieces of information. The goal is to identify a template which was created using a data set which has geology and a data type which is more like the target data to be analyzed, than the other templates.  
         [0165]    Step  320 : Selecting a target data set. In this decision step, the system operator selects a portion of the target data set to be used to verify the template.  
         [0166]    Step  325 : Creating a PDB for the target data set. In this step, the operator executes a computer application which performs method  400  of FIG. 4. The computer program reads the template file and creates a PDB using the pattern processing parameters in the template file. When completed, the PDB contains all of the pattern pyramid levels, a set of visualization parameters, and the decision surfaces or boundaries that are used to perform the pattern analysis.  
         [0167]    Step  330 : Visualize the PDB using the display parameters from the template file. In this step, the operator executes a visualization application, such as CHROMAVISION, manufactured by Chroma Energy, Inc. The visualization parameters that were obtained from the template provide a starting point for visualization via the visualization application.  
         [0168]    Step  335 : Apply the template creating a scene using method  500  of FIG. 5. In this step, the operator instructs the computer application to perform method  500  of FIG. 5 to create a scene in which all samples that match the template are marked as matching and the rest are marked as not matched.  
         [0169]    Step  340 : Visualize the scene and PDB. In this step, the operator executes a visualization application, such as CHROMAVISION, to use the visualization parameters that were obtained from the template in order to view the scene that was created in step  335 . An addition, other contents of the PDB can be visualized in the same, or a similar manner.  
         [0170]    Step  345 : Acceptable results? In this decision step, the system operator determines if the scene contains objects which are false positives or misses targets. If the template is not giving acceptable results, then the method  300  proceeds to step  350 ; otherwise, the method  300  switches to step  355 .  
         [0171]    Step  350 : Modify the template. In this step, the operator uses a visualization application such as CHROMAVISION, to visualize the scene that was created by step  345  in comparison to the contents of the PDB. The operator then determines and applies modifications to the template which will tune it to work correctly. Tuning could be as simple as modifying the binding strength or more complicated such as modifying pattern processing parameters. When this is completed, method  300  proceeds to step  325 . The steps  325 ,  330 ,  235 ,  340 ,  345 , and  350  are repeated until an acceptable result is obtained.  
         [0172]    Step  355 : Template was modified? In this decision step, the system operator determines if the template was modified during a pass through step  350 .  
         [0173]    Step  360 : Save the new template in a template library. In this step, the operator executes the appropriate application that saves the new template in a template library. This library can consist of a collection of files in a folder, can be a relational database, or can be stored using one of many other forms of data storage.  
         [0174]    Step  395 : Method  300  ends. The method  300  ends generally at step  395 .  
         [0175]    Method of Creating a Pattern Data Base from a Template  
         [0176]    The present invention employs the above-identified apparatus for various purposes. The method of the present invention will now be illustrated via the creating a pattern data base from a template method of the present invention as illustrated in FIG. 4 by method  400 . This method is usually performed as step  325  of method  300 .  
         [0177]    Step  405 : Method  400  starts. The method starts generally at step  405 .  
         [0178]    Step  410 : Read the list of PDB parameters from the template file. In this step, the operator or an application the operator is executing reads the list of PDB parameters from the template file.  
         [0179]    Step  415 : Create the PDB. In this step, the application the operator is executing uses the parameters read in step  410  to create a PDB. The result is a PDB with the entire pattern pyramid required to apply the template to the data. The method of creating a PDB is described one of the patent applications that is related to the present application.  
         [0180]    Step  420 : Read the list of visualization parameters from the template file and store with the PDB. In this step, the computer application the operator is executing reads the list of visualization parameters from the template file and stores them with the PDB. These include color tables for each pattern pyramid level plus false color image definitions. These were designed by the author of the template as the best way of performing visualization for the purpose of quality control, or verifying that the template works properly.  
         [0181]    Step  425 : Read the list of decision surfaces from the template and store with the PDB. In this step, the computer application the operator is executing reads the list of decision surfaces from the template and stores them in the PDB. This step is not required by the method but is included in the method to expedite the workflow by placing the information in the PDB where it is easily accessed by the geoscientist when further work is performed.  
         [0182]    Step  495 : Method  400  ends. The method  400  ends generally at step  495 .  
         [0183]    Method of Applying a Template to a Target Data Set  
         [0184]    The present invention employs the above-identified apparatus for various purposes. The method of the present invention will now be illustrated via the applying a template to a target data set method of the present invention as illustrated in FIG. 5 by method  500 . This method is usually performed as step  335  of method  300 .  
         [0185]    Step  505 : Method  500  starts. The method starts generally at step  505 .  
         [0186]    Step  510 : Initializing output scene. In this step, the application initializes the output scene by creating it with all of the data samples set to a value representing not matched.  
         [0187]    Step  515 : Initializing sample. In this step, the application initializes the pointer to the input target data set sample so that the next time step  515  is executed, the pointer points to the first data sample.  
         [0188]    Step  520 : Next sample. In this step, the application increments the sample pointer to identify the next data sample.  
         [0189]    Step  525 : Compute the target data hyperdimensional fragment. In this step the application reads the values for all of the associated levels of the PDB that correspond to the spatial location associated with the target data sample. The values for each level are compared to the decision surfaces for the level. Two examples of methods of defining decision surfaces are shown in FIG. 2 b  and FIG. 2 c.  If the attribute or statistic value for a given level is inside decision surfaces the associated bit in the hyperdimensional fragment is set to one, otherwise it is set to 0. This is repeated for all of the levels.  
         [0190]    Step  530 : Initialize the template hyperdimensional fragment list. In this step, the application initializes the hyperdimensional fragment list pointer so that, when incremented, the trace pointer points to the location of the first hyperdimensional fragment in the list.  
         [0191]    Step  535 : Next template hyperdimensional fragment. In this step, the application increments the template hyperdimensional fragment list pointer to the location of the next hyperdimensional fragment in the list.  
         [0192]    Step  540 : Compare the target data hyperdimensional fragment to the template hyperdimensional fragment. In this step, the application compares the target data hyperdimensional fragment to the template hyperdimensional fragment. If they are the same then the output scene sample at the associated spatial location is marked as matched, otherwise it is marked as not matched.  
         [0193]    Step  545 : Matched? In this step, the application determines if the hyperdimensional fragments matched or did not match. If they matched, then method  500  proceeds to step  550 ; otherwise, the method  500  proceeds to step  555 .  
         [0194]    Step  550 : Mark the scene as matched. In this step, the application assigns a value denoting matched to the scene sample that is associated with the same spatial location as the target data sample.  
         [0195]    Step  555 : More template hyperdimensional fragments? In this step, the application determines if there are more hyperdimensional fragments. If there are more, then method  500  jumps to step  535 ; otherwise, the method  500  proceeds to step  560 .  
         [0196]    Step  560 : Are there more samples? In this step, the application determines if there are more input target data set samples. If there are more samples, then method  500  jumps to step  520 ; otherwise, the method  500  proceeds to step  565 .  
         [0197]    Step  565 : Writing output scene to disk. In this step, the operator instructs the computer application to write the output scene to the PDB.  
         [0198]    Step  570 : Using an autotracking algorithm to identify all of the connected bodies in the output scene. In this step, the system operator uses a connected body autotracker, usually in a visualization application, to separate out all of the connected geobodies in the data set. This is accomplished either manually or automatically in that the autotrack process is repeated iteratively using as a seed point all voxels that have not been included in a previously autotracked body until all of the voxels have been processed. This step is better facilitated when all of the data is in RAM to perform the search and thus, it is preferable not to perform this step in a batch mode that streams the data to and from disk.  
         [0199]    Step  595 : Method  500  ends. The method  500  ends generally at step  595 .  
         [0200]    Method of Data Mining With a Template  
         [0201]    The present invention employs the above-identified apparatus for various purposes. The method of the present invention will now be illustrated via the data mining using a template method of the present invention as illustrated in FIG. 6 by method  600   
         [0202]    Step  605 : Method  600  starts. The method starts generally at step  605 .  
         [0203]    Step  610 : Obtain a list of the templates that are in a template library. In this step, the operator or a computer application executed by the operator creates a list of the templates in the template library. The list can take one of many forms including a printed report, reports that are imported into spreadsheet applications, scrollable lists and others. The list includes additional information that allows easy template selection. Examples of additional information include the geographical location of the data set on which the template was defined, the geological setting in which the geology of the data on which the template was defined was deposited, and other types of information. It is useful to filter the list based on these pieces of additional information.  
         [0204]    Step  615 : Select a template. In this step, the operator uses the list created in step  610  to select a template. Identifying the proper selection can be accelerated by sorting the list or filtering the list based on or more of the additional pieces of information. The goal is to identify a template which was created using a data set which has geology and a data type which is more like the target data to be analyzed, than the other templates.  
         [0205]    Step  620 : Selecting a target data set. In this decision step, the system operator selects a target data set to be used to verify the template.  
         [0206]    Step  625 : Apply the template creating a scene using method  500  of FIG. 5. In this step, the operator or an application the operator is executing creates a scene using method  500  of FIG. 5.  
         [0207]    Step  630 : Visualize the scene using the display parameters from the template. In this step, the operator executes a visualization application, for example Chroma Vision, also called CV to use the visualization parameters obtained from the template to view the scene created in step  625 .  
         [0208]    Step  695 : Method  600  ends. The method  600  ends generally at step  695 .  
         [0209]    Method of Applying a Template to a Target Data Set as a Batch Process  
         [0210]    The present invention employs the above-identified apparatus for various purposes. The method of the present invention will now be illustrated via the applying a template to a target data set as a batch process method of the present invention as illustrated in FIGS.  7  by method  700 . This method is usually performed as step  625  of method  600 .  
         [0211]    Step  701 : Method  700  starts. The method starts generally at step  701 .  
         [0212]    Step  702 : Initializing output scene. In this step, the application initializes the output scene by creating it with all of the data samples set to a value representing not matched.  
         [0213]    Step  704 : Initializing column. In this step, the batch application initializes the column pointer so that, when incremented, the column pointer points to the location of the first column on the hard drive  160 .  
         [0214]    Step  706 : Next column. In this step, the batch application increments the column pointer to the location of the next column on the hard drive  180 , reads the input column from disk, and places the input column in RAM.  
         [0215]    Step  708 : Read column from disk. In this step, the batch application identifies the location of the PDB on the hard drive  180  and reads the PDB in one of two ways:  
         [0216]    In the first method, the application performs batch processing of a series of pattern recognition operations that are stored in a job queue. The application processes chunks of the data in streams. During streaming, the data is read, transferred to RAM, and processed in individual portions called columns, which are columnar subsets of the data cube, or in individual portions called slabs, which are horizontal slab subsets of the data cube. The data set is divided into subsets called bricks. A stack of bricks that extend from the top of the data set to the bottom is a column. A horizontal swath of bricks that extends across the data set is a slab. The choice of column addressing or slab addressing depends on the type of pattern analysis operation being performed.  
         [0217]    In the second method, all of the data in the data cube is processed at once in high-speed memory  166  with the system operator viewing the data interactively on, for example, a high-resolution display  192 , with the data being then stored directly to the PDB  188 .  
         [0218]    Processing the entire data cube in memory all at once allows the system operator to visualize the data cube and modify parameters during processing. Modification of parameters is accomplished to select and tune the parameters on a relatively small subset of the entire data set. Streaming enables brick-by-brick processing of large sets of data that exceed the size of memory. The available high-speed memory  166 , and the size of the data cube, dictate which storage method is used.  
         [0219]    The following description describes the batch operation with data streaming. However, the same pattern computations can be used for the case where the data is all in memory. All of the steps in method  700  (illustrated in FIG. 7) are represented as if performed by the batch application.  
         [0220]    Step  710 : Initializing trace. In this step, the batch application initializes the trace pointer so that, when incremented, the trace pointer points to the location of the first trace in the current column on the hard drive  180 .  
         [0221]    Step  712 : Next trace. In this step the batch application increments the trace pointer to the location of the next trace in the current column on the hard drive  180 .  
         [0222]    Step  710 : Initializing sample. In this step, the batch application initializes the sample pointer so that, when incremented, the sample pointer points to the location of the first sample in the current trace on the hard drive  180 .  
         [0223]    Step  712 : Next sample. In this step the batch application increments the sample pointer to the location of the next sample in the current column on the hard drive  180 .  
         [0224]    Step  714 : Compute the target data hyperdimensional fragment. In this step the batch application reads the values for all of the associated levels of the PDB that correspond to the spatial location associated with the target data sample. The values for each level are compared to the decision surfaces for the level. Two examples of methods of defining decision surfaces are shown in FIG. 2 b  and FIG. 2 c.  If the attribute or statistic value for a given level is inside decision surfaces the associated bit in the hyperdimensional fragment is set to one, otherwise it is set to 0. This is repeated for all of the levels.  
         [0225]    Step  720 : Initialize the template hyperdimensional fragment list. In this step, the batch application initializes the hyperdimensional fragment list pointer so that, when incremented, the trace pointer points to the location of the first hyperdimensional fragment in the list.  
         [0226]    Step  722 : Next template hyperdimensional fragment. In this step, the batch application increments the template hyperdimensional fragment list pointer to the location of the next hyperdimensional fragment in the list.  
         [0227]    Step  724 : Compare the target data hyperdimensional fragment to the template hyperdimensional fragment. In this step, the application compares the target data hyperdimensional fragment to the template hyperdimensional fragment. If they are the same then the output scene sample at the associated spatial location is marked as matched, otherwise it is marked as not matched.  
         [0228]    Step  726 : Matched? In this step, the application determines if the hyperdimensional fragments matched or did not match. If they matched, then method  700  proceeds to step  728 ; otherwise, the method  700  proceeds to step  730 .  
         [0229]    Step  728 : Mark the scene as matched. In this step, the application assigns a value denoting matched to the scene sample that is associated with the same spatial location as the target data sample.  
         [0230]    Step  730 : More template hyperdimensional fragments? In this step, the application determines if there are more hyperdimensional fragments. If there are more, then method  700  jumps to step  722 ; otherwise, the method  700  proceeds to step  732 .  
         [0231]    Step  732 : Are there more samples? In this step, the application determines if there are more input target data set samples. If there are more samples, then method  700  jumps to step  716 ; otherwise, the method  700  proceeds to step  734 .  
         [0232]    Step  734 : Are there more traces? In this step, the batch application determines if there are more traces to be processed. If there are more traces to be processed, then method  700  proceeds to step  712 ; otherwise, the method  700  proceeds to step  736 .  
         [0233]    Step  736 : Write output columns to disk. In this step, the output scene columns are written to disk by the batch application. Writing to disk in a column by column fashion improves application performance by reducing disk write times.  
         [0234]    Step  738 : Are there more columns? In this step, the application determines if there are more columns to be processed. If there are more columns to be processed, then the method  700  proceeds to step  706 ; otherwise, the method  700  proceeds to step  740 .  
         [0235]    Step  740 : Using an autotracking algorithm to identify all of the connected bodies in the output scene. In this step, the system operator uses a connected body autotracker, usually in a visualization application, to separate out all of the connected geobodies in the data set. This is accomplished either manually or automatically in that the autotrack process is repeated iteratively using as a seed point all voxels that have not been included in a previously autotracked body until all of the voxels have been processed. This step is better facilitated when all of the data is in RAM to perform the search and thus, it is preferable not to perform this step in a batch mode that streams the data to and from disk.  
         [0236]    Step  795 : Method  700  ends. The method  700  ends generally at step  795 .  
         [0237]    The invention, therefore, is well adapted to carry out the objects and to attain the ends and advantages mentioned, as well as others inherent therein. While the invention has been depicted, described, and is defined by reference to particular preferred embodiments of the invention, such references do not imply a limitation on the invention, and no such limitation is to be inferred. The invention is capable of considerable modification, alteration, and equivalents in form and function, as will occur to those of ordinary skill in the art. The depicted and described preferred embodiments of the invention are exemplary only, and are not exhaustive of the scope of the invention. Consequently, the invention is intended to be limited only by the spirit and scope of the appended claims, giving full cognizance to equivalents in all respects.
A system, method and apparatus are provided for applying templates to find deposits of oil and natural gas. A personal computer is used to perform calculations on known data to generate hyperdimensional templates that are stored within a pattern database. The hyperdimensional templates are generated in a layered series of cutting, attributing, and statisizing phases using data known to represent existing oil and gas reservoirs. The hyperdimensional templates are stored in a pattern database. The templates are used in comparison to target data sets in order to detect patterns that are consistent with reserves of oil and/or natural gas.