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 & 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. Sie zeigt die Grenze um den Punkt herum, der durch die Hälfte zwischen dem euklidischen Abstand zwischen diesem Punkt P1 und dem nächsten Punkt Pn definiert ist.
Hier ist die Definition von Wikipedia: https://en.wikipedia.org/wiki/Voronoi_diagram
Hier finden Sie Anweisungen zum Erstellen diese Art von Diagramm in MATLAB
Re: Erstellen von Voronoi-Diagrammen in JMP oder JSLHi,
Erstmal Entschuldigung für den Rechtschreibfehler von Voronoi, alte Augen. Ich bin mir nicht sicher, welche Frage Sie zu beantworten versuchen. 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 Halbleiterherstellungsdaten.
JMP verfügt über viele Clustering-Methoden und bietet seit JMP12 mehrere räumliche Mustermethoden, einschließlich einer, die Wafer basierend auf Musterähnlichkeiten gruppieren kann.Das folgende Skript öffnet eine JMP-Beispieldatentabelle, die 125 Wafer mit unterschiedlicher Defektdichte darstellt, und klassifiziert/gruppiert die Wafer nach Mustern. Es kann es auch für 1 Wafer tun.
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 das Generieren von 3D-Terrains mit OpenGL zu lernen, 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 ich mich für räumliche Geometrie interessiere. Wie in meiner ersten Antwort erwähnt, erstellt die JMP-Triangularisierung (zu finden in Hilfe > Skriptindex unter Objekten) die Delaunay-Traingularisierung und stellt auch zu erhaltende Nachrichten, Dreiecke, Punkte und Kanten bereit.
Ich habe mein Skript erweitert, um den dualen Voronoi-Graphen zu berechnen. Ich habe die Leistung für dichte Punkte nicht getestet; Viele der Websites mit alternativen Algorithmen und Annäherungen befassen sich mit der Leistung. Unter Verwendung des Pseudocodes, der unter dem von Craig Hales bereitgestellten Link gemeldet wurde, habe ich ein Skript erstellt. Ich habe es nur an der einzelnen Beispieldatentabelle getestet. Übrigens wurde diese Datentabelle generiert, indem das Bild aus dem Link kopiert, als Hintergrund in einem XY-Diagramm verwendet und die Mausefalle verwendet wurde, um die Koordinaten zu erfassen, als ich auf die Scheitelpunkte klickte. Sie werden feststellen, dass der äußerste linke Punkt etwas weiter links ist als das Original. [Ja, JMP bietet zahlreiche Tools zur Bewältigung einer Aufgabe.]Das neue Skript scheint zu funktionieren.Es ist nicht anwendungsbereit, verwendet einen quadratischen Rahmen, keinen kreisförmigen Wafer, und es 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, z. B. was Sie mit dem Voronoi-Diagramm oder den Clustern tun möchten, wäre dies hilfreich.
Es steht nicht ganz oben auf meiner Liste, aber ich glaube, dass Opengl-Mesh-Methoden in der Lage sein könnten, ein Voronoi-Diagramm zu erstellen. Ich muss mehr lernen/erkunden, bevor ich etwas definitiv sagen kann.
voronoi diagram with JMPVoronoi-Diagramm mit JMP
Re: Erstellen von Voronoi-Diagrammen in JMP oder JSLHallo gzmorgan0,
Das ist ein toller Anfang! Danke für Ihre Hilfe.
Ich habe zuvor mit den nichtparametrischen Dichtediagrammen herumgespielt, war mir aber nicht sicher, ob dies die Ergebnisse liefert, die ich brauche. Ihr Beitrag hat mir geholfen, die richtige Dokumentation zu finden, um die nichtparen 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 nett, aber sie teilen die Punkte nur in gleiche Quantile. Sie zeigen nicht unbedingt, wie gleichmäßig die Punkte in meinem Bereich verteilt sind. Ich habe ein Beispiel für ein Datenpunktarray angehängt, um zu versuchen, meinen Standpunkt zu vermitteln. Stellen diese Konturen jeweils eine gleiche Menge dar Oberfläche ?
Ein paar Anschlussfragen:
(1) Gibt es eine Möglichkeit, die ungleichen Konturdaten zu nehmen und zu manipulieren, um die Dichte pro Flächeneinheit anzuzeigen? Vielleicht macht dies die Option "Dichteraster speichern" aus dem roten Dreiecksmenü innerhalb der Quantildichte.
(2) Kann ich ein anderes Farbdesign verwenden? Ich bin strikt gegen das Spektrum-Farbthema. Allerdings ist die Farbthema () Funktion funktioniert nicht innerhalb ungleiche Dichte () auf JMP13.
(3) Können Sie mir helfen, die Delaunay-Triangulation zu erweitern, um tatsächlich das Voronoi-Diagramm zu zeigen? Ich selbst fühle mich mit Mathe nicht wohl.
Re: Erstellen von Voronoi-Diagrammen in JMP oder JSLSchö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
Re: Erstellen von Voronoi-Diagrammen in JMP oder JSLIch bin kein Experte auf diesem Gebiet, aber ich erinnerte mich, gelesen zu haben, dass die JMP-Triangularisierung eine Implementierung der Delaunay-Triangularisierung ist, die das "Dual" von Voroni ist. Ich habe nicht die Algorithmen zum Berechnen des "doppelten" Diagramms.
Anbei ist ein Beispieldatensatz namens voroni.jmp, den ich erstellt habe, um eine Reihe von Punkten zu emulieren, die in mehreren Voroni-Schulungsdokumenten zu finden sind (siehe http://cgl.uni-jena.de/pub/Workshops/WebHome/cgl12new.pdf ).Die angehängte PNG-Datei zeigt die "duale" Beziehung von Voroni-Plots und Delaunay-Tesselation (Triangularisierung).Diese angehängte jmp-Datei enthält mehrere angehängte Datentabellen-Skripts. Ich habe sie in JMP 12, 13 und 14 getestet.
Führen Sie alle Tabellenskripts aus, die Diagramme erstellen. Da Sie an der Dichte pro Flächeneinheit interessiert sind, sehen Sie sich das Diagramm Dichte von Y nach X an und verwenden Sie dann das umgekehrte rote Dreiecksmenü, um ein Netzdiagramm für eine 3D-Ansicht der Dichte auszuwählen. Diese Ansichten können Ihren Anforderungen entsprechen oder hinsichtlich der Dichte informativer sein.
Wenn die Dichteplots Ihren Zweck nicht erfüllen und Sie immer noch an Voroni-Plots interessiert sind, können Sie sie aus dem deldir R-Paket erhalten: siehe https://flowingdata.com/2016/04/12/voronoi-diagram-and-delaunay-triangulation-in-r/ Da JMP über Nächste-Nachbar- und Entfernungsalgorithmen verfügt, wird vielleicht jemand diesen Blog mit den notwendigen Schritten (oder JSL) versorgen, um Voroni-Diagramme zu erstellen.
Ihre Frage hat mich motiviert, die JMP-Triangularisierungsmethode zu testen und zu überprüfen, ob 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.
