Есть ли способ интерполировать данные сетки широта / долгота, а затем получать значения для конкретных точек - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть большой файл средней поверхности моря для всей Земли, с разрешением 2 минуты, что дает массив float (10801,5400). Каждой точке соответствуют координаты широты и долготы, заданные

x = np.linspace(x2, x1, x_num)      
y = np.linspace(y1, y2, y_num)
  • x2 = 90
  • x1 = -90
  • y1 = 0
  • y2 = 360
  • x_num и y_num - это количество очков с шагом 0,3333

У меня есть траектория полета 82801 широты и долготы, для которой я хочу знать средние значения интерполированной поверхности моря, но, похоже, я не могу правильно использовать какую-либо из нормальных интерполяционных функций

Я пробовал interp2d, как показано ниже

interp = scipy.interpolate.interp2d(x,y,mss,kind='linear')

и затем, чтобы получить значения баллов, я запускаю цикл

for i in range(len(Lats_mid)):

    h[i] = interp(Lats_mid[i],Lons_mid[i])

Однако этот результат не выглядит правильным.

Я также изучил scipy.interpolate.griddata, но я не уверен, что это можно использовать даже для этой проблемы.

Так что я думаю, что будет полезен любой простой пример правильной интерполяции данных сетки с географическими координатами

...