Modelling static displacement¶
Kite comes with a SandboxScene
, which is a playground for static displacement sources of different kinds and modelling engines. It support analytical backends such as Okada disloc
-code 1 and Compound dislocation model (2; http://www.volcanoedeformation.com/). Numerical forward modelling is enabled through pyrocko.gf
, this allows us to put geometrically more complex sources into the modelling sandbox.
Currently implemented static displacement sources:
Several Pyrocko Sources:
Analytical dilatational point through CDM (2) sources:
More information about the sources and their implementation can be found at the modules reference: kite.sources
.
- 1
Okada, Y., 1992, Internal deformation due to shear and tensile faults in a half-space, Bull. Seism. Soc. Am., 82, 1018-1040.
- 2(1,2)
Nikkhoo, M., Walter, T. R., Lundgren, P. R., Prats-Iraola, P. (2017): Compound dislocation models (CDMs) for volcano deformation analyses. - Geophysical Journal International, 208, 2, p. 877-894.
Add Displacement Sources into SandboxScene
¶
In this example we will add a simple OkadaSource
into a SandboxScene
.
from kite import SandboxScene
from kite.sources import OkadaSource, PyrockoRectangularSource
import matplotlib.pyplot as plt
import numpy as num
km = 1e3
sandbox = SandboxScene()
# Set the LOS incident angles, remember :class:`kite.Scene`
sandbox.phi.fill(num.rad2deg(100.))
sandbox.theta.fill(num.rad2deg(23.))
okada = OkadaSource(
northing=40*km,
easting=40*km,
depth=4*km,
length=8*km,
width=4*km,
strike=63.,
dip=33.,
slip=3.,
opening=1)
pyrocko_rectangular = PyrockoRectangularSource(
northing=40*km,
easting=40*km,
depth=4*km,
length=8*km,
width=4*km,
strike=63.,
dip=33.,
slip=3.,
store_dir='gfstore_halfspace')
sandbox.addSource(okada)
sandbox.processSources()
# Plot the resulting surface displacements
fig, axis = plt.subplots(nrows=2, ncols=2)
axis[0][0].imshow(sandbox.north)
axis[0][1].imshow(sandbox.east)
axis[1][0].imshow(sandbox.down)
axis[1][1].imshow(sandbox.displacement) # Displacement in LOS
fig.show()
A full list of available sources and their parameters can be found at the modules’ reference page kite.sources
.
Save and Load pyrocko.SandboxScene
¶
In this small example we will add a basic EllipsoidSource
to the sandbox. Subsequently we will save it and load it again.
from kite import SandboxScene
from kite.sources import EllipsoidSource
km = 1e3
sandbox = SandboxScene()
ellipsoid_source = EllipsoidSource(
northing=40*km,
easting=40*km,
depth=4*km,
length_x=100,
length_y=200,
length_z=350,
roation_x=42.)
sandbox.addSource(ellipsoid_source)
sandbox.save('/tmp/sandbox_scene.yml')
playground = SandboxScene.load('/tmp/sandbox_scene.yml')
Graphical Manipulation of Displacement Sources¶
The graphical user interface Static Displacement Modelling with Talpa offers tools to handle and interact with the different kinds of displacement sources.