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.

¿Cómo transformar una lista R en polígonos?

El objetivo es convertir la fila GEOMETRY en las siguientes alternativas:

  1. Obtener el polígono como POLYGON(LON1,LAT1 LON2,LAT2)
  2. Obtener la lista con latitud y longitud separadas
  3. Finalmente, transformar toda la columna en un objeto sf para obtener la columna de geometría
parsed <- list( 
  c(-72.6689780388482, -72.6697951984133,-37.8155440677891, -37.8164165487739)
)
result_b <- list( 
  lat = c(-72.6689780388482, -72.6697951984133 ) ,
  lon = c( -37.8155440677891, -37.8164165487739)
)
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para lograr el objetivo de convertir la columna GEOMETRY en las tres alternativas descritas, podemos seguir estos pasos utilizando R:

    1. Cargar los datos desde el archivo .RDS en un dataframe
    data <- readRDS("nombrearchivo.RDS")
    
    1. Convertir la columna con los datos de geometría de formato string a una lista
    data$GEOMETRY <- lapply(data$GEOMETRY, function(x) eval(parse(text=x)))
    
    1. Convertir la lista de coordenadas a un formato de polígono
    data$POLYGON <- lapply(data$GEOMETRY, function(x) {
      coordenadas <- paste(paste(x[1:length(x)/2], x[((length(x)/2)+1):length(x)], sep=",", collapse=" "))
      return(paste("POLYGON((", coordenadas, "))"))
    })
    
    1. Dividir las coordenadas en listas separadas de latitud y longitud
    data$LAT <- lapply(data$GEOMETRY, function(x) x[1:length(x)/2])
    data$LON <- lapply(data$GEOMETRY, function(x) x[((length(x)/2)+1):length(x)])
    
    1. Utilizar el paquete sf para transformar los datos en un objeto sf con una columna “geometry”
    library(sf)
    data_sf <- st_as_sf(data, coords = c("LAT", "LON"), crs = 4326)
    

    Ahora tenemos tres formas alternativas de representar los datos de geometría:

    1. Una columna “POLYGON” con las coordenadas en formato de polígono
    2. Columnas “LAT” y “LON” con las coordenadas separadas en listas de latitud y longitud
    3. Un objeto sf con una columna “geometry” que contiene los datos de geometría

Comments are closed.