skymatix Developers Blog

株式会社スカイマティクスの開発チームによるDevelopers Blogです。

等高線の平滑化(スムージング)

DSM with smoothed contour lines

AI ResearcherのAlokです。

地形の形状や標高は、地図上の基本的な手法である等高線によって表現されることがあります。しかし、DEM(数値標高モデル)などのラスターから生成された等高線データにはギザギザや凹凸が多く、複雑で見栄えが悪いことがあります。等高線のスムージング技術を用いることで、このような問題を解決することができます。本稿では、等高線などの輪郭線のスムージングの重要性とその難しさ、そしてガウシアンフィルタの適用による効果的な方法を紹介します。

  • スムージングが必要な理由:一般に等高線は、地形の標高や地形を表現するために利用されるため、スムージングが必要です。しかし、DEMなどから作成された生の等高線データでは、ノイズなどの影響を受けて線が不規則になったり不連続になったりして、本来の地形が十分に表現されていない場合があります。これらの輪郭線は、以下の理由で平滑化する必要があります。

    • ビジュアライゼーションの向上: 等高線を滑らかにすることで、視覚的にわかりやすくなり、地図利用者が地形を適切に解釈しやすくなります。地形の形状や勾配をより直感的に把握できるようになるため、土木、土地管理、アウトドアレジャーなどの分野で、スムーズな等高線による意思決定が容易になります。
    • 注意散漫を最小限に抑える: 輪郭線がギザギザしていたり、尖っていたりすると、見る人の集中力が散漫になり、視界が狭くなります。輪郭線を滑らかにすることで、ユーザーは余計なノイズに惑わされることなく、重要な特徴に集中することができます。
  • 輪郭線を簡略化する 等高線を簡略化する代表的な方法として、複雑さを軽減する「簡略化」という方法があります。等高線を含むベクターデータの複雑さを軽減する強力なツールが、ogr2ogr -simplifyコマンドです。単純化することである程度の矛盾は解消されますが、鋭角な部分は十分に平滑化されず、美観が損なわれる可能性があります。
  • ガウシアンフィルタを用いた平滑化手法 輪郭線にスムージングフィルターを適用することで、単純化の欠点を克服することに成功しています。scipy.ndimageモジュールのガウシアンフィルタは、そのようなフィルタの一例です。ガウシアンフィルターは、近傍のデータポイントの加重平均を利用して輪郭線をより滑らかに表示する、一般的な線形フィルターです。
  • 実験 サンプルデータ(phalaborwa_sm_ol)を使ってDSM(数値表層モデル)ファイルを作成しました。

github.com

DSM file

最終的に、簡略化と平滑化を行った結果、以下のような結果が得られました。

簡略化とスムージングによる輪郭線の表現

  • 結論

等高線のスムージングにより、地図上の標高表現の精度や見やすさが大幅に向上します。ogr2ogr -simplifyのような単純化のテクニックは有用ですが、最良の平滑化効果が得られない場合があります。等高線はscipy.ndimageパッケージのガウシアンフィルタで効果的に平滑化することができ、視覚的にわかりやすく、地形の描写をより理解しやすくすることができます。



www.slideshare.net