A distributed block multi-dimensional storage method and device for seismic data body distribution
By separating the header information from the seismic traces in the seismic body file and constructing a multidimensional model, the multidimensional data cube is stored in a distributed system, solving the problems of wasted seismic data storage resources and low query efficiency in existing technologies, and achieving efficient data management and query.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- RICHFIT INFORMATION TECH
- Filing Date
- 2024-12-25
- Publication Date
- 2026-06-26
AI Technical Summary
Existing technologies for storing and indexing seismic data files suffer from high storage overhead, high maintenance complexity, and low query efficiency. In particular, multi-dimensional seismic data files require separate storage of index files, leading to resource waste and performance degradation.
Separate the header information from the seismic traces in the seismic body file, construct a multidimensional model, divide the multidimensional model into multiple multidimensional data cubes, store them in a distributed storage system using a mapping algorithm, and extract the data by calculating the physical storage location based on the business coordinates of the target data.
It simplifies the data management structure, improves storage flexibility and query efficiency, reduces storage overhead and maintenance complexity, supports efficient storage and retrieval of different types of data, adapts to different application needs, and provides data support for intelligent interpretation technology.
Smart Images

Figure CN122284899A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a method and apparatus for distributed, block-based, multidimensional storage of seismic data. Background Technology
[0002] Seismic exploration, as an important tool in oil and gas exploration, involves data acquisition, processing, and interpretation, with each stage generating different seismic data files. The acquisition stage generates raw data files, the processing stage generates processed result files, and the interpretation stage generates the final interpretation file based on the processing results.
[0003] With the expansion of exploration areas, especially with the application of 3D seismic exploration, the size of seismic body files is constantly increasing. Generally speaking, pre-stack seismic data can reach the TB level, while post-stack seismic data is usually in the hundreds of GB level. Even in small exploration areas, seismic body files are usually in the GB level or above.
[0004] Current technologies primarily rely on relational databases and NoSQL databases for storing and indexing seismic body files. Relational database indexes are typically based on table structures, utilizing data structures such as B-trees or B+ trees for rapid data record location, emphasizing data consistency and structured queries. NoSQL database indexes, on the other hand, are more flexible, suitable for unstructured or semi-structured data, and employ various methods such as hash tables, tree structures, and graph indexes to support the needs of large datasets and high-performance queries. Summary of the Invention
[0005] To achieve efficient storage and retrieval of seismic volume files, this invention provides a distributed block-based multidimensional storage method and apparatus for seismic data volumes.
[0006] In a first aspect, embodiments of the present invention provide a distributed, block-based, multi-dimensional storage method for seismic data volumes, which may include:
[0007] Separate the header information from the seismic traces in the acquired seismic body file and store the header information in a preset storage space;
[0008] Based on the keywords of the earthquake trace, multiple dimensions are determined to construct a multidimensional model;
[0009] The multidimensional model is divided into multiple multidimensional data cubes, and the name of each multidimensional data cube, as well as the extreme values of business values, the total number of location numbers, and the total number of multidimensional data cubes in each dimension are determined.
[0010] The multiple multidimensional data cubes are stored in a distributed storage system using a mapping algorithm;
[0011] Based on the business coordinates of the acquired target data, the name of each multidimensional data cube, the extreme values of business values in each dimension, the total number of location numbers, and the total number of multidimensional data cubes, the physical storage location of the target data is calculated, and the target data is extracted from the distributed storage system and / or the preset storage space.
[0012] In one or more optional embodiments of this application, the target data includes a target track head; the multiple dimensions in the multidimensional model are arranged sequentially.
[0013] The step of calculating the physical storage location of the target data based on the acquired target data's business coordinates, the name of each multidimensional data cube, the extreme values of business values in each dimension, the total number of location numbers, and the total number of multidimensional data cubes, and extracting the target data from the distributed storage system and / or preset storage space includes:
[0014] Calculate the physical position offset of the top N dimensions based on the total number of position numbers in each dimension; where N is the total number of dimensions minus 1.
[0015] Based on the extreme values of the business values in each dimension, the business coordinates are converted into location coordinates;
[0016] The physical location offset in each dimension is multiplied by the location coordinate and then summed to obtain the physical storage location of the target track head;
[0017] The target data is extracted from the preset storage space based on the physical storage location of the target track head.
[0018] In one or more optional embodiments of this application, the target data includes target sampling points;
[0019] The step of calculating the physical storage location of the target data based on the acquired target data's business coordinates, the name of each multidimensional data cube, the extreme values of business values in each dimension, the total number of location numbers, and the total number of multidimensional data cubes, and extracting the target data from the distributed storage system and / or preset storage space includes:
[0020] Based on the business coordinates, the multidimensional data cube number of the target sampling point in each dimension is calculated, and the name of the target multidimensional data cube is obtained by combining them.
[0021] Based on the total number of multidimensional data cubes in each dimension and the multidimensional data cube number of the target sampling point in each dimension, the length of the target multidimensional data cube in each dimension is calculated.
[0022] Based on the length of the target multidimensional data cube in each dimension, the physical position offset of the target multidimensional data cube in each dimension is calculated.
[0023] Based on the business coordinates, the number of the target sampling point in each dimension of the target multidimensional data cube is calculated;
[0024] The physical location offset of the target multidimensional data cube in each dimension is multiplied by the corresponding number of the target sampling point in each dimension of the target multidimensional data cube, and then summed to obtain the physical storage location of the target sampling point.
[0025] Based on the name of the target multidimensional data cube, extract the target multidimensional data cube from the distributed storage system;
[0026] Based on the physical storage location of the target sampling points, the target data is extracted from the target multidimensional data cube.
[0027] In one or more optional embodiments of this application, the target data includes target seismic traces; the multiple dimensions in the multidimensional model are arranged sequentially, and the last dimension is depth or time;
[0028] The step of calculating the physical storage location of the target data based on the acquired target data's business coordinates, the name of each multidimensional data cube, the extreme values of business values in each dimension, the total number of location numbers, and the total number of multidimensional data cubes, and extracting the target data from the distributed storage system and / or preset storage space includes:
[0029] Based on the extreme values of the business values in each dimension, determine the maximum and minimum values of the business values in the last dimension;
[0030] Based on the business coordinates, the multidimensional data cube numbers of the target seismic trace in the first N dimensions of the sorting are calculated; where N is the total number of dimensions minus 1;
[0031] Based on the maximum and minimum values of the business values in the last dimension, the maximum and minimum values of the multidimensional data cube number in the last dimension are calculated.
[0032] Based on the maximum and minimum values of the multidimensional data cube numbers of the target seismic trace in the first N dimensions and the last dimension, the names of multiple target multidimensional data cubes are obtained by combining them.
[0033] For each target multidimensional data cube, the physical storage starting position of the target multidimensional data cube is determined based on the business coordinates;
[0034] Based on the name of the target multidimensional data cube, extract the target multidimensional data cube from the distributed storage system;
[0035] Starting from the physical storage start position of the target multidimensional data cube, read all the data of the target seismic trace within the target multidimensional data cube;
[0036] The target seismic traces are stitched together with all the data within each target multidimensional data cube to obtain the target data.
[0037] In one or more optional embodiments of this application, determining the physical storage starting location of each target multidimensional data cube based on the business coordinates includes:
[0038] For each target multidimensional data cube, the length of the target multidimensional data cube in each dimension is calculated;
[0039] Based on the length of the target multidimensional data cube in each dimension, the physical position offset of the target multidimensional data cube in each dimension is calculated.
[0040] Based on the business coordinates, the numbers of the first N dimensions within the target multidimensional data cube are calculated.
[0041] The physical position offset of the target multidimensional data cube in each dimension is multiplied by the corresponding numbers of the first N dimensions sorted within the target multidimensional data cube, and then summed to obtain the physical storage starting position of the target multidimensional data cube.
[0042] In one or more optional embodiments of this application, separating the header information from the seismic traces in the acquired seismic body file and storing the header information in a preset storage space includes:
[0043] Extract the text header, binary header, and multiple trace headers from the seismic body file to form a header information file;
[0044] The header information file is stored in a preset storage space.
[0045] Secondly, embodiments of the present invention provide a distributed, block-based, multi-dimensional storage device for seismic data volumes, which may include:
[0046] The head-body separation module is used to separate the header information from the seismic trace in the acquired seismic body file and store the header information in a preset storage space.
[0047] The multidimensional modeling module is used to determine multiple dimensions based on the keywords of the seismic trace body and construct a multidimensional model.
[0048] The data partitioning module is used to divide the multidimensional model into multiple multidimensional data cubes, and determine the name of each multidimensional data cube, the extreme value of the business value in each dimension, the total number of location numbers, and the total number of multidimensional data cubes.
[0049] A distributed storage module is used to store the multiple multidimensional data cubes into a distributed storage system using a mapping algorithm;
[0050] The index extraction module is used to calculate the physical storage location of the target data based on the business coordinates of the acquired target data, the name of each multidimensional data cube, the extreme values of the business values in each dimension, the total number of location numbers, and the total number of multidimensional data cubes, and to extract the target data from the distributed storage system and / or the preset storage space.
[0051] Thirdly, embodiments of the present invention provide a computer-readable storage medium having a computer program / instruction stored thereon, which, when executed by a processor, implements the distributed block multidimensional storage method for seismic data volumes as described above.
[0052] Fourthly, embodiments of the present invention provide a computer program product, including a computer program / instruction, which, when executed by a processor, implements the distributed block multidimensional storage method for seismic data volumes as described above.
[0053] Fifthly, embodiments of the present invention provide a computer device, including a memory, a processor, and a computer program stored in the memory, wherein the processor executes the computer program to implement the distributed block multidimensional storage method for seismic data volumes as described above.
[0054] The beneficial effects of the above-described technical solutions provided in the embodiments of the present invention include at least the following:
[0055] This invention provides a distributed, block-based, multi-dimensional storage method for seismic data volumes. This method separates the header information from the seismic traces in the seismic volume file, stores the header information in a preset storage space, then determines multiple dimensions based on the keywords of the seismic traces, constructs a multi-dimensional model, and divides the multi-dimensional model into multiple multi-dimensional data cubes. The name of each multi-dimensional data cube, as well as the extreme values, total number of location numbers, and total number of multi-dimensional data cubes for each dimension, are determined. Next, a mapping algorithm is used to store all multi-dimensional data cubes in a distributed storage system. Finally, the physical storage location is calculated based on the operational coordinates of the target data, and the target data is extracted from the distributed storage system and / or the preset storage space. This method effectively simplifies the data management structure and improves storage flexibility by separating the header information from the seismic traces in the seismic volume file. Simultaneously, this method optimizes data storage by dividing the seismic data into blocks according to the multi-dimensional model and storing multiple multi-dimensional data cubes in a distributed storage system using a mapping algorithm. Based on this storage method, this method can perform index calculations based on the operational coordinates of the target data, avoiding the need to build and store index files separately for each dimension in traditional technologies, thereby reducing storage overhead and maintenance complexity, and improving the efficiency of data querying and retrieval.
[0056] Furthermore, this method can support the efficient storage and retrieval of different types of target data (such as target trace heads, operational coordinates, and target seismic traces), meeting the needs of different applications.
[0057] Furthermore, this method can be seamlessly integrated with AI applications such as intelligent interpretation, providing data support for the future development of intelligent technologies in the field of seismic exploration.
[0058] Other features and advantages of the invention will be set forth in the description which follows, and will be apparent in part from the description, or may be learned by practicing the invention. The objects and other advantages of the invention may be realized and obtained by means of the structures particularly pointed out in the written description and the accompanying drawings.
[0059] The technical solution of the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. Attached Figure Description
[0060] The accompanying drawings are provided to further illustrate the invention and form part of the specification. They are used in conjunction with embodiments of the invention to explain the invention and do not constitute a limitation thereof. In the drawings:
[0061] Figure 1 A flowchart illustrating the distributed block multidimensional storage method for seismic data volumes provided in an embodiment of the present invention;
[0062] Figure 2A schematic diagram of the structure of a seismic body file in SEG-Y format provided in an embodiment of the present invention;
[0063] Figure 3 This is a schematic diagram of the header information file structure provided in an embodiment of the present invention;
[0064] Figure 4 An example diagram of the relevant data for each dimension after dividing the 4-dimensional multidimensional model into a multidimensional data cube according to an embodiment of the present invention;
[0065] Figure 5 This is a schematic diagram of distributed storage provided in an embodiment of the present invention;
[0066] Figure 6 This is a schematic diagram of the business coordinate range provided in an embodiment of the present invention;
[0067] Figure 7 This is an example diagram of the fourth dimension query part of the combined index provided in an embodiment of the present invention;
[0068] Figure 8 This is a performance test comparison diagram provided for an embodiment of the present invention;
[0069] Figure 9 A three-dimensional visualization diagram provided for an embodiment of the present invention;
[0070] Figure 10 A schematic diagram of the structure of the distributed block multidimensional storage device for seismic data volume provided in the embodiments of this application. Detailed Implementation
[0071] Exemplary embodiments of the present disclosure will now be described in more detail with reference to the accompanying drawings. While exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be implemented in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
[0072] The inventors discovered that existing technologies primarily use relational databases and NoSQL databases for storing and indexing seismic data files. While both approaches emphasize different aspects in index design and implementation to meet the needs of various applications, their indexing technologies often require separate storage. When dealing with seismic data files involving multiple dimensions, separate index files need to be stored for each dimension or data block, leading to a significant increase in storage overhead and consuming substantial storage resources. Furthermore, frequent index update operations increase maintenance complexity and may cause index inconsistencies, thus impacting query efficiency and storage performance.
[0073] With the development of AI technologies such as intelligent interpretation, the requirements for the storage and read / write speed of seismic data are increasing. How to efficiently store and process massive seismic data files has become a major challenge in seismic exploration. Based on this, the inventors, through further research and development, have created this invention, providing a method and apparatus for distributed, block-based, multi-dimensional storage of seismic data volumes.
[0074] Example 1
[0075] Embodiment 1 of this invention provides a distributed, block-based, multi-dimensional storage method for seismic data volumes, referring to... Figure 1 As shown, the method may include the following steps S101-S105:
[0076] S101: Separate the header information from the seismic traces in the acquired seismic body file and store the header information in a preset storage space.
[0077] S102: Determine multiple dimensions based on the keywords of the seismic trace body and construct a multidimensional model.
[0078] S103: Divide the multidimensional model into multiple multidimensional data cubes, and determine the name of each multidimensional data cube, as well as the extreme values of business values, the total number of location numbers, and the total number of multidimensional data cubes in each dimension.
[0079] S104: Store multiple multidimensional data cubes in a distributed storage system using a mapping algorithm.
[0080] S105: Based on the business coordinates of the acquired target data, the name of each multidimensional data cube, the extreme values of business values in each dimension, the total number of location numbers, and the total number of multidimensional data cubes, calculate the physical storage location of the target data and extract the target data from the distributed storage system and / or the preset storage space.
[0081] This invention provides a distributed, block-based, multi-dimensional storage method for seismic data volumes. This method separates the header information from the seismic traces in the seismic volume file, stores the header information in a preset storage space, then determines multiple dimensions based on the keywords of the seismic traces, constructs a multi-dimensional model, and divides the multi-dimensional model into multiple multi-dimensional data cubes. The name of each multi-dimensional data cube, as well as the extreme values, total number of location numbers, and total number of multi-dimensional data cubes for each dimension, are determined. Next, a mapping algorithm is used to store all multi-dimensional data cubes in a distributed storage system. Finally, the physical storage location is calculated based on the operational coordinates of the target data, and the target data is extracted from the distributed storage system and / or the preset storage space. This method simplifies the data management structure and improves storage flexibility by separating the header information from the seismic traces in the seismic volume file. Simultaneously, this method optimizes data storage by dividing the seismic data into blocks according to the multi-dimensional model and storing multiple multi-dimensional data cubes in a distributed storage system using a mapping algorithm. Based on this storage method, this method can perform index calculations based on the operational coordinates of the target data, avoiding the need to build and store index files separately for each dimension in traditional technologies, thereby reducing storage overhead and maintenance complexity, and improving the efficiency of data querying and retrieval.
[0082] Furthermore, this method can support the efficient storage and retrieval of different types of target data (such as target trace heads, target sampling points, and target seismic traces), meeting the needs of different applications.
[0083] Furthermore, this method can be seamlessly integrated with AI applications such as intelligent interpretation, providing data support for the future development of intelligent technologies in the field of seismic exploration.
[0084] In step S101 above, the header information in the acquired seismic body file is separated from the seismic trace, and the header information is stored in a preset storage space.
[0085] Specifically, this can involve extracting the text header, binary header, and multiple trace headers from the seismic body file to form a header information file, and then storing the header information file in a preset storage space. This preset storage space can be memory, which improves the index calculation efficiency of this method.
[0086] To facilitate understanding of this solution by those skilled in the art, the structure of the seismic body file and header information file described in step S101 is explained in detail below: Seismic body file formats include SEG-Y, SEG-2, etc. SEG-Y is the most common data storage format in seismic exploration, and the structure of other seismic body file formats is similar to that of SEG-Y. Therefore, the following explanation will be based on the SEG-Y format seismic body file.
[0087] A schematic diagram of the structure of the seismic body file is shown below. Figure 2 As shown, it includes a 3200-byte file text header, a 400-byte binary file header, multiple 240-byte track headers, and multiple track bodies.
[0088] The text header contains 40 lines of text information that provide an overall description of the seismic data in the seismic body file, including but not limited to the acquisition company, work team number, user, time, sampling interval, and number of coverages.
[0089] The binary file header, also known as the volume header, is a 2- or 4-byte binary complement integer. It contains binary values that affect the entire seismic body file, including but not limited to the data set type, number of data channels, sampling interval, total number of operational values, and sampling format code for each point (each point requires multiple bytes of storage space).
[0090] The trace header includes the attributes of each seismic trace, which are 2-byte or 4-byte two's complement integers. This information may differ for different seismic traces. It includes the trace's x and y coordinates, field file number, shot number, trace number, offset, elevation, CMP (Common Middle Point) gather number, the 3D master survey line number (inline) of the CMP gather, and the 3D connecting line number (xline) of the CMP gather.
[0091] The data structure consists of tens to thousands of sampled values (such as amplitude, velocity, and frequency). These sampled values can be in the format of 8-bit integers, 8-bit floating-point numbers, 16-bit integers, 16-bit floating-point numbers, 32-bit integers, 32-bit floating-point numbers, 64-bit integers, 64-bit floating-point numbers, or 32-bit floating-point numbers. For ease of explanation, this method will consistently use 32-bit floating-point numbers (4 bytes).
[0092] The text header, binary header, and multiple trace headers are extracted from the seismic body file to form a header information file, such as... Figure 3 As shown, it includes a 3200-byte file text header, a 400-byte binary file header, and multiple 240-byte headers.
[0093] In this embodiment, step S101 stores the header information and trace of the seismic data separately. By storing the header information file independently, redundant data is reduced, facilitating rapid retrieval and improving storage efficiency and data access speed. Furthermore, separate storage supports flexible data management and parallel computing, reducing storage overhead and improving system scalability.
[0094] In step S102 above, multiple dimensions are determined based on the keywords of the seismic trace body to construct a multidimensional model.
[0095] Specifically, this can be achieved by determining multiple predefined keywords within the seismic volume file type, based on the seismic volume file type. Multiple dimensions of the seismic trace, and their order, are then determined based on these keywords. Finally, a multidimensional model is constructed based on this dimensional order.
[0096] In one specific embodiment, the types of seismic volume files include pre-stack seismic volume files and post-stack seismic volume files, and examples of the corresponding multiple dimensions are shown in Table 1 below:
[0097] Table 1 Examples of multi-dimensional sorting for different seismic body file types
[0098] Earthquake body file type First Dimension Second dimension Third dimension Fourth Dimension Pre-stack seismic body files inline xline Azimuth slice Pre-stack seismic body files inline xline Offset distance slice Post-stack seismic body file inline xline slice
[0099] Inline and xline represent the row and column coordinates during seismic data acquisition, and are typically used to describe the location of sampling points in space.
[0100] Azimuth and offset are used to describe the direction or offset of seismic data acquisition. Azimuth refers to the orientation angle of the equipment, while offset refers to the distance from the source point to the detection point.
[0101] A slice typically refers to time or depth and is used to describe a sampled slice of data, where the time interval or depth interval between two adjacent sampling points is the same.
[0102] It's important to note that during physical storage, only the sample point values are stored, not the actual slice values. The location of the sample points is indirectly expressed by storing information such as the sampling interval, sampling start point, and total number of service values in the header information, thus saving storage space. This effectively reduces storage overhead.
[0103] In one specific embodiment, the starting value of the slice is stored as a short integer at positions 109-110 in the header, the total number of sampling points is stored as a short integer at positions 21-22 in the binary file header, and the sampling interval is stored as a short integer at positions 17-22 in the binary file header. Thus, the minimum value, maximum value, and interval of the slice can be obtained. If the slice is time, the unit is unified to milliseconds; if the slice is depth, the unit is unified to meters.
[0104] In this embodiment, step S102, by determining multiple dimensions based on the seismic body file type and constructing a multidimensional model, efficiently organizes and describes various aspects of seismic data. By clearly defining the dimensions corresponding to different types of seismic body files (such as pre-stack and post-stack files), information such as spatial coordinates and sampling slices is rationally divided, avoiding redundant data storage. During storage, only sampling point values are retained, and related parameters are stored through header information, effectively saving storage space. This provides efficient index calculation support for subsequent data extraction and querying.
[0105] In step S103 above, the multidimensional model is divided into multiple multidimensional data cubes, and the name of each multidimensional data cube, as well as the extreme values of business values in each dimension, the total number of location numbers, and the total number of multidimensional data cubes, are determined. Specifically, this includes the following steps S1031-S1032:
[0106] S1031: Determine the appropriate preset dimension length.
[0107] Specifically, to minimize read / write collisions and fully utilize storage concurrency efficiency in multidimensional data cubes, researchers in this field can determine a suitable preset dimension length—the number of values stored in each dimension of a multidimensional data cube—through experiments, considering various business scenarios. This controls the storage size of the multidimensional data cube, and the number of values stored in each dimension can vary to meet different business needs. For example, the preset dimension length can be set to 256, and for ease of explanation, the preset dimension length for each dimension will be consistently 256 in the following text.
[0108] S1032: Based on the preset dimension length and multidimensional model, calculate the extreme value of business value, the total number of location numbers and the total number of multidimensional data cubes in each dimension.
[0109] Specifically, the multidimensional model can include the minimum business interval for each dimension and all business values for each dimension. The minimum business interval represents the segmentation interval for a certain dimension. For example, in the slice dimension, the data storage interval is 10 milliseconds, meaning the data collection time interval between two adjacent business values is 10 milliseconds.
[0110] Based on all business values in each dimension, determine the extreme values of the business values in each dimension, including the maximum and minimum values of the business values in each dimension.
[0111] Based on the maximum and minimum business values for each dimension, the total number of location IDs for each dimension is calculated using the following formula 1:
[0112] dIndex max = (dValue) max -dValue min ) / ServiceSpan+1 Formula 1
[0113] In the formula, dIndex max dValue represents the total number of position numbers in a certain dimension. max and dValue minThese represent the maximum and minimum business values for the corresponding dimension, respectively, while ServiceSpan represents the minimum interval for the corresponding business value.
[0114] Based on the preset dimension length and total number of position numbers for each dimension, the total number of multidimensional data cubes for each dimension is calculated using the following formula 2:
[0115] cubeNo max = ceil(dIndex) max / dInterval) - 1 Formula 2
[0116] In the formula, cubeNo max dIndex represents the total number of multidimensional data cubes along a certain dimension. max This represents the total number of position numbers in the corresponding dimension, dInterval represents the preset dimension length in the corresponding dimension, and ceil represents the round-up function.
[0117] S1033: Divide the multidimensional model into multiple multidimensional data cubes.
[0118] Specifically, the multidimensional model can be divided into multiple multidimensional data cubes based on the total number of multidimensional data cubes in each dimension, and the name of each multidimensional data cube can be determined according to a preset naming rule.
[0119] In one specific embodiment, the preset naming rule includes that the name of the multidimensional data cube is composed of the number of the multidimensional data cube in each dimension and the underscores concatenated in dimensional order.
[0120] To facilitate understanding of this solution by those skilled in the art, the specific implementation of step S103 provided in the embodiments of this application is described more clearly and completely below: When the multidimensional model has 4 dimensions, the relevant data references for each dimension are obtained. Figure 4 As shown, dNo represents the dimension number, which has 4 dimensions. ServiceSpan represents the minimum service interval on the corresponding dimension. dInterval represents the preset dimension length on the corresponding dimension. dValue represents the service value on the corresponding dimension. The figure shows the maximum and minimum service values. dIndex represents the position number on the corresponding dimension. The maximum value is the total number of position numbers calculated in step S1032 above. cubeNo represents the multidimensional data cube number on the corresponding dimension. The maximum value is the total number of multidimensional data cubes calculated in step S1032 above.
[0121] Figure 4Below are four examples of multidimensional data cubes. The cube numbers in the figure correspond to the names of the multidimensional data cubes mentioned above. The first row shows the first multidimensional data cube, named "0_0_0_0," indicating that it is the first multidimensional data cube in each dimension. Following this are the maximum and minimum business values for each dimension. The second row shows the second multidimensional data cube, named "0_0_0_1," indicating that it is the first multidimensional data cube in the first three dimensions and the second in the last dimension. Following this are the maximum and minimum business values for each dimension, and so on. Therefore, it can be seen that... Figure 4 Taking the multidimensional model as an example, it can be divided into (8+1)*(4+1)*(0+1)*(3+1)=180 multidimensional data cubes, and the name of the last multidimensional data cube is "8_1_0_3".
[0122] The maximum and minimum business values for each dimension of each multidimensional data cube can be calculated as follows:
[0123] First, based on the minimum business interval and the preset dimension length for each dimension, the span of business dimension values that the multidimensional data cube can store in each dimension is calculated using the following formula 3:
[0124] cubeServiceSpan = ServiceSpan * dInterval Formula 3
[0125] In the formula, cubeServiceSpan represents the span of business dimension values that a multidimensional data cube can store on a certain dimension, ServiceSpan represents the minimum interval of business on the corresponding dimension, and dInterval represents the preset dimension length on the corresponding dimension.
[0126] Next, for each multidimensional data cube, based on the name of the multidimensional data cube, the span of business dimension values that the multidimensional data cube can store in each dimension, and the minimum business value, the minimum business value of the multidimensional data cube in each dimension is calculated using the following formula 4:
[0127] cubeValue min =cubeNo*cubeServiceSpan+dValue min Formula 4
[0128] In the formula, cubeValue mindValue represents the minimum business value in a certain dimension of the multidimensional data cube. cubeNo represents the multidimensional data cube number in the corresponding dimension. cubeServiceSpan represents the span of business dimension values that the multidimensional data cube can store in the corresponding dimension. min This represents the minimum business value in the corresponding dimension.
[0129] Based on the name of the multidimensional data cube, the span of business dimension values that the multidimensional data cube can store in each dimension, and the minimum business value, the initial maximum business value of the multidimensional data cube in each dimension is calculated using the following formula 5:
[0130] cubeValue initmax = (cubeNo+1)*cubeServiceSpan+dValue min Formula 5
[0131] In the formula, cubeValue initmax dValue represents the initial maximum business value of a multidimensional data cube in a certain dimension. cubeNo represents the multidimensional data cube number in the corresponding dimension. cubeServiceSpan represents the span of business dimension values that the multidimensional data cube can store in the corresponding dimension. min This represents the minimum business value in the corresponding dimension.
[0132] The minimum of the initial maximum business value and the maximum business value in each dimension of the multidimensional data cube is taken as the maximum business value in each dimension, as shown in the following formula:
[0133] cubeValue max = Min(cubeValue) initmax dValue max ) Formula 6
[0134] In the formula, cubeValue max CubeValue represents the maximum business value in a certain dimension of a multidimensional data cube. initmax dValue represents the initial maximum business value of the multidimensional data cube in the corresponding dimension. max This indicates the maximum value of the business value in the corresponding dimension.
[0135] In this embodiment, step S103 effectively optimizes data storage and access efficiency by dividing the multidimensional model into multiple multidimensional data cubes and determining the name, business value extremes, and location number of each multidimensional data cube. By presetting the dimension length and minimum business interval, the business value extremes and the total number of multidimensional data cubes in each dimension are calculated, ensuring that data is evenly distributed across the multidimensional data cubes, reducing read / write collisions, improving concurrent access efficiency, and avoiding bottlenecks in data access. Simultaneously, based on reasonable naming rules and index structures, the required data can be quickly located and accessed, further improving system performance and meeting the needs of different business scenarios.
[0136] In step S104 above, multiple multidimensional data cubes are stored on a distributed storage system using a mapping algorithm.
[0137] Specifically, one approach is to first number all storage nodes in the distributed storage system to obtain the total number of storage directories.
[0138] Then, for each multidimensional data cube, the mount number of the multidimensional data cube is obtained based on its name and the total number of storage directories, according to the following formula 7:
[0139] storageNo= hash(cubeName) / sorageCount Formula 7
[0140] In the formula, storageNo represents the mounting number of the multidimensional data cube, cubeName represents the name of the multidimensional data cube, storageCount represents the total number of storage directories, and hash is the hash function.
[0141] Using this mapping algorithm, each multidimensional data cube is located in the storage node corresponding to its mount number. Each storage node corresponds to a physical storage node, and each multidimensional data cube is stored as an independent file. For example... Figure 5 As shown, the file at the top is the file stored in the multidimensional data cube, and the file at the bottom is the corresponding N storage nodes.
[0142] In this embodiment of the application, step S104 further improves storage and access efficiency. The distributed storage method has high concurrency capability and can simulate different storage nodes through network file storage to ensure the system's efficient concurrent processing capability.
[0143] In step S105 above, the physical storage location of the target data is calculated based on the business coordinates of the acquired target data, the name of each multidimensional data cube, the extreme values of the business values in each dimension, the total number of location numbers, and the total number of multidimensional data cubes. The target data is then extracted from the distributed storage system and / or the preset storage space.
[0144] Depending on the target data, this application provides three execution methods for step S105, which can be used in different scenario requirements, including: The first method, where the target data is a target trace head, specifically includes steps S10501-S10504; the second method, where the target data is a target sampling point, specifically includes steps S10511-S10517; and the third method, where the target data is a target seismic trace, specifically includes steps S10521-S10528. The execution methods of the three steps S105 will be described below:
[0145] In the first method, where the target data is the target track head, step S105 specifically includes steps S10501-S10504:
[0146] S10501: Calculate the physical position offset of the track head in the top N dimensions based on the total number of position numbers in each dimension. Where N is the total number of dimensions minus 1.
[0147] Specifically, the physical position offset of the track head in the second-to-last dimension can be equal to the number of track head bytes, the physical position offset of the track head in the third-to-last dimension can be equal to the product of the physical position offset of the track head in the second-to-last dimension and the total number of position numbers in the second-to-last dimension, the physical position offset of the track head in the fourth-to-last dimension can be equal to the product of the physical position offset of the track head in the third-to-last dimension and the total number of position numbers in the third-to-last dimension, and so on, until the physical position offset of the track head in the first dimension is obtained.
[0148] by Figure 4 Taking the example of dividing a multidimensional data cube into multiple dimensions as shown, the physical position offset of the track head in the third dimension is equal to the number of track head bytes, which is 240. The physical position offset of the track head in the second dimension is equal to the physical position offset of the track head in the third dimension multiplied by the total number of position numbers in the third dimension, which is 240 * 11 = 2640. The physical position offset of the track head in the first dimension is equal to the physical position offset of the track head in the second dimension multiplied by the total number of position numbers in the second dimension, which is 2640 * 1151 = 3038640.
[0149] S10502: Convert business coordinates into location coordinates based on the extreme values of business values in each dimension.
[0150] Specifically, it can be that, based on the extreme values of the business values in each dimension, the business coordinates are converted into location coordinates according to the formula in step S1032 above.
[0151] by Figure 4 The example shown is a multidimensional data cube partitioned using a multidimensional model, and the business coordinates (dValue1, dValue2, dValue3) = (900, 3000, 110) are used as an example. According to Formula 1, the following can be calculated:
[0152] dIndex1 = (900 - 800) / 1 + 1 = 101
[0153] dIndex2=(3000-2700) / 2+1=151
[0154] dIndex3=(110-100) / 10+1=2
[0155] Then the position coordinates (dIndex1, dIndex2, dIndex3) = (101, 151, 2).
[0156] S10503: Multiply the physical position offset in each dimension by the position coordinates and sum them to obtain the physical storage location of the target track head.
[0157] Specifically, the physical storage location of the target header can be calculated based on the physical location offset and coordinates in each dimension, as well as the total number of bytes in the text file header and binary file header, using the following formula 8:
[0158]
[0159] In the formula, THPL represents the physical storage location of the target header, VHS represents the total number of bytes in the text file header and binary file header, dIndexk represents the value of the k-th dimension in the location coordinates, and headerBytes k This represents the physical position offset of the track head in the k-th dimension, where N is the total number of dimensions minus 1.
[0160] S10504: Extract target data from preset storage space based on the physical storage location of the target track head.
[0161] Specifically, this can be achieved by using the physical storage location of the target track header to locate its physical storage location within a preset storage space, and then reading the target track header from that location to obtain the target data. This process can be implemented through the file system access interface.
[0162] In the second method, where the target data is the target sampling point, step S105 specifically includes steps S10511-S10517:
[0163] S10511: Based on the business coordinates, calculate the multidimensional data cube number of the target sampling point in each dimension, and combine them to obtain the name of the target multidimensional data cube.
[0164] Specifically, the multidimensional data cube number of the target sampling point in each dimension can be calculated based on the business coordinates using the following formula 9:
[0165] cubeNo = (dValue - dValue) min ) / dInterval Formula 9
[0166] In the formula, cubeNo represents the multidimensional data cube number in a certain dimension, and dValue represents the value of the business coordinate in the corresponding dimension. min dInterval represents the minimum business value in the corresponding dimension, and dInterval represents the preset dimension length in the corresponding dimension.
[0167] S10512: Calculate the length of the target multidimensional data cube in each dimension based on the total number of multidimensional data cubes in each dimension and the multidimensional data cube number of the target sampling point in each dimension.
[0168] Specifically, for each dimension, it can be determined whether the number of the multidimensional data cube of the target sampling point in that dimension is less than the total number of multidimensional data cubes in that dimension:
[0169] If so, then add 1 to the preset dimension length as the length of the target multidimensional data cube in that dimension;
[0170] If not, calculate the remainder of the total number of position numbers in that dimension divided by the preset dimension length, and add 1 to obtain the length of the target multidimensional data cube in that dimension.
[0171] S10513: Calculate the physical position offset of the target multidimensional data cube in each dimension based on the length of the target multidimensional data cube in each dimension.
[0172] Specifically, the physical position offset of the target multidimensional data cube in the penultimate dimension can be equal to the number of bytes of a sample point value in the data volume; the physical position offset of the target multidimensional data cube in the penultimate dimension can be equal to the product of the physical position offset of the target multidimensional data cube in the penultimate dimension and the length of the target multidimensional data cube in the penultimate dimension; the physical position offset of the target multidimensional data cube in the third-to-last dimension can be equal to the product of the physical position offset of the target multidimensional data cube in the penultimate dimension and the length of the target multidimensional data cube in the penultimate dimension; and so on, until the physical position offset of the target multidimensional data cube in the first dimension is obtained.
[0173] by Figure 4 Taking the example of dividing a multidimensional data cube into multiple dimensions as shown in the multidimensional model, the physical position offset of the target multidimensional data cube in the fourth dimension is equal to the number of bytes of a sampling point value in the cube, i.e., bodyBytes4 = 4. The physical position offset of the target multidimensional data cube in the third dimension is equal to the product of the physical position offset of the target multidimensional data cube in the fourth dimension and the length of the target multidimensional data cube in the fourth dimension, i.e., bodyBytes3 = cubeLength4 * bodybytes4. The physical position offset of the target multidimensional data cube in the second dimension is equal to the product of the physical position offset of the target multidimensional data cube in the third dimension and the length of the target multidimensional data cube in the third dimension, i.e., bodyBytes2 = cubeLength3 * bodybytes3. The physical position offset of the target multidimensional data cube in the first dimension is equal to the product of the physical position offset of the target multidimensional data cube in the second dimension and the length of the target multidimensional data cube in the second dimension, i.e., bodyBytes1 = cubeLength2 * bodybytes2.
[0174] S10514: Based on the business coordinates, calculate the number of the target sampling point in each dimension of the target multidimensional data cube.
[0175] Specifically, it can be that, based on the business coordinates, the number of the target sampling point in each dimension of the target multidimensional data cube is calculated according to the following formula 10:
[0176] cubeInnerIndex = (dValue - cubeValue min ) / serviceSpan+1 Formula 10
[0177] In the formula, cubeInnerIndex represents the index of the target sampling point in a certain dimension of the target multidimensional data cube, dValue represents the business value of the business coordinate in the corresponding dimension, and cubeValue... min This represents the minimum business value of the target multidimensional data cube in the corresponding dimension, and serviceSpan represents the minimum business interval in the corresponding dimension.
[0178] Therefore, the business coordinates (dValue1, dValue2, dValue3, dValue4) are converted into the numbers of the target sampling points in each dimension of the target multidimensional data cube (cubeInnerIndex1, cubeInnerIndex2, cubeInnerIndex3, cubeInnerIndex4).
[0179] S10515: Multiply the physical position offset of the target multidimensional data cube in each dimension by the corresponding number of the target sampling point in each dimension of the target multidimensional data cube, and then sum them up to obtain the physical storage location of the business coordinates.
[0180] Specifically, the physical storage location of the target sampling point can be calculated based on the physical position offset of the target multidimensional data cube in each dimension and the number of the target sampling point in each dimension of the target multidimensional data cube, according to the following formula 11:
[0181]
[0182] In the formula, TSP represents the physical storage location of the target sampling point within the target multidimensional data cube, InnerIndexk of the multidimensional data cube represents the index of the target sampling point in the k-th dimension of the target multidimensional data cube, and bodyBytes k This represents the physical offset of the target multidimensional data cube in the k-th dimension, where M is the total number of dimensions.
[0183] S10516: Extract the target multidimensional data cube from the distributed storage system based on the name of the target multidimensional data cube.
[0184] Specifically, this can be achieved by using the name of the target multidimensional data cube to find the corresponding storage location through a mapping algorithm in the distributed storage system, thus locating the storage node. The routing key (the name of the target multidimensional data cube) is then used to locate the storage file, and the data of the target multidimensional data cube is retrieved from the distributed storage system via a network request. This step is existing technology and will not be elaborated upon here.
[0185] S10517: Extract target data from the target multidimensional data cube based on its physical storage location.
[0186] Specifically, this can be achieved by matching the physical storage location of the multidimensional data cube with the internal storage structure of the target multidimensional data cube, and then reading the data at the corresponding location from the storage file of the target multidimensional data cube. The storage location of the target data can be directly located using an offset, thereby quickly extracting the required data blocks. This step is existing technology and will not be elaborated upon here.
[0187] In the third method, where the target data is the target seismic trace, step S105 specifically includes steps S10521-S10528:
[0188] S10521: Based on the extreme values of the business values in each dimension, determine the maximum and minimum values of the business values in the last dimension.
[0189] by Figure 4 Taking the example of dividing a multidimensional data cube into multiple dimensions as shown in the multidimensional model, the maximum and minimum values of the business value on the last dimension are 8000 and 100, respectively.
[0190] S10522: Based on the operational coordinates, calculate the multidimensional data cube numbers of the target seismic trace in the first N dimensions of the sorting. Here, N is the total number of dimensions minus 1.
[0191] Specifically, it can be that, based on the business coordinates, the multidimensional data cube numbers of the target seismic traces in the first N dimensions of the sorting are calculated according to Formula 9 above.
[0192] by Figure 4 Taking the example of multidimensional model partitioning into multidimensional data cubes as shown, the business coordinates (dValue1, dValue2, dValue3) are converted into the multidimensional data cube numbers (cubeNo1, cubeNo2, cubeNo3) of the target seismic trace in the first three dimensions.
[0193] S10523: Based on the maximum and minimum values of the business values in the last dimension, calculate the maximum and minimum values of the multidimensional data cube number in the last dimension.
[0194] Specifically, it can be that the maximum and minimum values of the multidimensional data cube number in the last dimension are calculated based on the maximum and minimum values of the business values in the last dimension, respectively, according to the above formula 9.
[0195] by Figure 4 Taking the example of dividing a multidimensional data cube into multiple dimensions as shown in the diagram, the maximum and minimum values of the business values dValue on the last dimension are... slicemax and dValueslicemin Convert to the maximum and minimum values of cubeNo4, the multidimensional data cube number on the last dimension. max and cubeNo4 min .
[0196] S10524: Based on the maximum and minimum values of the multidimensional data cube numbers of the target seismic traces in the first N dimensions and the last dimension, the names of multiple target multidimensional data cubes are obtained by combining them.
[0197] by Figure 4 Taking the example of dividing a multidimensional data cube using a multidimensional model as shown, we can combine the results to obtain "cu beNo1_cubeNo2_cubeNo3_cubeNo4". min From "cubeNo1_cubeNo2_cubeNo3_cubeNo4" max The name of a multi-dimensional data cube with multiple objectives.
[0198] S10525: For each target multidimensional data cube, determine the starting physical storage location of the target multidimensional data cube based on business coordinates. This specifically includes steps S105251-S105254:
[0199] S105251: For each target multidimensional data cube, calculate the length of the target multidimensional data cube in each dimension.
[0200] S105252: Calculate the physical position offset of the target multidimensional data cube in each dimension based on the length of the target multidimensional data cube in each dimension.
[0201] S105253: Based on the business coordinates, calculate the number of the first N multiple dimensions within the target multidimensional data cube.
[0202] S105254: Multiply the physical position offset of the target multidimensional data cube in each dimension by the corresponding numbers of the first N dimensions sorted within the target multidimensional data cube, and then sum them up to obtain the physical storage starting position of the target multidimensional data cube.
[0203] In this embodiment of the application, the implementation process of steps S105251-S105254 is the same as that of steps S10512-S10515, and will not be described again here.
[0204] S10526: Extract the target multidimensional data cube from the distributed storage system based on the name of the target multidimensional data cube.
[0205] Specifically, this can be achieved by using the name of the target multidimensional data cube to find the corresponding storage location through a mapping algorithm in the distributed storage system, thus locating the storage node. The routing key (the name of the target multidimensional data cube) is then used to locate the storage file, and the data of the target multidimensional data cube is retrieved from the distributed storage system via a network request. This step is existing technology and will not be elaborated upon here.
[0206] S10527: Starting from the physical storage start position of the target multidimensional data cube, read all data of the target seismic traces within the target multidimensional data cube.
[0207] Specifically, this method can accurately locate and read all data of the target seismic trace within the target multidimensional data cube by using offsets, based on the physical storage starting position of the target multidimensional data cube. Specifically, this method extracts data block by block from the distributed storage system according to the name and physical storage location of the target multidimensional data cube, and decodes or restores it to the original seismic trace data as needed. Based on the data structure of each operational value, the sampling point values at each operational value are read sequentially until all required sampling point data has been read.
[0208] S10528: Stitch together all the data in each target multidimensional data cube to obtain the target data.
[0209] Specifically, based on the data read in step S10527, a complete seismic trace can be assembled according to dimensional order or the order of sorting a multidimensional data cube. In other words, this method sequentially integrates the data from multiple sampling points, merging all sampling point data of the target seismic trace into a complete seismic trace through data splicing. This step ensures the integrity of the target seismic trace, ultimately forming the target data for subsequent processing or analysis.
[0210] In this embodiment of the application, it can also be used in scenarios requiring multidimensional data query. When it is necessary to query the data of a surface or volume, the third method described above can be reused based on the business coordinate range of the obtained target data.
[0211] Specifically, with Figure 4 Taking the example of dividing a multidimensional data cube into multiple dimensions as shown in the diagram, determine whether the last dimension in the business coordinate range is the full value:
[0212] If so, then traverse from dimension 1 to the second to last dimension, obtain data from multiple seismic traces based on the third method mentioned above, and combine them to obtain a set of trace sampling point values within the business coordinate range;
[0213] If not, then replace the maximum and minimum values of the business values in the last dimension of the third method above with the maximum and minimum values of the last dimension of the business coordinate range, obtain data from multiple seismic traces, and combine them to obtain a set of trace body sampling point values for the business coordinate range.
[0214] Examples of business coordinate ranges include: Figure 6 As shown, the business coordinate range for the first dimension is 1600 to 1800, the business coordinate range for the second dimension is 3200 to 3900, the business coordinate range for the third dimension is 30 to 80, and the business coordinate range for the fourth dimension is 800 to 7000.
[0215] by Figure 6 Taking the business coordinate range shown as an example, the query results for the fourth dimension are as follows: Figure 7 As shown, the first column is a list of multidimensional data cube files, including four cube blocks: “cubeNo1 cubeNo2 cubeNo3_cubeNo40”, “cubeNo1_cubeNo2_cubeNo3_cubeNo41”, “cubeNo1_cubeNo2_cubeNo3_cubeNo42”, and “cubeNo1 cubeNo2_cubeNo3_cubeNo43”. The number after “cubeNo” is the dimension number, and the subscript after “cubeNo4” indicates the multidimensional data cube number. It should be noted that the names in the multidimensional data cube file list here are examples and are not related to the names of the multidimensional data cubes described in step S103 above.
[0216] Figure 7 The second column is a list of business values for the fourth dimension within the four multidimensional data cubes, including 792 business values ranging from 100 to 8000. Figure 7 The third column represents the query criteria, indicating that the business coordinate range for the fourth dimension is 800-7000, corresponding to... Figure 7 The second column, namely the blue business values within the first to third multidimensional data cubes, represents the target data.
[0217] In this embodiment, a REST service interface is implemented, utilizing the RESTful HTTP protocol to achieve data loading, writing, and querying functions, facilitating rapid integration by various applications. Specifically, this interface provides an efficient and concise way for external applications to interact with the distributed storage system without needing to concern themselves with the details of the underlying storage.
[0218] In this embodiment, the proposed method exhibits a significant performance advantage over traditional storage methods. For example, when searching a 17GB data profile, the traditional method requires processing 2,037,801 floating-point numbers, while the proposed method demonstrates a 23-fold performance improvement under the same conditions. Figure 8 As shown in the figure. This performance difference is mainly due to the use of an optimized index structure and efficient distributed storage technology, which makes querying and accessing large-scale data faster and more efficient.
[0219] Furthermore, the performance of 3D visualization retrieval and AI-written seismic volume has been significantly improved. For example, the 3D visualization effect is as follows: Figure 9 As shown, this method demonstrates a high response speed for 3D visualization retrieval, enabling real-time processing and display of large-scale 3D datasets. Simultaneously, the performance of writing a 10000*1000*300 data volume to a single physical disk reaches 117MBps, ensuring efficient data writing and storage operations and further enhancing the overall system's processing power and response speed.
[0220] Example 2
[0221] Based on the same inventive concept, embodiments of the present invention also provide a distributed, block-based, multi-dimensional storage device for seismic data volumes, referring to... Figure 10 As shown, the device includes:
[0222] The head-body separation module 101 is used to separate the header information from the seismic trace body in the acquired seismic body file and store the header information in a preset storage space.
[0223] The multidimensional modeling module 102 is used to determine multiple dimensions based on the keywords of the seismic trace body and construct a multidimensional model.
[0224] The data partitioning module 103 is used to partition the multidimensional model into multiple multidimensional data cubes, and determine the name of each multidimensional data cube, the extreme value of the business value in each dimension, the total number of location numbers, and the total number of multidimensional data cubes.
[0225] The distributed storage module 104 is used to store the multiple multidimensional data cubes into the distributed storage system through a mapping algorithm;
[0226] The index extraction module 105 is used to calculate the physical storage location of the target data based on the business coordinates of the acquired target data, the name of each multidimensional data cube, the extreme values of the business values in each dimension, the total number of location numbers, and the total number of multidimensional data cubes, and to extract the target data from the distributed storage system and / or the preset storage space.
[0227] Example 3
[0228] Based on the same inventive concept, embodiments of the present invention also provide a computer-readable storage medium storing a computer program / instruction thereon, which, when executed by a processor, implements the distributed block multidimensional storage method for seismic data volume as described in Embodiment 1 above.
[0229] Example 4
[0230] Based on the same inventive concept, embodiments of the present invention also provide a computer program product, including a computer program / instruction, which, when executed by a processor, implements the distributed block multidimensional storage method for seismic data volumes as described in Embodiment 1 above.
[0231] Example 5
[0232] Based on the same inventive concept, this embodiment of the invention also provides a computer device, including a memory, a processor, and a computer program stored in the memory. When the processor executes the computer program, it implements the distributed block multidimensional storage method for seismic data volume as described in Embodiment 1 above.
[0233] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage and optical storage) containing computer-usable program code.
[0234] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0235] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0236] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0237] Obviously, those skilled in the art can make various modifications and variations to this invention without departing from its spirit and scope. Therefore, if these modifications and variations fall within the scope of the claims of this invention and their equivalents, this invention also intends to include these modifications and variations.
Claims
1. A distributed, block-based, multi-dimensional storage method for seismic data volumes, characterized in that: include: Separate the header information from the seismic traces in the acquired seismic body file and store the header information in a preset storage space; Based on the keywords of the earthquake trace, multiple dimensions are determined to construct a multidimensional model; The multidimensional model is divided into multiple multidimensional data cubes, and the name of each multidimensional data cube, as well as the extreme values of business values, the total number of location numbers, and the total number of multidimensional data cubes in each dimension are determined. The multiple multidimensional data cubes are stored in a distributed storage system using a mapping algorithm; Based on the business coordinates of the acquired target data, the name of each multidimensional data cube, the extreme values of business values in each dimension, the total number of location numbers, and the total number of multidimensional data cubes, the physical storage location of the target data is calculated, and the target data is extracted from the distributed storage system and / or the preset storage space.
2. The method according to claim 1, characterized in that, The target data includes the target track head; the multiple dimensions in the multidimensional model are arranged sequentially. The step of calculating the physical storage location of the target data based on the acquired target data's business coordinates, the name of each multidimensional data cube, the extreme values of business values in each dimension, the total number of location numbers, and the total number of multidimensional data cubes, and extracting the target data from the distributed storage system and / or preset storage space includes: Calculate the physical position offset of the top N dimensions based on the total number of position numbers in each dimension; where N is the total number of dimensions minus 1. Based on the extreme values of the business values in each dimension, the business coordinates are converted into location coordinates; The physical location offset in each dimension is multiplied by the location coordinate and then summed to obtain the physical storage location of the target track head; The target data is extracted from the preset storage space based on the physical storage location of the target track head.
3. The method according to claim 1, characterized in that, The target data includes target sampling points; The step of calculating the physical storage location of the target data based on the acquired target data's business coordinates, the name of each multidimensional data cube, the extreme values of business values in each dimension, the total number of location numbers, and the total number of multidimensional data cubes, and extracting the target data from the distributed storage system and / or preset storage space includes: Based on the business coordinates, the multidimensional data cube number of the target sampling point in each dimension is calculated, and the name of the target multidimensional data cube is obtained by combining them. Based on the total number of multidimensional data cubes in each dimension and the multidimensional data cube number of the target sampling point in each dimension, the length of the target multidimensional data cube in each dimension is calculated. Based on the length of the target multidimensional data cube in each dimension, the physical position offset of the target multidimensional data cube in each dimension is calculated. Based on the business coordinates, the number of the target sampling point in each dimension of the target multidimensional data cube is calculated; The physical location offset of the target multidimensional data cube in each dimension is multiplied by the corresponding number of the target sampling point in each dimension of the target multidimensional data cube, and then summed to obtain the physical storage location of the target sampling point. Based on the name of the target multidimensional data cube, extract the target multidimensional data cube from the distributed storage system; Based on the physical storage location of the target sampling points, the target data is extracted from the target multidimensional data cube.
4. The method according to claim 1, characterized in that, The target data includes target seismic traces; the multiple dimensions in the multidimensional model are arranged sequentially, and the last dimension is depth or time; The step of calculating the physical storage location of the target data based on the acquired target data's business coordinates, the name of each multidimensional data cube, the extreme values of business values in each dimension, the total number of location numbers, and the total number of multidimensional data cubes, and extracting the target data from the distributed storage system and / or preset storage space includes: Based on the extreme values of the business values in each dimension, determine the maximum and minimum values of the business values in the last dimension; Based on the business coordinates, the multidimensional data cube numbers of the target seismic trace in the first N dimensions of the sorting are calculated; where N is the total number of dimensions minus 1; Based on the maximum and minimum values of the business values in the last dimension, the maximum and minimum values of the multidimensional data cube number in the last dimension are calculated. Based on the maximum and minimum values of the multidimensional data cube numbers of the target seismic trace in the first N dimensions and the last dimension, the names of multiple target multidimensional data cubes are obtained by combining them. For each target multidimensional data cube, the physical storage starting position of the target multidimensional data cube is determined based on the business coordinates; Based on the name of the target multidimensional data cube, extract the target multidimensional data cube from the distributed storage system; Starting from the physical storage start position of the target multidimensional data cube, read all the data of the target seismic trace within the target multidimensional data cube; The target seismic traces are stitched together with all the data within each target multidimensional data cube to obtain the target data.
5. The method according to claim 4, characterized in that, The step of determining the physical storage starting location of each target multidimensional data cube based on the business coordinates includes: For each target multidimensional data cube, the length of the target multidimensional data cube in each dimension is calculated; Based on the length of the target multidimensional data cube in each dimension, the physical position offset of the target multidimensional data cube in each dimension is calculated. Based on the business coordinates, the numbers of the first N dimensions within the target multidimensional data cube are calculated. The physical position offset of the target multidimensional data cube in each dimension is multiplied by the corresponding numbers of the first N dimensions sorted within the target multidimensional data cube, and then summed to obtain the physical storage starting position of the target multidimensional data cube.
6. The method according to claim 1, characterized in that, The step of separating the header information from the seismic traces in the acquired seismic body file and storing the header information in a preset storage space includes: Extract the text header, binary header, and multiple trace headers from the seismic body file to form a header information file; The header information file is stored in a preset storage space.
7. A distributed, block-based, multi-dimensional storage device for seismic data volumes, characterized in that, include: The head-body separation module is used to separate the header information from the seismic trace in the acquired seismic body file and store the header information in a preset storage space. The multidimensional modeling module is used to determine multiple dimensions based on the keywords of the seismic trace body and construct a multidimensional model. The data partitioning module is used to divide the multidimensional model into multiple multidimensional data cubes, and determine the name of each multidimensional data cube, the extreme value of the business value in each dimension, the total number of location numbers, and the total number of multidimensional data cubes. A distributed storage module is used to store the multiple multidimensional data cubes into a distributed storage system using a mapping algorithm; The index extraction module is used to calculate the physical storage location of the target data based on the business coordinates of the acquired target data, the name of each multidimensional data cube, the extreme values of the business values in each dimension, the total number of location numbers, and the total number of multidimensional data cubes, and to extract the target data from the distributed storage system and / or the preset storage space.
8. A computer-readable storage medium having a computer program / instructions stored thereon, characterized in that, When the computer program / instruction is executed by the processor, it implements the distributed block multidimensional storage method for seismic data volumes as described in any one of claims 1-6.
9. A computer program product, comprising a computer program / instructions, characterized in that, When the computer program / instruction is executed by the processor, it implements the distributed block multidimensional storage method for seismic data volumes as described in any one of claims 1-6.
10. A computer device, comprising a memory, a processor, and a computer program stored in the memory, characterized in that, The processor executes the computer program to implement the distributed block multidimensional storage method for seismic data volumes as described in any one of claims 1-6.