Giter VIP home page Giter VIP logo

pinga-lab / paper-moho-inversion-tesseroids Goto Github PK

View Code? Open in Web Editor NEW
39.0 5.0 12.0 242.74 MB

Source code, data, and model results for "Fast non-linear gravity inversion in spherical coordinates with application to the South American Moho". Published in the Geophysical Journal International.

Home Page: https://doi.org/10.1093/gji/ggw390

License: Other

TeX 2.45% Python 0.42% Makefile 0.03% Jupyter Notebook 97.09% Shell 0.02%
geophysics geoscience earth-science python fatiando-a-terra science open-science jupyter-notebook

paper-moho-inversion-tesseroids's Introduction

Fast non-linear gravity inversion in spherical coordinates with application to the South American Moho

by Leonardo Uieda and Valéria C. F. Barbosa

Published in the Geophysical Journal International: doi:10.1093/gji/ggw390

Click on this button to run the code online: run on Binder

An archived snapshot of this repository is available on figshare at doi:10.6084/m9.figshare.3987267 (the manuscript LaTeX sources are not included).

A PDF of the article is available at leouieda.com/papers/paper-moho-inversion-tesseroids-2016.html

Contents:

  • Python source code that implements the Moho inversion method proposed in the paper (see code/mohoinv.py). The modeling code uses the open-source geophysics library Fatiando a Terra.
  • Data files required to produce all results and figures presented in the paper.
  • Source code in Jupyter notebooks that produce all results and figures (the .ipynb files in code). You can view static (not executable) versions of these notebooks through the links provided in code/README.md.
  • All figures in EPS format for the paper.
  • Latex source to produce the manuscript (not included in the figshare archive).
  • The estimated Moho depth model for South America, available in the file model/south-american-moho.txt in ASCII xyz format (download the file).

The main result from this publication is the gravity-derived Moho depth model for South America and the differences between it and seismological estimates of Assumpção et al. (2013):

The estimated Moho depth for South America and differences with seismological estimates

Dotted lines represent the boundaries between major geologic provinces. AD: Andean Province, AFB: Andean foreland basins, AM: Amazonas Basin, BR: Brazilian Shield, BO: Borborema province, CH: Chaco Basin, GB: Guyana Basin, GU: Guyana Shield, PB: Parnaíba Basin, PC: Parecis Basin, PR: Paraná Basin, PT: Patagonia province, SF: São Francisco Craton, SM: Solimões Basin. Solid orange lines mark the limits of the main lithospheric plates. AF: Africa Plate, AN: Antarctica Plate, CA: Caribbean Plate, CO: Cocos Plate, SA: South America Plate, SC: Scotia Plate, NZ: Nazca Plate. The solid light grey line is the 35 km Moho depth contour.

Abstract

Estimating the relief of the Moho from gravity data is a computationally intensive non-linear inverse problem. What is more, the modeling must take the Earths curvature into account when the study area is of regional scale or greater. We present a regularized non-linear gravity inversion method that has a low computational footprint and employs a spherical Earth approximation. To achieve this, we combine the highly efficient Bott's method with smoothness regularization and a discretization of the anomalous Moho into tesseroids (spherical prisms). The computational efficiency of our method is attained by harnessing the fact that all matrices involved are sparse. The inversion results are controlled by three hyper-parameters: the regularization parameter, the anomalous Moho density-contrast, and the reference Moho depth. We estimate the regularization parameter using the method of hold-out cross-validation. Additionally, we estimate the density-contrast and the reference depth using knowledge of the Moho depth at certain points. We apply the proposed method to estimate the Moho depth for the South American continent using satellite gravity data and seismological data. The final Moho model is in accordance with previous gravity-derived models and seismological data. The misfit to the gravity and seismological data is worse in the Andes and best in oceanic areas, central Brazil and Patagonia, and along the Atlantic coast. Similarly to previous results, the model suggests a thinner crust of 30-35 km under the Andean foreland basins. Discrepancies with the seismological data are greatest in the Guyana Shield, the central Solimões and Amazonas Basins, the Paraná Basin, and the Borborema province. These differences suggest the existence of crustal or mantle density anomalies that were unaccounted for during gravity data processing.

Reproducing the results

Executing the code online

You can run the Jupyter notebooks online without installing anything through the free Binder webservice:

mybinder.org/repo/pinga-lab/paper-moho-inversion-tesseroids

