【发布时间】:2023-01-24 04:40:11
【问题描述】:
我正在使用一个作物日历来记录给定物候状态发生的一年中的哪一天(doy)——这里是平均种植(plant)和收获(harvest)季节(注意nan打印下面是海洋上的像素,其他值包含int):
<xarray.Dataset>
Dimensions: (y: 2160, x: 4320)
Coordinates:
* x (x) float64 -180.0 -179.9 -179.8 -179.7 ... 179.7 179.8 179.9 180.0
* y (y) float64 89.96 89.88 89.79 89.71 ... -89.71 -89.79 -89.88 -89.96
Data variables:
plant (y, x) float32 nan nan nan nan nan nan ... nan nan nan nan nan nan
harvest (y, x) float32 nan nan nan nan nan nan ... nan nan nan nan nan nan
我需要将这两个变量组合在维度数据数组中 (doy: 365, y: 2160, x: 4320) 以便跟踪每个像素的物候状态作为 doy 的函数。从概念上讲,到目前为止我确定的步骤是:
- 为每个状态分配一个数值,例如
off=0、plant=1、harvest=2 - 在新dataarray的
doy维度中以doy作为对应日期的索引,赋值状态对应的数值 - 使用类似于
pandas.DataFrame.fillna和method='ffill'的方式完成中间的值我浏览了Reshaping and reorganizing data 和Combining Data 页面,但根据我目前对 xarray 的理解,我真的不知道从哪里开始。
谁能指出我的方向?我想做的事情是仅使用矩阵运算就可以实现,还是我必须引入循环?
PS:为问题本身的混乱表述道歉。我想这只反映了我仍然缺少的一些基本知识。
【问题讨论】:
标签: python python-xarray