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

By reading seismic data in parallel, multiple working threads are used to process seismic data, the problem of low seismic data reading efficiency is solved, the operation efficiency of seismic interpretation applications is improved, and the lag in the seismic interpretation process is avoided.

CN119127925AActive Publication Date: 2024-12-13CHINA NAT PETROLEUM CORP +2
View PDF 6 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

The low reading efficiency of seismic data affects the efficiency of seismic interpretation, resulting in problems of lag and insmoothness during seismic interpretation.

Method used

By determining the first request with a small amount of data to be read and the second request with a large amount of data, a set of requests is formed and distributed to multiple worker threads for parallel reading, and multiple worker threads are used to parallelize them from the database. Read seismic data to improve reading efficiency.

Benefits of technology

It significantly improves the reading efficiency of seismic data, avoids lag and unsmooth situations in seismic interpretation applications, makes full use of the multi-core resources of computer equipment, and improves the display and processing efficiency of seismic interpretation applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119127925A_ABST
    Figure CN119127925A_ABST
Patent Text Reader

Abstract

The invention provides a seismic data reading method and device, computer equipment and a storage medium, and belongs to the technical field of geophysical exploration. The method comprises the following steps: determining at least one first request and at least one second request from a plurality of data reading requests based on respective data volumes of a plurality of groups of seismic data in response to the received plurality of data reading requests for the plurality of groups of seismic data; classifying the at least one first request to obtain at least one request set, each request set comprising at least one first request; adding the at least one request set and the at least one second request into a task queue; distributing the at least one request set and the at least one second request in the task queue to a plurality of working threads; and reading multiple groups of seismic data corresponding to the at least one request set and the at least one second request in parallel from the database through multiple working threads. According to the method, the reading efficiency of the seismic data is improved.
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 development of geophysical exploration technology, more and more seismic data can be collected, and when seismic interpretation is performed based on seismic data, a detailed interpretation of the strata can be achieved. When seismic interpretation is performed based on seismic data, the seismic data needs to be read first. However, due to the large amount of seismic data, the efficiency of reading seismic data has a great impact on the efficiency of seismic interpretation. Therefore, a method for reading seismic data is needed to improve the efficiency of reading seismic data, thereby improving the efficiency of seismic interpretation. Summary of the invention

[0003] The embodiments of the present application provide a method, device, computer equipment 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 groups of seismic data, determining at least one first request and at least one second request from the plurality of data read requests based on the data amounts of the plurality of groups of seismic data, the data amount of the seismic data corresponding to the first request being less than a first reference data amount, and the data amount of the seismic data corresponding to the second request being 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 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 data of the multiple groups 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 at least one request set and 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 a plurality of work threads respectively, and the distributing the at least one request set to the at least one work 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 worker threads 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.

[0014] In some embodiments, each request set is respectively distributed to a working 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 through the multiple working threads includes:

[0015] For each request set, based on the data volume of the seismic data corresponding to each first request in the request set, determining the execution order of each first request in the request set, wherein the execution order of each first request is negatively correlated with the data volume of the 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 read multiple groups of seismic data through 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, the processing of the read multiple groups of seismic data by the multiple working threads and displaying the processing results include:

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

[0022] Through the multiple working threads, based on the multiple groups of seismic data read, a plurality of seismic sections are drawn respectively, based on the multiple seismic sections, an overlay map of the multiple seismic sections is drawn, and the overlay map is displayed; or,

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

[0024] Through the multiple working threads, based on the multiple groups of seismic data read, multiple logging curves are drawn respectively, and based on the multiple logging curves, a cross-plot of the multiple logging curves is drawn, 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 each of 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 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 types of the seismic data corresponding to the at least one first request included in each request set are the same.

[0028] On the other hand, 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 groups of seismic data, determine at least one first request and at least one second request from the plurality of data read requests based on the data amounts of the plurality of groups 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;

[0030] A classification module, configured to determine at least one request set based on the at least one first request, 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 not greater than a second reference amount of data, and the second reference amount of data is a maximum amount of data among the respective amounts of data of the multiple groups of seismic data;

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

[0032] A distribution module, used for distributing at least one request set and at least one second request in the task queue to multiple working 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 in parallel from the database 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 used 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 respectively, 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 worker threads 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.

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

