Usando pcolormesh para trazar datos de una órbita

Estoy tratando de asignar un conjunto de datos con latitud y longitud asociadas. Los detalles de los datos que estoy usando se dan a continuación:

Variable Type Data/Info ------------------------------- lat ndarray 1826x960, type `float64` lon ndarray 1826x960, type `float64` data ndarray 1826x960, type `float64` 

He creado entonces un mapa base:

 m = Basemap(projection='cyl', llcrnrlon=-180, urcrnrlon=180, llcrnrlat=-40, urcrnrlat=40, resolution='c') 

Ahora, en el mapa base creado, graficaría el conjunto de datos mencionado anteriormente usando pcolormesh:

 m.drawcoastlines() m.drawcountries x,y = m(lon,lat) m.pcolormesh(x,y,data) m.colorbar() plt.show() 

Esto le da la siguiente figura: Temp brillo gráfico

Pero si realizo una ttwig similar en un conjunto de datos (tamaño 2691×960, lo mismo se aplica a lon y lat) que cubre todo el tramo de londres (-180 a 180), obtengo una ‘barra extraña’: barra extraña

Estoy bastante seguro de que la barra extraña se produce debido a la superposición del conjunto de datos. La misma ttwig se ha realizado en matlab y funciona bastante bien.

Por favor, dígame cuál es el problema, qué se puede hacer para eliminar la barra, cuáles son los otros métodos para trazar este tipo de datos en Python.

Creo que te estás encontrando con un problema que me encontré hace poco. El problema aquí es que, cuando el mapa base intenta crear los polígonos, utiliza un método de interpolación que no parece manejar el meridiano principal correctamente. Los píxeles que realmente cruzan el maridiano principal se interpolan en un polígono que se extiende alrededor del mundo.

La solución que he usado es dividir el archivo en dos matrices enmascaradas (o simplemente enmascarar la matriz original de dos maneras diferentes en momentos diferentes), una con el hemisferio oriental enmascarado y otra con el hemisferio occidental enmascarado, luego mapearlos para Los mismos ejes objeto.

Edición: Otra solución puede ser que sus límites de longitud vayan de -179.99 a 179.99 o algo similar.

No he trabajado con nada para darme este problema, pero parece que aquí se ofreció una solución a un problema de sonido similar utilizando el método mpl_toolkit.basemap.addcyclic .

De los documentos:

arrout, lonsout = addcyclic(arrin, lonsin) agrega un punto de longitud cíclica (wraparound) a arrin y lonsin , asume que la longitud es la dimensión más a la derecha de arrin .