Erstellen von Voronoi-Diagrammen in JMP oder JSLHallo zusammen, ich möchte ein Voronoi-Diagramm in der JMP-Umgebung erstellen. Ich habe eine Reihe von Punktkoordinaten (X und Y), die sich in derselben Ebene (Z) befinden. Ich hätte gerne eine Möglichkeit, die Dichte der Punkte pro Flächeneinheit anzuzeigen. Ein Voronoi-Diagramm wäre eine Möglichkeit, dies zu erreichen. Es zeigt die Grenze um den Punkt, der durch die Hälfte des euklidischen Abstands zwischen diesem Punkt P1 und dem nächsten Punkt Pn definiert wird.
Hier ist die Wikipedia-Definition: https://en.wikipedia.org/wiki/Voronoi_diagram
Hier finden Sie eine Anleitung zum Erstellen Diese Art von Diagramm in MATLAB
Betreff: Voronoi-Diagramme in JMP oder JSL erstellenHallo,
Zunächst einmal tut mir die falsche Schreibweise von Voronoi leid, alte Augen. Ich bin mir nicht sicher, welche Frage Sie beantworten wollen. Ich denke, Sie suchen möglicherweise nach einem Dichte- oder Clustermuster auf einer Waferkarte, wenn Sie das kreisförmige Bild mit einem Radius von 150 mm betrachten. Ich habe Erfahrung mit Halbleiterfertigungsdaten.
JMP verfügt über viele Clustering-Methoden und bietet seit JMP12 mehrere räumliche Mustermethoden, darunter eine, mit der Wafer basierend auf Musterähnlichkeiten gruppiert werden können.Das folgende Skript öffnet eine JMP-Beispieldatentabelle, die 125 Wafer mit unterschiedlicher Defektdichte darstellt, und klassifiziert/gruppiert die Wafer nach Mustern. Dies ist auch für 1 Waffel möglich.
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>
Ich habe diese Aufgabe in Angriff genommen, weil ich versucht habe, mehr über die Generierung von 3D-Terrains mit OpenGL zu erfahren, das über Mesh-Methoden verfügt. Allerdings weiß ich noch nicht genug über sie. Ich habe mich entschieden, die Erstellung des dualen Voronoi-Graphen in Angriff zu nehmen, weil räumliche Geometrie ein Interesse von mir ist. Wie in meiner ersten Antwort erwähnt, erstellt die JMP-Triangularisierung (zu finden im Hilfe > Skriptindex unter Objekte) die Delaunay-Trainingsgularisierung und stellt auch Nachrichten zum Abrufen von Dreiecken, Punkten und Kanten bereit.
Ich habe mein Skript erweitert, um den Voronoi-Dualgraphen zu berechnen. Ich habe die Leistung für dichte Punkte nicht getestet; Viele Websites mit alternativen Algorithmen und Annäherungen befassen sich mit der Leistung. Unter Verwendung des Pseudocodes, der unter dem von Craig Hales bereitgestellten Link angegeben ist, habe ich ein Skript erstellt. Ich habe es nur an der einzelnen Beispieldatentabelle getestet. Diese Datentabelle wurde übrigens erstellt, indem ich das Bild aus dem Link kopierte, es als Hintergrund in einem XY-Diagramm verwendete und mit der Mausefalle die Koordinaten erfasste, während ich auf die Eckpunkte klickte. Sie werden feststellen, dass der Punkt ganz links etwas weiter links liegt als das Original. [Ja, JMP bietet zahlreiche Tools zur Bewältigung einer Aufgabe.]Das neue Skript scheint den Zweck zu erfüllen.Es ist nicht anwendungsbereit, verwendet einen quadratischen Rahmen und keinen kreisförmigen Wafer und standardisiert die Punkte (also zentriert zwischen +/-3 in X und Y).
Das Skript enthält eine Datei LCombine.jsl (eines der Skripte aus „JSL Companion Applications of the JMP Scripting Language, 2nd Ed.“). Es ist angehängt. Sie müssen den Pfad im angehängten Skript in das Verzeichnis ändern, in dem Sie es gespeichert haben. Ich habe das vom Skript generierte Bild angehängt. Es wurde in JMP 12, 13 und 14 getestet.
Wenn Sie die Aufgabe eingrenzen können, beispielsweise was Sie mit dem Voronoi-Diagramm oder den Voronoi-Clustern tun möchten, wäre dies hilfreich.
Es steht nicht ganz oben auf meiner Liste, aber ich glaube, dass OpenGL-Mesh-Methoden möglicherweise in der Lage sind, ein Voronoi-Diagramm zu erstellen. Ich muss noch mehr lernen/erforschen, bevor ich etwas definitiv sagen kann.
voronoi diagram with JMPvoronoi diagram with JMPVoronoi-Diagramm mit JMP
Betreff: Voronoi-Diagramme in JMP oder JSL erstellenHallo gzmorgan0,
Das ist ein toller Anfang! Ich danke Ihnen für Ihre Hilfe.
Ich habe zuvor mit den nichtparametrischen Dichtediagrammen herumgespielt, war mir aber nicht sicher, ob dies die Ergebnisse lieferte, die ich brauchte. Ihr Beitrag hat mir geholfen, die richtige Dokumentation zu finden, um die nichtparallelen Dichtediagramme mathematisch zu erklären. Ich teile diese Definition unten. Jetzt, wo ich davon gelesen habe, mache ich mir immer noch Sorgen.
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.
Die Konturen sind schön, aber sie teilen die Punkte nur in gleiche Quantile auf. Sie zeigen nicht unbedingt, wie gleichmäßig die Punkte in meinem Bereich verteilt sind. Ich habe ein Beispiel eines Datenpunktarrays angehängt, um meinen Standpunkt zu verdeutlichen. Stellen diese Konturen jeweils die gleiche Menge dar? Oberfläche ?
Ein paar Anschlussfragen:
(1) Gibt es eine Möglichkeit, die nichtparallelen Konturdaten zu manipulieren, um die Dichte pro Flächeneinheit anzuzeigen? Vielleicht ist es das, was die Option „Dichteraster speichern“ im Menü des roten Dreiecks innerhalb der Quantildichte bewirkt.
(2) Kann ich ein anderes Farbthema verwenden? Ich bin ein starker Gegner des Spektrumfarben-Themas. Allerdings ist die Farbthema() Funktion funktioniert nicht innerhalb Nonpar-Dichte() auf JMP13.
(3) Können Sie mir helfen, die Delaunay-Triangulation zu erweitern, um tatsächlich das Voronoi-Diagramm darzustellen? Ich selbst bin mit der Mathematik nicht vertraut.
Betreff: Voronoi-Diagramme in JMP oder JSL erstellenSchönes Beispiel!
und Diskussion hier: https://stackoverflow.com/questions/85275/how-do-i-derive-a-voronoi-diagram-given-its-point-set-and-its-delaunay-triangula
Betreff: Voronoi-Diagramme in JMP oder JSL erstellenIch bin kein Experte auf diesem Gebiet, erinnere mich jedoch daran, gelesen zu haben, dass die JMP-Triangularisierung eine Implementierung der Delaunay-Triangularisierung ist, die das „Dual“ von Voroni ist. Ich verfüge nicht über die Algorithmen zur Berechnung des „doppelten“ Diagramms.
Im Anhang finden Sie einen Beispieldatensatz namens voroni.jmp, den ich erstellt habe, um eine Reihe von Punkten zu emulieren, die in mehreren Voroni-Trainingsdokumenten zu finden sind (siehe http://cgl.uni-jena.de/pub/Workshops/WebHome/cgl12new.pdf ).Die beigefügte PNG-Datei zeigt die „duale“ Beziehung von Voroni-Diagrammen und Delaunay-Tesselierung (Triangularisierung).An diese angehängte JMP-Datei sind mehrere Datentabellenskripte angehängt. Ich habe sie in JMP 12,13 und 14 getestet.
Führen Sie jedes der Tabellenskripte aus, die Diagramme erstellen. Da Sie an der Dichte pro Flächeneinheit interessiert sind, schauen Sie sich das Diagramm „Dichte von Y mal X“ an und wählen Sie dann über das Menü mit dem umgekehrten roten Dreieck ein Netzdiagramm für eine 3D-Ansicht der Dichte aus. Diese Ansichten könnten Ihren Anforderungen entsprechen oder hinsichtlich der Dichte aussagekräftiger sein.
Wenn die Dichtediagramme Ihren Zweck nicht erfüllen und Sie dennoch an Voroni-Diagrammen interessiert sind, können Sie diese aus dem deldir R-Paket herunterladen: siehe https://flowingdata.com/2016/04/12/voronoi-diagram-and-delaunay-triangulation-in-r/ Da JMP über Algorithmen für den nächsten Nachbarn und die Entfernung verfügt, stellt diesem Blog vielleicht jemand die notwendigen Schritte (oder JSL) zur Verfügung, um Voroni-Diagramme zu erstellen.
Ihre Frage hat mich motiviert, die JMP-Triangularisierungsmethode zu testen und zu überprüfen, dass sie die „klassischen“ Ergebnisse liefert ... nachdem die X- und Y-Koordinaten standardisiert wurden. [ Danke! ] Die beigefügte JSL enthält Schritte zum Zeichnen der Dreiecke.
