Cartopy 一次通过一个时在两极绘制额外的点

Cartopy plotting extra points at poles when passed one at a time

当用地球另一边的一些点绘制正交投影时,为什么第一种方法按预期绘制,但第二种方法获取了地球另一边的所有点并绘制它们在投影的极点?除了过滤掉看不见的点之外,还有其他解决方案吗?如果没有,对于任意 lon/lat 处的极点(相对于相对微不足道的北极而言),最好的方法是什么? ?

import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs

projection = ccrs.Orthographic(0, 90)
transform = ccrs.Geodetic()

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection = projection)

ax.coastlines()
ax.set_global()
ax.gridlines()

npoints = 100
np.random.seed(71077345)
lon = np.random.sample(npoints) * 360
lat = np.random.sample(npoints) * 180 - 90
plt.plot(lon,
         lat,
         'ro',
         alpha = 0.3,
         transform = transform)

for i in range(npoints):
    plt.plot(lon[i],
             lat[i],
             'b.',
             alpha = 0.3,
             transform = transform)

(问题的部分答案)

要过滤上半球的点,请使用此代码

for i in range(npoints):
    if lat[i]>=0:
        # this plots points above/on equator
        ccode = 'b^'
        ax.plot( lon[i], lat[i],
            ccode,
            alpha = .3,
            transform = ccrs.PlateCarree()
        )
    else:
        # this skips points below equator
        pass

此错误已在 v0.19 及更高版本中由 #1710 修复。