Daha çox

ArcPy istifadə edərək mxd sənədinin rasteri yenilənir?


ArcGIS 10 istifadə edərək python istifadə edərək raster faylını bir mxd sənədində yeniləmək istədi. məsələn, içərisində b.tif faylı olan a.mxd yaratdım. indi, c.tif əldə etdim və a.mxd-i yeniləmək istəyirəm, yəni b.tifı silmək və c.tif əlavə etmək və ya b.tif-in üzərinə c.tif ilə yazmaq istəyirəm

idxal arcpy mxd = arcpy.mapping.MapDocument (r "C:  data  a.mxd") df = arcpy.mapping.ListDataFrames (mxd) [0] updateLyr = arcpy.mapping.ListLayers (mxd) [0] sourceLyr = arcpy.mapping.Layer (arcpy.Raster (r "C:  data  c.tif")) arcpy.mapping.UpdateLayer (df, updateLyr, sourceLyr, True) del mxd

yuxarıda olduğu kimi başlamışdım, amma düşünürəm ki, əksər şeyləri düzgün əldə etmirəm.


Məncə sən istəyirsənəvəzDataSourceəvəzinəUpdateLayer. Yeniləmə bir şablon istifadə edir mənbəLyrvə xüsusiyyətlərini (məlumat yolu, simbologiya və s.) yenilənəcək təbəqəyə tətbiq edir, halbuki yalnız məlumat yolunu / fayl adını dəyişdirmək istəyirsiniz.

Daha ətraflı məlumat üçün Esri sənədlərindəki arcpy.mapping ilə məlumat mənbələrinin yenilənməsi və düzəldilməsi və ArcPy istifadə edərək * .lyr fayllarındakı xüsusiyyət verilənlər bazasının daxil olduğu məlumat mənbəyi yolunun dəyişdirilməsinə baxın? burada GIS.se-də bəzi qəribə davranışların fərqində olması üçün.


'C.lyr' adlı yeni tif-dən ibarət bir qat faylı yaradın və eyni qovluğa yerləşdirin (yəni c: data c.lyr) Sonra bunu xəritə sənədinin içərisinə daxil edin:

import arcpy mxd = arcpy.mapping.MapDocument ("CURRENT") in df in arcpy.mapping.ListDataFrames (mxd): for refLayer in arcpy.mapping.ListLayers (mxd, "* b.tif", df): mozaik = arcpy .mapping.Layer (u'C:  data  c.lyr ') arcpy.mapping.InsertLayer (df, refLayer, mozaika, "ƏVVƏL") mosaic.visible = refLayer.visible mozaika.brightness = refLayer.brightness mozaika .contrast = refLayer.contrast mosaic.transparency = refLayer.transparency mosaic.name = refLayer.name arcpy.mapping.RemoveLayer (df, refLayer) arcpy.RefreshActiveView () arcpy.RefreshTOC () del mxday, xaricində: nəhayət keç: çap u'TIF yeniləndi! '

Və ya bir funksiyanı seçsəniz:

def UpdateTIF (mxd, köhnə, yeni): #mxd: yeniləmək üçün mxd-yə yol # köhnə: köhnə mənbə üçün joker işarəsi uyğunluğu nümunəsi #new: yeni mənbə idxal arcpy mxd = arcpy.mapping.FF üçün mapDocument (mxd) arcpy.mapping.ListDataFrames (mxd): arcpy.mapping.ListLayers (mxd, köhnə, df) içindəki refLayer üçün: mozaika = arcpy.mapping.Layer (yeni) arcpy.mapping.InsertLayer (df, refLayer, mozaika, "BEFOR ") mosaic.visible = refLayer.visible mosaic.brightness = refLayer.brightness mosaic.contrast = refLayer.contrast mosaic.transparency = refLayer.transparency mosaic.name = refLayer.name arcpy.mapping.RemoveLayer (df, df cəhd edin: del refLayer, mozaika xaricində: nəhayət keçin: çap edin'TIF yeniləndi! '

Bunu bir zəng ilə icra edin:

UpdateTIF ('C:  data  a.mxd', '* b.tif', 'C:  data  c.lyr')

Arcpy TableView sinfinə 'serviceProperties' xassəsi əlavə edin

