Eu preciso aplicar o teorema das quatro cores em uma forma poligonal de uma maneira que não precise escolher manualmente cada cor para colocar em cada região. Desejo saber se existe alguma extensão, plug-in, script ou banco de dados que possa ser usado com o ArcGIS e o ArcToolBox para fazê-lo matematicamente ou programaticamente, para que eu possa usá-lo agora em todos os mapas que venho criar.
arcgis-desktop
arctoolbox
polygon-creation
color
four-color-theorem
Please_Dont_Bully_Me_SO_Lords
fonte
fonte
R
código ativo) e uma solução ótima (que usará três ou até duas cores, se puderem funcionar) no Mathematica . Essa solução é recursiva; a resposta ao meu post fornece uma solução de programação linear. GIS Manifold há muito tempo tem um algoritmo de cinco cores construído em (Four-coloração é difícil de fazer; cinco coloração é relativamente simples de conseguir.).Respostas:
Primeiro de tudo, obrigado por todas as respostas e comentários. Infelizmente, as ferramentas existentes não eram totalmente compatíveis com as versões mais recentes do QGIS e ArcGIS. Portanto, criei minha própria solução usando a ferramenta indicada por @polygeo, o plug-in QGIS de @Alexandre e o nome do algoritmo (mapa de quatro cores) de @Jens.
Aqui está o meu código para os interessados (para o ArcGIS, mas a segunda parte também pode ser usada no QGIS).
Observe que o algoritmo não garante que apenas 4 cores sejam usadas: embora tenha sido comprovado que a solução existe, a "força bruta" é necessária para alcançá-la. No meu caso, eu tenho 7 cores que são pequenas o suficiente. O script pode ter um loop adicional até que a solução seja encontrada, mas eu preciso fazer isso por centenas de mapas e 7 cores.
fonte
Há uma amostra de desenvolvedor do VB6 e uma ferramenta de geoprocessamento do ArcGIS 9.x, mas a partir dos comentários sobre essa idéia do ArcGIS, eles não funcionam na versão 10.0+.
Talvez alguém estivesse interessado em portá-lo.
Uma solução QGIS chamada TopoColour é fornecida nos comentários desta pergunta relacionada: Polígonos coloridos para que cada um seja distinto de seus vizinhos
fonte
Se você estiver usando o QGIS, acredito que você precisa do plugin Colorir um mapa .
Infelizmente, o plug-in está disponível apenas para a versão QGIS 1.8, mas você sempre pode fazer o download e ver como o código funciona!
fonte
Esta é uma adaptação da resposta de @ radouxju em uma função. Ele adicionará um campo de cor à camada do recurso de entrada e calculará. Ele deve funcionar independentemente das terminações de nome de campo de PolygonNeighbors (elas parecem ser diferentes para diferentes versões de usuários / entradas / arcgis (?))
fonte