나는 이것에 대한 해결책을 찾았지만 완전한 것을 찾지 못했습니다. 각 수천 개의 라인 기능을 포함하는 수십 개의 테이블이 있습니다. 라인 피쳐가 분할 될 때마다 다른 레코드가 생성되지만 새로운 라인 (레코드)은 여전히 이전 ASSETID를가집니다. 이것은 중복 ASSETID가 탄생했다는 것을 의미합니다. 유지 보수 파이썬 스크립트는 모든 중복 ASSETID를 찾아서 null로 만들 수 있습니까? 이것은 단지 원래의 ASSETID를 남겨 두었습니다. 나중에 스크립트를 실행하여 ASSETID 필드에 새로운 무작위로 생성 된 ASSETID를 채울 것입니다. 나는 모든 중복 값 목록을 만들 수 있었고, 값이 몇 번 발생했는지에 대한 목록, 값이 반복되면 'Y'가있는 테이블의 새 열을 만들 수 있었지만 아직 중복을 제거 할 수있었습니다. 행의 다른 모든 것을 유지하면서 필드 값.중복 된 필드 값을 삭제하십시오 (null로 만듭니다)
-3
A
답변
0
ASSETID
의 중복 목록이 있으므로 ArcPy UpdateCursor을 사용하여 해당 속성 만 수정할 수 있습니다.
with arcpy.da.UpdateCursor(feature_class, ["ASSETID"]) as cursor:
for row in cursor:
if row[0] in unique_id_list: # if the ASSETID is in the list
row[0] = None
cursor.updateRow(row)
이 ASSETID
값은, 그러나, 그리고 "원본"그대로 두지 것을 가지고 모든 행을 수정합니다. 당신은 당신이/연구 대신 [gis.se] 스택 거래소에서이를 요청해야한다고 생각 :,
if row[0] in unique_id_list and row[1] not in original_id_list:
을 예컨대을 (예를 들어
OBJECTID
다른 고유 식별자에 의해) 원래의 추가 목록이 필요하고 사람들을 제외 것입니다. – PolyGeo