Arti dari parameter toleransi Menyederhanakan

45

Parameter standar dari algoritma penyederhanaan Douglas-Peucker adalah geometri dan toleransi (mis. ST_Simplify di PostGIS). Apa arti dari parameter toleransi ? Saya tahu bahwa semakin besar nilainya, geometri akan semakin kasar. Tetapi apakah nomor tersebut memiliki unit atau hanya sewenang-wenang?

ejel
sumber

Jawaban:

41

Toleransi adalah jarak . Secara kasar, "goyangan" apa pun dalam kurva yang bervariasi dari garis lurus kurang dari jumlah ini akan diluruskan. Algoritma ini menemukan gerak-gerik yang paling ekstrim yang melebihi toleransi, menunjukkan titik-titik di mana titik-titik itu paling menyimpang dari jalur yang lurus, dan kemudian secara rekursif berlaku sendiri pada busur di antara gerak-gerik yang dijepit.

Toleransi harus dinyatakan dalam unit yang sama yang digunakan oleh perangkat lunak untuk mengeksekusi algoritma. (Ini akan tergantung pada apakah ia menggunakan koordinat yang disimpan atau seperti yang diproyeksikan "on the fly" untuk tampilan atau analisis.) Deskripsi yang diilustrasikan muncul dalam artikel Wikipedia pada algoritma Douglas-Peucker.

whuber
sumber
Penjelasan hebat, +1.
Derek Swingley
1
Biasanya, nilai parameter toleransi ini harus sama dengan resolusi target.
julien
1
@ Julien Itu masuk akal. Saya selalu suka memahami alasan di balik aturan praktis seperti itu, karena dalam pengalaman saya banyak kesimpulan seperti itu tidak berlaku ketika lebih teliti diperiksa. (Dan sangat menyenangkan untuk terkejut seperti itu: Anda selalu belajar sesuatu.) Karena itu, bisakah Anda membagikan pemikiran Anda tentang mengapa toleransi harus sama dengan "resolusi target" (dan apa sebenarnya resolusi itu)?
whuber
6

Tidak melihatnya di tautan yang Anda poskan tetapi menemukan ini:

Satuan toleransi sama dengan proyeksi geometri input.

http://revenant.ca/www/postgis/workshop/advanced.html#processing-functions

Derek Swingley
sumber
1
Saya melihat. Tetapi apa artinya sebenarnya ketika mengatakan geometri adalah WGS84 (lat / lon) dan mengatur toleransi ke 1.0? Kesalahan dalam 1 derajat? Masih agak bingung.
ejel
1
Saya tidak akan mengatakan "kesalahan dalam 1 derajat" ... lihat halaman wikipedia untuk algoritme, ada grafik yang bagus dan penjelasan yang bagus di sana: en.wikipedia.org/wiki/…
Derek Swingley