Невозможно нарисовать векторы ветра, используя колчан в python - PullRequest
0 голосов
/ 14 апреля 2020

Я пытался построить векторы ветра, используя колчан в Python, я получил ошибку

TypeError: Аргумент 'x' имеет неверный тип (ожидается numpy .ndarray, получил DataArray)

Как решить эту проблему?

Мой код

import xarray as xr
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import numpy as np

#%% u wind import
fname='/home/SIMS/P1/uwind/*.nc'
du=xr.open_mfdataset(fname)
uwnd=du.uwnd
uwind=du.mean('time')

#%% v wind import
fname='/home/SIMS/P1/vwind/*.nc'                                        
dv=xr.open_mfdataset(fname)
#ds=xr.open_mfdataset(fname,concat_dim="time")                     
vwnd=dv.vwnd
vwind=dv.mean('time')

lat = du.uwind.lat
lon = du.uwind.lon
u=uwind.uwnd[0,:,:]
v=vwind.vwnd[0,:,:] 

print(lat.shape)
print(lon.shape)
print(u.shape)
print(v.shape)

lon,lat = np.meshgrid(lon,lat)

ax = plt.axes(projection=ccrs.Mercator(central_longitude=80.0, min_latitude=-10.0, 
max_latitude=20.0, globe=None, latitude_true_scale=0.0))
ax.coastlines()
ax.coastlines()
ax.quiver(lat,lon,u,v)
plt.show()

в форме широты, долготы, буквы u и v следующим образом

(15,)

( 73,)

(15, 73)

(15, 73)

lon

lon Out [192]: массив ([[50., 52.5, 55., ..., 225., 227.5, 230.], [50., 52.5, 55., ..., 225., 227.5, 230.], [50. , 52.5, 55., ..., 225., 227.5, 230.], ..., [50., 52.5, 55., ..., 225., 227.5, 230.], [50., 52.5 , 55., ..., 225., 227.5, 230.], [50., 52.5, 55., ..., 225., 227.5, 230.]], dtype = float32)

Он рисует чистое изображение без векторов ветра

1 Ответ

0 голосов
/ 17 апреля 2020

, когда я попытался с .value для lon, lat, u и v, я мог построить его.

lat = du.uwnd.lat.values
lon = du.uwnd.lon.values
u=anomaly_u.uwnd.values[0,:,:]
v=anomaly_v.vwnd.values[0,:,:] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...