У меня есть сетка модели, состоящая из множества ячеек, для которых я хотел бы построить затененный многоугольник на matplotlib
basemap
.
Используя pyproj
, я сначала спроецировал точки, прежде чем создать полигон, используя класс Polygon
shapely.geometry
для извлечения внешних координат сетки. Затем я возвращаю их обратно в WGS84 для передачи моей функции построения графика:
grid_x_mesh, grid_y_mesh = pyproj.transform(wgs84, nplaea, grid_lons, grid_lats)
grid_x = grid_x_mesh.ravel()
grid_y = grid_y_mesh.ravel()
grid_poly = Polygon(zip(grid_x, grid_y))
grid_x, grid_y = grid_poly.exterior.coords.xy
grid_plons, grid_plats = pyproj.transform(nplaea, wgs84, grid_x, grid_y)
Затем, используя метод matplotlib.basemap
, я спроецировал координаты WSG84 на проекцию карты (в данном случае nplaea) и
grid_poly_x, grid_poly_y = m(grid_plons, grid_plats)
grid_poly_xy = zip(grid_poly_x, grid_poly_y)
grid_poly = Polygon(grid_poly_xy, facecolor='red', alpha=0.4)
plt.gca().add_patch(grid_poly)
При попытке сделать это я получаю перекрестный шаблон, который, как я полагаю, должен выполнять упорядочение координат, которые я предоставил функции многоугольника.
Я бы подумал, что это связано либо с тем, как я извлек внешние координаты, либо просто с порядком списков координат, когда я создал окончательный многоугольник для построения.
Есть ли умный способ заказать их правильно, если это проблема?
Построенный многоугольник
Крупный план