爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 13270|回复: 2

[求助] 画出的等值线范围与底图不一致

[复制链接]

新浪微博达人勋

发表于 2020-10-21 23:30:17 | 显示全部楼层 |阅读模式

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

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

x

如图,我画的是全球范围的,底图也是世界范围的,但是在画出等值图以后范围就缩小了,nc文件的经度范围是0到357.5,纬度是90到-90,分辨率2.5*2.5。这是不是因为数据的精度问题导致的?该怎么解决呢?这是粗略的代码:

import xarray as xr
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import cartopy.crs as ccrs
import cartopy.feature as cfeat
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
from cartopy.io.shapereader import Reader
proj = ccrs.PlateCarree()####简写投影
plt.rcParams['font.sans-serif']=['SimHei'] ####设置中文
f = xr.open_dataset(r'E:\lunwen\data\air.mon.mean.nc')####数据为1948到2020年月平均气温
lon=f['lon'][:]#读取经度
lat=f['lat'][:]#读取纬度
lons,lats=np.meshgrid(lon,lat)#网格化
tem=f['air'].loc['1980-01-01':'2019-12-01'].isel(level=5)####设置时间范围,高度500hPa
ttem=np.mean(tem, axis=1)####纬向平均
tttem=tem-ttem####纬向平均偏差,即“定常波”
ttttem=np.mean(tttem, axis=0)####时间平均
#####设置底图
shp_path=r'E:\学习资料\World GIS data\country.shp'
####设置画布
fig = plt.figure(figsize=(10, 6), dpi=400)  # 创建画布
ax = fig.subplots(1, 1, subplot_kw={'projection': proj})#子图
reader = Reader(shp_path)
enshicity = cfeat.ShapelyFeature(reader.geometries(), proj, edgecolor='k', facecolor='none')
ax.add_feature(enshicity, linewidth=0.7)#添加市界细节
#####绘制等值线
ac=ax.contour(ttttem)
plt.show()



下载.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2020-10-22 18:14:45 | 显示全部楼层
顶一下....
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-10-22 23:20:50 | 显示全部楼层
经过请教师兄,解决了,问题出在ab = ax.contourf(cycle_LON, cycle_LAT, cycle_ttttem, transform=ccrs.PlateCarree()),要用transform定义投影,这貌似是cartopy的问题
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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