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") 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) > URL: http://oscarperpinan.github.io[[alternative HTML version deleted]]
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 ejemplo https://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") > 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) > > URL: http://oscarperpinan.github.io > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- --- Beatriz Martínez @maritrinez <https://twitter.com/maritrinez> [[alternative HTML version deleted]]
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") 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)> URL: http://oscarperpinan.github.io[[alternative HTML version deleted]] _______________________________________________ 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 [[alternative HTML version deleted]]
Apparently Analagous Threads
- Pregunta sobre manipulación de shapefile
- Pregunta sobre manipulación de shapefile
- Pregunta sobre Simplificación de Poligonales con R
- Pregunta sobre Simplificación de Poligonales con R
- Hoy reunión del "Grupo de Usuarios de R de Madrid - martes 29-octubre"....