Бештар

Нусхабардории синфҳои хусусият аз Geodat базаи шахсӣ ба Geodat базаи File тавассути ArcPy?

Нусхабардории синфҳои хусусият аз Geodat базаи шахсӣ ба Geodat базаи File тавассути ArcPy?


Ман миқдори зиёди геодатфазаҳои шахсӣ дорам, ки дорои маҷмӯаҳо ва синфҳои хусусият мебошанд (як маҷмӯа бо чаҳор синфи хусусият ва як синфи хусусӣ дар берун аз маҷмӯа дар ҳар як mdb).

Ман мехоҳам барои ҳар як mdb як гео-пойгоҳи додаҳои файл созам ва маҷмӯи маълумотҳо ва синфҳои хусусиятро дар базаи гео-пойгоҳи файл нусхабардорӣ кунам.

Барои эҷоди geodatabse парванда ман рамзи зеринро истифода мебарам, аммо намедонам, ки чӣ гуна маҷмӯи додаҳо ва синфҳои хусусиятро ба файл геодезия ба таври барномавӣ нусхабардорӣ мекунам.

воридоти arcpy, os барои файл дар os.listdir (r "X:  test  2"): if file.endswith (". mdb"): arcpy.CreateFileGDB_management (r "X:  test  2", file [: -4], "ҲОЛО")

Скрипти зерин ҳамаи маҷмӯи маълумотҳои хусусиятҳо ва синфҳои хусусиятҳои гео-базаи инфиродиро ба геодатвазаи файли нав табдил медиҳад.


import arcpy, os # Ҷойҳои кории дохил ва хориҷро таъин кунед inws = r'C:  temp 'outws = r'C:  temp  outws' # Рӯйхати пойгоҳи додаҳои дастрасиро arcpy.env.workspace = inws mdbs = arcpy.ListWorkspaces (workspace_type) = "Access") count = 1 for m in mdbs: # Муайян кардани натиҷаи номи FGDB fgdb_name = os.path.basename (m) .split (".") [0] + ".gdb" # Архпи нави FGDB созед. CreateFileGDB_management (outws, fgdb_name) # Ҳама FC-ҳоро, ки бевосита дар геодат базаи arcpy.env.workspace = os.path.join (inws, m) fcs = arcpy.ListFeatureClasses () барои fc дар fcs: arcpy.CopyFeements_ag нусхабардорӣ кунед os.path.join (outws, fgdb_name, fc)) # Ҳисобот дар бораи коркарди ҳолати чоп "% s аз% s пойгоҳи додаҳои шахсии ба FGDB табдил додашуда"% (count, len (mdbs)) count + = 1 # Рӯйхати маълумотҳои arcpy .env.workspace = os.path.join (inws, m) fds = arcpy.ListDatasets () for f in fds: # Муайян кардани фазои фазоии FDS desc = arcpy.Describe (f) sr = desc.spatialReference # Нусхабардории FDS ба FGDB arcpy.CreateFeatureDataset_management (os.path.join (outws, fgdb_name), f , spatial_reference = sr) # FCs-ро ба FDS-и нав нусхабардорӣ кунед arcpy.env.workspace = os.path.join (inws, m, f) fcs = arcpy.ListFeatureClasses () for fc in fcs: arcpy.CopyFeatures_management (fc, os.) path.join (outws, fgdb_name, f, fc))

Фарз мекунем, ки рамзи шумо барои сохтани гео-пойгоҳи додаҳои файлҳо бо ҳамон номҳо бо маъхазҳои шахсии шумо хуб кор мекунад, ман фикр мекунам қадамҳои навбатии шумо бояд инҳо бошанд:

  • ListDatasets -ро истифода баред, то рӯйхати маҷмӯи маълумотҳои хусусиятро дар ГеоМаълумоти шахсии худ таҳия кунед ва сипас
  • Истифодаи Сохтани Фарқияти Хусусиятро барои эҷоди навгониҳои бо ҳамин номҳо дар Геомодани Файлатон истифода баред.

Аз ҷавоби боло, шумо бояд ҷойеро иваз кунед, ки мегӯяд:

Тасвир кунед (f)

аз ҷониби ин:

f_path = os.path.join (inws, m, f) desc = arcpy. Тавсиф (f_path)

Дар акси ҳол, пас аз нусхабардории маҷмӯи аввалини дучоршуда ва рӯ ба маҷмӯи дуюми рӯйхат, функсияи Тавсифи маълумотро пайдо карда наметавонад ва он хато пайдо мешавад.


Видеоро тамошо кунед: Hướng dẫn chuyển dữ liệu từ bản đồ địa chính sang ArcMap