Seismic data reading method, device, computer equipment and storage medium

By classifying and processing seismic data requests in parallel and using multiple worker threads to read seismic data in parallel, the problem of low reading efficiency caused by large amounts of seismic data is solved, and the efficiency of seismic data reading is improved and the processing time is balanced.

CN119127925BActive Publication Date: 2025-09-26CHINA NAT PETROLEUM CORP +2
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310695180.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-06-12
Publication Date
2025-09-26
Estimated Expiration
2043-06-12

AI Technical Summary

Technical Problem

The large amount of seismic data leads to low reading efficiency, which affects the efficiency of seismic interpretation.

Method used

By classifying seismic data requests into first requests with small data volume and second requests with large data volume, a request set is formed and distributed to multiple worker threads for parallel reading, and the parallel processing of multiple worker threads is used to improve reading efficiency.

Benefits of technology

When there are fewer working threads, the reading efficiency of seismic data is effectively improved, reasonable working thread allocation and processing time balance are achieved, and the overall processing efficiency of seismic data is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119127925B_ABST
    Figure CN119127925B_ABST
Patent Text Reader

Abstract

The present application provides a method, apparatus, computer device, and storage medium for reading seismic data, belonging to the field of geophysical exploration technology. The method includes: in response to receiving multiple data read requests for multiple sets of seismic data, determining at least one first request and at least one second request from the multiple data read requests based on the data volume of each of the multiple sets of seismic data; classifying the at least one first request to obtain at least one request set, each request set including at least one first request; adding the at least one request set and at least one second request to a task queue; distributing the at least one request set and at least one second request in the task queue to multiple worker threads; and, using the multiple worker threads, concurrently reading the multiple sets of seismic data corresponding to the at least one request set and at least one second request from a database. This method improves the efficiency of reading seismic data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of geophysical exploration technology, and in particular to a method, device, computer equipment and storage medium for reading seismic data. Background Art

[0002] With the advancement of geophysical exploration technology, more and more seismic data can be collected, enabling detailed interpretation of strata when performing seismic interpretation based on this data. However, seismic interpretation based on this data requires reading the seismic data first. Due to the large volume of seismic data, the efficiency of reading the seismic data significantly affects the efficiency of seismic interpretation. Therefore, a seismic data reading method is needed to improve the efficiency of seismic data reading and, in turn, the efficiency of seismic interpretation. Summary of the Invention

[0003] The present invention provides a method, apparatus, computer device, and storage medium for reading seismic data, which improves the efficiency of reading seismic data. The technical solution is as follows:

[0004] In one aspect, a method for reading seismic data is provided, the method comprising:

[0005] In response to receiving a plurality of data read requests for a plurality of sets of seismic data, determining at least one first request and at least one second request from the plurality of data read requests based on respective data amounts of the plurality of sets of seismic data, wherein the data amount of the seismic data corresponding to the first request is less than a first reference data amount, and the data amount of the seismic data corresponding to the second request is not less than the first reference data amount;

[0006] Classifying the at least one first request to obtain at least one request set, each request set including at least one first request, and a total amount of seismic data corresponding to the at least one first request included in each request set is no greater than a second reference amount of data, where the second reference amount of data is a maximum amount of data among the respective amounts of the multiple sets of seismic data;

[0007] Adding the at least one request set and the at least one second request to a task queue;

[0008] Distributing at least one request set and at least one second request in the task queue to a plurality of worker threads;

[0009] The multiple groups of seismic data corresponding to the at least one request set and the at least one second request are read from the database in parallel through the multiple working threads, and the read multiple groups of seismic data are used for seismic interpretation.

[0010] In some embodiments, distributing the at least one request set and the at least one second request in the task queue to a plurality of worker threads includes:

[0011] The at least one request set is distributed to at least one working thread respectively, and the at least one second request is distributed to a working thread respectively.

[0012] In some embodiments, each request set is distributed to multiple worker threads respectively, and distributing the at least one request set to at least one worker thread respectively includes:

[0013] When the number of first requests in a first request set exceeds the number of multiple worker threads corresponding to the first request set, the first number of first requests in the first request set are distributed to the multiple worker threads corresponding to the first request set, and the second number of first requests in the first request set are distributed to the worker threads corresponding to the second request set and in an idle state. The first request set is any request set in the at least one request set, and the second request set is a request set in the at least one request set that corresponds to an idle worker thread. The sum of the first number and the second number is the number of first requests in the first request set.

[0014] In some embodiments, each request set is distributed to a worker thread, and a process of reading at least one set of seismic data corresponding to the at least one request set from a database in parallel by the multiple worker threads includes:

[0015] For each request set, determining an execution order of each first request in the request set based on the amount of seismic data corresponding to each first request in the request set, wherein the execution order of each first request is negatively correlated with the amount of seismic data corresponding to the first request;

[0016] Based on the execution order, the seismic data corresponding to each first request in the request set is read in sequence through the working thread corresponding to the request set.

[0017] In some embodiments, the method further comprises:

[0018] Displaying the multiple sets of seismic data read by the multiple working threads; or

[0019] The multiple groups of seismic data read are processed through the multiple working threads, and the processing results are displayed.

[0020] In some embodiments, processing the read multiple sets of seismic data by the multiple working threads and displaying the processing results includes:

[0021] Drawing a plurality of seismic sections respectively based on the plurality of groups of seismic data read by the plurality of working threads, and displaying the drawn plurality of seismic sections; or,

[0022] Drawing a plurality of seismic sections respectively based on the plurality of groups of seismic data read by the plurality of working threads, drawing a stacked map of the plurality of seismic sections based on the plurality of seismic sections, and displaying the stacked map; or,

[0023] Drawing a plurality of well logging curves based on the plurality of groups of seismic data read by the plurality of working threads, and displaying the drawn plurality of well logging curves; or,

[0024] Through the multiple working threads, multiple logging curves are drawn based on the multiple sets of seismic data read, a cross-plot of the multiple logging curves is drawn based on the multiple logging curves, and the cross-plot is displayed.

[0025] In some embodiments, classifying the at least one first request to obtain at least one request set includes:

[0026] Determine at least one data type of the seismic data corresponding to each of the at least one first request; classify the at least one first request based on the at least one data type and the second reference data volume to obtain the at least one request set, wherein the total data volume of the seismic data corresponding to the at least one first request included in each request set is not greater than the second reference data volume, and the data type of the seismic data corresponding to the at least one first request included in each request set is the same; or,

[0027] Determine at least one task type of the seismic data corresponding to the at least one first request, wherein the task type is used to indicate the purpose of the seismic data; classify the at least one first request based on the at least one task type and the second reference data volume to obtain the at least one request set, wherein the total data volume of the seismic data corresponding to the at least one first request included in each request set is not greater than the second reference data volume, and the task type of the seismic data corresponding to the at least one first request included in each request set is the same.

[0028] In another aspect, a device for reading seismic data is provided, the device comprising:

[0029] a request determination module configured to, in response to receiving a plurality of data read requests for a plurality of sets of seismic data, determine, based on respective data volumes of the plurality of sets of seismic data, at least one first request and at least one second request from the plurality of data read requests, wherein the data volume of the seismic data corresponding to the first request is less than a first reference data volume, and the data volume of the seismic data corresponding to the second request is not less than the first reference data volume;

[0030] a classification module, configured to determine, based on the at least one first request, at least one request set, each request set including at least one first request, and wherein a total amount of seismic data corresponding to the at least one first request included in each request set is no greater than a second reference amount of data, wherein the second reference amount of data is a maximum amount of data among the respective amounts of the multiple sets of seismic data;

[0031] A queue adding module, configured to add the at least one request set and the at least one second request to a task queue;

[0032] a distribution module, configured to distribute at least one request set and at least one second request in the task queue to a plurality of worker threads;