ArcPy Xəritəçəkmə Modulunda, TableView sinfinə 'serviceProperties' adlı xassəni əlavə edin. Bu xüsusiyyət 'xüsusiyyət qat' sinifində mövcuddur və mənim kimi ptyhon proqramçılarına müəyyən bir SDE qatının hansı serverdən gəldiyini müəyyənləşdirməyə imkan verir.

Müəyyən bir MXD-dəki bütün mənbələri bir serverdən digərinə dəyişdirmək üçün bir Python aləti yazmağa çalışıram. Lakin MXD birdən çox SDE-dən təbəqələr və cədvəl görünüşlərini ehtiva edir, mən yalnız bir SDE-dən məlumatları dəyişdirmək istəyirəm (Test SDE-dən bir istehsal SDE-yə məlumat mənbələrini yenidən dəyişdirmək kimi).

Qatların yerini dəyişdirmək üçün 'dəyişdirilmiş qaynaq' metodu kifayət deyil, çünki cədvəlin xəritəyə əlavə edilməsi üçün istifadə olunan SDE əlaqə sənədinin yolunun nə olduğunu bilən proqramçı mənə etibar edir. Ancaq mən sadəcə proqramçı olduğum üçün istifadəçilərin əlavə etdikləri müəyyən SDE əlaqələrinin adının nə ilə əlaqələndirildiyi barədə heç bir fikrim yoxdur. Sadəcə hər bir təbəqədə və cədvəldə axtarış aparmaq və müəyyən bir serverin adının olub olmadığını görmək üçün xidməti və ya server xəttini yoxlamaq istərdim. Əgər belədirsə, qatı fərqli bir serverə dəyişdirmək üçün kodumu işə sala bilərəm.


Rastrın idarəetmə nöqtələrinə uyğunlaşdırılması

Ümumiyyətlə, istədiyiniz xəritə koordinat sistemində yerləşən yerdən məlumat verilən rasters və ya bir vektor xüsusiyyət sinfi kimi mövcud məkan məlumatlarını (hədəf məlumatlarını) istifadə edərək raster məlumatlarınızı georeferans edəcəksiniz. Proses, raster verilənlər bazasındakı yerləri məkan baxımından istinad edilən məlumatlarda (hədəf məlumatları) birləşdirən bir sıra torpaq nəzarət nöqtələrinin - x, y koordinatlarının müəyyənləşdirilməsini əhatə edir. Nəzarət nöqtələri, raster verilənlər bazasında və real koordinatlarda dəqiq bir şəkildə müəyyən edilə bilən yerlərdir. Yol və ya axın kəsişmələri, bir axının ağzı, qaya kənarları, bir ərazinin dalğıc nöqtəsi, qurulmuş sahənin köşəsi, küçə küncləri və ya kəsişmə kimi bir çox fərqli xüsusiyyət müəyyən edilə bilər. iki kirpi.

Nəzarət nöqtələri, raster məlumatlarını mövcud yerindən məkan baxımından düzgün yerə dəyişəcək bir polinom çevrilməsini qurmaq üçün istifadə olunur. Rastr məlumat dəstindəki bir idarəetmə nöqtəsi (nöqtədən) ilə uyğunlaşdırılmış hədəf məlumatlarına (nəzarət nöqtəsinə) uyğun idarəetmə nöqtəsi arasındakı əlaqə bir əlaqədir.

Aşağıdakı nümunə, bir küçə kəsişməsində vektor hədəf məlumatlarına yerləşdirilmiş bir nəzarət nöqtəsini (sarı xaç) və raster verilənlər bazasına yerləşdirilmiş əlaqəli nəzarət nöqtəsini (yaşıl xaç) göstərir. Əlaqədar əlaqə, nəzarət nöqtələrini birləşdirən mavi xətt ilə təmsil olunur.

Yaratmağınız lazım olan keçidlərin sayı, raster məlumatlarını koordinatlarına çevirmək üçün istifadə etməyi planlaşdırdığınız transformasiyanın mürəkkəbliyindən asılıdır. Bununla birlikdə, daha çox link əlavə etmək mütləq daha yaxşı bir qeyd gətirməyəcəkdir. Mümkünsə, bağlantıları bir ərazidə cəmləşdirmək əvəzinə bütün raster verilənlər bazasına yaymalısınız. Tipik olaraq, raster verilənlər bazasının hər bir küncündə ən azı bir əlaqənin olması və içəridə bir neçə ən yaxşı nəticəni əldə etməsi.

