Я пытаюсь нарисовать колчаны ветра из файла NetCDF, однако я могу построить только одну линию колчанов, прямо через базовую карту, как показано на изображении. Код ниже. Большое спасибо за любую помощь :)
данные здесь, пожалуйста, замените папку onedrive, спасибо https://drive.google.com/file/d/160121aFx0Ys6G1jdQZOCT2Ve9eZgOyUy/view?usp=sharing
import xarray as xr
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
data = xr.open_dataset(<Insert google drive file data here>)
data = data.sel(time='2010-04-14T00:00:00.000000000')
X = data.longitude; Y = data.latitude
U = data.u10[200]; V = data.v10[200]
plt.figure()
ax = plt.subplot(111,projection=ccrs.PlateCarree())
ax.quiver(X[::5], Y[::5], U[::5], V[::5],color='green')
plt.show()
Я ожидаю, что все колчаны будут нанесены на график, поэтому график должен быть заполнен зелеными стрелками.
В настоящее время это построенное изображение:
Привет, @medium-dimension , большое спасибо за быстрый ответ, drive.google.com/file/d/1kQ3o_0irbnMgwSFMpbbB-_lMqdgAR8SB/… вот ссылка на выдаваемый им сюжет, (для простоты колчан имеет построено для каждой 5-й точки данных)
Привет @medium-dimension извините, у меня сейчас лекция, но я посмотрю и попробую сделать это позже, спасибо :)
Вы берете данные только из последней строки с data.u10[200]. Вместо колчана создайте координаты в виде 2D-массивов и нанесите, например, каждые 5 точек набора данных. Вот мое решение, я загрузил и сохранил ваши данные как «exdata.nc».
#!/usr/bin/env ipython
# --------------------
import xarray as xr
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
import numpy as np
# --------------------------------------------------------------------
data = xr.open_dataset('exdata.nc')
data = data.sel(time='2010-04-14T00:00:00.000000000')
X = data.longitude; Y = data.latitude
# --------------------------------------------------------------------
XM,YM = np.meshgrid(X,Y)
U = data.u10; V = data.v10
skipx, skipy = 5,5
# ----------------------------------------------------------------
plt.figure(figsize=(12,12))
ax = plt.subplot(111,projection=ccrs.PlateCarree())
ax.quiver(XM[::skipy,::skipx], YM[::skipy,::skipx], U[::skipy,::skipx], V[::skipy,::skipx],color='green')
ax.add_feature(cfeature.LAND)
ax.add_feature(cfeature.OCEAN)
plt.show()
# ---------------------------------
Надеюсь, это поможет в качестве примера!
Большое спасибо msi_gerva! Красиво, желаю тебе всего наилучшего в твоих будущих начинаниях :))))
Не могли бы вы опубликовать минимальный воспроизводимый пример?