Implicit Neural Representations for Geospatial Data
GeoSurrogates.jl creates surrogate models of geospatial data. It provides multiple approaches to learn continuous functions from spatial raster data, using both classical methods and neural networks to create compact, efficient representations of geographic phenomena.
- Classical Surrogates -- Linear regression, inverse distance weighting, radial basis functions, thin plate splines, and B-spline interpolation
- Neural Network Surrogates -- SIREN (Sinusoidal Representation Networks) for terrain, wind fields, and categorical data
- Rasters.jl Integration -- Works directly with
RasterandRasterStackobjects - Arbitrary Resolution -- Predict at any resolution, not just the training grid
- Memory Efficient -- Neural networks as compact alternatives to storing full rasters
- Composable --
AdditiveModelfor boosting-style ensembles of surrogates
using Pkg
Pkg.add("GeoSurrogates")using GeoSurrogates, Rasters
# Load a raster
elev = Raster("path/to/elevation.tif")
# Create a simple interpolation-based surrogate
surrogate = RasterWrap(elev)
# Predict at any coordinate
predict(surrogate, (-105.5, 40.2))
# Or create a neural network surrogate for compression
model = ImplicitTerrain.Model()
fit!(model, normalize(elev); steps=1000)
# Predict on a new raster grid
predicted = predict(model, new_raster)| Type | Description | Use Case |
|---|---|---|
RasterWrap |
B-spline interpolation | Fast exact interpolation |
LinReg |
Linear regression | Simple trend modeling |
IDW |
Inverse distance weighting | Scattered data interpolation |
RBF |
Radial basis functions | Flexible kernel interpolation |
TPS |
Thin plate splines | Smooth surface fitting |
GeomWrap |
Distance-based kernel | Geometry influence fields |
CategoricalRasterWrap |
Kernel smoothing | Categorical raster data |
ImplicitTerrain.Model |
Cascaded SIREN | Terrain compression |
WindSurrogate.WindSIREN |
SIREN for vectors | Wind field modeling |
CatSIREN.CatSIREN |
SIREN with softmax | Categorical classification |
AdditiveModel |
Boosted ensemble | Composing multiple surrogates |
- Sitzmann et al. Implicit Neural Representations with Periodic Activation Functions (2020)
- ImplicitTerrain: https://arxiv.org/abs/2406.00227