GDALでラスターを平滑化/再補間しますか?


15

短い:
ラスターの解像度を変更し、以下の画像に示すようにグレーのランプを滑らかにします。GDAL、PIL、またはNumpyを使用することをお勧めします。

説明:
私は、高性能地球統計ライブラリーを使用して、20メートルの出力解像度でラスターにポイントをクリギングしています。補間時間が指数関数的に増加するため、出力解像度を変更したくありません。
この解像度では、出力画像は見苦しくなります(ピクセル化およびエイリアス化)。概念的に正しいかどうかはわかりませんが、次の例のように画像をより滑らかにしたいです。これは、画像をより良い解像度に「再補間」するようなものです。私はpythonを使用しているので、私の好みはGDAL、Python Imaging LibraryまたはNumpyです。答えは、アルゴリズム名やこの種の操作の概念を指摘するような理論的なものです。

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

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

gdalwarpキュービックスプラインを使用した結果の編集:
ここに画像の説明を入力してください


gdalwarpで投稿した「後」の画像ほど良い結果が得られません。使用した正確なコマンドを投稿できますか?
グラントハンフリーズ

回答:


7

1)難しい方法:コーディングを少し行うと、適切なリサンプリングを達成するために双線形補間を(比較的)簡単に実装できます。

2)簡単な方法:この前のGISSE投稿説明されているように、GDALを使用しますが、逆に(ピクセルサイズを小さくします)。


2
動いた。最良の結果は3次スプラインで得られました。上記の結果を投稿しました。ありがとう。
パブロ

5

Pythonで公開されているGDALReprojectImageを使用します。

from osgeo import gdal
help(gdal.ReprojectImage)

スムーズな補間を行うには、バイリニア法またはキュービック法を使用します。この関数はキーワード引数をとらないため、扱いにくいため、位置を見つける必要があります。

gdal.ReprojectImage(src_ds, dst_ds, None, None, gdal.GRA_Bilinear)

おそらくトリッキーな部分はをセットアップすることですdst_ds。これには、に似たジオ変換が必要ですが、src_dsセルサイズが変更されています。


+1。その「キュービック」メソッドが何なのかわかりません。3次スプラインの場合、双線形よりも滑らかになる可能性があります。しかし、3次たたみ込みの場合、双線形より滑らかではありません。3次スプラインはほぼ理想的です。
whuber

1
@whuber true、2つの「キュービック」アルゴリズムオプションがあります:(GRA_CubicSpline最初に試してみてください)対GRA_Cubic(畳み込み)。
マイクT

0

変動を滑らかにするには、ローパスフィルターが必要です。GDALを使用して独自に作成することも、GRASSを使用して作成することもできます。私は試していませんが、ここにガイドがありますhttp://wiki.awf.forst.uni-goettingen.de/wiki/index.php/Exercise_31

より良い解像度の出力を得るために、ローパスフィルターを適用する前に、まずラスターをアップサンプリングすることができます。


1
私はOPがバリエーションをスムーズにしたいとは思わない:さもなければ、そもそもなぜクリギングの努力に行くのか?その利点はすべて失われます。代わりに、画像が示唆するように、質問はスムーズなリサンプリング手順を求めて、すでに得られた結果の高解像度バージョンを作成します(クリギングを高速化するスマートで効率的な方法です)。
whuber

-1

radius = 5、つまりカーネルサイズsize = 111(各rgbチャネルに対して)のランク/中央値フィルターを使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.