0

我在球坐标中定义了一个恒定半径的函数。(即二维数组)

omega1, dx = np.linspace(0, np.pi, 100, retstep=True)
psi1, dpsi = np.linspace(0, 2 * np.pi, 100, retstep=True)

omega, psi = np.meshgrid(omega1, psi1)

torus = PHI(21.5, omega, psi)

我的目标是在球体上正确绘制它。我想使用 plotly 但由于我的计算机太新或由于内部问题,我不能,并且出现以下错误

错误:根:无法创建 GLX 上下文。中止。

无论如何,我按照这个例子选择了 Cartopy 库:在 Python 中在 3D 球体上绘制圆柱地图数据

这是我的代码:

plt.figure(figsize=(3, 3))

ax = plt.axes(projection=ccrs.Orthographic(0, 0))
ax.gridlines(crs=ccrs.PlateCarree(),linestyle='dotted',draw_labels=True,
                      linewidth=2, color='gray', alpha=0.5)
gl=ax.imshow(torus, origin="upper", extent=(-180, 180, -90, 90),
              transform=ccrs.PlateCarree())
gl.xlocator = mticker.FixedLocator([-180, -45, 0, 45, 180])
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
gl.xlabel_style = {'size': 15, 'color': 'gray'}
gl.xlabel_style = {'color': 'red', 'weight': 'bold'}

plt.show()

我得到这个图像。

在此处输入图像描述

但是,我有几个问题即使在阅读 Cartopy 说明后也无法解决。你能帮我澄清一下吗?首先,我如何确定我的图像的经纬度与所需的一致?我想它在范围参数中,但如果我按照我的行空间输入:

extent=(0, 360, 0, 180)

我再也得不到了。我的第二个问题是如何检查指示了哪些标签。例如,在我的图像上显示了纬度,但我如何获得经度?我很难理解这种情节的传说是如何运作的。

当然,如果您有其他库来获得这种我感兴趣的东西。

4

0 回答 0