Simplifier les géométries (généralisation)

22

Quels sont les moyens recommandés pour simplifier les géométries? Garder à l'esprit les projections et simplifier les géométries d'état par exemple.

J'ai entendu parler de la conversion en une projection «équidistante» qui permet une simplification sans distorsion, puis de la reconvertir à la projection choisie.

John Weldon
la source
4
Je ne suis pas certain, mais "généralisation" pourrait être une balise plus descriptive pour cela. Simplify, au moins dans le contexte ArcGIS, est une méthode pour garantir l'exactitude topologique. Wikipedia dit que la simplification fait partie de la généralisation cartographique. en.wikipedia.org/wiki/Cartographic_generalization
Kirk Kuykendall
Great suggestion @Kirk
John Weldon

Réponses:

11

Comme l'a mentionné Glennon, l'algorithme standard pour ce faire est Douglas-Peucker , qui est l'algorithme par défaut utilisé dans des logiciels tels que PostGIS (ie GEOS) via St_Simplify, ArcGIS via Generalizeet GRASS via v.generalize. L'article Wikipedia contient également un lien vers une implémentation Python .

GRASS prend en charge un certain nombre d'algorithmes différents, comme expliqué dans la page d'aide de v.generalize .

Sur la question de la projection, je pense que dans ce cas, c'est un hareng rouge qui peut être ignoré. Le seul problème qui me vient à l'esprit est la densification potentielle des lignes pour éviter qu'elles ne soient trop simplifiées.

scw
la source
5

Vous pourriez étudier l'algorithme Douglas – Peucker - une méthode pour réduire le nombre de points dans une courbe approximée par une série de points. Voir: http://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm

Que vous remplaciez votre géométrie d'origine ou que vous créiez un magasin secondaire variera selon l'utilisation.

glennon
la source
3

Si par "simplification", vous entendez une simple réduction du nombre de points, utilisez un algorithme de filtrage de base, comme le filtre Douglass peucker. Un lien utile pour cela: http://mapshaper.org/

Si par "simplification", vous entendez obtenir une forme plus simple, les algorithmes de filtrage ne sont pas toujours adaptés. Des algorithmes de généralisation plus avancés devraient être utilisés. Certains documents sur de tels algorithmes peuvent être trouvés ici: http://generalisation.icaci.org/ , avec quelques exemples de résultats: http://generalisation.icaci.org/index.php/results . Seuls quelques-uns de ces algorithmes sont mis en œuvre dans les logiciels SIG commerciaux courants. Certains sont accessibles en utilisant ceci: http://webgen.geo.uzh.ch/

julien
la source
les sites aci.ign.fr ne sont pas accessibles. Savez-vous où nous pouvons trouver des exemples de "l'algorithme de généralisation avancée" dont vous parlez?
radouxju
L'url a changé, vérifiez: generalisation.icaci.org
julien
2

Si vous simplifiez la géométrie en raison des limitations de la puissance de traitement informatique, vous pouvez envisager de générer des mipmaps avec des masques alpha associés pour chaque géométrie à différents niveaux.

Jon Bringhurst
la source
Très intéressant, seriez-vous prêt à développer?
John Weldon
Eh bien, pour ce faire, vous devez pixelliser chaque géométrie vectorielle en une image bitmap pour chaque niveau que vous autorisez les utilisateurs à zoomer et dézoomer sur la carte. Ensuite, au lieu de dessiner la géométrie vectorielle pour chaque niveau encore et encore, vous devez simplement rendre le bitmap à la place. Ainsi, le calcul de pixellisation de la géométrie (qui est coûteux si vous avez une tonne de sommets) est effectué à l'avance au lieu de chaque fois que l'utilisateur effectue une action. Le masque alpha apparaît dans l'image lorsque vous dessinez le bitmap - il est utilisé de sorte que seule la forme elle-même est dessinée.
Jon Bringhurst
1

C'est un sujet difficile, car vous devez prendre en compte une sorte de résolution de votre ensemble de données. Quand un sommet de géométrie est-il égal à un autre sommet? Je n'ai jamais entendu parler de conversion et de reconversion, même si ce serait un test intéressant.

Les géométries simples sont, selon OGC, des géométries qui ne s'entrecoupent pas, et dans le cas des polygones, des géométries correctement orientées, pour les coquilles extérieures et les coquilles intérieures et par la suite.

George Silva
la source