特定のサイズのグリッド内で再グリッド化/補間しようとしています。不規則に散らばった場所 (緯度経度) のデータセットは、変数値に関連付けられています。私のデータは、変数、緯度、経度の値を個別にマークする列を持つデータフレームとして利用できます。
まず、グリッド サイズを最適化してこのデータをグリッド化し、次にグリッド ボックス内にあるさまざまな数のポイントの平均を取る最適な方法を見つける必要があります。
オンラインの例に従ってコードを試しました。緯度と経度をグリッド化するには、histogram2d 関数を使用します。分散ポイントを持つグリッド ボックスを密度カウント (グリッド内にあるすべてのポイントの平均に等しい) で埋めます。(次に、散布点から生成されたこの新しくグリッド化されたデータを使用して、異なるグリッド解像度を持つ別のデータセットと比較する必要があります)。
理想的には正常に動作するはずですが、ポイントのあるグリッド ボックスが除外されている間に、スキャッター ポイントのないグリッド ボックスが塗りつぶされます。不一致は、解像度が高いほど、またはビン サイズが小さいほど大きくなります。
ここに私のコードの一部があります:
df #Dataframe as a csv file opened in pandas
y = df['lon']
x = df['lat']
z = df['var']
# Bin the data onto a 10x10 grid or into any other size
# Have to reverse x & y due to row-first indexing
zi, yi, xi = np.histogram2d(y, x, bins=(5,5), weights=z, normed=False)
counts, _, _ = np.histogram2d(y, x, bins=(5,5))
zi = zi / counts
zi = np.ma.masked_invalid(zi)
m = Basemap(llcrnrlat=45,urcrnrlat=55,llcrnrlon=25,urcrnrlon=30)
m.drawcoastlines(linewidth =0.75, color ="black")
m.drawcountries(linewidth =0.75, color ="black")
m.drawmapboundary()
p,q = m(yi,xi)
#cs=m.pcolormesh(xi, yi, zi, edgecolors='black',cmap = 'jet')
cs=m.pcolormesh(p, q, zi, edgecolors='black',cmap = 'jet')
m.colorbar(cs)
#scat = m.scatter(x,y, c=z, s=200,edgecolors='red')
scat=m.scatter(y,x, latlon=True,c=z, s =80)
以下は、生成されるイメージです。
どんな助けでも大歓迎です。