Home [GIS] Rasterio 기초 사용법
Post
Cancel

[GIS] Rasterio 기초 사용법

Install of Rasterio

1
2
# Colab에서 rasterio 설치
pip install rasterio
1
2
import rasterio
rasterio.__version__ # 1.3.7

Reading raster dataset

1
2
3
# image에 대한 읽기 모드 -> 이미지에 대한 정보만 추출 가능, 처리나 셀 값 변경 불가능
img = rasterio.open("/content/nepal_lc_2020.tif")
img
1
2
3
# Data Source 읽기
data = img.read()
data

Reading metadata of raster

1
2
# 메타 데이터 읽기
img.meta
1
2
3
4
5
6
7
8
9
{'driver': 'GTiff',
 'dtype': 'uint8',
 'nodata': 255.0,
 'width': 2932,
 'height': 1485,
 'count': 1,
 'crs': CRS.from_epsg(4326),
 'transform': Affine(0.0027777777777780012, 0.0, 80.05847091000004,
        0.0, -0.0027777777777780012, 30.472819010000357)}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 파일명 -> /content/nepal_lc_2020.tif
img.name

# 밴드 수 -> 1
img.count

# image shape -> (height, width) -> (1485, 2932)
img.shape

# 너비 -> 2932
img.width

# 높이 -> 1485
img.height

# driver -> GTiff
img.driver

# 좌표계 -> CRS.from_epsg(4326)
img.crs

# 좌표 변환
img.transform

# 설명
img.descriptions

# 데이터 크기 -> 4354020
data.size

# 데이터 최대값, 최소값 -> 255, 10
print(data.max(), data.min())

Visualization of raster

1
2
3
from rasterio.plot import show

show(img)

image

1
2
3
from rasterio.plot import show, show_hist

show_hist(img, bins=50, title="Land Cover Map of Nepal")

image

Writing the raster data

1
2
3
4
5
6
7
8
9
10
11
12
# 데이터 저장
with rasterio.open(r"/content/output/nepal_lc_2020_out.tif", 'w',
                   driver=img.driver,
                   height=img.height,
                   width=img.width,
                   count=img.count,
                   crs=img.crs,
                   transform=img.transform,
                   dtype=data.dtype
                   ) as dst:

  dst.write(data)
1
2
3
# 저장한 데이터 불러오기
img_out = rasterio.open("/content/output/nepal_lc_2020_out.tif")
show(img_out)
This post is licensed under CC BY 4.0 by the author.