У меня есть пример игрушки, в которой используется numpy и внешний пакет PyProj. Lat и lon - это двумерные массивы, которые содержат координаты некоторой информации, относящейся к предметной области. Что я хочу сделать, так это вычислить расстояние на сфере от центральной точки, которую я выбираю произвольно. Форма lat_0 и lon_0 такая:
(2000,1)
Но вызов API inv этого не устраивает. У меня ошибка времени выполнения -
RuntimeError: Buffer lengths not the same
Он хочет массив формы
(2000,50).
Поэтому я хочу, чтобы lat_0 и lon_0 имели ту же форму, что и lon и lat, со всеми постоянными значениями, которые являются центральной широтой и долготой. Каков наиболее эффективный способ увеличить столбцы lon_0 и lat_0 и заполнить его центральным значением, чтобы оно имело ту же форму, что и lon и lat, без использования циклов for?
import numpy as np
from pyproj import Geod
lat = np.empty((2000,50))
lat.fill(1)
lon = np.empty((2000,50))
lon.fill(1)
center = int(np.floor(len(lon[-1]) / 2.))
lon_0 = lon[:,center][...,np.newaxis]
lat_0 = lat[:,center][...,np.newaxis]
g = Geod(ellps='WGS84')
distance = g.inv(lon,lat,lon_0,lat_0,radians=True)