세 개의 다른 배열이 있습니다.각 치수에 대해 다른 마스크를 사용하여 2D 배열을 마스크하십시오.
하나는 경도 배열 (-90 ~ 90)이고 또 하나는 경도 배열 (0 ~ 360)이고 마지막은 형태 (len (lats), len (lons))가있는 2D 온도 배열입니다. len !) = LEN (Lons의) 나는 다른 수단을 통해 경도 마스크를 획득하고를 통해 위도 마스크를 만든
: 나는에 적용 할 내가 두 1D 마스크가 이제
latmask = np.ma.masked_where(np.logical_or(lat < -60, lat > 60), lat).mask
. "or"논리 (해당 색인의 위도 또는 경도가 마스크 된 경우 별칭으로 2D 데이터를 마스크해야 함)와 함께 해당 축을 따라 2D 데이터.
내가 사용하여 2D 마스크에 두 개의 1D 마스크를 결합하는 시도 :
2dmask = np.logical_or(latmask , lonmask)
2dmask = latmask * lonmask
그러나이 두 배열은 같은 모양하지 않은 말하는 오류를 제공합니다.
2dmask = latmask[np.newaxis, :] & lonmask[:, np.newaxis]
하지만 난 그렇게처럼 내 데이터에이 마스크를 적용하고 그 결과 플롯하려고하면
testdata = np.ma.masked_array(nt[0,50,:,:], mask = 2dmask)
나는 다음과 같은 줄거리 얻을
:
을하지만,이 플롯을 +/- 60도 위의 마스크 된 데이터 위 및 아래의 데이터가 있어야하며 일부 연속 마스크의 경도는 마스크 (기본적으로 데이터의 사각형 추출)됩니다.
나는 지난 30-45 분 동안 문서를 검색하고 행운이없는 유사한 문제에 대해 스택 오버플로를 보냈다.
도움 주셔서 감사합니다.
twodmask = latmask[:, None] & lonmask[None, :]
아마도 사용하거나 대신를 실행 한 다음,
인걸요
트릭을 했습니까? 나는을 사용하고 치수를 뒤집었다. 도와 주셔서 감사합니다! –