[0033] The reading module is used to read the multiple groups of seismic data corresponding to the at least one request set and the at least one second request from the database in parallel through the multiple working threads, and the read multiple groups of seismic data are used for seismic interpretation.

[0034] In some embodiments, the distribution module is configured to:

[0035] The at least one request set is distributed to at least one working thread respectively, and the at least one second request is distributed to a working thread respectively.

[0036] In some embodiments, each request set is distributed to multiple worker threads, and the distribution module is used to:

[0037] When the number of first requests in a first request set exceeds the number of multiple worker threads corresponding to the first request set, the first number of first requests in the first request set are distributed to the multiple worker threads corresponding to the first request set, and the second number of first requests in the first request set are distributed to the worker threads corresponding to the second request set and in an idle state. The first request set is any request set in the at least one request set, and the second request set is a request set in the at least one request set that corresponds to an idle worker thread. The sum of the first number and the second number is the number of first requests in the first request set.

[0038] In some embodiments, each request set is distributed to a worker thread, and the reading module is used to:

[0039] For each request set, determining an execution order of each first request in the request set based on the amount of seismic data corresponding to each first request in the request set, wherein the execution order of each first request is negatively correlated with the amount of seismic data corresponding to the first request;

[0040] Based on the execution order, the seismic data corresponding to each first request in the request set is read in sequence through the working thread corresponding to the request set.

[0041] In some embodiments, the apparatus further comprises:

[0042] A display module is configured to display the multiple sets of seismic data read through the multiple working threads; or

[0043] The processing module is used to process the multiple groups of seismic data read through the multiple working threads and display the processing results.

[0044] In some embodiments, the processing module is configured to:

[0045] Drawing a plurality of seismic sections respectively based on the plurality of groups of seismic data read by the plurality of working threads, and displaying the drawn plurality of seismic sections; or,

[0046] Drawing a plurality of seismic sections respectively based on the plurality of groups of seismic data read by the plurality of working threads, drawing a stacked map of the plurality of seismic sections based on the plurality of seismic sections, and displaying the stacked map; or,

[0047] Drawing a plurality of well logging curves based on the plurality of groups of seismic data read by the plurality of working threads, and displaying the drawn plurality of well logging curves; or,

[0048] Through the multiple working threads, multiple logging curves are drawn based on the multiple sets of seismic data read, a cross-plot of the multiple logging curves is drawn based on the multiple logging curves, and the cross-plot is displayed.

[0049] In some embodiments, the classification module is configured to:

[0050] Determine at least one data type of the seismic data corresponding to each of the at least one first request; classify the at least one first request based on the at least one data type and the second reference data volume to obtain the at least one request set, wherein the total data volume of the seismic data corresponding to the at least one first request included in each request set is not greater than the second reference data volume, and the data type of the seismic data corresponding to the at least one first request included in each request set is the same; or,

[0051] Determine at least one task type of the seismic data corresponding to the at least one first request, wherein the task type is used to indicate the purpose of the seismic data; classify the at least one first request based on the at least one task type and the second reference data volume to obtain the at least one request set, wherein the total data volume of the seismic data corresponding to the at least one first request included in each request set is not greater than the second reference data volume, and the task type of the seismic data corresponding to the at least one first request included in each request set is the same.

[0052] On the other hand, a computer device is provided, which includes one or more processors and one or more memories, wherein at least one program code is stored in the one or more memories, and the at least one program code is loaded and executed by the one or more processors to implement the method for reading seismic data described in any of the above implementation methods.

[0053] On the other hand, a computer-readable storage medium is provided, in which at least one program code is stored. The at least one program code is loaded and executed by a processor to implement the method for reading seismic data described in any of the above implementations.

[0054] On the other hand, a computer program product is provided, which includes a computer program code, the computer program code is stored in a computer-readable storage medium, a processor of a computer device reads the computer program code from the computer-readable storage medium, and the processor executes the computer program code, so that the computer device executes the method for reading seismic data described in any of the above-mentioned implementation methods.

[0055] The embodiment of the present application provides a method for reading seismic data, which determines a first request with a smaller amount of data to be read and a second request with a larger amount of data. In addition, a plurality of first requests are grouped into a request set. Since the amount of data corresponding to the first request in the request set is not greater than the largest amount of data in the multiple groups of seismic data, the request set has a data amount close to that of the second request, thereby making the request set have a processing time close to that of the second request. In addition, at least one request set and at least one second request are distributed to multiple working threads, and the seismic data corresponding to the at least one request set and at least one second request are read in parallel by multiple working threads, thereby improving the reading efficiency of seismic data through the parallel processing of multiple threads. And since the request set has a processing time close to that of the second request, the time consumed by each working thread to process the request is similar, thereby achieving a reasonable allocation of working threads, thereby effectively improving the reading efficiency of seismic data when there are fewer working threads. BRIEF DESCRIPTION OF THE DRAWINGS

[0056] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0057] Figure 1 This is a schematic diagram of an implementation environment provided by an embodiment of the present application;

[0058] Figure 2 This is a flow chart of a method for reading seismic data provided by an embodiment of the present application;

[0059] Figure 3 is a flow chart of another method for reading seismic data provided by an embodiment of the present application;

[0060] Figure 4 is a flow chart of another method for reading seismic data provided by an embodiment of the present application;

[0061] Figure 5 is a block diagram of a seismic data reading device provided in an embodiment of the present application;

[0062] Figure 6 is a block diagram of a computer device provided in an embodiment of the present application;

[0063] Figure 7 This is a block diagram of a server provided in an embodiment of the present application. DETAILED DESCRIPTION

[0064] In order to make the objectives, technical solutions and advantages of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.

[0065] The terms "first," "second," "third," and "fourth," etc. in the specification and claims of this application and the accompanying drawings are used to distinguish different objects, not to describe a specific order. In addition, the terms "including" and "having," and any variations thereof, are intended to cover non-exclusive inclusions. For example, a process, method, system, product, or apparatus comprising a series of steps or elements is not limited to the listed steps or elements, but may optionally include steps or elements not listed, or may optionally include other steps or elements inherent to the process, method, product, or apparatus.

[0066] It should be noted that the messages (including but not limited to user device messages, user personal messages, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.), and signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data must comply with the relevant laws, regulations, and standards of the relevant countries and regions. For example, the earthquake data involved in this application was obtained with full authorization.

[0067] Figure 1 This is a schematic diagram of the implementation environment of a seismic data reading method provided by this application, see Figure 1 The implementation environment includes a computer device, which can be provided as a terminal 101 or as a terminal 101 and a server 102, without specific limitation.

[0068] If the computer device is provided as the terminal 101, the terminal 101 has a target application installed thereon. The target application may be a seismic interpretation application for reading seismic data, performing seismic interpretation based on the read seismic data, and displaying the seismic data or seismic interpretation results.

[0069] If the computer devices are provided as a terminal 101 and a server 102, the terminal 101 and server 102 can be connected via a wireless or wired network. Accordingly, the target application is installed on the terminal 101, and the server 102 serves as the backend server for the target application. The terminal 101 is configured to send a data read request to the server 102. The server 102 reads seismic data based on the data read request and sends the seismic data to the terminal 101 for display. Alternatively, the server 102 performs seismic interpretation based on the seismic data and sends the seismic interpretation results to the terminal 101 for display.

[0070] The terminal 101 is at least one of a mobile phone, a tablet computer, a PC (Personal Computer), an intelligent voice interaction device, and an in-vehicle terminal. The server 102 is at least one of a single server, a server cluster consisting of multiple servers, a cloud server, a cloud computing platform, and a virtualization center.

[0071] The present invention provides a method for reading seismic data. Figure 2 , Figure 2 1 is a flow chart of a method for reading seismic data provided in an embodiment of the present application, the method comprising the following steps:

