2016-07-02 70 views
1

我有以下的代碼,其中mpShapelyMultipolygon掀起了Fiona箱:如何有效地映射落在地圖邊界框內的點?

ax = fig.add_subplot(111) 
minx, miny, maxx, maxy = mp.bounds 
w, h = maxx - minx, maxy - miny 
ax.set_xlim(minx, maxx) 
ax.set_ylim(miny, maxy) 
ax.set_aspect(1) 
patches = [] 
for idx, p in enumerate(mp): 
    patches.append(PolygonPatch(p, fc='#ffffff', ec='#000000', alpha=1., zorder=1)) 
ax.add_collection(PatchCollection(patches, match_original=True)) 
plt.show() 

而且我有很多緯度/龍對帶有標籤的大熊貓數據幀。

> 0 -34.026810 -71.101670 A 
> 1 -32.986970 -71.501580 G 
> 2 -40.931400 -73.027190 C 

但是,並非df中的所有點都「落入」地圖邊界內。問題是:我如何才能高效地映射地圖邊界框中的那些點?

回答

1

我想這將是最有效的過濾點在熊貓水平。對於使用其bounds屬性來獲取組合區的邊界,然後篩選使用

df[(df.lat > latmin) & (df.lat < latmax) 
    & (df.long > longmin) & (df.long < longmax)] 

數據框,我認爲你的緯度列名爲lat和你的經度列longlatminlatmax等等都是你從多邊形邊界得到的。