数千のポリゴンを着色して、それぞれが隣接するポリゴンと区別されるようにしますか?


28

ArcGIS 10を使用していますが、2010年の国勢調査のブロック、ブロックグループ、および地域のレイヤーがあります。これらのレイヤーには数千のポリゴンがあります。

それぞれに隣接するものと区別できるように色を付けたいが、私が理解できるのは、それぞれに異なる色を与える方法だけである。各ポリゴンの色は実際には重要ではありません。境界線ではなく、色で隣同士を簡単に区別したいだけです。

それとも、50のアメリカの小学校の地図でしか見られないものですか?


9
(+1)技術的には、ArcGIS 2 ^ 24のパレットからランダムに選択できるため、異なる色を提供ます。したがって、2人の隣人がまったく同じ色になる可能性は低くなります。これは、少数の容易に区別可能な色を修正し、隣接するポリゴンが同じ色にならないようにそれらを割り当てたいということを示唆しています。すべてのポリゴンが接続され、単純に接続されている場合、5色以上でこれを行うアルゴリズムがあります。(マニフォールドには、ポリゴンレイヤーを5色にする組み込み手順があります:
whuber

6
QGISには、この機能を提供する「topocolour」と呼ばれるプラグインもあります。ArcGISで缶詰のユーティリティが見つからない場合、コードを見て自分で何かをビルドできる場合があります。
ライアンダルトン

9
前述のtopocolourプラグインを書きました!しかし、すべての隣接関係を解決するには、数千のポリゴンで苦労するかもしれません。また、最近Rでマップを色付けしたい場合に備えて、Rでバージョンを作成しました。ただし、ArcGISには触れません。
Spacedman

2
ところで、ArcGISには、ポリゴンの隣接関係を計算するための効率的な内部手順が用意されています。状態(約50万個)内のすべてのブロックを約30分で実行したことを思い出します。15個は計算、15個は隣接ファイルの書き込みです。新しいマシンでは、ジョブは5〜10倍速くなります。したがって、RコードでArcGISによって生成された隣接ファイルを噛むことができます。これは、この問題で両方のプラットフォームを使用する最適な方法のように聞こえます。
whuber

2
「4色で十分です」(誰かが言わなければなりませんでした)。
バリーカーター

回答:




0

隣接テーブルが同じ色を共有しないように、近隣テーブルを使用して、提供されたリストからポリゴンに属性を割り当てるArcPyツールをコーディングしました。通常、ヒューリスティックな単純なグラフの色付けを使用して、6色未満を使用します(または、必要に応じて、周囲を考慮しながら色をランダムに割り当てることができます)。

ツールボックスといくつかのドキュメントは、http://geocite.ic.cz/coloring.zipからダウンロードできます



0

Pythonのポリゴンで塗りつぶしを実行し、塗りつぶし関数の再帰呼び出しに一定量の色の変更を追加して、色を変更します。


-2

一意の識別子/ GWIDフィールドにシンボル体系分類を適用できます。


9
これは、隣接するポリゴン間で一意の色を保証するものではありません

RGB値の範囲はそれぞれ0〜255であるため、R、B、Gの値の組み合わせは膨大な数になります。技術的には、10億を超える一意のレコードがない限り、同じ色合いにはなりません。
GISdork

4
この手法は、「各[ポリゴン]を隣接するポリゴンと簡単に区別するために」、隣接する2つのポリゴンが異なる色を持つことを保証しません。RGBの組み合わせは一意ですが、非常によく似ています。そのため、2つの隣接するポリゴンに同様の値が割り当てられている場合、それらを区別するのは簡単ではありません。元の質問に対するwhuberの最初のコメントを参照してください。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.