scipy.spatial.

Voronoi#

class scipy.spatial.Voronoi(points, furthest_site=False, incremental=False, qhull_options=None)#

Voronoi-Diagramme in N Dimensionen.

Hinzugefügt in Version 0.12.0.

Parameter:
pointsndarray von floats, Form (npoints, ndim)

Koordinaten von Punkten zur Konstruktion eines Voronoi-Diagramms

furthest_sitebool, optional

Ob ein furthest-site Voronoi-Diagramm berechnet werden soll. Standard: False

incrementalbool, optional

Ermöglicht das schrittweise Hinzufügen neuer Punkte. Dies beansprucht zusätzliche Ressourcen.

qhull_optionsstr, optional

Zusätzliche Optionen, die an Qhull übergeben werden sollen. Details siehe Qhull-Handbuch. (Standard: "Qbb Qc Qz Qx" für ndim > 4 und "Qbb Qc Qz" sonst. Der inkrementelle Modus lässt "Qz" weg.)

Attribute:
pointsndarray von double, Form (npoints, ndim)

Koordinaten der Eingabepunkte.

verticesndarray von double, Form (nvertices, ndim)

Koordinaten der Voronoi-Knoten.

ridge_pointsndarray von ints, Form (nridges, 2)

Indizes der Punkte, zwischen denen sich jeder Voronoi-Grat befindet.

ridge_verticesListe von Listen von ints, Form (nridges, *)

Indizes der Voronoi-Knoten, die jeden Voronoi-Grat bilden.

regionsListe von Listen von ints, Form (nregions, *)

Indizes der Voronoi-Knoten, die jede Voronoi-Region bilden. -1 bezeichnet einen Knoten außerhalb des Voronoi-Diagramms. Wenn die Qhull-Option "Qz" angegeben wurde, repräsentiert eine leere Unterliste die Voronoi-Region für einen Punkt im Unendlichen, der intern hinzugefügt wurde.

point_regionArray von ints, Form (npoints)

Index der Voronoi-Region für jeden Eingabepunkt. Wenn die Qhull-Option "Qc" nicht angegeben wurde, enthält die Liste -1 für Punkte, die keiner Voronoi-Region zugeordnet sind. Wenn die Qhull-Option "Qz" angegeben wurde, gibt es ein Element weniger als die Anzahl der Regionen, da ein zusätzlicher Punkt im Unendlichen zur Erleichterung der Berechnung intern hinzugefügt wird.

furthest_site

True, wenn es sich um eine Furthest-Site-Triangulierung handelte, und False, wenn nicht.

Hinzugefügt in Version 1.4.0.

Methoden

add_points(points[, restart])

Verarbeitet eine Menge zusätzlicher neuer Punkte.

close()

Beendet die schrittweise Verarbeitung.

Löst aus:
QhullError

Wird ausgelöst, wenn Qhull auf eine Fehlerbedingung stößt, z. B. eine geometrische Degeneration, wenn keine Optionen zur Behebung aktiviert sind.

ValueError

Wird ausgelöst, wenn ein inkompatibles Array als Eingabe gegeben wird.

Hinweise

Das Voronoi-Diagramm wird mit der Qhull-Bibliothek berechnet.

Beispiele

Voronoi-Diagramm für eine Punktmenge

>>> import numpy as np
>>> points = np.array([[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2],
...                    [2, 0], [2, 1], [2, 2]])
>>> from scipy.spatial import Voronoi, voronoi_plot_2d
>>> vor = Voronoi(points)

Zeichne sie

>>> import matplotlib.pyplot as plt
>>> fig = voronoi_plot_2d(vor)
>>> plt.show()
../../_images/scipy-spatial-Voronoi-1_00_00.png

Die Voronoi-Knoten

>>> vor.vertices
array([[0.5, 0.5],
       [0.5, 1.5],
       [1.5, 0.5],
       [1.5, 1.5]])

Es gibt eine einzige endliche Voronoi-Region und vier endliche Voronoi-Gräte

>>> vor.regions
[[], [-1, 0], [-1, 1], [1, -1, 0], [3, -1, 2], [-1, 3], [-1, 2], [0, 1, 3, 2], [2, -1, 0], [3, -1, 1]]
>>> vor.ridge_vertices
[[-1, 0], [-1, 0], [-1, 1], [-1, 1], [0, 1], [-1, 3], [-1, 2], [2, 3], [-1, 3], [-1, 2], [1, 3], [0, 2]]

Die Gräte sind senkrecht zu den Linien, die zwischen den folgenden Eingabepunkten gezogen werden

>>> vor.ridge_points
array([[0, 3],
       [0, 1],
       [2, 5],
       [2, 1],
       [1, 4],
       [7, 8],
       [7, 6],
       [7, 4],
       [8, 5],
       [6, 3],
       [4, 5],
       [4, 3]], dtype=int32)