Saya mencoba mencari cara untuk membuat poligon yang menghubungkan semua titik akhir dari sebuah shapefile yang berisi satu set poligon dengan skrip pythons di ArcGIS, saya mengalami kesulitan melakukan ini karena urutan node dalam poligon adalah penting. Saya ingin mencapai poligon abu-abu pada gambar dari garis hijau
10
Jawaban:
LANGKAH:
Hitung titik pusat bagian:
Membangun pohon spanning minimum Euclidean mereka, melarutkannya dan menghitung buffer, jarak yang sama dengan setengah panjang bagian terpendek:
Buat titik akhir bagian dan hitung rantainya (jarak sepanjang garis) pada batas buffer (versi buffer polyline tertutup):
Urutkan titik akhir dalam urutan menaik menggunakan bidang rantai. Poin di bawah ini dilabeli oleh FID mereka:
Buat poligon dari set poin yang dipesan:
Naskah:
Saya tahu ini sepeda, tapi itu milik saya dan saya menyukainya
sumber
Saya memposting solusi ini untuk QGIS di sini karena ini adalah perangkat lunak gratis dan mudah diterapkan. Saya dianggap hanya "cabang" yang tepat dari layer vektor polyline; karena dapat diamati pada gambar berikutnya (12 fitur di tabel atribut):
Kode (algoritme dalam pemahaman daftar python satu baris), untuk berjalan di Konsol Python QGIS, adalah:
Setelah menjalankan kode:
itu diproduksi lapisan memori poligon (dengan 11 fitur di tabel atributnya). Ini bekerja dengan baik.
sumber
Anda dapat memilih titik akhir yang akan berpartisipasi dalam poligon, membuat TIN hanya dari titik-titik tersebut. Konversikan TIN menjadi poligon, larutkan poligon. Trik untuk mengotomatiskan proses ini adalah menentukan titik mana yang berkontribusi pada setiap poligon. Jika Anda memiliki garis dengan arah yang valid, dan garis-garis itu semua memiliki atribut yang sama, Anda bisa menulis kueri untuk mengekspor, katakan simpul akhir menggunakan simpul garis ke titik, lalu pilih dengan atribut titik-titik yang memiliki nilai atribut umum.
Lebih baik mengekstrak / memilih titik, membaca nilai x, y menggunakan kursor, menggunakan nilai x, y untuk menulis poligon baru. Saya tidak bisa melihat gambar terlampir di posting Anda, tetapi jika urutan poin penting maka setelah Anda memiliki nilai x, y disimpan dalam daftar Python, urutkan mereka. http://resources.arcgis.com/EN/HELP/MAIN/10.1/index.html#//002z0000001v000000
sumber
Memperluas pada komentar @iant, geometri terdekat dengan foto Anda adalah bentuk alpha (alpha hull) dari titik akhir. Untungnya banyak utas yang diterima dengan baik telah dijawab di GIS SE. Sebagai contoh:
Buat Polygon Kompleks dari Point Layer menggunakan hanya Boundary Points di ArcGIS
Apa itu Definisi, Algoritma, dan Solusi Praktis untuk Concave Hull?
Untuk mengatasi masalah Anda, pertama-tama gunakan Feature To Point untuk mengekstrak poin akhir. Kemudian gunakan alat python dari Tautan ini untuk menghitung lambung cekung.
sumber