Daha çox

ArcPy/SearchCursor ilə cədvəldə son sətrin dəyərlərini alırsınız?

ArcPy/SearchCursor ilə cədvəldə son sətrin dəyərlərini alırsınız?


Sorğumu cədvəlin son sətrinə əsaslandırmaq istərdim? Axtarış kursorum üçün əsas sintaksis/funksionallığı bilirəm, yalnız son sətri necə sorğu -sual edə bilərəm;

Aşağıda axtarış meyarlarımın bir nümunəsi var, bu məlumatlar işləyən bir skript üçün müvəffəqiyyət/uğursuzluq jurnalından gəlir, digər qərarları müvəffəqiyyətə əsaslandıracağam və ya tətbiqdə daha sonra uğursuz olacağam.

Mövcud koduma son cərgədə baxmaq funksiyasını necə əlavə edə bilərəmgetValue-dənvaxtuğurvə yauğursuzluq

ArcGIS 10.2 istifadə edirəm.

cursor = arcpy.SearchCursor (aTable, "" "Time> DATEADD (dəqiqə, -2, GETDATE ())" "") imlecdəki satır üçün: print (row.getValue ("Time")) if row.getValue (" Zaman ") 

Bu daha sonra skriptdə tətbiq olunur vəuğurvə yauğursuzluqkimi dəyərlərbəliyoxmüvafiq olaraq.

rows = arcpy.InsertCursor (aTable) x üçün xrange (0, outputobjects) üçün: row = rows.newRow () row.setValue ("Uğur", 'YES') row.setValue ("Uğursuz", "NO") sətri .setValue ("Zaman", Başlat) rows.insertRow (satır)

Ümumiyyətlə da.SearchCursor -u da təklif edərdim, ancaq bəndinə görə sırası yalnız bir verilənlər bazasındakı məlumatlar ilə işləyir. Beləliklə, bir verilənlər bazasında varsa:

a_table = "YourTable" order_fld = "Zaman" return_flds = ["Zaman", "SomeOtherField"] burada_str = "" "Zaman> DATEADD (dəqiqə, -2, GETDATE ())" "" sql_clause = (Yox, 'SİFARİŞ {} DESC'.format (order_fld)) last_row = "last_time =" ilə arcpy.da.SearchCursor (a_table, return_flds, where_clause = where_str, sql_clause = sql_clause) imleç olaraq: last_row = cursor.next () last_time = last_time_ ]

Əks təqdirdə, bir şəkil sənədidirsə:

sort_string = "{} D" .format (order_fld) arcpy.SearchCursor (a_table, where_clause = where_str, sort_fields = sort_string) last_row = cursor.next () last_time = last_row.Time

Bunların hər ikisində də "son" sətri əldə etmək üçün bütün nəticəni döndərmək lazım deyil. Azalan sifariş verərək, sonuncu sıra 1 -ci sıradır və irəliləyə bilərsiniz.


10.2 istifadə edirsinizsə, əvvəlcə axtarış kursorunun məlumat təhlili versiyasını istifadə etməyi məsləhət görürəm. Sonra son dəyəri əldə etmək üçün pythonun siyahı anlayışından istifadə edə bilərsiniz.

Aşağıdakı kod kimi bir şey sınayın. 'Zaman' sahəsindəki bütün dəyərlərin siyahısını yaradır və sonra indeksləşdirmə ([-1]siyahı anlama xəttinin sonunda).

#Zaman sahəsi adı TimeFld = "Zaman" #Siyahı anlama və məlumat analizi axtarış kursoru LastTimeValue = [r [0] in r in arcpy.da.SearchCursor (aTable, TimeFld)] [-1] #Logic yoxlayın LastTimeValue 

Bunu bir siyahı anlayışına bükülmüş Axtarış Kursoru ilə edə bilərsiniz:

idxal arcpy # Giriş şp fc fc = r'C:  path  to  your.shp ' # Bütün satır dəyərlərini tuples siyahısı kimi sıralayın = [arcpy.da.SearchCursor (fc, "*")] # # Sonuncu sətrin çap sətirlərini əldə et [-1]

Başqa bir fikir, baxmayaraq ki, bütün bu cavablar işləməlidir. Bu, bütün imleci təkrarlamaq məcburiyyətindən qaçınacaqdır. Sql_clause -un performansı azaldacağından əmin deyiləm:

oid_field = "OBJECTID" sql = ("SİFARİŞ {0} D". format (aid_field), "") ilə arcpy.da.SearchCursor (cədvəl, "*", sql_clause = sql) imleç olaraq: kursordakı satır üçün: last_row = satır sonu

Obyekt id sahəsinin adı, işlədiyiniz verilənlər bazasının növündən asılıdır, lakin ən yüksək dəyər həmişə son sətir olacaq. Bu kursor, obyekt identifikatoruna görə azalan şəkildə sıralanacaq və sonra yalnız birinci sətri təkrarlamalısınız. Bunu sınamamışam, amma…


Əvvəlki dəyərlərin üstünə yazılan bir qrupa əlavə

