| name | verde |
| description | Spatial data gridding and interpolation with a machine-learning style API. Process
geographic and Cartesian point data onto regular grids. Use when Claude needs to:
(1) Grid scattered spatial data onto regular grids, (2) Interpolate point data using
splines, linear, or cubic methods, (3) Process geographic coordinates with projections,
(4) Reduce large datasets using block averaging, (5) Remove polynomial trends from
spatial data, (6) Cross-validate gridding parameters, (7) Create processing pipelines
with Chain, (8) Grid vector data like GPS velocities.
|
| version | 1.0.0 |
| author | Geoscience Skills |
| license | MIT |
| tags | ["Gridding","Interpolation","Spatial Analysis","Fatiando","Cross-Validation","Verde","Spline","Block Reduction"] |
| dependencies | ["verde>=1.8.0","numpy","scipy"] |
| complements | ["harmonica","geostatspy","scikit-gstat","pyvista"] |
| workflow_role | analysis |
Verde - Spatial Data Gridding
Quick Reference
import verde as vd
spline = vd.Spline()
spline.fit(coordinates, values)
grid = spline.grid(spacing=0.1)
elevation = grid.elevation.values
grid.to_netcdf('output.nc')
Key Classes
| Class | Purpose |
|---|
Spline | Bi-harmonic spline interpolation (smooth, good extrapolation) |
Linear | Delaunay triangulation (fast, no extrapolation) |
Cubic | Cubic interpolation (medium smoothness) |
Chain | Pipeline of processing steps |
BlockReduce | Decimate data to block means/medians |
Trend | Polynomial trend fitting and removal |
Vector | Grid 2-component vector data |
Essential Operations
Grid Scattered Data
coordinates = (longitude, latitude)
values = elevation
spline = vd.Spline()
spline.fit(coordinates, values)
grid = spline.grid(spacing=0.1, data_names=['elevation'])
Project to Cartesian
import pyproj
projection = pyproj.Proj(proj='merc', lat_ts=data_lat.mean())
proj_coords = projection(longitude, latitude)
spline = vd.Spline()
spline.fit(proj_coords, values)
grid = spline.grid(spacing=1000)
Block Reduce Large Datasets
import numpy np
reducer = vd.BlockReduce(reduction=np.median, spacing=)
coords_reduced, values_reduced = reducer.(coordinates, values)