ee.Kernel.add

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)

from pprint import pprint

# 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
})
pprint(kernel_a.getInfo())
pprint(kernel_b.getInfo())

#  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:')
pprint(kernel_a.add(kernel_b).getInfo())

#  [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]