티스토리 뷰
위성영상을 python 코딩을 이용해서 불러오고 저장하기 위해서는 rasterio 패키지가 필요하고 설치는 다음 구분으로 실행하면 된다.
pip install rasterio
1. 위성사진 불러오기
import rasterio as rio
path = "example-total2.tif"
dataset = rio.open(path )
2. 위성사진 시각화하기
import rasterio as rio
from rasterio.plot import show
show(dataset, cmap="gray")
3. 위성사진 정보를 일괄적으로 보기
dataset.meta
{'driver': 'GTiff', 'dtype': 'float32', 'nodata': 0.0, 'width': 250, 'height': 250, 'count': 1, 'crs': CRS.from_wkt('PROJCS["WGS 84 / UTM zone 15N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32615"]]'), 'transform': Affine(30.0, 0.0, 462405.0, 0.0, -30.0, 1741815.0)}
4. 위성사진 정보를 개별적으로 보기
1) 파일포맷 :
dataset.driver
'GTiff'
2) 위성사진 채널수 :
dataset.count
1
3) 위성사진 가로폭 :
dataset.width
250
4) 위성사진 세로폭 :
dataset.height
250
5) 위성사진 좌표정보
dataset.crs
CRS.from_wkt('PROJCS["WGS 84 / UTM zone 15N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32615"]]')
6) 위성사진 데이터 형식
dataset.dtypes
('float32',)
7) 위성사진 좌표변환
dataset.transform
Affine(30.0, 0.0, 462405.0, 0.0, -30.0, 1741815.0)
6. 위성사진 다름이름으로 저장하기
1) 빈 영상자료 생성
outputdata = rio.open("output.tif", "w",
driver="GTiff",
width =dataset.width,
height =dataset.height,
count=1,
dtype='float32',
transform = dataset.transform
)
2) 빈 영상자료에 데이터 쓰기
outputdata.write(dataset.read(1), 1)
3) 영상자료 닫기
outputdata.close()
'Remote Sensing' 카테고리의 다른 글
우리나라 Landsat 위성 이동경로 - WRS(Worldwide Reference System) 2 (0) | 2022.09.09 |
---|---|
[실습-03] 위성영상자료를 이용한 토지피복 지도 만들기(1) - QGIS : Semi-Automatic Classification 플러그인 설치하기 (0) | 2022.09.08 |
넘파이 스택함수를 이용해서 위성영상 입력 데이터 다루기 (0) | 2022.07.27 |
sentinel-2 위성영상의 파장영역과 식생지수 값에 따른 식생상태 (0) | 2022.07.27 |
[실습-01] Landsat 8 이미지 다운로드 (0) | 2022.07.20 |