1

私が取り組んでいるプロジェクトで興味深いアルゴリズム上の課題があります。私は、十分にズームイン通りの両側に建物を指して座標点のソートされたリストを持っているが、このようになります:スプラインを単純化するには?

enter image description here

が、私はこのジグザグを取り、線形化するために、それを滑らかたいです下にある通り。私は、ソリューションのカップルを考えることができ

  1. 計算は、6かそこらポイントのローリング平均値を使用して重心、およびそれらを使用しています。
  2. Spline regression

この問題を解決する方法がありますか? (私はPython 3.5を使用しています)

+1

「見た目が良く見える」ようにスムーズにしようとしているのか、結果を分析する計画がありますか?分析のためのスムージングの最良の選択は、分析しているモデルに依存することがよくあります。 –

+0

@CortAmmonが言ったこととまったく同じです。あなたの目的はなんですか?既に指摘したように、複数のオプションがあります。私はDSPの男です。私はちょうどこれらを補間的にローパスします。あなたの動きモデルが正弦波と何か関係がない限り、あなたにとって役に立たない可能性が非常に高いです。 –

+0

私は、ニューヨーク市のすべての住所のデータセットを使用しており、このアルゴリズムを使用して処理して、データ分析プロジェクトのニューヨーク市の各通りの長さの妥当な見積もりに到達しようとしています。私はどのモデルがそれに対して十分に正確な演奏者であるかわからない。 私は、生成されたすべてのポリラインをストリートグリッドビジュアライゼーションにマップしたいと思っていますが、これはおそらく低レベルの精度が必要なビジュアリゼーションには便利だからです。 –

答えて

0

この記事では、行簡略化アルゴリズムがこのタスクに役立つことを正しく推測しています。この質問を投稿する前に、私は実際にそのようなアルゴリズムをいくつか調べましたが、私が好きだった単純化されたジオメトリをもたらしたにもかかわらず、彼らが直接問題に取り組んでいなかったので真ん中には決してない。

したがってIは、2段階のプロセスを使用した:

  1. Iは5つの周囲の点の座標の移動平均を使用して、ポリラインの重心を計算しました。これは機能をスムーズにするのにはあまり役に立ちませんでしたが、ストリートの真ん中にそれらを再マッピングすることに成功しました。
  2. n=20ポイントを指定して、新しいポリラインにVisvalingamのアルゴリズムを適用しました(thisすばらしい実装を使用)。

結果はかなり完璧ではありませんでしたが、それは十分だった:ヘルプ皆のため

enter image description here

ありがとう!

6

簡略化アルゴリズムを探しています。 (コメントで提案されている)

enter image description here

Ramer-Doublasアルゴリズムは、おそらく、この家族の中で最もよく知られているアルゴリズムであるが、より多くのがあります。

たとえば、Visvalingam’s algorithmは、三角形の最小の正方形で計算された最小の変化点を削除することによって機能します。これにより、コード作成が非常に簡単になり、直感的に理解できるようになります。研究論文を読むことが難しい場合は、thisの簡単な記事を読むことができます。このファミリの

他のアルゴリズムは、以下のとおりです。それらについての記事を読む

、彼らはあなたのために最も適したを縮小化し、選択しようとしているかを理解します。

関連する問題