Ada banyak cara untuk mengukur jarak untuk membuat poligon Thiessen. Ide dasar dalam membangunnya didasarkan pada membandingkan jarak antara titik sembarang x dan dua titik tetap p dan q ; Anda perlu memutuskan apakah x "lebih dekat" dengan p daripada q atau tidak. Untuk tujuan ini - setidaknya secara konseptual - kami mempertimbangkan jarak dp = d ( x , p ) dan dq = d ( x , q ). Bobot biasanya terjadi dalam dua cara: titik dapat diberi bobot numerik positif wp dan wq dan jaraknya sendiri dapat diubah.
Agar masuk akal, transformasi (yang akan saya tulis sebagai f ) harus meningkat dengan meningkatnya jarak; yaitu, f (d ')> f (d) setiap kali d'> d> = 0. Contoh transformasi tersebut adalah f (d) = d + 1, f (d) = d ^ 2 (Hukum Gravitasi Eceran Reilly ), f (d) = 1 - 1 / d (dengan asumsi semua jarak kurang dari 1), f (d) = log (d), f (d) = exp (d) -1.
Kami kemudian akan mengatakan x "lebih dekat" ke p daripada ke q kapan tepatnya
f (d ( x , p )) / wp <f (d ( x , q )) / wq.
Perhatikan pembagian dengan bobot, daripada perkalian: ini berarti bobot besar akan cenderung "menarik" titik pada jarak yang lebih besar. Anda akan melihat ini dalam contoh yang berjalan di bawah ini.
Inilah hal yang indah, dan seluruh poin dari eksposisi yang agak abstrak ini: meskipun wilayah Thiessen yang dihasilkan dapat memiliki batas yang kompleks, sangat sulit untuk dihitung, mereka relatif mudah untuk dihitung menggunakan representasi berbasis grid. Inilah resepnya:
Untuk setiap titik input p , hitung kisi jarak Euclidean [d (p)].
Gunakan Peta Aljabar untuk menerapkan f dan bobot, sehingga menyatakan kembali setiap grid jarak sebagai
[fp] = f ([d (p)]) / wp.
Berikut ini adalah contoh menggunakan f (d) = 100 + d ^ (3/2); skalanya adalah 400 dengan 600.
Ketika f (d) meningkatkan nilai semakin gelap. Jelas jarak dalam contoh ini sehubungan dengan titik merah pusat; empat titik lainnya mendapatkan perhitungan jarak terpisah (tidak ditampilkan). Area titik sebanding dengan bobotnya, yaitu 2, 10, 3, 4, dan 5.
Hitung minimum lokal semua kisi ini [fp]. Sebut ini [f]. Berikut ini sebuah contoh.
Dengan membandingkan [f] dengan masing-masing [fp], untuk setiap sel kisi, tentukan pengidentifikasi p pertama yang [f]> = [fp]. (Ini dapat dilakukan dalam satu langkah dengan operasi posisi terendah , misalnya.)
(Saya ragu ada algoritma di mana saja yang akan menghitung solusi format vektor untuk fungsi pembobotan ini. F)
Tentunya jika Anda memiliki lebih dari beberapa poin p Anda akan membuat skrip ini, dan jika jumlahnya mencapai ribuan, Anda mungkin akan mengabaikan upaya tersebut karena secara komputasi tidak praktis (walaupun ada cara untuk mempercepat perhitungan dengan cara memasangnya).
Contoh lain, memperlihatkan poligon Thiessen pada ellipsoid, muncul di /gis//a/17377/ .