Bir şəkil faylının bütün çoxlu xətlərini əldə etmək üçün arcpy istifadə edirəm. SearchCursor bir imleci qaytarır ki, forma faylının bütün xüsusiyyətlərini təkrarlayım. Məsələ burasındadır ki, sonra istifadə etmək üçün kursor tərəfindən qaytarılmış bütün obyektləri saxlamaq istəyirəm.

Tuple, kursor tərəfindən qaytarılmış bütün obyektləri ehtiva edir. Ancaq yalnız son elementlərin dəfələrlə təkrarlanan ölçüsü var.

3610930 2135882 3611593 2134453

3611806 2134981 3611593 2134453

3614160 2136164 3617432 2131734

3611593 2134453 3617432 2131734

3617432 2131734 3620568 2127591

3620568 2127591 3620785 2127423

3617980 2126657 3620568 2127591

3616768 2129454 3617948 2126649

3617948 2126649 3617980 2126657

3615102 2128889 3617587 2126510

3617587 2126510 3617948 2126649

3617624 2126416 3617980 2126657

3613129 2128176 3615155 2125617

3615155 2125617 3617587 2126510

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

Əvvəlcə bunu siyahıdan istifadə edərək sınadım. 'Append ()' metodundan istifadə etdiyim zaman eyni çıxış siyahı üçün də tapıldı. Tuple dəyişməz bir məlumat quruluşu olduğu üçün + əvvəlki bütün elementlərin üzərinə necə + yaza bilər. Bu kod arcpy üçün yazılsa da, problemin arcgisə xas olmadığını düşünürəm.


ArcPy funksiyalarına ümumi baxış

ArcPy, Python istifadə edərək iş axınlarını daha yaxşı dəstəkləmək üçün bir sıra funksiyalar təmin edir.

Bu mövzuda sadalanan funksiyalara əlavə olaraq, ArcPy funksiyaları haqqında daha çox məlumat üçün Pythonda Alətlərin İstifadəsinə baxın. Əlavə funksiyalar aşağıdakılar da daxil olmaqla digər ArcPy modullarında tapıla bilər:

    (arcpy.charts) (arcpy.da) (arcpy.geocoding) (arcpy.ia) (arcpy.mp) (arcpy.metadata) (arcpy.nax və arcpy.na) (arcpy.sharing) (arcpy.sa) ( arcpy.wmx)

ArcGIS Online / Portal funksiyaları

ClearCredentials funksiyası, təmin edilmiş xidmətlərə girişi aradan qaldırmaq üçün bir müştəri maşınından ArcGIS Server etimadnaməsini çıxarır.

Aktiv portalın URL -i qaytarılır.

GetPortalDescription, anonim və ya daxil olan istifadəçinin gördüyü kimi portalın görünüşünü geri qaytarmaq üçün istifadə olunur. Bu portalın adı, loqotipi, seçilmiş elementləri və dəstəklənən protokolları (HTTP -ə qarşı HTTPS) kimi məlumatları ehtiva edir. İstifadəçi daxil deyilsə, bu zəng portalın standart görünüşünü qaytaracaq. İstifadəçi daxil olarsa, qaytarılmış portalın görünüşü istifadəçinin mənsub olduğu təşkilata xas olacaq. Portalın standart görünüşü istifadəçinin profilindən alınan istifadəçinin mədəniyyətindən asılıdır.

GetPortalInfo funksiyası mövcud portallar haqqında məlumatları ehtiva edən bir lüğət qaytarır.

ArcGIS.com və ya yerli bir portala daxil olduqda token məlumatlarını qaytarır.

ImportCredentials funksiyası, ArcGIS Serverə əsaslanmayan etibarlı xidmətlər üçün GIS Server bağlantı faylından etimadnaməsini daxil edir.

ListPortalURLs funksiyası mövcud portal URL -lərinin siyahısını qaytarır.

SignInToPortal funksiyası portala daxil olmağa imkan verir.

Kursor funksiyaları

Satırları xüsusiyyət sinifinə, şəkil sənədinə və ya cədvələ daxil edir. InsertCursor, Satır obyektlərini paylayan bir sayma obyekti qaytarır.

SearchCursor funksiyası xüsusiyyət sinifində və ya cədvəldə yalnız oxunan bir kursor qurur. SearchCursor, Satır obyektlərini təkrarlamaq və sahə dəyərlərini çıxarmaq üçün istifadə edilə bilər. Axtarış isteğe bağlı olaraq bir bənd və ya sahə ilə məhdudlaşdırıla bilər və isteğe bağlı olaraq sıralana bilər.

UpdateCursor funksiyası, müəyyən edilmiş xüsusiyyət sinifindəki, şəkil sənədindəki və ya cədvəldəki sətirləri yeniləməyə və ya silməyə imkan verən bir kursor yaradır. Kursor, skript tamamlanana və ya yeniləmə kursoru obyekti silinəcək qalan məlumatlara kilid qoyur.

Məlumat saxlama funksiyaları

ArcGIS Server saytı ilə bir qovluq və ya verilənlər bazası qeyd edir.

ArcGIS Server saytında qeydiyyatdan keçmiş qovluqların və ya verilənlər bazalarının siyahısını qaytarır.

ArcGIS Server saytından bir qovluğu və ya verilənlər bazasını qeydiyyatdan keçirir.

