使用Cartopy绘制NetCDF文件时绘图结果异常问题求解
问题原因与修复方案
- 错误调用全局视图缩放
你使用的是EUR-11欧洲区域限定模式数据,覆盖范围仅为欧洲及周边,ax.set_global()会强制把视图拉到全球尺度,目标区域的温度场会被压缩到几乎不可见,直接删除这行代码即可自动适配数据范围显示。 - 坐标与投影不匹配
GERICS-REMO2015输出的EUR-11数据采用旋转极坐标投影,自带的lon/lat是二维地理坐标变量,直接传入xarray的plot函数容易出现坐标错位。更稳妥的写法是使用原始旋转坐标rlon/rlat绘图,同时配置对应投影:
import xarray as xr import matplotlib.pyplot as plt import cartopy.crs as ccrs dset = xr.open_dataset("tas_EUR-11_IPSL-IPSL-CM5A-MR_rcp85_r1i1p1_GERICS-REMO2015_v1_mon_201101-202012.nc") # 定义EUR-11对应的旋转极坐标投影 rotated_crs = ccrs.RotatedPole(pole_longitude=-162.0, pole_latitude=39.25) fig = plt.figure(figsize=[12,5]) ax = fig.add_subplot(111, projection=ccrs.PlateCarree()) # 用原始旋转坐标rlon、rlat绘图,transform对应设置为旋转投影 dset.isel(time=0)['tas'].plot(ax=ax, transform=rotated_crs, x='rlon', y='rlat', add_colorbar=False) ax.coastlines() plt.show()
- 色阶范围异常
如果能看到区域轮廓但颜色不符合预期,可检查tas的单位是否为开尔文,也可以手动指定vmin、vmax参数限制色阶范围,避免缺测值或异常值拉伸色阶。
内容的提问来源于stack exchange,提问作者Delta Rho
相关产品推荐
相关产品推荐

