Saya menulis skrip python untuk ArcGIS 10.3. Saya tahu tentang Scale tool
antarmuka ArcGIS tetapi saya tidak dapat menemukan perintah arcpy tersebut. Itu ada?
Seperti yang Anda lihat pada gambar, Scale tool
karya - karya berbeda dari Buffer tool
- itu mengubah bentuk poligon asli. Jadi pertanyaannya adalah:
Bisakah saya menggunakan Scale tool
(tersedia dari antarmuka ArcGIS) menggunakan arcpy?
arcgis-desktop
arcpy
polygon
Tuan Che
sumber
sumber
Jawaban:
Saya tidak mengetahui apa pun di arcpy API yang akan melakukan penskalaan untuk Anda, tetapi menulis fungsi untuk melakukannya akan relatif sederhana.
Kode di bawah ini melakukan penskalaan untuk fitur 2D, dan tidak memperhitungkan nilai M atau Z akun:
Anda dapat menyebutnya dengan objek geometri, faktor skala (1 = ukuran yang sama, 0,5 = ukuran setengah, 5 = 5 kali lebih besar, dll.), Dan titik referensi opsional:
Gunakan ini bersama dengan kursor untuk skala seluruh kelas fitur, dengan asumsi kelas fitur tujuan sudah ada:
sunting: inilah contoh menggunakan perkiraan geometri pengujian Anda, untuk 0,5 dan 5 kali:
Juga diuji dengan poligon multi-cincin (lubang)!
Penjelasan, seperti yang diminta:
scale_geom
mengambil satu poligon dan loop melalui setiap titik, mengukur jarak dari itu ke titik referensi (secara default, centroid dari poligon).Jarak itu kemudian diskalakan oleh skala yang diberikan untuk membuat titik 'skala' baru.
Penskalaan dilakukan dengan menggambar garis pada dasarnya pada skala panjang dari titik referensi melalui titik asli, dengan ujung garis menjadi titik skala.
Sudut dan benda rotasi ada di sana karena lebih lurus ke depan untuk menghitung posisi ujung garis sepanjang sumbu tunggal dan kemudian memutarnya 'ke tempatnya.'
sumber
bdist = refgeom.distanceTo(apnt)
. Bisakah Anda menguji dan memperbaikinya?