Как интерполировать массив, который не содержит информацию о давлении на основе массива давления - PullRequest
0 голосов
/ 16 октября 2019

Предположим, у меня есть переменная x в форме (Time: 127, bottom_top: 58, south_north: 76, west_east: 96), где bottom_top явно не содержит значения исходного давления. Иными словами, исходный уровень давления происходит из новой переменной p с той же формой (Time: 127, bottom_top: 58, south_north: 76, west_east: 96).

. Я хочу провести интерполяцию в направлении bottom_top x от исходного давления p до нового уровня давления p_new. Например,

x[0,:,1,1].values =

array([404.13263, 404.13217, 404.13174, 404.11353, 404.11615, 404.1033 ,
       404.0999 , 404.0954 , 404.0902 , 404.07092, 404.05087, 404.04208,
       404.0345 , 404.01535, 403.98822, 403.95865, 403.92953, 403.90146,
       403.88913, 403.88214, 403.87677, 403.8698 , 403.86185, 403.8513 ,
       403.83362, 403.8124 , 403.791  , 403.76935, 403.7525 , 403.72525,
       403.6679 , 403.61584, 403.52277, 403.44308, 403.36752, 403.2787 ,
       403.17352, 403.0464 , 402.89468, 402.69656, 402.52823, 402.40897,
       402.3129 , 402.2052 , 402.11267, 402.06073, 402.03674, 401.99417,
       401.81857, 401.57474, 401.34845, 401.14847, 400.97156, 400.95645,
       400.92035, 400.7942 , 400.16495, 398.33502], dtype=float32)

p[0,:,1,1].values =

array([86983.83  , 86819.19  , 86656.23  , 86487.69  , 86326.62  , 86120.52  ,
       85831.95  , 85461.48  , 85050.03  , 84598.    , 84103.71  , 83613.43  ,
       83075.71  , 82500.    , 81923.46  , 81346.94  , 80730.56  , 80030.49  ,
       79289.44  , 78507.66  , 77642.914 , 76696.05  , 75707.52  , 74719.38  ,
       73690.03  , 72619.51  , 71549.4   , 70438.445 , 69286.41  , 68093.85  ,
       66819.19  , 65503.797 , 64148.29  , 62711.4   , 61234.523 , 59716.75  ,
       58158.11  , 56557.582 , 54874.125 , 53109.348 , 51303.953 , 49458.043 ,
       47530.21  , 45519.61  , 43423.426 , 41243.23  , 38992.438 , 36712.22  ,
       34389.49  , 31879.646 , 29135.926 , 26400.299 , 23733.72  , 20932.85  ,
       18026.195 , 15077.396 , 11595.89  ,  7294.6274], dtype=float32)

p_new =

array([1.00758e+05, 9.00880e+04, 8.03100e+04, 7.13940e+04, 6.32770e+04,
       5.59420e+04, 4.93250e+04, 4.33770e+04, 3.80270e+04, 3.32140e+04,
       2.89180e+04, 2.50580e+04, 2.16130e+04, 1.85420e+04, 1.58370e+04,
       1.34660e+04, 1.14090e+04, 9.64300e+03, 8.15100e+03, 6.90200e+03,
       5.86000e+03, 4.98700e+03, 4.25500e+03, 3.63600e+03, 3.11200e+03,
       2.66800e+03, 2.29100e+03, 1.97200e+03, 1.69900e+03, 1.46600e+03,
       1.26700e+03, 1.09600e+03, 9.49000e+02, 8.23000e+02, 7.15000e+02,
       6.21000e+02, 5.40000e+02, 4.70000e+02, 4.10000e+02, 3.58000e+02,
       3.12000e+02, 2.73000e+02, 2.40000e+02, 2.10000e+02, 1.85000e+02,
       1.63000e+02, 1.43000e+02, 1.26000e+02, 1.11000e+02, 9.80000e+01,
       8.70000e+01, 7.70000e+01, 6.70000e+01, 5.90000e+01, 5.20000e+01,
       4.60000e+01, 4.00000e+01, 3.50000e+01, 3.10000e+01, 2.70000e+01,
       2.40000e+01, 2.10000e+01, 1.80000e+01, 1.60000e+01, 1.40000e+01,
       1.20000e+01, 1.00000e+01, 9.00000e+00, 8.00000e+00, 7.00000e+00,
       6.00000e+00])

Есть ли способ, которыйЯ могу напрямую интерполировать как

x_new = interpolation(x,p,p_new).

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...