在地理数据库中按名称搜索要素类或表?


10

我正在寻找一种使用名称来搜索地理数据库中的要素类或表的方法。

有没有类似的功能?

显然,Windows搜索仅返回地理数据库中表的随机ID。我想实际搜索其中的数据集。

我认为这会对很多人有所帮助,因为我知道我不是唯一将空间数据存储在Geodatabase中的人,只是将其与一千个其他数据集一起存档,而不希望对其进行筛选。

我想在ArcCatalog中搜索这些地理数据库。


Answers:


4

使用一些python,这是完成您要查询的内容的一种很长的方法:

  1. 您需要所有要搜索的地理数据库的列表。如果有很多,请在相关目录上使用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

不久前,我遇到了一些软件,该软件可能用于索引GeoDatabase和其他空间数据:

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.