Я рисую несколько заполненных контуров с помощью 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()
Есть ли способ убрать эту белую полосу?
Я обновился с 0.16 до 0.17, и линия все еще сохраняется
Вы должны использовать 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()
Есть ли способ интегрировать это с xarray?
В cartopy версии 0.17.0 нет «белой линии» на нулевой долготе.