OSG-based seismic data three-dimensional display method

By using the open source OSG framework, the traditional two -dimensional display cannot show the three -dimensional distribution of seismic data, realize the efficient three -dimensional display and interactive operation of seismic data, reduce development costs and improve data processing efficiency.

CN119359881AInactive Publication Date: 2025-01-24SICHUAN WEIBANG XINCHUANG TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202411855655.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-17
Publication Date
2025-01-24
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

Traditional two-dimensional displays cannot show the relative distribution of seismic data in three-dimensional space, and the cost of three-dimensional drawing of commercial or self-developed engines is high.

Method used

Adopt an open source OSG framework to realize the three -dimensional display of seismic data by reading segy file data, data pre -processing, creating OSG scenario objects, setting rendering parameters, and rendering 3D objects.

Benefits of technology

The comprehensive three -dimensional space structure display of seismic data is realized, with strong interaction, can freely rotate, translate, and zoom view data, significantly reduce development costs, and improve data processing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119359881A_ABST
    Figure CN119359881A_ABST
Patent Text Reader

Abstract

The invention discloses an OSG-based seismic data three-dimensional display method, belongs to the technical field of data display, and mainly solves the problem that the traditional two-dimensional display only displays a certain surface or slice and cannot present the relative distribution condition of a plurality of surfaces in a three-dimensional space. The method comprises the following steps: S1, reading SEGY file data; s2, data preprocessing; s3, creating an OSG scene object; s4, setting rendering parameters; and S5, rendering the 3D object. According to the seismic data three-dimensional visualization method, the three-dimensional space structure of geological data can be comprehensively displayed, the interactivity is high, view data can be freely rotated, translated and zoomed, and users are helped to better understand and explain seismic data. And through a three-dimensional visualization technology, large-scale geological data can be processed and analyzed more efficiently, so that the data processing efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention belongs to the technical field of data display and processing, and in particular, relates to a three-dimensional display method of seismic data based on OSG. Background Art

[0002] Seismic data plays an important role in geological exploration and production. Through the three-dimensional visualization of seismic data, we can more intuitively understand these structures, such as faults and rock layers, and can more accurately interpret seismic data and more easily identify the shape and direction of geological structures. Three-dimensional visualization is an important part of seismic data processing. Traditional two-dimensional display only displays a certain surface or slice, and cannot present the relative distribution of multiple surfaces in three-dimensional space. At the same time, the software in the industry mostly uses commercial or self-developed engines for three-dimensional rendering of seismic data, which is costly. Therefore, the use of the open source OSG framework based on the LGPL protocol to realize the three-dimensional display of seismic data has practical significance in software development; among them, OSG stands for OpenSceneGraph, which is an open source, cross-platform, high-performance 3D graphics rendering engine, widely used in game development, virtual reality, scientific visualization and simulation training and other fields. Summary of the invention

[0003] The purpose of the present invention is to provide a three-dimensional display method for seismic data based on OSG, which mainly solves the problem that traditional two-dimensional display only displays one surface or slice and cannot present the relative distribution of multiple surfaces in three-dimensional space.

[0004] To achieve the above purpose, the technical solution adopted by the present invention is as follows: A method for three-dimensional display of seismic data based on OSG, comprising the following steps: S1, read SEGY file data: provide an interface to read the header information and seismic trace data in the SEGY file and read the data into the memory; S2, data preprocessing: after reading the SEGY file, the original seismic data is converted into a 3D rendering format; S3, create OSG scene objects: after processing the data, use OSG's application programming interface API to create 3D objects; S4, set rendering parameters: make the model rendering more realistic; S5, rendering 3D objects: using the OsgViewer::Viewer class in the OSG library to create a view window, calling the run() method to render the created object, rendering the created 3D object onto the display medium, and obtaining a 3D representation of the seismic data.

