2016-05-10 2 views
0

У меня есть размер 2 × 2 × 2 точек данных, соответствующий изображению в, первоначально сохраненном в формате FITS. Каждое число в массиве указывает количество фотонов в этой координате в пространстве.диаграмма voronoi, охватывающая N точек

Я пытаюсь создать график Вороного для этих данных точек, как 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() 

Однако этот метод дает только Вороной, где каждая ячейка имеет «единую» точку. the image looks a complete mess

Для того, чтобы иметь смысл из сюжета, мне нужен способ заключить более одного пункта в моем заговоре Вороного (я думаю, что это называется «k-й порядок Вороной»). Как я могу реализовать это в Python? Любые существующие ранее библиотеки/методы, которые я могу использовать?

Спасибо

+0

Вы уверены, что хотите использовать voronoi? Я думаю, что k-й порядок voronoi не будет считать количество фотонов в графе. Возможно, какая-то другая визуализация может быть лучше –

+0

Что вы пытаетесь достичь здесь? Что означают ваши данные? Почему вы пытаетесь разделить его на регионы? Что вы хотите, чтобы регионы имели в виду? –

+1

Почему вы хотите использовать диаграмму Вороного здесь? –

ответ

0

Вы можете попробовать взвешенную диаграммы Вороного. Он определяется как эвклидово расстояние за вычетом веса.

Смежные вопросы