Python 包含N个点的voronoi图

Python 包含N个点的voronoi图,python,scipy,geometry,voronoi,Python,Scipy,Geometry,Voronoi,我有一个200x200二维数据点数组,对应于中的图像,最初以FITS格式存储。阵列中的每个数字表示空间中该坐标处的光子计数 我试图为这些数据点创建一个Voronoi图,如下所示-- 然而,该方法仅给出每个框有一个“单一”点的Voronoi 为了从图中理解,我需要一种方法来在我的Voronoi图中包含多个点(我认为这被称为“k阶Voronoi”)。如何在Python中实现这一点?我可以使用任何先前存在的库/方法 谢谢你你可以试试加权沃罗诺图。它的定义是euklidian距离减去重量。确定要使用vo

我有一个200x200二维数据点数组,对应于中的图像,最初以FITS格式存储。阵列中的每个数字表示空间中该坐标处的光子计数

我试图为这些数据点创建一个Voronoi图,如下所示--

然而,该方法仅给出每个框有一个“单一”点的Voronoi

为了从图中理解,我需要一种方法来在我的Voronoi图中包含多个点(我认为这被称为“k阶Voronoi”)。如何在Python中实现这一点?我可以使用任何先前存在的库/方法


谢谢你

你可以试试加权沃罗诺图。它的定义是euklidian距离减去重量。

确定要使用voronoi吗?我认为k阶voronoi不会计算光子数。其他一些观想可能会更好你在这里想要实现什么?你的数据是什么意思?你为什么要把它分成几个区域?你想让这些区域是什么意思?为什么你想在这里使用Voronoi图?
  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()