【问题标题】:Unable to view data on basemap pcolormesh map无法查看底图 pcolormesh 地图上的数据
【发布时间】:2018-02-24 01:26:18
【问题描述】:

我是 python 新手,还在学习,如果我遗漏了一些明显的东西,请原谅我!

我正在尝试使用 matplotlib 中的 Basemap 绘制温度数据 ('tg') 的 pcolormesh 地图。 tg 是时间、纬度和经度的 3D 数组。出于某种原因,我的输出只显示了大陆和州,但温度数据没有覆盖并且不可见。我错过了什么?

这是我的代码示例:

import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap, cm

lon_0 = (lon_var[:].mean())
lat_0 = (lat_var[:].mean())
latcorners = lat_var[:]
loncorners = lon_var[:]

m = Basemap(projection = 'lcc',\
        lon_0 = -100, lat_0 = 39, lat_ts = lat_0,\
        llcrnrlat=latcorners[0,0],urcrnrlat=latcorners[169,56],\
        llcrnrlon=loncorners[0,0],urcrnrlon= loncorners[169,56],\
        resolution='l')

m.drawcoastlines()
m.drawstates()
m.drawcountries()

parallels = np.arange(lat_var[0,0], lat_var[169,56])
m.drawparallels(parallels)

meridians = np.arange(lon_var[0,0], lon_var[169,56])
m.drawmeridians(meridians)


clevs = np.linspace(30,50, 2)

cs = m.pcolormesh(lon_var, lat_var, tg[0,:,:])
plt.show()

Here is the output map that is created

谢谢!

【问题讨论】:

  • 试试m.pcolormesh(lon_var, lat_var, tg[0,:,:], latlon=True)
  • @Thomas Kuhn 这最终奏效了!我还注意到我的 lon_var 和 lat_var 都属于错误的数据类型。我用 np.array() 转换了它们,然后脚本成功运行。感谢您的帮助!
  • 也许你可以为自己的问题写一个答案——这样其他人就可以看到这个问题不需要进一步关注。

标签: python netcdf matplotlib-basemap


【解决方案1】:

问题解决了!我的最终命令:

m.pcolormesh(lon_var, lat_var, tg[0,:,:], latlon = True)

latlon = True 关键字参数是正确显示我的数据所必需的。另外,我意识到lat_varlon_var 被作为列表读取,需要使用np.array() 将它们转换为数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 2012-06-03
    • 1970-01-01
    相关资源
    最近更新 更多