Saya ingin membersihkan tabel atribut dari shapefile jalan untuk semua entri di bidang.
Sebagai contoh: Seperti terlihat di bawah ini saya memiliki fitur jalan dengan "Nama", Nama Dari dan Nama Ke dalam daftar atribut. Di baris yang dipilih nama segmen adalah Louis Botha.
NameFrom juga mengandung nama segmen ini (Louis Botha & Tidak Dikenal).
Setelah saya membersihkan data, saya hanya ingin yang berikut ditampilkan di bidang yang relevan:
Name = Louis Botha Name From = Nama Tidak Dikenal To = Janeke
Apakah ada cara untuk menghapus ini di bidang "nama dari" dan "nama ke" untuk SEMUA atribut?
arcpy
arcgis-10.1
fields-attributes
Dean van den Heever
sumber
sumber
Jawaban:
Script berikut melakukan tindakan Anda setelah menggunakan kursor. Ada banyak penanganan kesalahan untuk menangani banyak masalah potensial - hapus sesuai kebutuhan. Ini mengubah data asli, jadi pastikan untuk menjalankan ini pada salinan untuk memastikan hasil yang Anda cari. Saya menambahkan komentar dalam skrip daripada menyoroti di sini.
sumber
Anda dapat menggunakan fungsi Python berikut dalam Field Calculator.
Salin kode di atas ke bagian kode skrip kode / pra-logika. Anda dapat menjalankannya sekali untuk Name_From menggunakan
remove_name(!Name!, !Name_From!)
sebagai ekspresi, dan kedua kalinya untuk Name_To menggunakanremove_name(!Name!, !Name_To!)
.Kode ini akan berfungsi tidak hanya untuk kasus-kasus di mana nilai Nama berada di awal atau akhir Name_From / Name_To , tetapi juga yang ada di tengahnya. Misalnya,
remove_name('Janeke', 'Hereeniging & Janeke & Willemse')
kembali'Hereeniging & Willemse'
. Agar ini berfungsi, nama input harus dipisahkan oleh ampersand (&
).sumber