2017-03-20 1 views
-1

저는 ArcGIS 용 파일 지오 데이터베이스의 정렬 순서를 변경하는 방법을 알아 내려고했습니다. 필자는 Python과 Arcpy를 사용하여 많은 CAD 파일을 파일 지오 데이터베이스 기능 데이터 세트로 변환했습니다. 이 작업을 성공적으로 수행했지만 결과가 사전 식 순서로보고되므로 올바르게 이해합니다. 즉이이 같은 분류된다 :File Geodatabase에서 데이터 세트 정렬

1, 10, 12, 2, 20, 200, 3, 33, 34 등

이것이 분별 판독 스타일이지만, I 그것을 '자연/인간'질서에 끌어 들이기 위해 노력해 왔습니다. 나는이 개념에 대해 많은 연구를 해왔고, 이것을 가능하게하는 코드를 발견했다. 그래서 지금 문제가 내 기능 셋을 모두 재정렬되어

How to sort alpha numeric set in python

Sorting alphanumeric strings in Python

'자연 순서.'

이 코드는 데이터 세트를 순서대로 인쇄 할 수 있지만 실제로는 지오 데이터베이스를 염두에두고 편집하지는 않습니다.

import re, arcpy 

arcpy.env.workspace = r"<input geodatabase location>" 
datasets = arcpy.ListDatasets() 

# Natural sort through input 
def sorted_nicely(l): 
""" Sort the given iterable in the way that humans expect.""" 
convert = lambda text: int(text) if text.isdigit() else text 
alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] 
return sorted(l, key = alphanum_key) 

# Iterate through listed datasets 
for x in sorted_nicely(datasets): 
    print(x) 

어려운 정렬 스크립트가 위의 소스 종류에서 사용되는 내 IDE에서 원하는 결과를 출력하고있는이 코드 조각,하지만 실제로 내 파일 지오 데이터베이스에 아무것도하지 않습니다.

추가 다운로드 (즉, 추가 합병증)에 대한 권한을 얻으려면 사전 설치되지 않은 모듈을 사용하지 않고이 작업을 수행하고 싶습니다.

감사합니다!

+0

ArcMap 또는 ArcCatalog 내에서 사용되는 정렬 순서에 영향을 줄 수 없다고 생각합니다. 실제로는 _display_ 정렬이기 때문에 지오 데이터베이스에 저장되지 않습니다. . 앞에 오는 0을 포함하도록 데이터 세트의 이름을 변경 하시겠습니까? – Erica

+0

답변을 남겨 주셔서 감사합니다. 필자는 그렇게 할 수는 있지만 파일명과 두 자리 사이의 특정 공백을 채우고 특정 파일 이름을 제외하는 방법을 찾아야합니다. 나는 그것을 조사하려고 노력할 것이다. – heinrich1223

답변

0

ArcMap 또는 ArcCatalog는 정렬 순서에 영향을주는 방법을 모르고 있습니다. ArcMap 또는 ArcCatalog는 지오 데이터베이스의 설정이 아닌 표시 용도로만 사용합니다.

기능 데이터 세트의 이름을 변경하려는 경우이 GIS.SE 게시물은 작동 원리에 대한 유용한 개요를 제공합니다. Batch renaming of feature datasets, and feature classes based on new dataset name? 선도 번호를 추가하는 방법을 알아 내기 위해 숫자 길이의 가변성도 고려해야합니다 0이 될 수는 있지만 새로운 것이 될 수 있음 question to ask

+0

한 발의 가치가 있습니다. 선행 0을 넣음으로써 적어도 그 표준에 따라 정렬되어야합니다. – heinrich1223