2017-01-13 3 views
0

필자는 곡선 투영법 (기본 lambert 등고 투영법)의 WRF 출력을 가지므로 2D 좌표 (XLONG & XLAT)가 연관되어 있습니다. 배열을 자르는 방식으로 데이터를 직사각형 그리드로 서브 세트 할 수 있습니다.Python - 곡선 맵에서 WRF 데이터를 서브 셋트

예 :

XLAT constants.variables = [ 'XLAT'] [0749 : 915220 : 458]

xlon constants.variables = [ 'XLONG'] [0749 : 915220 : 458]

하지만, I 원하는 특정 위도와 경도로 묶인 모든 그리드 점을 서브 세트하여 일종의 사다리꼴 그리드 점을 얻습니다. 이해하기 쉽게 이미지를 첨부했습니다. 파란색 상자 안에있는 격자 점 대신 빨간색 선으로 묶인 격자 점을 원합니다.

https://www.dropbox.com/s/bxnhuhyoena8a8e/WRF_StudySites.pdf?dl=0

는 어디에() 함수를 사용 NCL (NCAR 명령 행)에서 수행 할 수 있지만 문제가 파이썬에서 같은 일을하는 데 문제.

내가 어떻게 이런 일을 할 수 있을지에 대한 조언?

감사합니다.

+0

나는'xarray' 패키지는 WRF 출력과 매우 잘 작동 찾을 수 있습니다. 좌표에 대한 마스크를 만들기 위해 함수의 ['where'] (http://xarray.pydata.org/en/stable/indexing.html#masking-with-where) 함수를 사용할 수 있습니까? – Peter9192

+0

Thanks @ Peter9192. 멋진 패키지처럼 보입니다. 나는 xr.where()를 사용하여 조건문을 사용하여 부분 집합을 시도했다. lat_min = 49. lat_max = 53. lon_min = -113. lon_max = -125. (lat> lat_min) & (lat lon_min) & (lon jdiction

+0

그것은 나를 위해 작동, 자세한 내용은 내 대답을 참조하십시오. 도움이 더 필요하면 코드 일부와 예제 데이터를 복사해야합니다. 그렇지 않으면 더 이상 도움을 드릴 수 없습니다. – Peter9192

답변

0

나는 이것을 위해 xarray 패키지를 사용했습니다. where() 함수에 대한 설명은 here을 참조하십시오. 내 데이터 세트의 경도는 -5에서 13까지이므로 XLONG> 0은 내 데이터의 일부만 반환합니다 (의도 한대로). 예를 들어

는 :

import xarray as xr 
import matplotlib.pyplot as plt 

# Load dataset with xarray (I only import T2 here, and only the first time) 
wrftemp = xr.open_dataset('wrfout_d01_.....').T2.isel(Time=1) 

# Make a figure of the T2 temperature field 
fig,(ax1,ax2) = plt.subplots(1,2) 
wrftemp.plot(ax=ax1) 
wrftemp.where(wrftemp.XLONG>0).plot(ax=ax2) 
plt.show() 
관련 문제