티스토리 뷰
반응형
1. GIS 파일형태 중 하나인 asc 파일을 tif 파일 형태로 저장
- 이를 위해서는 관련된 gdal 패키지를 불러온다.
- 다음으로 입력파일과 출력파일 이름을 이용해서 ascTotiff()함수를 실행하면 된다.
- 여기서 입력파일은 alt_110_skorea.asc이고 출력되는 파일이름은 alt_110_skorea.tif 이다.
# 패키지 불러오기
from osgeo import gdal
# asc 파일을 geoTiff 파일로 저장하기
def ascTotiff(in_asc, out_tif=None):
in_asc = in_asc
out_tif = out_tif
print(in_asc)
os.makedirs(output_folder, exist_ok=True)
if out_tif is None:
out_tif = output_folder + in_asc.split('/')[-1].split(".")[0] + ".tif"
drv = gdal.GetDriverByName("GTiff")
ds_in = gdal.Open(in_asc)
print(ds_in)
proj = ds_in.GetProjection()
ds_out = drv.CreateCopy(out_tif, ds_in)
# srs = osr.SpatialReference()
# srs.ImportFromEPSG(4326)
# ds_out.SetProjection(srs.ExportToWkt())
ds_out.SetProjection(proj)
ds_in = None
ds_out = None
in_asc = "./data/layers/alt_110_skorea.asc"
out_tif = "./data/outputs/alt_110_skorea1.tif"
ascTotiff(in_asc, out_tif)
2. 여러개 asc 파일을 처리하는 방식
- 다음 그림처럼 C:\python_work\maxent_auto\data\layers 폴더안에 asc 파일이 여러개 있을 때 처리하는 방식을 설명한다.
- 우선 입력폴더와 출력폴더를 명시하고
base_folder = "./data/layers/"
output_folder = "./data/tif_outputs/"
- 폴더안에 있는 asc파일들을 리스트 형태로 만든다.
asc_list = [asc_file for asc_file in os.listdir(
base_folder) if asc_file[-4:] == ".asc"]
- asc 파일을 tif파일로 변환하기 위한 ascTotiff()함수를 작성한다.
- out_tif 매개변수 가 없으면 입력파일에서 출력이름을 생성한다.
# asc 파일을 geoTiff 파일로 저장하기
def ascTotiff(in_asc, out_tif=None):
in_asc = in_asc
out_tif = out_tif
print(in_asc)
os.makedirs(output_folder, exist_ok=True)
if out_tif is None:
out_tif = output_folder + in_asc.split('/')[-1].split(".")[0] + ".tif"
drv = gdal.GetDriverByName("GTiff")
ds_in = gdal.Open(in_asc)
print(ds_in)
proj = ds_in.GetProjection()
ds_out = drv.CreateCopy(out_tif, ds_in)
# srs = osr.SpatialReference()
# srs.ImportFromEPSG(4326)
# ds_out.SetProjection(srs.ExportToWkt())
ds_out.SetProjection(proj)
ds_in = None
ds_out = None
- 다음으로 asc 파일 리스트를 가지고 for 루프문으로 위의 ascTotiff()함수를 반복 실행하면 된다.
for asc in asc_list:
input_asc = base_folder + asc
print(f"{input_asc} 변환 중 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
ascTotiff(input_asc)
반응형
'QGIS실습' 카테고리의 다른 글
TWI(Topograhpic Wetness Index) 주제도 제작하기 (0) | 2023.03.18 |
---|---|
래스터 이미지를 여러 장의 Tile 맵으로 분할하기 (0) | 2023.02.25 |
python 기반 GIS 공간분석(spatial analysis) 관련 패키지 설치 (0) | 2023.02.12 |
[실습-09] QGIS에서 구글지도 불러오기 (0) | 2023.01.08 |
QGIS 토지피복지도 제작 - 2부. 위성이미지에서 관심지역 자르기 (0) | 2022.12.27 |
댓글