2016-05-10 27 views
0

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

+0

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 –

+0

Was versuchen Sie hier zu erreichen? Was bedeuten Ihre Daten? Warum versuchst du, es in Regionen zu teilen? Was wollen die Regionen? –

+1

Warum möchten Sie hier ein Voronoi-Diagramm verwenden? –

Antwort

0

Sie könnten ein gewichtetes Voronoi-Diagramm versuchen. Es ist definiert als der euklidische Abstand minus dem Gewicht.