[0072] 201. In response to receiving multiple data reading requests for multiple sets of seismic data, the computer device determines at least one first request and at least one second request from the multiple data reading requests based on the data volume of each of the multiple sets of seismic data, the data volume of the seismic data corresponding to the first request is less than the first reference data volume, and the data volume of the seismic data corresponding to the second request is not less than the first reference data volume.

[0073] In the embodiments of the present application, multiple sets of seismic data are used for seismic interpretation. Each set of seismic data includes multiple sets of seismic data for the same object. For example, a set of seismic data may include well logging data from different depths in the same well. The well logging data may include data such as natural potential or resistivity. Another example is a set of seismic data including core data from different depths in the same well. The core data may include data such as porosity or permeability. Another example is a set of data including seismic wave data from different locations in the same work area. This is not specifically limited here.

[0074] In an embodiment of the present application, a data read request is used to request the reading of seismic data. The data read request may include the identifier and storage location of the seismic data to facilitate reading the seismic data. Optionally, the data read request may also include the data volume of the seismic data. The first reference data volume can be set and modified as needed and is not specifically limited herein.

[0075] 202. The computer device classifies at least one first request to obtain at least one request set, each request set including at least one first request, and the total amount of seismic data corresponding to the at least one first request included in each request set is not greater than a second reference amount of data, and the second reference amount of data is the largest amount of data among the respective amounts of the multiple groups of seismic data.

[0076] In the embodiment of the present application, the data volume of the seismic data corresponding to the request set and the second request is no greater than the second reference data volume. Optionally, the second reference data volume is greater than the first reference data volume.

[0077] 203. The computer device adds at least one request set and at least one second request to a task queue.

[0078] In an embodiment of the present application, the task queue is used to store pending data read requests. The at least one request set and the at least one second request may be sequentially sorted in the task queue based on the order in which they are added to the task queue, or may be randomly sorted, which is not specifically limited herein.

[0079] 204. The computer device distributes at least one request set and at least one second request in the task queue to multiple working threads.

[0080] In the embodiment of the present application, each second request is distributed to a worker thread, and each request set is distributed to one or more worker threads, which is not specifically limited here.

[0081] 205. The computer device reads multiple sets of seismic data corresponding to at least one request set and at least one second request from the database in parallel through multiple working threads, and the read multiple sets of seismic data are used for seismic interpretation.

[0082] In the embodiment of the present application, seismic interpretation includes but is not limited to dividing horizons, identifying faults, identifying reservoirs, identifying reservoir seepage barriers, etc. The database is used to store multiple sets of seismic data.

[0083] In the embodiment of the present application, the computer device displays, stores or processes the read seismic data, which is not specifically limited here.

[0084] The embodiment of the present application provides a method for reading seismic data, which determines a first request with a smaller amount of data to be read and a second request with a larger amount of data. In addition, a plurality of first requests are grouped into a request set. Since the amount of data corresponding to the first request in the request set is not greater than the largest amount of data in the multiple groups of seismic data, the request set has a data amount close to that of the second request, thereby making the request set have a processing time close to that of the second request. In addition, at least one request set and at least one second request are distributed to multiple working threads, and the seismic data corresponding to the at least one request set and at least one second request are read in parallel by multiple working threads, thereby improving the reading efficiency of seismic data through the parallel processing of multiple threads. And since the request set has a processing time close to that of the second request, the time consumed by each working thread to process the request is similar, thereby achieving a reasonable allocation of working threads, thereby effectively improving the reading efficiency of seismic data when there are fewer working threads.

[0085] Figure 2 This is the basic process of reading seismic data. Figure 3 This section introduces the detailed process of reading earthquake data. Figure 3, Figure 3 This is a flowchart of a method for reading seismic data provided in an embodiment of the present application, which includes the following steps.

[0086] 301. In response to receiving multiple data reading requests for multiple sets of seismic data, the computer device determines at least one first request and at least one second request from the multiple data reading requests based on the data volume of each of the multiple sets of seismic data, the data volume of the seismic data corresponding to the first request is less than the first reference data volume, and the data volume of the seismic data corresponding to the second request is not less than the first reference data volume.

[0087] In some embodiments, multiple sets of seismic data are used to complete the same seismic interpretation task. Accordingly, in response to a triggering operation on a task control for the seismic interpretation task, multiple data read requests are triggered. In other embodiments, the multiple sets of seismic data each correspond to a read control. Accordingly, in response to a triggering operation on multiple read controls corresponding to the multiple sets of seismic data, the multiple data read requests are triggered. In other embodiments, the multiple sets of seismic data each correspond to a selection control. After selecting the selection controls corresponding to the multiple sets of seismic data, multiple data read requests are triggered in response to a triggering operation on a confirmation control of the multiple selection controls, i.e., multiple data read requests are triggered simultaneously.

[0088] In an embodiment of the present application, the first reference data volume can be set and changed as needed. Optionally, the first reference data volume is negatively correlated with the number of multiple worker threads, that is, the fewer the number of multiple worker threads, the larger the first reference data volume. In this way, when the number of worker threads is small, the first reference data volume can be increased to increase the number of first requests, thereby increasing the number of first requests in the request set and reducing the number of second requests, so that the number of request sets and second requests matches the number of worker threads.

[0089] 302. The computer device classifies at least one first request to obtain at least one request set, each request set including at least one first request, and the total amount of seismic data corresponding to the at least one first request included in each request set is not greater than a second reference amount of data, and the second reference amount of data is the largest amount of data among the respective amounts of the multiple groups of seismic data.

[0090] In some embodiments, the computer device further determines the request set based on the data type or task type of the seismic data. Accordingly, the process of determining at least one request set based on at least one first request by the computer device includes the following two implementations.

[0091] In a first implementation, a computer device determines at least one data type of seismic data corresponding to at least one first request; based on the at least one data type and a second reference data volume, the at least one first request is classified to obtain at least one request set, wherein the total data volume of the seismic data corresponding to the at least one first request included in each request set is no greater than the second reference data volume, and the seismic data corresponding to the at least one first request included in each request set are of the same data type. In this implementation, first requests of the same data type are classified into the same request set, which facilitates processing of requests of the same data type by a worker thread based on the same work function, and enables parallel processing of data read requests of different data types.

[0092] Seismic data of different data types include seismic data obtained through different methods, such as well logging data, core data, and seismic wave data. Well logging data refers to data acquired through logging instruments within a well, including natural potential data and resistivity data. Core data refers to data obtained through experimental testing of rock samples taken from a well. Seismic wave data is data obtained by transmitting seismic waves into the formation. Alternatively, seismic data of different data types include seismic data obtained during different seismic exploration phases. Seismic exploration phases include field acquisition, data processing, and seismic interpretation. Accordingly, seismic data of different data types include acquired raw seismic data, processed seismic data, and seismic data used for seismic interpretation. Alternatively, seismic data of different data types may include seismic data from different objects within the same work area, such as horizon data, fault data, and well data, without specific limitations herein. Alternatively, seismic data of different data types may include seismic data in different formats, such as digital, image, and video formats.

[0093] In a second implementation, a computer device determines at least one task type for seismic data corresponding to at least one first request, where the task type indicates the purpose of the seismic data. Based on the at least one task type and the second reference data volume, the computer device classifies the at least one first request to obtain at least one request set, wherein the total data volume of the seismic data corresponding to the at least one first request included in each request set is no greater than the second reference data volume, and the seismic data corresponding to the at least one first request included in each request set have the same task type. In this implementation, first requests with the same task type are classified into the same request set, so that after the working thread has read the seismic data corresponding to these first requests, it can complete the same seismic interpretation task based on these seismic data, and parallel processing of data reading requests of different task types is achieved.

[0094] The task type indicates the purpose of the seismic data. For example, the task types include drawing seismic profiles, drawing well logging curves, identifying horizons, identifying faults, identifying reservoirs, and identifying reservoir seepage barriers.

