티스토리 뷰
반응형
다음 그림처럼 asc file을 일괄적으로 tif 파일로 변환하는 python coding을 설명하고자 한다.
python 버전이 3.8.12인 아나콘다 가상환경 geo38로 코딩을 진행한다.
1. 관련된 파이썬 패키지를 불러온다
import os
from osgeo import gdal
import pandas as pd
import numpy as np
import glob
2. 입력폴더와 출력폴더를 선언한다.
base_folder = "./data/layers/"
output_folder = "./data/tif_outputs/"
3. asc 파일을 tif파일로 변환하는 함수를 작성한다.
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
4. 폴더 안에 있는 모든 asc파일을 tif 파일로 변환하는 과정을 반복 수행한다.
asc_list = [asc_file for asc_file in os.listdir(
base_folder) if asc_file[-4:] == ".asc"]
for asc in asc_list:
input_asc = base_folder + asc
print(f"{input_asc} 변환 중 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
ascTotiff(input_asc)
5. 전체 코드는 다음과 같다.
import os
from osgeo import gdal
import pandas as pd
import numpy as np
import glob
# -----------------------------------------------------------------------------------
base_folder = "./data/layers/"
output_folder = "./data/tif_outputs/"
# 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_skorea.tif"
ascTotiff(in_asc, out_tif)
asc_list = [asc_file for asc_file in os.listdir(
base_folder) if asc_file[-4:] == ".asc"]
for asc in asc_list:
input_asc = base_folder + asc
print(f"{input_asc} 변환 중 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
ascTotiff(input_asc)
반응형
'머신러닝 & 딥러닝' 카테고리의 다른 글
위성영상을 이용한 딥러닝 활용 - 1) 환경설정 (0) | 2023.04.14 |
---|---|
경위도 위치 좌표에서 GIS 환경변수 값을 일괄 추출하기 (0) | 2023.04.07 |
pytorch 설치(CUDA 11.8버전 기준) 후 GPU인식 확인 (0) | 2023.04.06 |
텐서플로우(Tensorflow) 2.x GPU 설정하는 법(윈도우11 기준, RTX 4070 laptop GPU) (0) | 2023.04.06 |
텍스트마이닝을 이용한 국내연구동향 분석을 위한 자료수집 (0) | 2023.03.31 |
댓글