2017-06-21 5 views
0

私はRで数百の4バンド画像を処理しており、おそらく非常に簡単な作業に助けが必要です。処理の一環として、元のGeoTiffの空間情報を保持する単一バンドのRGBコンポジットを書き出す必要があります。他のソフトウェアでは、.jgwファイルをエクスポートしましたが、これをRで行う必要があります。これらのイメージは、ベースマップとして使用され、別のマッピングインターフェイスに供給されます。私は検索して検索し、plotRGB()とwriteRaster()のしかたしか見つけられません。 PlotRGBは空間情報を失い、writeRaster()はマルチバンド画像を生成します。空間情報を含むコンポジットRGB画像を書き出す、R

アイデア?使用可能なRにはラスターが組み込まれています。

library(raster) 
library(rgdal) 
r <- raster(system.file("external/test.grd", package="raster")) 
x <- RGB(r) 
plotRGB(x) #Is there a way to output this where it will maintain spatial information? 
writeRaster(x, filename="file.tif") #This produces a 3-band tiff, not a composite 

答えて

0

writeRaster機能は、基礎となるGDALライブラリのオプションを渡すoptions引数を取ることができる(例えば、GeoTIFFのオプションがhere文書化されています)。 TFW=YESオプションは、.jgwファイルと同じように見える.tfwワールドファイルを書き出します。

ここで、「複合RGB」は、TIFF世界では標準的な用語ではありません。 「ArcMap」と友人に固有のようですので、実際にこれが何を意味するのかは分かりませんが、カラーコンポーネントのデータ型を指定することで、標準的なRGB TIFF形式と考えることができます1バイトの符号なし整数(datatype="INT1U")も、その次のは、あなたがやりたいことがあります。

writeRaster(RGB(r), filename="file2.tif", datatype="INT1U", 
    options="TFW=YES", format="GTiff") 

限り、あなたがする必要があるので、私は、認識されていないか、スペルミスoptions値は、すべてのエラーメッセージを生成しない、言うことができるように彼らはすべて正しく綴られていることに注意してください。

+0

ありがとうございます。私はGDALからの議論を渡すことができなければならないことに気付きましたが、私はその方法を知らなかったのです。あなたが提供したスクリプトはTFWを生成しましたが、これは完全に受け入れられますが、TIFFはまだ1つではなく3つのバンドです。私は何とか代わりに単一のバンドコンポジットを作成したいと思います。 QGISまたはArcMapに精通している場合は、レンダラを使用してラスタをエクスポートするのと同様です。 –

+0

私はQGISやArcMapに慣れていません。残念なことに、「複合RGB」という用語は、TIFF世界の標準的な用語ではなく、そのソフトウェア/フィールドに固有のようであるため、技術的な観点からそれらが何を意味するのかは分かりません。 'datatype =" INT1U "'を指定すると、より一般的なRGB TIFFが生成されます。これは、 "コンポジットRGB"が意味するものかもしれません。 –

+0

ありがとうございました。私はあなたが作った変更を試みましたが、それはまだ3バンド画像を生成しました。私はまた、 "マージチャンネル"または "マージバンド"として、私はフロイドを見ている出力を聞いたことがあります。このリンクは、私が探しているものをより良く説明するかもしれません:http://gisgeography.com/arcgis-composite-bands/明確にするために、グラフィックス世界のTiffとマッピング世界のGeoTiffの唯一の違いは、空間参照。グラフィックスの世界では、私がしようとしているのは、青緑 - 赤のチャンネルを持つ画像の代わりに、チャンネルを組み合わせることです。出力には1つのチャンネルがあります。 –

関連する問題