ee.Kernel.add

  • The Kernel.add method performs pointwise addition of two kernels after aligning their centers.

  • This method returns a new Kernel object representing the sum.

  • The normalize argument, which defaults to false, determines whether the resulting kernel is normalized.

  • The examples show how two kernels with different dimensions are added and the resulting kernel weights.

Adds two kernels (pointwise) after aligning their centers.

UsageReturns
Kernel.add(kernel2, normalize)Kernel
ArgumentTypeDetails
this: kernel1KernelThe first kernel.
kernel2KernelThe second kernel.
normalizeBoolean, default: falseNormalize the kernel.

Examples

Code Editor (JavaScript)

// Two kernels, they do not need to have the same dimensions.
var kernelA = ee.Kernel.chebyshev({radius: 3});
var kernelB = ee.Kernel.square({radius: 1, normalize: false, magnitude: 100});
print(kernelA, kernelB);

/**
 * Two kernel weights matrices
 *
 *   [3, 3, 3, 3, 3, 3, 3]
 *   [3, 2, 2, 2, 2, 2, 3]
 *   [3, 2, 1, 1, 1, 2, 3]       [100, 100, 100]
 * A [3, 2, 1, 0, 1, 2, 3]     B [100, 100, 100]
 *   [3, 2, 1, 1, 1, 2, 3]       [100, 100, 100]
 *   [3, 2, 2, 2, 2, 2, 3]
 *   [3, 3, 3, 3, 3, 3, 3]
 */

print('Pointwise addition of two kernels', kernelA.add(kernelB));

/**
 * [3, 3,   3,   3,   3, 3, 3]
 * [3, 2,   2,   2,   2, 2, 3]
 * [3, 2, 101, 101, 101, 2, 3]
 * [3, 2, 101, 100, 101, 2, 3]
 * [3, 2, 101, 101, 101, 2, 3]
 * [3, 2,   2,   2,   2, 2, 3]
 * [3, 3,   3,   3,   3, 3, 3]
 */

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)

# Two kernels, they do not need to have the same dimensions.
kernel_a = ee.Kernel.chebyshev(**{'radius': ee.Number(3)})
kernel_b = ee.Kernel.square(**{
    'radius': 1,
    'normalize': False,
    'magnitude': 100
})
display('a:', kernel_a)
display('b:', kernel_b)

#  Two kernel weights matrices

#   [3, 3, 3, 3, 3, 3, 3]
#   [3, 2, 2, 2, 2, 2, 3]
#   [3, 2, 1, 1, 1, 2, 3]       [100, 100, 100]
# A [3, 2, 1, 0, 1, 2, 3]     B [100, 100, 100]
#   [3, 2, 1, 1, 1, 2, 3]       [100, 100, 100]
#   [3, 2, 2, 2, 2, 2, 3]
#   [3, 3, 3, 3, 3, 3, 3]

display('Pointwise addition of two kernels:', kernel_a.add(kernel_b))

#  [3, 3,   3,   3,   3, 3, 3]
#  [3, 2,   2,   2,   2, 2, 3]
#  [3, 2, 101, 101, 101, 2, 3]
#  [3, 2, 101, 100, 101, 2, 3]
#  [3, 2, 101, 101, 101, 2, 3]
#  [3, 2,   2,   2,   2, 2, 3]
#  [3, 3,   3,   3,   3, 3, 3]