[0095] In an embodiment of the present application, a request set and a second request are processed in parallel, with the request with the largest data size determining the overall processing time for the multiple data requests. By limiting the data size corresponding to each request set using the second reference data size, and since data size is positively correlated with request processing time, the processing time for each request set is controlled, resulting in a similar processing time for the request set and the second request. This not only achieves a reasonable allocation of work threads but also avoids excessive processing time for any one request set, thereby ensuring the overall processing time for multiple data read requests and improving processing efficiency.

[0096] 303. The computer device adds at least one request set and at least one second request to a task queue.

[0097] In some embodiments, the computer device adds the request set and the second request to the task queue and sorts the request set and the second request. In one implementation, the computer device sorts at least one request set before or after at least one second request, thereby facilitating the subsequent distribution of work threads to the request set and the second request. In another implementation, the computer device sorts based on the amount of data corresponding to each of the at least one request set and the at least one second request. The order of each request set or second request is negatively correlated with the amount of data corresponding to it, that is, the larger the amount of data, the later the sorting. Since work threads are distributed in sequence to the request set and the second request in the task queue to process the seismic data, it is convenient to give priority to requests with small amounts of data and fast processing speeds.

[0098] In some embodiments, step 302 is performed only when the amount of seismic data corresponding to at least two first requests is not greater than half of the second reference data amount. In the case where the amount of seismic data corresponding to any first request is greater than half of the second reference data amount, the total amount of seismic data corresponding to any two first requests will be greater than the second reference data amount. Accordingly, there is no need to perform step 302, and at least one first request and at least one second request are directly added to the task queue. Furthermore, if the amount of data corresponding to multiple data read requests is greater than the first reference data amount, there is no need to perform step 302, and the multiple data read requests are directly added to the task queue.

[0099] Accordingly, when the task queue does not include a request set, the computer device sorts the at least one first request and the at least one second request. Optionally, the computer device sorts the first request before the second request, thereby facilitating priority processing of requests with smaller data volumes. Alternatively, the computer device sorts the first request and the second request based on the time at which the first request and the second request are received, with the order of each request being positively correlated with its reception time, i.e., the earlier the reception time, the higher the order, thereby enabling the first-received request to be processed first.

[0100] 304. The computer device distributes at least one request set and at least one second request in the task queue to multiple working threads.

[0101] In some embodiments, the computer device distributes at least one request set to at least one worker thread, and distributes at least one second request to a worker thread. The computer device distributes at least one request set to at least one worker thread in the following three implementations.

[0102] In a first implementation manner, if the number of the plurality of worker threads is equal to the sum of the number of the at least one request set and the number of the at least one second request, the computer device distributes the at least one request set to a worker thread respectively.

[0103] In a second implementation, if the number of multiple worker threads is greater than the sum of the number of at least one request set and the number of at least one second request, the computer device distributes a worker thread to each request set to facilitate the remaining worker threads to handle other tasks. Alternatively, the computer device distributes each group of first request sets to a first number of worker threads, and distributes each group of target request sets to a second number of worker threads. The first number is the quotient of the third number and the number of at least one request set, and the third number is the difference between the number of multiple worker threads and the number of at least one second request. The second number is the sum of the first number and 1. The target request set is the target number of request sets after sorting in the at least one request set. Optionally, at least one group of target request sets is sorted according to the corresponding amount of data, and the larger the amount of data, the later the sorting. The target number is the remainder of the quotient of the third number and the number of at least one request set. Alternatively, at least one group of target request sets is sorted according to the number of first requests included, and the more first requests included, the later the sorting.

[0104] For example, if the number of worker threads is 10, the number of second requests is 3, and the number of request sets is 4, then after assigning a worker thread to each second request, there are 7 worker threads remaining, which is insufficient to assign two worker threads to each request set. Therefore, some request sets are assigned to one worker thread, and some are assigned to two worker threads. Specifically, the first request set is assigned to one worker thread, and the last three request sets are assigned to two worker threads. This allows the two worker threads to process the two first requests in the request set in parallel, thus achieving parallel processing and further improving processing efficiency.

[0105] In a third implementation, if the number of the plurality of worker threads is less than the sum of the number of the at least one request set and the number of the at least one second request, the computer device sequentially distributes the at least one request set and the at least one second request to the plurality of worker threads based on the order of the at least one request set and the at least one second request in the task queue. For the remaining request sets and second requests that have not been distributed, after the worker thread has processed the distributed requests, i.e., after the worker thread has transitioned from a busy state to an idle state, the worker thread continues to process the remaining request sets and second requests until all request sets and second requests have been processed.

[0106] In some embodiments, the computer device is configured with multiple work threads for each request set, that is, each request set is distributed with multiple work threads. Optionally, the number of work threads distributed to at least one request set is the same, and since the number of first requests included in at least one request set may be different, the work threads distributed to some request sets will be in an idle state. Accordingly, the above formula distributes at least one request set to at least one work thread respectively, including the following steps: when the number of first requests in the first request set exceeds the number of multiple work threads corresponding to the first request set, the computer device distributes the first number of first requests in the first request set to the multiple work threads corresponding to the first request set, and distributes the second number of first requests in the first request set to the work threads corresponding to the second request set and in an idle state, the first request set is any request set in at least one request set, the second request set is a request set in at least one request set corresponding to a work thread in an idle state, and the sum of the first number and the second number is the number of first requests in the first request set.

[0107] Among them, when the number of first requests included in any request set is less than the number of corresponding multiple worker threads, then the request set corresponds to a worker thread in an idle state, and then the first requests in other request sets are distributed to the worker threads, thereby improving the utilization rate of the worker threads and thereby improving the efficiency of request processing. Alternatively, after the multiple worker threads corresponding to any request set have processed the first request in the request set, there will be worker threads in an idle state, and then the unprocessed first requests in other request sets are distributed to these worker threads in an idle state, thereby improving the utilization rate of the worker threads and thereby improving the efficiency of request processing.

[0108] In other embodiments, the computer device configures a working thread for each request set, that is, each request set is configured with a working thread. Accordingly, the computer device also sorts the first requests in the request set through the following two implementation methods. In one implementation method, for each request set, the computer device sorts at least one first request in the request set based on the time when each first request in the request set is received, and obtains the execution order of each first request. The execution order of each first request is positively correlated with the reception time of the first request, that is, the earlier the reception time, the higher the ranking, so that the requests received first can be processed first. In another implementation method, for each request set, the computer device determines the execution order of each first request in the request set based on the amount of seismic data corresponding to each first request in the request set. The execution order of each first request is negatively correlated with the amount of seismic data corresponding to the first request, so as to facilitate the priority processing of requests with small data volume and fast processing speed. Accordingly, based on the execution order, the computer device reads the seismic data corresponding to each first request in the request set in sequence through the working thread corresponding to the request set.

[0109] In some embodiments, when the number of the plurality of worker threads is small, the plurality of request sets may be distributed to one worker thread or the plurality of second requests may be distributed to one worker thread.

[0110] 305. The computer device reads multiple sets of seismic data corresponding to at least one request set and at least one second request from the database in parallel through multiple working threads. The read multiple sets of seismic data are used for seismic interpretation.

[0111] In an embodiment of the present application, the computer device implements parallel processing of at least one request set and at least one second request in the task queue through multiple working threads.

