为什么xarray DataArray在与xarray数据集组合后只包含NAN?

2024-05-29 00:14:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从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

Tags: 数据dfdatadatetimenpxarrayweights
1条回答
网友
1楼 · 发布于 2024-05-29 00:14:32

哦,好吧,问题显然是空间坐标的问题。这修正了它:

longitude=(['longitude'], data.longitude.values),
latitude=(['latitude'], data.latitude.values),

相关问题 更多 >

    热门问题