在 python 中使用底图旋转地图
Rotating map plot using basemap in python
我正在尝试使用 Basemap
从 netcdf 绘制数据,但我想由于纬度指数是倒置的,所以我得到的地图是颠倒的。我应该如何解决这个问题?谢谢!
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()
首先,请注意,您目前正在阅读 Data
的一维内容:
mydata = fnc.variables['Data'][:]
但稍后您尝试将它的切片提取为 4D:
imgplot = plt.imshow(mydata[0, 0, :, :])
因此,您需要读入 Data
的所有 4 个维度(也许是时间、水平、纬度、经度?):
mydata = fnc.variables['Data'][:,:,:,:]
然后使用 ::-1
语法反转纬度:
imgplot.plotimshow(mydata[0, 0, ::-1, :])
我认为绘图命令需要知道地图坐标 x,y。尝试替换
im = m.imshow(mydata[0, 0, :, :])
和
m.pcolormesh(x,y,mydata[0,0,:,:])
它应该可以工作。
我正在尝试使用 Basemap
从 netcdf 绘制数据,但我想由于纬度指数是倒置的,所以我得到的地图是颠倒的。我应该如何解决这个问题?谢谢!
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()
首先,请注意,您目前正在阅读 Data
的一维内容:
mydata = fnc.variables['Data'][:]
但稍后您尝试将它的切片提取为 4D:
imgplot = plt.imshow(mydata[0, 0, :, :])
因此,您需要读入 Data
的所有 4 个维度(也许是时间、水平、纬度、经度?):
mydata = fnc.variables['Data'][:,:,:,:]
然后使用 ::-1
语法反转纬度:
imgplot.plotimshow(mydata[0, 0, ::-1, :])
我认为绘图命令需要知道地图坐标 x,y。尝试替换
im = m.imshow(mydata[0, 0, :, :])
和
m.pcolormesh(x,y,mydata[0,0,:,:])
它应该可以工作。