R语言stars包netcdf栅格聚合后调整维度排列顺序的实现方法
stars栅格维度顺序调整实现
stars包原生提供aperm()方法,用于重排栅格维度的排列顺序,操作逻辑与R基础数组的aperm()完全一致,无需依赖外部包或复杂脚本。
操作方法
- 直接对聚合输出的stars对象调用
aperm(),第二个参数传入目标维度的排列顺序即可。 - 以示例中聚合得到的维度顺序为
time, x, y的对象y为例,要恢复为项目要求的(x, y, time)结构,执行以下代码:
y_reordered <- aperm(y, c("x", "y", "time"))
结果校验
执行后查看y_reordered的维度信息,即可确认顺序与原始输入的栅格结构完全匹配:
y_reordered #> stars object with 3 dimensions and 1 attribute #> dimension(s): #> from to offset delta refsys point values x/y #> x 1 349 288776 28.5 UTM Zone 25, Southern Hem... FALSE NULL [x] #> y 1 352 9120761 -28.5 UTM Zone 25, Southern Hem... FALSE NULL [y] #> time 1 6 2021-03-25 3 days Date NA NULL
注意事项
- 除通过维度名称指定顺序外,也可通过维度在原对象中的位置索引指定。原对象
y的维度位置为time(1)、x(2)、y(3),对应目标顺序x, y, time的索引向量为c(2, 3, 1),执行结果与按名称指定完全等价。 - 该操作仅调整维度排列顺序,不会修改栅格数值、坐标参考系、维度间隔、时间取值等元数据,调整后的对象可直接用于后续流程。
内容的提问来源于stack exchange,提问作者matt_reusswig
相关产品推荐
相关产品推荐