[0112] In some embodiments, a computer device reads data using a parallel scheduler. Accordingly, before reading data, the computer device initializes the parallel scheduler and specifies the number of multiple worker threads. Optionally, the number of worker threads does not exceed the number of cores in the computer device's CPU (Central Processing Unit). The computer device creates multiple worker threads based on the number of worker threads. When a worker thread begins working, the number of tasks in any task queue is zero, meaning there are no tasks to be executed, and any worker thread is in a dormant, waiting, or idle state. While reading seismic data, if the computer device directly adds any received data read request to a task queue, the parallel scheduler's task add function is called repeatedly in a loop. For each data read request received, the task add function is called once, adding a task to the end of the task queue. If the first request and the second request are determined based on the data volume, after determining the request set and the second request, the parallel scheduler's task add function is called repeatedly in a loop. For each request set and each second request, the task add function is called once, adding a task to the end of the task queue. Optionally, the request set and the second request in the task queue are also sorted, which is not specifically limited here. The computer device then wakes up the working thread through the parallel scheduler, and takes a request or request set at the head of the queue from the task queue as the task to be executed, and distributes the task to the working thread. At this time, the working state of the working thread changes from idle state to busy state. If the task queue is not empty, the parallel scheduler continues to distribute the request or request set in the task queue to the working thread in the idle state until multiple working threads are in the busy state. When all requests in the task queue are executed, multiple working threads will change from busy state to idle state. In addition, after each task is completed, there will be a corresponding synchronization mechanism to notify the request object that the task has been completed.

[0113] For example, see Figure 4 , Figure 4 This is a flowchart of a method for reading seismic data provided by an embodiment of the present application. When a large amount of data needs to be opened for display and editing in a seismic interpretation application, multiple data read requests for multiple sets of seismic data are triggered. The multiple data read requests include requests for reading raw seismic data, reading logging data from multiple wells, reading seismic data from multiple layers, and reading seismic data from multiple faults. The computer device adds these multiple data read requests to a task queue as multiple tasks to be executed. The computer device distributes the multiple tasks to multiple worker threads through a parallel scheduler, so that multiple seismic data can be read in parallel through the multiple worker threads.

[0114] In an embodiment of the present application, when the number of the plurality of worker threads is not less than the sum of the at least one request set and the at least one second request, the computer device processes the at least one request set and the at least one second request in parallel through the plurality of worker threads. Further, when the number of the plurality of worker threads is not less than the sum of the at least one first request and the at least one second request, the computer device processes the at least one first request and the at least one second request in parallel through the plurality of worker threads.

[0115] In some embodiments, after the computer device reads the seismic data, it also processes the read seismic data through multiple working threads to improve the processing efficiency of the seismic data. Accordingly, the method provided in the embodiment of the present application also includes the following step 306.

[0116] 306. The computer device processes the multiple sets of seismic data read through multiple working threads and displays the processing results.

[0117] In an embodiment of the present application, the computer device processes the multiple sets of seismic data read through multiple working threads and displays the processing results, including but not limited to the following four implementation methods.

[0118] In the first implementation, a computer device uses multiple working threads to draw multiple seismic profiles based on multiple sets of seismic data and displays the drawn seismic profiles. This implementation not only improves data reading efficiency by reading multiple sets of seismic data in parallel using multiple working threads, but also improves seismic profile drawing efficiency by drawing multiple seismic profiles in parallel using multiple working threads. Furthermore, the parallel display of multiple seismic profiles facilitates comparison between the multiple seismic profiles.

[0119] Seismic profiles are used for seismic interpretation, for example, to identify reservoirs. A seismic profile can be drawn from one set of seismic data. Alternatively, a seismic profile can be drawn from multiple sets of seismic data. For example, a seismic profile corresponding to a single object can be drawn based on a subset of seismic data from multiple sets of seismic data that describes the same object. The object can be a work area, well, horizon, fault, or the like.

[0120] Accordingly, one worker thread is used to draw one seismic profile. Optionally, if a seismic profile is drawn from a set of seismic data, the worker thread that reads the set of seismic data then draws the seismic profile corresponding to the set of seismic data after completing the reading of the set of seismic data. Optionally, if a seismic profile is drawn from multiple sets of seismic data, the computer device establishes multiple profile drawing tasks and distributes the multiple profile drawing tasks to multiple worker threads, so that multiple seismic profiles can be drawn in parallel by the multiple worker threads.

[0121] In the second implementation, a computer device uses multiple working threads to draw multiple seismic profiles based on the multiple sets of seismic data it has read, overlays the multiple seismic profiles, and displays the overlaid seismic profiles. This implementation not only improves data reading efficiency by reading multiple sets of seismic data in parallel using multiple working threads, but also draws multiple seismic profiles and overlays of the multiple seismic profiles using multiple working threads, thereby improving the efficiency of drawing the overlay seismic profiles.

[0122] Multiple seismic profiles are used to reflect different aspects of the same object. For example, multiple seismic profiles can be vertical and horizontal seismic trace profiles for the same work area. Another example is a coordinate system plotted profile and a seismic trace plotted profile.

[0123] Optionally, the computer device may call a work thread other than the work thread used for drawing to superimpose the seismic profiles, or may call the first complete drawing work thread to superimpose the seismic profiles, which is not specifically limited here.

[0124] A third implementation method involves using multiple working threads to draw multiple well logging curves based on the multiple sets of seismic data read, and then displaying the drawn well logging curves. This implementation method not only improves data reading efficiency by enabling multiple working threads to read multiple sets of seismic data in parallel, but also improves the efficiency of drawing well logging curves by enabling multiple working threads to draw multiple well logging curves in parallel. Furthermore, the parallel display of multiple well logging curves facilitates comparison between the multiple well logging curves.

[0125] Well logs are used for seismic interpretation, for example, to stratify formations, identify reservoirs, and identify seepage barriers within reservoirs. Each set of seismic data corresponds to a well log. Accordingly, a worker thread is used to draw a well log. Optionally, after a worker thread that reads a set of seismic data finishes reading the data, it then proceeds to draw the well log corresponding to that set of seismic data.

[0126] A fourth implementation method: The computer device uses multiple working threads to draw multiple well logging curves based on the multiple sets of seismic data read, draw a crossplot of the multiple well logging curves, and display the crossplot. In this implementation method, not only does the multiple working threads read multiple sets of seismic data in parallel, thereby improving data reading efficiency, but the multiple working threads also draw multiple well logging curves and draw a crossplot of the multiple well logging curves, thereby improving the efficiency of drawing the crossplot.

[0127] Multiple well logging curves are used to reflect different aspects of formation characteristics. For example, multiple well logging curves, including acoustic amplitude logging curves and natural gamma ray curves, are used to determine formation density and mud content, respectively. Creating crossplots of multiple well logging curves facilitates comparison of seismic data and allows for comprehensive seismic interpretation based on multiple characteristics, improving the accuracy of seismic interpretation.

[0128] In other embodiments, the computer device directly displays the multiple sets of seismic data it has read. Alternatively, the computer device displays the multiple sets of data it has read using multiple working threads. This allows for parallel display of the seismic data using multiple working threads, thereby improving display efficiency. Alternatively, after the computer device has read and displayed the multiple sets of seismic data, the requesting object performs an editing operation on the read seismic data. The computer device implements the editing operation using multiple working threads, thereby improving the efficiency of the editing operation.

[0129] In some embodiments, the processing of the read seismic data by the computer device also includes data decoding, format conversion, trace editing, deduplication or interpolation, etc., which are not specifically limited here.

[0130] The method provided in the embodiment of the present application can solve the problem of slow data loading and display in seismic interpretation applications. Among them, the method can read multiple groups of seismic data in parallel, thereby improving the operating efficiency of seismic interpretation applications and avoiding stuck and unsmooth situations in the operation of seismic interpretation applications. And make full use of the computing resources of computer equipment, and dispatch the reading and processing of seismic data to multiple cores of CPU for parallel execution. That is, make full use of the multi-core of computer equipment to improve the execution efficiency of seismic interpretation applications, change serial data reading into parallel reading, and read several times faster than before in terms of reading speed, which can significantly improve the display efficiency of seismic interpretation applications.