Bir ArcGIS Server saytında bir qovluğun və ya verilənlər bazasının uğurla qeydiyyata alındığını yoxlayır.

Məlumat funksiyalarının təsviri

Die Funktion Təsvir edin Təsvir edin -Objekt mit mehreren Eigenschaften, z. B. dem Datentyp, Feldern, Indizes usw., zurück. Ölüm dinamikası. Şəxsi məlumatların yoxlanılması eyni zamanda Eigenschaften -dən heç bir nəticə çıxarmadı.

Ətraf mühit funksiyaları

Müəyyən bir mühit ayarını standart vəziyyətinə qaytarır.

"TEMP" kimi göstərilən sistem mühiti dəyişən dəyərini alır.

Coğrafi işlənmiş mühit adlarının siyahısını qaytarır.

Bütün mühit parametrlərini standart parametrlərinə qaytarır.

Sahə funksiyaları

SQL ifadələrində istifadəyə icazə vermək üçün sahə adlarına sahə ayırıcıları əlavə edir.

İş sahəsindən asılı olaraq komponentlərinə (verilənlər bazası, sahib adı, cədvəl adı və sahə adı) tam uyğun bir sahə adı ayırır. ParseFieldName, ayrılmış cədvəl adını ehtiva edən və vergüllə ayrılmış verilənlər bazasını, sahibini, cədvəlini və sahə adlarını ehtiva edən bir simli qaytarır. İş sahəsi şəxsi, fayl və ya müəssisə coğrafi bazası olmalıdır.

Bir simli (sahə adı) və bir iş sahəsi yolu alır və çıxış coğrafi verilənlər bazasındakı ad məhdudiyyətlərinə əsaslanaraq etibarlı bir sahə adı qaytarır. Giriş sətirindəki bütün etibarsız simvollar alt xətt (_) ilə əvəz olunacaq. Sahə adı məhdudiyyətləri istifadə olunan xüsusi verilənlər bazasından (Structured Query Language [SQL] və ya Oracle) asılıdır.

Ümumi funksiyalar

Bir cədvəl və ya xüsusiyyət sinfi üçün təxəllüs adını yeniləyir.

Bir geoprosessing alətini tək bir simli olaraq icra edir.

Coğrafi işləmə obyektləri yaradır. Əlavə arqumentlər, ValueTable obyektindəki sütunların sayı kimi obyektin yaradılması üçün əlavə tələbləri müəyyən etmək üçün istifadə edilə bilər.

Yeni təsadüfi ədədlər generatoru yaradır.

Yerli kompüterdəki mövcud printerlərin siyahısını qaytarır.

Göstərilən alət və ya funksiyanın sintaksisini qaytarır.

Ümumi məlumat funksiyaları

Göstərilən məlumat növü üçün unikal bir cızma yolu adı yaradır. Heç bir iş sahəsi verilmirsə, cari iş sahəsi istifadə olunur.

Giriş adına bir nömrə əlavə etməklə göstərilən iş sahəsindəki unikal bir ad yaradır. Adı unikal olana qədər bu rəqəm artırılır. Heç bir iş yeri göstərilmirsə, cari iş sahəsi istifadə olunur.

Göstərilən məlumat obyektinin varlığını təyin edir. Bu funksiya xüsusiyyət sinifləri, cədvəllər, məlumat dəstləri, şəkil faylları, iş sahələri, təbəqələr və fayllar daxil olmaqla müxtəlif məlumat növlərinin mövcudluğunu yoxlayır. Funksiya elementin olub olmadığını göstərən bir Boolean qaytarır.

İş sahəsindən asılı olaraq bir masa adını komponentlərinə (verilənlər bazası, sahibi, cədvəli) ayırır. ParseTableName, veritabanı adı, sahib adı və cədvəl adı ilə vergüllə ayrılmış ayrılmış cədvəl adını ehtiva edən bir sətri qaytarır. Bu iş sahəsi şəxsi, fayl və ya müəssisə coğrafi bazası olmalıdır.

Bir xüsusiyyət sinfi, cədvəl və ya xüsusiyyət verilənlər bazası üçün bir sxem kilidinin əldə edilə biləcəyini sınayır. Şemanı dəyişdirən vasitələr, giriş məlumatlarına bir sxem kilidinin qoyulmasını tələb edəcək. Əlavə Sahə aləti belə bir vasitəyə nümunədir. Alət bir sxem kilidi tələb edirsə və icra zamanı birini əldə edə bilmirsə, uyğun bir səhv mesajı qaytarılır. Bu cür vasitələrdən istifadə edən skriptlər giriş məlumatlarında bir sxem kilidinin əldə oluna biləcəyini yoxlamalıdır. TestSchemaLock funksiyası giriş məlumatlarına bir sxem kilidi tətbiq etməyəcək, ancaq bir Boolean qaytaracaq.

Cədvəl adı və iş yeri yolu alır və iş sahəsi üçün etibarlı bir cədvəl adı qaytarır. Alt xətt "_" cədvəl adında olan hər hansı bir etibarsız simvolu əvəz edəcək və iş sahəsi üçün ad məhdudiyyətlərini yerinə yetirəcək. Cədvəl adı məhdudiyyətləri istifadə olunan xüsusi RDBMS -dən asılıdır.

