Package: vmod-geodesy
Versatile Modeling Of DeformationAuthors: Mario Angarita, Ronni Grapenthin, Scott Henderson, Michael Christoffersen and Kyle AndersonWhat is VMOD?VMOD is a python-based object oriented framework. Its main purpose is to model multiple types of geodetic data including:GNSSInSARLevelEDMTiltThese observations can be interpreted with one or more analytical models that represent pressurized sources such as:Pressurized sphere in elastic mediumPressurized sphere in viscoelastic mediumPressurized sphere in a viscoelastic shell in elastic mediumPressurized prolate spheroid in elastic mediumDislocation (Fault/Sill) in elastic mediumPenny shaped crack in elastic mediumPoint source in elastic mediumWellsite in porelastic mediumRing fault in elastic mediumRegularized fault/sill in elastic mediumOpen conduit in elastic mediumThe framework offers two different inversion techniques to solve for the source parameters:Non-linear least squaresBayesian approachThe inversions can include one or multiple data types in the inversion and the model can be composed by multiple sources. The user can customize or inherit current models to create complexer geometries.Standard InstallationWe recommend using Anaconda or Miniconda to create an environment in which to install VMOD to prevent dependency conflicts.conda create --name vmod -c conda-forge "python=3.9.*" "pymc=2.3.8" "setuptools>=61"PyMC must be installed with conda, pip fails to build version 2.3.8 on some machines.conda activate vmodpip install vmod-geodesyRun an inversion:In this repository we included several notebooks to show the steps necessary to run an inversion usingGNSS,InSAR,EDMandjointdatasets. We also included an example using real datasets onUnimak Island.Add new datatype:Users wishing to include a new datatype should clone the source repository and create a new file in the data folder.This file should contain a new class that inherit from the 'Data' class and that has the functions to initialize the attributes, adding the components belonging to the datatype and a function to derive the components from 3d displacements. For example, in the Insar class we defined the following functions:classInsar(Data):def__init__():...defadd_los(self,los):...deffrom_model3d(self,func):...Add new model:Users wishing to include a new model should clone the source repository and create a new file in the source folder.This file should contain a new class that inherit from the 'Source' class and that has a function returning the names of the parameters in your model and a function that gives the implementation of your model and return the 3d displacement. If you want to use this model with data that has a temporal dependency you should include the function 'model_t' that implements a time-dependant model. As an option you can include additional functions that return tilt displacements with the function 'model_tilt' or if it has a temporal dependency 'model_tilt_t'. For example, here we show the required functions in our Mogi model:classMogi(Source):defset_parnames(self):...defmodel(self,params):...Publications:A list of publications where VMOD has been used:Grapenthin, R., Cheng, Y., Angarita, M., Tan, D., Meyer, F. J., Fee, D., & Wech, A. (2022). Return from Dormancy: Rapid inflation and seismic unrest driven by transcrustal magma transfer at Mt. Edgecumbe (L’úx Shaa) Volcano, Alaska. Geophysical Research Letters, 49(20), e2022GL099464.https://doi.org/10.1029/2022GL099464Grapenthin, R., Kyle, P., Aster, R. C., Angarita, M., Wilson, T., & Chaput, J. (2022). Deformation at the open-vent Erebus volcano, Antarctica, from more than 20 years of GNSS observations. Journal of Volcanology and Geothermal Research, 432, 107703.https://doi.org/10.1016/j.jvolgeores.2022.107703Graves, E. J., et al. "InSAR-observed surface deformation in New Mexico’s Permian Basin shows threats and opportunities presented by leaky injection wells." Scientific Reports 13.1 (2023): 17308.https://doi.org/10.1038/s41598-023-42696-9