以下は、netCDF ファイルによって表示される変数です。
netCDF ファイルを使用して地中海の表層海流を描画するために、次のコードを作成しました。
import netCDF4
from netCDF4 import Dataset
import datetime as dt
import numpy as np
import numpy.ma as ma
from datetime import date, datetime, timedelta
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
nc=Dataset('datasets/essai.nc')
y = nc.variables['g0_lat_1']
y = np.array(y)
x = nc.variables['g0_lon_2']
x = np.array(x)
u = nc.variables['UOGRD_GDS0_DBSL']
u = np.array(u)
u = u[0, :, :]
u = np.deg2rad(u)
v = nc.variables['VOGRD_GDS0_DBSL']
v = np.array(v)
v = v[0, :, :]
v = np.deg2rad(v)
y, x = np.meshgrid(y,x)
plt.quiver(x [::10], y[::10], u[::10], v[::10], pivot='tail')
plt.show()
これは私にこれを与えます:
ズームインすると、矢印と点があることがわかります。 まず、点が何を意味するのかわかりません。海岸線が想像できません。すると、私の矢はすべて同じ方向に向かいます!だから私はフォーラムでこのコードを見つけました:
# Calculate positions of vectors on map projection
y, x = np.meshgrid(lat,lon)
# Calculate the orientation of the vectors
x1, y1 = m(lon+u, lat+v)
u_map, v_map = x1-x, y1-y
# Rescale the magnitudes of the vectors...
mag_scale = np.hypot(u_map, v_map) / np.hypot(u, v)
u_map /= mag_scale
v_map /= mag_scale
m.quiver(x, y, u_map, v_map)
plt.show()
しかし、それは私に矢だけを返します。アイデアはありますか?