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 는 다음과 같은 번거로운 단계를 자동화합니다:
- 다운로드 – 클라우드 기반 STAC 카탈로그에서 이미지 가져오기.
- 정규화 – 불규칙한 데이터셋을 일관된 공간-시간 그리드로 변환 (gdalcubes 사용).
- 추출 – 학습용 데이터를 위한 레이블이 붙은 시계열 데이터 추출.
- 학습 – SVM, 랜덤 포레스트, XGBoost, MLP, 1-D ConvNets, ResNet, 시계열 어텐션 인코더 등 다양한 머신러닝 및 딥러닝 모델 훈련.
- 분류 – 전체 데이터 큐브를 분류 가능하며,
torch/luz스택을 통해 GPU 가속도 지원. - 후처리 – 베이지안 평활화, 불확실성 추정, 액티브 러닝 루프.
이 모든 작업은 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 API –
pysits는 R 함수를 완전히 반영하여 Python 사용자도 기능의 완전한 동등성을 제공. - 풍부한 문서 – Satellite Image Time Series Analysis on Earth Observation Data Cubes 전자책과 pkgdown 웹사이트.
일반적인 사용 사례 워크플로우
- 컬렉션 선택 (예: Microsoft Planetary Computer의 Sentinel-2 L2A).
sits_cube()로 큐브 정의 (타일, 밴드, 날짜).sits_regularize()로 고정 60m / 15일 그리드로 정규화.- CSV 또는 shapefile에서 학습 샘플 수집하고
sits_get_data()로 시계열 데이터 추출. - 모델 훈련 (예:
rfor_model <- sits_train(samples, sits_rfor())). - 개별 시계열 (
sits_classify()) 또는 전체 큐브 분류하여 확률 래스터 생성. - 결과 평활화 (
sits_smooth()) 후 레이블링된 지도로 변환 (sits_label_classification()). plot()또는 인터랙티브sits_view()로 시각화.
설치 방법
- R (CRAN 안정 버전):
install.packages("sits", dependencies = TRUE) - 개발 버전 (최신 수정사항):
devtools::install_github("e-sensing/sits", dependencies = TRUE) - Python 래퍼 (R +
arrowR 패키지 필요):pip install pysits # Python 3.10+ 필요 - GPU 지원은
torchR 패키지가 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로 제공됩니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트