Ich muss das Vier-Farben-Theorem in einer polygonalen Form so anwenden , dass ich nicht jede Farbe manuell auswählen muss, um sie in die einzelnen Bereiche einzufügen. Ich möchte wissen, ob es Erweiterungen, Plug-Ins, Skripte oder Datenbanken gibt, die mit ArcGIS und ArcToolBox mathematisch oder programmatisch verwendet werden können, sodass ich sie jetzt für jede Karte verwenden kann, die ich erstellen möchte.
arcgis-desktop
arctoolbox
polygon-creation
color
four-color-theorem
Please_Dont_Bully_Me_SO_Lords
quelle
quelle
R
Arbeitscode) und eine optimale Lösung (die drei oder sogar zwei Farben verwendet, wenn sie funktionieren) für Mathematica veröffentlicht . Diese Lösung ist rekursiv; Die Antwort auf meinen Beitrag gibt eine lineare Programmierlösung. In Manifold GIS ist seit langem ein Fünf-Farben-Algorithmus integriert. (Vierfarben sind schwierig,Antworten:
Zunächst einmal vielen Dank für alle Antworten und Kommentare. Leider waren die vorhandenen Tools nicht vollständig mit den neuesten Versionen von QGIS und ArcGIS kompatibel. Aus diesem Grund habe ich meine eigene Lösung mit dem von @polygeo angegebenen Tool, dem QGIS-Plugin von @Alexandre und dem Namen des Algorithmus (vierfarbige Karte) von @Jens erstellt.
Hier ist mein Code für Interessenten (für ArcGIS, aber der zweite Teil könnte auch in QGIS verwendet werden).
Beachten Sie, dass der Algorithmus nicht garantiert, dass nur 4 Farben verwendet werden: obwohl nachgewiesen wurde, dass die Lösung existiert, ist die "rohe Kraft" erforderlich, um dies zu erreichen. In meinem Fall habe ich 7 Farben, was klein genug ist. Das Skript könnte eine zusätzliche Schleife haben, bis die Lösung gefunden ist, aber ich muss es für Hunderte von Karten und 7 Farben tun, ist OK.
quelle
Es gibt ein VB6-Entwicklerbeispiel und ein ArcGIS 9.x-Geoverarbeitungswerkzeug, aber aus den Kommentaren zu dieser ArcGIS-Idee geht hervor, dass sie mit 10.0+ nicht funktionieren.
Vielleicht wäre jemand daran interessiert, es zu portieren.
In den Kommentaren zu dieser verwandten Frage wird eine QGIS-Lösung namens TopoColour angegeben : Färben Sie Polygone so, dass sich jedes von seinen Nachbarn unterscheidet
quelle
Wenn Sie QGIS verwenden, brauchen Sie meines Erachtens das Coloring a map-Plugin .
Leider ist das Plugin nur für die QGIS 1.8-Version verfügbar, aber Sie können es jederzeit herunterladen und sehen, wie der Code funktioniert!
quelle
Dies ist eine Anpassung von @ radouxjus Antwort in eine Funktion. Es wird ein Farbfeld zum Eingabe-Feature-Layer hinzugefügt und berechnet. Es sollte unabhängig von den Feldnamenendungen von PolygonNeighbors funktionieren (sie scheinen für verschiedene Benutzer / Eingaben / arcgis-Versionen unterschiedlich zu sein (?))
quelle