Crear un SpatialPointsDataFrame con R

R como hemos visto es capaz de manejar datos espaciales incluso los podemos cargar usando un shp , GEOJSON,  Kml, GML entre otros. No obstante hay veces que necesitamos crear un SpatialPointsDataFrame utilizando los datos u objetos que hemos ido generando con R. Con este fin necesitaremos:

  • Unas coordenadas para los puntos
  • Un DataFrame  que contenga los datos
  • El sistema de coordenadas con el que queremos trabajar

Vamos a ponernos manos a la obra creando las coordenadas de los puntos y los datos asociados a cada punto. Ten en cuenta que deben estar en el mismo orden.

#install de package in  R , just if you don't have it already
install.packages("sp")
#load the library
library('sp')
#------------------------------------
#Create a matrix with the coordinates
#------------------------------------

#coordinates as vector
coor1=c(48,0)
coor2=c(48.5,0)

#coordinate as matrix
coordinates=rbind(coor1, coor2)

#------------------------------
# data for each coordinate
#-----------------------------
mydata=as.data.frame(rbind("point1", "point1"))

El siguiente paso es definir el sistema de coordenadas para nuestros puntos. Podemos usar la web http://spatialreference.org/ref/epsg/wgs-84/ para buscar el sistema de coordenadas y su definición tanto por código EPSG como en formato proj4

#----------------------------
#Corrdinate reference system
#----------------------------
#There are to options todefine de CRS
#visit http://spatialreference.org/ref/epsg/wgs-84/

#just with the epsg code
myCRS=CRS("+init=epsg:4326")
#proj4 (recomended)
myCRS=CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_d

Finalmente construimos nuestro SpatialPointsDataFrame con los tres elementos que hemso creado

#--------------------------------------
#built my SpatialPointsDataFrame
#--------------------------------------

mypoints=SpatialPointsDataFrame(coords=coordinates,data=mydata, proj4string = myCRS)

plot(mypoints, axes=TRUE)

Si hacemos el plot obtendremos lo que aparece en la imagen de abajo.
rplot01

Para saber mas a cerca de como manejar los SpatialPointsDataFrame tienes esta entrada del blog

Descárgate el código en este enlace.

Anuncis

Deixa un comentari

Fill in your details below or click an icon to log in:

WordPress.com Logo

Esteu comentant fent servir el compte WordPress.com. Log Out / Canvia )

Twitter picture

Esteu comentant fent servir el compte Twitter. Log Out / Canvia )

Facebook photo

Esteu comentant fent servir el compte Facebook. Log Out / Canvia )

Google+ photo

Esteu comentant fent servir el compte Google+. Log Out / Canvia )

Connecting to %s