Start by navigating to the code folder and choose a notebook to execute. Beware that the CRUST1.0 and South American Moho notebooks will probably not be able to run on Binder because they take too long (a few days). If you want to try out the method start with the code/synthetic-simple.ipynb notebook or see how the figures for the paper are generated in the code/paper-figures.ipynb notebook. Tip: use Shift + Enter to execute a code cell.

If you want to run the full inversion on your machine, follow the steps below.

Running things on your machine

First, download a copy of all files in this repository:

  • Download a zip archive

  • Or clone the git repository:

      git clone https://github.com/pinga-lab/paper-moho-inversion-tesseroids.git
    

Setting up your environment

You'll need a working Python 2.7 environment with all the standard scientific packages installed (numpy, scipy, matplotlib, etc). The easiest (and recommended) way to get this is to download and install the Anaconda Python distribution. Make sure you get the Python 2.7 version.

All required dependencies are specified in the environmet.yml file. The exact versions of every dependency are also specified in the conda-*.lock files. The lock files can be used to create an exact version of the environment used in the paper for Linux, Mac, and Windows.

You can use conda package manager (included in Anaconda) to create a virtual environment with all the required packages installed. First, unzip the contents of this repository (if you've downloaded the zip file) and cd into the root of the repository (where environment.yml and the conda-*.lock files are located). Next, run the following command in a terminal (substituting the appropriate lock file for your operating system):

conda create -n moho --file conda-linux-64.lock

This will create the virtual environment based on the specifications in environment.yml and install all required dependencies. To activate the conda environment, run

source activate moho

or, if you're on Windows,

activate moho

This will enable the environment for your current terminal session.

Running the inversions and generating figures

The inversion and figure generation are all run inside Jupyter notebooks. To execute them, you must first start the notebook server by going into the repository folder and running (make sure you have the conda environment enabled first):

jupyter notebook

This will start the server and open your default web browser to the Jupyter console interface. In the page, go into the code folder and select the notebook that you wish to view/run.

Here what a notebook looks like running in Firefox:

Screenshot of the Jupter notebook

The notebook is divided cells (some have text while other have code). Each can be executed using Shift + Enter. Executing text cells does nothing and executing code cells runs the code and produces it's output. To execute the whole notebook, run all cells in order.

All results figures in the paper are generated by the code/paper-figures.ipynb notebook.

License

All source code is made available under a BSD 3-clause license. You can freely use and modify the code, without warranty, so long as you provide attribution to the authors. See LICENSE.md for the full license text.

The model results in file model/south-american-moho.txt are available under the Creative Commons Attribution 4.0 License (CC-BY).

The manuscript text is not open source. The authors reserve the rights to the article content, which has been accepted for publication in the Geophysical Journal International.

paper-moho-inversion-tesseroids's People

Contributors

leouieda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

paper-moho-inversion-tesseroids's Issues

Make hyperparam estimation sections into one

Make them part of a single section with an introductory paragraph that explains the overall procedure: run for mu first using some value of the other two; use mu to estimate deltarho and zref; the final solution if the one with the best deltarho and zref.

Discussion section for South American Moho

Have a new section "Discussion" to discuss the results for south america. Mention the places where the results are good and what it implies when it's different from seismic. (Use PhD thesis presentation)

  • Parecis (matches seismic)
  • Amazon and Paraná (don't match, underplating)
  • Cratonic areas are deeper
  • Transbrasiliano
  • Ocean fits well
  • Guiana shield is strange
  • Parnaiba margins fit well and corroborated by papers

Map of seismic Moho error

This should go along with the map of differences between estimated and seismic so we can know where to trust our model and where to trust seismic.

Mention that the 2piGrho term works

Mention in the conclusion that the Jacobian from Bott's method works even for data that are not at ground level. This is surprising and not mentioned anywhere else it seems.

Finish README

Include:

  • Abstract
  • Authors
  • Submission info
  • Instructions for downloading
  • Software requirements and install
  • List notebooks and links to nbviewer
  • Instructions for running code
  • License of code
  • Main results figure
  • How to download the final model

Packages not found in enviroments.yml

Good moorning!

I am trying to create the 'Moho' environment from the environment.yml file, but the next packages is not found.

ResolvePackageNotFound:
-basemap=1.0.7

  • numpy=1.11.2
  • scipy=0.18.1
  • numba=0.26
    Do you know how I can resolve this issue?

Update the READMEs

Include new information about the journal, DOI link for the repo, binder link, etc

Why we get the Andes wrong

The text just says the it's because of sharp Moho variations. But it's also because our model has no subducting slab and our method is not very good for deep Moho (as seen on the CRUST1.0 synthetic).

Add this to the conclusions and discussion.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.