найдите ближайшую точку на неизвестной трассе

#python #cartopy

Вопрос:

Я нахожу только несколько примеров ближайшего соседа с известными следами. Моя проблема в том, что я хочу найти ближайшего соседа в сетке lat, lon между 2 точками.

Я начал вот так:

 start_point =[-10,  0]            #Lat/Lon
end_point   =[40,  0]            #Lat/lon
def find_closest(A, target):
    #A must be sorted
    idx = A.searchsorted(target)
    idx = np.clip(idx, 1, len(A)-1)
    left = A[idx-1]
    right = A[idx]
    idx -= target - left < right - target
    return idx
        nc = Dataset(datalist , mode='r')       #height_2 = full level
                                                #height, height_4 = halfe level
lat = nc.variables['lat'][:]
lon = nc.variables['lon'][:]
div = nc.variables['div'][stunde,lev_full[0],:,:]

start_lat = find_closest(lat,start_point[0])
start_lon = find_closest(lon, start_point[1])
end_lat = find_closest(lat,end_point[0])
end_lon = find_closest(lon,end_point[1])

lati,loni=np.linspace(start_lat,end_lat, num),np.linspace(start_lon,end_lon,num)
geo_near = scipy.ndimage.map_coordinates(div, np.vstack((lati,loni)))
 

Мой вопрос сейчас. Как я могу преобразовать индекс обратно? Если я построил значения, линия выглядит неправильно.

Приветствия

Комментарии:

1. Можете ли вы более подробно объяснить, в чем заключается ваша задача? Каковы входные данные и что должно быть получено в результате?

2. map_coordinates Функция ожидает координаты пикселей, а не широту/долготу.