シェープファイルとともにgdalwarpカットライン


26

シェイプファイルジオメトリに従ってラスターファイルをクリップしようとしています。私は次のコードを使用しています

gdalwarp -cutline INPUT.shp INPUT.tif OUTPUT.tif

ただし、シェープファイルジオメトリ範囲外の黒色になります。ここで例を挙げています。クリップする最初の画像。2番目の画像は結果のラスタ​​ーですが、ジオメトリの外側がnullになる3番目のラスターが必要です。

1枚目の画像:INPUT Raster

1枚目の画像:INPUT Raster

2番目の画像:OUTPUTラスター

2番目の画像:OUTPUTラスター

ここに画像の説明を入力してください

3枚目の画像:このような出力を取得したい

回答:


34

たとえば、次の-dstalphaオプションを使用する必要がありますgdalwarp

gdalwarp -cutline INPUT.shp -crop_to_cutline -dstalpha INPUT.tif OUTPUT.tif

これにより、カットラインの外側の領域をマスクするアルファバンドが出力TIFFに追加されます。

遅い答えですが、同じ問題を抱えている他の人の助けになることを願っています。


2
Curlewによる-srcnodata <in> -dstnodata <out>ヒントがなければ、うまくいきませんでした。
イェンス14年

2
まあ、-dstalpha画像で使用しても構いません(基本的にGeoTIFFにアルファバンドを追加し、領域をマスクします)。ただし、データ値はソースバンドに残ります(この場合、値0であると推測されます)。これをラスター値(画像で-dstalphaはない)として使用したい場合は、間違ったアプローチです。@ Curlew回答は非常に望ましいオプションです。また、-crop_to_cutline入力ラスターとの正確なオーバーレイ(ピクセルサイズと間隔)を維持する必要がある場合、オプションが非常に危険であることがわかりました。-te座標を完全に制御するためのオプション(境界ボックス)を設定することを好みます。
jurajb

20

入力ラスターからnodata-valueを指定し、出力にも設定するようにしてください。さらに、オプション-crop_to_cutlineを追加して、正確なトリミングを行います。オプションの詳細はこちら

gdalwarp -srcnodata <in> -dstnodata <out> -crop_to_cutline -cutline INPUT.shp INPUT.tif OUTPUT.tif

1
もう少し詳しく説明していただけますか?<in>および<out>として使用されるものは何ですか?
悪魔の夢

<in>は入力ラスターnodata-valueで、<out>は出力ラスターです。すべての情報とオプション(出力形式、ソース、エクステントなど)を見つけることができる提供されたリンクを見てください
-Curlew

2

バックグラウンドでgdalwarpを実行し、適切なオプションを構成するQGISのラスタークリップオプションを使用できます。

http://www.qgistutorials.com/en/docs/raster_mosaicing_and_clipping.html


。私は*** TIF形式たい
デビルドリーム

上記のリンクで概説されている手順により、.tif出力が得られます。
空間思考

1
リンクは死んでいるようです。
ヴァディムオフチンニコフ

1
@VadimOvchinnikovは、固定された、ビットを閲覧し、それが移動した場所が見つかりました
DarkCygnus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.