2016-07-18 7 views
0

나는이 질문 -을 읽었는데 그게 나에게 적용되는 것은 확실하지 않지만 나는 그 나라의 셰이프 파일을 가지고 있으며 GRIB 파일의 강수량 데이터를 해당 셰이프 파일에 오버레이하고 싶다. 이것은 pygrib와 matplotlib를 사용하고 있습니다. basemap.coastlines() 및 Basemap.countries() 셰이프 파일을 사용할 수 있기 때문에 사용하고 싶지 않다. 내 셰이프 파일로 오버라이드하고 싶습니다. 어떻게해야합니까?matplotlib 및 pygrib를 사용하여 셰이프 파일에 강수량 데이터를 오버레이하는 방법은 무엇입니까?

#!/usr/bin/python3.4 
import numpy as np 
import pygrib 
import shapefile 
import matplotlib.pyplot as plt 
from mpl_toolkits.basemap import Basemap 


grbs = pygrib.open('00020000') 

grb = grbs.select(name='Total Precipitation')[0] 
data = grb.values 
lat,lon = grb.latlons() 
m=Basemap(projection='mill',lat_ts=10,llcrnrlon=lon.min(), \ 
urcrnrlon=lon.max(),llcrnrlat=lat.min(),urcrnrlat=lat.max(), \ 
resolution='c') 
m.readshapefile("adm3.shp") 
x,y=m(lon,lat) 
cs = m.pcolormesh(x,y,data,shading='flat',cmap=plt.cm.jet) 


m.drawparallels(np.arange(-90.,80.,5.),labels=[1,0,0,0]) 
m.drawmeridians(np.arange(-180.,180.,5.),labels=[0,0,0,1]) 
plt.colorbar(cs,orientation='vertical') 
plt.title('Precipitation Plot') 
plt.show() 

답변

1

코드가 기본적으로 작동하는 것 같아서 잘 모르겠다.

은 사용하지 않기 때문에 Basemap에서 kwarg이 None로 설정할 수 있습니다
  • resolution (가) 내장 해안선
  • m.readshapefile

    를 사용하여 name 인수

가 필요합니다 나는 몇 가지 변경을

import numpy as np 
import matplotlib.pyplot as plt 
from mpl_toolkits.basemap import Basemap 

grbs = pygrib.open('00020000.grb') 
grb = grbs.select(name='Total Precipitation')[0] 
data = grb.values 
lat, lon = grb.latlons() 

m = Basemap(projection='mill', lat_ts=10, 
      llcrnrlon=lon.min(), 
      urcrnrlon=lon.max(), 
      llcrnrlat=lat.min(), 
      urcrnrlat=lat.max(), 
      resolution=None) 

m.readshapefile("adm3", "countryname", color="red", linewidth=3) 
x, y = m(lon,lat) 
cs = m.pcolormesh(x,y,data,shading='flat',cmap=plt.cm.jet) 

m.drawparallels(np.arange(-90.,80.,5.),labels=[1,0,0,0]) 
m.drawmeridians(np.arange(-180.,180.,5.),labels=[0,0,0,1]) 
plt.colorbar(cs,orientation='vertical') 
plt.title('Precipitation Plot') 
plt.show() 

및 일부 조롱 된 데이터 및 국가 테두리를 보면 다음과 같은 수치가 표시됩니다. mocked precipitation map