Daha çox

Proqramı olaraq .mxd faylına .shp faylı əlavə olunur


Aşağıdakı problemin həllini onlayn tapmaq üçün saatlarla vaxt sərf etdim, amma tapdığım bütün cavablar olduqca köhnədir və heç biri işə yaramır. Vəziyyət belədir: müxtəlif .shp sənədlərim var. Boş bir mxd sənədim var. .Shp fayllarını .mxd faylına əlavə etmək istəyirəm.

Müxtəlif stackoverflow və stackexchange cavabları problemimin cavabının ya bunlarda olduğuna inanmağımı istərdi: arcpy.MakeFeatureLayer_management (,) və ya arcpy.mapping.Layer ()

Təəssüf ki, necə yanaşsam da oxşar bir səhv alıram.

Ən son cəhdimdən dəqiq kod (bunun daha asan ola biləcəyinə həqiqətən əmin deyiləm):

import arcpy arcpy.env.workspace = "C: / test" arcpy.Exists ("shapefile.shp") # Returns True arcpy.mapping.Layer ("shapefile.shp")

Məhz bu nöqtədə aşağıdakı xətanı alıram: İzləmə (son zəng son):… Fayl "C: Program Files ArcGIS Server arcpy arcpy arcobjects mixins.py", sətir 289 içində super (LayerMixin, öz).içində(lyrfile) "C: Program Files ArcGIS Server arcpy arcpy arcobjects_base.py" faylı, sətir 47, içində arqdakı arg üçün ValueError: Object: CreateObject Layer etibarsız məlumat mənbəyi

Düzəliş: digər funksiyanı istifadə edərək cəhdimdən dəqiq kod

import arcpy arcpy.env.workspace = "C: / test" arcpy.Exists ("shapefile.shp") # Returns True arcpy.MakeFeatureLayer_management ("shapefile.shp", "myshapelayer")

Bu vəziyyətdə, aşağıdakı xətanı alıram: Traceback (son zəng son):… arcgisscripting.ExecuteError: ERROR 000229: shapefile.shp aça bilmir. İcra edilmədi.

Kimsə mənə necə gedəcəyimi məsləhət verə bilərmi? Bu təqib etməli olduğum proseduru təklif edən təxminən beş fərqli həll tapdım, amma qətiliklə mənim üçün işləmir. Python 2.7 istifadə edirəm.

Əlavə qeydlər: -Mən şəkli faylı ArcMap-da yükləmişəm, düzgün yüklənir və göstərir.


Arcpy.mapping.Layer funksiyasından düzgün istifadə etmirsiniz.

arcpy.mapping.Layer diskdə saxlanan bir Layer File (* .lyr) götürür və bundan bir Layer Object qaytarır.

Layer Objects, təbəqənin görünürlük, şəffaflıq, tərif sorğusu və s. Kimi müxtəlif xüsusiyyətlərini dəyişdirmək üçün istifadə edə biləcəyiniz üsullara malikdir.

Sən ona bir formalı sənəd verirsən. Bu səbəbdən səhv, səhv məlumat mənbəyi.

Yalnız bir in_memory Feature Layer yaradan MakeFeatureLayer_management funksiyasından istifadə edin və onu avtomatik olaraq cari MXD-yə əlavə edin, burada birinci arqument sizin şəklinizə gedən mütləq yoldur, ikinci arqument isə göründüyü kimi təbəqənin adını əks etdirən bir sətirdir. Mündəricat.

arcpy.MakeFeatureLayer_management (r "C:  SomeDataPath  shapefile.shp", "MyShapefile")

Nəhayət problemi həll etdim - əslində sadə bir düzəliş oldu - mənim tərəfimdən bir anlaşılmazlıq. Bir "shapefile" nin ".shp" faylından daha çox şey olduğunu başa düşmədim. Görünür funksiyanın düzgün işləməsi üçün müvafiq qovluqda bütün (beş?) Faylın (hamısı (beş?) Uzantı ilə) olması lazımdır. .Dbfs, .xmls və s. Əlavə etdikdən sonra çox yaxşı işləyir.


Aşağıdakı kod ehtiyacınızdan daha çoxunu ehtiva edir, ancaq boş bir mxd təyin etməlisiniz və ya yaratmalı, sonra bir məlumat çərçivəsini təyin etməlisiniz, sonra bu məlumat çərçivəsini aktivləşdirin, sonra seçilən simbologiya ilə qatlarınızı / shapefiles əlavə edin

