파이썬 스크립트로 gdal_merge 호출


10

나는 파이썬을 처음 사용하고 (스파이더) 파이썬 스크립트에서 gdal_merge를 사용하는 방법에 대해 잘 모르고 있습니다. Windows 10, Python 3.6을 사용하고 osgeo4w에서 gdal 도구를 설치했습니다. 다른 많은 게시물 이이 문제를 설명 하지만 아무도이 문제를 해결하는 데 도움이되지 않습니다.

cmd에서 gdal 모듈을 호출하면 매력처럼 작동합니다.

 python "C:\OSGeo4W64\bin\gdal_merge.py" -o merged.tif input1.tif input2.tif

그러나 파이썬 스크립트 (스파이더)에서는 제대로 작동하지 않습니다.

첫 번째 방법은 올바른 이름이 아닌 출력을 생성합니다. 요청한대로 'merged.tif'파일이 아닌 'out.tif'파일이 생성됩니다.

import sys
sys.path.append('C:\\OSGeo4W64\\bin')
import gdal_merge as gm
gm.main(['-o', 'merged.tif', 'N00W078.tif', 'N00W079.tif'])

두 번째 접근 방식은 단순히 출력을 생성하지 않습니다.

import subprocess
merge_command = ["python", "C:\OSGeo4W64\bin\gdal_merge.py", "-o", "merged.tif", "input1.tif", "input2.tif"]
subprocess.call(merge_command,shell=True)

이 문제를 해결하는 방법에 대한 생각이 있습니까?

답변:


12

첫 번째 접근 방식 에서 빈 인수를 추가하십시오 ( gdal_merge.py0이 아닌 1에서 시작하는 인수를 구문 분석 하기 때문에 ).

import sys
sys.path.append('C:\\OSGeo4W64\\bin')
import gdal_merge as gm
gm.main(['', '-o', 'merged.tif', 'N00W078.tif', 'N00W079.tif'])

의 경로에 참여 gdal_merge.py에서 두 번째 방법을 :

import os, subprocess
gm = os.path.join('C:\\','OSGeo4W64','bin','gdal_merge.py')
merge_command = ["python", gm, "-o", "merged.tif", "input1.tif", "input2.tif"]
subprocess.call(merge_command,shell=True)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.