Я пытаюсь нанести на карту некоторые данные о погоде, используя Базовую карту (я тоже открыт для картографирования) на Python. Сейчас мои погодные данные выглядят как это . Мой источник данных - это в основном массив, каждая позиция которого соответствует квадрату сетки, а каждое значение указывает цвет, которым должен быть квадрат. Код, используемый для создания этого изображения, выглядит следующим образом, где каждый квадрат сетки равен 1000 м:
grid_0 = np.asarray(dec.split())
grid_1=np.reshape(grid_0,(n_cols,n_rows))
grid_2 = grid_1.astype(float)
# Make plot
plt.figure(figsize=(30,30))
fig, ax = plt.subplots()
plt.axis('off')
cax = ax.imshow(grid_2, interpolation='nearest', cmap=cmap)
У меня есть информация о том, где географически расположен нижний угол сетки. Я считаю, что лучший способ нанести это на карту - это использовать функцию contourf (), но я совсем новичок в Basemap и не могу найти способ преобразовать это в то, что может понять contourf (). Для отображения карты я использую Базовую карту, где lon_air и lat_air - координаты определенного аэропорта:
fig=figure(1, figsize=(19, 15))
m = Basemap(projection='cyl', llcrnrlon=lon_air-25, llcrnrlat=lat_air-15,
urcrnrlon=lon_air+25, urcrnrlat=lat_air+15, resolution='h', area_thresh=10000)
m.drawstates(linewidth=0.5, color='black', zorder=4)
m.drawcountries(linewidth=2.0, color='white', zorder=3)
m.drawmapboundary(fill_color='#e5f5ff')
m.fillcontinents(color='#DFDFDF', zorder=1)
m.scatter(lon_air, lat_air,marker='o',color='k', zorder=10)
x0, y0 = lon_air-((360*920)/(4*np.pi*6371)),lat_air-((360*920)/(4*np.pi*6371))
x1, y1 = lon_air+((360*920)/(4*np.pi*6371)), lat_air+((360*920)/(4*np.pi*6371))
im = plt.imshow(plt.imread('./pngs/9905.png'), extent=(x0, x1, y0, y1), zorder=2)
plt.show()
Я отредактирую сообщение, если кто-то посчитает, что нужно больше подробностей. Спасибо всем заранее!