Necesito aplicar el teorema de los cuatro colores en una forma poligonal de manera que no necesite elegir manualmente cada color para colocar en cada región. Deseo saber si hay alguna extensión, complemento, secuencia de comandos o base de datos que pueda usarse con ArcGIS y ArcToolBox para hacerlo matemáticamente o programáticamente, por lo que podría usarlo por ahora con cada mapa que creé.
arcgis-desktop
arctoolbox
polygon-creation
color
four-color-theorem
Please_Dont_Bully_Me_SO_Lords
fuente
fuente
R
código de trabajo ) y una solución óptima (que usará tres o incluso dos colores si se puede encontrar que funcionan) en Mathematica . Esa solución es recursiva; La respuesta a mi publicación da una solución de programación lineal. El SIG múltiple ha tenido incorporado un algoritmo de cinco colores (cuatro colores es difícil de hacer; cinco colores es relativamente simple de lograr)Respuestas:
En primer lugar, gracias por todas las respuestas y comentarios. Desafortunadamente, las herramientas existentes no eran totalmente compatibles con las últimas versiones de QGIS y ArcGIS. Por lo tanto, hice mi propia solución utilizando la herramienta indicada por @polygeo, el complemento QGIS de @Alexandre y el nombre del algoritmo (mapa de cuatro colores) de @Jens.
Aquí está mi código para los interesados (para ArcGIS, pero la segunda parte también podría usarse en QGIS).
Tenga en cuenta que el algoritmo no garantiza que solo se usen 4 colores: aunque se ha demostrado que la solución existe, la "fuerza bruta" es necesaria para lograrlo. En mi caso, obtuve 7 colores que son lo suficientemente pequeños. El script podría tener un bucle adicional hasta que se encuentre la solución, pero necesito hacerlo para cientos de mapas y 7 colores está bien.
fuente
Hay una muestra de desarrollador VB6 y una herramienta de geoprocesamiento ArcGIS 9.x, pero a partir de los comentarios sobre esta Idea ArcGIS no funcionan en 10.0+.
Quizás alguien estaría interesado en portarlo.
En los comentarios de esta pregunta relacionada se ofrece una solución QGIS llamada TopoColour : coloree los polígonos para que cada uno sea distinto de sus vecinos
fuente
Si está utilizando QGIS, creo que lo que necesita es el complemento Colorear un mapa .
Desafortunadamente, el complemento solo está disponible para la versión QGIS 1.8, ¡pero siempre puedes descargar y ver cómo funciona el código!
fuente
Esta es una adaptación de la respuesta de @ radouxju en una función. Agregará un campo de color a la capa de entidades de entrada y calculará. Debería funcionar independientemente de las terminaciones de nombre de campo de PolygonNeighbours (parecen ser diferentes para diferentes usuarios / entradas / versiones de arcgis (?))
fuente