#python #decomposition #spherical-coordinate
#python #разложение #сферическая координата
Вопрос:
Я пытаюсь разложить поле ветра (u, v) на безвихревые и недивергентные поля (uchi, vchi, upsi, vpsi). Это поле является глобальным и имеет форму (time, level, lat, lon) и работает, когда я использую разложение по Гельмгольцу из модуля python pyspharm и поле, в котором нет пропущенных значений — что относится к общедоступным данным (данные повторного анализа, интерполированные на поверхность). Pyspharm использует вычисления сферических гармоник для вычисления этого.
Однако проблема возникает, когда я пытаюсь использовать данные, полученные из моей личной модели, где у меня отсутствуют значения — из-за гор или высоких регионов, поскольку я не могу интерполировать на поверхность. Как только на заданном уровне есть один NaN, весь уровень возвращает NaN.
Сначала я думал о интерполяции по горизонтали, чтобы сгладить эти NaN, но области часто слишком велики, поэтому я подумал, что, возможно, есть другой способ выполнить разложение по Гельмгольцу, которое возвращало бы NaN только вблизи начального NaN (а не всего уровня), например, конечные разности?
Кто-нибудь знает, как или если я могу выполнить конечные разности для Гельмгольца, и если да, то где я могу получить код для этого?СПАСИБО
Комментарии:
1. У вас был какой-нибудь прорыв? Я также застрял в той же проблеме. Любая помощь будет оценена.
2. Метод, с которым я закончил, заключался в том, чтобы найти новый метод интерполяции. Я обосновал это тем, что область находилась на противоположной стороне мира, так что это мало повлияло бы. Хорошим пакетом, который я нашел, было заполнение сетки, найденное здесь github.com/ajdawson/gridfill