Verde: Processing and gridding spatial data using Green's functions

Leonardo Uieda



This paper marks the first release of Verde, a Python library for processing and gridding spatial data. Verde is the first part of my refactoring the Fatiando a Terra project into separate packages.

Verde is the foundation that I developed for my work on GPS interpolation and equivalent layer methods in general.

The peer-review at JOSS is open and can be found at openjournals/joss-reviews#957.


Verde is a Python library for gridding spatial data using different Green's functions. It differs from the radial basis functions in scipy.interpolate by providing an API inspired by scikit-learn. The Verde API should be familiar to scikit-learn users but is tweaked to work with spatial data, which has Cartesian or geographic coordinates and multiple data components instead of an X feature matrix and y label vector. The library also includes more specialized Green's functions, utilities for trend estimation and data decimation (which are often required prior to gridding), and more. Some of these interpolation and data processing methods already exist in the Generic Mapping Tools (GMT), a command-line program popular in the Earth Sciences. However, there are no model selection tools in GMT and it can be difficult to separate parts of the processing that are done internally by its modules. Verde is designed to be modular, easily extended, and integrated into the scientific Python ecosystem. It can be used to implement new interpolation methods by subclassing the verde.base.BaseGridder class, requiring only the implementation of the new Green's function. For example, it is currently being used to develop a method for interpolation of 3-component GPS data.


Uieda, L. (2018). Verde: Processing and gridding spatial data using Green's functions. Journal of Open Source Software, 3(30), 957. doi:10.21105/joss.00957

Article Level Metrics

Main article

Related pages

Comments? Leave one below or let me know on Twitter @leouieda.
Found a typo/mistake? Send a fix through Github and I'll happily merge it (plus you'll feel great because you helped someone). All you need is an account and 5 minutes!