"mxd_create.py Müəllif: [email protected] Məqsəd: baza mxd yaradın və standart dəyərlərlə doldurun Tələb olunur: yüklənəcək sənədləri və standart dataframları və s şablon yollarını, yəni C:  Program Files (x86)  ArcGIS  Desktop10.2  MapTemplates  Traditional Layouts  LetterLandscape.mxd C:  Program Files (x86)  ArcGIS  Desktop10.2  MapTemplates  Traditional Layouts  LetterPortrait.mxd "import arcpy import sys import os import shutil script = sys.argv [0] # skript adı və yeri mxd_src = "C: /! Test / mapping / mxd_test02.mxd" # shell shell project path, doc = os.path.split (mxd_src) template = path + "/LetterPortrait.mxd" shutil.copyfile (şablon, doc) arcpy.env.workspace = path + "/ shapefiles" arcpy.overwriteOutputs = True shp_files = ["AOI_mtm9.shp", "RandomPnts.shp"] lyr_files = ["AOI_mtm9.lyr", RandomPnts.lyr "] arcpy.ListFiles (" *. Lyr ") # istifadə edin yuxarıda yoxlamaq üçün müəllif =" Bu sən ola bilərsən !!!! " təsvir = "Arcpy.mapping modulu və Python ilə işləyən demo layihəsi" title = "Arcpy Xəritəçəkmə Demo: arcpy.mapping və Python qarşılıqlı əlaqəsi" mxd = arcpy.mapping.MapDocument (doc) mxd.author = müəllif mxd.description = təsvir mxd.title = title mxd.relativePaths = True df = arcpy.mapping.ListDataFrames (mxd) [0] # məlumat çərçivələrinin siyahısı, 1 standart olaraq mövcuddur df.name = "Nümunə sənədlər" # başlığını təyin mxd.activeView = df.name # shp_files-də shp üçün aktivləşdirin: # shapefiles siyahısında # dövr, ext = os.path.splitext (f) # test üçün lyr = arcpy.mapping.Layer (shp) # sənədləri əlavə edin və avtomatik arcpy.mapping.AddLayer (df, lyr, "AUTO_ARRANGE") arcpy.ApplySymbologyFromLayer_management (lyr, lyr_files [1]) # lyr sənədlərindən simbologiya tətbiq edin # arcpy.mapping.UpdateLayer (df, updateLayer, df, updateLayer), () mxd.save () del şablonu, shp_files, lyr_files, lyr, df, mxd os.startfile (doc) del doc ##

Cara Export Banyak MXD ArcGIS Sekaligus (Çoxlu İxrac)

Layihə layihəsi və ya GIS menggunakan ArcGIS (Arcmap) sənədlərini təqdim edən sənəd MXD tentunya akan memakan waktu lama jika harus mengexportnya satu for JPG, PNG və PDF formatında. Əlavə olaraq, ssenaridəki phyton yang sudah sebuah alət qutusunu xatırladır və eyni zamanda İxracat MXD əməliyyat proseduru sehingga bisa menengem waktu və tenaga kita dalam pekerjaan.

Denge menggunakan ssenarisi fitonu (alət qutusu) əvvəlcədən yazılmış, masing-masing mxd, fayl sənədləri və sənədlərin işlənməsini təmin edən sənədlər. Bu təsviri ingilis (Amerika Birləşmiş Ştatları) dilinə geri tərcümə edin Tərcümə edin Berikut contoh preview tampilan toolboxnya.

Script fitonu (alət qutusu) PDF, PNG və JPG sənədlərini birləşdirmək üçün sənədləri sənədləşdirmək üçün sənədləri (mxd) göndərmək üçün sizə kömək edəcəkdir. Dokumen masukan peta (mxd) dapat ditambahkan dari lebih dari satu lokasi ke satu lokasi. Tema-teman müəyyən format (DPI) üçün müəyyən edilmiş format. Beləliklə, müəyyən bir DPI formatını müəyyənləşdirmək üçün hər hansı bir məlumat əldə edin. Jadi, kita perlu menyesuaikannya. ArcPy adalah satu-satunya perpustakaan yang digunakan skrip daxilində. Script dapat dilihat atau dimodifikasi sesuai dengan kebutuhan teman-teman. Bu təsviri ingilis (Amerika Birləşmiş Ştatları) dilinə geri tərcümə edin Tərcümə edin Ini dapat dilakukan dari ArcCatalog. Pada yeniləmə üçün bir sənəd əlavə etmək üçün sənədləri PDF sənədləri ilə təsdiqləyin.

Untuk menjalankannya sangat simpel sekali. PDF, PNG və JPG sənədlərini təqdim etmək üçün son sənədləri əlavə edin.

  1. Bu arc ArcMap atau juga bisa melalui ArcCatalog
  2. Əlavə olaraq Arctoolbox bir əlavə alət qutusu əlavə edin və alətlər ixracatçısı yeni bir məhsul təqdim etdi.
  3. Setelah alət qutusu ditambahkan silahkan dibuka maka akan muncul jendela script baru.
  4. Silahkan masukkan MXD yang akan di ixrac (bisa lebih dari satu)
  5. Tentukan qovluğu outputnya
  6. Resolusi (dpi)
  7. PDF, PNG və JPG formatında ixracat formatlaşdırın - PDF yeni langsung dikombin (gabungan)
  8. Terakhir OK, maka alətləri və melakukan proses ixracatını həyata keçirir.

Baiklah sekian dulu untuk paylaşma üçün yaxşı bir şey var Export Banyak MXD ArcGIS Sekaligus - Çoxlu İxrac. Jika ada saran, tanggapan, pertanyaan, link mati serta sorğusu silaka gunakan kotak komentar, sosial media yeni veb sayt Lapak GIS. Terima Kasih.

Lapak CİS 

Uzaqdan Algılama (Coğrafi İnformasiya Sistemi) və Coğrafi İnformasiya Sistemi (GIS) ilə əlaqəli bir müddətdir.


Videoya baxın: ArcGIS - Converting a geodatabase to shapefiles (Oktyabr 2021).