Script language-oriented seismic batch processing job editing method and device

By converting earthquake batch processing job requirements into Python scripts using a scripting language framework and toolchain, the flexibility and efficiency issues of traditional editing methods are resolved, enabling efficient and flexible earthquake batch processing job editing and meeting the diverse needs of Python users.

CN120892030AActive Publication Date: 2025-11-04BGP INC CHINA NAT PETROLEUM CORP +2

Patent Information

Application Number
CN202511439255.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-10-10
Publication Date
2025-11-04
Estimated Expiration
2045-10-10

AI Technical Summary

Technical Problem

Traditional earthquake batch processing job editing relies on interface interaction, resulting in poor flexibility and low efficiency. It cannot achieve AI-assisted job generation and optimization, has inefficient parameter reuse, lacks dynamic verification, and has insufficient operation and maintenance expansion, making it difficult to meet user needs in complex situations.

Method used

An earthquake batch processing job editing method based on scripting language is adopted. Through a scripting language framework and toolchain, earthquake job requirements are converted into Python scripts, realizing the initialization and topology structuring of module objects, supporting dynamic dependency relationships and parameter versioning management, and generating target jobs in XML format.

Benefits of technology

It enables efficient and flexible seismic batch processing job editing, supports Python scripting, improves the efficiency and flexibility of job editing, meets diverse needs, and lays the foundation for large-scale model applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120892030A_ABST
    Figure CN120892030A_ABST
Patent Text Reader

Abstract

The invention provides a script language-oriented seismic batch processing job editing method and device, and the method comprises the steps: obtaining a to-be-processed seismic job demand, and determining a seismic job project and database information; initializing each module object in a pre-established seismic batch processing operation framework, wherein the framework is a scripting language framework comprising a preset core library, a module library and a tool chain; determining a standard type parameter corresponding to each module object; initializing an operation topological structure of the seismic batch processing operation framework; selecting a target module object and adding the target module object to the target operation based on the earthquake operation project and the database information; and outputting the topological graph of the module according to the debugging requirement, and generating a target operation corresponding to the seismic operation requirement by calling the XML format file. According to the method, seamless connection of job editing and code editing is realized through a script language-oriented seismic batch processing job framework, so that the method is more flexible and efficient; and diversified requirements of a user for job editing by using a script programming language are met.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of scripting editing and execution framework of seismic batch processing operation in geophysical exploration, and particularly relates to a seismic batch processing operation editing method and device for a scripting language. BACKGROUND

[0002] For the development of geophysical exploration software based on a scripting language such as Python, the batch processing development technology and framework of GeoEast software specifically involves the Python scripting editing function of seismic batch processing operation. Specifically, GeoEast V2021 is based on a new iEco platform, integrates 961 function modules, and has more than 30 million lines of code, which can meet the needs of seismic processing and interpretation from land to sea, from P-wave to multi-wave, and from surface to well, has the full-process integrated service capability from time domain to depth domain, from project level to basin level, from data processing to reservoir description, and has passed the qualification certification of multiple international oil companies, becoming one of the three major mainstream geophysical exploration software in the world.

[0003] In the prior art, the traditional editing of seismic batch processing operation completely depends on the editor based on interface interaction of the operation, please refer to Figure 1 This editor has the advantages of simple operation and easy to use, and guides the user to input the specified parameters through interaction, however, the editor has the disadvantages of poor flexibility and low efficiency, especially for users who understand the scripting programming language, and cannot reflect the advantages of professional technical personnel in operation batch processing. Specifically, the traditional editing of seismic batch processing operation has the following defects: 1. Model coupling barrier, the traditional operation editor adopts an event-driven GUI architecture, and all parameter configurations are completed through interface components, resulting in: ① the model cannot directly parse the interface state to obtain parameter semantic information; ② it is difficult to realize AI-assisted operation generation and optimization.

[0004] 2. Logic expression limitation, the traditional operation editing only supports linear parameter configuration, and cannot realize: ① dynamic condition branching (such as automatically selecting a preprocessing process according to a work area type); ② loop iteration processing (such as batch processing of multi-line data); ③ complex data conversion logic (such as dynamic generation of trace header character mapping rules).

[0005] 3. Low-efficiency parameter reuse, module parameters are stored in a flattened manner in the operation file, resulting in: ① cross-operation parameter reuse needs to be imported and exported through a file, which is high in operation cost; ② parameter changes need to be manually synchronized to all related operations, which is difficult to maintain; ③ it is impossible to realize parameter version management and change tracking; ④ it is impossible to realize parameter or module level customization and sharing (derivation of custom parameter or module pool).

[0006] 4. Dynamic check missing, existing check only supports: ① numerical type check (such as floating point type parameter input string); ② simple dependency relationship (such as parameter A exists, parameter B must be non-empty); ③ cannot support dynamic business rules (for example: before the job starts to execute, dynamically check the validity of the seismic data, the validity of the parameter dependency, etc.), which can expose the problems of the job parameters before the job is executed, improve the quality of the job, and also improve the work efficiency.

[0007] 5. Operation and maintenance expansion is insufficient, and job execution depends on job scheduling: ① cannot dynamically send jobs according to the required resources of the job; ② failed jobs need to be manually located to analyze the reasons, and cannot form a summary document; ③ cannot automatically complete job retry and timed sending.

[0008] In summary, in seismic processing, for complex situations, the traditional job editing method lacks flexibility and is low in efficiency, and it is difficult to develop a job editing method combined with the diversified needs of various users, which greatly limits the application of large language models in seismic batch job editing. Therefore, the present application provides a solution for seismic batch job editing to solve the problems in the prior art. SUMMARY

[0009] The present application shows a seismic batch job editing method and device for a scripting language.

