データの2Dマップの主な方向


8

それは非常に単純な質問かもしれません。コメント、ガイド、または完全な解決策をお願いします。ただし、不完全な解決策ではなく、斬新で実用的なアイデアを優先します。
-変動の主な方向、つまり次の図の例(北東、南西)の主対角線を見つける方法は?
アルゴリズムやコーディングやスニペットのアイデアは大歓迎です。

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

更新:
承認された回答に記載されている手順は、最も単純な実装ではほぼPCA(主成分分析)であることがわかりました。PCAは非常によく機能しました。結果として生じる方向は、視覚的に予想できるものと完全に一致しています。


3
使用できるのは等高線図のラスターイメージだけですか、または等高線の生成元の生の標高データはありますか?
Jason R

1
両方の種類のデータが利用可能です。元のデータは行列です。等高線は後でマトリックスに基づいて生成されます。つまり、コンターのレベル数は柔軟です。
開発者

回答:



4

ここにいくつかのアイデアがあります:

  1. 等高線がまだ別のデータ構造にない場合は、エッジ追跡(別名「等高線トレース」)アルゴリズムを使用して、それぞれを追跡します。輪郭ができたら、最も離れた2つの点を見つけます。最も離れた2つの点(フェレットの直径)を取得したら、それらの点の中点を取り、垂直線を投影し、大まかな楕円形の短軸のようなものであるかどうかを確認します。2番目に遠い点とその「副軸」、3番目に遠い点などを確認します。
  2. 最も内側の輪郭の重心から、半径方向に外側にスキャンします。各コンターの交差点を追跡します。最大の等高線間距離を持つ半径方向(または半径方向のグループ)は、勾配が最も緩やかで、距離が最も長くなります。
  3. 「ウォータードロップ」テストを実行します。これには少し物理が必要です。ピーク(最も内側の輪郭の内側のどこか)に水滴またはボールがあるとします。半径方向のシータを押します。重力と名目上摩擦のない表面が与えられたら、ドロップ/ボールが下の水平面に到達するときの速度を計算します。

上記のいずれの手法についても、放射状手法(0〜359度)を使用できる場合でも、0〜179の角度を考慮してください。ピーク応答が複数ある場合は、応答が大きいネイバーが最も多い最も長い半径(または何でも)を見つけます。

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