MatPlotLib Pcolormesh не накладывается должным образом

#python #numpy #matplotlib #data-science

#python #numpy #matplotlib #наука о данных

Вопрос:

Я пытаюсь повторить это руководство: https://makersportal.com/blog/2019/7/8/satellite-imagery-analysis-in-python-part-i-goes-16-data-netcdf-files-and-the-basemap-toolkit

Для построения простой тепловой карты, подобной этой:

введите описание изображения здесь

Но то, что я получаю, это :

введите описание изображения здесь

Вот фрагмент кода

 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()
  

может кто-нибудь, пожалуйста, сказать мне, что я делаю не так.

Комментарии:

1. Не могли бы вы также поделиться входными данными, чтобы другие могли протестировать ваш код? Я предполагаю, что в оригинальной анимации использовались чистые данные — области, покрытые облаками, замаскированы и, следовательно, не отображают никаких цветов.

Ответ №1:

На самом деле проблема была с данными, я пытался отобразить данные из облака, которые не были чистыми, поэтому я присвоил нижним значениям значение None, чтобы отображались только более высокие значения