2016-06-28 4 views
1

大きなジオテフファイル(4つのRGBAバンド)を小さなタイルに切り取りたい。ラスターファイルを読むにはラスターパッケージのbrickを使用し、ディスクに書き込むにはwriteRasterを使用します。ただし、イメージビューアで新しいファイルを開くことはできません。 ColorInterpタグがないために発生します。 Iイメージビューアで見ることができるジオテフにラスターレンガを保存する

a <- brick(old.tif) 
writeRaster(a, filename = new.tif) 

はold.tifとnew.tifにTIFFタグを比較してください。 BitsPerSampleというタグは、old.tifの場合は8、new.tifの場合は64です。そこで私は0-255となっていたINT1UにラスタのdataTypeを更新しました。

dataType(a) <- 'INT1U' 
writeRaster(a, filename = new.tif, dataType = 'INT1U') 

しかし、タグは、bitsPerSampleはまだ64 に等しい私の現在の問題は、どのように私は8

PSには、bitsPerSampleを指定する必要がある:このコードは、あまりにも

writeRaster(a, filename = new.tif, dataType = 'INT1U', BitsPerSample = 8) 

が動作していませんPPS:writeTIFFは、crs情報なしで表示可能なTIFFファイルを生成することができます。

+0

古いファイルと新しいファイルのtiffタグを比較します。新しいファイルには、BitsPerSample(4 Short):64,64,64,64(8である必要があります)があります。 – Bangyou

+0

特に、データ型が8ビット符号なしよりも高い場合は、マルチバンドTIFFが正しく解釈されません。あなたは何を使っていますか? QGisなどで開いてみてください。 – Benjamin

+0

QGisやその他のソフトウェアで画像を見ることができると私は理解しています。しかし、私の元のtifファイルはRGBAであり、どの画像ビューアでも見ることができます。同じ8ビットの新しい画像を作成したいだけです。 – Bangyou

答えて

0

GeoTiffでは、ベースフォーマットから逸脱しない限り、サンプルあたりのビット数を指定する必要はありません。たとえば、ブール値イメージのファイルサイズを小さくするには、GDT_Byte(0-255)を指定して1サンプルあたり2ビットを指定します。それが読み込まれると、ほとんどのソフトウェアによってGDT_Byteと正しく解釈されます。

ただし、データがすでにGDT_Byte(INT1U)の場合は、サンプルあたりのビット数を指定する必要はありません。デフォルトでは必要なサイズになります。パラメータには、「デフォルト」より小さい値が必要です。たとえば、指定した8ビット形式の場合は1〜7ビット、16ビット形式の場合は9〜15ビットなどです。

NBITSパラメータのマニュアルを参照してください。 GeoTiffの画像はhttp://www.gdal.org/frmt_gtiff.htmlです。またBitsPerSampleのように見える

writeRasterに有効な引数ではありませんが、それはoptions=c("NBITS=n")として、作成オプションとして渡されるべきであること、GDALと同じ構文は、色に関してはR.

の外で使用していますあなたが参照する解釈タグは、オプションで指定することができます:options=c("PHOTOMETRIC=RGB")。アルファチャンネルがある場合は、"ALPHA=YES"を追加できます。これらはすべて上記のリンクに記載されている標準作成オプションです。

関連する問題