[0039] For each request set, based on the data volume of the seismic data corresponding to each first request in the request set, determining the execution order of each first request in the request set, wherein the execution order of each first request is negatively correlated with the data volume of the 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 used to display the read multiple groups of seismic data through the multiple working threads; or,

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

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

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

[0046] Through the multiple working threads, based on the multiple groups of seismic data read, a plurality of seismic sections are drawn respectively, based on the multiple seismic sections, an overlay map of the multiple seismic sections is drawn, and the overlay map is displayed; or,

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

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

[0049] In some embodiments, the classification module is used 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 each of 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 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 types of the seismic data corresponding to the at least one first request included in each request set are 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-mentioned 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, wherein 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 implementations.

[0055] The embodiment of the present application provides a method for reading seismic data, which determines a first request with a small amount of data to be read and a second request with a large amount of data. In addition, multiple first requests are formed 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 work 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 work threads, so that the reading efficiency of seismic data is improved by 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 work thread to process the request is similar, and the reasonable allocation of work threads is achieved, and thus the reading efficiency of seismic data can be effectively improved when there are fewer work threads. BRIEF DESCRIPTION OF THE DRAWINGS

[0056] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. 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 creative work.

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

[0058] Figure 2 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 the present application clearer, the implementation methods of the present 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 the present application and the drawings are used to distinguish different objects, rather than 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 device that includes a series of steps or units is not limited to the listed steps or units, but optionally includes steps or units that are not listed, or optionally includes other steps or units inherent to these processes, methods, products or devices.

