Я новичок в python, и не могу понять, как найти минимальное расстояние от заданной точки lat/lon (которая не указана из сетки, но выбранный мной) для поиска ближайших индексов точки lat/lon на сетке.найти индексы lat lon point на сетке с использованием python
В основном, я читаю в ncfile, который содержит 2D координаты:
coords = 'coords.nc'
fh = Dataset(coords,mode='r')
lons = fh.variables['latitudes'][:,:]
lats = fh.variables['longitudes'][:,:]
fh.close()
>>> lons.shape
(94, 83)
>>> lats.shape
(94, 83)
Я хочу, чтобы найти индексы в приведенной выше сетки для ближайшего Lat Lon к ниже значений:
sel_lat=71.60556
sel_lon=-161.458611
Я попытался сделать пары lat/lon, чтобы использовать функцию scipy.spatial.distance, но у меня все еще возникают проблемы, потому что я не настраивал входные массивы в желаемый формат, но я не понимаю, как сделать это:
latLon_pairsGrid = np.vstack(([lats.T],[lons.T])).T
>>> latLon_pairsGrid.shape
(94, 83, 2)
distance.cdist([sel_lat,sel_lon],latLon_pairsGrid,'euclidean')
Любая помощь или советы будут оценены
показать нам, что 'lons' и 'lats' выглядят и каковы их типы. Еще лучше: дает нам пример, который мы можем запустить на наших компьютерах и ожидаемый результат. – cd98
@ cd98 Я не уверен, что вы подразумеваете на примере, но, возможно, я не был достаточно ясен в своем вопросе. Значения sel_lat, sel_lon приведены выше, и это координаты, которые мне нужно найти для ближайших соответствующих индексов для сетки из файла coords.nc. Lons.shape = (93,83) и тот же с lats.shape. И это значит, что latLon_pairsGrid я сделал (93,83,2). Я надеюсь, что это достаточно ясно, я не уверен, что еще добавить – pwprnt
«не имеет формата, который он хочет», можете ли вы распечатать ошибку, пожалуйста, – Julius