爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 1093|回复: 10

[求助] 用wrf-python画wrfout的温度数据的断层问题

[复制链接]
回帖奖励 8 金钱 回复本帖可获得 8 金钱奖励! 每人限 3 次

新浪微博达人勋

发表于 2023-11-27 13:42:29 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 羊羊羊yyj 于 2023-11-27 19:38 编辑

求解答。请教各位有没有遇到过用python画温度相关的变量,插值到某个高度的结果(左图)会出现图片里面显示的断层问题,垂直剖面图(右图)也会出现类似的断层问题。

                               
登录/注册后可看大图

                               
登录/注册后可看大图
但是如果直接对T2这个变量画图,结果正常。

                               
登录/注册后可看大图



附上读取温度变量插值到100m并画图的脚本
# read the file
filename1  = "控制实验数据"
filename2 = "敏感性实验数据"

ncfile1 = Dataset(filename1)
ncfile2 = Dataset(filename2)
# select your timestep (index) and pressure level
# j = 0
z_level = 500
# get the variables
height  = getvar(ncfile1, "z", timeidx=0)
ter = getvar(ncfile1,"ter")
nheight = np.expand_dims(ter,axis=0) + np.zeros_like(height)
# # print(nheight)
z = height - nheight
# z = height - ter
print(z)

new_t1 = []  # 用于存储数据的列表
for i in range(488, 490):
    data1 = getvar(ncfile1, "tc", timeidx=i)
    new_t1.append(data1)
# 将列表中的数据合并为一个 xarray DataArray
combined_t1 = xr.concat(new_t1, dim='Time')
# print(combined_t1.coords)
gs_t1_mean =combined_t1.mean(dim="Time")
# print(gs_t1_mean)

new_t2 = []  # 用于存储数据的列表
for i in range(488, 490):
    data2 = getvar(ncfile2, "tc", timeidx=i)
    new_t2.append(data2)
# 将列表中的数据合并为一个 xarray DataArray
combined_t2 = xr.concat(new_t2, dim='Time')
# print(combined_t2.coords)
gs_t2_mean =combined_t2.mean(dim="Time")
# print(gs_t2_mean)

t  =  gs_t2_mean-gs_t1_mean
# print(t.coords)

# # # interpolate t1 and t2 to pressure level
t_100 = interplevel(t, z, z_level)
print(t_100)
# specify your map boundaries
lat_min = 35
lat_max = 50
lon_min = 70
lon_max = 95
# get the lat, lon grid
lats, lons = latlon_coords(t_100)

# # specify your colormap and projection
cmap = plt.get_cmap('RdYlBu_r')
crs = ccrs.PlateCarree()
# plot
fig = plt.figure(figsize=(10,6))   
ax = fig.add_subplot(111, facecolor='None', projection=crs)
# ax.coastlines(resolution='10m', alpha=0.5)
plot_t100 = ax.pcolormesh(lons, lats, t_100,shading='auto', cmap=cmap)
cbar = fig.colorbar(plot_t100,extend='both')
# Set the maximum and minimum values for the colorbar
# cbar.set_clim(vmin=-0.3, vmax=0.3)
cbar.ax.set_ylabel('Difference of temp 2020')
# some fancy schmancy grid lines
gl = ax.gridlines(crs=crs, draw_labels=True, alpha=0.5)
gl.top_labels = None
gl.right_labels = None
xgrid = np.arange(lon_min, lon_max, 5.)
ygrid = np.arange(lat_min, lat_max, 5.)
gl.xlocator = mticker.FixedLocator(xgrid.tolist())
gl.ylocator = mticker.FixedLocator(ygrid.tolist())
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
gl.xlabel_style = {'size': 10, 'color': 'black'}
gl.ylabel_style = {'size': 10, 'color': 'black'}

plt.xlim((lon_min,lon_max))
plt.ylim((lat_min, lat_max))
plt.title('Temperature 100m')
plt.show()
plt.savefig("diff_t_100m_3.png", dpi=300)


wrfout温度 (100m)

wrfout温度 (100m)

wrfout温度 (2m)

wrfout温度 (2m)
py_cross_tk1.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2023-11-28 09:50:45 | 显示全部楼层
自己顶一下,
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-12-6 09:44:37 | 显示全部楼层
有没有大佬遇到过这个问题
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-12-6 09:54:27 | 显示全部楼层

回帖奖励 +8 金钱

没遇到过,但我记得wrf-Python有例子介绍,你可以去copy一下例子,修改看看。https://wrf-python.readthedocs.io/en/latest/plot.htmlhtml
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-12-9 14:44:50 | 显示全部楼层
kangaroo11 发表于 2023-12-6 09:54
没遇到过,但我记得wrf-Python有例子介绍,你可以去copy一下例子,修改看看。https://wrf-python.readthedo ...

谢谢啊,我也差不多是在基于官网的例子上改了改,画其他的变量都没问题,画2m温度也没有问题,只有画分层的温度有问题
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-12-9 15:09:13 | 显示全部楼层

回帖奖励 +8 金钱

请教一下lz,图2 temperature100 色标渐变色,如何设置的,谢谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-12-9 15:52:46 | 显示全部楼层
lsk123 发表于 2023-12-9 15:09
请教一下lz,图2 temperature100 色标渐变色,如何设置的,谢谢

就是我贴出的脚本的colorbar部分,我没做多余的设置,只是前面选了色带cmap = plt.get_cmap('RdYlBu_r'),后面用已画好的图plot_t100生成了colarbar:cbar = fig.colorbar(plot_t100,extend='both')
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-1-20 11:49:23 | 显示全部楼层

回帖奖励 +8 金钱

请问楼主解决了吗,我也遇到了相同的问题
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-1-21 13:50:30 | 显示全部楼层

回帖奖励 +8 金钱

貌似以前ncl也碰到过类似的问题
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2024-1-23 14:49:51 | 显示全部楼层
一两 发表于 2024-1-20 11:49
请问楼主解决了吗,我也遇到了相同的问题

还没有解决
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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