一、实验目的
从ERA5再分析资料提取台风“温比亚”水平风速场数据,并利用体绘制技术使用MeteoInfoLab展现风速场的三维结构。
二、实验内容和要求
内容:
1.数据读取与预处理
2.设置颜色和不透明度传输函数
3.显示体绘制结果
要求:
1.展现风速大小 30 m/s 附近的风场结构,通过调整不透明度传输函数斜率和峰值来调整风速显示范围
2.同时强调风速大小为 20 m/s、30 m/s 附近的风场结构
使用数据:era5.u_component_of_wind.20180817.nc、era5.v_component_of_wind.20180817.nc
(a) (b)
(c) (d)
(▲图1 (a)采样值[0,20,30,40],不透明度[0,0,1 ,0];(b)采样值[0,20,30,40],不透明度[0,0,0.5,0];(c)采样值[0,10,30,50],不透明度[0,0,1,0];(d)采样值[0,10,30,50],不透明度[0,0,0.5,0])
path1='C:\Users\BoShi\Desktop\METO\era5.u_component_of_wind.20180817.nc'
path2='C:\Users\BoShi\Desktop\METO\era5.v_component_of_wind.20180817.nc'
f1= addfile_nc(path1)
f2= addfile_nc(path2)
levels = f1['level'][:]
lats = f1['latitude'][:]
lons = f1['longitude'][:]
u = f1['u'][0,:,:,:]
v = f2['v'][0,:,:,:]
f3 = interpolate.NearestNDInterpolator([levels,lats,lons], u)
f4 = interpolate.NearestNDInterpolator([levels,lats,lons], v)
gx = arange(lons.min(), lons.max(), 0.5)
gy = arange(lats.min(), lats.max(), 0.5)
gz = arange(levels.min(), levels.max(), 50)
xx,yy,zz = meshgrid(gx, gy, gz)
gu = f3([xx,yy,zz])
gv = f4([xx,yy,zz])
hs = sqrt(u**2 + v**2)
ax =axes3d(orthographic=False,axis=True)
volumeplot(xx, yy, zz, hs[:,::-1,:], ray_casting='basic', cmap='parula',
opacity_nodes=[0,15,20,25,30,35],opacity_levels=[0,0,0.5,0,0.5,0],vmin=0,vmax=40)
colorbar()
ax.set_zlim(900,100)
ax.set_xlim(60,150)
ax.set_ylim(0,70)
ax.set_xlabel('Longitude')
ax.set_ylabel('Latitude')
ax.set_zlabel('Level / hPa')
(▲图2 将采样值设置为[0,15,20,25,30,35],不透明度设置为[0,0,1,0,1,0]时的风场结构)
其原理如图3所示: