レベルのすべてのポリゴンが使用可能な等高線図を次に示します。
すべての頂点を正確な位置に保持したままポリゴンを滑らかにする方法を尋ねましょう。
実際、輪郭はグリッドデータの上に作成されるため、グリッドデータを平滑化することをお勧めします。したがって、結果の輪郭はより滑らかになります。ガウスフィルターなどの平滑化機能は小さなデータパックを削除し、3番目の変数の範囲、たとえば、アプリケーションで許可されていない高さを変更するため、これは私の希望どおりに機能しないことに注意してください。
実際、私は2Dポリゴン(凸、凹、自己交差などのあらゆるタイプ)の平滑化を合理的に無痛(コードのページを忘れる)で正確に行うことができるコード(好ましくはPythonで)を探しています。
参考までに、ArcGISにはこれを完全に行う機能がありますが、サードパーティの商用アプリケーションを使用することは、この質問に対する私の選択ではありません。
1)
Scipy.interpolate:
ご覧のとおり、結果のスプライン(赤)は満足のいくものではありません!
2)
ここで与えられたコードを使用した結果はここにあります。うまく機能していません!
3)
私にとって最善の解決策は、次の図のようなもので、1つの値のみを変更することで、正方形が徐々に平滑化されることです。あらゆる形のポリゴンを平滑化するための同様のコンセプトを期待しています。
スプラインがポイントを通過する条件を満たします。
4)
Pythonでの彼のデータに関する「whuberのアイデア」の行ごとの実装です。結果が良くないので、おそらくいくつかのバグがあります。
K = 2は災害なので、k> = 4の場合です。
5)
問題のある場所の1つのポイントを削除すると、結果のスプラインはwhuberと同じになりました。しかし、なぜこの方法がすべての場合に機能しないのかは疑問です。
6)
whuberのデータの適切なスムージングは、次のようにすることができます(ベクトルグラフィックソフトウェアで描画)
4):
7)
いくつかの象徴的な形については、Pythonバージョンのwhuberのコードの結果を参照してください。
なお、この方法は、ポリラインのために動作しないようだということ。コーナーポリライン(輪郭)については、緑色が必要ですが、赤色になります。等高線マップは常にポリラインであるため、これに対処する必要がありますが、閉じたポリラインは私の例のようにポリゴンとして扱うことができます。また、アップデート4で発生した問題がまだ対処されていないというわけでもありません。
8)[私の最後]
これが最終的な解決策です(完璧ではありません!):
星が指す領域について何かしなければならないことを忘れないでください。おそらく私のコードにバグがあるか、提案された方法はすべての状況を考慮し、望ましい出力を提供するためにさらなる開発が必要です。