爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9627|回复: 6

[求助] 【已解决】python极射赤面投影出现白条

[复制链接]

新浪微博达人勋

发表于 2021-11-30 09:16:53 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Iree_Aurora 于 2021-11-30 18:19 编辑

想画一下某一天100hPa纬向风场(等值线)和滤波后风场(填色)的图,但是填色图有空白的这部分,请问各位大佬,下面是哪里设置错了啊…… 屏幕截图 2021-11-30 091431.jpg

file = nc.Dataset('uwnd.1979.nc')
uwnd = np.array(file.variables['uwnd'][:])
lat = file.variables['lat'][:]
lon = file.variables['lon'][:]
Uwnd = uwnd[:, 11, :, :]

#======绘图=======
fig = plt.figure(figsize=(12, 8))
leftlon, rightlon, lowerlat, upperlat = (0, 360, 0, 90)

proj = ccrs.Orthographic(central_longitude=-90, central_latitude=90)
data_proj = ccrs.PlateCarree(central_longitude=0)
ax = fig.add_subplot(projection=proj)
ax.set_global()

ax.add_feature(cfeature.LAKES, alpha=0.5) #添加湖泊
ax.coastlines(linewidth=0.5) #添加海岸线
# ax.gridlines(draw_labels=True, x_inline=False, y_inline=False)

lon_formatter = LongitudeFormatter(zero_direction_label=True)
lat_formatter = LatitudeFormatter()
ax.xaxis.set_major_formatter(lon_formatter)
ax.yaxis.set_major_formatter(lat_formatter)
ax.gridlines(color='gray', linestyle='--', xlocs=np.arange(-180, 200, 20))
ax.gridlines(draw_labels=True)
cf= ax.contourf(lon, lat, Uwnd[160, :, :], transform=data_proj)
plt.clabel(cl, fmt='%i')
"""添加色标"""
plt.colorbar(cf, pad=0.042, orientation='horizontal', shrink=0.87, aspect=35)
plt.tick_params(labelsize=13)  
plt.show()



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

新浪微博达人勋

发表于 2021-11-30 12:26:55 | 显示全部楼层
这是数据的空缺,例如数据经度是0-359,那么359-360是不会画的,因为没有这个区间的数据,解决也很简单,自己再359后面补一个360,数据都是0 的,就好了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-11-30 12:38:14 | 显示全部楼层
1099221723 发表于 2021-11-30 12:26
这是数据的空缺,例如数据经度是0-359,那么359-360是不会画的,因为没有这个区间的数据,解决也很简单,自 ...

谢谢您的回答!但是我刚接触python不久,还是不太理解您的意思,可以具体写一下吗,麻烦您了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-11-30 15:22:07 | 显示全部楼层
7. 零度0°经线数据的处理
from cartopy.util import add_cyclic_point
lon=np.arange(0.125,360.125,0.25)
data, lon = add_cyclic_point(data, coord=lon) #插值0°经线也有数据
lon=np.arange(0,360.25,0.25)
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-11-30 18:17:48 | 显示全部楼层
edwardli 发表于 2021-11-30 15:22
7. 零度0°经线数据的处理
from cartopy.util import add_cyclic_point
lon=np.arange(0.125,360.125,0.2 ...

谢谢!学习了学习了!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-8-22 14:40:41 来自手机 | 显示全部楼层
Iree_Aurora 发表于 2021-11-30 18:17
谢谢!学习了学习了!!

楼主您好,如果只想画出经度为0-360,纬度是40-90的地图应该怎么修改代码。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-9-7 10:59:13 | 显示全部楼层
易烊启迪 发表于 2022-8-22 14:40
楼主您好,如果只想画出经度为0-360,纬度是40-90的地图应该怎么修改代码。

楼主程序中的leftlon, rightlon, lowerlat, upperlat = (0, 360, 0, 90) ,改为你想要的纬度就可以了,比如你的改为leftlon, rightlon, lowerlat, upperlat = (0, 360, 40, 90)
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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