Por que o pcolor com matrizes mascaradas preenche quadrângulos indesejados quando projetados em coordenadas de cartopia?

Esta é uma pergunta de acompanhamento paraimpedindo linhas horizontais espúrias para dados pcolor (malha) sem grade epor que o pcolor com matriz mascarada ainda preenche quadrângulos conectados a pontos mascarados, e como faço para interromper isso?. Nas coordenadas regulares, quando mascaro as coordenadas e os dados, posso plotar um pcolor para coordenadas que envolvem, como longitudes, em duas partes, e agora consigo não obter quadrângulos indesejados quando em coordenadas regulares. No entanto, quando eu o transformo para mapear coordenadas, esta solução falha:

#!/usr/bin/env python3.6

from numpy import array, ma
from matplotlib.pyplot import figure, pcolor, savefig, axes

lons = array([[ 100.,  120.,  140.,  160.,  180.],
       [ 120.,  140.,  160.,  180., -160.],
       [ 140.,  160.,  180., -160., -140.],
       [ 160.,  180., -160., -140., -120.],
       [ 180., -160., -140., -120., -100.],
       [-160., -140., -120., -100.,  -80.]])

lats = array([[  0.,  10.,  20.,  30.,  40.],
       [  0.,  10.,  20.,  30.,  40.],
       [  0.,  10.,  20.,  30.,  40.],
       [  0.,  10.,  20.,  30.,  40.],
       [  0.,  10.,  20.,  30.,  40.],
       [  0.,  10.,  20.,  30.,  40.]])

bts = array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24],
       [25, 26, 27, 28, 29]])

figure()
pcolor(ma.masked_where(lons>0, lons), ma.masked_where(lons>0, lats), bts)
pcolor(ma.masked_where(lons<0, lons), ma.masked_where(lons<0, lats), bts)
savefig("/tmp/ok.png")

# now with cartopy
import cartopy.crs as ccrs
proj = ccrs.Mollweide(central_longitude=0)
trans = proj.transform_points(ccrs.Geodetic(), lons, lats)
figure()
ax = axes(projection=proj)
ax.pcolormesh(ma.masked_where(lons>0, trans[:, :, 0]), ma.masked_where(lons>0, trans[:, :, 1]), ma.masked_where(lons>0, bts), transform=proj)
ax.pcolormesh(ma.masked_where(lons<0, trans[:, :, 0]), ma.masked_where(lons<0, trans[:, :, 1]), ma.masked_where(lons<0, bts), transform=proj)
savefig("/tmp/not_ok.png")

Em coordenadas regulares, conforme desejado:

Nas coordenadas do mapa, os quadrângulos indesejados estão de volta:

Observe que qualquer longitude positiva é mapeada para qualquer coordenada positiva do mapa e vice-versa, porque a longitude central da projeção atual é zero. Quando adicionalmente mascarei longitudes iguais a ± 180, continuo com a mesma situação. Portanto, o problema está em outro lugar. Como posso traçar opcolor em duas partes enquanto nas coordenadas projetadas do mapa?

questionAnswers(1)

yourAnswerToTheQuestion