모자이크 처리에서 gdalwarp와 gdal_merge의 차이점은 무엇입니까?


14

나는 약 100MB마다 약 20 개의 dem tiff를 병합하고 싶었고 gdalwarp (가상 파일 옵션에 대해 알고 있음)를 사용했습니다.

gdalwarp $(list_of_tiffs) merged.tiff

그러나이 명령은 매우 오랜 시간이 걸렸으며 15 분 후에 세트에서 5 번째 이미지를 처리하고있었습니다. 종료합니다.

그런 다음 gdal_merge.py 스크립트를 모자이크 처리에도 사용할 수 있다는 것을 알았습니다.

gdal_merge.py $(list_of_tiffs)

3 분 이내에 완료되었습니다.

두 명령이 동일한 결과를 낳을 것으로 기대했지만 결과가 동일한 경우 gdalwarp이 왜 많은 시간을 소비하는지에 대해 두 명령의 차이점이 무엇인지 궁금합니다.

답변:


21

왜 GDAL이 이러한 기능의 중복을 제공하는지 모르겠지만 gdalwarp에 대한 캐시를 설정하여 정말 빠릅니다.

# assuming 3G of cache here:
gdalwarp --config GDAL_CACHEMAX 3000 -wm 3000 $(list_of_tiffs) merged.tiff

머신에 RAM을 갖는 것보다 더 많은 캐시를 정의하지 마십시오.


이 튜닝 스위치에 대해 전혀 몰랐기 때문에 실제로 프로세스 속도가 빨라졌습니다. 참고로 3000은 3GB입니다 (추가 정보 trac.osgeo.org/gdal/wiki/UserDocs/GdalWarp ) 시스템 Python에서 MKL을 사용하여 NumPy 빌드를 가지고 있지만 gdalwarpNumPy가 C보다 빠를 수 없으므로 더 많은 작업을 수행해야합니다. 도달 할 수 있지만 구현.
zetah

3000이 실제로 3GB입니까 아니면 3072 여야합니까?
miln40

13

방금 다른 질문을 할 때이 질문과 잠재적 인 대답을 발견했습니다.

gdal_merge.py는 가장 가까운 인접 리샘플링을 사용합니다. 사용 된 리샘플링을 제어하려면 gdalwarp를 대신 사용해야합니다.

출처 : trac.osgeo.org


5

gdal_merge.py는 모든 파일을 처리하기 전에 메모리에로드합니다. 따라서 메모리가 작 으면 큰 파일을 처리 할 수 ​​없습니다. 여기를 참조 하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.