Saya mencoba menggunakan sintaksis Python di bidang kalkulator ArcGIS 10 dan saya benar-benar bingung. Sejauh ini perhitungan paling dasar gagal saya, dan saya tidak mengerti mengapa. Saya mencoba membuat fungsi untuk hanya mengatur nilai semua sel dalam kolom menjadi kelipatan argumen yang saya berikan (saya ingin mencoba sesuatu yang sederhana untuk mengujinya, karena apa pun yang lebih rumit yang saya coba juga gagal ).
Namun, pesan kesalahan memberi tahu saya bahwa sintaks saya salah:
tapi saya tidak bisa mengerti apa yang salah.
Selain itu, saya juga ngeri betapa sulitnya menulis python yang bisa dibaca di kotak kalkulator lapangan karena tidak ada penyorotan sintaksis, atau lekukan yang jelas. Akan lebih cepat, dan lebih mudah untuk menulis skrip Python eksternal untuk melakukan perhitungan ini, tetapi saya ingin mencoba mencari tahu bagaimana fungsi baru ini bekerja di dalam program.
code-block
; Saya hanya ingin cara cepat untuk melakukan perhitungan yang lebih rumit daripadaa + b
def test(var1): return var1*2
), lalu menyalin blok kode dan klik kanan di jendela interaktif memilih "Jalankan kode python dari clipboard", lalu uji / debug fungsi dengan nilai yang mungkin untukvar1
(misalnya,test(4)
harus mengembalikan 8). Ini adalah metode Python murni untuk mengembangkan dan menguji blok kode sebelum memperkenalkannya ke ArcGIS.Jawaban:
Mungkin karena Anda menggunakan nama bidang tempat nama parameter harus pergi.
Sebagai gantinya, coba sesuatu seperti:
sumber
!field!
konvensi hanya bekerja di dalam ekspresi, tidak di blok kode. Anda juga bisa menempatkan10
sebagai ekspresi dan membiarkan blok kode kosong.!field!
di blok kode Anda.Seperti komentar Jason Scheirer, Anda tidak bisa menggunakan! Field! di dalam logika pra-skrip.
Log Script Pra:
avg_miles =
Catatan: "Trik" yang dapat Anda gunakan untuk menyederhanakan kekacauan ini ... Anda dapat menggunakan jendela Perintah interaktif di ArcMap untuk membuat dan menguji kode python (seperti metode pendefinisian). Setelah Anda berhasil, Anda dapat merujuk metode python yang dibuat di jendela interaktif dari jendela Calculate Field.
sumber