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

如何在Cartopy投影中调整南极点位置以居中显示古南极洲?

解决方案:调整投影中心至古南极点

要把3800万年前的南极洲放到地图中心,核心是把古南极点的经纬度设为投影的中心/极点。以下是具体实现:

1. 先确定古南极点的经度

3800万年前(渐新世早期)的南极点大致位于东经100°-120°区间(你可以根据自己使用的古地理重建模型,比如GPlates、PALEOMAP等,获取精确的经度值)。下面示例用110°E作为古南极点经度。

2. 两种适合的投影方案

方案一:继续使用正射投影(Orthographic)

只需要修改central_longitude参数为古南极点经度即可,代码调整如下:

import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.mpl.path as mpath

# 定义地图圆形边界(保留原代码)
theta = np.linspace(0, 2*np.pi, 100)
center, radius = [0.5, 0.5], 0.5
verts = np.vstack([np.sin(theta), np.cos(theta)]).T
circle = mpath.Path(verts*radius + center)

# 绘图部分:修改投影中心经度为古南极点经度
fig = plt.figure(figsize=(12,5))
# 这里把central_longitude改成古南极点的经度,比如110°E
ax1 = fig.add_subplot(111, projection=ccrs.Orthographic(central_longitude=110, central_latitude=-90))
# 调整范围,确保古南极洲在视野内(可以根据数据调整纬度范围)
ax1.set_extent([0, 360, -90, -57], ccrs.PlateCarree())
ax1.set_boundary(circle, transform=ax1.transAxes)
# 绘制等值线(保留原代码)
MI.plot.contourf(ax=ax1, transform=ccrs.PlateCarree(), cmap="Reds", levels=11, cbar_kwargs={"label": "monsoonal index [-]"})
plt.show()

方案二:使用南极立体投影(SouthPolarStereo)

这个投影更适合展示极地区域的细节,同样调整中心经度:

import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.mpl.path as mpath

# 定义地图圆形边界(保留原代码)
theta = np.linspace(0, 2*np.pi, 100)
center, radius = [0.5, 0.5], 0.5
verts = np.vstack([np.sin(theta), np.cos(theta)]).T
circle = mpath.Path(verts*radius + center)

# 绘图部分:使用南极立体投影,设置中心经度为古南极点经度
fig = plt.figure(figsize=(12,5))
ax1 = fig.add_subplot(111, projection=ccrs.SouthPolarStereo(central_longitude=110))
# 立体投影下可以直接用set_extent的极地范围,或者保留原范围
ax1.set_extent([0, 360, -90, -57], ccrs.PlateCarree())
ax1.set_boundary(circle, transform=ax1.transAxes)
# 绘制等值线(保留原代码)
MI.plot.contourf(ax=ax1, transform=ccrs.PlateCarree(), cmap="Reds", levels=11, cbar_kwargs={"label": "monsoonal index [-]"})
plt.show()

关键说明

  • 核心是central_longitude参数:把它设置为你古地理数据中南极点的经度,就能让古南极洲自动居中。
  • 如果你的古南极点纬度不是严格的-90°(极少数情况),可以同时调整central_latitude参数,但绝大多数古地理模型中南极点纬度还是-90°。
  • 若等值线显示位置还是不对,要确保你的古地理数据是基于现代经纬度坐标系存储的,或者已经正确转换到对应参考系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 22:00:57