Я пытаюсь найти оптимальный способ (максимальная производительность) для обработки координат и данных измерений, хранящихся в нескольких числовых массивах.
Мне нужно рассчитать расстояние от каждой точки сетки (lot, lon, altзначение в зеленом цвете на прикрепленном изображении) для каждого места измерения (широта, долгота, высота, диапазон от цели в сером цвете на прикрепленном изображении).Поскольку существуют сотни точек сетки и тысячи диапазонов измерений, которые нужно рассчитать для каждой точки сетки, я бы хотел перебрать массивы наиболее эффективным способом
![enter image description here](https://i.stack.imgur.com/BxImC.png)
Я пытаюсь решить, как сохранить измерения LLA для сетки и измерений, а затем, какой идеальный способ - рассчитать среднеквадратичную ошибку для каждой точки сетки на основе дельты между измеренным значением диапазона и фактическим диапазоном..
Буду очень признателен за любые идеи о том, как наилучшим образом сохранить эти значения, а затем выполнить итерацию по сетке для определения диапазона каждого измерения.Спасибо !!!
В настоящее время я использую сетку 2D для хранения значений LLA для сетки
# Create a 2D Grid that will be used to store the MSE estimations
# First, create two 1-D arrays representing the X and Y coordinates of our grid
x_delta = abs(xmax-xmin)/gridsize_x
y_delta = abs(ymax-ymin)/gridsize_y
X = np.arange(xmin,xmax+x_delta,x_delta)
Y = np.arange(ymin,ymax+y_delta,y_delta)
# Next, pass arrays to meshgrid to return 2-D coordinate matrices from the 1-D coordinate arrays
grid_lon, grid_lat = np.meshgrid(X, Y)
У меня есть точки LLA и значения диапазона из измерений, сохраненных в измерениикласс
measurement_lon = [measurement.gps.getlon() for measurement in target_measurements]
measurement_lat = [measurement.gps.getlat() for measurement in target_measurements]
measurement_range = [measurement.getrange() for measurement in target_measurements]
класс измерения
class RangeMeasurement:
def __init__(self, lat, lon, alt, range):
self.gps = GpsLocation(lat,lon,alt)
self.range = range
действительно плохой псевдокод для расчета диапазона (итеративный и очень медленный)
for i in len(grid_lon):
for j in len(measurement_lat):
range_error += distance(grid_lon[i],grid_lat[i],measurement_lon[j],measurement_lat[j])-measurement_range[j]