【问题标题】:MatPlotLib Pcolormesh not overlaying properlyMatPlotLib Pcolormesh 没有正确覆盖
【发布时间】:2020-08-19 08:55:15
【问题描述】:

我正在尝试复制本教程:https://makersportal.com/blog/2019/7/8/satellite-imagery-analysis-in-python-part-i-goes-16-data-netcdf-files-and-the-basemap-toolkit

像这样绘制一个简单的热图:

但我得到的是这个:

这里是代码sn-p

nc_folder = data_path  # define folder where .nc files are located
lon, lat = lat_lon_reproj(nc_folder)

data, data_units, data_time_grab, data_long_name, var_name = data_grab(nc_folder, file_indx)
# main data grab from function above

data_bounds = np.where(data.data != 65535)
bbox = [np.min(lon[data_bounds]),
        np.min(lat[data_bounds]),
        np.max(lon[data_bounds]),
        np.max(lat[data_bounds])]  # set bounds for plotting

# figure routine for visualization
fig = plt.figure(figsize=(9, 4), dpi=200)

n_add = 0  # for zooming in and out
m = Basemap(llcrnrlon=bbox[0] - n_add, llcrnrlat=bbox[1] - n_add, urcrnrlon=bbox[2] + n_add, urcrnrlat=bbox[3] + n_add,
             resolution='i', projection='cyl')
m.fillcontinents(color='#d9b38c', lake_color='#bdd5d5', zorder=1)  # continent colors
m.drawmapboundary(fill_color='#bdd5d5', zorder=0)  # ocean color
m.drawcoastlines(linewidth=0.5)
m.drawcountries(linewidth=0.25)
m.drawstates(zorder=2)
m.pcolormesh(lon.data, lat.data, data, latlon=True, zorder=999, shading='gouraud')  # plotting actual LST data
parallels = np.linspace(bbox[1], bbox[3], 5)
m.drawparallels(parallels, labels=[True, False, False, False], zorder=2, fontsize=8)
meridians = np.linspace(bbox[0], bbox[2], 5)
m.drawmeridians(meridians, labels=[False, False, False, True], zorder=1, fontsize=8)
cb = m.colorbar()

data_units = ((data_units.replace('-', '^{-')).replace('1', '1}')).replace('2', '2}')
plt.rc('text', usetex=True)
cb.set_label(f'{var_name} {data_units}')
plt.title(' on '.format(data_long_name, data_time_grab))
plt.tight_layout()

plt.savefig('goes_16_data_demo.png', dpi=200, facecolor=[252 / 255, 252 / 255, 252 / 255])  # uncomment to save figure
plt.show()

谁能告诉我我做错了什么。

【问题讨论】:

  • 您是否也可以共享输入数据,以便其他人可以测试您的代码?我猜在原始动画中,使用了干净的数据 - 被云层覆盖的区域被遮盖,因此不显示任何颜色。

标签: python numpy matplotlib data-science


【解决方案1】:

实际上问题出在数据上,我试图绘制不干净的云数据,所以我所做的是将较低的值分配为 None 值,以便只显示较高的值

【讨论】:

    猜你喜欢
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    相关资源
    最近更新 更多