You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用xarray和cartopy绘制POP2(POP_gx1v7)网格数据?

解决CESM2 LENS2 POP2偏移极网格数据的Cartopy绘图问题

问题根源

POP2的偏移极网格属于非规则经纬度网格,imshow仅适用于均匀规则的网格,直接通过extent指定范围会导致高纬度网格单元的地理坐标匹配错误,最终出现海岸线与数据掩模偏移的问题。要保留原始网格单元,必须使用支持非规则坐标的绘图方法。

解决方案(优先保留Xarray功能)

以下两种方法均基于Xarray接口,结合Cartopy实现精准绘图:

方法1:Xarray内置plot.pcolormesh(最简便)

直接利用Xarray的绘图接口,自动关联非规则经纬度坐标,无需手动处理网格匹配:

import xarray as xr
import matplotlib.pyplot as plt
import cartopy.crs as ccrs

# 提取表层温度场(假设ds_temp已加载)
field = ds_temp.TEMP.isel(time=0, z_t=0)

# 创建带Cartopy投影的画布
fig, ax = plt.subplots(figsize=(12, 6), subplot_kw={'projection': ccrs.PlateCarree()})

# 绘制非规则网格数据,指定经纬度坐标和坐标转换
field.plot.pcolormesh(
    ax=ax,
    x='TLONG',
    y='TLAT',
    transform=ccrs.PlateCarree(),  # TLONG/TLAT为WGS84经纬度
    add_colorbar=True,
    cmap='viridis',
    rasterized=True  # 优化大网格渲染速度
)

# 添加高分辨率海岸线匹配细节
ax.coastlines(resolution='50m')
plt.show()

方法2:结合Matplotlibpcolormesh自定义绘图

如果需要更精细的绘图控制,可直接调用Matplotlib的pcolormesh,同时保留Xarray的数据结构:

field = ds_temp.TEMP.isel(time=0, z_t=0)

fig = plt.figure(figsize=(12, 6))
ax = plt.axes(projection=ccrs.PlateCarree())

# 传入原始经纬度数组,匹配每个网格单元的地理位置
cs = ax.pcolormesh(
    ds_temp.TLONG,
    ds_temp.TLAT,
    field,
    transform=ccrs.PlateCarree(),
    cmap='viridis'
)

# 添加颜色条和海岸线
plt.colorbar(cs, ax=ax, orientation='horizontal', pad=0.05)
ax.coastlines(resolution='50m')
plt.show()

高纬度区域优化(北纬60°以北)

若重点关注北欧/北极区域,可切换极地投影提升可视化效果:

fig, ax = plt.subplots(figsize=(10, 10), subplot_kw={'projection': ccrs.NorthPolarStereo()})

field.plot.pcolormesh(
    ax=ax,
    x='TLONG',
    y='TLAT',
    transform=ccrs.PlateCarree(),
    add_colorbar=True,
    cmap='viridis'
)

# 限定显示范围为北纬60°以北
ax.set_extent([-180, 180, 60, 90], crs=ccrs.PlateCarree())
ax.coastlines(resolution='50m')
ax.gridlines(draw_labels=True)  # 添加极地网格标签
plt.show()

关键注意事项

  • 禁止使用imshow:该函数仅支持规则网格,无法适配POP2的偏移极坐标。
  • 坐标维度匹配:确保TLONG、TLAT与数据变量的维度(nlat×nlon)完全一致。
  • 海岸线分辨率:选择50m或10m分辨率,可提升高纬度区域的细节匹配度。

内容的提问来源于stack exchange,提问作者Ina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 02:43:16