Anuncio: Todos los proyectos no comerciales registrados para usar Earth Engine antes del
15 de abril de 2025 deben
verificar su elegibilidad no comercial para mantener el acceso a Earth Engine.
Cómo asignar imágenes a una ImageCollection
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Para aplicar una función a cada Image
en un ImageCollection
, usa imageCollection.map()
. El único argumento de map()
es una función que toma un parámetro: un ee.Image
. Por ejemplo, el siguiente código
agrega una banda de marca de tiempo a cada imagen de la colección.
Editor de código (JavaScript)
// Load a Landsat 8 collection for a single path-row, 2021 images only.
var collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
.filterDate('2021', '2022')
.filter(ee.Filter.eq('WRS_PATH', 44))
.filter(ee.Filter.eq('WRS_ROW', 34));
// This function adds a band representing the image timestamp.
var addTime = function(image) {
return image.addBands(image.getNumber('system:time_start'));
};
// Map the function over the collection and display the result.
print(collection.map(addTime));
Configuración de Python
Consulta la página
Entorno de Python para obtener información sobre la API de Python y el uso de geemap
para el desarrollo interactivo.
import ee
import geemap.core as geemap
Colab (Python)
# Load a Landsat 8 collection for a single path-row, 2021 images only.
collection = (
ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
.filterDate('2021', '2022')
.filter(ee.Filter.eq('WRS_PATH', 44))
.filter(ee.Filter.eq('WRS_ROW', 34))
)
# This function adds a band representing the image timestamp.
def add_time(image):
return image.addBands(image.getNumber('system:time_start'))
# Map the function over the collection and display the result.
display(collection.map(add_time))
Ten en cuenta que, en la función predefinida, se usa el método getNumber()
para crear un Image
nuevo a partir del valor numérico de una propiedad. Como se analizó en las secciones Reducción y Combinación, tener la banda horaria es útil para el modelado lineal del cambio y para crear composiciones.
La función asignada tiene limitaciones en las operaciones que puede realizar. Específicamente, no puede modificar variables fuera de la función, no puede imprimir nada y no puede usar las sentencias "if" o "for" de JavaScript y Python. Sin embargo, puedes usar ee.Algorithms.If()
para realizar operaciones condicionales en una función asignada. Por ejemplo:
Editor de código (JavaScript)
// Load a Landsat 8 collection for a single path-row, 2021 images only.
var collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
.filterDate('2021', '2022')
.filter(ee.Filter.eq('WRS_PATH', 44))
.filter(ee.Filter.eq('WRS_ROW', 34));
// This function uses a conditional statement to return the image if
// the solar elevation > 40 degrees. Otherwise it returns a "zero image".
var conditional = function(image) {
return ee.Algorithms.If(ee.Number(image.get('SUN_ELEVATION')).gt(40),
image,
ee.Image(0));
};
// Map the function over the collection and print the result. Expand the
// collection and note that 7 of the 22 images are now "zero images'.
print('Expand this to see the result', collection.map(conditional));
Configuración de Python
Consulta la página
Entorno de Python para obtener información sobre la API de Python y el uso de geemap
para el desarrollo interactivo.
import ee
import geemap.core as geemap
Colab (Python)
# Load a Landsat 8 collection for a single path-row, 2021 images only.
collection = (
ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
.filterDate('2021', '2022')
.filter(ee.Filter.eq('WRS_PATH', 44))
.filter(ee.Filter.eq('WRS_ROW', 34))
)
# This function uses a conditional statement to return the image if
# the solar elevation > 40 degrees. Otherwise it returns a "zero image".
def conditional(image):
return ee.Algorithms.If(
ee.Number(image.get('SUN_ELEVATION')).gt(40), image, ee.Image(0)
)
# Map the function over the collection and print the result. Expand the
# collection and note that 7 of the 22 images are now "zero images'.
display('Expand this to see the result', collection.map(conditional))
Inspecciona la lista de imágenes en la ImageCollection de salida y observa que, cuando la condición que evalúa el algoritmo If()
es verdadera, el resultado contiene una imagen constante. Aunque esto demuestra una función condicional del servidor (obtén más información sobre el cliente y el servidor en Earth Engine), evita If()
en general y usa filtros en su lugar.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-07-25 (UTC)
[null,null,["Última actualización: 2025-07-25 (UTC)"],[[["\u003cp\u003eThe \u003ccode\u003eimageCollection.map()\u003c/code\u003e function applies a specified function to each image within an ImageCollection in Earth Engine.\u003c/p\u003e\n"],["\u003cp\u003eThe function passed to \u003ccode\u003emap()\u003c/code\u003e should accept a single \u003ccode\u003eee.Image\u003c/code\u003e as input and return a modified image.\u003c/p\u003e\n"],["\u003cp\u003eWhile mapped functions have limitations like not modifying external variables or using conventional loops, conditional operations are achievable using \u003ccode\u003eee.Algorithms.If()\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eDespite the availability of \u003ccode\u003eee.Algorithms.If()\u003c/code\u003e, prioritize using filters for conditional logic whenever possible for better efficiency and code clarity.\u003c/p\u003e\n"]]],["To apply a function to each `Image` in an `ImageCollection`, use `imageCollection.map()`, providing a function that takes an `ee.Image` as input. This function can add bands, such as a timestamp using `image.addBands(image.getNumber('system:time_start'))`. Conditional logic can be implemented within the mapped function using `ee.Algorithms.If()`, allowing for operations based on image properties like solar elevation, though filtering is preferred. This conditional process is server-side and operates on the entire collection.\n"],null,["# Mapping over an ImageCollection\n\nTo apply a function to every `Image` in an `ImageCollection` use\n`imageCollection.map()`. The only argument to `map()` is a\nfunction which takes one parameter: an `ee.Image`. For example, the following\ncode adds a timestamp band to every image in the collection.\n\n### Code Editor (JavaScript)\n\n```javascript\n// Load a Landsat 8 collection for a single path-row, 2021 images only.\nvar collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')\n .filterDate('2021', '2022')\n .filter(ee.Filter.eq('WRS_PATH', 44))\n .filter(ee.Filter.eq('WRS_ROW', 34));\n\n// This function adds a band representing the image timestamp.\nvar addTime = function(image) {\n return image.addBands(image.getNumber('system:time_start'));\n};\n\n// Map the function over the collection and display the result.\nprint(collection.map(addTime));\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# Load a Landsat 8 collection for a single path-row, 2021 images only.\ncollection = (\n ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')\n .filterDate('2021', '2022')\n .filter(ee.Filter.eq('WRS_PATH', 44))\n .filter(ee.Filter.eq('WRS_ROW', 34))\n)\n\n\n# This function adds a band representing the image timestamp.\ndef add_time(image):\n return image.addBands(image.getNumber('system:time_start'))\n\n\n# Map the function over the collection and display the result.\ndisplay(collection.map(add_time))\n```\n\nNote that in the predefined function, the `getNumber()` method is used\nto create a new `Image` from the numerical value of a property. As discussed in\nthe [Reducing](/earth-engine/guides/ic_reducing) and\n[Compositing](/earth-engine/guides/ic_composite_mosaic)\nsections, having the time band is useful for linear modeling of change and for making\ncomposites.\n\nThe mapped function is limited in the operations it can perform. Specifically, it can't\nmodify variables outside the function; it can't print anything; it can't use JavaScript and\nPython 'if' or 'for' statements. However, you can use `ee.Algorithms.If()` to\nperform conditional operations in a mapped function. For example:\n\n### Code Editor (JavaScript)\n\n```javascript\n// Load a Landsat 8 collection for a single path-row, 2021 images only.\nvar collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')\n .filterDate('2021', '2022')\n .filter(ee.Filter.eq('WRS_PATH', 44))\n .filter(ee.Filter.eq('WRS_ROW', 34));\n\n// This function uses a conditional statement to return the image if\n// the solar elevation \u003e 40 degrees. Otherwise it returns a \"zero image\".\nvar conditional = function(image) {\n return ee.Algorithms.If(ee.Number(image.get('SUN_ELEVATION')).gt(40),\n image,\n ee.Image(0));\n};\n\n// Map the function over the collection and print the result. Expand the\n// collection and note that 7 of the 22 images are now \"zero images'.\nprint('Expand this to see the result', collection.map(conditional));\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# Load a Landsat 8 collection for a single path-row, 2021 images only.\ncollection = (\n ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')\n .filterDate('2021', '2022')\n .filter(ee.Filter.eq('WRS_PATH', 44))\n .filter(ee.Filter.eq('WRS_ROW', 34))\n)\n\n\n# This function uses a conditional statement to return the image if\n# the solar elevation \u003e 40 degrees. Otherwise it returns a \"zero image\".\ndef conditional(image):\n return ee.Algorithms.If(\n ee.Number(image.get('SUN_ELEVATION')).gt(40), image, ee.Image(0)\n )\n\n\n# Map the function over the collection and print the result. Expand the\n# collection and note that 7 of the 22 images are now \"zero images'.\ndisplay('Expand this to see the result', collection.map(conditional))\n```\n\nInspect the list of images in the output ImageCollection and note that when the\ncondition evaluated by the `If()` algorithm is true, the output contains a\nconstant image. Although this demonstrates a server-side conditional function\n([learn more about client vs. server in Earth Engine](/earth-engine/guides/client_server)),\navoid `If()` in general and use filters instead."]]