[0010] In a first aspect, the present application shows a seismic batch job editing method for a scripting language, which comprises: obtaining a seismic job requirement to be processed, and determining a seismic job project and database information according to the seismic job requirement; initializing each module object in a pre-established seismic batch job framework, wherein the seismic batch job framework is a scripting language framework comprising a preset core library, a module library and a tool chain; determining the standard type parameters corresponding to each module object, wherein the standard type parameters are standard types set in advance for each parameter; initializing the job topology structure of the seismic batch job framework; selecting target module objects from the seismic batch job framework based on the seismic job project and the database information, and adding them to the target job; outputting the topology graph of the module according to the debugging needs, and generating the target job corresponding to the seismic job requirement by calling the XML format file.

[0011] Preferably, before the step of obtaining a seismic job requirement to be processed, and determining a seismic job project and database information according to the seismic job requirement, the method further comprises: A standard prolog word class is defined, all prolog words in a standard prolog word file are read into memory using a prolog word generation tool, and formatted output is generated as a Python file; the attributes of the standard prolog word class at least include: name, number, attention, type, display, and description.

[0012] Preferably, the step of obtaining a seismic operation requirement to be processed, and determining a seismic operation project and database information according to the seismic operation requirement, further comprises: A PDL parameter constant class is defined, and a PDL file is converted into a Python type PDL object using a PDL parsing tool, the parameter constant at least includes: a label and an attribute in the PDL file, and the PDL object at least includes module, parameter, parameter set, and parameter dependency information; The Python type PDL object is used as input, a module class is generated from a module base class using a PDL generation tool, all module information is written into a module object and a plurality of parameter classes, each parameter of the plurality of parameter classes is generated from a parameter base class, and parameter information is written one by one according to parameter type and parameter value, to generate a target module file corresponding to the target module object.

[0013] Preferably, the core library includes a parameter system unit, a dependency management unit, a module model unit, and a job management unit; The parameter system unit defines a parameter base class and a module base class, supports type checking, value range constraint, and parameter value automatic conversion functions; The dependency management unit establishes logical association between parameters through a GEDependency class, and supports dynamic dependency relationship analysis; The module model unit encapsulates input and output channels, parameter sets, and job segment generation interfaces according to the module base class, and supports chain connection between modules; The job management unit integrates job metadata management, topology generation, and XML output functions according to a GEJob class, and supports multi-module combination and arrangement.

[0014] Preferably, the module library: Contains batch processing modules in a GeoEast environment, each Python file of the modules contains a module class derived from a module base class GEModule and a plurality of parameter classes derived from a parameter base class GEParameter, and initial value data of the modules and the parameters are obtained from a module PDL file.

[0015] Preferably, the module library: The GeoEast module description file is automatically converted into a Python file module by the tool chain, the parameter definition is consistent with the semantics of the original module, the PDL parameter type is mapped to the type of a Python data structure, and the type hint function of an intelligent editor is supported, and each module is exported in the form of a Python module package.

[0016] Preferably, the tool chain comprises: a standard header generation tool, a batch module generation tool, and a PDL analysis tool. The standard header generation tool inputs a standard header file, automatically generates a header module, and outputs the header module to a core library directory by default, thereby supporting quick query and reference of header attributes. The batch module generation tool inputs a batch module PDL file, automatically generates a Python version of the module file, and outputs the module file to a module library directory by default. The PDL analysis tool analyzes a PDL file and outputs the PDL file as a Python object of PDL.

[0017] In a second aspect, the present application shows a script language-oriented seismic batch processing job editing device, which comprises: A seismic job requirement determination unit is configured to obtain a seismic job requirement to be processed, and determine a seismic job item and database information according to the seismic job requirement. A framework module initialization unit is configured to initialize each module object in a pre-established seismic batch processing job framework, wherein the seismic batch processing job framework is a script language framework comprising a preset core library, a module library, and a tool chain. A module parameter determination unit is configured to determine a standard type parameter corresponding to each module object, wherein the standard type parameter is a standard type set in advance for each parameter. A topological structure initialization unit is configured to initialize a job topological structure of the seismic batch processing job framework. A target module selection unit is configured to select a target module object from the seismic batch processing job framework based on the seismic job item and the database information, and add the target module object to a target job. A target job generation unit is configured to output a topological graph of a module according to debugging needs, and generate a target job corresponding to the seismic job requirement by calling an XML format file.

[0018] In a third aspect, the present application shows an electronic device, which comprises: a processor; a memory for storing processor-executable instructions; and wherein the processor is configured to execute the method according to any one of the above aspects.

[0019] In a fourth aspect, the present application shows a non-transitory computer readable storage medium, when instructions in the storage medium are executed by a processor of an electronic device, the electronic device can execute the method of any one of the above aspects.

[0020] In a fifth aspect, the present application shows a computer program product, when instructions in the computer program product are executed by a processor of an electronic device, the electronic device can execute the method of any one of the above aspects.

[0021] The technical solutions provided by the present application can include the following beneficial effects: The present application realizes efficient editing of seismic batch processing job framework for Python, replaces the traditional job editing mode based on interface with the job editing mode based on programming language, fills the gap in traditional batch job editing, supplements and enhances the function of existing batch job editing, can support editing of Python script language, seamlessly connects job editing and code editing, makes job editing more flexible and efficient, meets the diversified needs of users who master Python programming language for self-defined job editing, and lays a solid foundation for subsequent application of job editing in large models. BRIEF DESCRIPTION OF DRAWINGS

