Annuncio: tutti i progetti non commerciali registrati per l'utilizzo di Earth Engine prima del
15 aprile 2025 devono
verificare l'idoneità non commerciale per mantenere l'accesso a Earth Engine.
ee.Image.distance
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Calcola la distanza dal pixel diverso da zero più vicino in ogni banda, utilizzando il kernel di distanza specificato.
Utilizzo | Resi |
---|
Image.distance(kernel, skipMasked) | Immagine |
Argomento | Tipo | Dettagli |
---|
questo: image | Immagine | L'immagine di input. |
kernel | Kernel, valore predefinito: null | Il kernel di distanza. Uno dei valori Chebyshev, Euclidean o Manhattan. |
skipMasked | Booleano, valore predefinito: true | Maschera i pixel di output se il pixel di input corrispondente è mascherato. |
Esempi
Editor di codice (JavaScript)
// The objective is to determine the per-pixel distance to a target
// feature (pixel value). In this example, the target feature is water in a
// land cover map.
// Import a Dynamic World land cover image and subset the 'label' band.
var lcImg = ee.Image(
'GOOGLE/DYNAMICWORLD/V1/20210726T171859_20210726T172345_T14TQS')
.select('label');
// Create a binary image where the target feature is value 1, all else 0.
// In the Dynamic World map, water is represented as value 0, so we use the
// ee.Image.eq() relational operator to set it to 1.
var targetImg = lcImg.eq(0);
// Set a max distance from target pixels to consider in the analysis. Pixels
// with distance greater than this value from target pixels will be masked out.
// Here, we are using units of meters, but the distance kernels also accept
// units of pixels.
var maxDistM = 10000; // 10 km
// Calculate distance to target pixels. Several distance kernels are provided.
// Euclidean distance.
var euclideanKernel = ee.Kernel.euclidean(maxDistM, 'meters');
var euclideanDist = targetImg.distance(euclideanKernel);
var vis = {min: 0, max: maxDistM};
Map.setCenter(-95.68, 46.46, 9);
Map.addLayer(euclideanDist, vis, 'Euclidean distance to target pixels');
// Manhattan distance.
var manhattanKernel = ee.Kernel.manhattan(maxDistM, 'meters');
var manhattanDist = targetImg.distance(manhattanKernel);
Map.addLayer(manhattanDist, vis, 'Manhattan distance to target pixels', false);
// Chebyshev distance.
var chebyshevKernel = ee.Kernel.chebyshev(maxDistM, 'meters');
var chebyshevDist = targetImg.distance(chebyshevKernel);
Map.addLayer(chebyshevDist, vis, 'Chebyshev distance to target pixels', false);
// Add the target layer to the map; water is blue, all else masked out.
Map.addLayer(targetImg.mask(targetImg), {palette: 'blue'}, 'Target pixels');
Configurazione di Python
Consulta la pagina
Ambiente Python per informazioni sull'API Python e sull'utilizzo di
geemap
per lo sviluppo interattivo.
import ee
import geemap.core as geemap
Colab (Python)
# The objective is to determine the per-pixel distance to a target
# feature (pixel value). In this example, the target feature is water in a
# land cover map.
# Import a Dynamic World land cover image and subset the 'label' band.
lc_img = ee.Image(
'GOOGLE/DYNAMICWORLD/V1/20210726T171859_20210726T172345_T14TQS'
).select('label')
# Create a binary image where the target feature is value 1, all else 0.
# In the Dynamic World map, water is represented as value 0, so we use the
# ee.Image.eq() relational operator to set it to 1.
target_img = lc_img.eq(0)
# Set a max distance from target pixels to consider in the analysis. Pixels
# with distance greater than this value from target pixels will be masked out.
# Here, we are using units of meters, but the distance kernels also accept
# units of pixels.
max_dist_m = 10000 # 10 km
# Calculate distance to target pixels. Several distance kernels are provided.
# Euclidean distance.
euclidean_kernel = ee.Kernel.euclidean(max_dist_m, 'meters')
euclidean_dist = target_img.distance(euclidean_kernel)
vis = {'min': 0, 'max': max_dist_m}
m = geemap.Map()
m.set_center(-95.68, 46.46, 9)
m.add_layer(euclidean_dist, vis, 'Euclidean distance to target pixels')
# Manhattan distance.
manhattan_kernel = ee.Kernel.manhattan(max_dist_m, 'meters')
manhattan_dist = target_img.distance(manhattan_kernel)
m.add_layer(
manhattan_dist, vis, 'Manhattan distance to target pixels', False
)
# Chebyshev distance.
chebyshev_kernel = ee.Kernel.chebyshev(max_dist_m, 'meters')
chebyshev_dist = target_img.distance(chebyshev_kernel)
m.add_layer(
chebyshev_dist, vis, 'Chebyshev distance to target pixels', False
)
# Add the target layer to the map water is blue, all else masked out.
m.add_layer(
target_img.mask(target_img), {'palette': 'blue'}, 'Target pixels'
)
m
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-07-26 UTC.
[null,null,["Ultimo aggiornamento 2025-07-26 UTC."],[[["\u003cp\u003eComputes the distance to the nearest non-zero pixel for each band in an image, using a specified distance kernel (Chebyshev, Euclidean, or Manhattan).\u003c/p\u003e\n"],["\u003cp\u003eAccepts an input image, a distance kernel, and an optional parameter to mask output pixels corresponding to masked input pixels.\u003c/p\u003e\n"],["\u003cp\u003eReturns an image where pixel values represent the distance to the nearest non-zero pixel in the input.\u003c/p\u003e\n"],["\u003cp\u003eOffers flexibility in defining the distance kernel and handling masked pixels.\u003c/p\u003e\n"],["\u003cp\u003eCan be used to analyze proximity to specific features in images, such as determining the distance to water bodies in a land cover map.\u003c/p\u003e\n"]]],[],null,["# ee.Image.distance\n\nComputes the distance to the nearest non-zero pixel in each band, using the specified distance kernel.\n\n\u003cbr /\u003e\n\n| Usage | Returns |\n|-----------------------------------------------|---------|\n| Image.distance`(`*kernel* `, `*skipMasked*`)` | Image |\n\n| Argument | Type | Details |\n|---------------|------------------------|-----------------------------------------------------------------|\n| this: `image` | Image | The input image. |\n| `kernel` | Kernel, default: null | The distance kernel. One of chebyshev, euclidean, or manhattan. |\n| `skipMasked` | Boolean, default: true | Mask output pixels if the corresponding input pixel is masked. |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\n// The objective is to determine the per-pixel distance to a target\n// feature (pixel value). In this example, the target feature is water in a\n// land cover map.\n\n// Import a Dynamic World land cover image and subset the 'label' band.\nvar lcImg = ee.Image(\n 'GOOGLE/DYNAMICWORLD/V1/20210726T171859_20210726T172345_T14TQS')\n .select('label');\n\n// Create a binary image where the target feature is value 1, all else 0.\n// In the Dynamic World map, water is represented as value 0, so we use the\n// ee.Image.eq() relational operator to set it to 1.\nvar targetImg = lcImg.eq(0);\n\n// Set a max distance from target pixels to consider in the analysis. Pixels\n// with distance greater than this value from target pixels will be masked out.\n// Here, we are using units of meters, but the distance kernels also accept\n// units of pixels.\nvar maxDistM = 10000; // 10 km\n\n// Calculate distance to target pixels. Several distance kernels are provided.\n\n// Euclidean distance.\nvar euclideanKernel = ee.Kernel.euclidean(maxDistM, 'meters');\nvar euclideanDist = targetImg.distance(euclideanKernel);\nvar vis = {min: 0, max: maxDistM};\nMap.setCenter(-95.68, 46.46, 9);\nMap.addLayer(euclideanDist, vis, 'Euclidean distance to target pixels');\n\n// Manhattan distance.\nvar manhattanKernel = ee.Kernel.manhattan(maxDistM, 'meters');\nvar manhattanDist = targetImg.distance(manhattanKernel);\nMap.addLayer(manhattanDist, vis, 'Manhattan distance to target pixels', false);\n\n// Chebyshev distance.\nvar chebyshevKernel = ee.Kernel.chebyshev(maxDistM, 'meters');\nvar chebyshevDist = targetImg.distance(chebyshevKernel);\nMap.addLayer(chebyshevDist, vis, 'Chebyshev distance to target pixels', false);\n\n// Add the target layer to the map; water is blue, all else masked out.\nMap.addLayer(targetImg.mask(targetImg), {palette: 'blue'}, 'Target pixels');\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\n# The objective is to determine the per-pixel distance to a target\n# feature (pixel value). In this example, the target feature is water in a\n# land cover map.\n\n# Import a Dynamic World land cover image and subset the 'label' band.\nlc_img = ee.Image(\n 'GOOGLE/DYNAMICWORLD/V1/20210726T171859_20210726T172345_T14TQS'\n).select('label')\n\n# Create a binary image where the target feature is value 1, all else 0.\n# In the Dynamic World map, water is represented as value 0, so we use the\n# ee.Image.eq() relational operator to set it to 1.\ntarget_img = lc_img.eq(0)\n\n# Set a max distance from target pixels to consider in the analysis. Pixels\n# with distance greater than this value from target pixels will be masked out.\n# Here, we are using units of meters, but the distance kernels also accept\n# units of pixels.\nmax_dist_m = 10000 # 10 km\n\n# Calculate distance to target pixels. Several distance kernels are provided.\n\n# Euclidean distance.\neuclidean_kernel = ee.Kernel.euclidean(max_dist_m, 'meters')\neuclidean_dist = target_img.distance(euclidean_kernel)\nvis = {'min': 0, 'max': max_dist_m}\nm = geemap.Map()\nm.set_center(-95.68, 46.46, 9)\nm.add_layer(euclidean_dist, vis, 'Euclidean distance to target pixels')\n\n# Manhattan distance.\nmanhattan_kernel = ee.Kernel.manhattan(max_dist_m, 'meters')\nmanhattan_dist = target_img.distance(manhattan_kernel)\nm.add_layer(\n manhattan_dist, vis, 'Manhattan distance to target pixels', False\n)\n\n# Chebyshev distance.\nchebyshev_kernel = ee.Kernel.chebyshev(max_dist_m, 'meters')\nchebyshev_dist = target_img.distance(chebyshev_kernel)\nm.add_layer(\n chebyshev_dist, vis, 'Chebyshev distance to target pixels', False\n)\n\n# Add the target layer to the map water is blue, all else masked out.\nm.add_layer(\n target_img.mask(target_img), {'palette': 'blue'}, 'Target pixels'\n)\nm\n```"]]