Интерполировать и сгладить данные между двумя логарифмическими c уравнениями в Python - PullRequest
0 голосов
/ 09 мая 2020

У меня есть несколько следующих уравнений:

windGust8 = -53.3 + (28.3 * log(windSpeed))
windGust7to8 = -70.0 + (30.8 * log(windSpeed))
windGust6to7 = -29.2 + (17.7 * log(windSpeed))
windGust6 = -32.3 + (16.7 * log(windSpeed))

где windSpeed - скорость ветра из модели на 850 мб.

Затем я использую градиенты из модели, чтобы определить, какое уравнение использовать как таковое:

windGustTemp = where(greater(lapseRate,8.00),windGust8,windGustTemp)
windGustTemp = where(logical_and(less_equal(lapseRate,8.00),greater(lapseRate,7.00)),windGust7to8,windGustTemp)
windGustTemp = where(logical_and(less_equal(lapseRate,7.00),greater(lapseRate,6.00)),windGust6to7,windGustTemp)
windGustTemp = where(less_equal(lapseRate,6.00),windGust6,windGustTemp)

return windGustTemp

Когда я рисую эти уравнения как закрашенные контуры на карте, есть резкие градиенты, как и вы ожидать. Я бы хотел интерполировать эти уравнения и, возможно, немного сгладить их, чтобы получить чистый вид графика c. Я предполагаю, что использовал бы scipy.interpolate.interp1d, но я не уверен, как применить это к этому обстоятельству. Любая помощь приветствуется! Спасибо!

РЕДАКТИРОВАТЬ, чтобы добавить пример выходного изображения

Это пример сгенерированного в настоящее время выходного изображения. Вы можете видеть, насколько резкие края. Я хочу интерполировать и сгладить эти данные.

Output Example

Есть точки данных каждые 1 км с данными модели. Для каждой точки сначала определяется, какова скорость отклонения ... скажем, 7,4. Затем, основываясь на приведенных выше уравнениях logi c, он знает, как использовать уравнение, связанное с градиентной скоростью между 7 и 8. Затем он находит модельную скорость ветра для этой точки, вставляет ее в уравнение и получает число, которое строит. на карте. Это делается для всех точек данных модели и генерирует приведенное выше изображение.

...