Ich habe eine 200x200 2-dimensionale Array von Datenpunkten entsprechend einem Bild in der, ursprünglich im FITS-Format gespeichert. Jede Zahl im Array gibt die Photonenzahl an dieser Koordinate im Raum an.Voronoi-Diagramm mit N Punkte
Ich versuche, ein Voronoi-Diagramm für diese Datenpunkte als follows--
import numpy
import matplotlib
import scipy
from astropy.io import fits
#Header List
hdulist = fits.open("ElGordo_img_0540_full.fits")
#Converting the photon data to coordinates
#Any non-zero photon intensity is counted only once
#For testing purposes
def convert_coords(data):
coords = []
for i in range(len(data)):
for j in range(len(data[i])):
if data[i][j] >0:
coords.append([j,i])
return coords
# print convert_coords(test)
#Image DATA array stored in the Primary header
data_array = hdulist[0].data
#converting to coordinate form
coords_data = convert_coords(data_array)
#Making Voronoi plot
from scipy.spatial import Voronoi, voronoi_plot_2d
vor = Voronoi(coords_data)
#Plotting Voronoi
import matplotlib.pyplot as plt
voronoi_plot_2d(vor)
plt.show()
Dieses Verfahren ist jedoch nur zu schaffen, gibt Voronoi wo jede Box einen ‚einzigen‘ Punkt hat. the image looks a complete mess
Um aus der Handlung einen Sinn zu machen, brauche ich eine Möglichkeit, mehr als einen Punkt in meinem Voronoi-Plot einzuschließen (ich denke, das wird als "k-te Ordnung Voronoi" bezeichnet). Wie kann ich das in Python implementieren? Irgendwelche bereits existierenden Bibliotheken/Methoden die ich benutzen darf?
Vielen Dank
Sind Sie sicher, dass Sie voronoi verwenden möchten? Ich denke, die k-te Ordnung voronoi wird die Photonenzahl nicht zählen. Einige andere Visualisierung könnte besser sein –
Was versuchen Sie hier zu erreichen? Was bedeuten Ihre Daten? Warum versuchst du, es in Regionen zu teilen? Was wollen die Regionen? –
Warum möchten Sie hier ein Voronoi-Diagramm verwenden? –