【发布时间】:2021-10-26 22:17:37
【问题描述】:
有没有办法在不使用循环的情况下将“行格式”数据集网格化为 xarray 数据集?
具体来说,如果没有指定值,我想要一个数组,其中 (lat, lon, time) 网格中的所有值都为 0。我知道 pandas 中的 .to_xarray() 方法(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_xarray.html),但这不会产生所需坐标(纬度、经度、时间)的完整覆盖。下面的玩具示例:
import pandas as pd
import xarray as xr
# row data to be gridded
data = {'lats':[0,0,2], 'lons':[1,2,0], 'times':[0,1,2], 'values':[20,50,30]}
df_rows = pd.DataFrame(data)
# desired coordinates to grid onto:
lat = [0,1,2]
lon = [0,1,2]
time= [0,1,2]
# general form of the desired output Dataset
df_grid = xr.Dataset(data_vars={'data':(('lon','lat','time'), df_rows)},
coords={'lat': lat,
'lon': lon,
'time':time})
【问题讨论】:
标签: python dataframe python-xarray