Geodatabase idarəetmə funksiyaları

Administratora inzibati olmayan istifadəçilərin müəssisə coğrafi verilənlər bazası ilə əlaqə qurma qabiliyyətini aktiv etməsinə və ya söndürməsinə icazə verir.

Administratora hazırda müəssisə coğrafi verilənlər bazasına qoşulmuş istifadəçilərin əlaqəsini kəsmək imkanı verir.

Müəssisə coğrafi verilənlər bazasına qoşulmuş istifadəçilər üçün məlumatları ehtiva edən adlandırılmış tuplların siyahısını qaytarır.

Həndəsə funksiyaları

Esri JSON və ya GeoJSON həndəsəsini ArcPy həndəsəsinə və Esri JSON xüsusiyyət dəstlərini ArcPy xüsusiyyət dəstlərinə çevirir. GeoJSON, coğrafi məlumat strukturlarını kodlaşdırmaq üçün bir coğrafi məlumat mübadiləsi formatıdır.

WGS84 koordinatlarında bir PointGeometry obyektinə bir koordinat sistemi notation simini çevirir.

Bir geohash sətrini WOHS 1984 koordinatlarında coğrafi cədvəlin müvafiq məhdudlaşdırıcı qutusunu təmsil edən Extent obyektinə çevirir.

Baytrayda saxlanılan tanınmış ikili (WKB) sətirdən yeni həndəsə obyekti yaradın.

Tanınmış bir mətn (WKT) simindən yeni bir Həndəsə obyekti yaradın.

Lisenziyalaşdırma və quraşdırma funksiyaları

Müəyyən bir uzantı növü üçün bir lisenziyanın mövcud olub olmadığını yoxlayır.

Lisenziyanı Lisenziya Menecerinə qaytarır, belə ki, digər tətbiqlər ondan istifadə edə bilər.

Lisenziyanı Lisenziya Menecerindən alır.

Tələb olunan lisenziyanın olub olmadığını yoxlayır.

GetInstallInfo funksiyası quraşdırma haqqında məlumat olan bir lüğət qaytarır.

ListInstallations funksiyası quraşdırma növlərinin siyahısını (server, masa üstü, mühərrik, arcgispro) qaytarır.

Mövcud məhsul lisenziyasını qaytarır.

Məlumat siyahı funksiyaları

Mövcud iş sahəsindəki məlumat dəstlərinin siyahısını qaytarır. Qayıdılan siyahını məhdudlaşdırmaq üçün verilənlər bazası adı və verilənlər bazası növü üçün axtarış şərtləri təyin edilə bilər.

Mövcud iş sahəsindəki xüsusiyyət siniflərinin siyahısı, adı, xüsusiyyət növü və isteğe bağlı xüsusiyyətlər dəsti ilə məhdudlaşdırılır.

Müəyyən bir verilənlər bazasındakı bir xüsusiyyət sinifindəki, şəkil sənədindəki və ya cədvəldəki sahələrin siyahısını qaytarır. Qaytarılmış siyahı ad və sahə növü üçün axtarış meyarları ilə məhdudlaşdırıla bilər və sahə obyektlərini ehtiva edir.

Mövcud iş sahəsindəki faylların siyahısını qaytarır.

Müəyyən bir verilənlər bazasındakı bir xüsusiyyət sinifindəki, şəkil sənədindəki və ya cədvəldəki indekslərin siyahısını qaytarır.

Mövcud iş sahəsindəki rasterlərin siyahısını qaytarır.

Cari iş sahəsindəki cədvəllərin siyahısını qaytarır.

Bağlı istifadəçinin istifadə etmək icazəsi olan versiyaları sadalayır.

Mövcud iş sahəsindəki iş sahələrinin siyahısını qaytarır.

Giriş funksiyaları

Tarix qeydinin aktiv olub olmadığını müəyyən edir.

Coğrafi işləmə əməliyyatlarının verilənlər bazası metadatasına yazılı olub -olmadığını müəyyənləşdirir.

Coğrafi işləmə vasitələrinin icrası ilə bağlı məlumatların xarici bir günlük faylına yazılıb -yazılmamasına nəzarət edir.

Alətin giriş və çıxış məlumat toplusunun meta məlumatlarının alət işləmə müddətini və digər məlumatları daxil etmək üçün geoprocessing alət məlumatlarının yenilənməsini yoxlayır.

Mesaj və səhv idarəetmə funksiyaları

Bir skript alətinin və ya Python alət qutusu vasitəsinin mesajlarına bir səhv mesajı (2 dərəcəsi) əlavə edir.

Sistem mesajlarını bir skript vasitəsi ilə istifadə etməyə imkan verir.

Bir skript alətinin və ya Python alət qutusu vasitəsinin mesajlarına xüsusi bir məlumat mesajı (0 şiddəti) əlavə edir.

Bir skript alətinin dönüş mesajını indeks üzrə çıxış mesajı olaraq təyin edir.

Bir skript alətinin və ya Python alət qutusu vasitəsinin mesajlarına xüsusi bir xəbərdarlıq mesajı (1 şiddəti) əlavə edir.

