我想从pandas数据帧(df)中创建每日直方图,并将其导出到xarray,以将其与另一个数据集(data)相结合。当我创建DataArray时,我可以毫无问题地访问它,但一旦我将其与数据集组合,我添加的数组就只包含nan条目。我想我通过规范化时间坐标并确保空间坐标相同,确保所有坐标正确对齐。出了点问题,我的想法快用完了。任何帮助都将不胜感激
df=pd.read_csv(filepath+dfname)
data=xr.open_dataset(filepath+bgc_xarray)
df['date'] = pd.to_datetime(df['date'])
data['time'] = data.indexes['time'].normalize()
xedges = np.arange(lonmin,lonmax+2*spacing,spacing)
yedges = np.arange(latmin,latmax+2*spacing,spacing)
latitude = xedges[:-1]
longitude = yedges[:-1]
for i in range(2):
df_i=df[df['date'] == data.time[i].values]
x = df_i['cell_ll_lon']
y = df_i['cell_ll_lat']
weights = df_i['fishing_hours']
hist, xedges, yedges = np.histogram2d(x, y, bins=(xedges, yedges), weights=weights)
fishing_effort = hist.T
Xarray_i = xr.DataArray(
data=fishing_effort,
dims=['longitude', 'latitude'],
coords=dict(
longitude=(['longitude'], longitude),
latitude=(['latitude'], latitude),
time = data.time[i].values),
attrs=dict(
description='Fishing Effort',
units='hours',),)
if i == 0:
Xarray = Xarray_i
else:
Xarray = xr.concat([Xarray, Xarray_i], 'time')
data['fishing_effort'] = Xarray
哦,好吧,问题显然是空间坐标的问题。这修正了它:
相关问题 更多 >
编程相关推荐