#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
Функция ожидает координаты пикселей, а не широту/долготу.