J'ai besoin d'appliquer le théorème des quatre couleurs dans une forme polygonale d'une manière que je n'ai pas besoin de choisir manuellement chaque couleur à mettre dans chaque région. Je souhaite savoir s'il existe une extension, un plug-in, un script ou une base de données qui peuvent être utilisés avec ArcGIS et ArcToolBox pour le faire mathématiquement ou par programme, donc je pourrais l'utiliser pour l'instant avec chaque carte que je viens de créer.
arcgis-desktop
arctoolbox
polygon-creation
color
four-color-theorem
Please_Dont_Bully_Me_SO_Lords
la source
la source
R
code de travail ) et une solution optimale (qui utilisera trois ou même deux couleurs si elles peuvent fonctionner) sur Mathematica . Cette solution est récursive; la réponse à mon message donne une solution de programmation linéaire. Manifold GIS possède depuis longtemps un algorithme à cinq couleurs intégré (quatre couleurs est difficile à faire; cinq couleurs est relativement simple à réaliser.)Réponses:
Tout d'abord, merci pour toutes les réponses et commentaires. Malheureusement, les outils existants n'étaient pas entièrement compatibles avec les dernières versions de QGIS et d'ArcGIS. J'ai donc fait ma propre solution en utilisant l'outil indiqué par @polygeo, le plugin QGIS de @Alexandre et le nom de l'algorithme (carte en quatre couleurs) de @Jens.
Voici mon code pour les personnes intéressées (pour ArcGIS mais la deuxième partie pourrait également être utilisée dans QGIS).
Notez que l'algorithme ne garantit pas que seules 4 couleurs sont utilisées: bien qu'il ait été prouvé que la solution existe, la "force brute" est nécessaire pour y parvenir. Dans mon cas, j'ai 7 couleurs, ce qui est assez petit. Le script pourrait avoir une boucle supplémentaire jusqu'à ce que la solution soit trouvée, mais je dois le faire pour des centaines de cartes et 7 couleurs est OK.
la source
Il existe un exemple de développeur VB6 et un outil de géotraitement ArcGIS 9.x, mais d'après les commentaires sur cette idée ArcGIS, ils ne fonctionnent pas à la version 10.0+.
Peut-être que quelqu'un serait intéressé à le porter.
Une solution QGIS appelée TopoColour est donnée dans les commentaires de cette question connexe: Polygones de couleur afin que chacun soit distinct de ses voisins
la source
Si vous utilisez QGIS, je pense que ce dont vous avez besoin est le plugin Coloration d'une carte .
Malheureusement, le plugin n'est disponible que pour la version QGIS 1.8, mais vous pouvez toujours télécharger et voir comment le code fonctionne!
la source
Il s'agit d'une adaptation de la réponse de @ radouxju en fonction. Il ajoutera un champ de couleur à la couche d'entités en entrée et calculera. Cela devrait fonctionner indépendamment des terminaisons de nom de champ de PolygonNeighbors (elles semblent être différentes pour les différents utilisateurs / entrées / versions d'arcgis (?))
la source