이름으로 피쳐 클래스 또는 테이블에 대한 지오 데이터베이스를 검색합니까?


10

지형 이름을 사용하여 지형 데이터베이스에서 지형지 물 클래스 또는 테이블을 검색하는 방법을 찾고 있습니다.

이와 같은 기능이 있습니까?

분명히 Windows 검색은 지오 데이터베이스 내의 테이블에 대한 임의의 ID 만 반환합니다. 실제로 데이터 세트 내에서 데이터 세트를 검색하고 싶습니다.

지오 데이터베이스에 공간 데이터를 저장하는 유일한 사람이 아니라 수천 개의 다른 데이터 세트로 데이터를 보관하고 데이터를 탐색하고 싶지 않기 때문에 이것이 많은 사람들에게 도움이 될 것이라고 생각합니다.

ArcCatalog에서 이러한 지오 데이터베이스를 검색하고 싶습니다.


답변:


4

이것은 파이썬을 사용하여 요청한 것을 수행하는 먼 길입니다.

  1. 검색하려는 모든 GeoDatabase 목록이 필요합니다. 많은 것이 있으면 문제의 디렉토리에서 python의 walk 함수를 사용하십시오. 데이터베이스에 따라 .gdb또는 폴더가있는 폴더를 격리 .mdb하십시오.

  2. GeoDatabase 내에서 모든 데이터 세트를 찾습니다.

  3. 데이터 세트 내에서 모든 레이어를 찾습니다.

  4. 찾고있는 레이어의 검색 결과.

다음은 내가 말하는 것에 대한 코드 샘플입니다.

import arcpy
from arcpy import env
x = 'File Name That You Are Looking For'
GDBs = ['GeoDatabase1', 'GeoDatabase2', 'ect']  # Your list of GeoDatabases
for GDB in GDBs:                                # Iterate through your list
    env.workspace = GDB
    GDBds = arcpy.ListDatasets()                # Find datasets in GeoDatabase
    for ds in GDBds:                            # Iterate through datasets
        env.workspace = GDB + '/' + ds
        fc = arcpy.ListFeatureClasses()         # Find all data in the dataset
        for f in fc:
            if f.find(x) != -1:
                print GDB + '/' + ds + '/' + f    

4
모든 피쳐 클래스가 피쳐 데이터 세트에있는 것은 아닙니다 (모범 사례는 거의 없음)
Vince

10

데이터 세트에 있거나 없을 수있는 피쳐 클래스를 검색하는 다른 방법 은 앞에서 언급 한대로 walk함수 를 사용하는 입니다. 검색 할 작업 공간 (예 : 수백 개의 GDB가 포함 된 폴더) 만 있으면됩니다.

import arcpy, os
workspace = "Path/to/folder"
search = "name_string_you_are_searching_for"
feature_classes = []
for dirpath, dirnames, filenames in arcpy.da.Walk(workspace,
                                                  datatype="FeatureClass",
                                                  type="ANY"):
    for fname in filenames:
        # search for string in string to eliminate the need for exact filenames
        if search.upper() in fname.upper():
            feature_classes.append(os.path.join(dirpath, fname))

결과리스트에는 검색 기준과 일치하는 모든 피처 클래스의 경로와 파일 이름이 포함되며 인쇄 할 수 있습니다.

for fc in feature_classes:
     print fc

walk기능은 변경하여 (즉, 다각형, 점, 래스터, 등) 기능의 특정 유형을 검색하도록 수정 될 수있다 type=""기능 유형.


1

얼마 전에 GeoDatabases 및 기타 공간 데이터를 인덱싱하는 데 사용할 수있는 일부 소프트웨어를 발견했습니다.

https://www.voyagersearch.com/

회사에서 시험해 보았지만 여러 가지 이유로 사용하지는 않았지만 유용한 기능이 많이 있습니다. 요약하면 데이터의 범위, 이름 및 데이터의 속성 / 내용을 기록하므로 위치를 사용하여 검색 할 수있는 공간 데이터 세트의 색인을 만듭니다.

이것은 GeoDB의 색인입니다 : https://voyagersearch.zendesk.com/hc/en-us/articles/204187447-Indexing-Esri-Geodatabases-and-Shapefiles

이 기능은 나보다 기능을 잘 보여줄 수있는 데모 페이지입니다! http://voyagerdemo.com/web/navigo/#/home

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