[0005] Furthermore, in step S2, the data preprocessing includes data loading and data display; the data loading is implemented in the following steps: S210, data import: after reading the SEGY file, preview and import the SEGY data header; S211, Inline direction loading: provides partial seismic trace data loading for a certain line in the Inline direction; S212, Crossline direction loading: provides partial seismic trace data loading along a certain line in the Crossline direction; S213, isochronous slice loading: provides horizontal plane data loading at a certain time; S214, data display processing: normalization, interpolation, and filtering of seismic data to prepare for three-dimensional display.

[0006] Furthermore, in the present invention, the data display includes data volume bounding box display, coordinate axis navigation display, seismic profile and isochronous slice display, volume rendering display, interactive operation, visibility setting, color spectrum and transparency setting; the specific implementation steps are as follows: S220, data volume bounding box display: display a wireframe according to the loaded data volume information to indicate Inline, Crossline, and time direction; S221, coordinate axis navigation display: synchronously display the three directions of the NEZ coordinate system of the data; S222, seismic profile and isochronous slice display: rendering and display of a seismic profile or isochronous slice; S223, volume rendering display: realizing volume rendering display of the data volume; S224, interactive operation: realize translation, rotation, and scaling operations; S225, visibility setting: realize visibility control of real data; S226, color spectrum and transparency setting: realize color value mapping and transparency setting of data.

[0007] Furthermore, in step S222, the specific implementation method of the seismic profile and isochronous slice display is as follows: 1) Initialize the scene display, use the osg::Group class to create the scene root node, add a point light source; draw a rectangular wireframe of the seismic data range according to the data loading information, and use the HUD technology in OSG to draw the coordinate direction axis; create a view through osgViewer::View and add the scene root node; 2) Add a trackball manipulator and event handler to the scene view; 3) Display of seismic data along Inline and Crossline sections and reading and preprocessing of isochronous slice data; 4) Build a texture plane node and add it to the scene to associate the texture layer data; 5) According to the selected color spectrum, build vertex shader and fragment shader, and realize the transparency and fragment color calculation of texture through texture2D; 6) Update the texture plane node and create an osg::Geometry texture plane node; set the rectangular vertex information, color information, and normal information of the created node, and use GL_QUADS to draw the rectangular surface primitive; 7) Complete the scene rendering.

[0008] Furthermore, in the present invention, the texture layer data includes three-channel RGB pixel values ​​constructed by osg::Image, and the pixel values ​​are bound to the texture plane node by osg::Texture2D.

[0009] Furthermore, in step S223, the specific implementation method of volume rendering display is as follows: 1) Use osg::Image to construct voxel data and realize the mapping of voxel data for volume rendering; 2) Create a layer object through osgVolume::ImageLayer to store voxel data and rendering properties; 3) Create object child nodes through osgVolume::VolumeTile to loosely couple 3D image data with rendering algorithms, allowing dynamic insertion of rendering technology at runtime, and associate layer objects through the interface setLayer; 4) Volume rendering through the osgVolume::VolumeTechnique class; 5) Create a volume rendering node through the osgVolume::Volume class to set the volume rendering properties and add the object child node created by osgVolume::VolumeTile; 6) Add the created volume rendering node to the scene graph, and the OSG rendering engine automatically performs volume rendering.

[0010] Compared with the prior art, the present invention has the following beneficial effects: (1) The present invention uses the open source OSG library to realize the three-dimensional display of seismic data. OSG uses the scene graph as its core data structure, which has the advantages of modular design, easy expansion, and cross-platform, and can significantly reduce development costs.

[0011] (2) The three-dimensional visualization of seismic data achieved by the present invention can fully display the three-dimensional spatial structure of geological data, and has strong interactivity, and can freely rotate, translate, and zoom the view data, helping users to better understand and interpret seismic data. Moreover, through the three-dimensional visualization technology, large-scale geological data can be processed and analyzed more efficiently, thereby improving data processing efficiency.

[0012] (3) The OSG framework of the present invention is based on OpenGL (Open Graphics Library, which is an industrial standard in the field of graphics and a set of cross-programming language, cross-platform, professional graphics programming interfaces). It can make full use of the capabilities of modern graphics processors (GPUs) and make use of some advanced functions of OSG and OpenGL features, such as view culling, occlusion culling, multi-threaded rendering, shader technology, etc., to achieve efficient rendering of large-scale and complex 3D geological scenes. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] Figure 1 It is a schematic diagram of the process of the present invention. DETAILED DESCRIPTION

