Je voudrais généraliser un SpatialPolygonsDataFrame
en R pour rendre le traçage plus efficace. Les polygones dont je dispose se traduisent par d'énormes tracés pdf qui sont lents à charger et difficiles à intégrer dans un document.
J'ai essayé d'utiliser la gSimplify
fonction du rgeos
package, mais malheureusement elle ne conserve pas la topologie des polygones.
Y a-t-il une alternative que je peux utiliser?
r
topology
generalization
yellowcap
la source
la source
gSimplify()
a un paramètre facultatiftopologyPreserve
qui est par défautFALSE
. Avez-vous essayé de régler celaTRUE
?Réponses:
Il y a une discussion à ce sujet sur r-sig-geo . Pour une réponse définitive, vous devriez vous y poser, car il y a des peuples qui connaissent les intuitions du R. spatial
Mais, vous pouvez également le faire dans les applications de bureau SIG (exporter la forme à l'aide de la commande writeOGR à partir de rgdal ou writePolyShape () à partir de maptools) comme QuantumGIS, GRASS ou SAGA.
Pour QuantumGIS, utilisez les outils vectoriels / géométriques / simplifiez les géométries (j'ai testé et ne préserve pas la topologie, mais appliqué au fichier de formes Roumanie admin1, il a l'air bien avec 2000 nœuds).
Pour GRASS, utilisez v.generalize (lisez le manuel pour plus d'informations sur les algorithmes, il y en a).
Pour SAGA, vous devez d'abord convertir le polygone en ligne (Formes - Lignes / Convertir les polygones en lignes), puis simplifier les lignes (Formes Lignes / Simplification des lignes), et enfin convertir les lignes en polygones (Formes - Polygones / Convertir les lignes en polygones). J'ai testé cela et les résultats ont préservé la topologie.
Bravo et bonne chance,
la source
Il y a maintenant le merveilleux
rmapshaper
package d'Andy Teucher qui inclut une fonction de simplification qui "effectue une simplification multi-polygone tenant compte de la topologie".De leur repo github, un exemple d'utilisation:
où
states_sp
est unspatialPolygons*
objet.Voir le package README pour plus d'informations: https://github.com/ateucher/rmapshaper
la source
cela devrait aider:
gSimplify(..., topologyPreserve=T)
duGEOS
paquetla source
gSimplify
ne conserve pas vraiment la topologie sur plusieurs polygones. Je pense que cela concerne davantage la topologie des polygones simples ou multiples. Pour un fichier de formes contenant de nombreux polygones, la topologie n'est pas conservée.