WO2015187133A1 - Integrating external algorithms into a flexible framework for imaging visualization data - Google Patents
Integrating external algorithms into a flexible framework for imaging visualization data Download PDFInfo
- Publication number
- WO2015187133A1 WO2015187133A1 PCT/US2014/040721 US2014040721W WO2015187133A1 WO 2015187133 A1 WO2015187133 A1 WO 2015187133A1 US 2014040721 W US2014040721 W US 2014040721W WO 2015187133 A1 WO2015187133 A1 WO 2015187133A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- visualization
- algorithm
- visualization algorithm
- api
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating three-dimensional [3D] models or images for computer graphics
- G06T19/20—Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three-dimensional [3D] modelling for computer graphics
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three-dimensional [3D] modelling for computer graphics
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2012—Colour editing, changing, or manipulating; Use of colour codes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2024—Style variation
Definitions
- the present disclosure generally relates to systems and methods for integrating external algorithms into a flexible framework for imaging visualization data. More particularly, the present disclosure relates to integrating external algorithms into a flexible framework for imaging visualization data without altering the external algorithm to fit the flexible framework.
- Typical commercialized petroleum reservoir visualization software helps petroleum and reservoir engineers and geoscientists see the results from static or dynamic simulations and visually compare iterative "what if scenarios.
- Many reservoir models are often described as a disconnected curvilinear grid volume, also called a "3D grid," where each grid cell has clearly defined hexahedronal geometry.
- the software shows different views of the reservoir with particular attributes (e.g. gas saturation) of the reservoir. The edges, top, and bottom of the reservoir can be seen by rotating the view.
- Visualization software typically allows the representation of any simulation attribute, instant switching between attributes, and the ability to set data thresholds with unique displays of cells that are restricted to specified data
- a visualization model may include a single layer, or multi-layer views wherein cells are stripped away to reveal the inside of the model. They can also be constructed to show a full display of corner points and local refinement for grid volumes.
- a 3D reservoir model may be presented as hexahedral grid cells, which can be topologically structured or unstructured and geometrically regular or irregular. Curvilinear grid volumes, which are topologically structured and geometrically irregular, are more typical in reservoirs and are therefore, of particular interest.
- 3D grids are I layers thick, J cells wide, K cells deep, which contain cells with coordinates (I, J, K) referred to as grid coordinates. Grid Coordinates (I, J, K) are typically used in an index domain, while Cartesian (world) coordinates (x, y, z) are typically used in a sampling domain.
- FIG. 1 is a block diagram illustrating one embodiment of a computer system for implementing the present disclosure.
- FIG. 2A is a block diagram illustrating one embodiment of a software program for implementing the present disclosure.
- FIG. 2B is a block diagram illustrating an architecture for the software program in FIG. 2A.
- FIGS. 3A-3D are flow diagrams illustrating one embodiment of a method for implementing the present disclosure.
- FIG. 4 is an exemplary graphical user interface illustrating the installation of an external visualization algorithm according to step 306 in FIG. 3A.
- FIG. 5 is a display of a visualization algorithm probe illustrating an exemplary visualization algorithm display created according step 374 in FIG. 3D.
- the present disclosure overcomes one or more deficiencies in the prior art by providing systems and methods for integrating external algorithms into a flexible framework for imaging visualization data without altering the external algorithm to fit the flexible framework.
- the present disclosure includes a method for integrating external algorithms into a flexible framework for imaging visualization data, which comprises: i) selecting a valid visualization algorithm API; ii) selecting a visualization algorithm for the valid visualization algorithm API; iii) executing the visualization algorithm using visualization data and a computer processor; iv) translating results for the executed visualization algorithm to geometry primitives; v) applying interpolated attributes of the visualization data to the geometry primitives; vi) applying surface normal vectors to the interpolated attributes applied to the geometry primitives; vii) adding the surface normal vectors applied to the interpolated attributes to a visualization algorithm display; and viii) creating a new visualization algorithm display for a visualization algorithm probe using the surface normal vectors added to the visualization algorithm display.
- the present disclosure includes a non-transitory program carrier device tangibly carrying computer executable instructions for integrating external algorithms into a flexible framework for imaging visualization data, the instructions being executable to implement: i) selecting a valid visualization algorithm API; ii) selecting a visualization algorithm for the valid visualization algorithm API; iii) executing the visualization algorithm using visualization data; iv) translating results for the executed visualization algorithm to geometry primitives; v) applying interpolated attributes of the visualization data to the geometry primitives; vi) applying surface normal vectors to the interpolated attributes applied to the geometry primitives; vii) adding the surface normal vectors applied to the interpolated attributes to a visualization algorithm display; and viii) creating a new visualization algorithm display for a visualization algorithm probe using the surface normal vectors added to the
- the present disclosure includes a non-transitory program carrier device tangibly carrying computer executable instructions for integrating external algorithms into a flexible framework for imaging visualization data, the instructions being executable to implement: i) selecting a valid visualization algorithm API; ii) selecting a visualization algorithm for the valid visualization algorithm API; iii) executing the visualization algorithm using visualization data; iv) translating results for the executed visualization algorithm to geometry primitives; v) applying interpolated attributes of the visualization data to the geometry primitives; vi) applying surface normal vectors to the interpolated attributes applied to the geometry primitives; vii) adding the surface normal vectors applied to the interpolated attributes to a visualization algorithm display; viii) creating a new visualization algorithm display for a visualization algorithm probe using the surface normal vectors added to the visualization algorithm display; ix) converting the visualization data to an acceptable format using an input data factory from the valid visualization algorithm API; x) creating the visualization algorithm probe using the converted visualization data; and xi) creating the visualization algorithm display for the visualization algorithm probe
- the present disclosure may be implemented through a computer-executable program of instructions, such as program modules, generally referred to as software applications or application programs executed by a computer.
- the software may include, for example, routines, programs, objects, components and data structures that perform particular tasks or implement particular abstract data types.
- the software forms an interface to allow a computer to react according to a source of input.
- DecisionSpace ® which is a commercial software application marketed by Landmark Graphics Corporation, may be used as an interface application to implement the present disclosure.
- the software may also cooperate with other code segments to initiate a variety of tasks in response to data received in conjunction with the source of the received data.
- the software may be stored and/or carried on any variety of memory such as CD- ROM, magnetic disk, bubble memory and semiconductor memory (e.g. various types of RAM or ROM). Furthermore, the software and its results may be transmitted over a variety of carrier media such as optical fiber, metallic wire and/or through any of a variety of networks, such as the Internet.
- memory such as CD- ROM, magnetic disk, bubble memory and semiconductor memory (e.g. various types of RAM or ROM).
- the software and its results may be transmitted over a variety of carrier media such as optical fiber, metallic wire and/or through any of a variety of networks, such as the Internet.
- FIG. 1 a block diagram illustrates one embodiment of a system for implementing the present disclosure on a computer.
- the system includes a computing unit, sometimes referred to as a computing system, which contains memory, application programs, a client interface, a video interface, and a processing unit.
- the computing unit is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the disclosure.
- the memory primarily stores the application programs, which may also be described as program modules containing computer-executable instructions, executed by the computing unit for implementing the present disclosure described herein and illustrated in FIGS. 1-5.
- the memory therefore, includes a flexible framework integration module, which enables the steps described in reference to FIGS. 3A-D, except steps 302, 304, 308, 312-319, 334, 340 and 374.
- the flexible framework integration module may integrate functionality from the remaining application programs illustrated in FIG. 1.
- DecisionSpace ® may be used as an interface application to perform the remaining steps in FIGS. 3A-3D.
- Interface application may be used as interface application, other interface applications may be used, instead, or the flexible framework integration module may be used as a stand-alone application.
- the computing unit typically includes a variety of computer readable media.
- computer readable media may comprise computer storage media and communication media.
- the computing system memory may include computer storage media in the form of volatile and/or nonvolatile memory such as a read only memory (ROM) and random access memory (RAM).
- ROM read only memory
- RAM random access memory
- a basic input/output system (BIOS) containing the basic routines that help to transfer information between elements within the computing unit, such as during start-up, is typically stored in ROM.
- the RAM typically contains data and/or program modules that are immediately accessible to, and/or presently being operated on, the processing unit.
- the computing unit includes an operating system, application programs, other program modules, and program data.
- the components shown in the memory may also be included in other removable/nonremovable, volatile/nonvolatile computer storage media or they may be implemented in the computing unit through an application program interface ("API") or cloud computing, which may reside on a separate computing unit connected through a computer system or network.
- API application program interface
- a hard disk drive may read from or write to nonremovable, nonvolatile magnetic media
- a magnetic disk drive may read from or write to a removable, nonvolatile magnetic disk
- an optical disk drive may read from or write to a removable, nonvolatile optical disk such as a CD ROM or other optical media.
- Other removable/nonremovable, volatile/nonvolatile computer storage media that can be used in the
- 136 - 107803 lv4 exemplary operating environment may include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like.
- the drives and their associated computer storage media discussed above provide storage of computer readable instructions, data structures, program modules and other data for the computing unit.
- a client may enter commands and information into the computing unit through the client interface, which may be input devices such as a keyboard and pointing device, commonly referred to as a mouse, trackball or touch pad. Input devices may include a microphone, joystick, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit through the client interface that is coupled to a system bus, but may be connected by other interface and bus structures, such as a parallel port or a universal serial bus (USB).
- USB universal serial bus
- a monitor or other type of display device may be connected to the system bus via an interface, such as a video interface.
- a graphical user interface may also be used with the video interface to receive instructions from the client interface and transmit instructions to the processing unit.
- computers may also include other peripheral output devices such as speakers and printer, which may be connected through an output peripheral interface.
- FIG. 2A a block diagram of a program for implementing the
- FIG. 2A One embodiment of a software or program structure 200 for implementing the present disclosure is shown in FIG. 2A.
- Suitable operating systems 202 include, for example, the UNIX ® operating system, or Windows NT ® from Microsoft Corporation, or other operating systems as would be apparent to one of skill in the relevant art.
- Windowing software 204 overlays operating system 202.
- Windowing software 204 is used to provide various menus and windows to facilitate interaction with the user, and to obtain user input and instructions.
- Windowing software 204 can include, for example, Microsoft WindowsTM, X Window SystemTM (registered trademark of Massachusetts Institute of Technology), and MOTIFTM (registered trademark of Open Software Foundation Inc.).
- Microsoft WindowsTM registered trademark of Massachusetts Institute of Technology
- MOTIFTM registered trademark of Open Software Foundation Inc.
- a 3D graphics library 206 overlays Windowing software 204.
- the 3D graphics library 206 is an API for 3D computer graphics.
- the functions performed by 3D graphics library 206 include, for example, geometric and raster primitives, RGBA or color index mode, display list or immediate mode, viewing and modeling transformations, lighting and shading, hidden surface removal, alpha blending (translucency), anti-aliasing, texture mapping, atmospheric effects (fog, smoke, haze), feedback and selection, stencil planes, and accumulation buffer.
- a particularly preferred 3D graphics library 206 is OpenGL ® .
- the OpenGL ® API is a well laiown multi-platform industry standard that is hardware, window, and operating system
- OpenGL is designed to be callable from C, C++, FORTRAN, Ada and JavaTM programming languages. OpenGL ® performs each of the functions listed above for 3D graphics library 206. Some commands in OpenGL ® specify geometric objects to be drawn, and others control how the objects are handled. All elements of the OpenGL ® state, even the contents of the texture memory and the frame buffer, can be obtained by a client application using OpenGL ® . OpenGL ® and the client application may operate on the same or different machines because OpenGL ® is network transparent.
- OpenGL ® is described in more detail in the OpenGL ® Programming Guide (ISBN: 0-201-63274-8) and the OpenGL ® Reference Manual (ISBN: 0-201- 63276-4), the entirety of both of which are incorporated herein by reference.
- 3D graphics utilities 208 overlay the 3D graphics library 206.
- the 3D graphics utilities 208 is an API for creating real-time, multi-processed 3D visual simulation graphics applications.
- the 3D graphics utilities 208 provide functions that bundle together graphics library state control functions such as lighting, materials, texture, and transparency. These functions track state and the creation of display lists that can be rendered later, A particularly preferred set of 3D graphics utilities is offered in Picasso.
- a flexible framework integration program 210 overlays 3D graphics utilities 208 and the 3D graphics library 206.
- the flexible framework integration program 210 interacts with, and uses the functions carried out by, each of the 3D graphics utilities 208, the 3D graphics library 206, the windowing software 204, and the operating system 202 in a manner known to one of skill in the relevant art.
- the flexible framework integration program 210 of the present disclosure is preferably written in an object oriented programming language to allow the creation and use of
- the flexible framework integration program 210 creates one or more probe objects. As noted above, the probe objects created and used by the flexible framework integration program 210 are also referred to herein as grid probes or probes. Flexible framework integration program 210 manipulates the probe objects so that they have the following attributes.
- a probe corresponds to a sub-set of the original data. Particularly, a probe defines a sub-set that is less than the complete data set of cells for a grid volume. A probe could be configured to be equal to or coextensive with the complete data set of cells for a grid volume.
- FIG. 2B a block diagram of an architecture 214 for the program 200 in FIG. 2A is illustrated.
- the 3D graphics utilities 208 include a User Interface Module (UIM) 222 and a Graphics Processing Module (GPM) 220.
- the flexible framework integration program 210 includes a Flexible Framework Integration Module 226.
- UIM 222 and GPM 220 communicate via a bi-directional pathway 212.
- UIM 222 interacts with Visualization Data 232 through pathway 227.
- Grid data from Visualization Data 232 is transferred to GPM 220 through Flexible Framework Integration Module 226 via bi-directional pathways 221, 223.
- Visualization Data 232 stores the grid data in a manner well known to one of skill in the relevant art, which may include grid data representing multiple different volumes.
- UIM 222 handles the user interface to receive commands, instructions, and input data from the user. UIM 222 interfaces with the user through a variety of menus through which
- UIM 222 receives user input as the user manipulates the input device to move, size, shape, etc. a grid probe.
- UIM 222 inputs the identification of one or more grid volumes from Visualization Data 232 to use for imaging and analysis.
- the data value for each of the plurality of grid volumes represents a different physical parameter or attribute for the same geographic space.
- a plurality of grid volumes could include a geology volume, a temperature volume, and a water- saturation volume.
- UIM 222 inputs information to create one or more probes.
- information may include, for example, probe type, size, shape, and location.
- information may also include, for example, the type of display and imaging attributes such as color, lighting, shading, and transparency (or opacity).
- opacity By adjusting opacity as a function of data value, certain portions of the grid volume are more transparent, thereby allowing a viewer to see through surfaces.
- data values with greater opacity (less transparency) will mask the imaging or display of data values with lower opacity (more transparency). Conversely, data values will less opacity and greater transparency will permit the imaging or display of data values with greater opacity and lower transparency.
- UIM 222 receives input from the user for sizing and shaping the probes.
- shape and/or size of a probe may be changed by clicking onto manipulators or the probe display and making changes in the dimensions of the probe in one or more directions.
- a manipulator refers
- UIM 222 receives input from the user to move the position or location of a probe within the grid volume.
- a user manipulates a mouse to click onto a manipulator or the probe display and move or re-size the probe.
- UIM 222 also receives input from the user regarding the content of the displayed image.
- the user can preferably select the content of the displayed image.
- the content of the displayed image could include only the probe, i.e., its intersection with the grid volume. Additionally, the probe could be displayed either with or without a bounding box that defines the outer geometry of the probe.
- UIM 222 communicates via bi-directional pathway 212 with GPM 220 that carries out the display and imaging.
- GPM 220 processes data for imaging probes with the color, lighting, shading, transparency, and other attributes selected by the user. To do so, GPM 220 uses the functions available through 3D graphics library 206 and 3D graphics utilities 208 described above. The user can select (through UIM 222) to display only the one or more probes that have been created. Alternatively, the user can select to display one or more probes, as well as the grid volume outside of the probes, i.e. cells within the grid volume that do not intersect any of the probes that are being displayed. Probes that are being displayed may be referred to herein as active probes.
- GPM 220 processes the re-shaping and move requests that are received by UIM
- GPM 220 draws the re-shaped probe in accordance with the user-selected attributes (color, lighting, shading, transparency, etc.). As the user inputs a change in shape for a probe, the image with selected attributes is re-drawn sufficiently fast to be perceived in real-time by the user. Similarly, GPM 220 draws the probe in the new position or location in accordance with the user-selected attributes (color, lighting, shading, transparency, etc.). As the user moves the probe through the grid volume, the image of the probe with selected attributes is re-drawn sufficiently fast to be perceived in real-time by the user.
- GPM 220 communicates via bi-directional pathway 212 with UIM 222 so that the information requested by the user is imaged or displayed with the selected attributes. GPM 220 obtains the needed data from Visualization Data 232 by sending a data request through the Flexible Framework Integration Module 226 via bi-directional pathways 221, 223.
- the Flexible Framework Integration Module 226 selects a bounding box based on input received from UIM 222 through GPM 220.
- the Flexible Framework Integration Module 226 then sends a request to Visualization Data 232 via bi-directional pathway 223 for visualization data that corresponds to the selected bounding box extents.
- the Flexible Framework Integration Module 226 receives visualization data corresponding to the bounding box extents from Visualization Data 232 via bi-directional pathway 223.
- the Flexible Framework Integration Module 226 then creates (builds) the selected probe and display using the visualization data and transmits the selected probe and display to GPM 220 for rendering an image of the selected visualization algorithm API.
- the visualization algorithm API in the Flexible Framework Integration Module 226 receives requests for visualization data from Flexible Framework Integration Module 226.
- the visualization algorithm API extracts the required sub-grid within the probe bounding box extents of the visualization data.
- the Flexible Framework Integration Module 226 then renders the output for display.
- the flow diagrams illustrate one embodiment of a method 300 for implementing the present disclosure.
- the method 300 represents a flexible framework that may be used for scientific visualization as a means of providing insight into visualization data by displaying the data in various graphical illustrations.
- the goal of a flexible framework like the method 300 is to expose relationships and features of the data that are not easily discoverable from simply looking at the data in its raw form.
- each predetermined internal visualization algorithm API is initialized using techniques well known in the art.
- the visualization algorithm API is the API that the method 300 delegates to for algoritlim specific data processing.
- the API can be broken down into four parts:
- a - The algorithm specification is called by the method 300 to validate algorithms for selected input and to create the display of the visualization algorithm.
- One aspect of the algorithm specification defines data conversions into and out of the visualization algorithm. It also defines the operations to perform on the data to calculate the visualization.
- the algorithm specification includes three separate, but related, functions,
- I. Input Translation Specification - defines if and how the method 300 can convert visualization data into a format that is suitable for the algorithm execution specification to accept;
- Output Translation Specification - defines how the method 300 can convert the output of the algorithm execution specification into a format that is suitable for displaying graphically;
- Algorithm Execution Specification defines the specific visualization algorithm that the method 300 can call to create the input translation specification and the output translation specification.
- Input Data Factory converts the visualization data into a suitable format for the specific visualization algorithm, typically following the adapter pattern in object oriented programming;
- Input Domain Data Validator validates if the input data factory can convert the visualization into a suitable format for the specific visualization algorithm, which is how filters for the type of visualization data that can be accepted are defined.
- Input/Output Geometry Mapper - creates a mapping of the output of the specific visualization algorithm back to the original location in the visualization data.
- the mapping can be used, for instance, to look up an attribute value in
- Output Geometry Translator converts the output of the specific visualization algorithm to a graphical format (referred to as output geometry) that the graphics factory can render and display;
- Output Geometry Normal Translator calculates normal vectors at each vertex of the output geometry. This is optional because there are existing algorithms for calculating the normal vectors of polygons, which the method 300 can use as a default. However, if for any reason, the default functionality is not preferred, this option may be utilized; and
- Output Geometry Attribute Translator (Optional) - interpolates attributes from the visualization data to the output geometry. This is optional because the attributes can be interpolated using the mapping defined by the input/output geometry mapper. However, if for any reason, the default functionality is not preferred, this option may be utilized.
- Visualization Algorithm the implementation of a specific visualization algorithm. Using the result of calling the input data factory and any parameters defined by the algorithm parameters, as input, this computes the output as implemented by the method 300;
- 136 - 107803Iv4 require extra parameters as input to the execution.
- the X Cartesian coordinate location of an "x slice plane" visualization algorithm may be required for the algorithm to execute properly. This allows the requirement of such parameters to be defined and the method 300 will supply them to the visualization algorithms for execution.
- the algorithm graphics factory is called by the method 300 to create the required components to integrate the output of the visualization algorithm into the underlying graphical display system. After creation of the required components, any changes to the output of the execution of the visualization algorithm may trigger the display to be updated.
- the algorithm view type simply defines the graphical displays that a visualization algorithm can be viewed in.
- the algorithm manipulator factory allows the user of the method 300 to define a graphical widget that can be used to send parameters to the algorithm for execution. If defined, the method 300 will create the graphical representation of the widget and add it to the display. Typically the manipulator is tied to 1 or more of the parameters specified in algorithm execution specification but that is not required. The method 300 will pass any parameters defined by the manipulator to the visualization algorithm and it is up to the visualization algorithm implementation whether or not to use the parameters.
- step 304 the method 300 determines whether to add an external visualization algorithm API based on each predetermined internal visualization algorithm API from step 302, available external visualization algorithm API's and instructions from the client interface and/or
- step 308 If the method 300 determines to add an external visualization algorithm API, then the method 300 proceeds to step 306.
- step 306 one or more external visualization algorithm API's are installed using techniques well known in the art and the client interface and/or the video interface described further in reference to FIG. 1.
- Each visualization algorithm API is the API that the method 300 delegates to for algorithm specific data processing.
- the API can be broken down into the same four parts described in step 302, however, may be customized and/or supplied from a source external to the method 300.
- FIG. 4 an exemplary graphical user interface illustrates the installation of an external visualization algorithm called GridProbe,
- visualization data is input using the client interface and/or the video interface described further in reference to FIG. 1.
- Visualization data may include any data that may be graphically represented in a way to gain insight into the data and possibly gain a better understanding of the data. Such data therefore, may include output from an oil/gas reservoir simulation on a grid or output from an MRI in the medical field.
- each valid predetermined internal visualization algorithm API from step 302 and each valid external visualization algorithm API from step 306 is identified based on the visualization data input in step 308 and the API algorithm view type from step 302 and/or step 306.
- the input domain data validator and the API algorithm view type from step 302 and/or step 306 are used to identify which predetermined internal visualization algorithm API's from step 302 and which external visualization algorithm API's from step 306 are valid to the extent it
- 136 - 1078031v4 can accept the visualization data from step 308 as input for the respective API algorithm view type.
- step 312 the method 300 determines if there are any predetermined internal visualization algorithm API's or any external visualization algorithm API's identified in step 310. If there are no predetermined internal visualization algorithm API's and no external visualization algorithm API's identified in step 310, then the method returns to step 304. If there is at least one predetermined internal visualization algorithm API or at least one external visualization algorithm API, then the method proceeds to step 314.
- step 314 a predetermined internal visualization algorithm API or an external visualization algorithm API identified in step 310 is selected using the client interface and/or the video interface described further in reference to FIG. 1.
- step 316 the method 300 determines whether to create a new visualization based on any current visualizations, or lack thereof, and instructions from the client interface and/or the video interface described further in reference to FIG. 1. If the method 300 determines to create a new visualization, then the method 300 proceeds to step 320. If the method 300 determines not to create a new visualization, then the method 300 proceeds to step 318.
- step 318 the method 300 determines whether to update a current visualization based on one or more current visualizations and instructions from the client interface and/or the video interface described further in reference to FIG. 1. If the method 300 determines to update a current visualization, then the method 300 proceeds to step 332. If the method 300 determines not to update a current visualization, then the method 300 proceeds to step 319.
- step 319 the method 300 determines if there are any predetermined internal
- step 320 the visualization data from step 308 is converted into an acceptable format to use as input for the visualization algorithm from the visualization algorithm API selected in step 314 using the input data factory from the visualization algorithm API selected in step 314.
- step 322 the method 300 determines if the visualization algorithm API selected in step 314 has an algorithm manipulator factory. If the visualization algorithm API selected in step 314 does not have an algorithm manipulator factory, then the method 300 proceeds to step 326. If the visualization algorithm API selected in step 314 does have an algorithm manipulator factory, then the method 300 proceeds to step 324.
- a manipulator is created in the form of a graphical widget using the algorithm manipulator factory from the visualization algorithm API selected in step 314.
- the manipulator may be used to convert changes in the graphical widget properties or state into input parameters for the visualization algorithm from the visualization algorithm API selected in step 314.
- step 326 a visualization algorithm probe is created using the visualization data from step 320 and techniques well known in the art.
- step 328 a visualization algorithm display is created for the visualization
- step 332 the method 300 determines if the visualization algorithm API selected in step 314 has a preexisting manipulator or a manipulator created in step 324. If the visualization algorithm API selected in step 314 has no manipulator, then the method 300 proceeds to step 336. If the visualization algorithm API selected in step 314 has a manipulator, then the method 300 proceeds to step 334.
- step 334 the parameters of the preexisting manipulator or the manipulator created in step 324 are selected using the client interface and/or the video interface described further in reference to FIG. 1.
- step 336 the visualization algorithm for the visualization algorithm API selected in step 314 is selected.
- step 338 the method 300 determines if the visualization algorithm API selected in step 314 has specific algorithm parameters. If the visualization algorithm API selected in step 314 has no specific algorithm parameters, then the method 300 proceeds to step 342. If the visualization algorithm API selected in step 314 has specific algorithm parameters, then the method 300 proceeds to step 340.
- step 340 the values of the specific algorithm parameters for the visualization algorithm API selected in step 314 are selected using the client interface and/or the video interface described further in reference to FIG. 1.
- step 342 the visualization algorithm selected in step 336 is executed using, as input, the visualization data from step 308 or step 320 and, optionally, any of the manipulator parameters selected in step 334 and any of the values of the specific algorithm parameters
- step 344 the method 300 determines if the current visualization algorithm display or the visualization algorithm display created in step 328 needs to be updated based on whether there are results for step 342. If there are no results for step 342, then the visualization algorithm display created in step 328 does not need to be updated and the method 300 returns to step 314. If there are results for step 342, then the visualization algorithm display created in step 328 needs to be updated and the method 300 proceeds to step 346.
- step 346 the current visualization algorithm display or the visualization algorithm display created in step 328 is cleared.
- step 350 the results from step 342 are translated to geometry primitives representing a graphical format using the output geometry translator for the visualization algorithm API selected in step 314.
- step 352 the geometry primitives representing a graphical format from step 350 are mapped to the original coordinates of the visualization data from step 308 using the input/output geometry mapper for visualization algorithm API selected in step 314.
- step 354 the method 300 determines if the visualization algorithm API selected in step 314 has an output geometry attribute translator. If the visualization algorithm API selected in step 314 has an output geometry attribute translator, then the method 300 proceeds to step 358. If the visualization algorithm API selected in step 314 has no output geometry attribute translator, then the method 300 proceeds to step 356.
- step 356 attributes of the visualization data from step 308 are interpolated to the geometry primitives representing a graphical format from step 350 using the mapped
- step 358 attributes of the visualization data from step 308 are interpolated to the geometry primitives representing a graphical format from step 350 using the output geometry attribute translator of the visualization algorithm API selected in step 314.
- step 360 the interpolated attributes from step 356 or step 358 are applied to the geometry primitives representing a graphical format from step 350 using techniques well known in the art.
- step 362 the method 300 determines if the visualization algorithm API selected in step 314 has an output geometry normal translator. If the visualization algorithm API selected in step 314 has an output geometry normal translator, then the method 300 proceeds to step 368. If the visualization algorithm API selected in step 314 has no output geometry normal translator, then the method 300 proceeds to step 364.
- step 364 surface normal vectors at the vertices of the geometry primitives representing a graphical format from step 350 are calculated using any well-known default output geometry normal algorithm,
- step 368 surface normal vectors at the vertices of the geometry primitives representing a graphical format from step 350 are calculated using the output geometry normal translator of the visualization algorithm API selected in step 314.
- step 370 the surface normal vectors from step 364 or step 368 are applied to the interpolated attributes applied to the geometry primitives representing a graphical format in step 360 using techniques well known in the art.
- step 372 the surface normal vectors applied to the interpolated attributes in
- step 370 are added to the current visualization algorithm display or the visualization algorithm display created in step 328 using techniques well known in the art.
- step 374 a new visualization algorithm display is created for the current visualization algorithm probe or the visualization algorithm probe created in step 326 using the results of step 372 and techniques well known in the art.
- a display of a visualization algorithm probe illustrates an exemplary visualization algorithm display created according to step 374. The method 300 returns to step 314.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
- Image Generation (AREA)
Abstract
Description
Claims
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU2014396222A AU2014396222B2 (en) | 2014-06-03 | 2014-06-03 | Integrating external algorithms into a flexible framework for imaging visualization data |
| GB1618564.7A GB2540097B (en) | 2014-06-03 | 2014-06-03 | Integrating external algorithms into a flexible framework for imaging visualization data |
| US14/646,699 US9805517B2 (en) | 2014-06-03 | 2014-06-03 | Integrating external algorithms into a flexible framework for imaging visualization data |
| CA2947533A CA2947533C (en) | 2014-06-03 | 2014-06-03 | Integrating external algorithms into a flexible framework for imaging visualization data |
| PCT/US2014/040721 WO2015187133A1 (en) | 2014-06-03 | 2014-06-03 | Integrating external algorithms into a flexible framework for imaging visualization data |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2014/040721 WO2015187133A1 (en) | 2014-06-03 | 2014-06-03 | Integrating external algorithms into a flexible framework for imaging visualization data |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2015187133A1 true WO2015187133A1 (en) | 2015-12-10 |
Family
ID=54767080
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2014/040721 Ceased WO2015187133A1 (en) | 2014-06-03 | 2014-06-03 | Integrating external algorithms into a flexible framework for imaging visualization data |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US9805517B2 (en) |
| AU (1) | AU2014396222B2 (en) |
| CA (1) | CA2947533C (en) |
| GB (1) | GB2540097B (en) |
| WO (1) | WO2015187133A1 (en) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10650172B1 (en) * | 2016-04-20 | 2020-05-12 | Ansys, Inc. | Systems and methods for implementing iterative simulation manipulations and results display |
| US11037342B1 (en) * | 2016-07-31 | 2021-06-15 | Splunk Inc. | Visualization modules for use within a framework for displaying interactive visualizations of event data |
| US10459939B1 (en) | 2016-07-31 | 2019-10-29 | Splunk Inc. | Parallel coordinates chart visualization for machine data search and analysis system |
| US10459938B1 (en) | 2016-07-31 | 2019-10-29 | Splunk Inc. | Punchcard chart visualization for machine data search and analysis system |
| US10853380B1 (en) | 2016-07-31 | 2020-12-01 | Splunk Inc. | Framework for displaying interactive visualizations of event data |
| US10861202B1 (en) | 2016-07-31 | 2020-12-08 | Splunk Inc. | Sankey graph visualization for machine data search and analysis system |
| US11914628B1 (en) | 2020-03-18 | 2024-02-27 | Tableau Software, LLC | Incorporating data visualizations into database conversational interfaces |
| US11522820B2 (en) * | 2020-07-27 | 2022-12-06 | Tableau Software, LLC | Conversational natural language interfaces for data analysis |
| US11856049B2 (en) * | 2020-10-26 | 2023-12-26 | Zebra Technologies Corporation | Pin board interface |
| US11689589B1 (en) | 2021-09-20 | 2023-06-27 | Tableau Software, LLC | Using a communications application to analyze and distribute data analytics |
| US12335215B1 (en) | 2022-01-27 | 2025-06-17 | Salesforce, Inc. | Providing an instant messaging interface for data analytics |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070094299A1 (en) * | 2001-07-04 | 2007-04-26 | Okyz | Conversion of Data For Two Or Three Dimensional Geometric Entities |
| US20070257924A1 (en) * | 2006-04-20 | 2007-11-08 | Stmicroelectronics R&D (Shanghai) Co. Ltd. | OpenGL to OpenGL/ES translator and OpenGL/ES simulator |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102047294B (en) * | 2008-06-06 | 2013-10-30 | 兰德马克绘图国际公司,哈里伯顿公司 | Systems and methods for imaging three-dimensional volume of geometrically irregular grid data representing grid volume |
| WO2013019961A2 (en) * | 2011-08-02 | 2013-02-07 | Design Play Technologies Inc. | Real-time collaborative design platform |
| US9424685B2 (en) * | 2012-07-31 | 2016-08-23 | Imagination Technologies Limited | Unified rasterization and ray tracing rendering environments |
| US9153209B2 (en) * | 2012-08-06 | 2015-10-06 | Nvidia Corporation | Method and system for generating a displacement map from a normal map |
-
2014
- 2014-06-03 US US14/646,699 patent/US9805517B2/en active Active
- 2014-06-03 AU AU2014396222A patent/AU2014396222B2/en not_active Ceased
- 2014-06-03 GB GB1618564.7A patent/GB2540097B/en not_active Expired - Fee Related
- 2014-06-03 CA CA2947533A patent/CA2947533C/en active Active
- 2014-06-03 WO PCT/US2014/040721 patent/WO2015187133A1/en not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070094299A1 (en) * | 2001-07-04 | 2007-04-26 | Okyz | Conversion of Data For Two Or Three Dimensional Geometric Entities |
| US20070257924A1 (en) * | 2006-04-20 | 2007-11-08 | Stmicroelectronics R&D (Shanghai) Co. Ltd. | OpenGL to OpenGL/ES translator and OpenGL/ES simulator |
Non-Patent Citations (3)
| Title |
|---|
| ANUPAM AGRAWAL ET AL.: "Real-time Photorealistic Visualisation of Large-scale Multiresolution Terrain Models", DEFENCE SCIENCE JOURNAL, vol. 57, no. 1, 1 January 2007 (2007-01-01), pages 149 - 162, XP008162471, Retrieved from the Internet <URL:http://publications.drdo.gov.in/ojs/index.php/dsj/article/view/1742> doi:10.14429/dsj.57.1742 * |
| ASHOK CHANDRASEKHAR ET AL.: "Interfacing Geometric Design Models to Analyzable Product Models with Multifidelity and Mismatched Analysis Geometry", December 1999 (1999-12-01), XP055239517, Retrieved from the Internet <URL:http://eislab.gatech.edu/pubs/theses/99chandrasekhar/1999-chandrasekhar.pdf> * |
| C. PRADAL ET AL.: "Plant GL: A Python-based geometric library for 3D plant modelling at different scales", GRAPHICAL MODELS, vol. 71, no. 1, 1 January 2009 (2009-01-01), pages 1 - 21, XP025946813, Retrieved from the Internet <URL:http://www.sciencedirect.com/science/article/pii/S1524070308000143> * |
Also Published As
| Publication number | Publication date |
|---|---|
| CA2947533A1 (en) | 2015-12-10 |
| US9805517B2 (en) | 2017-10-31 |
| AU2014396222B2 (en) | 2017-09-21 |
| GB2540097A (en) | 2017-01-04 |
| GB2540097B (en) | 2018-12-26 |
| US20170076507A1 (en) | 2017-03-16 |
| AU2014396222A1 (en) | 2016-11-10 |
| CA2947533C (en) | 2018-05-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9805517B2 (en) | Integrating external algorithms into a flexible framework for imaging visualization data | |
| US8736600B2 (en) | Systems and methods for imaging a three-dimensional volume of geometrically irregular grid data representing a grid volume | |
| US8922558B2 (en) | Drawing graphical objects in a 3D subsurface environment | |
| US9171391B2 (en) | Systems and methods for imaging a volume-of-interest | |
| US20080165185A1 (en) | Systems and methods for selectively imaging objects in a display of multiple three-dimensional data-objects | |
| NO20111166A1 (en) | Three-dimensional visualization of images of the earth's surface | |
| NO327805B1 (en) | System and method for analyzing and mapping three-dimensional volume data sets | |
| US20150248784A1 (en) | Systems and Methods for Creating a Three-Dimensional Texture Atlas | |
| AU2012383532A1 (en) | Systems and methods for creating a three-dimensional texture atlas | |
| US20140002455A1 (en) | Systems and Methods for the Construction of Closed Bodies During 3D Modeling | |
| Teichrieb | DEMEditor: a virtual reality system to enhance the precision of digital elevation models |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 14646699 Country of ref document: US |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14893966 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2947533 Country of ref document: CA |
|
| ENP | Entry into the national phase |
Ref document number: 201618564 Country of ref document: GB Kind code of ref document: A Free format text: PCT FILING DATE = 20140603 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 1618564.7 Country of ref document: GB |
|
| ENP | Entry into the national phase |
Ref document number: 2014396222 Country of ref document: AU Date of ref document: 20140603 Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 15.03.2017) |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 14893966 Country of ref document: EP Kind code of ref document: A1 |