簡體   English   中英

使用 GDAL 合並重疊柵格

[英]Merge overlapping rasters using GDAL

我有大約 211 個柵格,每個區域對應一個柵格。 其中之一的 gdalinfo 如下。 除了關注的區域外,它們都是一樣的。 值始終在 1-6 之間。

在此處輸入圖像描述

我想將它們合並為一個巨大的世界光柵。 我已經設法通過首先構建一個 VRT,然后將 VRT 寫入單個文件來成功地做到這一點:

gdalbuildvrt.exe -b 1 -q -input_file_list my_files.txt global_file.vrt

gdal_translate.exe -q -co PREDICTOR=2 -co COMPRESS=LZW -of GTiff -co BIGTIFF=YES -co TILED=YES -co NUM_THREADS=ALL_CPUS global_file.vrt global_file.tif

結果大小約為 15GB。

但是,我的問題是每個國家/地區經常在某些領域重疊。 在那些情況下,我需要采用最大光柵/像素值。 但是 gdal_translate 不會那樣做,它只是采用最后寫入的值。

我閱讀了 PixelFunction,( https://gis.stackexchange.com/questions/350233/how-can-i-modify-a-vrtrasterband-sub-class-etc-from-python )並嘗試實現它,但是我不斷收到 memory 問題。

有沒有人對內存安全的方式有任何想法來組合大量柵格並在它們重疊的地方取最大值? 如果最好的方法是 PixelFunction,請告訴我,我將提供有關錯誤的更多詳細信息。

謝謝,詹姆斯

嘗試減少 output 塊大小,使用BLOCKXSIZE=128BLOCKYSIZE=128

gdal_translate.exe -q -co PREDICTOR=2 -co COMPRESS=LZW -of GTiff -co BIGTIFF=YES -co BLOCKXSIZE=128 -co BLOCKYSIZE=128 -co TILED=YES -co NUM_THREADS=ALL_CPUS global_file.vrt global_file.tif

這將大大減少 memory。

如果這不起作用,您的下一個選擇是將所有輸入文件轉換為 128x128 平鋪 geotiff。 las,在 GDAL <3.7 中,您無法更改 VRT 驅動程序的塊大小,這是 3.7 中的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM