공지사항:
2025년 4월 15일 전에 Earth Engine 사용을 위해 등록된 모든 비상업용 프로젝트는 Earth Engine 액세스를 유지하기 위해
비상업용 자격 요건을 인증해야 합니다.
ImageCollection에 매핑
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
ImageCollection
의 모든 Image
에 함수를 적용하려면 imageCollection.map()
를 사용하세요. map()
의 유일한 인수는 ee.Image
라는 하나의 매개변수를 사용하는 함수입니다. 예를 들어 다음 코드는 컬렉션의 모든 이미지에 타임스탬프 밴드를 추가합니다.
코드 편집기 (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));
Python 설정
Python API 및 대화형 개발을 위한 geemap
사용에 관한 자세한 내용은
Python 환경 페이지를 참고하세요.
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))
사전 정의된 함수에서 getNumber()
메서드는 속성의 숫자 값에서 새 Image
를 만드는 데 사용됩니다. 감소 및 합성 섹션에서 설명한 대로 시간 밴드를 사용하면 변화를 선형적으로 모델링하고 합성물을 만드는 데 유용합니다.
매핑된 함수는 실행할 수 있는 작업이 제한됩니다. 특히 함수 외부의 변수를 수정할 수 없으며, 아무것도 출력할 수 없으며, JavaScript 및 Python 'if' 또는 'for' 문을 사용할 수 없습니다. 하지만 ee.Algorithms.If()
를 사용하여 매핑된 함수에서 조건부 연산을 실행할 수 있습니다. 예를 들면 다음과 같습니다.
코드 편집기 (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));
Python 설정
Python API 및 대화형 개발을 위한 geemap
사용에 관한 자세한 내용은
Python 환경 페이지를 참고하세요.
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))
출력 ImageCollection의 이미지 목록을 검사하고 If()
알고리즘에서 평가한 조건이 true이면 출력에 상수 이미지가 포함된다는 점에 유의합니다. 서버 측 조건부 함수를 보여주지만(Earth Engine의 클라이언트와 서버에 대해 자세히 알아보기) 일반적으로 If()
를 사용하지 말고 대신 필터를 사용하세요.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-07-25(UTC)
[null,null,["최종 업데이트: 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."]]