[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 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 are all obtained with full authorization.

[0067] Figure 1 is a schematic diagram of an implementation environment of a seismic data reading method provided by the present 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 any specific limitation.

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

[0069] If the computer device is provided as a terminal 101 and a server 102, the terminal 101 and the 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 is a background server of the target application. The terminal 101 is used to send a data read request to the server 102, and the server 102 is used to read the seismic data based on the data read request, and send the seismic data to the terminal 101 for display. Alternatively, the server 102 is used to perform seismic interpretation based on the seismic data, and send the seismic interpretation result 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, a vehicle-mounted terminal, etc. The server 102 is at least one of a server, a server cluster consisting of multiple servers, a cloud server, a cloud computing platform, and a virtualization center.

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

[0072] 201. In response to receiving multiple data read requests for multiple groups of seismic data, the computer device determines 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 groups of seismic data, the data volume of the seismic data corresponding to the first request is smaller than the first reference data volume, and the data volume of the seismic data corresponding to the second request is not smaller than the first reference data volume.

[0073] In the embodiment of the present application, multiple groups of seismic data are used for seismic interpretation. Each group of seismic data includes multiple seismic data of the same object. For example, a group of seismic data includes well logging data at different depths of the same well, and the well logging data can be data such as natural potential or resistivity. For another example, a group of seismic data includes core data at different depths of the same well, and the core data can be porosity or permeability data. For another example, a group of data includes seismic wave data at different locations in the same work area, which is not specifically limited here.

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

[0075] 202. The computer device classifies at least one first request to obtain at least one request set, 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 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 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 not 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 the 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 can be sequentially sorted in the task queue based on the order of joining the task queue, or can be randomly sorted, which is not specifically limited here.

[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 working thread, and each request set is distributed to one or more working threads, which is not specifically limited here.

[0081] 205. The computer device reads multiple groups of seismic data corresponding to at least one request set and at least one second request in parallel from a database through multiple working threads, and the read multiple groups 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 small amount of data to be read and a second request with a large amount of data. In addition, multiple first requests are formed 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 work 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 work threads, so that the reading efficiency of seismic data is improved by 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 work thread to process the request is similar, and the reasonable allocation of work threads is achieved, and thus the reading efficiency of seismic data can be effectively improved when there are fewer work threads.

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

[0086] 301. In response to receiving multiple data read requests for multiple groups of seismic data, the computer device determines 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 groups of seismic data, the data volume of the seismic data corresponding to the first request is smaller than the first reference data volume, and the data volume of the seismic data corresponding to the second request is not smaller than the first reference data volume.

[0087] In some embodiments, multiple groups of seismic data are used to complete the same seismic interpretation task. Accordingly, in response to the triggering operation of the task control of the seismic interpretation task, multiple data read requests are triggered. In other embodiments, multiple groups of seismic data correspond to a read control respectively. Accordingly, in response to the triggering operation of multiple read controls corresponding to the multiple groups of seismic data respectively, the multiple data read requests are triggered. In other embodiments, multiple groups of seismic data correspond to a selection control respectively, and after selecting the selection controls corresponding to the multiple groups of seismic data respectively, multiple data read requests are triggered in response to the triggering operation of the confirmation controls of the multiple selection controls, that is, 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 working threads, that is, the smaller the number of multiple working threads, the larger the first reference data volume. In this way, when the number of working threads is small, the number of first requests can be increased by increasing the first reference data volume, 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 working threads.

[0089] 302. The computer device classifies at least one first request to obtain at least one request set, 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 not greater than a second reference data amount, and the second reference data amount is the largest amount of data among the respective data amounts of 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 the computer device determining at least one request set based on at least one first request 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 at least one data type and a second reference data volume, at least one first request is classified 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 data type of seismic data corresponding to at least one first request included in each request set is the same. In this implementation, first requests of the same data type are classified into the same request set, which facilitates the processing of requests of the same data type by a working thread based on the same working function, and realizes parallel processing of data read requests of different data types.

[0092] Among them, seismic data of different data types include seismic data obtained in different ways, such as logging data, core data and seismic wave data. Logging data refers to data obtained by logging instruments in the well, including natural potential data, resistivity data, etc. Core data refers to data obtained after obtaining rock samples from the well and conducting experimental tests on the rock samples. Seismic wave data is data obtained by emitting seismic waves to the formation. Alternatively, seismic data of different data types include seismic data obtained in different seismic exploration stages. The seismic exploration stage includes the field acquisition stage, the data processing stage and the seismic interpretation stage. Accordingly, seismic data of different data types include the original seismic data collected, the processed seismic data and the seismic data used for seismic interpretation. Alternatively, seismic data of different data types include seismic data of different objects in the same work area, such as stratigraphic data, fault data and well data, which are not specifically limited here. Alternatively, seismic data of different data types include seismic data in different formats, such as seismic data in digital format, picture format and video format.

[0093] In a second implementation, a computer device determines at least one task type of seismic data corresponding to at least one first request, wherein the task type is used to indicate the purpose of the seismic data; based on at least one task type and a second reference data volume, at least one first request is classified 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. In this implementation, first requests with the same task type are classified into the same request set, so that after the working thread has finished reading the seismic data corresponding to these first requests, the same seismic interpretation task is completed based on these seismic data, and parallel processing of data reading requests of different task types is realized.

[0094] The task type is used to indicate the purpose of seismic data, such as drawing seismic profiles, drawing well logging curves, identifying layers, identifying faults, identifying reservoirs, identifying reservoir seepage barriers, etc.

[0095] In the embodiment of the present application, the request set and the second request are processed in parallel, and the request with the largest data volume determines the overall processing time of multiple data requests. The data volume corresponding to each request set is limited by the second reference data volume. Since the data volume is positively correlated with the processing time of the request, the processing time of each request set is controlled, so that the processing time of the request set is similar to that of the second request; this not only realizes the reasonable allocation of work threads, but also avoids the situation where the processing time of any request set is too long, thereby ensuring the overall processing time of multiple data reading 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, so as to facilitate 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, and 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, because the request set and the second request in the task queue are sequentially distributed with work threads to process the seismic data, so as to facilitate the priority processing of requests with small data volume and fast processing speed.

[0098] In some embodiments, step 302 is performed only when the data volume of the seismic data corresponding to at least two first requests is not greater than half of the second reference data volume. In the case where the data volume of the seismic data corresponding to any first request is greater than half of the second reference data volume, the total data volume of the seismic data corresponding to any two first requests will be greater than the second reference data volume. 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 data volumes corresponding to multiple data read requests are respectively greater than the first reference data volume, there is no need to perform step 302, and multiple data read requests are directly added to the task queue.

[0099] Accordingly, in the case where the task queue does not include a request set, the computer device sorts at least one first request and at least one second request. Optionally, the computer device sorts the first request before the second request, thereby facilitating priority processing of requests with a small amount of data. Alternatively, the computer device sorts the first request and the second request based on the time when the first request and the second request are received, and the order of each request is positively correlated with its reception time, that is, the earlier the reception time, the higher the order, so that the request received first can 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 working thread, and distributes at least one second request to one working thread. The computer device distributes at least one request set to at least one working thread, including the following three implementations.

[0102] In a first implementation manner, if the number of the plurality of working 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 one working thread respectively.

[0103] In a second implementation, if the number of multiple work 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 work thread to each request set, so that the remaining work threads can handle other tasks. Or the computer device distributes each group of first request sets to the first number of work threads, and distributes each group of target request sets to the second number of work 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 work 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 at least one request set. Optionally, at least one group of target request sets is sorted according to the corresponding data volume, and the larger the data volume, 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 multiple worker threads is 10, the number of second requests is 3, and the number of request sets is 4, then after distributing one worker thread to each second request, there are 7 worker threads left, which is not enough to distribute two worker threads to each request set. In this case, some request sets are distributed to one worker thread, and some request sets are distributed to two worker threads. That is, the first request set is distributed to one worker thread, and the last three request sets are distributed to two worker threads, so that the two worker threads process the two first requests in the request set in parallel, thus realizing parallel processing and further improving processing efficiency.

[0105] In a third implementation, if the number of the plurality of working 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 distributes the at least one request set and the at least one second request to the plurality of working threads in sequence 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 working thread has processed the distributed requests, that is, after the working thread has changed from a busy state to an idle state, the remaining request sets and second requests continue to be processed until all request sets and second requests are processed.

[0106] In some embodiments, the computer device configures multiple work threads for each request set, that is, each request set is respectively 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 corresponding to a work thread in an idle state in at least one request set, 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 working threads, then the request set corresponds to a working thread in an idle state, and then the first requests in other request sets are distributed to the working threads, thereby improving the utilization rate of the working threads and thereby improving the processing efficiency of the requests. Alternatively, after the multiple working threads corresponding to any request set have processed the first request in the request set, there will be working threads in an idle state, and then the unprocessed first requests in other request sets are distributed to these working threads in an idle state, thereby improving the utilization rate of the working threads and thereby improving the processing efficiency of the requests.

[0108] In other embodiments, the computer device configures a working thread for each request set, that is, each request set is respectively configured with a working thread. Accordingly, the computer device also sorts the first request in the request set through the following two implementations. In one implementation, 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 receiving time of the first request, that is, the earlier the receiving time, the higher the ranking, so that the request received first can be processed first. In another implementation, for each request set, the computer device determines the execution order of each first request in the request set based on the data volume of the seismic data corresponding to each first request in the request set. The execution order of each first request is negatively correlated with the data volume of the 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, 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 based on the execution order.

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

[0110] 305. The computer device reads multiple groups of seismic data corresponding to at least one request set and at least one second request in parallel from a database through multiple working threads, and the read multiple groups 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, the computer device reads data through a parallel scheduler. Accordingly, before the computer device reads data, the parallel scheduler is initialized and the number of multiple worker threads is specified. Optionally, the number of multiple worker threads does not exceed the number of running cores of the CPU (Central Processing Unit) of the computer device. The computer device creates multiple worker threads based on the number of multiple worker threads. When the worker thread starts working, the number of tasks in any task queue is zero, that is, there is no task to be executed, and any worker thread is in a dormant waiting state, that is, an idle state. In the process of reading seismic data, if the computer device directly adds any received data reading request to the task queue, the task adding function of the parallel scheduler is called multiple times in the computer device loop, that is, each time a data reading request is received, the task adding function is called once, and a task of reading seismic data is added to the tail of the task queue. If the first request and the second request are determined based on the amount of data, after determining the request set and the second request, the task adding function of the parallel scheduler is called multiple times in the computer device loop, that is, for each request set and each second request, the task adding function is called once, and a task of reading seismic data is added to the tail 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. Then the computer device wakes up the working thread through the parallel scheduler, and takes a request or a request set at the head of 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 an idle state to a busy state. If the task queue is not empty, the parallel scheduler keeps distributing the request or the request set in the task queue to the working thread in the idle state until multiple working threads are in a busy state. When all requests in the task queue are executed, multiple working threads will change from a busy state to an 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 lot of data needs to be opened for display and editing in a seismic interpretation application, multiple data reading requests for multiple groups of seismic data are triggered, and the multiple data reading requests include requests for reading original seismic data, reading logging data of multiple wells, seismic data of multiple layers, and seismic data of multiple faults. The computer device adds these multiple data reading requests to a task queue as multiple tasks to be executed. The computer device distributes the multiple tasks to multiple working threads through a parallel scheduler to perform parallel reading of multiple seismic data through multiple working threads.

[0114] In an embodiment of the present application, when the number of multiple working threads is not less than the sum of the number of at least one request set and the number of at least one second request, the computer device processes at least one request set and at least one second request in parallel through multiple working threads. Further, when the number of multiple working threads is not less than the sum of the number of at least one first request and at least one second request, the computer device processes at least one first request and at least one second request in parallel through multiple working 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 groups of seismic data read through multiple working threads and displays the processing results.

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

[0118] The first implementation method: The computer device uses multiple working threads to draw multiple seismic profiles based on the multiple sets of seismic data read, and displays the drawn multiple seismic profiles. In this implementation method, not only multiple sets of seismic data are read in parallel based on multiple working threads to improve data reading efficiency, but also multiple seismic profiles are drawn in parallel based on multiple working threads, thereby improving the efficiency of drawing seismic profiles. In addition, multiple seismic profiles are displayed in parallel, which facilitates comparison between multiple seismic profiles.

[0119] Among them, the seismic profile is used for seismic interpretation. For example, it is used to identify reservoirs. A seismic profile can be drawn from a set of seismic data. A seismic profile can also be drawn from multiple sets of seismic data. For example, based on part of the seismic data used to describe the same object in multiple sets of seismic data, a seismic profile corresponding to the object is drawn. The object can be a work area, a well, a layer, a fault, etc.

[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, after the worker thread that reads the set of seismic data completes reading the set of seismic data, the worker thread then draws the seismic profile corresponding to 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 through multiple worker threads.

[0121] In the second implementation, the computer device uses multiple working threads to draw multiple seismic profiles based on the multiple sets of seismic data read, and then overlays the multiple seismic profiles to display the overlaid seismic profiles. In this implementation, not only multiple sets of seismic data are read in parallel based on multiple working threads to improve data reading efficiency, but also multiple seismic profiles and overlays of multiple seismic profiles are drawn based on multiple working threads, thereby improving the efficiency of drawing overlays of seismic profiles.

[0122] Among them, multiple seismic sections are used to reflect the characteristics of the same object in different aspects. For example, multiple seismic sections are seismic trace sections in the vertical direction and seismic trace sections in the horizontal direction of the same work area. For another example, multiple seismic sections are drawing sections of the coordinate system and drawing sections of the seismic trace.

[0123] Optionally, the computer device may call a work thread other than a 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] The third implementation method: The computer device uses multiple working threads to draw multiple well logging curves based on the multiple sets of seismic data read, and displays the drawn multiple well logging curves. In this implementation method, not only multiple sets of seismic data are read in parallel based on multiple working threads, which improves the data reading efficiency, but also multiple well logging curves are drawn in parallel based on multiple working threads, thereby improving the efficiency of drawing well logging curves. In addition, multiple well logging curves are displayed in parallel, which facilitates the comparison between multiple well logging curves.

[0125] The well logging curve is used for seismic interpretation. For example, it is used to stratify the strata, identify the reservoir, identify the seepage barrier of the reservoir, etc. A set of seismic data corresponds to a well logging curve. Accordingly, a working thread is used to draw a well logging curve. Optionally, after the working thread that reads a set of seismic data finishes reading the set of seismic data, the well logging curve corresponding to the set of seismic data is then drawn through the working thread.

[0126] Fourth implementation: The computer device uses multiple working threads to draw multiple well logging curves, draw crossplots of the multiple well logging curves, and display the crossplots based on the multiple sets of seismic data read. In this implementation, not only multiple sets of seismic data are read in parallel based on multiple working threads to improve data reading efficiency, but also multiple well logging curves and crossplots of the multiple well logging curves are drawn based on multiple working threads, thereby improving the efficiency of drawing crossplots.

[0127] Among them, multiple logging curves are used to reflect the formation characteristics from different aspects. For example, multiple logging curves include acoustic amplitude logging curves and natural gamma curves, which are used to determine the density and mud content of the formation respectively. Drawing the cross-plot of multiple logging curves in this way facilitates the comparison of seismic data, and performs seismic interpretation based on multiple characteristics, thereby improving the accuracy of seismic interpretation.

[0128] In other embodiments, the computer device directly displays the read multiple sets of seismic data. Optionally, the computer device displays the read multiple sets of data through multiple working threads, so that the parallel display of seismic data through multiple working threads improves the display efficiency. Optionally, after the computer device reads and displays the multiple sets of seismic data, the request object performs an editing operation on the read seismic data. The computer device implements the editing operation process through 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 by 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 to parallel reading, and read several times faster than before, which can significantly improve the display efficiency of seismic interpretation applications.

[0131] The method provided by the embodiment of the present application provides a scheduling framework 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 is realized by setting up a task queue. And in some embodiments, a simple and easy-to-use API (Application Programming Interface) is also provided, so that a small amount of code modification can be used in the seismic interpretation application. In addition, in some embodiments, the request object can obtain the current scheduling information of the working thread and the completion of the data reading request in real time. In some embodiments, the method provided by the embodiment of the present application supports custom setting of parallelism, that is, the number of parallel working threads can be set and changed as needed. By the method provided by the embodiment of the present application, the serial reading of seismic data can be changed to 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 application of the method.

[0132] The embodiment of the present application provides a method for reading seismic data, which determines a first request with a small amount of data to be read and a second request with a large amount of data. In addition, multiple first requests are formed 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 work 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 work threads, so that the reading efficiency of seismic data is improved by 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 work thread to process the request is similar, and the reasonable allocation of work threads is achieved, and thus the reading efficiency of seismic data can be effectively improved when there are fewer work threads.

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

[0134] A request determination module 501 is used to, in response to receiving multiple data read requests for multiple groups of seismic data, determine 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 groups of seismic data, 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 is used to classify at least one first request to obtain at least one request set, 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 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 data of the multiple groups of seismic data;

[0136] A queue adding module 503, used to add at least one request set and at least one second request to a task queue;

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

[0138] The reading module 505 is used to read multiple groups 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 groups 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 work threads respectively, 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 corresponding to working threads 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.

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

[0144] For each request set, based on the data volume of the seismic data corresponding to each first request in the request set, determining the execution order of each first request in the request set, wherein the execution order of each first request is negatively correlated with the data volume of the 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 read multiple groups of seismic data through multiple working threads; or,

[0148] The processing module is used to process the read multiple groups of seismic data 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 groups of seismic data read, multiple seismic profiles are drawn respectively, and the drawn multiple seismic profiles are displayed; or,

[0151] Through multiple working threads, based on the multiple groups of seismic data read, multiple seismic profiles are drawn respectively, and based on the multiple seismic profiles, an overlay map of the multiple seismic profiles is drawn, and the overlay map is displayed; or,

[0152] Through multiple working threads, based on the multiple sets of seismic data read, multiple well logging curves are drawn respectively, and the drawn multiple well 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 based on the multiple logging curves, a cross-plot of the multiple logging curves is drawn, and the cross-plot is displayed.

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

[0155] Determine at least one data type of the seismic data corresponding to at least one first request; classify 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 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 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 formed 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 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 work 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 work threads, so that the reading efficiency of seismic data is improved 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 work thread to process the request is similar, and the reasonable allocation of work threads is achieved, and thus the reading efficiency of seismic data can be effectively improved when there are fewer work 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 when reading 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 is 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 belong to the same concept, and the specific implementation process is detailed in the method embodiment, which 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), and 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 a high-speed random access memory, and a non-volatile memory, such as one or more disk storage devices, 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 used to be executed by the processor 601 to implement the method for reading seismic data provided in the method embodiment of the present application.

[0163] In some embodiments, the computer device 600 may further optionally include: a peripheral device interface 603 and at least one peripheral device. The processor 601, the memory 602 and the peripheral device interface 603 may be connected via a bus or a signal line. Each peripheral device may be connected to the peripheral device interface 603 via a bus, a signal line or a circuit board. Specifically, the peripheral device includes: 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 may be used to connect at least one peripheral device related to I / O (Input / Output) 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 may be implemented on a separate chip or circuit board, 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 the communication network and other communication devices through electromagnetic signals. The radio frequency circuit 604 converts the electrical signal into an electromagnetic signal for transmission, or converts the received electromagnetic signal into an electrical signal. 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 through at least one wireless communication protocol. The wireless communication protocol includes but is not limited to: the World Wide Web, a metropolitan area network, an intranet, various generations of mobile communication networks (2G, 3G, 4G and 5G), a wireless local area network and / or a WiFi (Wireless Fidelity) network. 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] The display screen 605 is used to display the UI (User Interface). The UI may include graphics, text, icons, multimedia resources and any combination thereof. When the display screen 605 is a touch display screen, the display screen 605 also has the ability to collect touch signals on the surface or above the surface of the display screen 605. The touch signal can be input to the processor 601 as a control signal for processing. At this time, the display screen 605 can also be used to provide virtual buttons and / or virtual keyboards, also known as soft buttons and / or soft keyboards. In some embodiments, the display screen 605 can be one, set on the front panel of the computer device 600; in other embodiments, the display screen 605 can be at least two, respectively set on different surfaces of the computer device 600 or in a folding design; in other embodiments, the display screen 605 can be a flexible display screen, set on the curved surface or folding surface of the computer device 600. Even, the display screen 605 can also be set to a non-rectangular irregular shape, that is, a special-shaped screen. The display screen 605 can be made of materials such as LCD (Liquid Crystal Display), OLED (Organic Light-Emitting Diode) and the like.

