Draft - new whitepaper currently being edited
GeoCraft Framework Whitepaper
The project aims to provide a common framework for developing geophysical software. Common tasks such as data i/o and visualization are handled by the framework, which allows developers to concentrate on adding new features.
Target Users
Continuum of users:
- exploration geoscientists
- predefined workflows
- ease of use, learning
- power users
- scriptable
- limited command line interaction
- research geophysicists
- matlab-like interaction
- ability to add new algorithms
- ad-hoc visualization
- computer scientists
- deploy applications
- long term support, stability
- data managers
- review data
- perform quality control
- initiate data transfers
- initiate geographic information systems (GIS) scan jobs
- configure and maintain OpenSpirit installation
Features of the GeoCraft Framework
The GeoCraft Framework will incorporate the following features:
- Domain object management
- Standardized domain object model based on geophysical classes (wells, traces, logs, faults, horizons, seismic volumes).
- Reconcile the different types and levels of detail among proprietary formats. Note that the objects cannot default to the lowest common denominator so some data formats will be more difficult to work with than others.
- Interoperability among the modules in the GeoCraft framework will be accomplished through a set of common entities.
- I/O modules that read and write from different data stores.
- Examples include wells, traces, gathers, and faults.
- After these domain objects are defined, developers can write code that is decoupled from particular data sources or visualization approaches.
- Extensible Framework
- allow programmers to add new components and define new perspectives
- allows geophysical researchers to add new algorithms (without worrying about i/o and visualization)
- Interactive shell that allows users to perform operations on the domain objects.
- design modules to be inherently scriptable
- differentiate between hard and soft layers in the architecture
- 'hard layers' fundamental components that evolve slowly over many years
- 'soft layers' new feaures, implemented as plugins that change quickly
- will improve design of APIs and reduce coupling between components
- Viewers that can display output regardless of the originating data source.
Initial Open-Source Modules for the GeoCraft Framework
The following open-source modules will be included with the GeoCraft Framework:
Data Visualization
The viewers must be extensible so that developers can add new methods of visualizing data without writing a new viewer from scratch.
- Sends and receives data selection, GIS, and cursor tracking events.
- Right mouse click to display properties of any selected item.
- Support multi-select.
- Ability to zoom in/out, rotate, and translate.
- Well Log Track Viewer
- Display regular and irregularly sampled log curves in a log track.
- Suppress null values. Support multiple curves in the same track with different track min/maxs.
- Tracks can be either logarithmic or linear.
- post well picks with name at appropriate depth.
- Option to display histogram of selected log.
- Option to display table view of selected curve.
- Option to send data selection events for selected curves and picks.
- Right mouse click to display properties of any selected item.
- Section Viewer
- Vertical section display of selected inlines or crosslines from a three-dimensional volume or two-dimensional seismic sections along with intersecting horizons or faults.
- Basic variable density display with choice of predefined color scales or user-defined scale.
- Ability to zoom in/out.
- Option to send/receive cursor tracking event.
- Option to zoom in/out.
- Option to send data selection event for selected seismic datasets.
- Right mouse click to display properties of any selected item.
- Map Viewer
- Well surface locations (using symbol based on well status, fluid type, and flow direction)
- Well bore bottom location
- Well bore path
- Two-dimensional seismic line and dataset
- Three-dimensional survey
- Three-dimensional volume
- Horizon grid
- Fault-horizon boundaries
- Fault polylines
- Point features
- Polyline features
- Polygon features
- Three-dimensional Viewer
- Well surface locations (using symbol based on well status, fluid type, and flow direction)
- Wellbore path
- Two-dimensional seismic line and dataset
- Three-dimensional survey
- Three-dimensional volume – and display selected inline, crossline, horizontal slice
- Horizon grid
- Fault-horizon boundaries
- Fault polylines
- Point features
- Polyline features
- Polygon features
- X-Y Plot Viewer
- Arbitrary x-y plot of multiple data series with legend.
- Could be used for time-depth plots, wellbore x-offset, tvd plot, and so on.
- Table Viewer
- A multi-column table view of array data.
- Could be used to display time-depth data, log curves values, wellbore deviation surveys, and so on.
- Histogram Plot
Why Open Source?
- To improve software design and quality
- The design of the framework will be improved through ongoing analysis of support requests, bug reports, and user feedback.
- To capture innovation that happens elsewhere
- Geophysical software evolves in a myriad of locales, from consortia to software startups to standards bodies.
- To take advantage of serendipity
- no chance of dramatic advances in code that is kept secret.
- To foster collaboration with other oil companies, universities, and software vendors.
- To provide continuous advancement of the framework while companies use the framework as the basis for proprietary modules.
- The framework will continue to be supported and enhanced in the open-source community, so companies can focus on designing their modules.
- By open-sourcing the GeoCraft framework, the project hopes to encourage the contribution of additional open-source modules as well as speeding the development of proprietary modules.
Development Strategy
The key development strategy underlying GeoCraft is the incremental development of the framework in an iterative fashion. The requirements for the GeoCraft platform should be driven by ongoing development projects.
