여러 래스터 gdalwarp
를 통해 그리드에 정렬하고 정렬 한 후 -tap
출력 래스터가 원래 래스터보다 상당히 큰 것을 알았습니다. 상당히 철저한 웹 검색 으로이 Trac 문제 가 나타났습니다 .
프랭크 워머 담은 그 이유를 설명했다.
"주의 깊게 검토 할 때 gdal_translate는 TIFFWriteScanline () 인터페이스를 사용하여 GTiffDataset :: CreateCopy? () 내에서 출력 파일을 작성하기 때문에이 파일의 차이점이 있습니다. 이미지 영역을 완성하는 데 필요한 파일. 그러나 gdalwarp는 blockio 인터페이스를 통해 완전한 최종 스트립을 작성하고 파일 끝에서 떨어지는 부분까지 포함합니다. "
이 Trac 문제는 7 년이 지났지 만 그 이후로 GDAL 유틸리티의 일부 변경 사항을 알고 있습니다 gdalwarp
. 위의 추론이 여전히 유효하고 내가보고있는 파일 크기 인플레이션이 "정상"인지 알고 싶습니다. 여기서 "정상"이라는 단어는 예상치 못한 또는 예상되는 것을 의미하는 것으로 여겨 질 수 있지만, 더 중요한 것은 : 효과를 완화하기 위해 수행 할 수있는 것, 즉 출력 래스터 파일 크기를 줄이는 것이 있습니까? 아래는 내가 경험하는 파일 크기 인플레이션의 표입니다.
Input File Size (bytes) Output File Size (bytes) Inflation
1437380431 1698334217 18%
1428001178 1698334433 19%
41683165 137036637 228%
입력 TIFF 파일은 ArcGIS에서 작성되었으므로 외부 월드 파일, XML 및 DBF 파일이 있지만 파일 크기의 차이를 구성하지는 않습니다. 다음은이 gdalwarp
모든 경우에 사용한 샘플 호출입니다. 실제 실행은 Python subprocess
( subprocess.Popen
)에 의해 처리되었습니다 .
$ gdalwarp -tap -tr 30 30 -t_srs "+proj=aea +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs" -co "COMPRESS=LZW" input_file.tif output_file.tif
드문 경우이지만 압축으로 인해 더 큰 파일이 만들어 지지만 LZW 압축이 없으면 효과는 같습니다. 표의 비율은 LZW 압축입니다.