Solving spatial inverse problems using the probability perturbation method: An S-GEMS implementation

  • Authors:
  • Ting Li;Jef Caers

  • Affiliations:
  • Department of Energy Resources Engineering, Stanford University, Stanford, CA 94305-2220, USA;Department of Energy Resources Engineering, Stanford University, Stanford, CA 94305-2220, USA

  • Venue:
  • Computers & Geosciences
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

The probability perturbation method (PPM) is introduced as a flexible and efficient sampling technique for generating inverse solutions under a given prior geological constraint (prior model). In this paper, we present a methodology for producing software code that runs PPM within a public domain geostatistical software called the Stanford Geostatistical Earth Modeling Software (S-GEMS). The challenge in creating such code lies in the great diversity of forward models as well as prior models that can be handled by the PPM. Therefore, our software solution must be highly flexible and extensible such that it can be tailored to the various applications at hand. Our implementation has two main objectives: (1) to create an integrated working environment which provides users easy access to functionalities of the PPM through a general user interface as well as visualize results; (2) allow the users to plug-in their application specific code into the PPM algorithm workflow. We provide a two-part solution. The first part, which is hard-coded in S-GEMS as a plug-in module, runs the Dekker-Brent optimization algorithm to control the parameter perturbation needed for the inversion. It generates the PPM user interface and allows visualization of the spatial domain of interest using S-GEMS graphics capability. The second part is coded in object-oriented Python scripts and is used to control the PPM execution in S-GEMS. Users can program their particular needs in scripts and load them into S-GEMS as part of the PPM workflow. The same mechanism can be used to extend the capabilities of PPM itself by implementing new PPM variants in Python and making them a part of the base class hierarchy. Case studies are used to demonstrate the flexibility of our code. This approach requires the user to adapt only a small amount of python code, without modifying, or re-compiling the core S-GEMS code.