레이블이 위성영상 클라우드 분석인 게시물을 표시합니다. 모든 게시물 표시
레이블이 위성영상 클라우드 분석인 게시물을 표시합니다. 모든 게시물 표시

2026-09-24

Google Earth Engine이란? 클라우드에서 위성영상 분석 | GeoAI 기초 8편

Google Earth Engine이란? 클라우드에서 위성영상 분석 | GeoAI 기초 8편

🎬 1분 브리핑 영상

📌 3줄 요약

  • Google Earth Engine은 위성영상을 클라우드에서 직접 분석하는 플랫폼이다.
  • 컬렉션·필터·리듀서 세 가지 사고 틀로 대부분의 분석을 설계할 수 있다.
  • 대규모 시계열 분석과 재난 현장의 신속한 변화 탐지에 특히 유리하다.

홍수가 발생했을 때 침수 범위를 확인하고 싶다고 해봅시다. 해당 지역의 위성영상을 구해서 내 컴퓨터에 내려받고, 소프트웨어를 열고, 처리를 기다리는 데만 수 시간이 걸릴 수 있습니다. 영상 한 장의 용량이 수십 기가바이트에 달하는 경우도 있으니까요.

Google Earth Engine(이하 GEE)은 이 흐름을 뒤집습니다. 영상을 내 컴퓨터로 가져오는 대신, 내가 분석 명령을 영상이 있는 서버로 보냅니다. 구글의 서버에는 수십 년치 위성영상이 이미 저장되어 있고, 분석은 그 자리에서 실행됩니다. 결과만 화면에 돌아오는 구조이기 때문에 로컬 저장 공간이나 처리 성능이 크게 중요하지 않습니다. 재난 상황처럼 시간이 촉박한 현장에서 이 구조가 어떤 의미인지, 차근차근 살펴보겠습니다.

🖥️ GEE는 일반 GIS 소프트웨어와 어떻게 다른가요?

QGIS나 ArcGIS 같은 도구는 데이터를 내 컴퓨터에 내려받아 처리하는 방식입니다. 반면 GEE는 브라우저에서 code.earthengine.google.com에 접속하면 편집기 화면이 바로 열리고, 코드를 실행하면 연산이 구글 서버에서 돌아갑니다. 즉, 수백 장의 Landsat 영상을 다루더라도 내 하드디스크는 거의 비어 있는 상태로 분석이 가능합니다. 한 가지 주의할 점은 인터페이스나 메뉴 이름이 업데이트에 따라 조금씩 바뀔 수 있으니, 공식 문서(developers.google.com/earth-engine)를 함께 참고하는 것이 좋습니다. 재난 대응 기관에서 현장 피해 면적을 빠르게 산출해야 할 때, 별도의 데이터 다운로드 단계 없이 분석을 시작할 수 있다는 점이 실무에서 큰 장점으로 꼽힙니다.

📦 컬렉션·필터·리듀서, 이 세 가지가 왜 중요한가요?

GEE를 처음 접하면 낯선 용어 세 개가 반복해서 등장합니다. 컬렉션(Collection)은 위성영상 여러 장의 묶음입니다. 예를 들어 Sentinel-2 영상 전체가 하나의 컬렉션입니다. 필터(Filter)는 그 묶음에서 필요한 것만 추려내는 체입니다. 특정 날짜 범위, 특정 지역, 구름 비율 이하 같은 조건을 걸 수 있습니다. 리듀서(Reducer)는 걸러진 영상들을 하나의 값이나 하나의 영상으로 요약하는 계산입니다. 여러 날짜의 영상을 중앙값으로 합치거나 최솟값·최댓값을 뽑아내는 작업이 여기에 해당합니다. 이 세 단계의 사고 틀을 익히면 "침수 전후 NDWI 변화를 한 달치 영상에서 뽑아보자"라는 요구를 코드로 옮기는 흐름이 자연스럽게 잡힙니다.

🔍 GEE 코드는 어떻게 생겼나요?

GEE는 JavaScript 기반 편집기와 Python API(geemap 라이브러리 등) 두 가지 방식으로 쓸 수 있습니다. 아래는 JavaScript 편집기에서 한국 지역의 Sentinel-2 영상을 불러와 구름이 적은 영상만 추려 중앙값 합성을 만드는 가장 기본적인 뼈대입니다.

var collection = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
  .filterDate('2024-07-01', '2024-07-31')
  .filterBounds(ee.Geometry.Point([127.5, 37.5]))
  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20));

var composite = collection.median();

