수천 개의 다각형을 색칠하여 각각이 이웃과 구별됩니까?


28

ArcGIS 10을 사용하고 있으며 2010 인구 조사 블록, 블록 그룹 및 트랙의 레이어가 있습니다. 이 레이어에는 수천 개의 다각형이 있습니다.

나는 그들 각각이 이웃과 구별되도록 색칠하고 싶지만, 내가 알아낼 수있는 것은 각각에게 독특한 색상을 부여하는 방법입니다. 각 다각형의 색상은 실제로 중요하지 않습니다. 테두리가 아닌 색상으로 이웃을 쉽게 구별하고 싶습니다.

아니면 50 미국의 초등학교지도에서만 보이는 것이 있습니까?


9
(+1) 기술적으로 ArcGIS 2 ^ 24의 팔레트 중에서 임의로 선택할 수 있기 때문에 고유 한 색상을 제공하므로 두 이웃이 정확히 동일한 색상을 얻을 가능성 은 낮습니다. 즉, 쉽게 구별 할 수있는 소수의 색상을 수정하고 주변 다각형이 동일한 색상을 얻지 않도록 할당하려는 경우가 있습니다. 모든 다각형이 연결되고 간단하게 연결된 경우 5 개 이상의 색상에 대해이 작업을 수행하는 알고리즘이 있습니다. (매니 폴드에는 모든 폴리곤 레이어를 5 색으로 만드는 기본 제공 프로 시저가 있습니다 :-).
whuber

6
QGIS 에는이 기능을 제공하는 "topocolour" 라는 플러그인도 있습니다. ArcGIS에서 미리 준비된 유틸리티를 찾을 수없는 경우 코드를보고 직접 빌드 할 수 있습니다.
RyanDalton

9
위에서 언급 한 topocolour 플러그인을 작성했습니다! 그러나 모든 인접성을 해결하기 위해 수천 개의 다각형으로 어려움을 겪을 수 있다고 생각합니다. 나는 최근에 누군가가 R로 맵을 컬러링하고 싶을 경우를 대비하여 R로 버전을 작성했습니다. 그래도 ArcGIS를 만지지 않습니다!
Spacedman

2
BTW, ArcGIS는 이제 다각형 인접성을 계산하기위한 효율적인 내부 절차를 가지고 있습니다. 나는 약 30 분 안에 한 주 내의 모든 블록 (약 50 만 개)을 수행하는 것을 기억합니다 .15는 calcs의 경우 15, adjacency 파일 쓰기의 경우 15입니다. 최신 컴퓨터에서는 작업이 5-10 배 더 빨라집니다. 따라서 R 코드를 ArcGIS에서 생성 한 인접 파일에서 씹어 볼 수 있습니다.이 파일은이 문제에 두 플랫폼을 모두 사용하는 최적의 방법처럼 들립니다.
whuber

2
"4 가지 색상으로 충분하다"(누군가가 말해야했다).
barrycarter

답변:


1

4 색 정리를 달성 할 수있는 도구를 찾고 있습니다

나는 그 목적으로 FME를 사용하지만 그러한 스크립트는 arcPy에도 존재해야합니다.



0

이웃 테이블을 사용하여 제공된 목록의 속성을 다각형에 할당하는 ArcPy 도구를 코딩하여 이웃이 동일한 색상을 공유하지 않도록했습니다. 일반적으로 간단한 그래프 채색 휴리스틱을 사용하여 6 개 미만의 색상을 사용합니다 (또는 필요한 경우 여전히 이웃을 존중하면서 색상을 임의로 할당 할 수 있음).

도구 상자와 일부 설명서는 http://geocite.ic.cz/coloring.zip 에서 다운로드 할 수 있습니다 .


여기를 참조하십시오 : gis.stackexchange.com/questions/54029/…
radouxju

0

Python의 다각형에서 플러드 채우기를 수행하여 플러드 채우기 함수에 대한 재귀 호출에 일정량의 색상 변경을 추가하여 색상을 변경합니다.


-2

고유 식별자 / GWID 필드에 기호 분류를 적용 할 수 있습니다.


9
이 다각형을 이웃에 걸쳐 고유의 색상을 보장하지 않습니다

RGB 값의 범위는 각각 0에서 255까지이므로 R, B 및 G 값에 대한 광범위한 조합이 있습니다. 따라서 기술적으로 10 억 개가 넘는 고유 한 레코드가없는 한 색조가 동일하지 않습니다.
GISdork

4
이 기술은 "각 [다각형]을 이웃과 쉽게 구별하기"위해 두 개의 인접한 다각형이 서로 다른 색상을 갖는 것을 보장하지는 않습니다. RGB 조합이 고유하더라도 매우 유사하게 보일 수 있습니다. 따라서 두 개의 인접한 다각형에 비슷한 값이 할당되면 쉽게 구분할 수 없습니다. 원래 질문에 대한 whuber의 첫 번째 의견을 참조하십시오.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.