[0022] Figure 1 It is a schematic diagram of a seismic batch processing job editing method based on traditional interactive software; Figure 2 It is a flowchart of a seismic batch processing job editing method for a script language provided by the present application; Figure 3 It is a schematic diagram of a principle of a tool chain provided by the present application for translating GeoEast standard trace header words and PDL files into Python script modules; Figure 4 It is a flowchart of a seismic job editing method based on Python language provided by the present application; Figure 5 It is a schematic diagram of a module parameter of a seismic batch processing job editing method based on traditional interactive software; Figure 6 It is a schematic diagram of an interactive interface of a seismic batch processing job editing method based on traditional interactive software; Figure 7 It is a schematic diagram of a script language of a seismic job editing method based on Python language provided by the present application; Figure 8 It is a structural diagram of a seismic batch processing job editing device for a script language provided by the present application; Figure 9 It is a block diagram of an electronic device provided by the present application; Figure 10 Another block diagram of an electronic device is provided for the present application. DETAILED DESCRIPTION

[0023] The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are some of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the scope of protection of the present application.

[0024] The Python framework is a framework in which the underlying code is encapsulated in advance and the corresponding API (Application Programming Interface) is provided. In this way, the developer can directly call the encapsulated API when using the framework, which can improve work efficiency and development speed. Generally, the correct selection of the Python framework mainly depends on the project size, communication requirements, whether it is a standalone application, the level of customization requirements, overhead and many other factors.

[0025] It should be noted that the following embodiments are described by taking Python language as an example, but the script language mentioned in the present application is not limited to Python language, but can also be other script programming languages, such as Lua / JavaScript / Json / Yaml, etc.

[0026] The script language oriented seismic batch job editing method will be described below. EMBODIMENT

[0027] REFERENCE Figure 2 A flowchart of the script language oriented seismic batch job editing method provided for the present application, which can be applied to an electronic device, wherein the method can specifically include the following steps: Step S101: Obtain the seismic job demand to be processed, and determine the seismic job project and database information according to the seismic job demand.

[0028] Step S102: Initialize each module object in the pre-established seismic batch job framework, wherein the seismic batch job framework is a script language framework including a preset core library, a module library and a tool chain.

[0029] Step S103: Determine the standard type parameters corresponding to each module object, wherein the standard type parameters are standard types set in advance for each parameter. Specifically, a corresponding parameter is specified for each module, and each parameter has a standard type, and if a smart editor such as VSCode is used, a type description will be prompted.

[0030] Step S104: Initialize the job topology of the seismic batch processing job framework. For example, A.preceed(B) means A->B, that is, module B is followed by module A.

[0031] Step S105: Based on the earthquake operation project and database information, select the target module object from the earthquake batch processing operation framework and add it to the target operation.

[0032] Step S106: Output the module topology diagram according to the debugging needs, and generate the target operation corresponding to the earthquake operation requirements by calling the XML format file.

[0033] Furthermore, such as Figure 3 As shown, before step S101, the method may further include: defining a standard header word class; using a header word generation tool (e.g., genHeaderWords.py) to read all header words from a standard header word file (e.g., geoeastSTD.header) into memory; and formatting the output as a Python file (e.g., stdHeaderWords.py); the attributes of the standard header word class include at least: name, number, attention level, type, display, and description. In one case, all header words can be defined, and each header word corresponds to a HeaderWord type.

[0034] Furthermore, such as Figure 3 As shown, before step S101, the process may further include: defining a PDL parameter constant class (e.g., pdlConstants.py); using a PDL parsing tool (e.g., pdlParser.py) to convert the PDL file into a Python-type PDL object; the parameter constants at least include tags and attributes from the PDL file; and the PDL object at least includes modules, parameters, parameter sets, and parameter dependency information. Using the Python-type PDL object as input, a PDL generation tool (e.g., pdlParser.py) is used to derive a module class from a module base class; all module information is written into the module object and multiple parameter classes; each parameter in the multiple parameter classes is derived from the parameter base class, and parameter information is written one by one according to the parameter type and parameter value, generating the target module file corresponding to the target module object. For example, if the original module file name is abset.pdl, the output Python module file is abset.py.

[0035] In an implementation, the core library includes a parameter system unit, a dependency management unit, a module model unit, and a job management unit. The parameter system unit defines a parameter base class (GEParameter) and a module base class (GEModule), supports type checking, value range constraint, and automatic conversion of parameter values, and the like. Further, the parameter system unit extends and supports complex parameter types such as a selection type (GESelectType) and a matrix type (GEMatrixType). The dependency management unit establishes logical association between parameters through a GEDependency class, and supports dynamic dependency relationship resolution. The module model unit encapsulates input and output channels, parameter sets, and job segment generation interfaces according to the module base class (GEModule), and supports chain connection between modules. The job management unit integrates job metadata management, topology generation, and XML output functions according to a GEJob class, and supports multi-module combination and arrangement.

[0036] In an implementation, the module library includes batch processing modules in a GeoEast environment. A Python file of each module includes a module class derived from a module base class GEModule and a plurality of parameter classes derived from a parameter base class GEParameter. Initial value data of the module and the parameters is obtained from a module PDL file.

[0037] Further, the module library automatically converts a GeoEast module description file (.pdl) into a Python file module through a tool chain, keeps parameter definition consistent with semantics of an original module, maps PDL parameter types to types of Python data structures, supports type hinting function of an intelligent editor, and exports each module in the form of a Python module package.

[0038] In an implementation, the tool chain includes a standard header generation tool, a batch processing module generation tool, and a PDL analysis tool. The standard header generation tool inputs a standard header file (geoeastSTD.header), automatically generates a header module, and outputs the header module to a core library directory by default, supports quick query and reference of header properties. The batch processing module generation tool inputs a batch processing module PDL file, automatically generates a Python version of the module file, and outputs the module file to a module library directory by default. The PDL analysis tool analyzes a PDL file and outputs the PDL file as a Python object of the PDL.

[0039] The application realizes efficient editing of a seismic batch processing job framework for Python, replaces the traditional job editing mode based on an interface with a job editing mode based on a programming language, fills the gap in traditional batch job editing, supplements and enhances the function of existing batch job editing, can support editing of a Python script language, seamlessly connects job editing and code editing, makes job editing more flexible and efficient, meets the diversified needs of users who master the Python programming language for self-defined job editing, and lays a solid foundation for subsequent job editing in a large model.

