[R-br] Calculo Distancia entre Coordenadas [loop]

Bruno Rhuan rhuanjayme em gmail.com
Seg Dez 17 14:23:47 -02 2018


Boa Tarde,

Estou  escrevendo um algorítimo que calcule a distância entre uma serie de
coordenadas e retorne qual o ponto mais próximo.

Para isso, o código utiliza dois datasets de coordenadas geográficas
(lat/long) e o calculo da distancia é feito utilizando a biblioteca
"geosphere".

Porém, basicamente todos os resultados do algorítimo sempre apontam para a
ultimo ponto do segundo dataset como sendo o mais próximo, assim creio ter
algum erro no loop.

Alguma sugestão?

Abaixo o código

______

#biblioteca necessária
#install.packages("geosphere")
library("geosphere")

#carregar arquivos
x <- read.csv(file.choose(),sep=";",dec=",") # carregar lista de pontos
nominais TIM
y <- read.csv(file.choose(),sep=";",dec=",") # carregar base de sites

#converter site id em characther
x$SiteID <- as.character(x$SiteID)
y$SITE.ID <- as.character(y$SITE.ID)

#Mostrar tabelas
View(y)
View(x)

dista1 <- c() #distancia do ponto nominal ao site

# Calculo Distancia
for (i in 1:216) {
  coord1 <- c(x$LONG[i],x$LAT[i])
  for (j in 1:11195 ) {
    coord2 <- c(y$Longitude[j],y$Latitude[j])
    dista1[j] <- as.numeric(distm(coord1,coord2, fun = distGeo))
  #Calculo da menor distancia
    if (j>1) {
    k <- j-1
      if (dista1[j]<dista1[k]) {
      menor_dist <- dista1[j]
      x$Distancia[i] <- menor_dist
      x$SiteID[i] <- y$SITE.ID[j]
      }
      else {
        menor_dist <- dista1[k]
        x$Distancia[i] <- menor_dist
        x$SiteID[i] <- y$SITE.ID[k]
      }
     }
  }
}

write.csv(x, "Resultado.csv", row.names = FALSE)

_______________

Resultado retornado:

ï*..END_ID* *LAT* *LONG* *Distancia (m)* *SiteID*
BASDR_1 -1.296.434 -3.847.421 144.669.250.579.953 YBARWL
BALFS_2 -1.289.767 -3.832.365 146.401.362.045.206 YBARWL
CEFLA_3 -377.709 -3.855.802 222.607.630.292.628 YBARWL
Distancia (m) = distancia ao ponto mais próximo
SiteID = nome do ponto mais próximo.

At.te

Bruno
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20181217/008788d7/attachment.html>


Mais detalhes sobre a lista de discussão R-br