ジオサーバーでの大量の高解像度画像のカラーバランスと公開


11

オンラインアプリケーションのベースマップとして使用したいRapidEyeイメージ(+300 Gb)が大量にあります。これまで、「ステロイドのジオサーバー」と呼ばれるプレゼンテーションで示された手順に従って、ジオサーバーでImagePyramidとしてそれらを提供することができました。問題は、適切なカラーバランスを行うことができなかったため、データセット全体を見るとモザイクが非常に悪いように見えますが、ズームインすると良くなります(下の写真)。

私のプロセスは:

  1. すべての画像を8ビット、epsg 4326、gdalを使用したキュービック補間に変換します
  2. すべての画像でgdal仮想ラスターを生成します(gdalbuildvrt)
  3. 画像ピラミッド(圧縮およびジオティフのティリングを使用したgdal_retile)を生成し、ジオサーバーで公開します(レイヤースタイルでヒストグラムストレッチを使用)

プロセスを改善し、カラーバランスを改善する方法に関するヒントはありますか?

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

回答:


6

わかったと思う。

8ビットへの変換中に、各RapidEye画像で平均±2標準偏差ヒストグラムストレッチを強制しました。

Pythonスクリプトを使用して、画像の最小、最大、平均、およびSDを特定しました。次に、平均値-2SD(または画像の最小値のいずれか大きい方)を2に設定し、平均+ 2SD(または最大値)を254に設定します。 255に設定された2 ^16。NoDataは0に設定されました。

これらは伝達関数ベクトルです。

original image values = [0, mean-2SD, mean+2SD, 65536]
rescaled values = [1 2, 254, 255]

以下は、いくつかの画面キャプチャです。今修正しなければならない問題は

  1. 画像の周囲の黒い境界線を削除する
  2. 完全にズームすると、見栄えの良い画像が得られます。間違ったチャンネルにチューニングされた古いテレビのようになりました

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

編集
GitHubにコードを配置しました。使ってからしばらく経ちました。コードは少し複雑で、リポジトリも複雑です。しかし、まだ動作するはずです。
https://github.com/dvictori/rapideye_hist2sd


ブラボー先生 あなたはこれで10のうち10を得ます。2番目の懸念事項(ズームを最大にした場合の見栄え)については、LandSatやASTERなどの低粒度の画像を単純に使用できますか?ズームアウトすると、より粗い画像の方が見やすくなると思います。..あなたの最初の懸念として、私はまだそのナッツをクラックしようとしています、私自身。共有したい場合は、pyスクリプトを含め、これをどのように行ったかについての包括的な記事をご覧ください。アプローチをどこかで紹介する予定はありますか?
elrobis

私はこれを提示したり、記事を書いたりするつもりはありませんでした。しかし、あなたが言及した今、誰が知っている。これを提示するための適切なメディアに関する提案はありますか?pyスクリプトについては、dropbox.com / s / 1hfobfp9ymtku2n / rapideye_hist2sd.pyからダウンロードできます が、注意してください。私は自分自身をくだらないプログラマーと考えており、私のプログラムは多くの改善を使用できると確信しています。
ダニエル14年

2
上記のコメントからダウンロードリンクを変更しました。使用したpythonコードを確認したい場合は、goo.gl / ePEc7G
ダニエル

ありがとう、ダニエル。私はそのようなもののハウツーを投稿するブログを保持しています。簡単ではなく、ウェブ上であまり助けが得られないものに出くわした場合、いくつかの理由でブログを作成します。まず、タスクをいつか繰り返す必要があると思いますので、ステップを投稿に統合すれば、後で簡単に確認できます。第二に、そこにいる誰かが同じようなことをしたいと思う可能性が常にあると思います。あなたがここでやったことは、それがしばらくの間あなたの唯一の投稿であっても、非常にブログに値するものです。:)
elrobis 14

これは素晴らしいアイデアであり、8ビットから8ビットに移行する3バンドカメラのより小さなフレームに適応させようとしていますが、実装に問題があります。入力スクリプトのディレクトリをこのスクリプトに転送するにはどうすればよいですか?彼らはどこから呼ばれていますか?これはすべてジオサーバーを介して実行する必要がありますが、これを分割してスタンドアロンで実行できますか?
ウェス

4

ダニエル、これらの画像は非常に異なる季節のものですか?または一日の時間?季節が異なる場合、色のバランスをとるのはかなり難しいかもしれません。しかし、それらが異なる時間帯である場合、太陽の角度の補正を適用することが顕著に役立つ場合があります。太陽の角度の適切な1次近似は、ピクセルに1.0 / cos(angle_of_sun_off_directly_above)を掛けることです。そのため、太陽が真上にある場合は調整せず、夜明け/夕暮れに近づくと...無限に増加します。

過去には、重複する領域のシーン間でヒストグラムマッチングを使用して大きなモザイクを組み立てるという悪い結果がありました。モザイク全体に奇妙なドリフト効果が生じるからです。より有用なアプローチは、ベースカラーのターゲットイメージ(おそらく、そのエリアの魅力的なランドサットモザイク)に対するヒストグラムマッチングのようなものかもしれません。この問題を解決する方法にも興味があります。MapBoxのチャーリーロイドも考えているかもしれません。


率直に言って、画像は主に雲量が少ない乾季のものです。しかし、8月、11月など、さまざまな月の画像があります。現在、画像を小さなブロックに分割し、それぞれに対してモザイクを作成しようとしています。それがどうなるかをお知らせします。また、CDFマッチを実行するPythonスクリプトを作成し、少数の画像(20)がある場合は正常に動作します(20)が、多数の画像を取得すると、画像の1つが私の外部の値を持つようにバインドされます参照画像の範囲とその後の動作が停止します。参照画像を選択するより良い方法を考えなければならない場合があります。
ダニエル

0

私は時々、カラーバランスの取れたモザイクを作成するために、ヒストグラムマッチングでOSSIMイメージリンカーを使用しました。画像リンカのチュートリアルには、いくつかの例がありますhttp://download.osgeo.org/ossim/docs/pdfs/ImageLinker_Tutorial.pdf ただし、画像リンカは積極的に管理されておらず、動作するかどうかはわかりません。Ossimジオセルは現在のプログラムですが、それに関するユーザードキュメントはあまりありません。良い結果を得るために、最初にOpenEVでLandsatシーンを1つずつ前処理し、LUTストレッチを適用して画像を視覚的にほぼ同じ外観にすることを覚えています。その後、OSSIMが最終マッチングを行うのが簡単になりました。最終製品は、ER Mapperモザイクユーティリティを使用して作成したものとほぼ同じように見えました。

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