Daha çox

Bir çox təbəqəni .pdfs-ə ixrac etmək üçün ArcPy istifadə edirsiniz?


Aşağıdakı məsələyə bir həll tapdım. Problem GetParameterAsText kodlaşdırması ilə əlaqəli idi, onu bir vasitə olaraq giriş olaraq istifadə etmədən. Rastr qatlarının açılmamasının səbəbi bu idi.


Python üçün kifayət qədər yeniyəm. Budur sualım:

Hər biri eyni dərəcədə olan on yüz onurğasız növ üçün fərdi sıra xəritələrim var. ArcGIS 10.2-də Python istifadə edərək bu xəritələri .pdf-ə ixrac etmək istəyirəm. Hər bir xəritədə ayrıca "Yerlər" və "Çaylar" formalı sənəd olmalıdır (bu iki formalı bütün növlər üçün eynidir).

ArcPy istifadə edərək görüntüyü ayırmaq üçün hər qatı xəritədə ixrac etməkdən skripti dəyişdirməyə çalışdım?

Aşağıdakı ssenarinin işə ehtiyacı var (və qeyd etdiyim digər yazını cavablandıran Roy-a kredit verməliyəm), amma indiyə kimi sahib olduğum budur:

mxd = arcpy.mapping.MapDocument ("CURRENT") df = arcpy.mapping.ListDataFrames (mxd, ") [0] allLayers = arcpy.GetParameterAsText (0) lyrList = allLayers.split ("; ") PDFPath = arcpy. (1) arcpy.mapping.ListLayers (mxd, ", df) içindəki lyr üçün: lyrListdəki qat üçün: if lyr.name ==" Yerlər ": lyr.visible = True əgər lyr.name ==" Çaylar ": lyr .visible = True əgər lyr.name == qat: lyr.visible = True arcpy.mapping.ExportToPDF (mxd, os.path.join (r "C:  Project_7  Newer_data  Inverts  GO", PDFPath, lyr.name + ".pdf"), qətnamə = 150) # EDIT: Bu sətir indi işləyir. lyr.visible = Yanlış arcpy.RefreshActiveView () del mxd

Düşünmürəm ki, ilmələri düzgün yerə əlavə etmişəm. Xəritədə hər dəfə göstərilən "Yerlər" və "Çaylar" qatlarına ehtiyacım var (yəni, hər bir sıra xəritəsi üçün).

Verilənlərimə uyğun olaraq aşağıdakıları necə dəyişdirəcəyimi bilmirəm:

arcpy.mapping.ExportToPNG (mxd, PDFPath + "" + lyr.name + ".pdf")

Konkret olaraq, "" nəyi əvəz edirəm? Hər iki arxa zərbənin də orada olması lazımdır? (yəni PDFPath + "C: Project_7 Newer_data Inverts GO )

Bundan əlavə, iki kod şəkli əlavə edilmədən yalnız aşağıdakı kodu işləməyə çalışdım, lakin təbəqələr açılmır.

arcpy.mapping.ListLayers (mxd, ", df) içindəki lyr üçün: lyrListdəki qat üçün: əgər lyr.name == qat: lyr.visible = True arcpy.RefreshActiveView ()

Çıxış faylı adı ilə nə etməyə çalışdığınızdan əmin deyiləm, ancaq bu şəkildə qurmaq nəticə verməyəcək - yolun C: ilə başlaması lazımdır.

Ayrıca, Python'da yolları bir-birinə əlavə etmək üçün os.path.join istifadə etmək yaxşı bir təcrübədir, məsələn.

idxal os… arcpy.mapping.ExportToPDF (mxd, os.path.join (r "C:  Project_7  Newer_data  Inverts  GO", PDFPath, lyr.name + ".pdf"))

Bir sətirdə bir '' bir qaçış xarakteri sayılır, buna görə sətirdən əvvəl 'r' əlavə etməlisiniz, beləliklə python onu xammal sətir kimi qəbul etməli və ya '' istifadə etməlidir.


Hər biri xəritəni eyni dərəcədə əhatə edən məlumatlara əsaslanan səhifələrdən istifadə edərdim. Səhifələrin adını saxlamaq üçün bir sahə varsa, görünüşü qatları göstərə / gizlədə bilərsiniz. Hər təbəqəyə sahə əlavə edin və müvafiq səhifə adı ilə doldurun. Uyğun / uyğunsuzluq seçimlərindən istifadə edərək göstərmək / gizlətmək üçün təbəqənin tərif sorğu pəncərəsindən istifadə edin.


Videoya baxın: GIS Python: Count shape files and Select by Location 2 Real world ArcPy examples (Oktyabr 2021).