Белая линия на контурном участке в картополе на center_longitude - PullRequest
0 голосов
/ 28 мая 2019

Я строю некоторые заполненные контуры с помощью Cartopy и Matplotlib.Данные находятся на сетке широты / долготы, и при построении на картографической проекции белая линия проходит по середине рисунка или везде, где я устанавливаю "central_longitude", в ccrs.PlateCarree()

Вотбыстрая настройка, которая показывает, о чем я говорю.Используя код:

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

    lon = np.arange(0, 360, 1)
    lat = np.arange(-90, 90, 1)

    data = np.zeros((180, 360))

    fig = plt.figure()
    ax = plt.subplot(projection=ccrs.PlateCarree())
    ax.contourf(lon, lat, data)
    ax.add_feature(cfeature.COASTLINE.with_scale('50m'))
    plt.show()

, который производит изображение: enter image description here

Есть ли способ удалить эту белую линию?

1 Ответ

1 голос
/ 28 мая 2019

Вы должны использовать cartopy.util.add_cyclic_point, чтобы контур видел данные как непрерывные в направлении x, и белая линия исчезнет:

import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
from cartopy.util import add_cyclic_point

lon = np.arange(0, 360, 1)
lat = np.arange(-90, 90, 1)

data = np.zeros((180, 360))

data, lon = add_cyclic_point(data, coord=lon)

fig = plt.figure()
ax = plt.subplot(projection=ccrs.PlateCarree())
ax.contourf(lon, lat, data)
ax.add_feature(cfeature.COASTLINE.with_scale('50m'))
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...