Mam folder z licznymi geobazami. W geobazach są klasy obiektów. Chciałbym uzyskać listę klas obiektów w tych geobazach przy użyciu skryptu Python. Dotarłem tylko do listy geobaz. Czy ktoś ma jakieś sugestie dotyczące umieszczenia klas obiektów w geobazach?
Wiersz pozycji wydruku w moim skrypcie daje mi następujące wyniki:
C:\output\data.gdb
C:\output\otherdata.gdb
C:\output\somethingelse.gdb
Chcę wygenerować listę klas obiektów w powyższych bazach danych. Poniżej znajduje się mój skrypt do tej pory.
import arcpy, os, sys
from arcpy import env
arcpy.env.workspace = "D:\\output"
inWorkspace = arcpy.env.workspace
workspaces = arcpy.ListWorkspaces("*", "FileGDB")
for item in workspaces:
print item #This part gives me the print statements I shared above
# fcList = arcpy.ListFeatureClasses() #I haven't figured this part out
#I want to list the feature classes in the geodatabases
arcpy
arcgis-10.0
feature-class
workspace
Patty Jula
źródło
źródło
Odpowiedzi:
Sztuką, której brakuje, jest uczynienie każdego gdb aktywnym obszarem roboczym przed wyświetleniem zawartości:
Należy również pamiętać, że spowoduje to pominięcie klas elementów w zestawach danych elementów, zobacz Wylistowanie wszystkich klas elementów w Geobazie Plików, w tym w zestawach danych elementów? rozwiązać to.
Mówiąc bardziej ogólnie, jeśli używasz
r
, nie musisz podwójnie wykonywać ukośników odwrotnych (ułatwia kopiowanie i wklejanie z paska adresu Eksploratora Windows itp.): Np.r'D:\output'
źródło
for wspace in workspaces:
ifor fc in featureclasses:
.Ten skrypt poradzi sobie z wszelkimi istniejącymi zestawami danych funkcji (przynajmniej teoretycznie - jeszcze go nie testowałem). Ten sam ogólny pomysł, jeśli istnieją zestawy danych funkcji, należy ustawić katalog roboczy na ten zestaw danych przed wyświetleniem funkcji w zestawie.
źródło
arcpy.env.workspace = gdb
ponieważ ListWorkspaces zwraca pełną ścieżkę. ;-)