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). So it’s not recommended for gridding large datasets (> 10,000 points), though it will depend on how much RAM you have available.
- 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.
This is research software made by scientists. Citations help us justify the effort that goes into building and maintaining this project. If you used Verde for your research, please consider citing us.
See our CITATION.rst file to find out more.
Code of conduct¶
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Please read our Contributing Guide to see how you can help and give feedback.
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.
This disclaimer was adapted from the MetPy project.
This is free software: you can redistribute it and/or modify it under the terms of the BSD 3-clause License. A copy of this license is provided in LICENSE.txt.