Lagi

Menambahkan file geodatabase sebagai lapisan grup?


Saya memiliki beberapa ratus file geodatabases (GDBs) masing-masing berisi beberapa kelas fitur.

Apakah ada cara bagi saya untuk memindahkan GDB ke mxd sehingga setiap GDB diimpor sebagai lapisan grup yang berisi kelas fitur sebagai sub-lapisan?

Saya secara khusus mencari skrip arcpy untuk melakukan ini karena ada begitu banyak GDB.


Kode ini benar-benar belum teruji, tetapi semoga berhasil. Kode membutuhkan tiga input. Yang pertama adalah path lengkap ke folder Anda yang berisi file gdbs. Yang kedua adalah file dokumen peta tersimpan yang ingin Anda tambahkan lapisannya. Yang ketiga adalah file lapisan grup kosong (.lyr). Kode pada dasarnya merupakan iterasi melalui geodatabase Anda, membuat lapisan grup baru untuk masing-masing, dan kemudian mengulangi dan menambahkan setiap kelas fitur sebagai lapisan ke lapisan grup.

#Jalur lengkap ke folder yang berisi GDB inFolder = r"C:Testfolder" #Petakan dokumen untuk menambahkan lapisan ke mapDoc = r"C:Testmapdoc.mxd" #Group layer .lyr file grpLyr = r"C: Testgrouplayer.lyr" #----End locals #import modules print "importing" import arcpy import os #create mxd objects print "creating map objects" mxd = arcpy.mapping.MapDocument (mapDoc) df = arcpy.mapping .ListDataFrames (mxd)[0] #set arcpy env workspace ke folder input print "setting workspace" arcpy.env.workspace = inFolder #list geodatabases print "listing geodatabases" gdbs = arcpy.ListWorkspaces (workspace_type = "FileGDB") #iterate geodatabases print "iterasi", len (gdbs), "file geodatabases" untuk gdb di gdbs: print "exploring", gdb #create group layer object groupLayer = arcpy.mapping.Layer (grpLyr) #ganti nama layer menjadi nama gdb groupLayer.name = gdb #tambah lapisan grup ke bingkai data arcpy.mapping.AddLayer (df, groupLayer) #ubah ruang kerja menjadi gdb gdbFullPath = os.path.join (inFolder, gdb) arcpy.env.workspace = gdbFullPath #l pertama kelas fitur di gdb fcs = arcpy.ListFeatureClasses () #iterate fcs cetak "menambahkan", len (fcs), "lapisan" untuk fc di fcs: #buat objek lapisan kelas fitur lyr = arcpy.mapping.Layer (fc) # tambahkan lapisan ke lapisan grup arcpy.AddLayerToGroup (df, groupLayer, lyr) cetak "menyimpan file peta" mxd.save () del mxd del df cetak "selesai"


Tonton videonya: 16 membuat file lapisan grup di peta busur (Oktober 2021).