[0014] The present invention is further described below in conjunction with the accompanying drawings and embodiments. The embodiments of the present invention include but are not limited to the following embodiments.

[0015] like Figure 1 As shown, the present invention discloses a three-dimensional display method of seismic data based on OSG, comprising the following steps: first, read the SEGY file data, wherein the SEGY format is a standard format for storing seismic exploration data, which is one of the standard formats in the field of seismic exploration and is widely used for storing and exchanging seismic data. SEGY files are generally large and cannot be loaded into memory all at once. SEGY files usually consist of two parts: a header and a data part. It contains a large amount of seismic trace data, which constitute two-dimensional section data and three-dimensional volume data. The two-dimensional display can be displayed along the Inline direction or the Crossline direction and the horizontal slice (isochronous slice). Among them, the Inline direction represents the main survey line, which is defined as the line number, usually perpendicular to the direction of the geological structure; the Crossline direction represents the connecting line, which is defined as the CDP track number, usually along the direction of the geological structure.

[0016] The present invention reads the data into the memory by providing an interface for reading the header information and seismic trace data in the SEGY file. After reading the SEGY file, some preprocessing is required for the data, such as normalization, filtering, interpolation, etc. The original seismic data is converted into a 3D rendering format. This step is mainly implemented by data loading and data display. The loading of the seismic data in the SEGY format is defined according to its binary format, and the software reads the seismic data to be displayed from the hard disk. These data are usually stored in the order of Inline, Crossline and time. It is necessary to provide data interfaces in three cases. Since the seismic data in the SEGY format is usually very large, the continuity of the data needs to be considered when reading to improve the reading efficiency and reduce the memory usage. Specifically, the seismic trace data is read in sequence, and one or more complete traces are read at one time as much as possible. This strategy of "block loading" only loads the data blocks that are currently required to be displayed into the memory. When the data blocks are no longer needed, they will be unloaded from the memory to release the memory space.

[0017] The steps for implementing data loading in the present invention are as follows: (1) Data import: After reading the SEGY file, preview and import the SEGY data header; (2) Inline direction loading: provides loading of partial seismic trace data of a certain line in the inline direction; (3) Crossline direction loading: provides partial seismic trace data loading along a certain line in the crossline direction; (4) Isochronous slice loading: provides horizontal plane data loading at a certain time; (5) Data display processing: Normalization, interpolation, and filtering of seismic data to prepare for three-dimensional display.

[0018] The data display includes data volume bounding box display, coordinate axis navigation display, seismic profile and isochronous slice display, volume rendering display, interactive operation, visibility setting, color spectrum and transparency setting; the specific implementation steps are as follows: (1) Data volume bounding box display: Based on the loaded data volume information, a wireframe is displayed to indicate the Inline, Crossline, and time directions; (2) Coordinate axis navigation display: Synchronously display the three directions of the NEZ coordinate system of the data; (3) Display of seismic profiles and isochronous slices: Rendering and display of a seismic profile or isochronous slice; the specific implementation method is as follows: a) Initialize the scene display, use the osg::Group class to create the scene root node, add a point light source; draw a rectangular wireframe of the seismic data range according to the data loading information, and use the HUD technology in OSG to draw the coordinate direction axis; create a view through osgViewer::View and add the scene root node; among them, osg::Group is a class in the OSG graphics rendering engine, which is used to organize and manage the scene model subnodes. HUD technology stands for Head-Up Display, which is used to display 2D graphics such as text, images, etc. on top of the 3D scene, and is achieved by adding the HUD camera in OSG. osgViewer::View is a class used to create views in the OSG graphics rendering engine.

[0019] b) Add trackball manipulator and event handler to the scene view; c) Display of seismic data along Inline and Crossline sections and reading and preprocessing of isochronous slice data; each time reading is required, a block loading strategy is adopted to ensure that the data block can be loaded in time when needed and unloaded in time when not needed.