[0167] The camera assembly 606 is used to collect images or multimedia resources. Optionally, the camera assembly 606 includes a front camera and a rear camera. Usually, 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 monochrome temperature flash or a dual-color temperature flash. The 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 and input them into the processor 601 for processing, or input them into the radio frequency circuit 604 to achieve voice communication. For the purpose of stereo acquisition or noise reduction, there may be multiple microphones, which are respectively arranged at different parts of the computer device 600. The microphone may also be an array microphone or an omnidirectional acquisition microphone. The speaker is used to convert the electrical signal from the processor 601 or the radio frequency circuit 604 into sound waves. The speaker may be a traditional film speaker or a piezoelectric ceramic speaker. When the speaker is a piezoelectric ceramic speaker, it can not only convert the electrical signal into sound waves audible to humans, but also convert the electrical signal into sound waves inaudible to humans for purposes such as ranging. In some embodiments, the audio circuit 607 may also include a headphone jack.

[0169] The power supply 608 is used to power various components in the computer device 600. The power supply 608 can be an alternating current, a direct current, a disposable battery, or a rechargeable battery. When the 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 through a wired line, and a wireless rechargeable battery is a battery that is charged through 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 acceleration sensor 610 can detect the magnitude of acceleration on the three coordinate axes of the coordinate system established by the computer device 600. For example, the acceleration sensor 610 can be used to detect the components of gravity acceleration on the three coordinate axes. The processor 601 can control the display screen 605 to display the user interface in a horizontal view or a vertical view according to the gravity acceleration signal collected by the acceleration sensor 610. The acceleration sensor 610 can also be used to collect game or user motion data.

