爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3763|回复: 2

[求助] Python绘制某个点多年月平均高空风随月份和高度的剖面图,总是提示错误,请高手指....

[复制链接]

新浪微博达人勋

发表于 2023-3-14 23:31:01 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
import numpy as np
import matplotlib.pyplot as plt
import xarray as xr
import cartopy.crs as ccrs
import cartopy.feature as cf
import cartopy.io.shapereader as shpreader
from cartopy.mpl.ticker import LongitudeFormatter,LatitudeFormatter
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
import matplotlib.ticker as mticker
plt.rcParams['font.sans-serif']=['SimHei']


data=xr.open_dataset(r'C:\Users\Administrator\Desktop\UV\uwnd.mon.mean.nc')
data1=xr.open_dataset(r'C:\Users\Administrator\Desktop\UV\vwnd.mon.mean.nc')


uwnd1=data.groupby('time.month').mean()  #计算多年的U风月平均
vwnd1=data1.groupby('time.month').mean()  #计算多年的V风月平均


lon=uwnd1['lon'][:]#读取经度,一维的
lat=uwnd1['lat'][:]#读取纬度,一维的

UGRD=uwnd1['uwnd'][:][:][:][:]#读取纬向风,四维的
VGRD=vwnd1['vwnd'][:][:][:][:]#读取经向风,四维的

pres= uwnd1['level'][:]#读取气压层数,一维的
montn1=uwnd1['month'][:]#读取月份,一维的


fig=plt.figure(figsize=(5,3),dpi=700)#添加画布
ax=fig.add_axes([0,0,1,1])#添加子图
ax.invert_yaxis()#反转纵轴,使1000hPa作为起点

ax.set_xlabel('月份',fontsize=7)
ax.set_ylabel('层次(hPa)',fontsize=7)
ax.tick_params(axis='both',which='both',labelsize=7)

ax.barbs(montn1[:],pres[:],UGRD[:,:,26,102],VGRD[:,:,26,102],
          barb_increments={'half':2,'full':4,'flag':20},length=5)

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2023-3-15 13:53:32 | 显示全部楼层
这段代码存在一个问题,可能导致绘图出错,即数据在调用barbs函数时被转置了。在UGRD[:,:,26,102],VGRD[:,:,26,102]中,第一维应该是纬度,第二维应该是经度,但是由于数据格式不同(数据的纬度维度排列在第二维,经度维度排列在第三维),所以需要通过转置调整维度顺序,正确的应该是:
ax.barbs(montn1[:], pres[:], UGRD[:, :, 102, 26].T, VGRD[:, :, 102, 26].T,
         barb_increments={'half':2,'full':4,'flag':20}, length=5)
这里通过.T进行转置,将纬度维度放在了前面,经度维度放在了后面。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-3-15 17:25:19 | 显示全部楼层
1591 发表于 2023-3-15 13:53
这段代码存在一个问题,可能导致绘图出错,即数据在调用barbs函数时被转置了。在UGRD[:,:,26,102],VGRD[:,: ...

感谢大哥的提醒,我再调试看看。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表