假設我有一個包含4124個測量值的數組nl
。每個都與指定測量發生位置的(lat
,lon
)對關聯。這些位置沒有網格化,即它們沒有與規則間隔值對齊。關於兩個變量的groupby_bins?
In [51]: whos
Variable Type Data/Info
---------------------------------
lat ndarray 4124: 4124 elems, type `float32`, 16496 bytes
lon ndarray 4124: 4124 elems, type `float32`, 16496 bytes
nl ndarray 4124: 4124 elems, type `int16`, 8248 bytes
我創建了一個DataArray中的nl
,指定lat
和lon
爲座標:
nl = xr.DataArray(nl, coords={'lon':(['time'], lon), 'lat':(['time'], lat)}, dims=['time'])
我知道我可以組經度和緯度的垃圾箱這些值來對它們進行操作,例如
nl_avg_lon = nl.groupby_bins('lon', np.r_[-180:190:10]).mean()
nl_avg_lat = nl.groupby_bins('lat', np.r_[-90:90:10]).mean()
我想要做的是在經度x緯度的二維分組中分組值,所以我可以顯示結果作爲地圖。我不認爲groupby_bins可以做到這一點,是否有另一種解決方案?
更新與例如:
這是我怎麼會做什麼,我想與numpy的正確:
latbins = np.r_[-90:100:10]
lonbins = np.r_[-180:190:10]
nsamples, xx, yy = np.histogram2d(lon, lat, bins=(lonbins, latbins))
nl_sum, xx, yy = np.histogram2d(lon, lat, bins=(lonbins, latbins), weights=nl)
nl_avg = nl_sum/nsamples
我想避免訴諸numpy的,以保持與前圍xarray一體化。
我不知道我明白。你是否建議在新維度上連接'lat'和'lon'?或沿'nx'維度?在這兩種情況下,我認爲新創建的座標尺寸與'nl'變量的尺寸不兼容。我誤解了什麼? –
請注意,'nl'變量*不是*二維的。有一個獨特的維度(例如時間)。沿該維度的每個nl點都與緯度和經度相關聯。在上面的'nl'例子中,'lat'和'lon'座標是平行的,可以這麼說。 –
剛剛添加了一個例子,這是否更有意義? – Maximilian