У меня есть DataArray с двумя переменными (метеорологические данные) с течением времени, координаты y, x. Координаты x и y находятся в системе координат проекции (EPSG: 3035) и выровнены так, чтобы каждая ячейка почти точно покрывала стандартную ячейку 1 км координатной сетки LAEA
Я хочу подготовить данные для дальнейшего использования в таблицах Pandas и / или баз данных, поэтому я хочу добавить номер / метку ячейки сетки LAEA, которая может быть вычислена из x и y напрямую с помощью следующей (псевдо) функции
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 миллионов. У Cells / Rows / datasets и pandas (даже с Numba), похоже, проблемы с этим количеством. На xarray я могу обработать это на 32 ядрах через Dask.
Буду признателен за любой совет, как заставить это работать.
РЕДАКТИРОВАТЬ: Еще немного информации о данных, с которыми я работаю:
Это самый большой с 500 миллионами ячеек, но я могу уменьшить его до разрешения квадратного километра, которое в итоге составляет около 160 миллионов. клетки
Если набор данных достаточно мал, я могу экспортировать его как фрейм данных pandas и вычислить там, но это медленно и не очень надежно, поскольку ядро довольно часто дает сбой.