Estoy tratando de encontrar la forma óptima (el rendimiento más rápido) para procesar datos de coordenadas y mediciones almacenados en varias matrices numpy.Procesamiento de matriz de rendimiento rápido en Numpy/Python
Necesito calcular la distancia desde cada punto de la grilla (lote, longitud, valor alt en verde en la imagen adjunta) a cada ubicación de medición (lat, lon, alt, rango desde el objetivo en gris en la imagen adjunta). Ya que hay cientos de puntos de la rejilla, y miles de rangos de medida para calcular para cada punto de la cuadrícula, me gustaría recorrer las matrices de la manera más eficiente posible
Estoy tratando de decidir entre cómo almacenar las medidas de LLA para la grilla y las mediciones, y luego cuál es la forma ideal de calcular el error cuadrado medio para cada punto de la grilla en función del delta entre el valor de rango medido y el rango real.
Cualquier idea sobre cómo almacenar mejor estos valores, y luego iterar a través de la cuadrícula para determinar el rango de cada medición sería muy apreciada. ¡¡¡Gracias!!!
Actualmente, estoy usando un meshgrid 2D para almacenar los valores LLA para la red
# 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)
I tienen los puntos de LLA y valores de rango de las mediciones almacenadas en una clase de medición
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]
Clase de medición
class RangeMeasurement:
def __init__(self, lat, lon, alt, range):
self.gps = GpsLocation(lat,lon,alt)
self.range = range
pseudocódigo realmente malo para el cálculo de rango (iterativ e y muy lento)
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]
Por desgracia, no se puede publicar la imagen sin embargo, ya que el usuario AMA nuevo mensaje mí si está interesado y puedo enviarle por correo electrónico la imagen de ejemplo – Alex
Puede publicarlo en algún sitio para compartir imágenes y poner el enlace, de manera que uno de nosotros con suficiente reputación pueda integrarlo correctamente en la publicación. – mac
Entendido, gracias por la oferta. – Alex