My main topic of research is the development of methods to solve inverse problems in geophysics. For example, estimating density anomalies in the subsurface from measured disturbances in gravity or the direction of magnetization of a buried structure from the anomalies that it produces in the Earth's magnetic field. Most methods that I develop are related to gravity and magnetics but I'm also interested in seismology and geodesy. Central to all of my projects is the open-source software upon which I implement the new methods.

I have an **open by default** policy for my research and teaching output.
Pretty much everything I do is freely available online, usually on
Github.

These are funded research projects in which I participate as PI or co-PI:

As a geophysicist, my ultimate goal is to infer the physical properties of the inner Earth and its processes from surface observations. This is an ill-posed inverse problem, to which a solution might not exist or be non-unique and unstable. I develop methods for solving different kinds of inverse problems using several sets of constraints to overcome the instability of the solution.

A key component for solving an inverse problem is first solve the "forward problem". This is jargon for predicting data given a set of model parameters. One of the first research problems on which I worked was developing a method for forward modeling gravitational fields caused by a tesseroid (a spherical prism). I'm still doing work related to this theme.

There is no turning back from the machine learning frenzy that has taken over the world. Geoscientists have been doing similar things for decades but with different names and objectives. One of these things is called the "equivalent layer technique" in gravity and magnetics. Similar methods in different fields have many different names, for example radial basis functions or Green's functions interpolation. All of these methods are linear regressions in which we fit a linear model to some data and then use the model to predict new data. The difference with standard machine learning is that the linear model we use has physical meaning. For gravity data, the model is the gravitational attraction of point sources, whereas for GPS data, the model is the elastic deformation of medium. Given the many similarities, I have been very interested in applying other machine learning techniques, like model selection, to these geophysical problems.

Programming is a requirement for method development. By definition, there is no existing software that implements your new method. I program mostly in Python but I'm also proficient in C. All of my software contributions are open-source and hosted on Github.

I'm the creator and/or maintainer of the following projects:

Fatiando is a Python library for modeling and inversion in geophysics.
The name is Portuguese for "*slicing the Earth*" (like a loaf of bread).
I started development of Fatiando in 2010 while working on my
Masters degree.
I now use it regularly for my research and also for much of my teaching
material.
My Geophysics classes at UERJ used Fatiando and Jupyter
notebooks to provide students with interactive examples
and synthetic data.
Most recent papers published by the PINGA lab use
it in some way.
Fatiando was featured in the
89th Boletim SBGf (PDF in Portuguese).

In 2018, I started work to convert Fatiando into several independent packages:

- Verde: The first one I started working on. A library for gridding and spatial data processing.
- Pooch: A small Python library that manages the download and caching of sample data sets. It will be used in support of the other packages.
- RockHound: Download common geophysical models and datasets (think PREM, CRUST1.0, ETOPO1) and load them into Python data structures.
- Harmonica: Library for processing and modeling gravity and magnetic data.

Command-line programs for gravity forward modeling. This was my first software
project. I started working on *Tesseroids* in 2008 for my Bachelor's thesis
project and continued in collaboration with Professor Carla
Braitenberg from the University of
Trieste. The paper "Tesseroids: forward modeling gravitational fields in spherical coordinates"
describes the algorithms behind version
1.2.0 of the software, which ended up
becoming a chapter of my PhD thesis.

A modern Python interface for the Generic Mapping Tools. I started building PyGMT (formerly GMT/Python) in 2017 as part of my postdoc at the University of Hawaii with Paul Wessel (the co-creator and main developer of GMT). Work is still in early stages but there is a minimum working example on the website. PyGMT was used to generate the bathymetry and topography banner images for this website.