我有一个模型网格组成的许多单元格,我想绘制一个阴影多边形的matplotlib
basemap
。排序多边形坐标绘图
使用pyproj
,我首先要投射到的位置,从而使用shapely.geometry
的Polygon
类从提取网格的外部坐标的多边形前。然后我回复他们回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)
当试图这样做时,我得到了一个十字交叉的模式,我认为它必须对我提供给多边形函数的坐标进行排序。
我认为这与我如何提取外部坐标有关,或者只是在创建最终的多边形时绘制坐标列表的顺序。
如果出现问题,是否有巧妙的排序方法?
绘制的多边形
特写
难道还要再通过可以'matplotlib.basemap'绘制这些,如果他们没有被投射用'地图()'方法,其中包括地图尺寸? – ryanjdillon
我承认我从来没有使用'matplotlib.basemap',但它看起来像它处理它自己的投影lon/lat输入([很好的例子](http://matplotlib.org/basemap/users/ laea.html)) –