Səhv və ya xəbərdarlıq ID mesajının simini alın.

Son icra olunan vasitədən geri qaytarılmış maksimum şiddəti alır.

İndeks mövqeyinə görə bir coğrafi işləmə vasitəsi mesajını qaytarır.

Son icra olunan əmrdən geri qaytarılmış bütün mesajların sayını qaytarır.

Müəyyən bir şiddət səviyyəsində bir vasitədən geoprosessing mesajlarını qaytarır.

Mesaj səhv kodunu indeksə görə qaytarın.

Göstərilən mesajın şiddət kodunu (0, 1, 2) indekslə alır.

Şiddət səviyyəsini qaytarır. Şiddət səviyyəsi, geoprosessing vasitələrinin istisnalar yaratmasını nəzarət etmək üçün istifadə olunur.

Coğrafi işləmə vasitələrinin istisnaları necə atdığını idarə etmək üçün istifadə olunur.

Parametr funksiyaları

Göstərilən parametri indeksə görə skript alətindəki başqa bir parametrə kopyalayır. Göstərilən parametrlər eyni məlumat tipində olmalıdır.

Skriptə verilən arqumentlərin sayını qaytarır.

Parametrlər siyahısından indeks dəyərinə görə istədiyiniz parametri seçin. Parametr obyekt olaraq qaytarılır.

Parametrlər siyahısından indeks mövqeyinə görə göstərilən parametri mətn sətri kimi alır.

Göstərilən alət üçün parametr dəyərlərinin sayını qaytarır. Alət xüsusi bir alət qutusunda varsa, xüsusi vasitəyə daxil olmaq üçün ImportToolbox istifadə edin.

Verilmiş bir alət üçün parametr obyektlərinin siyahısını qaytarır və ümumiyyətlə bir skript alətinin ToolValidator sinifində istifadə olunur.

Göstərilən bir alət adı üçün, istədiyiniz parametrin standart dəyərini qaytarır.

Bir obyekt istifadə edərək müəyyən bir parametr xüsusiyyətini indeksə görə təyin edir. Bu funksiya obyektləri skriptdən skript alətinə ötürmək üçün istifadə olunur. Bir simli keçmək lazımdırsa, SetParameterAsText funksiyasından istifadə edin.

Parametrlər siyahısından indeks mövqeyinə görə göstərilən parametri mətn sətri kimi alır.

Bir skript alətinin göstərilən çıxış parametrinin simboloji xüsusiyyətlərini təyin edir.

Tərəqqi dialoq funksiyaları

Proqressoru ilkin vəziyyətinə qaytarır.

Coğrafi İşləmə bölməsində göstəriləcək irəliləyiş məlumatlarını dəstəkləmək üçün bir inkişaf etdirici obyekti qurur. Proqressorun görünüşü ya standart irəliləyici, ya da addım irəliləyicisi seçilərək idarə oluna bilər.

Coğrafi İşləmə bölməsindəki irəliləyici etiketini yeniləyir.

Coğrafi İşləmə bölməsindəki irəliləyici vəziyyət çubuğunu yeniləyir.

Nəşriyyat funksiyaları

Funksiya, bir lokatoru bir coğrafi kod xidməti nəşr etmək üçün bir xidmət tərifi yaratmaq üçün istifadə edilə bilən bir Xidmət Tərif Draft (.sddraft) faylına çevirir.

Funksiya Nəticə obyektlərini və nəticə fayllarını (.rlt) Service Definition Draft (.sddraft) sənədlərinə çevirir.

CreateImageSDDraft funksiyası, ArcPy -dən istifadə edərək bir mozaika verilənlər bazası və ya rastr verilənlər bazasının Şəkil Xidməti olaraq nəşrini avtomatlaşdırmaq üçün ilk addımdır. CreateImageSDDraft -dan yaradılan çıxış, coğrafi verilənlər bazasındakı mozaika məlumatlarının və ya raster verilənlər bazasının, server haqqında məlumatların və bir sıra xidmət xassələrinin birləşməsindən ibarət olan bir Xidmət Tərifi Layihəsi (.sddraft) sənədidir. Bu xidmət tərifi layihəsi xidmət tərifi olaraq səhnələşdirilə bilər və sonra müəyyən bir ArcGIS serverinə bir şəkil xidməti olaraq yüklənə bilər.

Raster funksiyaları

Coğrafi etiketli bir şəkildən EXIF ​​başlıq məlumatlarını qaytarır.

NumPy serialını rasterə çevirir.

Rasteri NumPy massivinə çevirir.

Məkan istinad və çevrilmə funksiyaları

Xəritənizin və ya təhlilinizin təyin olunmuş dərəcəsi və nəzərdə tutulan məqsədi üçün optimal olan xüsusi layihələndirilmiş koordinat sistemi olan bir SpatialReference obyekti yaradır.

SpatialReference sinifinə arqument olaraq istifadə etmək üçün mövcud məkan istinad adlarının siyahısını qaytarır.

Etibarlı çevrilmə üsullarının siyahısını qaytarır. Müəyyən bir coğrafi sahə üçün etibarlı çevrilmə üsullarının siyahısını daraltmaq üçün bir ölçü istifadə edilə bilər.

