7 votos

¿Cómo se cruzan las líneas y polígonos en R?

Después de una respuesta acerca de la intersección de polígonos con líneas para cortar un polígono en pequeñas polígono unidades (en QGIS), quería probar lo mismo en R. sin Embargo, me parece no puede encontrar un método que funcione!

over() no tiene un método de los polígonos de intersección con las líneas; encontré gIntersection() de rgeos pero falla:

require(sp)
require(rgeos)

poly <- readShapePoly("polygon.shp")
lines <- readShapeLines("lines.shp")

chopped <- gIntersection(poly, lines)

Dar:

Error in RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, "rgeos_intersection") : 
  UnsupportedOperationException: GeometryGraph::add(Geometry *): unknown geometry type: N4geos4geom18GeometryCollectionE

Actualización: Aquí hay un enlace a los archivos en cuestión.

Actualización 2: PaulG notas que funciona y después de la actualización de rgeos y R me deshice de que el error anterior. Gracias PaulG ...

Sin embargo, gIntersection resultados en un SpatialLines objeto no importa si me pongo en el (poli, líneas) o (líneas, poli) mientras que en la operación que me hicieron en QGIS (o de Arco, en los malos tiempos de antaño) dividir un polígono con las líneas y el resultado en un polígono de objeto, no de la línea.

Así que, ¿cómo me cortan mi polígono con las líneas y obtener los polígonos ?

4voto

Mohit Jain Puntos 145

Usted podría intentar usando RSAGA. No soy muy familiarizado con ella, pero el comando sería algo así:

rsaga.geoprocessor("libshapes_polygons", "Polygon-Line Intersection", list(POLYGONS="polygonshape.shp",LINES="lineshape.shp",INTERSECT="result.shp"))

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by: