¿Cómo generalizar los polígonos espaciales y conservar la topología en R?

18

Me gustaría generalizar un SpatialPolygonsDataFrame en R para hacer que el trazado sea más eficiente. Los polígonos que he generado dan como resultado enormes diagramas de PDF que se cargan lentamente y son difíciles de integrar en un documento.

Intenté usar la función gSimplify del paquete rgeos , pero desafortunadamente no conserva la topología de los polígonos.

¿Hay alguna alternativa que pueda usar?

    
pregunta yellowcap 02.08.2012 - 12:22

3 respuestas

7

Hay una discusión sobre esto en r-sig- geo . Para obtener una respuesta definitiva, debe preguntar allí, porque hay pueblos que conocen los conocimientos de la R. espacial

Pero, también puede hacer esto en aplicaciones de escritorio GIS (exportar la forma usando el comando writeOGR desde rgdal o writePolyShape () desde maptools) como QuantumGIS, GRASS o SAGA.

Para QuantumGIS use Vector / Herramientas de geometría / Simplificar geometrías (he probado y no conservo la topología, pero aplicado a shapefile admin1 de Rumania, se ve bien con 2000 nodos).

Para el uso de GRASS v.generalize (lea el manual para obtener información sobre los algoritmos, hay algunos).

Para SAGA, primero debe convertir el polígono en línea (Formas - Líneas / Convertir polígonos en líneas), luego simplificar las líneas (Formas Líneas / Simplificación de líneas) y finalmente convertir las líneas en polígonos (Formas - Polígonos / Convertir líneas en polígonos ). He probado esto y los resultados han conservado la topología.

Saludos y buena suerte,

    
respondido por el Niculita Mihai 02.08.2012 - 17:09
2

Ahora existe el maravilloso paquete rmapshaper de Andy Teucher que incluye una función de simplificación que "realiza una simplificación de polígonos poligonal con conciencia topológica".

Desde su repositorio github, un ejemplo de uso:

states_simp <- ms_simplify(states_sp)

donde states_sp es un objeto spatialPolygons* .

Consulte el archivo README para obtener más información: enlace

    
respondido por el Phil 17.08.2016 - 20:04
0

que debería ayudar:

  • gSimplify(..., topologyPreserve=T) del paquete GEOS
respondido por el petermeissner 29.05.2013 - 13:51

Lea otras preguntas en las etiquetas