2015-05-17 9 views
7

मैं मैटलप्लिब के माध्यम से यू एस और कनाडा के पूर्वी समुद्र तट के बेसमेप पर डेटा प्लॉट कर रहा हूं। बेस लेयर (एक भरे हुए समोच्च साजिश) के अतिरिक्त, मैंने Matplotlib के readshapefile टूल का उपयोग कर डेटा के ऊपर इस फोकस क्षेत्र का एक आकारफाइल ओवरले किया।आयातित आकारफाइल (बेसमैप/matplotlib) के बाहर मास्क क्षेत्र

मैं सोच रहा हूँ कि कैसे मैं शेपफ़ाइल के बाहर सभी gridded डेटा मुखौटा कर सकते हैं। मैं स्पष्ट रूप से Matplotlib के माध्यम से एक मुखौटा कमांड कर सकते हैं, लेकिन मैं अभी भी सेंट लॉरेंस के पश्चिम में भरे हुए समोच्चों के साथ छोड़ दिया जाएगा। क्या कोई अब यह कैसे करना है? मुझे ऑनलाइन खोज करने में बहुत भाग्य नहीं मिला है।

def make_map(lon,lat,param): 
    fig, ax = plt.subplots() 
    ax.axis('off') 
    x1 = -83. 
    x2 = -57. 
    y1 = 37. 
    y2 = 50. 
    projection='merc' 
    resolution='h' 
    m = Basemap(projection=projection, llcrnrlat=y1, urcrnrlat=y2, llcrnrlon=x1, 
       urcrnrlon=x2, resolution=resolution) 
    x,y = m((lon-360.),lat) 
    m.ax = ax 
    my_cmap = cm.get_cmap('coolwarm') 
    pp = m.contourf(x, y, param, 30, cmap=my_cmap, extend='both') 
    m.drawmapscale(-67, 39.5, -70, 43.5, 500, fontsize=8, barstyle='fancy') 
    return fig, m, x, y 

def drawstates(ax, shapefile='../StateProv_UTMrp'): 
     shp = m.readshapefile(shapefile, 'states',zorder = 1, drawbounds=True) 
     for nshape, seg in enumerate(m.states): 
      poly = Polygon(seg, facecolor='w',alpha=0.0, edgecolor='k') 
      ax.add_patch(poly) 

fig, m, x, y = make_map(lon, lat, param) 
drawstates(m.ax) 

उत्तर

संबंधित मुद्दे