Ümumiyyətlə, raster verilənlər bazası ilə hədəf məlumatları arasında üst-üstə düşmə daha çox olarsa, uyğunlaşma nəticələri bir o qədər yaxşı olar, çünki raster verilənlər bazasının georeference üçün daha geniş nöqtələrə sahib olursunuz. Məsələn, hədəf məlumatlarınız yalnız raster məlumatlarınızın dörddə birini tutarsa, raster verilənlər bazasının hizalanması üçün istifadə edə biləcəyiniz nöqtələr həmin üst-üstə düşmə sahəsi ilə məhdudlaşacaqdır. Beləliklə, üst-üstə düşən ərazidən kənar ərazilərin düzgün bir şəkildə hizalanması ehtimalı yoxdur.

Yerləşdirilmiş məlumatlarınızın yalnız uyğunlaşdırıldığı məlumatlar qədər dəqiq olduğunu unutmayın. Səhvləri minimuma endirmək üçün ehtiyaclarınız üçün ən yüksək qətnamə və ən böyük miqyasda olan məlumatlara üstünlük verməlisiniz.


ArcPy istifadə edərək mxd sənədinin rasteri yenilənir? - Coğrafi İnformasiya Sistemləri

Giriş: Əvvəlki fəsildə statistik cədvəllərin necə qurulacağını öyrəndik [1] , Ancaq bir çox halda məzmunu sadə və aydın şəkildə ortaya qoymaq üçün məlumatlara ehtiyac var, buna görə statistik qrafiklərin necə qurulacağını öyrənmək də vacibdir

1. Təcrübə məqsədi

Mövcud üslub simvollarına uyğun olaraq məlumatların göstərilmə üsuluna yiyələnin

Məkana görə element və atributların seçilməsi metoduna yiyələnin

Statistik qrafiklərin hazırlanması metoduna yiyələnmək

Ch2Fayl. chap2markingchartchart.mxd

3. Təcrübə tələbləri

Səs-küy sahəsinin əhatə dairəsini sayın, hansı torpaq istifadəsi növləri var və ərazi nədir?

Tokenləşmə kateqoriyasındaBənzərsiz dəyərseçinTorpaq istifadəsiVə sonra rəng zolağına görə bütün sahələri və rəngi əlavə edin (əl ilə)

Addım 2 Səsdən təsirlənən ərazinin kilidini açın

(1) Əsas menyu seçimindəYerə görə seçin. Hədəf qatının olduğu yerTorpaq istifadəsi, Orijinal qatSəs qatı, Yer seçmə metoduİki təbəqənin kəsişməsindənSeçim edin, sonra müraciət edin

Torpaqdan istifadə qatında tarixi tapın və nəticədə təcrübədə seçilən xüsusiyyət olduğu yerdə göstərin və sonra qeyd edin

(3) Aşağıdakı şəkildə göstərildiyi kimi səs-küydən təsirlənən ərazi istifadəsi sahəsi əldə edilir

Torpaqdan istifadə növü üçün atribut cədvəlini açınStatistika xülasəsi, SeçimdirBölgəni ümumiləşdirin, Sonra birCəmi, Sonra çıxış, çıxış növü atribut cədvəlidir, qeyd edin, xəritəyə əlavə edin

Üçüncü addım bir statistik cədvəl hazırlayır

Hazırlanan formanı göstərin, yəni keçinBax, Diaqramı tapın və diaqramı yaradın

Budurx oxuTorpaqdan istifadəni göstərir. Rəng, etiket ekranı, əfsanə ekranı və s. Ayaqdan çıxara və sonra İleri düyməsini basa bilərsiniz

(2) Aşağıdakı şəkildə göstərildiyi kimi statistik kəmiyyət üçün başlıq və əfsanə başlığını təyin edin və əlavə edin

(3) Aşağıda göstərildiyi kimi əfsanəni və başlığı dəyişdirin

Nəhayət, görünüşdə bir şəkil çəkin,Düzeni tənzimləyinMenyu aşağıda göstərildiyi kimi açmaq üçün