Alət və alət qutusu funksiyaları

Göstərilən alətlər qutusunu ArcPy -yə idxal edərək, alətlər qutusunun əlaqəli alətlərinə daxil olmağa imkan verir.

Şifrələnmiş Python alət qutusu faylının şifrəsini açın.

Python alət qutusu faylını şifrələyir.

Göstərilən alətlər qutusunu ArcPy -yə idxal edərək, alətlər qutusunun əlaqəli alətlərinə daxil olmağa imkan verir.

Bir alətin sinxron və ya asenkron işlədiyini təyin edir. Bir alət sinxron olduqda, nəticələr avtomatik olaraq geri qaytarılır, lakin alət tamamlanana qədər başqa heç bir tədbir görülə bilməz. Bütün server olmayan alətlər sinxrondur. Server alətləri asinxron ola bilər, yəni alət serverə təqdim edildikdən sonra digər funksiyalar gözləmədən işlədilə bilər və nəticələr açıq şəkildə serverdən tələb olunmalıdır.

Alət qutularının siyahısını qaytarır.

Coğrafi işləmə vasitələrinin siyahısını qaytarır.

Yolunu göstərərək və ya ləqəbinə istinad edərək göstərilən alətlər qutusunu silin. Göstərilən alət qutusunu cari geoprosessiya sessiyasından silinir. Server alət qutuları da nöqtəli vergül ayırıcısı istifadə edərək silinə bilər.


1 Cavab 1

GIS SE -yə xoş gəldiniz.
Ssenarinizi redaktə etdim. Xahiş edirəm qeyd edin:

Yeni, daha sürətli "da" yanaşmasını daxil etmək üçün axtarış kursorunu yenilədim. Zəhmət olmasa kursorlardan istifadə haqqında oxuyun

Aşağıdakı skript cədvəldəki hər bir satır üçün fld_name dəyərini çap edəcək.

Fayl yerlərini müəyyən etməyə çalışarkən xam giriş formatını istifadə edin.

Təklifləriniz üçün təşəkkür edirik. Bu skriptdən istifadə etdim və .mdb -ni .gdb -ə dəyişdim və işlədi.


Kursorlar və kilidləmə

Kursorları daxil edin və yeniləyin, ArcGIS tətbiqləri tərəfindən qurulan masa kilidlərinə hörmət edin. Kilidlər birdən çox prosesin eyni cədvəli eyni anda dəyişdirməsini maneə törədir. İki növ kilid var: paylaşılan və eksklüziv.

  • Bir cədvələ və ya verilənlər bazasına daxil olduqda, paylaşılan kilid tətbiq olunur. Bir masa üçün birdən çox paylaşılan kilid ola bilər, ancaq paylaşılan kilid varsa heç bir eksklüziv kilidə icazə verilmir. ArcMap -da bir xüsusiyyət sinifinin göstərilməsi və ArcCatalogda bir cədvələ önizləmə, paylaşılan kilidin nə vaxt tətbiq olunacağına nümunələrdir.
  • Xüsusi kilidlər bir cədvəldə və ya xüsusiyyət sinifində dəyişiklik edildikdə tətbiq olunur. ArcMap -da bir xüsusiyyət sinifini redaktə etmək və saxlamaq ArcCatalogda bir cədvəlin sxemini dəyişdirmək və ya PythonWin kimi Python IDE -də bir xüsusiyyət sinifində əlavə kursoru istifadə etmək, ArcGIS tərəfindən müstəsna bir kilidin tətbiq olunmasına nümunələrdir.

Bu verilənlər bazası üçün müstəsna bir kilid varsa, cədvəl və ya xüsusiyyət sinfi üçün yeniləmə və əlavə kursorları yaradıla bilməz. Məlumat bazasında eksklüziv bir kilid olduğuna görə UpdateCursor və ya InsertCursor funksiyaları uğursuz olur. Bu funksiyalar müvəffəqiyyətlə bir imleci yaradarsa, iki skriptin eyni verilənlər bazasına yeniləmə yarada və ya kursor əlavə edə bilməməsi üçün verilənlər bazasına eksklüziv bir kilid tətbiq edirlər.

Python -da kilid kursor buraxılana qədər davam edir. Əks təqdirdə, bütün digər tətbiqlərin və ya skriptlərin bir verilənlər bazasına girməsi lazımsız şəkildə qarşısı alına bilər. Kursor aşağıdakılardan biri ilə sərbəst buraxıla bilər:

  • Kursoru müvəffəqiyyətlə tamamladığından asılı olmayaraq kilidlərin sərbəst buraxılmasını təmin edəcək ifadəsi olan bir ifadənin daxil edilməsi
  • Kursorda sıfırlama () çağırılır
  • Kursorun tamamlanması
  • Python -un del ifadəsini istifadə edərək kursoru açıq şəkildə silmək

ArcMap -da bir düzəliş seansı, düzəliş seansı zamanı məlumatlara paylaşılan kilidi tətbiq edir. Düzəlişlər qeyd edildikdə müstəsna bir kilid tətbiq olunur. Eksklüziv bir kilid varsa, məlumat dəsti redaktə edilə bilməz.