[0040] The script language is taken as an example below to describe the seismic batch processing job editing method for the script language provided by the application in detail, please refer to Figure 3 and Figure 4 Compared with the traditional job editing, the application eliminates the frequent operation of a graphical interface, first uses the tool set of the application to prepare the basic environment for job editing.

[0041] The core idea of the framework is to use existing batch processing modules as data, convert and encapsulate existing module files such as PDL (Program Design Language) format into Python classes by writing a series of Python classes and tool chains, and then use the Python programming language to code batch processing jobs.

[0042] Step (1), define standard header word classes, attributes include: name, number, attention, type, display, description, etc. Use the header word generation tool (genHeaderWords.py) to read all the header words in the standard header word file (geoeastSTD.header) into the memory and format the output as a Python file (stdHeaderWords.py), which defines all the header words, and each header word corresponds to a HeaderWord type.

[0043] Step (2), define the PDL parameter constant class (pdlConstants.py), the constants include: the label and attribute in the PDL file, use the PDL parsing tool (pdlParser.py) to convert the PDL file into a Python object (PDL type), which includes module, parameter, parameter set and parameter dependency information.

[0044] Step (3), using PDL generator, the PDL object of Python type output in step (2) as input, generates a module class (derived from module base class), writes all module information into module object and multiple parameter classes (each parameter derived from parameter base class), and writes parameter information according to parameter type and parameter value, and finally generates a module file, for example: the original module file name is abset.pdl, and the output Python module file is abset.py. The flow chart of steps (1)-(3) is shown in Figure 3 .

[0045] Step (4), the user writes a job based on the Python version of the batch module.

[0046] a. According to the job requirements, specify the project and database information of the job; b. Initialize each module object, taking two modules A and B as an example, wherein the A module represents geodiskin, and the B module represents geodiskout; c. Specify the corresponding parameters for each module, and each parameter has a standard type, and if a smart editor such as VSCode is used, the type specification will be prompted; d. Initialize the job topology, which defines that A is the post-module of B, that is, A->B; e. Add all modules used in the job to the job; f. According to the needs, output the topology diagram of the module; g. Call genJobXML to generate a job.

[0047] h. The user develops a flow chart, as shown in Figure 3 .

[0048] Specifically, for the above step (1): using the head-of-chain word analysis and generation tool of the tool chain, the standard head-of-chain word file is converted into a Python class. Taking the legal_mark head-of-chain word as an example, its original information is in XML format: <?xml version="1.0" encoding="UTF-8"?> <headerdef version="3.0"> <!--Definition of the trace header word, including number, category label, attention level, etc.--> <headerword> <no> 1< / no> <classmark> M001< / classmark> <attention> C< / attention> <key>legal_mark< / key> <macro>< / macro> <type> c16< / type> <factor> 0< / factor> <display>Legal mark< / display> <description>Legal mark (GeoEast)< / description> <defaultinvalid>NULL< / defaultinvalid> <code>< / code> <commonid> 1< / commonid> <statmethod> 0< / statmethod> < / headerword> After converting it into a Python module through the trace header word tool, it is as follows: # Represent a seismic data trace header word in Python class Headerword: def __init__(self, no :int = -1, # Number classMark :str = '', # Category label attention :str = '', # Attention level key :str = '', macro :str = '', type :str = '', factor :str = '', display :str = '', desc :str = '', defaultInvalid :str = '', code :str = '', commonId :int = 0, # 0:TraceHeader 1:CommonHeader statMethod :int = -1 ): self.no :int = no self.classMark :str = classMark self.attention :str = attention self.key :str = key self.macro :str = macro self.type :str = type self.factor :str = factor self.display :str = display self.desc :str = desc self.defaultInvalid :str = defaultInvalid self.code :str = code self.commonId :int = commonId # 0:TraceHeader 1:CommonHeader self.statMethod :int = statMethod It should be noted that the above program segment is a standard header word base class defined by the framework layer, which is used to describe the structure of the header word in the Python script language; it is automatically parsed and generated by the tool chain according to the standard header word in the GeoEast system environment, and is used to cooperate with the batch processing module to complete the job editing operation.

[0049] Specifically, for steps (2) and (3) above: use the module parsing and generation tool to convert the batch processing module configuration file (PDL suffix, XML format) into the corresponding Python module. Taking the abset module as an example, its XML configuration file is as follows, and the following program segment is part of the XML format file with PDL suffix, which can be simply understood as a module (i.e., a description of the module): <?xml version="1.0"?> <!-- Module information, including: name, version, type, transmission method --> <moudle name="absest" version="3.0" moduletype="NORMAL" datatransfer="SINGLE"> <!-- Parameter list --> <parameters> <!-- compid parameter, parameter name, display name --> <parameter name="compid" class="1" display="Component for absorptionestimation" inmethod="DIRECT" uiname="component type" no="5"> <!-- Parameter value type, maximum, minimum value --> <value col="1" vtype="Int" type="SINGLE" row="1" prec="0"> <max> 2147483647< / max> <min> -1< / min> <default> -1< / default> < / value> <!-- Parameter annotation --> <comment> <ecomment>Absorption estimation should be performed for givencomponent identifier. If -1 is set then all components are used.< / ecomment> < / comment> < / parameter> < / parameters> <!-- Detailed description information of the module, including: library name, description, development language, author, input and output channel, etc. --> <description> <libname>absest.so< / libname> <func>The program estimates absorption by trace energy descent intime window along hodograph. Hodograph may be obtained from firstbreak orfrom VSP picking seismic trace header word. Estimation may be performed ingiven range of receiver depths.< / func> <author>Eliseev Vladimir< / author> <language> C++< / language> <interfacetype>GEOEAST< / interfacetype> <anamod>absest.am< / anamod> <exemod>absest.pm< / exemod> <prodate>Thu Mar 17 2005< / prodate> <inchannel num="1" format="1" type="Float" needed="YES"> <mecomment>Input GeoEast seismic traces with first break or VSPpicking hodograph defined.< / mecomment> < / inchannel> <outchannel num="1" format="1" type="Float" needed="YES"> <mecomment>GeoEast traces without any changes in headers and insamples.< / mecomment> < / outchannel> <checkpoint state="false"> <nodedep>false< / nodedep> < / checkpoint> < / description> <assistant> <applicationtype>Input< / applicationtype> <funlevel> 0< / funlevel> <frelevel> 0< / frelevel> < / assistant> < / moudle> Taking the abset module as an example, it is converted into abset.py (a Python module) by the module parser and generator of the tool chain, which completely includes all original information of the module, including the name, category, version, channel, and description of the module; a module can be completely expressed using Python language.

