es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Calculando la distancia entre las coordenadas y el punto de referencia.

Quiero calcular la distancia entre lat1, lon1 y un punto de referencia (52.92343, 5.04127). Quiero hacer esto para cada fila en mi conjunto de datos, por lo que la distancia se calculará con la referencia en cada fila. Eso significa que crearé una nueva columna con la distancia en km. Puedo imaginarme que tendré que usar algún tipo de función de loop, pero hasta ahora no he descubierto cómo hacerlo. Creo que tendré que usar los paquetes geodist o geosphere, pero desafortunadamente no tuve éxito. ¿Cómo puedo calcular estas distancias?

“`
estructura(list(Día = c(“26”, “05”, “17”, “18”, “19”, “19”), Mes = c(“07”,
“08”, “08”, “08”, “08”, “08”), Año = c(“2021”, “2021”, “2021”,
“2021”, “2021”, “2021”), Ubicación.Receptor = c(“Den Oever Ijsselmeer”,
“Medemblik Ijsselmeer, gemaal”, “Den Oever Ijsselmeer”, “Den Oever Ijsselmeer”,
“Den Oever Ijsselmeer”, “Den Oever Ijsselmeer”), Transmisor = c(“A69-1602-59776”,
“A69-1602-59777”, “A69-1602-59776”, “A69-1602-59776”, “A69-1602-59769”,
“A69-1602-59776”), Lote.ubicación = c(“Den Oever”, “Den Oever”,
“Den Oever”, “Den Oever”, “Den Oever”, “Den Oever”), NºLote = c(8,
9, 8, 8, 1, 8), Latitud = c(52.92343, 52.76098, 52.92343, 52.92343,
52.92343, 52.92343), Longitud = c(5.04127, 5.12172, 5.04127,
5.04127, 5.04127, 5.04127), Fecha = estructura(c(18834, 18844,
18856, 18857, 18858, 18858), class = “Date”)), row.names = c(1095729L,
1180267L, 1072657L, 1092667L, 716601L, 1077415L), class = “data.frame”)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para calcular la distancia entre las columnas de Latitud y Longitud del conjunto de datos y un punto de referencia (52.92343, 5.04127), podemos utilizar el paquete geosphere en R.

    library(geosphere)
    
    # Definir punto de referencia
    refLat <- 52.92343
    refLon <- 5.04127
    refPoint <- c(refLon, refLat)
    
    # Crear nueva columna con la distancia en km
    df$distancia <- apply(df[, c("Latitud", "Longitud")], 1, function(x) distHaversine(x, refPoint)/1000)
    

    Este código crea una nueva columna en el conjunto de datos llamada distancia, que calcula la distancia entre el punto de referencia y las coordenadas de latitud y longitud en cada fila utilizando la función distHaversine del paquete geosphere. La división por 1000 se utiliza para convertir la distancia de metros a kilómetros.

    Ahora debería ser capaz de calcular la distancia entre el punto de referencia y cada fila de coordenadas en el conjunto de datos.

Comments are closed.