e-sensing/sits

Satellite image time series in R

SITS – 지구관측 데이터 큐브를 위한 위성 이미지 시계열 분석

무엇인가요sits 는 주로 R로 구현된 오픈소스 라이브러리이며, pysits 라는 가벼운 Python 래퍼를 제공합니다. 이 라이브러리는 데이터 큐브 에 저장된 위성 이미지 시계열 데이터를 구축하고 탐색하며 분류할 수 있게 해줍니다. AWS, Microsoft Planetary Computer, 브라질 데이터 큐브, Copernicus Data Space, Digital Earth Africa/Australia, 스위스 데이터 큐브 등 클라우드 플랫폼에 호스팅된 다양한 공개 지구관측 데이터셋(Sentinel-2, Landsat, MODIS 등)에 직접 연결할 수 있습니다.

왜 중요한가요 – 현대의 원격 탐사 프로젝트는 수년에 걸쳐 수천 장의 이미지를 다뤄야 하는 경우가 많습니다. sits 는 다음과 같은 번거로운 단계를 자동화합니다:

  1. 다운로드 – 클라우드 기반 STAC 카탈로그에서 이미지 가져오기.
  2. 정규화 – 불규칙한 데이터셋을 일관된 공간-시간 그리드로 변환 (gdalcubes 사용).
  3. 추출 – 학습용 데이터를 위한 레이블이 붙은 시계열 데이터 추출.
  4. 학습 – SVM, 랜덤 포레스트, XGBoost, MLP, 1-D ConvNets, ResNet, 시계열 어텐션 인코더 등 다양한 머신러닝 및 딥러닝 모델 훈련.
  5. 분류 – 전체 데이터 큐브를 분류 가능하며, torch/luz 스택을 통해 GPU 가속도 지원.
  6. 후처리 – 베이지안 평활화, 불확실성 추정, 액티브 러닝 루프.

이 모든 작업은 tibble, sf 객체, 래스터 파일과 호환되는 tidyverse 스타일 API로 통합되어 있으며, 워크플로우를 재현 가능하고 스크립트로 작성할 수 있습니다.


주요 기능 (README에서 직접 인용)

  • 다중 소스 데이터 큐브 생성 – AWS, MPC, BDC, CDSE, DEAFRICA, DEAUSTRALIA, SDC 등 다양한 클라우드 제공업체에서 Sentinel-1, Sentinel-2, Landsat, MODIS 등을 통합.
  • 정규화 – 사용자 정의 공간 해상도와 시간 간격(예: 60m / 15일)으로 불규칙한 컬렉션을 규칙적인 큐브로 변환.
  • 샘플 추출 및 품질 관리 – CSV 또는 shapefile에서 포인트/폴리곤의 시계열 데이터 추출; 선택적으로 자기조직화 맵(SOM) 품질 관리.
  • 광범위한 ML/DL 도구상자 – SVM, 랜덤 포레스트, XGBoost, MLP, TempCNN, ResNet, 시계열 자기 어텐션 인코더, LightTAE.
  • GPU 지원torch가 CUDA 대응 장치를 감지하면 딥러닝 모델이 자동으로 GPU에서 실행.
  • 공간-시간 세그멘테이션 – 시계열 데이터의 객체 기반 분류.
  • 베이지안 평활화 및 불확실성 – 분류 지도의 이상치를 제거하고 신뢰도를 제공하는 후처리.
  • 액티브 러닝 및 자기지도 학습 – 모델을 반복적으로 개선할 수 있는 도구.
  • Python APIpysits 는 R 함수를 완전히 반영하여 Python 사용자도 기능의 완전한 동등성을 제공.
  • 풍부한 문서Satellite Image Time Series Analysis on Earth Observation Data Cubes 전자책과 pkgdown 웹사이트.

일반적인 사용 사례 워크플로우

  1. 컬렉션 선택 (예: Microsoft Planetary Computer의 Sentinel-2 L2A).
  2. sits_cube() 로 큐브 정의 (타일, 밴드, 날짜).
  3. sits_regularize() 로 고정 60m / 15일 그리드로 정규화.
  4. CSV 또는 shapefile에서 학습 샘플 수집하고 sits_get_data() 로 시계열 데이터 추출.
  5. 모델 훈련 (예: rfor_model <- sits_train(samples, sits_rfor())).
  6. 개별 시계열 (sits_classify()) 또는 전체 큐브 분류하여 확률 래스터 생성.
  7. 결과 평활화 (sits_smooth()) 후 레이블링된 지도로 변환 (sits_label_classification()).
  8. plot() 또는 인터랙티브 sits_view() 로 시각화.

설치 방법

  • R (CRAN 안정 버전):
    install.packages("sits", dependencies = TRUE)
    
  • 개발 버전 (최신 수정사항):
    devtools::install_github("e-sensing/sits", dependencies = TRUE)
    
  • Python 래퍼 (R + arrow R 패키지 필요):
    pip install pysits   # Python 3.10+ 필요
    
  • GPU 지원은 torch R 패키지가 CUDA 대응 장치를 감지하면 자동으로 활성화됩니다.

생태계 및 상호운용성

  • 데이터 소스 – STAC 호환 클라우드 카탈로그 (AWS, MPC, BDC, CDSE, DEAFRICA, DEAUSTRALIA, SDC 등).
  • 기반 라이브러리 – 큐브 정규화: gdalcubes, 딥러닝: torch/luz, 데이터 처리: sf, stars, terra, tidyverse, SOM 품질 관리: kohonen, 고속 수치 계산: RcppArmadillo.
  • 출력 형식 – 래스터 파일 (GeoTIFF), 확률 큐브, 불확실성 레이어, 인터랙티브 지도.
  • 커뮤니티 – rOpenSci 생태계 구성원 (피어리뷰 배지), 안정적인 CRAN 릴리스, GitHub Actions를 통한 CI, 코드 커버리지 보고, 기여자 행동 강령 보유.

성숙도 및 라이선스

  • 라이프사이클r-lib 라이프사이클 배지로 stable 표시. CI, 코드 커버리지, 최근 릴리스 유지 중. rOpenSci 피어리뷰 (이슈 #596).
  • 라이선스 – GPL-2 (무료, 오픈소스, 코피레프트).
  • 인용 – 주요 논문: Satellite Image Time Series Analysis for Big Earth Observation Data (Remote Sensing 2021, DOI 10.3390/rs13132428).

누구에게 적합한가요?

  • 원격 탐사 연구자 – 토지 피복, 농업, 산림 파괴, 기후 모니터링을 위한 재현 가능한 파이프라인 필요.
  • 데이터 과학자 – 저수준 래스터 처리 코드 없이 최신 ML/DL을 위성 시계열에 적용하고 싶은 사람.
  • GIS 분석가 – R(또는 Python)에 익숙하고 클라우드 아카이브에서 대규모 EO 데이터를 가져와 분류 지도를 생성하고 싶은 사람.
  • 학생 및 교육자 – 전자책과 풍부한 예제로 EO 시계열 분석 교육 자료로 적합.

결론sits 는 클라우드 기반 지구관측 데이터, 정규화된 데이터 큐브, 현대적인 머신러닝 모델을 연결하는 포괄적인 오픈소스 도구상자이며, 사용자 친화적인 R/Python API로 제공됩니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트