我正在使用ArcGIS 10,并且具有2010年人口普查区块,区块组和区域的图层。这些图层中有数千个多边形。

我想给它们上色,以使它们与邻居不一样,但是我能弄清楚的是如何给每个赋予不同的颜色。每个多边形的颜色并不重要。我只是想通过颜色轻松地将每个邻居与邻居区别开来,而不是使用边框。

还是只在美国50所小学地图中看到的东西?

评论

(+1)从技术上讲,ArcGIS确实提供了不同的颜色,因为它可以在2 ^ 24的调色板中随机选择它们,因此两个邻居获得完全相同的颜色的可能性很小。这表明您确实要修复少量易于区分的颜色并进行分配,以使相邻的多边形不会获得相同的颜色。当所有多边形都已连接且仅已连接时,有一种算法可对五种或更多颜色执行此操作。 (Manifold具有一个内置过程,可以对任何多边形图层进行五种颜色设置:)。)

QGIS中还有一个名为“ topocolour”的插件可以提供此功能。如果您无法在ArcGIS中找到固定的实用程序,则可以查看他们的代码并自行构建内容。

我写了前面提到的topocolour插件!我想它可能会与成千上万的多边形斗争,以解决所有邻接问题。我最近还用R编写了一个版本,以防万一有人想用R用这种方式为地图着色。不过我不会碰ArcGIS!

顺便说一句,ArcGIS现在具有用于计算多边形邻接关系的高效内部程序。我记得在大约30分钟内完成一个状态中的所有块(其中大约一百万个):calcs为15,写入邻接文件为15。使用更新的机器,工作速度将提高5-10倍。因此,可以将R代码放在由ArcGIS生成的邻接文件上,这听起来像是同时使用两个平台来解决此问题的最佳方法。

“四种颜色就足够了”(不得不说)。

#1 楼

您正在寻找一种可以实现4色定理的工具

我为此目的使用FME,但是这种脚本也应该存在于arcPy中。

#2 楼

您是否考虑过http://colorbrewer2.org/我似乎还记得有可用的ArcGIS或QG插件。

评论


请参阅Kevin对其他回复的评论。

– hu
2012年7月25日15:24

#3 楼

我已经编写了ArcPy工具,该工具使用邻居表将提供的列表中的属性分配给多边形,这样就不会有邻居共享相同的颜色。通过简单的图形着色试探法,它通常设法使用少于六种颜色(或者,如果需要,它可以随机分配颜色,同时仍然尊重邻域)。

该工具箱以及一些文档可以可从http://geocite.ic.cz/coloring.zip下载。

评论


另请参阅此处:gis.stackexchange.com/questions/54029/…

– radouxju
2014年5月30日12:07

#4 楼

在Python中的多边形上执行Flood Flood填充,将一定数量的颜色更改添加到对Flood Fill函数的递归调用中,并随需更改颜色。

#5 楼

您可以在唯一的标识符/ GWID字段上应用符号系统分类。

评论


这不能保证相邻多边形的唯一颜色

–user3461
2012年6月21日在20:02

应该是因为每个RGB值的范围都可以在0到255之间,这意味着R,B和G值有很多种组合。因此从技术上讲,除非您拥有超过十亿条独特的记录,否则您将不会拥有相同的色调。

–GISdork
2012年7月31日17:37

此技术不能保证两个相邻的多边形具有不同的颜色,以便“轻松地将每个[多边形]与相邻的多边形区分开”。即使RGB组合是唯一的,它们也可能看起来非常相似。因此,如果为两个相邻的多边形分配了相似的值,则很难/不可能将它们区分开。请参阅Whuber对原始问题的第一条评论。

–user3461
2012年7月31日18:13