[0050] Each parameter in the module corresponds to a Python class. Taking the abset module as an example, the parameter class corresponding to the parameter compid is Compid; each parameter class retains all the information of the original XML file, including: parameter name, display name, interface name, category, parameter type, parameter value type, parameter value range, and parameter description, and the parameter can be completely expressed using Python language.

[0051] #encoding=utf-8 # Parsing done by PDLParser of toolchain, PDL -> Python module class generation done by PDLGenerator.

[0052] #==================================== #- Auto Generated 20250521 15:50:51 - #author:ds #email:daisu@cnpc.com.cn #==================================== import sys,os from typing import List sys.path.append(os.path.abspath('.. / ..')) from pyjob.core.parameter import * from pyjob.core.module import * ''' Source: D:\mysvn\code\geoeast\pyjobeditor\res\pdl\absest.pdl MD5: 840407ae9d5e9ab69c62914d917061c1 Modified Date:20250103 10:42:49 Description: The program estimates absorption by trace energy descent in timewindow along hodograph. Hodograph may be obtained from firstbreak or from VSPpicking seismic trace header word. Estimation may be performed in given rangeof receiver depths. ''' Module class generated from abset.pdl module configuration file, which keeps all the description information of the original module class absest(GEModule): def __init__(self): super().__init__() # Initialize module attributes attr :GEModuleAttr = self.attr attr.name = 'absest' # Module name attr.libName = 'absest.so' # Library name attr.language = 'C++' # Development language attr.version = '3.0' # Module version attr.type = '' # Module type attr.dataTransfer = 'SINGLE' # Data transfer mode attr.author = 'Eliseev Vladimir' # Development author attr.createdDate = 'Thu Mar 17 2005' # Creation date attr.interfaceType = 'GEOEAST' # Interface type attr.moduleType = 'NORMAL' # Module type attr.desc = '''The program estimates absorption by trace energydescent in time window along hodograph. Hodograph may be obtained fromfirstbreak or from VSP picking seismic trace header word. Estimation may beperformed in given range of receiver depths.''' attr.amMod = 'absest.am' attr.pmMod = 'absest.pm' # initialize input channel inChan :GEChan = self.inputChan inChan.count = 1 inChan.format = 1 inChan.type = 'Float' inChan.required = 'YES' inChan.comment = '''Input GeoEast seismic traces with first break or VSP picking hodograph defined.''' # initialize output channel outChan :GEChan = self.outputChan outChan.count = 1 outChan.format = 1 outChan.type = 'Float' outChan.required = 'YES' outChan.comment = '''GeoEast traces without any changes in headers and in samples.''' # initialize help information assist :GEAssistAttr = self.assistAttr assist.appType = 'Input' assist.funLevel = '0' assist.freLevel = '0' # input and output channel, iport and oport self.iport1 :GEChanInputPort = GEChanInputPort(self,0) self.oport1 :GEChanOutputPort = GEChanOutputPort(self,0) # parameter list self.parasCount = 1 self.compid = Compid() # Parameter set self.paras.append(self.compid) # Module parameter, if there are multiple modules, there will be multiple parameter classes here, each parameter corresponds to a parameter class, which contains all the information of the original module parameter class Compid(GEParameter): def __init__(self): super().__init__() self.name = 'compid' self.uiName = 'component type' self.disName = 'Component for absorption estimation' self.no = 5 self.classLevel = 1 self.inMethod = 'DIRECT' self.ptype = 'SINGLE' self.vtype = 'Int' self.vsize = GEVSize(1, 1) self.vrange = GEVRange(-1, 2147483647, 0) self.rowAutoExpand = True self.prec = 0 # None if not specified, automatically use default self.value :int = None self.valueTypeName :str = "NoneType" self.eComment = '' self.cComment = '' # Value type, None if single value self.valueType :any = None # Parameter default value self.default = -1 It should be noted that the content shown in the above program segment is to define the constants of the PDL file in the batch processing module, and use the constants to parse the existing batch PDL file through the tool chain; and for the mapping of the PDL file to the Python language structure, the PDL configuration file is described using the Python script language, which is used for subsequent PDL file parsing and module processing.

[0053] It should be noted that the content shown in the above program segment is to translate the existing batch PDL file into a Python language module by the tool chain, and the abset module is taken as an example for illustration; the core steps include parsing and generating, similar to decoding and encoding operations.

[0054] Specifically, after the conversion of the batch module (PDL suffix configuration file) to the Python library is completed, steps (1) and (2) are completed, and the batch module job development library can be used to write the Python version of the batch job.

[0055] As shown in the job editor Figure 1 It can be seen that each box in the left side is a module, and a job is composed of multiple modules, each module has many parameters, and different parameters are configured. The input and output streams of the modules are connected by the ports of the modules, so as to edit a job. Here, each module corresponds to a subclass derived from GEModule, for example, abset, see Figure 5 Each parameter in the right side of the job corresponds to a Python class of GEParameter, and the modules in the job are connected in the form of channel connection lines. The information of the job is specified, including the database, the project work area and the survey line, please refer to Figure 6 .

