ArcCatalog에서 필드 필터를 사용하여 ArcSDE 피쳐 클래스에 대한 많은 피쳐 데이터 세트를 검색 하시겠습니까?


11

기능 데이터 세트에 ~ 30 개의 기능 데이터 세트와 ~ 100 개의 기능 클래스가 있습니다. 지형지 물 데이터 세트 중에서 이름별로 지형지 물 클래스를 검색하고 싶습니다. 또한 someDate에서 someOtherDate로 "Date_Mod"가있는 레코드를 모든 기능 클래스에서 쿼리하고 싶습니다.

이것은 SQL Server 2008의 ArcGIS SDE 10.0에 모두 있습니다.

답변:


10

나에 관해서는이 작업 (arcpy)에 파이썬 스크립팅을 선택하는 것이 좋습니다.

다음은 몇 가지 아이디어입니다.

  1. 모든 데이터 세트를 가져 오려면 ListDatasets 를 사용하십시오 .
  2. 모든 피처 클래스 를 가져 오려면 ListFeatureClasses 를 사용하십시오 .
  3. 데이터 조회에 SearchCursor 를 사용하십시오 .
  4. Describe 기능을 살펴보십시오. 또한 일부 작업에 매우 유용 할 수 있습니다.

최신 정보:

게시 후 발견 : @Aragon은 3 단계를 수행하는 방법을 자세히 설명했습니다.


나는 나열된 4 가지 항목과 비슷한 것을 출력하는 파이썬 스크립트를 만들었으므로 이것이 가능하다는 사실을 보증 할 수 있습니다. 먼저, 원하는 결과를 정확하게 결정하십시오. 스크립트에서 먼저 출력 테이블을 작성하십시오. 그런 다음 작업 공간 레벨에서 시작하여 일련의 설명 및 목록을 수행하여 데이터를 수집합니다. ListFields를 추가하고 날짜 열에서 최소값과 최대 값을 수집해야합니다. 정확한 알고리즘은 출력 형식 및 입력 기능 데이터 세트의 위치에 따라 다릅니다 (모두 하나의 공통 작업 영역에서 시작됩니까?).
RHB

6

여기서 SearchCursor 메소드를 확인할 수 있습니다 . 단 하나는 SQL 식 대신 SQL 식을 작성하는 것입니다 where_clause. 쿼리 표현식은 ArcGIS의 표준 SQL 표현식과 동일합니다. 속성 별 선택 대화 상자와 유사합니다. 다음 코드를보고 자신의 도구를 작성할 수 있습니다

요약

SearchCursor 함수는 피처 클래스 또는 테이블에서 읽기 전용 커서를 설정합니다. SearchCursor를 사용하여 행 객체를 반복하고 필드 값을 추출 할 수 있습니다. 선택적으로 where 절 또는 필드별로 검색을 제한하고 선택적으로 정렬 할 수 있습니다.

구문 검색 커서 (데이터 집합, {where_clause}, {spatial_reference}, {fields}, {sort_fields})

예:

import arcpy

# Open a searchcursor 
#  Input: C:/Data/Counties.shp 
#  FieldList: NAME; STATE_NAME; POP2000 
#  SortFields: STATE_NAME A; POP2000 D 
# 
rows = arcpy.SearchCursor("C:/Data/Counties.shp", "'POP2000' > 5000", "", "NAME; 
STATE_NAME; POP2000", "STATE_NAME A; POP2000 D") 
currentState = "" 

# Iterate through the rows in the cursor 
# 
for row in rows: 
    if currentState != row.STATE_NAME: 
        currentState = row.STATE_NAME 

    # Print out the state name, county, and population 
    # 
    print "State: %s, County: %s, population: %i" % \
            (row.STATE_NAME, row.NAME, row.POP2000) 

나는 그것이 당신에게 도움이되기를 바랍니다 ....


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.