피처 레이어에서 각 지오메트리를 고유하게 식별 할 수 있습니까?
기본적으로 동일한 지오메트리로 표현되는 많은 데이터 행이있는 다각형 피처 레이어가 있습니다. 고유 한 각 형상마다 1 행을 원합니다. 그래서 지오메트리의 모양을 기반으로 속성을 결합하는 기본 제공 방법론을 찾고 있습니다.
Postgres 세계에서 왔으며이 문제를 해결할 수는 있지만 ESRI 도구를 사용하여 프로그래밍 방식으로 수행하는 방법을 알 수는 없습니다.
피처 레이어에서 각 지오메트리를 고유하게 식별 할 수 있습니까?
기본적으로 동일한 지오메트리로 표현되는 많은 데이터 행이있는 다각형 피처 레이어가 있습니다. 고유 한 각 형상마다 1 행을 원합니다. 그래서 지오메트리의 모양을 기반으로 속성을 결합하는 기본 제공 방법론을 찾고 있습니다.
Postgres 세계에서 왔으며이 문제를 해결할 수는 있지만 ESRI 도구를 사용하여 프로그래밍 방식으로 수행하는 방법을 알 수는 없습니다.
답변:
고급 라이센스가있는 경우 동일 항목 찾기 또는 동일 항목 삭제를 사용할 수 있습니다 .
둘 다 동일한 속성을 가진 피처를 찾거나 삭제하거나 모양 필드가 지정된 경우 동일한 지오메트리를 찾는 데 사용할 수 있습니다.
고급 라이센스가없는 경우이 게시물 이 유용합니다.
요컨대, 속성 테이블에서 X, Y에 대해 두 개의 필드를 추가하고 해당 필드에서 Dissolve 를 실행 합니다.
동일한 중심을 공유하지만 기하학적으로 동일하지 않은 다각형이있는 경우 두 개의 다른 필드 (주변 및 면적)를 추가 할 수 있습니다. 거의 모든 일반적인 경우에 대해 동일한 형상을 식별하기에 충분해야합니다. 아래 @whuber의 의견을 참조하십시오.
설문 조사 데이터를 기반으로하는 데이터 세트가 있습니다. 내 문제는 새로운 설문 조사 샷을 가져 오기 전에 이전 기능이 항상 제거되지는 않는다는 것입니다. 따라서 우리는 서로 다른 지오메트리로 '중복'되었습니다. 12000 피처 데이터 셋에서이를 확대하고 식별하기는 어렵습니다. ArcMap Basic 10.2 사용 : 여기에 내가 만든 해키 모델이 있습니다.
나는 바퀴를 다시 발명했다. 또한 모델 빌더에 좌절하고 기본적으로 모든 것을 불독했습니다. 더 우아한 솔루션이 있어야합니다. 나는 비판과 제안을 기꺼이 받아 들일 것이다.
또한 이것은 Model Builder 내에서만 올바르게 실행되는 것 같습니다. 도구 상자에서 실행하며 버퍼 계층을 저장하지 않습니다.
나는 겹치는 버퍼 다각형 문제를 평평하게하는 것을 극복하기 위해 얼마 동안 같은 질문에 대한 답을 찾고 있었고 그에 대한 강력한 해결책을 찾았다 고 생각합니다. 사실 @Whuber의 의견,
원칙적으로 중심, 둘레 및 면적은 여전히 다각형을 고유하게 식별하지는 않지만 반대의 예는 약간 고안되었습니다.
@Paul의 대답은 계속 노력해야 할 주요 동력이었습니다. Spatial Join 도구의 ARE_IDENTICAL_TO 연산자를 사용합니다. 이는 다른 동일한 검출기 중에서 가장 효율적이기 때문입니다. 단계는 다음과 같습니다.
다음 단계는 Python 또는 WITHOUT의 두 가지 방법으로 수행 할 수 있습니다.
피톤과 함께
print tuple(set([row.getValue("EX_OID_1") for row in arcpy.SearchCursor("Output_of_the_Spatial_Join_Operation")]))
.
필자의 경우 EX_OID_1 인 더미 OID 필드의 두 번째 사본을 사용하고 있습니다.
OBJECTID IN (<PASTE_COPIED_VALUES_HERE>)
. 결과는 겹치는 부분의 통합 된 특징을 보여줍니다. 여기에는 30,000 자 크기 제한이 있습니다. 이 문제를 해결하려면 "파이썬없이"단계를 따라야합니다.피톤없이
빈도 도구를 사용하여 더미 OID 필드의 두 번째 사본에 고유 값을 나열하십시오. 필자의 경우 EX_OID_1입니다.
마지막으로 "일치하는 레코드 만 유지"옵션을 선택하여 빈도 도구의 EX_OID_1 출력과 함께 원래 피쳐 클래스의 OBJECTID 필드에 가입 하십시오.