[0131] The method that the embodiment of the present application provides provides a set of scheduling frameworks for parallel execution, which can not only read different types of seismic data in parallel, but also can perform related operations such as display in parallel. A set of parallel scheduling libraries has been realized by setting up task queues. And in some embodiments, a simple and easy-to-use API (Application Programming Interface) is also provided, so that a small amount of code can be modified in earthquake interpretation applications to use the method that the embodiment of the application provides. And, in some embodiments, the request object can obtain the current scheduling information of the working thread and the completion of the data read request in real time. In certain embodiments, the method that the embodiment of the present application provides supports custom settings of parallelism, that is, the number of parallel working threads can be set and changed as needed. By the method that the embodiment of the present application provides, the serial reading of seismic data can be changed into parallel reading, and for the serial parallel code reconstruction, a small amount of code can be modified to realize the parallel reading and processing of data, thereby improving the convenience of the method application.

[0132] The embodiment of the present application provides a method for reading seismic data, which determines a first request with a smaller amount of data to be read and a second request with a larger amount of data. In addition, a plurality of first requests are grouped into a request set. Since the amount of data corresponding to the first request in the request set is not greater than the largest amount of data in the multiple groups of seismic data, the request set has a data amount close to that of the second request, thereby making the request set have a processing time close to that of the second request. In addition, at least one request set and at least one second request are distributed to multiple working threads, and the seismic data corresponding to the at least one request set and at least one second request are read in parallel by multiple working threads, thereby improving the reading efficiency of seismic data through the parallel processing of multiple threads. And since the request set has a processing time close to that of the second request, the time consumed by each working thread to process the request is similar, thereby achieving a reasonable allocation of working threads, thereby effectively improving the reading efficiency of seismic data when there are fewer working threads.

[0133] The present application also provides a device for reading seismic data. Figure 5 , the device comprises:

[0134] a request determining module 501 configured to, in response to receiving a plurality of data read requests for a plurality of sets of seismic data, determine, based on the data volume of each of the plurality of sets of seismic data, at least one first request and at least one second request from the plurality of data read requests, wherein the data volume of the seismic data corresponding to the first request is less than a first reference data volume, and the data volume of the seismic data corresponding to the second request is not less than the first reference data volume;

[0135] a classification module 502 configured to classify the at least one first request to obtain at least one request set, wherein each request set includes at least one first request, and the total amount of seismic data corresponding to the at least one first request included in each request set is no greater than a second reference amount of data, where the second reference amount of data is the largest amount of data among the respective amounts of the multiple sets of seismic data;

[0136] The adding queue module 503 is used to add at least one request set and at least one second request to the task queue;

[0137] A distribution module 504 is configured to distribute at least one request set and at least one second request in the task queue to a plurality of worker threads;

[0138] The reading module 505 is used to read multiple sets of seismic data corresponding to at least one request set and at least one second request from the database in parallel through multiple working threads, and the read multiple sets of seismic data are used for seismic interpretation.

[0139] In some embodiments, the distribution module 504 is configured to:

[0140] At least one request set is distributed to at least one working thread respectively, and at least one second request is distributed to a working thread respectively.

[0141] In some embodiments, each request set is distributed to multiple worker threads, and the distribution module 504 is used to:

[0142] When the number of first requests in the first request set exceeds the number of multiple working threads corresponding to the first request set, the first number of first requests in the first request set are distributed to the multiple working threads corresponding to the first request set, and the second number of first requests in the first request set are distributed to the working threads corresponding to the second request set and in an idle state. The first request set is any request set in at least one request set, and the second request set is a request set in at least one request set that corresponds to an idle working thread. The sum of the first number and the second number is the number of first requests in the first request set.

[0143] In some embodiments, each request set is distributed to a worker thread, reading module 505, for:

[0144] For each request set, determining an execution order of each first request in the request set based on the amount of seismic data corresponding to each first request in the request set, wherein the execution order of each first request is negatively correlated with the amount of seismic data corresponding to the first request;

[0145] Based on the execution order, the seismic data corresponding to each first request in the request set is read in sequence through the working thread corresponding to the request set.

[0146] In some embodiments, the apparatus further comprises:

[0147] A display module is used to display the multiple sets of seismic data read through multiple working threads; or

[0148] The processing module is used to process the multiple sets of seismic data read through multiple working threads and display the processing results.

[0149] In some embodiments, the processing module is configured to:

[0150] Through multiple working threads, based on the multiple sets of seismic data read, multiple seismic sections are drawn respectively, and the drawn multiple seismic sections are displayed; or,

[0151] Through multiple working threads, based on the multiple sets of seismic data read, multiple seismic sections are drawn respectively, and based on the multiple seismic sections, a superposition map of the multiple seismic sections is drawn, and the superposition map is displayed; or,

[0152] Through multiple working threads, based on the multiple sets of seismic data read, multiple logging curves are drawn respectively, and the drawn multiple logging curves are displayed; or,

[0153] Through multiple working threads, based on the multiple groups of seismic data read, multiple logging curves are drawn respectively, and a cross-plot of the multiple logging curves is drawn based on the multiple logging curves, and the cross-plot is displayed.

[0154] In some embodiments, the classification module 502 is configured to:

[0155] Determine at least one data type of the seismic data corresponding to the at least one first request; classify the at least one first request based on the at least one data type and the second reference data volume to obtain at least one request set, wherein the total data volume of the seismic data corresponding to the at least one first request included in each request set is not greater than the second reference data volume, and the data type of the seismic data corresponding to the at least one first request included in each request set is the same; or,

[0156] Determine at least one task type of seismic data corresponding to at least one first request, where the task type is used to indicate the purpose of the seismic data; classify at least one first request based on the at least one task type and the second reference data volume to obtain at least one request set, wherein the total data volume of seismic data corresponding to at least one first request included in each request set is not greater than the second reference data volume, and the task type of seismic data corresponding to at least one first request included in each request set is the same.

[0157] The embodiment of the present application provides a device for reading seismic data, which determines a first request with a smaller amount of data to be read and a second request with a larger amount of data. In addition, multiple first requests are grouped into a request set. Since the amount of data corresponding to the first request in the request set is not greater than the largest amount of data in the multiple groups of seismic data, the request set has a data amount close to that of the second request, and thus the request set has a processing time close to that of the second request. In addition, at least one request set and at least one second request are distributed to multiple working threads, and the seismic data corresponding to the at least one request set and at least one second request are read in parallel by multiple working threads, thereby improving the reading efficiency of seismic data through the parallel processing of multiple threads. And since the request set has a processing time close to that of the second request, the time consumed by each working thread to process the request is similar, thereby achieving a reasonable allocation of working threads, and thus effectively improving the reading efficiency of seismic data when there are fewer working threads.

[0158] It should be noted that the seismic data reading device provided in the above embodiment only uses the division of the above functional modules as an example to illustrate the reading of seismic data. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the electronic device can be divided into different functional modules to complete all or part of the functions described above. In addition, the seismic data reading device provided in the above embodiment and the seismic data reading method embodiment are based on the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.

[0159] Figure 6 A structural block diagram of a computer device 600 provided by an exemplary embodiment of the present application is shown.

[0160] Typically, the computer device 600 includes a processor 601 and a memory 602 .

[0161] The processor 601 may include one or more processing cores, such as a 4-core processor, an 8-core processor, etc. The processor 601 may be implemented in at least one hardware form of DSP (Digital Signal Processing), FPGA (Field-Programmable Gate Array), or PLA (Programmable Logic Array). The processor 601 may also include a main processor and a coprocessor. The main processor is a processor for processing data in the awake state, also known as a CPU (Central Processing Unit); the coprocessor is a low-power processor for processing data in the standby state. In some embodiments, the processor 601 may be integrated with a GPU (Graphics Processing Unit), which is responsible for rendering and drawing the content to be displayed on the display screen. In some embodiments, the processor 601 may also include an AI (Artificial Intelligence) processor, which is used to process computing operations related to machine learning.

[0162] The memory 602 may include one or more computer-readable storage media, which may be non-transitory. The memory 602 may also include high-speed random access memory and non-volatile memory, such as one or more magnetic disk storage devices and flash memory storage devices. In some embodiments, the non-transitory computer-readable storage medium in the memory 602 is used to store at least one computer program, which is executed by the processor 601 to implement the seismic data reading method provided in the method embodiment of the present application.