Map.centerObject(composite, 9);
Map.addLayer(composite, {bands: ['B4', 'B3', 'B2'], min: 0, max: 3000}, '7월 중앙값');

코드 중 filterDate와 filterBounds가 필터, median()이 리듀서입니다. 편집기 상단의 Run 버튼을 누르면 오른쪽 지도 패널에 결과가 표시됩니다. 산불 피해 지역의 피해 전·후 영상을 이 구조로 비교하면 식생 손실 범위를 빠르게 시각화할 수 있습니다.

🌊 GEE가 특히 유리한 작업은 무엇인가요?

GEE가 빛을 발하는 분야는 시계열 분석과 대면적 처리입니다. 수십 년치 영상에서 연도별 NDVI 변화를 추적하거나, 나라 전체 면적의 토지피복 변화를 계산할 때 로컬 환경에서는 며칠이 걸릴 작업이 훨씬 짧은 시간 안에 끝납니다. 반면 아주 정밀한 지역 단위 분석, 또는 GEE가 제공하지 않는 독자적인 영상 데이터를 다뤄야 하는 경우에는 QGIS나 파이썬 환경이 더 적합할 수 있습니다. 직접 해봐야 아는 것이 있습니다. 자신이 다루려는 지역과 기간의 영상이 GEE 카탈로그에 포함되어 있는지 확인해야 합니다. 편집기에서 왼쪽 패널의 Search places and datasets 창에 데이터셋 이름을 입력하고, 결과 카드의 IMPORT 버튼을 누르면 해당 컬렉션의 시작 날짜와 공간 범위를 직접 확인할 수 있습니다. 홍수 피해 현황을 분석하려는 기관이라면 SAR 기반의 Sentinel-1 컬렉션이 카탈로그에 있는지, 원하는 날짜까지 포함되는지 이 방법으로 먼저 확인해야 합니다.

🚨 GEE를 쓸 때 놓치기 쉬운 주의점은 무엇인가요?

GEE는 연산을 즉시 실행하지 않고 명령을 쌓아두는 방식(지연 실행, Lazy Evaluation)으로 동작합니다. 코드를 작성하는 순간에는 실제 계산이 일어나지 않고, Map.addLayer나 Export 같은 출력 명령이 실행될 때 비로소 연산이 시작됩니다. 이 점을 모르면 중간 결과를 출력해 보려다 당황하는 경우가 생깁니다. 또한 분석 결과를 파일로 내려받으려면 편집기 상단 Tasks 탭에서 Export.image.toDrive 등의 명령을 확인하고 Run 버튼을 눌러야 내보내기가 시작됩니다. 용량이 크면 구글 드라이브로 분할 저장되기도 합니다. 재난 현장에서 침수 경계 폴리곤을 뽑아 GIS 파일로 공유해야 하는 상황이라면, Export 단계에 걸리는 시간까지 업무 흐름에 미리 포함시켜 두는 것이 좋습니다.

🖥️ 화면에서 따라하기

따라하기 단계

  1. GEE 접속
    브라우저에서 code.earthengine.google.com 에 접속, 구글 계정으로 로그인
  2. 데이터셋 확인
    왼쪽 패널 Search places and datasets 창에 'Sentinel-2' 입력 후 결과 카드 클릭, 공간·시간 범위 확인
  3. 컬렉션 불러오기
    데이터셋 카드의 IMPORT 버튼 클릭, 편집기 상단 Imports 영역에 변수명으로 추가됨
  4. 필터·리듀서 작성
    편집기에 filterDate·filterBounds·filter(구름 조건)·median() 코드 입력 후 Run 클릭
  5. 결과 확인
    오른쪽 지도 패널에서 Layers 토글로 레이어 켜고 끄며 영상 확인, 색상 범위는 레이어 이름 옆 톱니바퀴 아이콘으로 조정
  6. 결과 내보내기
    편집기 상단 Tasks 탭 클릭 후 Export 항목 옆 Run 버튼 눌러 구글 드라이브로 저장 시작

※ 프로그램 버전에 따라 메뉴 이름이 조금씩 다를 수 있습니다. 위 그림은 순서를 정리한 도식입니다.

✍️ 그대로 복사해 쓰는 프롬프트

GEE 초보자가 특정 재난 유형에 맞는 분석 코드 뼈대를 빠르게 얻기 위한 프롬프트