[0172] The gyro sensor 611 can detect the body direction and rotation angle of the computer device 600, and the gyro sensor 611 can cooperate with the acceleration sensor 610 to collect the user's 3D actions on the computer device 600. The processor 601 can implement the following functions based on the data collected by the gyro sensor 611: motion sensing (such as changing the UI according to the user's tilt operation), image stabilization during shooting, game control, and inertial navigation.

[0173] The pressure sensor 612 can be set on the side frame of the computer device 600 and / or the lower layer of the display screen 605. When the pressure sensor 612 is set on the side frame of the computer device 600, it can detect the user's grip signal of the computer device 600, and the processor 601 performs left and right hand recognition or shortcut operations according to the grip signal collected by the pressure sensor 612. When the pressure sensor 612 is set on the lower layer of the display screen 605, the processor 601 controls the operability controls on the UI interface according to the user's pressure operation on the display screen 605. The operability 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 collect the ambient light intensity. In one embodiment, the processor 601 can control the display brightness of the display screen 605 according to the ambient light intensity collected 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 reduced. In another embodiment, the processor 601 can also dynamically adjust the shooting parameters of the camera assembly 606 according to the ambient light intensity collected by the optical sensor 613.

[0175] The proximity sensor 614, also called a distance sensor, is usually disposed on the front panel of the computer device 600. The proximity sensor 614 is used to collect the distance between the user and the front of the computer device 600. In one embodiment, when the proximity sensor 614 detects that the distance between the user and the front of the computer device 600 is gradually decreasing, the processor 601 controls the display screen 605 to switch from the screen-on state to the screen-off state; when the proximity sensor 614 detects that the distance between the user and the front of the computer device 600 is gradually increasing, the processor 601 controls the 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 less components than those shown in the figure, or combine some components, or adopt a different arrangement of components.

