2014-11-05 2 views
0

파이썬의베이스 맵 라이브러리를 사용하여 맵에 데이터를 표시하려고합니다. 내가 가지고있는 데이터는 2D 배열 (72 X 144)에 있습니다. 내가 보여줄 수있는지도를 얻을 수 있었다 그러나 나는이지도에 데이터를 표시 할 때,이 등 같습니다Python을 사용하여 Basemap에 2 차원 배열을 투영하는 방법은 무엇입니까?

http://i.stack.imgur.com/Zsw9Y.png

내 질문은 전체지도를 확장 그래서 내가 데이터를 표시 할 수있는 방법입니다 ? 나는지도의 크기를 바꾸는 방법을 모른다.

내 코드는 아래와 같습니다

import numpy as np 
from matplotlib import pylab as plt 
from pylab import * 
from matplotlib import colors 
from mpl_toolkits.basemap import Basemap 

A = np.fromfile('1983/yyyymmddhh.83100100', dtype='int32') 
B = np.reshape(A, (72, 144)) 

for i, n in enumerate(B): 
    for j, m in enumerate(n): 
     if (B[i][j] == -999): 
      B[i][j] = 13 

fig = plt.figure() 
ax = fig.add_subplot(1,1,1) 

m = Basemap(projection='cyl', lat_0 = 50, lon_0 = -100, 
      ax = ax, resolution = 'l', 
      llcrnrlat=-90, urcrnrlat = 90, llcrnrlon = -180, urcrnrlon = 180) 

border_color = 'black' 
m.drawcoastlines() 

plt.imshow(B) 
plt.colorbar() 
plt.show() 
+0

'plt.imshow'보다는'm.imshow'를 시도하십시오. http://matplotlib.org/basemap/api/basemap_api.html#mpl_toolkits.basemap.Basemap.imshow –

+1

감사합니다. – Pete

답변

0

당신이 여기에서 볼 수 있듯이,이 작업을 수행하는 몇 가지 방법이 있습니다; http://matplotlib.org/basemap/api/basemap_api.html

첫 번째는 위의 설명에 나열된 m.imshow를 사용하는 것입니다.

다음으로 각 점에 대한 위도/경도 좌표를 지정하여 m.pcolor 또는 m.pcolormesh를 사용하여 의사 색상 이미지를 플로팅 할 수 있습니다. 이 사각형을 색칠합니다.

마지막으로 m.contour 또는 m.countourf를 사용하여 등고선 또는 채워진 카운트 투어지도를 사용하여 등고선지도를 표시 할 수 있습니다.