我想计算shapefile和多边形之间的重叠百分比.我正在使用Cartopy和Matplotlib并创建了这里显示的地图:
显示了欧洲的一部分(使用下载的here形状文件)和任意矩形.假设我想计算矩形覆盖的比利时百分比.我该怎么做?下面显示了到目前为止的代码.
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.io.shapereader as shapereader
from shapely.geometry import Polygon
from descartes import PolygonPatch
#create figure
fig1 = plt.figure(figsize=(10,10))
PLT = plt.axes(projection=ccrs.PlateCarree())
PLT.set_extent([-10,10,45,55])
PLT.gridlines()
#import and display shapefile
fname = r'C:\Users\Me\ne_50m_admin_0_countries.shp'
adm1_shapes = list(shapereader.Reader(fname).geometries())
PLT.add_geometries(adm1_shapes, ccrs.PlateCarree(),
edgecolor='black', facecolor='gray', alpha=0.5)
#create arbitrary polygon
x3 = 4
x4 = 5
y3 = 50
y4 = 52
poly = Polygon([(x3,y3),(x3,y4),(x4,y4),(x4,y3)])
PLT.add_patch(PolygonPatch(poly, fc='#cc00cc', ec='#555555', alpha=0.5,
zorder=5))