У меня есть размер 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? Любые существующие ранее библиотеки/методы, которые я могу использовать?
Спасибо
Вы уверены, что хотите использовать voronoi? Я думаю, что k-й порядок voronoi не будет считать количество фотонов в графе. Возможно, какая-то другая визуализация может быть лучше –
Что вы пытаетесь достичь здесь? Что означают ваши данные? Почему вы пытаетесь разделить его на регионы? Что вы хотите, чтобы регионы имели в виду? –
Почему вы хотите использовать диаграмму Вороного здесь? –