Daha çox

ArcGIS, tarix saatı formatı olan eyni sahədəki satırlar arasındakı fərqi hesablayır


Burada müzakirə edilən python kodunu dəyişdirmək üçün kömək axtarıram: Atribut Cədvəli Əvvəlki Dəyərdən Dəyəri Çıxartın

Boşluqları əldə etmək üçün əvvəlki vaxta qədər bir vaxt çıxarmaq istədiyim bir tarix sahəsi üçün necə tənzimlənəcəyini tapmaqda çətinlik çəkirəm. Budur indiyə qədər nə var və səhv aldım:

arcpy-dən arcpy idxal et da vertices = "CBR05_T2_10_1_2014_WLanduse_1" gap1 = 0 arcpy.da.UpdateCursor ilə (vertices, ["INDEX_", "Time", "GapDiff"]) kursor kimi: kursor sırası üçün: gap2 = sıra [1 ] sıra [2] = datetime (gap2 - gap1) gap1 = gap2 kursor.updateRow (sıra)

Çalışma vaxtı xətası İzləmə (ən son zəng): "" Fayl, sətir 8, TypeError'da: dəstəklənməyən operand növü (lər) - - 'datetime.datetime' və 'int'


Tam ədədi çıxartmağa çalışırsınızboşluq 1 = 0) aşağıdakı vaxtdakı bir datetime obyektindən:sıra [2] = datetime (gap2 - gap1). İlk satırı atlamalı və sonrakı sıra üçün datetime-ı dəyişənə təyin etməlisiniz. Birinci sətirdə işləmə müddəti olmadığından, dəyər yenilənməyəcəkdir.

Bu mənim üçün işləyir:

arcpy-dən arcpy import da vertices = "CBR05_T2_10_1_2014_WLanduse_1" #set firstRow dəyişəndən true firstRow = True with arcpy.da.UpdateCursor (vertices, ["INDEX_", "Time", "GapDiff"]) kursor kimi: satır üçün : gap2 = sıra [1] # ilk sətrin olub olmadığını yoxlayın firstRow == Doğrudur: gap1 = gap2 # əvvəlcə yalana ilk təyin etRR = = Yanlış davam sətir [2] = str (gap2 - gap1) gap1 = gap2 cursor.updateRow ( sıra)

Qeyd edək ki, "GapDiff" sahəsinin simli sahə olması lazımdır. bir datetime sahəsi bir subtration nəticəsində vaxt dəyərlərini dəstəkləmir (məsələn1 gün).


Həmişə istifadə etmək məcburiyyətində olmadan imlecləri istifadə etmək üçün daha təmiz bir yol olub olmadığını maraqlandımbirinci satıryoxlayın və aşağıdakı işlər çıxır. Jeneratörler üçün horoay *!

arcpy.da.SearchCursor ilə (fc, "OID @") kursor kimi: p = cursor.next () [0] # kursorda sıra üçün əvvəlcədən: c = sıra [0] # cari çap (c - p) #funksiya dəyərləri yeniləmək üçün buraya gedir p = sıra [0] # əvvəlki növbəti təkrarlanır

Verilərinizin necə olduğunu və necə istədiyinizi bilmədənGapDiffsahə doldurulur (simli, int, tarix və s.), bir funksiya ilə gəlməlisiniz.

* Bərikursorgeneratordur,növbəti (kursor)da çağırdığı kimi işləyir.reset ()əvvəldən başlayacaq üsul.


Videoya baxın: دمج الترجمة مع الفيلم في ثواني لمشاهدته علي التلفاز والكمبيوتر (Oktyabr 2021).