Casting objek hasil ArcPy dari arcpy.GetCount_management () sebagai integer?

18

Saya mencoba untuk mendapatkan nomor dengan menghitung berapa banyak poin dalam suatu shapefile. Dan ini berhasil, kecuali saya kemudian mengalami kesulitan menggunakan nomor itu di tempat lain. Akhirnya, saya akan menggunakan hitungan itu dalam beberapa matematika (kalkulator bidang), tetapi saat debugging saya mengalami kesalahan yang akhirnya akan menyebabkan saya kesulitan nanti.

Kode ini:

TotalPoints = arcpy.GetCount_management(Path_Pts)
arcpy.AddMessage(">>>> PROCESS: COUNT PATH POINTS {" + TotalPoints + "}")

memberikan kesalahan ini:

TypeError: cannot concatenate 'str' and 'Result' objects

Saya mencoba casting sebagai int, yang juga tidak suka:

TypeError: int() argument must be a string or a number, not 'Result'

Jadi saya punya objek 'Hasil' dan perlu mengubahnya menjadi angka.

Bagaimana saya bisa melakukan itu - atau menggunakan fungsi ArcPy tidak perlu atau terlalu rumit di sini?

Erica
sumber

Jawaban:

45

Gunakan metode berikut pada objek Hasil dan Anda akan dapat berperan sebagai int:

.getOutput (0) akan mengembalikan nilai pada posisi indeks pertama alat.

int(arcpy.GetCount_management(Path_Pts).getOutput(0))

ccn
sumber
3

GetCount mengembalikan objek Hasil dan bukan bilangan bulat atau string.

Untuk mendapatkan string, Anda menggunakan metode getOuput dari objek hasil dan tarik bagian pertamanya. Untuk melihat bagian lain, coba alihkan 0 untuk 1, 2, dll.

Jika Anda perlu mengubah string itu menjadi integer maka gunakan fungsi int ().

Untuk mempelajari lebih lanjut tentang objek Hasil dan metode getOutput, Bantuan Online harus dikonsultasikan.

PolyGeo
sumber