[R-es] FW: Pregunta sobre manipulación de shapefile
Es muy útil. Gracias? Isidro Hidalgo Arellano Observatorio Regional de Empleo ConsejerÃa de Empleo y EconomÃa http://www.jccm.es De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r-project.org] En nombre de Francisco RodrÃguez Enviado el: jueves, 09 de octubre de 2014 9:59 Para: r-help-es en r-project.org Asunto: [R-es] FW: Pregunta sobre manipulación de shapefile Hola, buenos dÃas: Este correo lo mando a la lista de usuarios debido a que en el anterior mandé uno demasiado "gordo", el word es idéntido al anterior, sólo que he quitado una de las figuras Hola buenos dÃas: Oscar he seguido tu enlace porque me resultaba más claro y en el word puedes observar los resultados. En principio me queda abierta una última cuestión que está en el documento, pero ya con las indicaciones que me habéis ofrecido, tanto tú como Beatriz, puedo tirar adelante sin mayor problema. SabÃa que tenÃa que haber un modo en R para trabajar esto con unas pocas lÃneas de código y me habéis dado la solución Por tanto no me queda más que agradecer la ayuda prestada para este problema y la relación de links a temas relacionados que es francamente utilÃsima Un saludo y de nuevo gracias por todo _____ Date: Thu, 9 Oct 2014 07:49:30 +0200 Subject: Re: [R-es] Pregunta sobre manipulación de shapefile From: oscar.perpinan en upm.es To: fjroar en hotmail.com CC: mtnezb en gmail.com; r-help-es en r-project.org Como bien dice Beatriz, la función que buscas es fortify. Los shapefiles los obtienes como SpatialPolygonsDataFrame una vez que usas readShapePoly, como en tu ejemplo. Por añadir más recursos, tienes aquà un ejemplo de uso de fortify escrito por el autor de ggplot2: https://github.com/hadley/ggplot2/wiki/plotting-polygon-shapefiles No obstante, te recomiendo echar un ojo a esta discusión sobre el uso de ggmap y las proyecciones: https://stat.ethz.ch/pipermail/r-sig-geo/2014-April/020911.html, que luego Agustin Lobo resumió en dos tutoriales (centrados en datos raster, pero que igualmente puede usarse con datos vectoriales): http://rpubs.com/alobo/vectorOnraster http://rpubs.com/alobo/rasterOnGM Saludos. Oscar. El 08/10/2014 23:42, "Francisco RodrÃguez" <fjroar en hotmail.com> escribió: De hecho ahora recuerdo que la dificultad que encontré es que no supe pasar esos shapefile en concreto al formato SpatialPolygonDataFrame, bueno repaso todo y como os dije, os informo debidamente Gracias por la atención en todo caso From: fjroar en hotmail.com To: mtnezb en gmail.com Date: Wed, 8 Oct 2014 21:34:27 +0000 CC: oscar.perpinan en upm.es; r-help-es en r-project.org Subject: Re: [R-es] Pregunta sobre manipulación de shapefile Gracias Beatriz, efectivamente, lo que indicas en tu ejemplo es lo que obtengo al final de mi proceso. En todo caso pruebo tu opci?n con mis datos, si es como imagino seguro que es m?s r?pida de montar y m?s elegante que tratar el resultado de un sink() (recuerdo que en su momento lo intent? con fotify pero no supe bien como atacarlo, no conoc?a el enlace que me mandas, por tanto lo pruebo de nuevo). Ma?ana espero informaros Un saludo y gracias de nuevo From: mtnezb en gmail.com Date: Wed, 8 Oct 2014 22:22:59 +0200 Subject: Re: [R-es] Pregunta sobre manipulaci?n de shapefile To: fjroar en hotmail.com CC: oscar.perpinan en upm.es; r-help-es en r-project.org Hola: No s? si he entendido bien, pero: con la funci?n fortify del paquete ggplot, conviertes un SpatialPolygonDataFrame en un data.frame corriente como el que t? has construido (con una columna adicional que agrupa los puntos que corresponden al mismo pol?gono). A ese data.frame luego le puedes a?adir las columnas que quieras y pintarlo encima de un tile de google maps (siempre que la proyecci?n del SpatialPolygon se establezca a lon lat) Aqu? tienes un ejemplohttps://github.com/maritrinez/R_Maps_workshop/blob/master/maps_with_R.md#2-plot-a-map-on-a-street-map El enlace deber?a llevarte al segundo punto del markdown, si no va bien busca "2. Plot a map on a street map", que el documento es largo! Saludos para todos El 8 de octubre de 2014, 21:31, Francisco Rodr?guez <fjroar en hotmail.com> escribi?: Oscar, al final no he podido esperar hasta ma?ana Con: library(maptools)library(sp) poligonos <- readShapeLines("C:\\...\\DATOS\\MUNICIPIO.shp") sink("C:\\ ... \\DATOS\\MUNICIPIO.csv <file:///\\DATOS\MUNICIPIO.csv> ") coordinates(poligonos) Consigo un fichero con la suficiente estructura para tratarlo f?cilmente y de una tacada montar la tabla .csv tal y como he indicado en un correo anterior Necesito el .csv aparte para utilizarlo y manipularlo despu?s en otras librer?as. Aunque con tu respuesta soy capaz de crear una funci?n que permite la generaci?n de la estructura que te he indicado de un paso de modo totalmente automatizado, ?Existe alguna funci?n que haga la conversi?n directamente? (Simplemente es para que no re-invente yo mismo la rueda) Mi intenci?n es usar despu?s ggmap con ggplot2 Un saludo y gracias en todo caso, con tu indicaci?n ya te digo, dar soluci?n a mi objetivo de crear algo que directamente me lea los ficheros de modo como yo quiero en un solo paso y todo dentro de R (como debe ser)
From: oscar.perpinan en upm.es
To: fjroar en hotmail.com
CC: r-help-es en r-project.org
Subject: Re: [R-es] Pregunta sobre manipulaci?n de shapefile
Date: Wed, 8 Oct 2014 19:01:29 +0200
Hola,
Cuando usas readShapPoly obtienes un objeto de clase
SpatialPolygonsDataFrame. Si lo que necesitas es a?adir nuevas columnas,
puedes hacerlo como har?as con cualquier data.frame. Usando el ejemplo
que viene en su p?gina de ayuda, a?ado una nueva variable llamada test:
library(maptools)
xx <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1],
IDvar="FIPSNO", proj4string=CRS("+proj=longlat +ellps=clrk66"))
xx$test <- rnorm(nrow(xx))
Tambi?n te puede interesar la funci?n spCbind, que te permite unir un
Spatial*DataFrame con un data.frame.
Finalmente, si necesitas las coordenadas del centroide de cada pol?gono,
puedes usar coordinates:
coordinates(xx)
Pero si necesitas las coordenadas de todos las l?neas es m?s f?cil si
lees el mismo fichero con readShapeLines, y usas de nuevo coordinates. Ahora
obtendr?s una lista con las coordenadas de cada uno de los pol?gonos.
Saludos.
Oscar.
--
Oscar Perpi??n Lamigueiro
Dpto. Ingenier?a El?ctrica (ETSIDI-UPM)
Grupo de Sistemas Fotovoltaicos (IES-UPM)
_______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es -- ---Beatriz Mart?nez en maritrinez _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es