Verde is a Python library for processing spatial data (bathymetry, geophysics surveys, etc) and interpolating it on regular grids (i.e., gridding).

Most gridding methods in Verde use a Green's functions approach. A linear model is estimated based on the input data and then used to predict data on a regular grid (or in a scatter, a profile, as derivatives). The models are Green's functions from (mostly) elastic deformation theory. This approach is very similar to machine learning so we implement gridder classes that are similar to scikit-learn regression classes. The API is not 100% compatible but it should look familiar to those with some scikit-learn experience.

Advantages of using Green's functions include:

  • Easily apply weights to data points. This is a linear least-squares problem.
  • Perform model selection using established machine learning techniques, like k-fold or holdout cross-validation.
  • The estimated model can be easily stored for later use, like spherical-harmonic coefficients are used in gravimetry.

The main disadvantage is the heavy memory and processing time requirement (it's a linear regression problem).

Project goals

  • Provide a machine-learning inspired interface for gridding spatial data
  • Integration with the Scipy stack: numpy, pandas, scikit-learn, and xarray
  • Include common processing and data preparation tasks, like blocked means and 2D trends
  • Support for gridding scalar and vector data (like wind speed or GPS velocities)
  • Support for both Cartesian and geographic coordinates

The first release of Verde was focused on meeting these initial goals and establishing the look and feel of the library. Later releases will focus on expanding the range of gridders available, optimizing the code, and improving algorithms so that larger-than-memory datasets can also be supported.

Contacting us