[0163] In some embodiments, computer device 600 may optionally include a peripheral device interface 603 and at least one peripheral device. Processor 601, memory 602, and peripheral device interface 603 may be connected via a bus or signal lines. Each peripheral device may be connected to peripheral device interface 603 via a bus, signal lines, or circuit boards. Specifically, the peripheral device may include at least one of a radio frequency circuit 604, a display screen 605, a camera assembly 606, an audio circuit 607, and a power supply 608.

[0164] The peripheral device interface 603 can be used to connect at least one I / O (Input / Output)-related peripheral device to the processor 601 and the memory 602. In some embodiments, the processor 601, the memory 602, and the peripheral device interface 603 are integrated on the same chip or circuit board; in some other embodiments, any one or two of the processor 601, the memory 602, and the peripheral device interface 603 can be implemented on separate chips or circuit boards, which is not limited in this embodiment.

[0165] The radio frequency circuit 604 is used to receive and transmit RF (Radio Frequency) signals, also known as electromagnetic signals. The radio frequency circuit 604 communicates with communication networks and other communication devices via electromagnetic signals. The radio frequency circuit 604 converts electrical signals into electromagnetic signals for transmission, or converts received electromagnetic signals into electrical signals. Optionally, the radio frequency circuit 604 includes: an antenna system, an RF transceiver, one or more amplifiers, a tuner, an oscillator, a digital signal processor, a codec chipset, a user identity module card, etc. The radio frequency circuit 604 can communicate with other computer devices via at least one wireless communication protocol. Such wireless communication protocols include, but are not limited to, the World Wide Web, metropolitan area networks, intranets, various generations of mobile communication networks (2G, 3G, 4G, and 5G), wireless local area networks, and / or WiFi (Wireless Fidelity) networks. In some embodiments, the radio frequency circuit 604 may also include circuits related to NFC (Near Field Communication), which is not limited in this application.

[0166] Display screen 605 is used to display a user interface (UI). This UI may include graphics, text, icons, multimedia resources, or any combination thereof. When display screen 605 is a touchscreen display, it is also capable of collecting touch signals on or above the surface of display screen 605. These touch signals can be input as control signals to processor 601 for processing. Display screen 605 can also be used to provide virtual buttons and / or a virtual keyboard, also known as soft buttons and / or a soft keyboard. In some embodiments, there can be one display screen 605, located on the front panel of computer device 600. In other embodiments, there can be at least two display screens 605, located on different surfaces of computer device 600 or in a foldable design. In still other embodiments, display screen 605 can be a flexible display, located on a curved or foldable surface of computer device 600. Display screen 605 can also be configured as a non-rectangular, irregular shape, also known as a special-shaped screen. Display screen 605 can be made of materials such as LCD (Liquid Crystal Display) and OLED (Organic Light-Emitting Diode).

[0167] The camera assembly 606 is used to capture images or multimedia resources. Optionally, the camera assembly 606 includes a front camera and a rear camera. Typically, the front camera is set on the front panel of the computer device, and the rear camera is set on the back of the computer device. In some embodiments, there are at least two rear cameras, which are any one of a main camera, a depth of field camera, a wide-angle camera, and a telephoto camera, so as to realize the fusion of the main camera and the depth of field camera to realize the background blur function, the fusion of the main camera and the wide-angle camera to realize panoramic shooting and VR (Virtual Reality) shooting function or other fusion shooting functions. In some embodiments, the camera assembly 606 may also include a flash. The flash can be a single-color temperature flash or a dual-color temperature flash. A dual-color temperature flash refers to a combination of a warm light flash and a cold light flash, which can be used for light compensation at different color temperatures.

[0168] The audio circuit 607 may include a microphone and a speaker. The microphone is used to collect sound waves from the user and the environment, and convert the sound waves into electrical signals that are input into the processor 601 for processing, or input into the radio frequency circuit 604 to achieve voice communication. For the purpose of stereo sound collection or noise reduction, there can be multiple microphones, each located in different parts of the computer device 600. The microphone can also be an array microphone or an omnidirectional collection microphone. The speaker is used to convert electrical signals from the processor 601 or the radio frequency circuit 604 into sound waves. The speaker can be a traditional thin film speaker or a piezoelectric ceramic speaker. When the speaker is a piezoelectric ceramic speaker, it can not only convert electrical signals into sound waves audible to humans, but also convert electrical signals into sound waves inaudible to humans for purposes such as distance measurement. In some embodiments, the audio circuit 607 may also include a headphone jack.

[0169] Power supply 608 is used to power various components in computer device 600. Power supply 608 can be AC ​​power, DC power, a disposable battery, or a rechargeable battery. When power supply 608 includes a rechargeable battery, the rechargeable battery can be a wired rechargeable battery or a wireless rechargeable battery. A wired rechargeable battery is a battery that is charged via a wired line, while a wireless rechargeable battery is a battery that is charged via a wireless coil. The rechargeable battery can also be used to support fast charging technology.

[0170] In some embodiments, the computer device 600 further includes one or more sensors 609 , including but not limited to: an acceleration sensor 610 , a gyroscope sensor 611 , a pressure sensor 612 , an optical sensor 613 , and a proximity sensor 614 .

[0171] The accelerometer 610 can detect the magnitude of acceleration along the three coordinate axes of the coordinate system established by the computer device 600. For example, the accelerometer 610 can be used to detect the components of gravity acceleration along the three coordinate axes. The processor 601 can control the display screen 605 to display the user interface in a landscape or portrait view based on the gravity acceleration signal collected by the accelerometer 610. The accelerometer 610 can also be used to collect game or user motion data.

