Poligon Voronoi yang habis hingga tak terbatas?

18

Saya telah berupaya mengimplementasikan skrip voronoi.py (terjemahan Bill Simon tentang kode Steve Fortune). Menurut tautan QGIS pada dasarnya ini adalah kode yang sama dengan yang saya kerjakan, tetapi cara untuk menghasilkan poligon yang dapat diperluas hingga tak terbatas berbeda antara keduanya. Dalam kasus QGIS, saya berasumsi bahwa beberapa persegi panjang pembatas dihasilkan pada batas tertentu di luar batas titik situs. Dalam kasus saya, saya membuat titik situs palsu sebagai lingkaran yang mengelilingi titik situs menarik. Titik lingkaran memiliki jari-jari dua kali diameter dari luas titik situs. Hasil antara keduanya ditunjukkan pada gambar terlampir, implementasi QGIS di sebelah kiri dan implementasi saya di sebelah kanan. Contoh Voronoi.

Seperti yang dapat dilihat, implementasi QGIS menghasilkan poligon aneh yang tidak memiliki poin situs (lihat situs 473 sebagai contoh dalam kedua implementasi). Ini jelas salah, tetapi saya tidak yakin apakah implementasi saya juga benar. Karena saya tidak memiliki akses ke lisensi ArcInfo untuk ArcMap, saya tidak bisa membandingkannya dengan apa yang dihasilkan ArcMap secara asli dan saya tidak bisa melihat cara untuk melampirkan shapefile titik situs untuk diuji seseorang. Jadi, jika ada yang punya komentar tentang penggunaan "lingkaran infinity" saya untuk membantu memaksa poligon tepi versus "persegi panjang infinity", saya akan sangat menghargainya. Lebih baik lagi, jika ada yang tertarik untuk menguji output pada beberapa platform GIS lain saya dapat memberikan shapefile dari poin situs yang saya gunakan.


Tampaknya bagian dari masalahnya adalah bahwa poligon di luar titik situs tumpang tindih, jadi ketika disimbolkan tanpa isian, maka muncul poligon yang berbeda. Gambar berikut menunjukkan apa yang terjadi ketika poligon tentang situs 473 dan 415 dipilih. Jadi pertanyaan aslinya tetap ada, tetapi ada kerutan baru.


Ini adalah bug (atau "ketidaklengkapan"), hasil yang benar di QGIS jika buffer 0% digunakan. Yang masih perlu dipecahkan adalah apakah pola padat "titik infinity" melingkar akan menghasilkan hasil yang sama dengan "tepi infinity" persegi panjang.

masukkan deskripsi gambar di sini

PolyGeo
sumber
Saya ingin mencoba data poin Anda. Tes saya tidak menunjukkan perilaku seperti itu.
underdark
Saya memiliki file zip siap untuk pergi, hubungi saya melalui email di [email protected] dan saya bisa meneruskannya kepada Anda. Saya pikir saya menambahkan buffer 10% ketika menjalankan voronoi di QGIS.
Mungkin Anda dapat merumuskan kembali apa pertanyaan Anda saat ini (setelah Pembaruan 2).
underdark
Kerja bagus. Saya harap Anda akan membagikan kode Anda dengan komunitas entah bagaimana.
Michalis Avraam
lihat tautan di bawah dalam Jawaban, saya harus memperbarui sejak ESRI membunuh utas asli

Jawaban:

10

Saya dapat mengkonfirmasi bahwa implementasi saya paling tidak sebanding dengan ArcGIS (tetapi memerlukan lisensi ArcInfo). Implementasi QGIS salah karena jarak buffer digunakan. Bagi mereka yang menggunakan ArcGIS dengan lisensi ArcView, toolset untuk Voronoi dan / atau Delaunay dapat ditemukan sebagai Triangulation Tools .

PolyGeo
sumber
Ada beberapa bug dalam kode QGIS Voronoi. Banyak perbaikan telah diterapkan di QGIS 3.2.2. Akan menarik untuk didengar jika itu telah membantu.
Håvard Tveite