[0056] Next, a job is constructed using the Python programming language, as shown in Figure 7 For users who understand the Python script, they can understand the job information described by the code at a glance. Specifically, the selection of the module is completed by importing the module in the Python language. The setting of the module parameter is completed by creating the module parameter object. The topology structure between the modules is described in the form of a tuple.

[0057] In summary, the scheme provided in the present application has the following advantages in editing a seismic batch processing job: 1. Strong AI friendliness: ① Facilitates better understanding of job editing by large models and designs jobs according to user needs, reducing the difficulty of large model application in batch processing; ② Provides a structured code interface for large models to support intelligent generation and optimization of future batch jobs.

[0058] 2. Flexible logic programming: ① Utilize Python language features to flexibly arrange complex business logic; ② Utilize the advantages of programming languages to design more complex jobs.

[0059] 3. High parameter reuse rate: ① Improve parameter reuse rate by customizing parameter classes; ② Customize modules to design and simplify module reuse rate.

[0060] 4. More efficient operation and maintenance: ① Use Python operation and maintenance library to determine job sending time; ② Use Python scheduling library to implement job timing and retry, etc.

[0061] It should be noted that for the method embodiments, in order to simply describe, they are all expressed as a series of action combinations, but those skilled in the art should know that the present application is not limited by the order of the described actions, because according to the present application, certain steps can be performed in other order or simultaneously. Secondly, those skilled in the art should know that the embodiments described in the specification are all optional embodiments, and the actions involved are not necessarily required by the present application. Embodiments

[0062] Reference Figure 8 A structural diagram of a seismic data batch processing job editing device for a scripting language provided by the present application, the device comprising: A seismic job requirement determination unit 210 for obtaining a seismic job requirement to be processed, determining a seismic job project and database information according to the seismic job requirement; A framework module initialization unit 220 for initializing each module object in a pre-established seismic batch processing job framework, the seismic batch processing job framework being a scripting language framework including a preset core library, a module library and a tool chain; A module parameter determination unit 230 for determining the standard type parameters corresponding to each module object, the standard type parameters being standard types set in advance for each parameter; A topology initialization unit 240 for initializing the job topology structure of the seismic batch processing job framework; A target module selection unit 250 for selecting a target module object from the seismic batch processing job framework based on the seismic job project and database information and adding it to the target job; The target operation generation unit 260 is configured to output a topology diagram of the debugging required module, and generate a target operation corresponding to the seismic operation requirement by calling an XML format file.

[0063] The application realizes efficient editing of a seismic batch processing operation framework for Python, replaces a traditional operation editing mode based on an interface with an operation editing mode based on a programming language, fills the gap in traditional batch processing operation editing, supplements and enhances the function of existing batch processing operation editing, can support editing of a Python script language, seamlessly connects operation editing and code editing, makes operation editing more flexible and efficient, meets the diversified needs of users who master the Python programming language for self-defined operation editing, and lays a solid foundation for subsequent operation editing in a large model.

[0064] For the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts are described in the part of the method embodiment. Embodiment

[0065] Optionally, the embodiment of the application further provides an electronic device, including a processor, a memory, a computer program stored in the memory and executable on the processor, which realizes each process of the method embodiment of the application and achieves the same technical effect when the computer program is executed by the processor, and details are not repeated here to avoid repetition.

[0066] The embodiment of the application further provides a computer readable storage medium, and the computer readable storage medium stores a computer program, which realizes each process of the method embodiment of the application and achieves the same technical effect when the computer program is executed by the processor, and details are not repeated here to avoid repetition. The computer readable storage medium is, for example, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0067] Figure 9 A block diagram of an electronic device 800 is provided. For example, the electronic device 800 can be a mobile phone, a computer, a digital broadcast terminal, a messaging device, a game console, a tablet device, a medical device, a fitness device, a personal digital assistant, and the like.

[0068] Reference Figure 9 The electronic device 800 can include one or more of the following components: a processing component 802, a memory 804, a power supply component 806, a multimedia component 808, an audio component 810, an input / output (I / O) interface 812, a sensor component 814, and a communication component 816.

[0069] The processing component 802 generally controls the overall operations of the electronic device 800, such as operations associated with display, phone calls, data communications, camera operations, and recording operations. The processing component 802 can include one or more processors 820 to execute instructions and to complete any of the steps for the methods described above. In addition, the processing component 802 can include one or more modules to facilitate the interaction between the processing component 802 and other components. For example, the processing component 802 can include a multimedia module to facilitate the interaction between the multimedia component 808 and the processing component 802.

[0070] The memory 804 is configured to store various types of data to support operations of the electronic device 800. Examples of these data include instructions for any application or methods operating on the electronic device 800, contact data, phonebook data, messages, images, videos, and the like. The memory 804 can be implemented by any type of volatile or non-volatile storage devices or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic or optical disk.

[0071] The power component 806 provides power to the various components of the electronic device 800. The power component 806 can include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power for the electronic device 800.

[0072] The multimedia component 808 includes a screen providing an output interface between the electronic device 800 and a user. In some embodiments, the screen can include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes the touch panel, the screen can be implemented as a touch screen to receive an input signal from a user. The touch panel includes one or more touch sensors to sense a touch, a slide, and a gesture on the touch panel. The touch sensors can not only sense a boundary of a touching or sliding action, but also detect duration and pressure related to the touching or sliding action. In some embodiments, the multimedia component 808 includes a front camera and / or a rear camera. The front camera and / or the rear camera can receive external multimedia data when the device 800 is in an operating mode, such as a shooting mode or a video mode. Each of the front camera and the rear camera can be a fixed optical lens system or have a focal length and optical zoom capability.

