2014-06-12 1 views
2

다른 사람들의 예제를 고려하여이 문제를 해결하려고했습니다. 그러나, 나는 아직도 내가 원하는 결과를 얻지 못한다. 내가 얻은 결과는 해안선이 없거나 해안선이없고 데이터 플롯이 없었습니다 (저는 pcolor를 사용했습니다)basemap, matplotlib에 의한 데이터에서 플롯에 해안선 그리기

내가 사용한 데이터는 관심 지역을 통한 온도의 netcdf 파일이었습니다. 데이터 자체에는 경계 정보가 없기 때문에이 그림 위에 해안선을 그려 넣고 싶습니다. 내 코드는 아래와 같다 : 내 경도 (Lon_plt)와 위도 (Lat_plt)의 2 차원 배열을했기 때문에

Temp_plt = Temp[18,:,:] 
Lon_plt = Lon[18,:,:] 
Lat_plt = Lat[18,:,:] 
lons  = Lon_plt[0] 
lats  = Lat_plt[0] 
lat_min = min(lats) 
lat_max = max(lats) 
lon_min = min(lons) 
lon_max = max(lons) 
Temp_c = Temp_plt-273.15 
m = Basemap(
     projection = 'merc', 
     llcrnrlat=lat_min, urcrnrlat=lat_max, 
     llcrnrlon=lon_min, urcrnrlon=lon_max, 
     resolution='h', area_thresh=0.01 
    ) 

m.drawcoastlines() 
lon, lat= m.makegrid(Temp_plt.shape[1],Temp_plt.shape[0]) 
x1, y1 = m(lon,lat) 
myPLT = m.pcolor(x1,y1,Temp_c) 

, I는 makegrid에서 pcolor 대신 X1 및 Y1에 대한 값들을 시도했다. 그러나, 그 당시에는 해안선은 보지 못했지만 온도는 pcolor로만 나타났습니다. 위의 코드에서, 나는 단지 줄거리 전체에 붉은 색을 볼 수있었습니다.

어떤 아이디어 나 도움이 정말 감사하겠습니다. 주석에서 언급 한 바와 같이 선이 착색 오버레이 있도록

대신 그 반대의,,,의 drawcoastlines() 함수는 pcolor() 함수 후에 호출되어야한다

이삭

+1

현재 코드의 문제는 좌표 격자를 제대로 구성하지 않는다고 생각합니다. 'Temp_plt.shape'는 실제 좌표가 아닌 배열의 모양을 줄 것입니다. 그래서'Lon_plt'와'Lat_plt'을 사용하는 것이 길입니다. 그러나'pcolor'에서 사용하기 전에 lat/lon에서 좌표 좌표로 변환해야합니다 :'x1, y1 = m (Lon_plt, Lat_plt)'. 너 그거 해봤 니? – abudis

+1

abudis 감사합니다, 사실 내 문제를 발견했다. 그것은 단지 pcolor와 m.drawcoastline 사이의 oreder 때문이었습니다. drawcoastline은 pcolor 뒤에 있어야합니다. 시간과 도움을 주셔서 다시 한 번 감사드립니다. – Isaac

답변

1

을 주셔서 감사합니다 .

관련 문제