Muszę zastosować twierdzenie o czterech kolorach w kształcie wielokąta w taki sposób, że nie muszę ręcznie wybierać każdego koloru, aby umieścić go w każdym regionie. Chciałbym wiedzieć, czy istnieje jakieś rozszerzenie, wtyczka, skrypt lub baza danych, które mogą być używane z ArcGIS i ArcToolBox do robienia tego matematycznie lub programowo, więc na razie mogę go używać z każdą mapą, którą stworzę.
arcgis-desktop
arctoolbox
polygon-creation
color
four-color-theorem
Please_Dont_Bully_Me_SO_Lords
źródło
źródło
R
kodem) i optymalne rozwiązanie (które wykorzysta trzy lub nawet dwa kolory, jeśli można je znaleźć) na Mathematica . To rozwiązanie jest rekurencyjne; odpowiedź na mój post daje liniową rozwiązanie programowania. W kolektorze GIS od dawna wbudowany jest pięciokolorowy algorytm. (Czterokolorowe jest trudne do wykonania; pięciokolorowe jest stosunkowo łatwe do osiągnięcia.)Odpowiedzi:
Przede wszystkim dziękuję za wszystkie odpowiedzi i komentarze. Niestety istniejące narzędzia nie były w pełni kompatybilne z najnowszymi wersjami QGIS i ArcGIS. Dlatego stworzyłem własne rozwiązanie za pomocą narzędzia wskazanego przez @polygeo, wtyczki QGIS od @Alexandre i nazwy algorytmu (mapa czterech kolorów) od @Jens.
Oto mój kod dla zainteresowanych (dla ArcGIS, ale druga część może być również wykorzystana w QGIS).
Zauważ, że algorytm nie gwarantuje, że zostaną użyte tylko 4 kolory: chociaż udowodniono, że istnieje rozwiązanie, do jego osiągnięcia konieczna jest „brutalna siła”. W moim przypadku mam 7 kolorów, które są wystarczająco małe. Skrypt może mieć dodatkową pętlę, dopóki nie zostanie znalezione rozwiązanie, ale muszę to zrobić dla setek map i 7 kolorów jest w porządku.
źródło
Istnieje próbka programisty VB6 i narzędzie geoprzetwarzania ArcGIS 9.x, ale z komentarzy do tego pomysłu ArcGIS nie działają w wersji 10.0+.
Być może ktoś byłby zainteresowany przeniesieniem go.
Rozwiązanie QGIS o nazwie TopoColour podano w komentarzach do tego pokrewnego pytania: Kolorowe wielokąty, więc każdy z nich różni się od swoich sąsiadów
źródło
Jeśli używasz QGIS, uważam, że potrzebujesz wtyczki Kolorowanie mapy .
Niestety wtyczka jest dostępna tylko dla wersji QGIS 1.8, ale zawsze możesz pobrać i zobaczyć, jak działa kod!
źródło
Jest to dostosowanie odpowiedzi @ radouxju do funkcji. Doda to pole koloru do wejściowej warstwy obiektów i obliczy. Powinno działać niezależnie od zakończeń nazw pól w PolygonNeighbors (wydają się być różne dla różnych użytkowników / wersji wejściowych / wersji Arcgis (?))
źródło