[0073] The audio component 810 is configured to output and / or input audio signals. For example, the audio component 810 includes a microphone (MIC) that is configured to receive an external audio signal when the electronic device 800 is in an operational mode, such as a call mode, a recording mode, and a voice recognition mode. The received audio signal can be further stored in the memory 804 or transmitted via the communication component 816. In some embodiments, the audio component 810 also includes a speaker for outputting audio signals.

[0074] The I / O interface 812 provides an interface between the processing component 802 and peripheral interface modules, which can include a keypad, a click wheel, buttons, and so on. The buttons can include, but are not limited to, a home button, a volume button, a start button, and a lock button.

[0075] The sensor component 814 includes one or more sensors for providing status assessments of various aspects of the electronic device 800. For example, the sensor component 814 can detect an open / closed position of the device 800, relative positioning of components, such as a display and a keypad of the electronic device 800, a change of position of the electronic device 800 or a component of the electronic device 800, presence or absence of user contact with the electronic device 800, orientation or acceleration / deceleration / g-force and temperature of the electronic device 800. The sensor component 814 can include an orientation sensor, an acceleration sensor, a proximity sensor, a gesture sensor, a gravity sensor, a biometric sensor, a temperature sensor, a humidity sensor, an illumination sensor, and / or an

[0076] The communication component 816 is configured to facilitate wired or wireless communication between the electronic device 800 and other devices. The electronic device 800 can access a wireless network based on a corresponding communication standard, such as WiFi, a cellular network (e.g., 2G, 3G, 4G, or 5G), or a combination thereof. In an example embodiment, the communication component 816 receives broadcast signals or broadcast operation information from an external broadcast management system via a broadcast channel. In an example embodiment, the communication component 816 also includes a near-field communication (NFC) module to facilitate short-range communication. For example, the NFC module can be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology, and other technology.

[0077] In exemplary embodiments, the electronic device 800 can be implemented by one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), controllers, micro-controllers, microprocessors or other electronic elements, for executing the above-described methods.

[0078] In exemplary embodiments, a non-transitory computer-readable storage medium including instructions, such as the memory 804 including instructions, is also provided, which can be executed by the processor 820 of the electronic device 800 to complete the above-described methods. For example, the non-transitory computer-readable storage medium can be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disc, and an optical data storage device, etc. Embodiments

[0079] Figure 10 Another block diagram of an electronic device 1900 is provided for the present application. For example, the electronic device 1900 can be provided as a server.

[0080] Reference Figure 10 The electronic device 1900 includes a processing component 1922, which further includes one or more processors, and a memory resource represented by a memory 1932, for storing instructions, such as application programs, executable by the processing component 1922. The application programs stored in the memory 1932 can include one or more than one module each corresponding to a set of instructions. In addition, the processing component 1922 is configured to execute the instructions to perform the above-described methods.

[0081] The electronic device 1900 can further include a power component 1926 configured to perform power management of the electronic device 1900, a wired or wireless network interface 1950 configured to connect the electronic device 1900 to a network, and an input / output (I / O) interface 1958. The electronic device 1900 can operate based on an operating system stored in the memory 1932, such as Windows Server™, Mac OS X™, Unix™, Linux™, FreeBSD™ or the like. Embodiments

[0082] In a fifth aspect, the present application shows a computer program product, when instructions in the computer program product are executed by a processor of an electronic device, the electronic device is enabled to perform the method as described in any of the above aspects.

[0083] It should be noted that, in the present document, the terms "comprises", "comprising", or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but can also include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element preceded by "comprises... a" does not, without more constraints, foreclose the existence of additional identical elements in the process, method, article, or apparatus that comprises the element.

[0084] Those skilled in the art can clearly understand that the above-mentioned embodiment method can be realized by means of software and necessary general hardware platform, of course, it can also be realized by hardware, but in many cases, the former is a better embodiment. Based on such understanding, the technical solutions of the present application can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, or optical disc) and includes a plurality of instructions for causing a terminal (which can be a mobile phone, computer, server, air conditioner, or network device) to execute the methods described in the various embodiments of the present application.

[0085] The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific embodiments, which are only illustrative and not restrictive. Those skilled in the art can make many forms under the inspiration of the present application without departing from the scope of the present application and the protection scope of the claims.

[0086] Those skilled in the art can realize that the units and algorithm steps of each example described in conjunction with the embodiments disclosed in the present application can be realized by electronic hardware or a combination of computer software and electronic hardware. Whether the functions are realized in hardware or software depends on the specific application and design constraints of the technical solutions. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.

[0087] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the above-described system, device and unit can refer to the corresponding processes in the foregoing method embodiments, which will not be described here.

[0088] In the embodiments of the present application, it should be understood that the disclosed apparatus and method can be implemented in other manners. For example, the described embodiments of the apparatus are merely schematic. The units as divided can or can not be physically reallocated, and can or can not be components independent of each other. In some embodiments, a plurality of units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections can be indirect couplings or communication connections through some interfaces, devices or units, and can be in electric, mechanical or other forms.

[0089] The units described as separate components can or can not be physically separate, and the components shown as units can or can not be physical units, i.e., can be located in one place, or can be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purposes of the embodiments.

[0090] In addition, each functional unit in the various embodiments of the present application can be integrated into a processing unit, or each unit can be a physically independent unit, or two or more units can be integrated into a unit.

[0091] If the functions are realized in the form of software function units and sold or used as independent products, they can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the present application can be embodied in the form of a software product, and the computer software product is stored in a storage medium, and includes a number of instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, ROM, RAM, magnetic disk or optical disk, and various program codes that can be stored in the medium.

[0092] The above is merely specific embodiments of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art can easily think of changes or replacements within the technical scope disclosed in the present application, which should be covered within the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.< / headerdef>

