2012-02-17 20 views
12

Esta es una pregunta básica, pero desafortunadamente no pude encontrar el comando relevante en otro lugar.¿Cómo convertir un dataframe espacial a un dataframe normal?

¿Hay alguna manera de convertir una trama de datos de Puntos espacial a una trama de datos ordinaria en R.

por ejemplo, Si la trama de datos corriente es df con Lat, Lon como las coordenadas de localización que puedo obtener un df espacial como:

coordinates (df)= ~Lat + Lon 

¿Cómo es la inversa es posible o es posible?

Respuesta

21

as.data.frame() hace exactamente lo que busca:

library(sp) 
# Construct a SpatialPointsDataFrame 
data(meuse) 
xy <- meuse[1:2] 
df <- meuse[-1:-2] 
SPDF <- SpatialPointsDataFrame(coords=xy, data=df) 

# And then convert it (back) to a data.frame 
DF <- as.data.frame(SPDF) 
+0

Gracias por la respuesta. ¿Sabes cómo puedo convertir xy de SpatialCoordinates a valores estándar en grados? – Rotail

+0

Eso dependerá, por supuesto, del [sistema de referencia de coordenadas] (https://en.wikipedia.org/wiki/Space_reference_system) de las coordenadas x-y. En general, sin embargo, puede usar 'sp: spTransform()'. Aquí está [un ejemplo] (http://stackoverflow.com/a/18641016/980833); aunque sucede que va en la dirección opuesta (es decir, se está transformando lejos de long-lat), la idea es la misma. –

+0

y cómo puedo hacerlo retroceder? Intenté cambiar los valores en CRS ("+ proj = longlat + datum = WGS84"), no funciona. – Rotail

Cuestiones relacionadas