Matlabではblockprocを使用して32ビット浮動小数点データの1つのバンドだけを含む大きな(ジオ)TIFFファイル(10Gbのオーダー)を処理します。Matlab - 大きなtiffを書き込んでいる間にBlockproc/tifflibが失敗するFile
私の問題は、blockproc、またはより具体的なtifflibが、突然タイルの書き込みに失敗することです。これは、入力ファイル、ハードドライブ/ファイルの場所、または処理、Matlabのバージョン、さらにはOSなどの他のパラメータとは無関係です。
通常、常に同じ紀元前(Linuxでは#3372、Windows 10では#3176)です。
しかし、blockprocは、より小さいバージョンの大きなファイル(〜10Gbではなく〜4Gb)を使用すると実行されます。
これは私が(Debianの64ビット、Matlabの2014b)を取得エラーメッセージです:@haraldKsコメントへ
Warning: The following error was caught while executing 'images.internal.TileHandle'
class destructor:
Unable to write tile #3684.
> In TileCache>TileCache.setTile at 71
In TiffAdapter>TiffAdapter.getTileHandle at 560
In TiffAdapter>TiffAdapter.writeRegion at 354
In blockproc>putBlock at 879
In blockproc>serialLoop at 459
In blockproc at 340
In removeEGM at 13
Warning: The following error was caught while executing 'images.internal.TileHandle'
class destructor:
Unable to write tile #3685.
> In TileCache>TileCache.setTile at 71
In TiffAdapter>TiffAdapter.getTileHandle at 560
In TiffAdapter>TiffAdapter.writeRegion at 354
In blockproc>putBlock at 879
In blockproc>serialLoop at 459
In blockproc at 340
In removeEGM at 13
Warning: The following error was caught while executing 'images.internal.TileHandle'
class destructor:
Unable to write tile #3686.
> In TileCache>TileCache.setTile at 71
In TiffAdapter>TiffAdapter.getTileHandle at 560
In TiffAdapter>TiffAdapter.writeRegion at 354
In blockproc>putBlock at 879
In blockproc>serialLoop at 459
In blockproc at 340
In removeEGM at 13
Warning: The following error was caught while executing 'images.internal.TileHandle'
class destructor:
Unable to write tile #3687.
> In TileCache>TileCache.setTile at 71
In TiffAdapter>TiffAdapter.getTileHandle at 560
In TiffAdapter>TiffAdapter.writeRegion at 354
In blockproc>putBlock at 879
In blockproc>serialLoop at 459
In blockproc at 340
In removeEGM at 13
Error using tifflib
Unable to write tile #3372.
Error in Tiff/writeEncodedTile (line 1602)
tifflib('writeEncodedTile',obj.FileID,tileNumber-1,varargin{:});
Error in images.internal.TiffAdapter/writeBlock (line 420)
obj.TiffObj.writeEncodedTile(blockId, block);
Error in images.internal.TiffAdapter/writeRegion (line 377)
obj.writeBlock(blockId, data(ry - start(1) + 1, ...
Error in blockproc>putBlock (line 879)
dest.writeRegion(start_loc,...
Error in blockproc/serialLoop (line 459)
putBlock(options.Destination,row,col,output_block,output_size);
Error in blockproc (line 340)
serialLoop();
Error in removeEGM (line 13)
blockproc(in_dem, [3000, 3000], my_fun, 'Destination', out_dem);
"ビッグTIFFファイル"またはBigTIFFファイルを書き込もうとしていますか? TIFFファイル形式では、符号なし32ビットオフセットを使用するため、ファイルサイズが4GBでハード制限があります。一方、BigTIFFは64ビットのオフセットを使用し、さらに大きなファイルを処理できます。 MatlabのBigTIFF/TIFFライブラリの使用がサポートされていますか? – haraldK