grib2 ファイルのマップに (衛星観測からの) 降水量のデータをプロットする必要があります。最後に、テキスト ファイルを介して numpy 配列にデータをロードし、Basemap を使用して画像座標と関連付けることができました。しかし問題は、Python がデータから色付きの点を配置しないことですが、データ フィールド内の隣接する点の間に線を引く傾向があるため、プロットが見苦しくなります。問題の原因がわかりません。
私のコードの断片は次のとおりです。
import numpy as np
import matplotlib
matplotlib.use('Agg')
from scipy import *
from pylab import *
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import cm
その後、必要なデータを読み取り、形状がおよそ (100000, 2) の 3 つの numpy 配列を生成します。これには、緯度、経度、度数、および各データ ポイントの値がそれぞれ含まれます。これらのコマンドを使用して視覚化します。
def joonista(lats,lons,value,nimi,clevs,koloriit):
---------記述された再形成の一部 (表示されていません)、配列 "lats"、"lons"、"value" を生成します------------
map=Basemap(projection='aea',lat_1=30,lat_2=50,lat_0=45,lon_0=0,llcrnrlon=-30,llcrnrlat=20,urcrnrlon=80,urcrnrlat=53,resolution='l',)
x, y = map(lons, lats)
map.drawcoastlines(linewidth=0.17,color='0.7')
map.drawcountries(linewidth=0.17,color='0.7')
map.drawmeridians(np.arange(-50,60,5),linewidth=0.17,color='0.7',labels=[False,False,False,True])
map.drawparallels(np.arange(-25, 70, 5),linewidth=0.17,color='0.7',labels=[True,False,False,False])
varvid=mpl.colors.ListedColormap(koloriit)
norm = mpl.colors.BoundaryNorm(clevs,varvid.N)
cs = map.pcolormesh(x,y,value,cmap=varvid,norm=norm)
savefig(nimi,dpi=300)
plt.clf()
joonista(latA,lonA,valueA,'h05',[-1,0.00001,0.001,0.01,0.1,0.3,0.5,1,2,3,4,5,6,7,8,9,10,11,12,13],['k','c','#a0fff9','#00b354','#69b300','#97ff03','#C2524D','#FF7500','#b3a900','#fff551','#515bff','#45adff','#da000d','#ff2a36','#ffa0a5','#f003ff','#f778ff','0.5','0.75'])
joonista(latB,lonB,valueB,'h04',[-1,0.0000000000001,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],['k','c','#a0fff9','#00b354','#69b300','#97ff03','#C2524D','#FF7500','#b3a900','#fff551','#515bff','#45adff','#da000d','#ff2a36','#ffa0a5','#f003ff','#f778ff','0.5','0.75'])
ここに例の写真があります:
この問題を解決する方法を教えていただければ幸いです。
アレクセイ