import matplotlib.pyplot as plt
x = [1,2,3,4]
y = [1,2,3,4]
m = [[15,14,13,12],[14,12,10,8],[13,10,7,4],[12,8,4,0]]
cs = plt.contour(x,y,m)
from shapely.geometry import polygon as sp
for i in range(len(cs.collections)):
p = cs.collections[i].get_paths()[0]
v = p.vertices
x = v[:,0]
y = v[:,1]
if len(x)>2:
poly = sp.Polygon([(i[0], i[1]) for i in zip(x,y)])
print i, poly, poly.area
(3.0, 4.0) POLYGON ((4 3, 4 3, 3 4, 3 4, 4 3)) 0.0 (2.5, 4.0) POLYGON ((4 2.5, 3.333333333333333 3, 3 3.333333333333333, 2.5 4, 4 2.5)) 0.152777777778 (2.0, 4.0) POLYGON ((4 2, 4 2, 3 2.666666666666667, 2.666666666666667 3, 2 4, 2 4, 4 2)) 0.388888888889 (1.5, 4.0) POLYGON ((4 1.5, 3 2, 3 2, 2 3, 2 3, 1.5 4, 4 1.5)) 0.875 (1.0, 4.0) POLYGON ((4 1, 3 1.333333333333333, 2 2, 2 2, 1.333333333333333 3, 1 4, 4 1)) 1.83333333333