在Cartopy中使用正交投影的Shapefile绘图问题

时间:2016-12-09 10:51:09

标签: python matplotlib cartopy

this question相关,我尝试使用cartopy在特定国家/地区着色。复制链接问题中的示例工作正常,但在使用正交投影时失败。包括MWE和图像,并且可以看出,德国并没有最终着色。

(Shapefile数据可以从here获得。)

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader

_proj = ccrs.Orthographic(0,0)
#_proj = ccrs.PlateCarree()

_deu = list(shpreader.Reader("shapefiles/DEU_adm_shp/DEU_adm0.shp").geometries())

ax = plt.axes(projection=_proj)
ax.coastlines(resolution='10m', color='k', linewidth=1)

ax.add_geometries(_deu, _proj, edgecolor='black', facecolor='gray', alpha=0.5, zorder=10)

plt.show()

enter image description here

1 个答案:

答案 0 :(得分:2)

您需要在正确的CRS中添加几何图形,这肯定不是正交的。 IIRC它实际上是板块carrée。试试这个:

//////////////////////////////////////////////////////////////////////////////////////////
//
// The code below is reused from the 'Reading Spreadsheet data using JavaScript Objects'
// tutorial.
//
/////////

/////////////////////////////////////////////////////////////////////////////////

// getRowsData iterates row by row in the input range and returns an array of objects.