Réduisez la résolution d'un fichier de formes dans R (ou QGIS si nécessaire)

12

J'utilise des fichiers de formes des frontières des États américains de NHGIS pour créer des cartes en R. Ces fichiers de formes ont une résolution beaucoup plus élevée que celle dont j'ai besoin pour créer des cartes à l'échelle du pays: plus de 2 millions d'observations pour un fichier. Existe-t-il un moyen de réduire la résolution de ces fichiers de formes dans R? Si nécessaire, je peux le faire à la place dans QGIS.

Lincoln Mullen
la source
Pouvez-vous expliquer plus. La résolution est associée à l'imagerie. Voulez-vous dire qu'il y a trop de nœuds dans un polygone, fournissant trop de détails? Ou est-ce qu'il y a trop de points dans un fichier de formes de points?
Ryan Garnett
2
@Ryan Bien que la résolution soit en effet associée à l'imagerie, c'est un concept qui a également du sens pour les données vectorielles. Pour les entités polylignes et polygonales, il peut être estimé en termes de nombre de sommets utilisés par unité de longueur d'arc. La résolution ne peut pas toujours être déterminée avec précision en inspectant les données vectorielles (considérons un ensemble d'entités ponctuelles à haute résolution mais largement espacées, par exemple), d'où la résolution est généralement trouvée en consultant les métadonnées appropriées.
whuber
Je veux dire qu'il y a beaucoup plus de points dans le fichier de formes que nécessaire pour faire une carte d'une nation. Je voudrais ce niveau de détail pour faire, disons, une carte d'une ville. La raison pour laquelle cela m'importe, c'est que la génération de parcelles est lente et donc longue à itérer.
Lincoln Mullen

Réponses:

9

Vous pouvez utiliser à gSimplifypartir du rgeospackage, et si vous ajoutez l' topologyPreserve=TRUEindicateur, il conservera la topologie.

Notez que vous pouvez toujours vous retrouver avec des lignes qui se chevauchent - nous avons besoin d'une implémentation de cet algorithme DP robuste dans R:

http://www.sciencedirect.com/science/article/pii/S0098300413002380

[ce lien peut-être derrière un mur payant]

Spacedman
la source
+1 Bon à savoir. Les rgeosdocuments se trouvent sur cran.r-project.org/web/packages/rgeos/rgeos.pdf .
whuber
1

Une méthode standard pour "éclaircir" les formes linéaires (y compris les limites des polygones) est l' algorithme Douglas-Peucker . Au moins deux Rpackages implémentent cela: dpdans le package shapefiles et thinnedSpatialPolydans le package Guerry .

Notez que l'amincissement des polygones adjacents crée généralement de légers écarts et chevauchements dans leurs limites: il ne respecte pas les relations topologiques entre eux. Je ne connais aucun Rpackage qui conserve la topologie lors de l'amincissement. À des fins de cartographie à petite échelle comme celles-ci, cela ne devrait pas être un problème grave.


Par ailleurs, parce que personne ne sait plus prononcer l'allemand :-), Tom Poiker a changé l'orthographe de son nom il y a quelque temps.

whuber
la source
Vous devez être très prudent lorsque vous "éclaircissez" la géométrie. Si vous avez plusieurs couches qui partagent des limites, l'amincissement peut créer des lacunes, provoquant des erreurs visuelles et de précision. Un amincissement excessif peut rendre les limites irrégulières et simplifiées. Vous voudrez jouer et tester avec les tolérances dans le simplifier.
Ryan Garnett