당신은 Google Earth Engine JavaScript API에 능숙한 공간정보 분석 전문가입니다.
아래 조건에 맞는 GEE 코드 뼈대를 작성해 주세요.
재난 유형: [홍수 / 산불 / 산사태 중 하나]
분석 목적: 피해 전후 영상을 비교해 변화 면적을 추출한다
대상 지역: [위도, 경도 또는 지역명]
분석 기간: 피해 전 [날짜 범위], 피해 후 [날짜 범위]
사용할 위성 데이터: [Sentinel-1 SAR / Sentinel-2 광학 중 하나]
요구 형식: 컬렉션 선언 → 필터 → 리듀서 → 지도 출력 → Tasks 탭 Export 순서로 작성
각 줄에 한국어 주석으로 역할을 설명해 주세요.
확인이 필요한 항목을 코드 아래에 번호 목록으로 따로 적어 주세요.
존재하지 않는 밴드 이름이나 데이터셋 ID는 쓰지 마세요.

※ 대괄호 부분을 상황에 맞게 바꿔서 쓰세요. 받은 답은 그대로 쓰지 말고 사실 확인을 거치세요.

🧪 직접 해보기

  • code.earthengine.google.com 편집기에서 Search places and datasets에 'Sentinel-2'를 입력해 카탈로그에 포함된 기간과 지역을 직접 확인해 본다.
  • 위의 코드 예시를 편집기에 붙여 넣고 Run을 눌러, 지도 패널에 7월 한반도 중앙값 합성 영상이 표시되는지 확인해 본다.
  • filterDate의 날짜 범위를 산불이 발생한 시기 전후로 바꿔보고, median() 대신 min()으로 바꿨을 때 결과가 어떻게 달라지는지 비교해 본다.

❓ 자주 묻는 질문

Q. GEE를 쓰려면 코딩을 잘해야 하나요?
A. 기본적인 분석은 컬렉션·필터·리듀서 패턴을 이해하면 짧은 코드로 시작할 수 있습니다. JavaScript를 전혀 모르더라도 공식 튜토리얼과 예제 코드를 조금씩 수정하는 방식으로 입문할 수 있습니다. Python 환경이 더 익숙하다면 geemap 같은 라이브러리를 통해 Python 문법으로도 GEE를 사용할 수 있습니다.

Q. GEE에서 분석한 결과를 QGIS에서 열 수 있나요?
A. Tasks 탭에서 GeoTIFF 형식으로 내보내기를 실행하면 구글 드라이브에 파일이 저장되고, 그 파일을 QGIS에서 레이어 > 레이어 추가 > 래스터 레이어로 불러올 수 있습니다. 벡터 결과물은 Shapefile 또는 GeoJSON 형식으로 내보내는 것이 일반적입니다.

Q. GEE는 누구나 무료로 쓸 수 있나요?
A. 구글은 연구·교육·비영리 목적의 사용에 대해 별도의 프로그램을 운영하고 있으나, 구체적인 이용 조건과 정책은 공식 사이트에서 직접 확인해야 합니다. 상업적 사용이나 대규모 처리가 필요한 경우에는 별도의 요금제가 적용될 수 있습니다.

Google Earth Engine은 위성영상을 다루는 진입 장벽을 크게 낮춰 준 도구입니다. 영상을 내려받는 시간과 저장 공간 걱정 없이 컬렉션·필터·리듀서 세 가지 사고 틀만 익히면, 홍수 침수 범위 추적부터 산불 피해 면적 산출까지 재난 분석의 상당 부분을 브라우저 하나로 해결할 수 있습니다. 물론 GEE가 모든 상황에 최선인 것은 아닙니다. 도구에 따라 다른 장단점을 이해하고 적재적소에 쓰는 것이 실무 역량의 핵심입니다. 다음 편에서는 GEE에서 뽑아낸 영상을 인공지능 모델과 연결하는 방법, 즉 위성 데이터를 학습에 활용하는 첫 단계를 살펴볼 예정입니다. 과연 위성영상을 AI 모델에 입력하려면 어떤 전처리가 필요할까요?

GeoAI 기초 시리즈 8편 · 전체 43편


재난안전과 GeoAI 이야기를 더 보고 싶다면 아래 채널도 함께 보세요.

📌 바로가기

GeoAI 위성·드론 영상 분석, 재난대응 산업이 뜬다 | 재난안전과 GeoAI

GeoAI 위성·드론 영상 분석 기술이 재난대응 산업의 중심으로 떠오르고 있다. 누리호 5차 발사, 위성·드론 영상 분석 스타트업, ArcGIS 경사지 위험 분석 서비스까지 오늘의 관련 소식을 정리했다. 📌 3줄 요약 아크넥사는 위성·드론 영상을...