Интерполяция широты и долготы от сетки перекрестия в Python3 - PullRequest
0 голосов
/ 19 февраля 2020

У меня проблемы с интерполяцией широты и долготы из грубой сетки с перекрестием в сетку 720x720. Моя цель - сопоставить каждый пиксель изображения с широтой / долготой (или мисс) на земле, используя Python3. Я нашел много ресурсов для того, чтобы делать подобные вещи для спутниковых данных о низкой околоземной орбите, где геометрия Земли не так сильно на это влияет. На следующем изображении показаны примерные точки, которые у меня есть.

Rough sample points

Я пробовал scipy.interpolate.griddata, и он не дает надлежащих результатов. Должен ли я использовать что-то вроде scipy.interpolate.RectBivariateSpline?

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

from numpy import nan
lons = [[    nan,     nan,     nan,     nan,     nan,     nan,     nan,     nan,     nan,     nan,  nan],
       [    nan,     nan,     nan,     nan,     nan,     nan,     nan,     nan,     nan,     nan,   nan],
       [    nan,     nan,     nan,     nan,     nan,  106.25,     nan,     nan,     nan,     nan,   nan],
       [    nan,     nan,     nan,     nan,     nan,  111.92,     nan,     nan,     nan,     nan,   nan],
       [    nan,     nan,     nan,     nan,     nan,  117.21,     nan,     nan,     nan,     nan,   nan],
       [ 165.18,  157.77,  150.79,  143.1 ,  134.08,  123.23,  110.16,   94.97,   78.46,   61.77,   44.53],
       [    nan,     nan,     nan,     nan,     nan,  130.94,     nan,     nan,     nan,     nan,   nan],
       [    nan,     nan,     nan,     nan,     nan,  141.93,     nan,     nan,     nan,     nan,   nan],
       [    nan,     nan,     nan,     nan,     nan,  158.95,     nan,     nan,     nan,     nan,   nan],
       [    nan,     nan,     nan,     nan,     nan, -174.99,     nan,     nan,     nan,     nan,   nan],
       [    nan,     nan,     nan,     nan,     nan, -144.15,     nan,     nan,     nan,     nan,   nan]]

lats = [[  nan,   nan,   nan,   nan,   nan,   nan,   nan,   nan,   nan,   nan,   nan],
       [  nan,   nan,   nan,   nan,   nan,   nan,   nan,   nan,   nan,   nan,   nan],
       [  nan,   nan,   nan,   nan,   nan, 12.23,   nan,   nan,   nan,   nan,   nan],
       [  nan,   nan,   nan,   nan,   nan, 27.17,   nan,   nan,   nan,   nan,   nan],
       [  nan,   nan,   nan,   nan,   nan, 38.15,   nan,   nan,   nan,   nan,   nan],
       [ 0.13, 16.98, 27.61, 35.8 , 42.33, 47.38, 50.73, 51.95, 50.39, 45.05, 32.52],
       [  nan,   nan,   nan,   nan,   nan, 55.5 ,   nan,   nan,   nan,   nan,   nan],
       [  nan,   nan,   nan,   nan,   nan, 62.63,   nan,   nan,   nan,   nan,   nan],
       [  nan,   nan,   nan,   nan,   nan, 68.4 ,   nan,   nan,   nan,   nan,   nan],
       [  nan,   nan,   nan,   nan,   nan, 71.54,   nan,   nan,   nan,   nan,   nan],
       [  nan,   nan,   nan,   nan,   nan, 70.11,   nan,   nan,   nan,   nan,   nan]]

Если что-то может помочь указать мне правильное направление или сказать, что я думаю об этом совершенно неправильно, это будет очень цениться!

...