티스토리 뷰
이번 글은 위성 이미지의 대표적인 태그 이미지 파일 형식(.tiff)을 활용도에 따라 Binary MatLab 파일 형식(.mat) 등 다른 파일 형식으로 변환하는 방법을 설명합니다.
목차
- 소개
- .tiff 형식의 위성 이미지 처리
- 데이터를 .mat 파일 형식으로 쓰기
1. 소개
태그 이미지 파일 형식(.tiff)은 손실 파일 형식을 피하기 위해
고품질 위성 이미지 데이터를 저장하는 데 널리 사용되는 파일 형식 중 하나입니다.
데이터 처리를 시연하기 위해 2020년 1월 27일 Sentinel-2 위성에서 캡처한 Sundarbans 위성 이미지를 사용합니다.
이 이미지에는 12개의 밴드와 분류 맵 및 다양한 위성 인덱스가 있습니다.
12개 밴드의 시각화는 아래와 같습니다.
2. TIFF로 위성 이미지 처리
TIFF에서 위성 이미지를 읽기 위해 지형 공간 래스터 데이터에 액세스하고
다양한 작업을 수행할 수 있는 rasterio 공간자료 처리 패키지를 사용합니다.
TIFF에서 위성 이미지를 읽으려면 Python의 표준 open() 메서드와 유사한 방식인 open() 메서드를 사용합니다.
아래 코드는 numpy를 사용하여 여러 위성 대역을 읽고 3차원 배열로 저장하는 방법을 보여줍니다.
rasterio.open() 메서드를 사용하여 다중 TIFF 위성 데이터를 읽는 방법을 보여줍니다.
from glob import glob
import numpy as np
from scipy.io import loadmat
from scipy.io import savemat
import rasterio as rio
path = './Satellite_data/sundarbans_data_11/'
sentinel_bands = glob(f"{path}*B?*.tiff")
sentinel_bands.sort()
l = []
for i in sentinel_bands:
with rio.open(i, 'r') as f:
l.append(f.read(1))
# Data
arr_st = np.stack(l)
arr_st = np.moveaxis(arr_st, 0, -1)
print(arr_st.shape)
savemat(file_name='sundarbans_bands.mat', mdict={"data": arr_st })
3. 데이터를 .mat 파일 형식으로 쓰기
.mat 파일 형식은 데이터를 이진 형식으로 저장하기 위해 지리 공간 데이터 과학 커뮤니티에서 널리 사용됩니다.
단일 또는 다차원 데이터를 MAT 형식으로 변환하려면 scipy 패키지의 savemat 방법을 사용합니다.
savemat() 메서드는 주로 두 개의 매개변수를 사용합니다.
file_name: 쓸 데이터의 파일 이름.
mdict: 매트 파일 변수를 저장하기 위한 사전입니다.
아래 코드는 rasterio.open() 메서드를 사용하여
TIFF에서 위성 이미지를 읽고
파일 이름이 'classification_map.mat'인 scipy.io.savemat() 메서드를 사용하여
데이터를 MAT 파일 형식으로 쓰는 방법을 보여줍니다.
import rasterio as rio
path = 'path = './Satellite_Imagery_Analysis/Data/sundarbans_raw_data/''
filename = f"{path}2020-01-27-00_00_2020-01-27-23_59_Sentinel-2_L2A_Scene_classification_map.tiff"
with rio.open(filename, 'r') as f:
data = f.read(1)
print(f"Size: {data.shape}")
savemat(file_name='classification_map.mat', mdict={"classification_map": data })
'머신러닝 & 딥러닝' 카테고리의 다른 글
R기반 SDM패키지를 이용한 생물종 분포모델 - 2편 (0) | 2023.03.05 |
---|---|
R기반 SDM 패키지를 이용한 생물종 분포 모델-1편 (0) | 2023.03.04 |
JSON 데이터와 CSV데이터를 랜덤으로 생성하기 (0) | 2023.02.12 |
자바(Java SE(JRE/JDK)) 무료 버전 확인 및 설치 (0) | 2023.01.18 |
오프라인 환경에서 python 패키지 일괄 다운로드 및 설치 (0) | 2022.09.09 |