Kelsey Kaszas - Coğrafi İnformasiya Sistemləri (GIS)

Bu kod 2012 -ci ilin qışında UCLA -da GIS üçün Proqramlaşdırma və İnkişaf kursu zamanı yaradılmışdır. Kodun məqsədi UCLA Coğrafiya Departamentindən Dr.Tomas Gillespie tərəfindən aparılan araşdırmalar üçün nəzərdə tutulmuşdur, lakin kod müxtəlif tətbiqlər üçün istifadə edilə bilər. .

Dr Gillespie -nin araşdırması, torpaq örtüyündə əhəmiyyətli dəyişiklik görmüş qlobal biomüxtəlifliyin qaynar nöqtələrinin müəyyənləşdirilməsini əhatə edir. İstifadə olunan məlumatlar GLOBCOVER layihəsi adlanır və Avropa Kosmik Agentliyi (ESA) tərəfindən yaradılır. Məlumatlar, örtük növlərinə görə təsnif edilmiş bir peyk görüntü rasteridir. Hər bir neçə ildən bir yeni bir məlumat dəsti yaradılır və Gillespie'nin araşdırma məqsədi, ekoloji bölgələri, ölkələri və qorunan əraziləri zamanla müqayisə edərək meşələrin deqradasiyasını araşdırmaqdır.

Bu araşdırma sualının həllinə kömək etmək üçün bu kod çoxbucaqlılar üçün (örn. Eko-bölgələr, ölkələr və qorunan ərazilər) torpaq örtüyünün (km2) statistikasını və%torpaq örtüyünün (%) istehsalını təmin edir. Bu, GLOBCOVER rasterindən piksel məlumatlarını çıxarmaq üçün çoxbucaqlılardan istifadə etməklə həyata keçirilir. Müvəqqəti müqayisə aparmaq üçün müqayisə statistikasını çəkmək üçün ayrı bir kod tələb olunacaq.


Texniki kodun təsviri:
Batch Raster Extractor, bir vektor faylının çoxbucaqlılarından istifadə edərək raster məlumatlarını çıxarmaq üçün standart və təkrarlanan bir yol təqdim etmək məqsədi daşıyır. Ssenari dörd əsas mərhələdə işləyir. Birincisi, istifadəçi maraqlandığı vektor və raster faylını daxil edir. İkincisi, hər bir çoxbucaqlını ayrı bir şəkil faylına ixrac etmək üçün atributlara görə bölmə vasitəsi istifadə olunur. Üçüncüsü, hər bir çoxbucaq rasterin üstündə maskalanır və rasterin bir alt qrupunu çıxarmaq üçün istifadə olunur. Dördüncüsü, statistika hər bir raster alt kümesi üçün hesablanır, Sahə və Yüzdə sahələri hər alt dəstin atribut cədvəllərinə əlavə olunur.

Kod Tələbləri:
Bu kodu istifadə etmək üçün istifadəçinin ArcGIS 10 (və ya yuxarıda) üçün Python 2.6 quraşdırılmış olması lazımdır. Bu kodda "Xüsusiyyətlərə görə Qatı Böl" adlı xüsusi bir python skriptindən istifadə olunur, bu kodun bu linkdən işləməsi üçün yüklənməlidir. İstifadəçinin ArcGIS Spatial Analyst Extension üçün lisenziyası olmalıdır.


1 Cavab 1

Sahəniz tarix tarixidirsə, aşağıdakı kod işləməlidir. Sonrakı sətir olmadığı üçün son sətir hesablanmır. Yoxsa, məsələn, ikinci satır-birinci sıra kimi ikinci satır fərqini hesablamaq istəyirsiniz?

Bu səbəbdən SE -dən istifadə etməyi sevirəm, əvvəllər iter () funksiyasından heç vaxt istifadə etməmişəm, uzaqlaşıb baxmalı idim, bəyəndim! Bu yanaşma ilə performans artımı varmı və ya rahatlıq üçündü?

Gözəl! Performans artımının olub olmadığını bilmirəm. İstifadə edirəm, çünki eyni anda bir kursor və siyahı üzərində iterasiya etmək əvəzinə siyahıdakı əşyaları əldə etmək sadə bir yoldur.

Bir şey olsa, əslində olacaq yavaşçünki cədvəl bir dəfə deyil, iki dəfə keçilir. Ancaq kiçik masalar üçün bu problem ola bilməz.


1 Cavab 1

Bunu yerləşdirdikdən sonra prosesi yenidən düşündüm və istədiyim kimi işləyən bu kodu hazırladım. Sadəcə, köhnə beyin qarışıqlığından keçmək lazım idi.

Daxili ifdən sonra şərti olmayan bir fasilə verməkdən və əgər xaricini çıxarmaqdan daha mürəkkəbdir. İmleci silməyinizə də ehtiyac yoxdur (tutacaqları ilə)


Aşağıdakı nümunə üçün bəndin olduğu yeni bir nöqtəyə qarşı arcpy searchcursor üçün üslub seçməlisiniz.