[0177] Figure 7It is a block diagram of a server provided by an embodiment of the present disclosure. The server 700 may have relatively large differences due to different configurations or performances, and may include one or more processors (Central Processing Units, CPU) 701 and one or more memories 702, wherein the memory 702 is used to store executable program codes, and the processor 701 is configured to execute the above executable program codes 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 an input and output interface 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 a program code is also provided, such as a memory 702 including the program code, and the program code can be executed by a processor 701 of a server 700 to complete the above-mentioned method for reading seismic data. Optionally, the storage medium can be a non-temporary computer-readable storage medium, for example, the non-temporary computer-readable storage medium can be 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, etc.

[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 modes.

[0180] An embodiment of the present application also provides a computer program product, 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 in any of the above-mentioned implementation methods.

[0181] In some embodiments, the computer program product involved in the embodiments of the present application may 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 by a communication network. Multiple computer devices distributed at multiple locations and interconnected by a communication network may 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 groups of seismic data, determining at least one first request and at least one second request from the plurality of data read requests based on the data amounts of the plurality of groups of seismic data, the data amount of the seismic data corresponding to the first request being less than a first reference data amount, and the data amount of the seismic data corresponding to the second request being 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 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 data of the multiple groups 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; 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.

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 comprises: 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 work threads respectively, and the distributing the at least one request set to at least one work 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 worker threads 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.

4. The method according to claim 2, characterized in that: Each request set is respectively distributed to a working 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 through the multiple working threads includes: For each request set, based on the data volume of the seismic data corresponding to each first request in the request set, determining the execution order of each first request in the request set, wherein the execution order of each first request is negatively correlated with the data volume of the 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, characterized in that The method further comprises: Displaying the read multiple groups of seismic data through 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 method of processing the read multiple groups of seismic data through the multiple working threads and displaying the processing results includes: Through the multiple working threads, based on the multiple groups of seismic data read, multiple seismic sections are drawn respectively, and the drawn multiple seismic sections are displayed; or, Through the multiple working threads, based on the multiple groups of seismic data read, a plurality of seismic sections are drawn respectively, based on the multiple seismic sections, an overlay map of the multiple seismic sections is drawn, and the overlay map is displayed; or, Through the multiple working threads, based on the multiple groups of seismic data read, multiple well logging curves are drawn respectively, and the drawn multiple well logging curves are displayed; or, Through the multiple working threads, based on the multiple groups of seismic data read, multiple logging curves are drawn respectively, and based on the multiple logging curves, a cross-plot of the multiple logging curves is drawn, and the cross-plot is displayed.

7. The method according to claim 1, characterized in that 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 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, Determine at least one task type of the seismic data corresponding to each of 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 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 types of the seismic data corresponding to the at least one first request included in each request set are the same.

8. 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 groups of seismic data, determine at least one first request and at least one second request from the plurality of data read requests based on the data amounts of the plurality of groups 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; A classification module, used for classifying the 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 data of the multiple groups of seismic data; A queue adding module, used for adding the at least one request set and the at least one second request to a task queue; A distribution module, used for distributing at least one request set and at least one second request in the task queue to multiple working threads; 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 in parallel from the database through the multiple working threads, and the read multiple groups of seismic data are used for seismic interpretation.

9. 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 7.

10. A computer-readable storage medium, characterized in that: The storage medium stores at least one program code, and the at least one program code is loaded and executed by a processor to implement the method for reading seismic data as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Acquisition method of seismic trace data, main node server and working node server

    CN106790389A

  • Seismic data multi-dimensional range query method and device

    CN112860734A

  • Seismic big data cluster parallel machine efficient sorting method and device

    CN114519129A

  • Seismic data processing system and method

    GB1550701A

  • Automated Seismic Interpretation Systems and Methods for Continual Learning and Inference of Geological Features

    US20200184374A1