Claims

1. A method for editing earthquake batch processing jobs using a scripting language, characterized in that, The method includes: Obtain the earthquake operation requirements to be processed, and determine the earthquake operation projects and database information based on the earthquake operation requirements; Each module object in the pre-established earthquake batch processing job framework is initialized. The earthquake batch processing job framework is a scripting language framework that includes a pre-set core library, module library and toolchain. Determine the standard type parameters corresponding to each module object, wherein the standard type parameters are standard types that are pre-set for each parameter; The operation topology of the earthquake batch processing operation framework is initialized; Based on earthquake operation projects and database information, target module objects are selected from the earthquake batch processing operation framework and added to the target operation; Output the module topology diagram according to the debugging needs, and generate the target operation corresponding to the earthquake operation requirements by calling the XML format file.

2. The earthquake batch processing job editing method based on a scripting language according to claim 1, characterized in that, Before the steps of obtaining the seismic operation requirements to be processed and determining the seismic operation projects and database information based on the seismic operation requirements, the method further includes: Define a standard top-level character class, use a top-level character generation tool to read all top-level characters from the standard top-level character file into memory, and output them in a formatted Python file; the attributes of the standard top-level character class shall include at least: name, number, attention level, type, display, and description.

3. The earthquake batch processing job editing method based on a scripting language according to claim 1, characterized in that, Before the steps of obtaining the seismic operation requirements to be processed and determining the seismic operation projects and database information based on the seismic operation requirements, the method further includes: Define a PDL parameter constant class, and use a PDL parsing tool to convert the PDL file into a PDL object of Python type. The parameter constants include at least the tags and attributes in the PDL file, and the PDL object includes at least the module, parameters, parameter set and parameter dependency information. Using the Python type PDL object as input, a PDL generation tool is used to derive a module class from the module base class. All module information is written into the module object and multiple parameter classes. Each parameter in the multiple parameter classes is derived from the parameter base class, and parameter information is written one by one according to the parameter type and parameter value to generate the target module file corresponding to the target module object.

4. The earthquake batch processing job editing method based on a scripting language according to claim 1, characterized in that, The core library includes a parameter system unit, a dependency management unit, a module model unit, and a job management unit; The parameter system unit defines a parameter base class and a module base class, and supports type validation, value range constraints, and automatic parameter value conversion. The dependency management unit establishes logical relationships between parameters through the GEDependency class, supporting dynamic dependency resolution; The module model unit encapsulates input / output channels, parameter sets, and job fragment generation interfaces based on the module base class, supporting chained connections between modules; The job management unit integrates job metadata management, topology map generation, and XML output functions based on the GEJob class, and supports multi-module combination and arrangement.

5. The earthquake batch processing job editing method based on a scripting language according to claim 1, characterized in that, The module library: It includes batch processing modules in the GeoEast environment. Each module's Python file contains a module class derived from the module base class GEModule and multiple parameter classes derived from the parameter base class GEParameter. The initial value data for the modules and parameters are obtained from the module's PDL file.

6. The earthquake batch processing job editing method based on a scripting language according to claim 5, characterized in that, The module library automatically converts GeoEast module description files into Python file modules through a toolchain, maintaining the semantic consistency of parameter definitions with the original modules, mapping PDL parameter types to Python data structure types, supporting type hints in a smart editor, and exporting each module as a Python module package.

7. The earthquake batch processing job editing method based on a scripting language according to claim 1, characterized in that, The toolchain includes: a standard header generation tool, a batch processing module generation tool, and a PDL parsing tool; The standard track header generation tool takes a standard track header file as input, automatically generates a track header module, and outputs it to the core library directory by default. It supports quick querying and referencing of track header attributes. The batch module generation tool takes a batch module PDL file as input, automatically generates a Python version of the module file, and outputs it to the module library directory by default. The PDL parsing tool parses the PDL file and outputs it as a Python object of PDL.

8. A scripting language-oriented earthquake batch processing job editing device, characterized in that, The device includes: The earthquake operation requirement determination unit is used to acquire earthquake operation requirements to be processed and determine earthquake operation items and database information based on the earthquake operation requirements. The framework module initialization unit is used to initialize each module object in the pre-established earthquake batch processing job framework, which is a scripting language framework including a preset core library, module library and toolchain. The module parameter determination unit is used to determine the standard type parameters corresponding to each module object, wherein the standard type parameters are standard types that are pre-set for each parameter; The topology initialization unit is used to initialize the operational topology of the seismic batch processing operation framework. The target module selection unit is used to select target module objects from the earthquake batch processing operation framework and add them to the target operation based on the earthquake operation project and database information; The target job generation unit is used to output the topology diagram of the module according to the debugging needs, and to generate the target job corresponding to the earthquake operation requirements by calling the XML format file.

9. An electronic device, characterized in that, include: A processor, a memory, and a computer program stored in the memory and executable on the processor, wherein the computer program, when executed by the processor, implements the method as described in any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the method as described in any one of claims 1 to 7.

11. A computer program product, characterized in that, When the instructions in the computer program product are executed by the processor of the electronic device, the electronic device implements the method as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Method and system for detecting source area of mineralization system based on big data mining, and medium

    CN118330771A

  • Multi-programming language-oriented seismic batch processing data stream method and framework

    CN119356643A

  • PySpark-based seismic data batch processing method and device

    CN120122173A

  • Comprehensive quality control method for VSP processing interpretation data and related equipment

    CN120233434A

  • Method and apparatus for determining velocity of subsurface medium, and device

    US20250164657A1

Cited By

  • Seismic operation process visualization and parameter dynamic editing system and method based on Vue3, and medium

    CN122152315A

  • Seismic operation process visualization and parameter dynamic editing system and method based on vue3 and medium

    CN122152315B