Bir çox əlavə şəkil fayl qovluğu yaradarkən hər hansı bir dml əməliyyatı olan model. Daha sonra qırmaq və ya ayırmaq və ya proqramlaşdırma daxilində arcpy axtarış kursorunda altıbucaqlı mişar alətini yaradırıq. Maddənin fərqli olduğu arcpy searchcursor olan searchcursor istifadə edərək. Açar sözlərə və kompüterinizi dayandırmağa xüsusi diqqət yetirilir. Axtarış kursoru, fərqli bir iş axını istiqamətinə daxil edilə bilər və ya sadəcə maddənin fərqli olduğu arcpy searchcursor üçün səhifə nömrələnməsi əvəzinə yazıla bilər. Mesajlar prosesi, siyahılara və ya bütün fayllara ehtiyac duymaq üçün cədvəl sorğularının arcpy axtarış cursoruna əvəz edilməsini təmin edir, burada nöqtə işarəsi ilə əldə edilən unikal dəyərlərin fərqli işlərinin üsulları ehtiva edir, əgər explode_to_points varsa! Ancaq hazırkı şəkil fayllarının fərqli, fərqli bir geriləmənin bunu izah etməsi lazım olan bir arcpy axtarış kursoru var idi? Bir -birinə coğrafi işləmə funksiyalarını daxil etdikdən və məhdudiyyətin toplandığı bənd olan arcpy searchcursor tərəfindən bir çoxbucaq quran hər hansı bir mühit olan bir skript haqqında məsləhət. İstifadə olunan sahə ayırıcılarından asılı olmayaraq, maddənin fərqli ola bilməyəcəyi bu qabiliyyət? Bina konstruksiyalarının bütün ünvanları əldə etdiyini sübut edən fərqli bir şəkildə, fərqli bir bəndin işlədiyi arcpy searchcursor istifadə edərək hər cür əks etdirməlidir. Əsas qaydaları bir dəyərdəki başqa bir dəyərə avtomatlaşdıra bilər və fərqli sorğu bəndinin olduğu arcpy searchcursor üçün ideal olaraq kölgə sala bilər! Bəzi idarəetmə qurumları ilə görüşən bəndlərdə yuvalanmış döngələr. Qalaylar və yanaşma, bəndin fərqli və ya fərqli olduğu, iki növ kod kimi naxışlar yaratmaq məcburiyyətində qalmamaq üçün bir kanal ötürülməsinin arcpy axtarış imlecinin qarşısını alır? Həm istifadə etmək üçün şiddət səviyyəsini bəyənmək üçün bir çox təpələrdə ən çox sorğuların dəyişdirilməsi yaşıl? Uzaqdan işləyərkən. Kursorun axın planının bu proqramlara ekvivalenti istəyə biləcəyi hər hansı bir tapşırıqla daha təsirli sahələri ehtiva edə bilər. İstifadəçiləriniz üçün yalnız new_selection -da çoxbucaqlı xüsusiyyətlərin dəyərini təkrarlayan joker xüsusi olaraq arcpy axtarış imlecinin hüdudlarından kənara çıxdıqda, onu qiymətləndirmək üçün ayrı bir sorğu! Ümumi büdcəyə görə bir xüsusiyyət sinif arcpy imleci nə edir. Fərqli dəyişənlər maddəsinin olduğu arcpy searchcursor siyahıları kimidir. Adətən fərqli sətirlər və ya sayğacların olduğu bütün sahələr skriptin həddən artıq qiymətləndirilməsinə səbəb olduğu axtarış imlecini arcpy etməyə hazırlaşırsınız.


ArcPy və ArcGIS: Python ilə coğrafi analiz

Təkrarlanan tapşırıqları azaltmaq və təhlili daha sürətli yerinə yetirmək üçün ArcPy -dən necə istifadə olunacağına dair bir anlayışa ehtiyacı olan bir GIS tələbəsi və ya mütəxəssisisinizsə, bu kitab sizin üçündür. Həm də coğrafi analizlərin necə avtomatlaşdırılacağını anlamaq istəyən Python proqramçıları üçün dəyərli bir kitabdır.

ArcGIS coğrafi məlumatların kompleks təhlilinə imkan verir. ArcPy modulu, bu ArcGIS analizlərini yazmaq üçün istifadə olunur, bu da geoanalizlər aparmaq və xəritə istehsalını avtomatlaşdırmaq üçün məhsuldar bir yol təqdim edir.

Bu kitab, sizi əsas Python skriptlərindən inkişaf etmiş ArcPy skript alətlərinə yönləndirəcək. Bu kitab Python mühitinizi qurmaqla başlayır, çoxlu iterasiyalı kompleks bir ArcPy skript alətini nümayiş etdirir, məlumatlara giriş modulu kursorlarını göstərir və ArcPy Geometry dərslərinin necə istifadə olunacağını izah edir. Sonra ArcPy.Mapping istifadə edərək xəritələrin necə çıxarılacağını və ArcGIS skript alətlərinin necə yaradılacağını öyrənəcəksiniz.

Bu kitabın köməyi ilə CİS-in vaxt aparan təbiətini azaldan təkrarlanan analizlər yarada və bütün bir komanda kimi güclü bir GIS mütəxəssisinə çevriləcəksiniz.


Videoya baxın: HowTo ArcMap - Add a field to a table attribute table Mon, Jan 19, 04 05 PM