ee.FeatureCollection.kriging

Returns the results of sampling a Kriging estimator at each pixel.

UsageReturns
FeatureCollection.kriging(propertyName, shape, range, sill, nugget, maxDistance, reducer)Image
ArgumentTypeDetails
this: collectionFeatureCollectionFeature collection to use as source data for the estimation.
propertyNameStringProperty to be estimated (must be numeric).
shapeStringSemivariogram shape (one of {exponential, gaussian, spherical}).
rangeFloatSemivariogram range, in meters.
sillFloatSemivariogram sill.
nuggetFloatSemivariogram nugget.
maxDistanceFloat, default: nullRadius which determines which features are included in each pixel's computation, in meters. Defaults to the semivariogram's range.
reducerReducer, default: nullReducer used to collapse the 'propertyName' value of overlapping points into a single value.

Examples

Code Editor (JavaScript)

/**
 * This example generates an interpolated surface using kriging from a
 * FeatureCollection of random points that simulates a table of air temperature
 * at ocean weather buoys.
 */

// Average air temperature at 2m height for June, 2020.
var img = ee.Image('ECMWF/ERA5/MONTHLY/202006')
              .select(['mean_2m_air_temperature'], ['tmean']);

// Region of interest: South Pacific Ocean.
var roi = ee.Geometry.Polygon(
        [[[-156.053, -16.240],
          [-156.053, -44.968],
          [-118.633, -44.968],
          [-118.633, -16.240]]], null, false);

// Sample the mean June 2020 temperature surface at random points in the ROI.
var tmeanFc = img.sample(
  {region: roi, scale: 25000, numPixels: 50, geometries: true}); //250

// Generate an interpolated surface from the points using kriging; parameters
// are set according to interpretation of an unshown semivariogram. See section
// 2.1 of https://doi.org/10.14214/sf.369 for information on semivariograms.
var tmeanImg = tmeanFc.kriging({
  propertyName: 'tmean',
  shape: 'gaussian',
  range: 2.8e6,
  sill: 164,
  nugget: 0.05,
  maxDistance: 1.8e6,
  reducer: ee.Reducer.mean()
});

// Display the results on the map.
Map.setCenter(-137.47, -30.47, 3);
Map.addLayer(tmeanImg, {min: 279, max: 300}, 'Temperature (K)');

Python setup

See the Python Environment page for information on the Python API and using geemap for interactive development.

import ee
import geemap.core as geemap

Colab (Python)

# This example generates an interpolated surface using kriging from a
# FeatureCollection of random points that simulates a table of air temperature
# at ocean weather buoys.

# Average air temperature at 2m height for June, 2020.
img = ee.Image('ECMWF/ERA5/MONTHLY/202006').select(
    ['mean_2m_air_temperature'], ['tmean']
)

# Region of interest: South Pacific Ocean.
roi = ee.Geometry.Polygon(
    [[
        [-156.053, -16.240],
        [-156.053, -44.968],
        [-118.633, -44.968],
        [-118.633, -16.240],
    ]],
    None,
    False,
)

# Sample the mean June 2020 temperature surface at random points in the ROI.
tmean_fc = img.sample(region=roi, scale=25000, numPixels=50, geometries=True)

# Generate an interpolated surface from the points using kriging parameters
# are set according to interpretation of an unshown semivariogram. See section
# 2.1 of https://doi.org/10.14214/sf.369 for information on semivariograms.
tmean_img = tmean_fc.kriging(
    propertyName='tmean',
    shape='gaussian',
    range=2.8e6,
    sill=164,
    nugget=0.05,
    maxDistance=1.8e6,
    reducer=ee.Reducer.mean(),
)

# Display the results on the map.
m = geemap.Map()
m.set_center(-137.47, -30.47, 3)
m.add_layer(
    tmean_img,
    {'min': 279, 'max': 300, 'min': 279, 'max': 300},
    'Temperature (K)',
)
m