Python solutions for geophysical problems

Fatiando is a collection of open-source Python packages for Geophysics. Our toolkit includes code for processing geophysical data, forward and inverse modeling, interpolation, and more.

We are committed to providing well crafted and trustworthy software. As such, all of our core packages strictly follow software development best practices:

The Libraries

We maintain several Python libraries which are in various stages of development: from early design to polished and published products. We’ll also be adding new projects to our toolkit in the future (see how you can get involved).

Spatial data processing and interpolation (gridding) using Green's functions (or radial basis functions) with a machine learning inspired interface.

Processing and modeling gravity and magnetic data, like terrain correction, upward continuation, equivalent layers, 3D inversion, and more.

Manages the download of sample data files over HTTP from a server and storing them in a local directory. Used by our other libraries.

Download geophysical models and datasets (PREM, CRUST1.0, ETOPO1) and load them into Python. Relies on Pooch to manage the downloads.

Support Fatiando

All Fatiando projects are made by scientists and volunteers who generously donate their time and attention. Here are some of the ways in which you can help support the project and give back to the community:

Contacting Us

Getting Involved

Fatiando is a community-developed project, so it’s people like you that make it useful and successful. There are many ways to contribute:

Have a look at our Contributing Guide to see how you can get involved. This and other guides (for project maintenance, etc.) can be found in the fatiando/contributing repository.

Code of Conduct

All Fatiando projects are released with a Contributor Code of Conduct. By participating in any of these projects you agree to abide by its terms.

Imposter Syndrome Disclaimer

We want your help. No, really.

There may be a little voice inside your head that is telling you that you’re not ready to be an open source contributor; that your skills aren’t nearly good enough to contribute. What could you possibly offer?

We assure you that the little voice in your head is wrong.

Being a contributor doesn’t just mean writing code. Equality important contributions include: writing or proof-reading documentation, suggesting or implementing tests, or even giving feedback about the project (including giving feedback about the contribution process). If you’re coming to the project with fresh eyes, you might see the errors and assumptions that seasoned contributors have glossed over. If you can write any code at all, you can contribute code to open source. We are constantly trying out new skills, making mistakes, and learning from those mistakes. That’s how we all improve and we are happy to help others learn.

Adapted from the MetPy project.

Looking for the fatiando package?

It still exists! While development of the fatiando library has stopped (in favor of our new libraries), you can still view the documentation for the last release (v0.5) and the source code archive on Github. The library will remain archived and usable for the foreseeable future.

To get a sense for the reasoning behind the choice to abandon fatiando, please read this blog post. Quoting from a section from the post:

Back [when we started Fatiando], there were very few Python geophysical modeling libraries. A decade later, the ecosystem has expanded. The five currently on going projects of which I’m aware are:

  • PyGMI: GUI + library for 3D modeling of gravity and magnetic data.
  • SimPEG: Forward modeling and inversion library based on the finite volume method.
  • pyGIMLi: Forward modeling and inversion library based on the finite element and finite volume methods.
  • Bruges: Modeling and processing for seismic and petrophysics.
  • Pyrocko: A collection of tools and libraries, mostly for seismology.

The two projects that are most similar to us (SimPEG and pyGIMLi) implement flexible partial differential equation solvers that they use to run all forward modeling calculations. This makes a lot of sense because it gives them a unified framework to model most geophysical methods. It is the most sensible approach to build joint inversions of multiple geophysical datasets. However, there are some inverse problems that don’t fit this paradigm, like inverting Moho relief from gravity data and some non-conventional inversion algorithms […]


The niche I see for Fatiando is in gravity and magnetic methods, particularly using [analytical solutions for forward modeling and non-PDE based inversions]. The processing functions are an important feature because there are hardly any open-source alternatives out there to commercial software like Oasis Montaj and Intrepid.


The best way forward for Fatiando that I can see, is to become an ecosystem of specialized tools and libraries, rather than a single Python package. Having things in separate libraries allows us to better indicate what is robust and professional and what is experimental or meant as a teaching tool.