[0020] d) Construct a texture plane node, add it to the scene, and associate it with the texture layer data; the texture layer data includes three-channel RGB pixel values ​​constructed through osg::Image, and the pixel values ​​are bound to the texture plane node through osg::Texture2D. Among them, osg::Image is a class in the OSG graphics rendering engine, which is used to encapsulate and store texture image data. osg::Texture2D is also a class in the OSG graphics rendering engine, which is used to create 2D texture objects.

[0021] e) According to the selected color spectrum, build vertex shader and fragment shader, realize the transparency and fragment color calculation of texture through texture2D, and apply it to the surface of geometry; texture2D is a built-in function of shader.

[0022] f) Update the texture plane node and create an osg::Geometry texture plane node; set the rectangle vertex information, color information, and normal information of the created node, and use GL_QUADS to draw the rectangular surface primitive; osg::Geometry is a class in the OSG graphics rendering engine, which is used to create a texture plane node geometry object. GL_QUADS is one of the basic primitive types, and a quadrilateral is drawn by the specified 4 vertices.

[0023] g) Complete scene rendering.

[0024] (4) Volume rendering display: realize volume rendering display of data volume; the specific implementation method is as follows: a) Use osg::Image to construct voxel data and realize the mapping of voxel data for volume rendering.

[0025] b) Create a layer object through osgVolume::ImageLayer to store voxel data and rendering properties; osgVolume::ImageLayer is a class in the OSG graphics rendering engine that is used to create layer objects.

[0026] c) Create an object child node through osgVolume::VolumeTile to loosely couple the 3D image data with the rendering algorithm, allowing dynamic insertion of rendering technology at runtime, and associate layer objects through the interface setLayer; among them, osgVolume::VolumeTile is a class in the OSG graphics rendering engine.

[0027] d) Volume rendering is performed through the osgVolume::VolumeTechnique class. osgVolume::VolumeTechnique is a class used to control volume rendering in OSG. It defines specific volume rendering techniques, such as ray casting, texture slicing, etc., and is responsible for updating the rendering algorithm and data scheduling.

[0028] e) Create a volume rendering node through the osgVolume::Volume class, set the volume rendering attributes, and add the object child node created by osgVolume::VolumeTile. Among them, osgVolume::Volume is a class in the OSG graphics rendering engine.

[0029] f) Add the created volume rendering node to the scene graph, and OSG's rendering engine automatically performs volume rendering.

[0030] (5) Interactive operations: realize translation, rotation, and scaling operations; (6) Display and hide settings: realize the display and hide control of real data; (7) Color spectrum and transparency setting: realize color value mapping and transparency setting of data.

[0031] After the above data processing, use OSG's API to create 3D objects; create an osg::Geometry object to represent the 3D shape of the seismic data, and then use osg::Texture2D and osg::Texture3D objects to add texture to this shape. Then set rendering parameters: such as lighting, shadows, and viewing angles to make the model rendering more realistic. Among them, osg::Texture3D is the class used to create 3D objects in OSG.

[0032] Finally, create an osgViewer::Viewer object and call the run() method to render the created object. Render the created 3D object to the display medium to obtain the 3D representation of the seismic data. The run() method is used to render the scene object. It is the entry point for the OSG rendering loop, including event detection and processing, scene graph update, clipping operations and scene graph traversal, rendering the 3D scene to the window, etc.

[0033] The above embodiment is only one of the preferred implementation modes of the present invention and should not be used to limit the protection scope of the present invention. Any changes or modifications that are made to the main design concept and spirit of the present invention and have no substantive significance, and the technical problems they solve are still consistent with the present invention, should be included in the protection scope of the present invention.

Claims

1. A three-dimensional display method of seismic data based on OSG, characterized in that: The following steps are involved: S1, read SEGY file data: provide an interface to read the header information and seismic trace data in the SEGY file and read the data into the memory; S2, data preprocessing: after reading the SEGY file, the original seismic data is converted into a 3D rendering format; S3, create OSG scene objects: after processing the data, use OSG's application programming interface API to create 3D objects; S4, set rendering parameters: make the model rendering more realistic; S5, rendering 3D objects: using the OsgViewer::Viewer class in the OSG library to create a view window, calling the run() method to render the created object, rendering the created 3D object onto the display medium, and obtaining a 3D representation of the seismic data.

