위도/경도 그리드 해상도가 다른 두 개의 서로 다른 xarray 데이터 세트가 있습니다. 나는 더 높은 해상도로 하나의 xarray와 같은 해상도로 더 낮은 해상도로 하나의 xarray를 regrid하고 싶다. 몇 가지 예 (예 : http://earthpy.org/interpolation_between_grids_with_basemap.html)를 찾았지만 제대로 작동하지 않습니다. 내가Basemap을 사용하는 두 xarray 데이터 세트 간의 보간
import numpy as np
import xarray as xray
import mpl_toolkits.basemap
var1=xray.DataArray(np.random.randn(len(np.linspace(40.5,49.5,10)),len(np.linspace(-39.5,-20.5,20))),coords=[np.linspace(40.5,49.5,10), np.linspace(-39.5,-20.5,20)],dims=['lat','lon'])
(xlon, xlat)=np.meshgrid(np.linspace(-39.875,-20.125,80),np.linspace(40.125,49.875,40))
var2=xray.DataArray(-xlon**2+xlat**2,coords=[np.linspace(40.125,49.875,40),np.linspace(-39.875,-20.125,80)],dims=['lat','lon'])
mpl_toolkits.basemap.interp(var1,var1.lon,var1.lat,var2.lon,var2.lat,checkbounds=False,masked=False,order=0)
다음 얻을 오류 :
는ValueError: xout and yout must have same shape!
스크린 샷 : 는
는 basemap.interp는() XOUT 및 행해져 Yout을 요구해야합니까 여기에 내가 테스트를 위해 만든 하나의 예이다 같은 모양? 그래서 var2는 사각형이어야합니까? 내 데이터 세트의 경우 거의 그렇지 않습니다. var1을 var2와 동일한 해상도로 재구성하려면 어떻게해야합니까?
참고 : regridding 후 var2와 관련된 몇 가지 조건을 고려하여 var1을 서브 샘플링하려고합니다. 예 :
var1_subset = var1.where(var2>1000)
그래서 보간하는 동안 격자 점 손실을 최소화하고 싶습니다. XOUT 및 행해져 Yout이 번호 또는 출력 nlons의 수가 동일하고 nlats가 동일한 경우