저는 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에서 원하는 결과를 출력하고있는이 코드 조각,하지만 실제로 내 파일 지오 데이터베이스에 아무것도하지 않습니다.
추가 다운로드 (즉, 추가 합병증)에 대한 권한을 얻으려면 사전 설치되지 않은 모듈을 사용하지 않고이 작업을 수행하고 싶습니다.
감사합니다!
ArcMap 또는 ArcCatalog 내에서 사용되는 정렬 순서에 영향을 줄 수 없다고 생각합니다. 실제로는 _display_ 정렬이기 때문에 지오 데이터베이스에 저장되지 않습니다. . 앞에 오는 0을 포함하도록 데이터 세트의 이름을 변경 하시겠습니까? – Erica
답변을 남겨 주셔서 감사합니다. 필자는 그렇게 할 수는 있지만 파일명과 두 자리 사이의 특정 공백을 채우고 특정 파일 이름을 제외하는 방법을 찾아야합니다. 나는 그것을 조사하려고 노력할 것이다. – heinrich1223