[0172] The gyroscope sensor 611 can detect the orientation and rotation angle of the computer device 600. It can also work with the accelerometer 610 to collect 3D motions of the user on the computer device 600. Based on the data collected by the gyroscope sensor 611, the processor 601 can implement the following functions: motion sensing (e.g., changing the UI based on the user's tilt), image stabilization during shooting, game control, and inertial navigation.

[0173] The pressure sensor 612 can be installed on the side frame of the computer device 600 and / or below the display screen 605. When the pressure sensor 612 is installed on the side frame of the computer device 600, it can detect the user's grip signal of the computer device 600. The processor 601 can perform left and right hand recognition or shortcut operations based on the grip signal collected by the pressure sensor 612. When the pressure sensor 612 is installed below the display screen 605, the processor 601 controls the operational controls on the UI interface based on the user's pressure operation on the display screen 605. The operational controls include at least one of a button control, a scroll bar control, an icon control, and a menu control.

[0174] The optical sensor 613 is used to detect ambient light intensity. In one embodiment, the processor 601 can control the display brightness of the display screen 605 based on the ambient light intensity detected by the optical sensor 613. Specifically, when the ambient light intensity is high, the display brightness of the display screen 605 is increased; when the ambient light intensity is low, the display brightness of the display screen 605 is decreased. In another embodiment, the processor 601 can also dynamically adjust the shooting parameters of the camera assembly 606 based on the ambient light intensity detected by the optical sensor 613.

[0175] Proximity sensor 614, also known as a distance sensor, is typically located on the front panel of computer device 600. Proximity sensor 614 is used to detect the distance between the user and the front of computer device 600. In one embodiment, when proximity sensor 614 detects that the distance between the user and the front of computer device 600 is gradually decreasing, processor 601 controls display screen 605 to switch from the screen-on state to the screen-off state. When proximity sensor 614 detects that the distance between the user and the front of computer device 600 is gradually increasing, processor 601 controls display screen 605 to switch from the screen-off state to the screen-on state.

[0176] Those skilled in the art will understand that Figure 6 The structure shown in the figure does not constitute a limitation on the computer device 600, and the computer device 600 may include more or fewer components than shown in the figure, or combine some components, or adopt a different arrangement of components.

[0177] Figure 7is a block diagram of a server provided by an embodiment of the present disclosure. The server 700 may vary significantly due to different configurations or performances, and may include one or more processors (Central Processing Units, CPUs) 701 and one or more memories 702, wherein the memories 702 are used to store executable program code, and the processors 701 are configured to execute the above-mentioned executable program code to implement the seismic data reading methods provided by the above-mentioned various method embodiments. Of course, the server may also have components such as a wired or wireless network interface, a keyboard, and input / output interfaces for input and output. The server may also include other components for implementing device functions, which will not be described in detail here.

[0178] In an exemplary embodiment, a storage medium including program code is also provided, such as a memory 702 including program code. The program code can be executed by a processor 701 of a server 700 to perform the above-described method for reading seismic data. Alternatively, the storage medium can be a non-transitory computer-readable storage medium, such as a ROM (Read-Only Memory), a RAM (Random Access Memory), a CD-ROM (Compact Disc Read-Only Memory), a magnetic tape, a floppy disk, an optical data storage device, or the like.

[0179] An embodiment of the present application also provides a computer-readable storage medium, in which at least one program code is stored. The at least one program code is loaded and executed by a processor to implement the seismic data reading method of any of the above implementation methods.

[0180] An embodiment of the present application also provides a computer program product, which includes computer program code, the computer program code is stored in a computer-readable storage medium, the processor of the computer device reads the computer program code from the computer-readable storage medium, and the processor executes the computer program code, so that the computer device executes the seismic data reading method of any of the above-mentioned implementation methods.

[0181] In some embodiments, the computer program product involved in the embodiments of the present application can be deployed and executed on a computer device, or on multiple computer devices located at one location, or on multiple computer devices distributed at multiple locations and interconnected through a communication network. Multiple computer devices distributed at multiple locations and interconnected through a communication network can constitute a blockchain system.

Claims

1. A method for reading seismic data, characterized in that: The method comprises: In response to receiving a plurality of data read requests for a plurality of sets of seismic data, determining at least one first request and at least one second request from the plurality of data read requests based on respective data amounts of the plurality of sets of seismic data, wherein the data amount of the seismic data corresponding to the first request is less than a first reference data amount, and the data amount of the seismic data corresponding to the second request is not less than the first reference data amount; Classifying the at least one first request to obtain at least one request set, each request set including at least one first request, and a total amount of seismic data corresponding to the at least one first request included in each request set is no greater than a second reference amount of data, where the second reference amount of data is a maximum amount of data among the respective amounts of the multiple sets of seismic data; Adding the at least one request set and the at least one second request to a task queue; Distributing at least one request set and at least one second request in the task queue to a plurality of worker threads; Reading, in parallel, multiple sets of seismic data corresponding to the at least one request set and the at least one second request from a database through the multiple working threads, wherein the read multiple sets of seismic data are used for seismic interpretation; The classifying the at least one first request to obtain at least one request set includes: Determine at least one data type of the seismic data corresponding to each of the at least one first request; classify the at least one first request based on the at least one data type and the second reference data volume to obtain the at least one request set, wherein each request set includes at least one first request corresponding to the same data type of the seismic data; or Determine at least one task type of seismic data corresponding to the at least one first request, wherein the task type is used to indicate the purpose of the seismic data; based on the at least one task type and the second reference data volume, classify the at least one first request to obtain the at least one request set, wherein each request set includes at least one first request corresponding to the same task type of seismic data.

2. The method according to claim 1, characterized in that The distributing at least one request set and at least one second request in the task queue to a plurality of worker threads includes: The at least one request set is distributed to at least one working thread respectively, and the at least one second request is distributed to a working thread respectively.

3. The method according to claim 2, characterized in that Each request set is distributed to a plurality of worker threads respectively, and distributing the at least one request set to at least one worker thread respectively includes: When the number of first requests in a first request set exceeds the number of multiple worker threads corresponding to the first request set, the first number of first requests in the first request set are distributed to the multiple worker threads corresponding to the first request set, and the second number of first requests in the first request set are distributed to the worker threads corresponding to the second request set and in an idle state. The first request set is any request set in the at least one request set, and the second request set is a request set in the at least one request set that corresponds to an idle worker thread. The sum of the first number and the second number is the number of first requests in the first request set.

4. The method according to claim 2, characterized in that Each request set is distributed to a worker thread, and the process of reading at least one set of seismic data corresponding to the at least one request set from the database in parallel by the multiple worker threads includes: For each request set, determining an execution order of each first request in the request set based on the amount of seismic data corresponding to each first request in the request set, wherein the execution order of each first request is negatively correlated with the amount of seismic data corresponding to the first request; Based on the execution order, the seismic data corresponding to each first request in the request set is read in sequence through the working thread corresponding to the request set.

5. The method according to claim 1, wherein The method further comprises: Displaying the multiple sets of seismic data read by the multiple working threads; or The multiple groups of seismic data read are processed through the multiple working threads, and the processing results are displayed.

6. The method according to claim 5, characterized in that The processing of the plurality of groups of seismic data read by the plurality of working threads and displaying the processing results includes: Drawing a plurality of seismic sections respectively based on the plurality of groups of seismic data read by the plurality of working threads, and displaying the drawn plurality of seismic sections; or, Drawing a plurality of seismic sections respectively based on the plurality of groups of seismic data read by the plurality of working threads, drawing a stacked map of the plurality of seismic sections based on the plurality of seismic sections, and displaying the stacked map; or, Drawing a plurality of well logging curves based on the plurality of groups of seismic data read by the plurality of working threads, and displaying the drawn plurality of well logging curves; or, Through the multiple working threads, multiple logging curves are drawn based on the multiple sets of seismic data read, a cross-plot of the multiple logging curves is drawn based on the multiple logging curves, and the cross-plot is displayed.

7. A seismic data reading device, characterized in that: The device comprises: a request determination module configured to, in response to receiving a plurality of data read requests for a plurality of sets of seismic data, determine, based on respective data volumes of the plurality of sets of seismic data, at least one first request and at least one second request from the plurality of data read requests, wherein the data volume of the seismic data corresponding to the first request is less than a first reference data volume, and the data volume of the seismic data corresponding to the second request is not less than the first reference data volume; a classification module, configured to classify the at least one first request to obtain at least one request set, each request set including at least one first request, and wherein a total amount of seismic data corresponding to the at least one first request included in each request set is no greater than a second reference amount of data, wherein the second reference amount of data is a maximum amount of data among the respective amounts of the multiple sets of seismic data; A queue adding module, configured to add the at least one request set and the at least one second request to a task queue; a distribution module, configured to distribute at least one request set and at least one second request in the task queue to a plurality of worker threads; a reading module, configured to read, in parallel, multiple sets of seismic data corresponding to the at least one request set and the at least one second request from a database through the multiple working threads, wherein the read multiple sets of seismic data are used for seismic interpretation; Wherein, the classification module is further used for: Determine at least one data type of the seismic data corresponding to each of the at least one first request; classify the at least one first request based on the at least one data type and the second reference data volume to obtain the at least one request set, wherein each request set includes at least one first request corresponding to the same data type of the seismic data; or Determine at least one task type of seismic data corresponding to the at least one first request, wherein the task type is used to indicate the purpose of the seismic data; based on the at least one task type and the second reference data volume, classify the at least one first request to obtain the at least one request set, wherein each request set includes at least one first request corresponding to the same task type of seismic data.

8. A computer device, characterized in that: The computer device includes one or more processors and one or more memories, wherein at least one program code is stored in the one or more memories, and the at least one program code is loaded and executed by the one or more processors to implement the seismic data reading method as described in any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that At least one program code is stored in the storage medium, and the at least one program code is loaded and executed by the processor to implement the seismic data reading method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Seismic data multi-dimensional range query method and device

    CN112860734A

  • System and method for supporting very large data sets in databases

    US20220237191A1