2014-04-15 5 views
0

래피드의 일부 물리적 데이터가 숫자 배열 (전자기장 밀도)로 있습니다. 위도, 경도, 픽셀 크기를 알고 있습니다. 나는 좌표를 lat, lon에서 x, y로 포인트 단위로 변환하여 Basemap 플롯과 래스터를 결합하는 방법을 알고 있지만 배열에 10k 포인트 이상이 있기 때문에 너무 많은 시간이 걸립니다. 그럼 Basemap에 내 데이터를 표시하는 또 다른 방법이 있습니까?Basemap 및 numpy 2d 배열

답변

1
width = 200 
height = 300 
lllon, lllat, urlon, urlat = -144.99499512, -59.95500183, -65.03500366, 60.00500107 
dlon = (urlon-lllon)/width 
dLat = (urlat-lllat)/height 
baseArray = np.fromfunction(lambda y,x: (1000.0/(width + height)) * (y+x), (height, width), dtype = float) 
lons = np.arange(lllon, urlon, dlon) 
lats = np.arange(lllat, urlat, dLat) 
lons, lats = np.meshgrid(lons, lats) 

fig = plt.figure() 
plt.title("The Plot") 
m = Basemap(projection='cyl', 
      resolution = 'c', 
      llcrnrlon = lllon, llcrnrlat = lllat, 
      urcrnrlon =urlon, urcrnrlat = urlat 
) 

m.pcolormesh(lons, lats, baseArray, shading='flat', latlon=True) 
plt.show() 
+0

그것이 내가하는 방법입니다. 컬러 메쉬를 생성하는 것은 빠르지 만 표시가 너무 느립니다. – osx