2. The method for three-dimensional display of seismic data based on OSG according to claim 1, characterized in that: In step S2, the data preprocessing includes data loading and data display; the data loading is implemented in the following steps: S210, data import: after reading the SEGY file, preview and import the SEGY data header; S211, Inline direction loading: provides partial seismic trace data loading for a certain line in the Inline direction; S212, Crossline direction loading: provides partial seismic trace data loading along a certain line in the Crossline direction; S213, isochronous slice loading: provides horizontal plane data loading at a certain time; S214, data display processing: normalization, interpolation, and filtering of seismic data to prepare for three-dimensional display.

3. The method for three-dimensional display of seismic data based on OSG according to claim 2, characterized in that: The data display includes data volume bounding box display, coordinate axis navigation display, seismic profile and isochronous slice display, volume rendering display, interactive operation, visibility setting, color spectrum and transparency setting; the specific implementation steps are as follows: S220, data volume bounding box display: display a wireframe according to the loaded data volume information to indicate Inline, Crossline, and time direction; S221, coordinate axis navigation display: synchronously display the three directions of the NEZ coordinate system of the data; S222, seismic profile and isochronous slice display: rendering and display of a seismic profile or isochronous slice; S223, volume rendering display: realizing volume rendering display of the data volume; S224, interactive operation: realize translation, rotation, and scaling operations; S225, visibility setting: realize visibility control of real data; S226, color spectrum and transparency setting: realize color value mapping and transparency setting of data.

4. The method for three-dimensional display of seismic data based on OSG according to claim 3, characterized in that: In step S222, the specific implementation method of displaying the seismic profile and isochronous slice is as follows: 1) Initialize the scene display, use the osg::Group class to create the scene root node, add a point light source; draw a rectangular wireframe of the seismic data range according to the data loading information, and use the HUD technology in OSG to draw the coordinate direction axis; create a view through osgViewer::View and add the scene root node; 2) Add a trackball manipulator and event handler to the scene view; 3) Display of seismic data along Inline and Crossline sections and reading and preprocessing of isochronous slice data; 4) Build a texture plane node and add it to the scene to associate the texture layer data; 5) According to the selected color spectrum, build vertex shader and fragment shader, and realize the transparency and fragment color calculation of texture through texture2D; 6) Update the texture plane node and create an osg::Geometry texture plane node; set the rectangular vertex information, color information, normal information of the created node, and use GL_QUADS to draw the rectangular surface primitive; 7) Complete the scene rendering.

5. The method for three-dimensional display of seismic data based on OSG according to claim 4, characterized in that: The texture layer data includes three-channel RGB pixel values ​​constructed through osg::Image, and the pixel values ​​are bound to the texture plane node through osg::Texture2D.

6. The method for three-dimensional display of seismic data based on OSG according to claim 5, characterized in that: In step S223, the specific implementation method of volume rendering display is as follows: 1) Use osg::Image to construct voxel data and realize the mapping of voxel data for volume rendering; 2) Create a layer object through osgVolume::ImageLayer to store voxel data and rendering properties; 3) Create object child nodes through osgVolume::VolumeTile to loosely couple 3D image data with rendering algorithms, allowing dynamic insertion of rendering technology at runtime, and associate layer objects through the interface setLayer; 4) Volume rendering through the osgVolume::VolumeTechnique class; 5) Create a volume rendering node through the osgVolume::Volume class to set the volume rendering properties and add the object child node created by osgVolume::VolumeTile; 6) Add the created volume rendering node to the scene graph, and the OSG rendering engine automatically performs volume rendering.

Citation Information

Patent Citations

  • Method for three-dimensional display of two-dimensional earthquake profile

    CN105096385A

  • Three-dimensional scene generation method based on OSG three-dimensional rendering engine preprocessing and device thereof

    CN105631925A

  • Urban earthquake secondary fire simulation method and system

    CN108564867A