이 문제를 해결하는 가장 쉬운 방법은 GDAL 가상 형식 을 사용하는 것 입니다. 이 형식을 사용하면 전체 이미지 세트를 단일 이미지 오브젝트로 취급하고 비교적 간단한 3 단계로 변환 할 수있었습니다.
가상 데이터 세트 생성
GDAL ( Tamas Szekeres의 GISInternals Windows 바이너리 및 최신 버전의 OSGeo4W 포함)에는 초기 가상 데이터 세트를 빌드하는 데 사용할 수있는 gdalbuildvrt 유틸리티가 포함되어 있습니다.
이를 사용하는 간단한 방법 중 하나는 모든 이미지를 텍스트 파일에 추가 한 다음 해당 텍스트 파일을 gdalbuildvrt의 입력으로 사용하는 것입니다. 다음은 예입니다 (두 번째 명령을 한 줄로 다시 입력해야 함).
dir /b *.tif > my_images.txt
gdalbuildvrt
-hidenodata
-vrtnodata "255 255 255"
-resolution highest
-input_file_list my_images.txt
my_image.vrt
그러면 모든 GDAL 작업에서 단일 이미지로 취급 할 수있는 XML 파일이 남게됩니다. 또한 내부적으로 nodata를 흰색으로 표시하지만 읽은 도구에서 nodata 정의를 숨 깁니다.
리샘플링 개요 생성
다음으로 개요 이미지의 리샘플링 및 출력을 수행합니다. gdal_translate 또는 gdalwarp 로이를 수행 할 수 있습니다 . 이들 중 하나에 대해 결과 크기는 width * height * 3
(8 비트 밴드 수) 바이트입니다. 이 크기가 4GB보다 크면 BigTIFF를 출력으로 지정하는 구문에 대한 GeoTIFF 옵션 을 확인하려고합니다 (-co "BIGTIFF = YES").
gdal_translate의 경우, 편리한 gdalinfo 명령을 사용하여 가상 이미지의 크기를 결정해야합니다 . 이러한 치수를 사용하여 파일의 출력 너비와 높이를 픽셀 단위로 결정하기 위해 각각 일정한 비율로 나눕니다.
명령은 다음과 같습니다 (한 줄에).
gdal_translate
-outsize 53120 14000
-co "TILED=YES"
-co "PROFILE=GEOTIFF"
-co "BLOCKXSIZE=256"
-co "BLOCKYSIZE=256"
my_image.vrt
my_image.tif
gdalwarp의 경우 결과 픽셀 화를 알아야합니다. 이 경우 0.5m를 사용하고 있습니다. 리샘플링 방법을 호출 할 수도 있습니다. 나는 정사 사진 개요에 입방 스플라인을 선호합니다. 더 부드럽지만 전체 해상도까지 사용하지 않을 것이며 내 경험상 JPEG 또는 ECW와 같은 것을 사용하는 경우 더 압축 가능한 이미지를 만듭니다.
gdalwarp
-r cubicspline
-of GTiff
-dstnodata "255 255 255"
-tr 0.5 0.5
-co "PROFILE=GEOTIFF"
-co "BIGTIFF=YES"
-co "TILED=YES"
-co "BLOCKXSIZE=256"
-co "BLOCKYSIZE=256"
my_image.vrt
my_image.tif
이러한 리샘플링 된 GeoTIFF 개요에 JPEG 압축 옵션을 사용할 수도 있습니다. ( Frank에 따르면 ) 약간의 성능 저하만으로 출력 파일을 상당히 축소합니다 .
-co "COMPRESS=JPEG"
-co "JPEG_QUALITY=80"
-co "PHOTOMETRIC=YCBCR"
개요
또한 결과 이미지에 대해 편리한 gdaladdo 명령 을 실행하여 내부 "피라미드"를 작성하여 전체 이미지 크기보다 낮은 해상도에 대한 요청을 일부 데이터로 처리 할 수 있습니다. 성능 향상은 대부분의 경우 디스크 공간보다 가치가 있습니다. 여기서 사용하는 레벨로 놀아보고 싶을 것입니다. 매우 큰 이미지의 경우 일부를 떨어 뜨릴 수 있습니다. gdaladdo 명령은 다음과 같습니다.
gdaladdo
-r average
my_image.tif
2 4 8 16 32 64 128 256
최적의 성능을 위해 이러한 수준을 실험 해 보는 것이 좋습니다. 응용 프로그램에 대해 다른 리샘플링 간격이 더 좋거나 이미지 크기에 따라 더 높은 숫자 중 일부를 떨어 뜨릴 수 있거나 더 많이 필요하다는 것을 알 수 있습니다
또한 -ro 옵션을 사용하여 외부 개요를 생성하는 경우 JPEG 압축 구성 라인 추가를 고려하십시오.
--config COMPRESS_OVERVIEW JPEG
--config PHOTOMETRIC_OVERVIEW YCBCR
--config INTERLEAVE_OVERVIEW BAND
(이것은 임베디드 개요를 위해 상위 GeoTIFF에서 상속되었다고 생각합니다)
노트
이 문제에 직면했을 때, 나는 freenode.irc.net의 #gdal 채널을 물었습니다. 이것은 놀라운 자료이며,이 문제를 해결 해준 Howard Butler, Frank Warmerdam 및 심지어 Rouault에게 철저한 빚을지고 있습니다.