Pythonxarray:如何将多个3D数据数组组合成一个6维的数组?

2024-10-01 09:16:42 发布

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

我已经阅读了12个波段(月)的80个光栅geotif文件,并生成了80个3D数据阵列(因此我可以通过clip_box裁剪它们,以便绘制我项目区域的80张地图)

现在我需要将它们组合成一个单独的数据数组,但要沿着另外3个维度(气候模型、气候变化情景和时间段)。我的目标是计算统计数据并绘制4个不同维度的地图

我应该把重点放在什么功能上? 三个组合函数之一(concat、merge、combine\u嵌套)


Tags: 文件数据项目模型box区域clip光栅
1条回答
网友
1楼 · 发布于 2024-10-01 09:16:42

我发现,沿multiples维度合并multiples DataArray的唯一方法是:

  • 首先创建一个空dataArrayda_to,其中包含所有请求的维度和坐标列表(并设置空间维度)
dims= ('dim1', 'dim2', ...) 
array= np.empty((len(coord1_list), len(coord2_list), ...) 
da_tot= xr.DataArray(data= array, dims= dims, coords={'coord1': coord1_list, 'coord2': coord2_list, ..., 'lon': lon_list, 'lat': lat_list) 
da_tot.rio.set_spatial_dims(x_dim= 'lon', y_dim= 'lat', inplace= True)
  • 然后通过为每个dataArray da分配坐标来添加它

da_tot.loc[dict(coord1= 'xxxx', coord2= 'yyyy', ....)]= da

相关问题 更多 >