シェープファイルのジオメトリに従ってラスターファイルをクリップしようとしています。次のコードを使用しています
gdalwarp -cutline INPUT.shp INPUT.tif OUTPUT.tif
しかし、シェープファイルのジオメトリ範囲の外側に黒い色が表示されます。ここに例を示します。クリップしたい最初の画像。 2番目の画像は結果のラスターですが、ジオメトリの外側がnullになる3番目のラスターが必要です。
1番目の画像:入力ラスター
2番目の画像:出力ラスター
3番目の画像:次のような出力を取得したい
回答
gdalwarp
に-dstalpha
オプションを使用する必要があります。例:
gdalwarp -cutline INPUT.shp -crop_to_cutline -dstalpha INPUT.tif OUTPUT.tif
これにより、出力tiffにアルファバンドが追加され、カットラインの外側にある領域がマスクされます。
遅い回答ですが、役立つことを願っています。同じ問題を抱えている他の誰か。
コメント
回答
入力ラスターからnodata-valueを指定して、出力用に設定してみてください同じように。さらに、オプション-crop_to_cutlineを追加して、正確な切り抜きを作成します。オプションの詳細こちら。
gdalwarp -srcnodata <in> -dstnodata <out> -crop_to_cutline -cutline INPUT.shp INPUT.tif OUTPUT.tif
コメント
- もう少し詳しく説明していただけますか? < in >および< out ?
- < in >は、入力ラスターnodata-valueおよび< out >。すべての情報とオプション(出力形式、ソース、エクステントなど)を見つけることができる提供されたリンクを見てください
- 無効な構文を取得しています、このgdalwarp-srcnodataで私を助けることができます" myrasterfinal77.tif " -dstnodata " demUTM12.tif " -crop_to_cutline -cutline " Eastcoast.shp " " myrasterfinal77 .tif " " demUTM12.tif "
回答
バックグラウンドでgdalwarpを実行し、適切なオプションを構成するQGISのラスタークリップオプションを使用できます。
http://www.qgistutorials.com/en/docs/raster_mosaicing_and_clipping.html
コメント
- ***。tif形式が必要です
- 上記のリンクで概説されている手順により、.tif出力が得られるはずです。
- lインクが死んでいるようです。
- @VadimOvchinnikovが少しブラウジングして、移動した場所を見つけ、修正しました
-dstalpha
は画像で使用できます(基本的にGeoTIFFにアルファバンドを追加し、領域をマスクします)。ただし、データ値はソースバンドに残ります(この場合、値0であると思います)。これを(画像ではなく)ラスター値として使用する場合、-dstalpha
は間違ったアプローチです。@ Curlewanswerがはるかに望ましいオプションです。また、入力ラスターとの正確なオーバーレイ(ピクセルサイズと間隔)を維持する必要がある場合、-crop_to_cutline
オプションは非常に危険であることがわかりました。座標を完全に制御できるように、-te
オプション(境界ボックス)を設定することをお勧めします。