2016-05-10 3 views
0

私は元々FITS形式で保存された画像に対応するデータポイントの200x200の2次元配列を持っています。アレイ内の各数字は、空間におけるその座標における光子数を示す。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次のボロノイは数えられた光子数をとらないと考えています。他の視覚化はより良いかもしれません –

+0

ここで何を達成しようとしていますか?あなたのデータはどういう意味ですか?なぜそれを地域に分けようとしているのですか?地域が意味するものは何ですか? –

+1

なぜボロノイダイアグラムを使用したいのですか? –

答えて

0

重み付けされたボロノイ図を試すことができます。それは、真実の距離から体重を差し引いたものとして定義されます。

関連する問題