simpeg.maps.SurjectVertical1D#
- class simpeg.maps.SurjectVertical1D(mesh, **kwargs)[source]#
Bases:
IdentityMap
Map 1D layered Earth model to 2D or 3D tensor mesh.
Let \(m\) be a 1D model that defines the property values along the last dimension of a tensor mesh; i.e. the y-direction for 2D meshes and the z-direction for 3D meshes.
SurjectVertical1D
construct a surjective mapping from the 1D model to all voxel cells in the 2D or 3D tensor mesh provided.Mathematically, the mapping \(\mathbf{u}(\mathbf{m})\) can be represented by a projection matrix:
\[\mathbf{u}(\mathbf{m}) = \mathbf{Pm}\]- Parameters:
- mesh
discretize.TensorMesh
A 2D or 3D tensor mesh
- mesh
Attributes
Determine whether or not this mapping is a linear operation.
The mesh used for the mapping
Number of parameters the mapping acts on.
Dimensions of the mapping operator
Methods
deriv
(m[, v])Derivative of the mapping with respect to the model paramters.
dot
(map1)Multiply two mappings to create a
simpeg.maps.ComboMap
.inverse
(D)The transform inverse is not implemented.
test
([m, num, random_seed])Derivative test for the mapping.
Examples
Here we define a 1D layered Earth model comprised of 3 layers on a 1D tensor mesh. We then use
SurjectVertical1D
to construct a mapping which projects the 1D model onto a 2D tensor mesh.>>> from simpeg.maps import SurjectVertical1D >>> from simpeg.utils import plot_1d_layer_model >>> from discretize import TensorMesh >>> import numpy as np >>> import matplotlib as mpl >>> import matplotlib.pyplot as plt
>>> dh = np.ones(20) >>> mesh1D = TensorMesh([dh], 'C') >>> mesh2D = TensorMesh([dh, dh], 'CC')
>>> m = np.zeros(mesh1D.nC) >>> m[mesh1D.cell_centers < 0] = 10. >>> m[mesh1D.cell_centers < -5] = 5.
>>> fig1 = plt.figure(figsize=(5,5)) >>> ax1 = fig1.add_subplot(111) >>> plot_1d_layer_model( >>> mesh1D.h[0], np.flip(m), ax=ax1, z0=0, >>> scale='linear', show_layers=True, plot_elevation=True >>> ) >>> ax1.set_xlim([-0.1, 11]) >>> ax1.set_title('1D Model')
>>> mapping = SurjectVertical1D(mesh2D) >>> u = mapping * m
>>> fig2 = plt.figure(figsize=(6, 5)) >>> ax2a = fig2.add_axes([0.1, 0.15, 0.7, 0.8]) >>> mesh2D.plot_image(u, ax=ax2a, grid=True) >>> ax2a.set_title('Projected to 2D Mesh') >>> ax2b = fig2.add_axes([0.83, 0.15, 0.05, 0.8]) >>> norm = mpl.colors.Normalize(vmin=np.min(m), vmax=np.max(m)) >>> cbar = mpl.colorbar.ColorbarBase(ax2b, norm=norm, orientation="vertical")
Galleries and Tutorials using simpeg.maps.SurjectVertical1D
#
![](../../../_images/sphx_glr_plot_booky_1D_time_freq_inv_thumb.png)
Heagy et al., 2017 1D RESOLVE and SkyTEM Bookpurnong Inversions
![](../../../_images/sphx_glr_plot_booky_1Dstitched_resolve_inv_thumb.png)
Heagy et al., 2017 1D RESOLVE Bookpurnong Inversion