JMP または JSL でのボロノイ図の作成こんにちは。JMP 環境内でボロノイ図を作成したいと考えています。 同じ平面 (Z) 内にある一連の点座標 (X と Y) があります。 単位面積あたりのポイントの密度を表示する方法が必要です。 ボロノイ図はこれを実現する 1 つの方法です。 これは、その点 P1 と次の点 Pn の間のユークリッド距離の中間によって定義される点の周囲の境界を示します。
ウィキペディアの定義は次のとおりです。 https://en.wikipedia.org/wiki/Voronoi_diagram
作成手順はこちらMATLAB でのこのタイプの図
Re: JMP または JSL でのボロノイ図の作成やあ、
まず、ボロノイのスペルミスをお詫びします、老眼です。 どのような質問に答えようとしているのかわかりません。 半径 150 mm の円形の画像を考えると、ウェーハ マップ上の密度またはクラスタリング パターンを探しているのではないかと思います。 半導体製造データの経験があります。
JMP には多くのクラスタリング手法があり、JMP12 以降は、パターンの類似性に基づいてウェーハをクラスタリングできる手法など、いくつかの空間パターン手法が提供されています。以下のスクリプトは、さまざまな欠陥密度を持つ 125 個のウェーハを表す JMP サンプル データ テーブルを開き、パターンごとにウェーハを分類/クラスタリングします。 ウエハ1枚からでも対応可能です。
Names Default to Here(1);
dt = Open("$sample_data/Wafer Stacked.jmp");
dt << run script( "Spatial Cluster of Defects");
spWin = Window("Wafer Stacked - Hierarchical Cluster of Defects");
spClust = (spWin<< child)<<CHILD></CHILD>
私がこのタスクに取り組んだのは、メッシュ メソッドを備えた opengl を使用して 3D 地形を生成することについてもっと学ぼうとしていたからです。 しかし、私はまだそれらについて十分に知りません。 空間幾何学に興味があるので、デュアル ボロノイ グラフの作成に取り組むことにしました。 最初の返信で述べたように、JMP 三角化 ([ヘルプ] > [オブジェクト] の [スクリプト インデックス] にあります) は Delaunay 三角化を作成し、三角形、点、エッジを取得するためのメッセージも提供します。
ボロノイ双対グラフを計算するためにスクリプトを拡張しました。 密集ポイントのパフォーマンスはテストしていません。代替アルゴリズムと近似を使用する Web サイトの多くはパフォーマンスに対処しています。 Craig Hales が提供したリンクで報告されている疑似コードを使用して、スクリプトを作成しました。 単一のサンプル データ テーブルでのみテストしました。 ちなみに、そのデータテーブルは、リンクから画像をコピーし、それをXYグラフの背景として使用し、マウストラップを使用して頂点をクリックしたときの座標をキャプチャすることによって生成されました。 一番左の点が元の点よりも少し左にあることがわかります。 [はい、JMP はタスクに取り組むための多数のツールを提供します。]新しいスクリプトがうまく機能しているようです。これはアプリケーションに対応しておらず、円形のウェーハではなく正方形のフレームを使用し、点を標準化しています (X と Y の +/-3 の間に中心が配置されています)。
スクリプトにはファイルが含まれていますLCombine.jsl (『JSL Companion Applications of the JMP Scripting Language, 2nd Ed.』のスクリプトの 1 つ)。 付属しております。 添付されたスクリプトのパスを、それを保存したディレクトリに変更する必要があります。 スクリプトによって生成された画像を添付しました。 JMP 12、13、14 でテストされました。
ボロノイグラフやクラスターを使って何をしたいのかなど、タスクを絞り込んでいただけると助かります。
私のリストでは上位には入りませんが、opengl メッシュ メソッドでボロノイ グラフを作成できるかもしれないと信じています。 決定的なことを言う前に、もっと学習/探索する必要があります。
voronoi diagram with JMPvoronoi diagram with JMPJMPを使用したボロノイ図
Re: JMP または JSL でのボロノイ図の作成gzmorgan0 さん、こんにちは。
これは素晴らしいスタートです! ご協力ありがとうございました。
以前にノンパラメトリック密度プロットを試してみましたが、これで必要な結果が得られるかどうかわかりませんでした。 あなたの投稿は、非パー密度プロットを数学的に説明するための適切なドキュメントを見つけるのに役立ちました。 その定義を以下に共有します。 今読んでもまだ不安です。
Nonpar Density estimates a smooth nonparametric bivariate surface that describes the density
of data points. The plot adds a set of contour lines showing the density (Figure 5.16). The
contour lines are quantile contours in 5% intervals. This means that about 5% of the points
generated from the estimated nonparametric distribution are below the lowest contour, 10%
are below the next contour, and so on. The highest contour has about 95% of the points below
it.
等高線は素晴らしいですが、点を等しい分位数に分割しているだけです。 これらは、私のエリア内でポイントがどの程度均等に分散しているかを必ずしも示しているわけではありません。 私の要点を伝えるために、データ ポイント配列の例を添付しました。 これらの等高線はそれぞれ等しい量を表していますか?表面積?
いくつかの追加質問:
(1) 等高線データを取得し、それを操作して単位面積あたりの密度を表示する方法はありますか? おそらくこれは、分位点密度内の赤い三角メニューから「密度グリッドを保存」オプションが行うことです。
(2) 別の色のテーマを使用できますか? 私はスペクトルカラーのテーマには強く反対します。 しかしカラーテーマ()内部では機能が動作しません非標準密度() JMP13で。
(3) 実際にボロノイ図を表示するためにドロネー三角形分割を拡張するのを手伝ってもらえますか? 私自身、数学は苦手です。
Re: JMP または JSL でのボロノイ図の作成いい例ですね!
ここでの議論: https://stackoverflow.com/questions/85275/how-do-i-derive-a-voronoi-diagram-given-its-point-set-and-its-delaunay-triangula
Re: JMP または JSL でのボロノイ図の作成私はこの分野の専門家ではありませんが、JMP 三角形化は Voroni の「二重」である Delaunay 三角形化の実装であると読んだことを思い出しました。 「双対」プロットを計算するためのアルゴリズムがありません。
添付されているのは、いくつかの Voroni トレーニング ドキュメントにあるポイントのセットをエミュレートするために作成した voroni.jmp というサンプル データ セットです (「 http://cgl.uni-jena.de/pub/Workshops/WebHome/cgl12new.pdf )。添付の PNG ファイルは、ボローニ プロットとドロネー テッセレーション (三角形化) の「二重」関係を示しています。この添付された jmp ファイルには、いくつかのデータ テーブル スクリプトが添付されています。 JMP 12、13、14 でテストしました。
グラフを作成する各テーブル スクリプトを実行します。 単位面積あたりの密度に興味があるので、Y By X の密度のグラフを確認し、赤い逆三角形メニューを使用して密度の 3D ビューのメッシュ プロットを選択します。 これらのビューはニーズを満たしているか、密度に関してより有益な情報を提供している可能性があります。
密度プロットでは目的が果たせないが、それでもボローニ プロットに興味がある場合は、deldir R パッケージからそれらを入手できます。 を参照してください。 https://flowingdata.com/2016/04/12/voronoi-diagram-and-delaunay-triangulation-in-r/ JMP には最近傍アルゴリズムと距離アルゴリズムがあるので、おそらく誰かがボローニ図を作成するために必要な手順 (または JSL) をこのブログに提供してくれるでしょう。
あなたの質問をきっかけに、JMP 三角形化メソッドをテストし、X 座標と Y 座標が標準化された後に「古典的な」結果が得られることを確認することにしました。 [ ありがとう! ] 付属の JSL には、三角形を描画するための手順が記載されています。
