Saya memiliki ArcGIS Desktop 10.2 dan tantangan saya adalah bagaimana mengekstrak simpul jumlah di setiap poligon untuk semua fitur seperti ini:
Saya memiliki banyak paket di kelas fitur saya dan saya ingin mengekstrak jumlah simpul untuk semua fitur secara terpisah, maka saya ingin menampilkan koordinat XY untuk semua simpul.
untuk informasi lebih lanjut, saya hanya ingin mengkonversi simpul untuk setiap poligon dan menampilkan nomor setiap simpul yang terlihat dari 1 angka, jadi jika saya memiliki poligon dan memiliki 4 simpul, ingin mengkonversi poligon menjadi simpul saya menampilkan jumlah simpul seperti ini (1,2,3,4,5), kemudian menampilkan xy untuk setiap simpul, saya pikir id tantangan sebenarnya, bagaimana mengkonversi semua poligon menjadi simpul dan membuat setiap jumlah simpul mulai dari 1 angka.
Jawaban:
Kode di bawah menggabungkan jawaban lain dan menambahkan sedikit ke nomor simpul.
Poin diberi label dalam urutan gambar. Titik terakhir (di bawah yang pertama) tidak akan memiliki label dan dapat dihapus dengan memilih semua titik yang memiliki nilai Null, atau unik, "DRAW_ORDER" jika tidak diperlukan untuk rekonstruksi. Kueri definisi dapat digunakan untuk menghapus titik yang tumpang tindih dari tampilan.
Data XY hadir, tetapi saya akan menyerahkannya pada keinginan pelabelan / tampilan Anda. Lihat jawaban Aaron tentang menambahkan bidang XY untuk pelabelan.
Saya juga bermain-main dengan FeatureClass ke array numpy, tapi saya menyelesaikan ini dulu.
sumber
Cara termudah untuk melakukan ini adalah menambahkan bidang bilangan bulat baru ke tabel atribut lapisan parsel. Kemudian, jalankan kalkulator bidang dengan ekspresi berikut:
The
!Shape!.pointCount
mengembalikan jumlah simpul dalam fitur. Namun, simpul pertama dari setiap bagian diulangi di bagian akhir, untuk menutup fitur. Untuk menangani ini, kurangi satu simpul untuk setiap bagian menggunakan-!Shape!.partCount
.Perhatikan bahwa Anda harus menggunakan pengurai Python untuk ekspresi ini agar berfungsi.
sumber
SearchCursor
metode dalam jawaban Aaron atau alat geoprocessing seperti Feature Vertices To Points (meskipun alat ini memerlukan lisensi ArcGIS untuk Desktop Advanced).dmahr memberikan solusi yang baik untuk menghitung simpul. Untuk cara yang tidak terprogram untuk memberi label setiap titik dengan koordinat XY, coba alur kerja berikut:
Hitung bidang "XY" di kalkulator bidang, di mana XY =
str (! x!) + "," + str (! y!)
Fitur label. Klik kanan layer> Label> Bidang Label: XY
Ini menghasilkan hasil sebagai berikut:
Anda juga dapat melakukan tindakan ini secara terprogram menggunakan
explode_to_points
dengan kursor pencarian (sebagai permulaan).sumber
Jika seseorang tidak ingin menghitung bidang baru dan hanya ingin mendapatkan sejumlah simpul per lapisan kembali dengan sangat cepat (untuk keperluan generalisasi seperti ketika mengekspos dataset di web), maka dimungkinkan untuk membuat alat skrip khusus di dalam toolbox atau memaparkan kode sebagai tambahan Python.
Kode alat skrip khusus:
Kode add-in Python (pilih layer di TOC untuk menghitung simpul):
sumber