0

を使用して netcdf からデータをプロットしようとしていますBasemapが、緯度のインデックスが反転しているため、マップが上下逆になっていると思います。これを修正するにはどうすればよいですか? ありがとう!

fnc = Dataset(ncfile, 'r')
lat = fnc.variables['latitude'][:]
lon = fnc.variables['longitude'][:]
level = fnc.variables['level']
mydata = fnc.variables['Data'][:]
imgplot = plt.imshow(mydata[0, 0, :, :])
imgplot.set_cmap('RdYlGn')
plt.colorbar()
plt.show

ここに画像の説明を入力

m = Basemap(llcrnrlon = -180, llcrnrlat = -90, urcrnrlon = 180, urcrnrlat= +90, resolution = 'l', epsg=4326)
x, y = m(lon, lat)
im = m.imshow(mydata[0, 0, :, :])
m.drawcoastlines()
plt.show()

ここに画像の説明を入力

4

2 に答える 2

1

まず、現在 の 1 次元で読んでいることに注意してくださいData

mydata = fnc.variables['Data'][:]

しかし後で、4D であるかのようにスライスを抽出しようとしています。

imgplot = plt.imshow(mydata[0, 0, :, :])

したがって、次の 4 つの次元すべてを読み込む必要がありますData(おそらく、時間、レベル、緯度、経度ですか?):

mydata = fnc.variables['Data'][:,:,:,:]

::-1次に、次の構文を使用して緯度を逆にします。

imgplot.plotimshow(mydata[0, 0, ::-1, :])
于 2016-07-12T17:52:17.507 に答える
0

プロット コマンドはマップ座標 x、y を認識する必要があると思います。を交換してみてください

im = m.imshow(mydata[0, 0, :, :])

m.pcolormesh(x,y,mydata[0,0,:,:])

そしてそれはうまくいくはずです。

于 2016-07-12T17:54:15.177 に答える