liminfo

Google Earth Engine Reference

GEE JS/Python API/데이터셋/알고리즘 레퍼런스

25개 결과

Google Earth Engine Reference 소개

Google Earth Engine 레퍼런스는 GEE 클라우드 기반 지리공간 분석 플랫폼의 검색 가능한 치트 시트로, JavaScript Code Editor API와 Python API를 모두 다룹니다. ee.Image의 밴드 선택과 normalizedDifference(), ee.ImageCollection의 .filterDate(), .filterBounds(), 구름량 필터링, ee.Geometry/ee.Feature/ee.FeatureCollection 벡터 데이터 처리 등 핵심 데이터 타입을 상세히 설명합니다.

원격탐사 실무에서 자주 사용하는 워크플로의 코드 예제를 제공합니다. NDVI/NDWI 분광지수 계산, ee.Classifier.smileRandomForest()를 활용한 지도학적 분류, .reduce()와 .median()을 사용한 시간 합성, ee.Reducer 기반 구역별 통계, ui.Chart 차트 생성 등을 포함합니다. Python API 섹션에서는 ee.Initialize() 인증, geemap 라이브러리의 Jupyter 시각화, matplotlib 시계열 플롯 작성법을 다룹니다.

데이터셋 섹션에서는 Earth Engine에서 가장 널리 사용되는 위성 영상 컬렉션을 안내합니다. Landsat Collection 2(LC08/LC09, 30m, 16일 주기), Sentinel-2 지표반사도(10m, 5일 주기), MODIS 제품(NDVI, LST, 지표반사도), ERA5/CHIRPS 기후 데이터, SRTM/ALOS/Copernicus DEM, Dynamic World/ESA WorldCover 토지피복 데이터셋을 포함하며, Export.image.toDrive() 내보내기와 Earth Engine Apps 배포도 다룹니다.

주요 기능

  • ee.Image API 완전 레퍼런스 - 밴드 선택, normalizedDifference()로 NDVI/NDWI 계산, Map.addLayer() 시각화 파라미터
  • ee.ImageCollection 필터링 파이프라인 - .filterDate(), .filterBounds(), 구름량 임계값, .median()/.mean()/.reduce() 시간 합성
  • ee.Classifier.smileRandomForest()를 활용한 지도학적 분류 워크플로 - 훈련 데이터 샘플링부터 분류 결과 시각화까지
  • Python API 설정 가이드 - ee.Authenticate(), ee.Initialize(), geemap 대화형 지도, matplotlib 시계열 차트 생성
  • 주요 데이터셋 카탈로그: Landsat 8/9(30m), Sentinel-2(10m), MODIS(250m-1km), ERA5 기후, CHIRPS 강수, SRTM/ALOS DEM
  • ee.Geometry(Point, Rectangle, Polygon), ee.Feature 속성, FAO/GAUL 경계 기반 ee.FeatureCollection 벡터 연산
  • ee.Reducer 통계 연산 - mean, histogram, minMax, frequencyHistogram 등 reduceRegion() 기반 지역 분석
  • 내보내기 및 배포 워크플로: Export.image.toDrive() 축척/좌표계/maxPixels 설정과 ui.Panel/ui.Button 기반 Apps 배포

자주 묻는 질문

Google Earth Engine이란 무엇이고 데스크톱 GIS와 어떻게 다른가요?

Google Earth Engine은 페타바이트 급 위성영상과 지리공간 데이터에 접근할 수 있는 클라우드 기반 분석 플랫폼입니다. 데스크톱 GIS와 달리 모든 처리가 구글 클라우드에서 병렬 처리되어 데이터 다운로드 없이 지구 규모 분석이 가능합니다. JavaScript Code Editor와 Python API를 제공하며, 비상업적/연구용으로 무료입니다.

ImageCollection을 날짜, 위치, 구름량으로 어떻게 필터링하나요?

필터링 메서드를 체이닝합니다: ee.ImageCollection("LANDSAT/LC08/C02/T1_L2").filterDate("2023-01-01", "2023-12-31").filterBounds(geometry).filter(ee.Filter.lt("CLOUD_COVER", 20)). filterDate()는 ISO 날짜 문자열, filterBounds()는 ee.Geometry 객체, ee.Filter.lt()는 구름량 등 메타데이터 속성으로 필터링합니다.

Earth Engine에서 Landsat 8 영상의 NDVI를 어떻게 계산하나요?

ee.Image의 normalizedDifference() 메서드를 사용합니다: var ndvi = image.normalizedDifference(["B5", "B4"]).rename("NDVI"). Landsat 8/9에서 B5는 NIR, B4는 Red입니다. Sentinel-2는 B8(NIR)과 B4(Red)를 사용합니다. 전체 컬렉션에 적용하려면 매핑 함수를 정의하고 collection.map(addNDVI)로 적용합니다.

.median()과 .reduce()의 차이점은 무엇인가요?

.median()은 .reduce(ee.Reducer.median())의 축약형으로 픽셀별 중간값을 계산하여 구름 잡음을 효과적으로 제거합니다. .reduce()는 .mean(), .max(), .percentile([10, 50, 90]) 등 다양한 ee.Reducer를 받아 시간 스택을 단일 합성 영상으로 조합하는 방식을 더 세밀하게 제어할 수 있습니다.

지도학적 토지피복 분류를 어떻게 수행하나요?

먼저 image.sampleRegions({collection: trainingPoints, scale: 30})으로 훈련 데이터를 샘플링합니다. 분류기를 훈련시킵니다: var classifier = ee.Classifier.smileRandomForest(100).train(training, "class", bands). 마지막으로 image.classify(classifier)로 영상을 분류합니다. Map.addLayer(classified, {min: 0, max: numClasses})로 색상 팔레트와 함께 시각화할 수 있습니다.

Python API를 geemap과 함께 Jupyter에서 어떻게 설정하나요?

pip install earthengine-api geemap으로 설치한 후, ee.Authenticate()로 최초 인증하고 ee.Initialize(project="my-project")로 초기화합니다. import geemap; Map = geemap.Map(center=[37.5, 127], zoom=10); Map.addLayer(image, vis_params, "Layer")로 대화형 지도를 생성합니다. geemap은 Earth Engine 객체를 Jupyter에서 네이티브로 지원합니다.

Earth Engine에서 식생 모니터링에 사용할 수 있는 위성 데이터셋은 무엇인가요?

주요 데이터셋으로 Landsat 8/9 Collection 2 지표반사도(30m, 16일 주기), Sentinel-2 조화 SR(10m, 5일 주기), MODIS NDVI(1km, 16일 주기)가 있습니다. 토지피복은 Dynamic World가 Sentinel-2 기반 근실시간 10m 분류를, ESA WorldCover가 10m 연간 토지피복도를 제공합니다.

Earth Engine 결과를 Google Drive로 어떻게 내보내나요?

Export.image.toDrive({image: result, description: "export_name", folder: "GEE_exports", region: geometry, scale: 30, maxPixels: 1e13, crs: "EPSG:4326"})을 사용합니다. Code Editor의 Tasks 탭에서 수동으로 시작해야 하며, 큰 영역은 maxPixels를 충분히 높게 설정합니다. Python API에서도 동일한 함수를 사용할 수 있습니다.