簡體   English   中英

堆疊光柵圖像並在python中對其進行壓縮

[英]Stacking of Raster Image and Compressing it in python

我正在嘗試堆疊我的光柵 .tif 文件我有 12 個 .tif 文件,但我也想在 python 中壓縮輸出堆疊文件。

這是我當前用於堆疊文件的工作代碼,但堆疊后文件的大小非常大

from osgeo import gdal
outvrt='/vsimen/Stacked.tif'
outtif='E:/Users/Compressed_files/Stacked.tif'
tifs=glob.glob('E:/Users/Compressed_files/*.tif')
outds=gdal.BuildVRT(outvrt,tifs,seperate=True)
outds=gdal.Translate(outtif,outds)

您可以將TranslateOptions對象傳遞給您的gdalTranslate調用,您可以在其中添加相關的creationOptions進行壓縮。

所以作為虛擬代碼:

from osgeo import gdal

topts = gdal.TranslateOptions(creationOptions=['COMPRESS=LZW', 'PREDICTOR=2'])
outds=gdal.Translate(outtif,outds, options=topts)

當然,選項也可以是字符串或字符串數​​組 - 使用TranslateOptions不是強制性的。

此外,虛擬代碼中使用的壓縮設置只是一個示例。 為了最大化您的收益,您應該選擇適用於您的數據的選項。

以下是有關 GeoTiffs 可用選項文檔的摘錄:

COMPRESS=JPEG/LZW/PACKBITS/DEFLATE/CCITTRLE/CCITTFAX3/CCITTFAX4/LZMA/ZSTD/LERC/LERC_DEFLATE/LERC_ZSTD/WEBP/NONE]:設置要使用的壓縮。 JPEG 通常只用於字節數據(每通道 8 位)。 但是從 GDAL 1.7.0 開始,如果 GDAL 是使用內部 libtiff 和 libjpeg 構建的,則可以使用 12 位 JPEG 壓縮 TIFF 文件(視為 UInt16 帶,NBITS=12)讀寫 TIFF 文件。 有關更多詳細信息,請參閱“TIFF 中的 8 位和 12 位 JPEG”維基頁面。 CCITT 壓縮只能用於 1 位 (NBITS=1) 數據。 LZW、DEFLATE 和 ZSTD 壓縮可與 PREDICTOR 創建選項一起使用。 ZSTD 自 GDAL 2.3 起在使用內部 libtiff 時可用,如果 GDAL 針對 libzstd >=1.0 構建,或者如果針對具有 zstd 支持的外部 libtiff 構建。 LERC/LERC_DEFLATE/LERC_ZSTD 自 GDAL 2.4 起在使用內部 libtiff 時可用(對於 LERC_ZSTD,請參見上述條件)。 無是默認值。

NUM_THREADS=number_of_threads/ALL_CPUS:(來自 GDAL 2.1)通過指定工作線程數啟用多線程壓縮。 值得緩慢壓縮,例如 DEFLATE 或 LZMA。 JPEG 將被忽略。 默認是主線程中的壓縮。

PREDICTOR=[1/2/3]:設置 LZW、DEFLATE 和 ZSTD 壓縮的預測器。 默認值為 1(無預測器),2 是水平差分,3 是浮點預測。

暫無
暫無

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

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