【发布时间】:2021-06-23 11:00:15
【问题描述】:
我有一个 DataArray,其中包含两个变量(气象数据)随时间的变化,y,x 坐标。 x 和 y 坐标位于投影坐标系 (EPSG:3035) 中并对齐,以便每个单元格几乎完全覆盖1km LAEA reference grid 的标准单元格
我想准备数据以供在 Pandas 和/或数据库表中进一步使用,所以我想添加可以通过以下(伪)函数直接从 x 和 y 计算的 LAEA Gridcell Number/Label
def func(cell):
return r'1km{}{}'.format(int(cell['y']/1000), int(cell['x']/1000)) # e.g. 1kmN2782E4850
但据我所见,似乎不可能以某种方式将此函数应用于 DataArray 或 DataSet 以便我可以访问这些坐标变量(至少 .apply_ufunc() 并没有真正为我。
稍后我可以在 Pandas 上计算这个,但我的一些数据集包含 60 到 120 个 Mio。 Cells/Rows/datasets 和 pandas(即使使用 Numba)似乎在这个数量上存在问题。在 xarray 上,我可以通过 Dask 在 32 个核心上处理它。
我将不胜感激有关如何使其工作的任何建议。
编辑:对我正在使用的数据的更多见解:
这是最大的一个,有 500 个 Mio 单元,但我能够将其缩减到平方公里分辨率,最终得到大约 160 个 Mio。细胞
如果数据集足够小,我可以将其导出为 pandas 数据框并在那里进行计算,但由于内核经常崩溃,所以速度很慢而且不是很健壮
【问题讨论】:
-
您能否提供一些示例数据或展示您的数据数组的外观?
标签: python pandas python-xarray