QGIS mengkoordinasikan presisi

11

Di mana (xth) tempat desimal dari nilai koordinat QGIS mendefinisikan set poin yang merupakan duplikat?

Saya telah berpikir QGIS menangani ~ desimal ke-15; tetapi itu adalah keterbatasan hanya karena saya telah mengerjakan Shapefile terutama.

masukkan deskripsi gambar di sini

Namun, batas tidak berlaku ketika saya memilih sumber data lain, seperti lapisan awal sementara.

masukkan deskripsi gambar di sini

Menggunakan data dummy seperti di bawah ini, saya membuat tes cepat dengan dua alat, untuk menemukan nilai terkecil yang dapat mereka identifikasi perbedaan koordinat:

  • Geoprosesing QGIS: Delete duplicate geometries
  • Plugin MMQGIS: Delete Duplicate Geometries

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Output oleh QGIS Delete duplicate geometriessama dengan data input di atas (semua 20 catatan disimpan), jadi itu mungkin berarti QGIS berpikir mereka semua berbeda. Apakah batas ini melampaui 1e-29 (atau 1e-30) yang terlihat dalam tes kecil ini?

Sama seperti perbandingan, MMQGIS Delete Duplicate Geometriesdiproduksi di bawah ini. Tampaknya MMQGIS menetapkan batas desimal ke-16 atau ke-17.

masukkan deskripsi gambar di sini


[Sunting]

Saya khawatir belum jelas apa yang menjadi bagian utama dari pertanyaan saya. Tujuan saya untuk memahami hubungan antara nilai-nilai koordinat dan duplikat / tumpang tindih, seperti yang dinyatakan dalam paragraf pertama dari pertanyaan saya. Semoga pengetahuan semacam ini dapat membantu kita dengan mudah mengontrol fitur yang tumpang tindih dengan mengubah-ubah ekspresi kalkulator lapangan.

Namun, masalah mendasar yang saya coba fokuskan adalah bahwa tempat desimal QGIS mengenali titik (node) yang tumpang tindih tampaknya bervariasi, tergantung pada sumber data.

Jika kita menggunakan Shapefile untuk layer kita, QGIS menangani ~ desimal ke-15 dan perbedaan yang lebih kecil (pada tanggal 16 atau 17) tidak dikenali ... MMQGIS juga dipengaruhi oleh batasan ini (di mataku). Jika kita membuat lapisan awal sementara atau lapisan DB batasan ini melampaui 30-ish? Perubahan perilaku ini membuat saya bertanya-tanya.

Kazuhito
sumber
2
Dengan ArcGis saat membuat kelas fitur dalam database Anda dapat menentukan perbedaan minimal antara dua koordinat yang akan dianggap berbeda (nilai default tampaknya 0,001 m untuk koordinat yang diproyeksikan dalam meter dan 0,000000008983153 derajat untuk WGS84). Saya juga tertarik untuk mengetahui apa nilai-nilai ini dalam qgis dan jika Anda dapat memodifikasinya.
JR

Jawaban:

2

Alat Hapus Geometri Duplikat QGIS (dalam Geoalgoritma QGIS 2.18, Vector General Tools) adalah skrip Python yang beroperasi pada objek geometri yang diekspor / diekspos oleh lapisan Python QGIS. Dan di bawahnya ada lapisan GEOS.

Operator persamaan geometri lapisan GEO menerima parameter toleransi (dalam satuan jarak peta) saat membandingkan dua geometri. Sayangnya, parameter toleransi ini tidak diekspos oleh lapisan Python QGIS - maka untuk Hapus Duplikat Geometri , dua geometri dianggap sama jika dan hanya jika semua nilai XY-nya benar-benar sama. Misalnya, POINT (1,000000 1,000000) tidak sama dengan POINT (1,00000001 1,00000001).

Ralph Tee
sumber
Terima kasih telah melihat geoalgoritma QGIS! Dari temuan Anda, jika alat pembungkus (seperti skrip Python) tidak memiliki akses ke parameter toleransi, apakah itu menyiratkan bahwa toleransi hanya bergantung pada tipe data? (Dengan kata lain, apakah itu alasan mengapa toleransi seolah-olah dikendalikan oleh sumber data yang kita pilih?)
Kazuhito
Iya. Pada titik ini, Anda harus memotong sendiri atau memutari nilai X dan Y sendiri sebelum melakukan deteksi duplikat. Ini mudah untuk TITIK (meskipun masih melibatkan beberapa langkah konversi ke sana kemari) tetapi geometri lain akan membutuhkan pemrograman (substansial).
Ralph Tee
Saya melihat. Terima kasih banyak atas klarifikasi lebih lanjut. Ini agak disayangkan untuk saat ini, tapi semoga versi QGIS di masa depan memberi kita (maksud saya, non-programmer) beberapa ruang untuk dikendalikan.
Kazuhito
1

Bacaan yang menarik tentang subjek ini adalah pertanyaan yang sering diajukan: Mengukur akurasi garis lintang dan bujur?

Saya tidak tahu alat yang dirancang untuk mengidentifikasi duplikat, tetapi dari sudut pandang komputasi itu hanya masalah cara angka ditangani oleh arsitektur penyimpanan entitas dan perangkat lunak yang menanganinya. Dua angka yang berbeda akan ditampilkan FLASEselama bahasa tersebut mewakili angka-angka dengan cara yang membuat sedikit perbedaan jika tesnya adalah jika mereka tidak sama. Dalam banyak kasus, kepentingan duplikat adalah untuk menemukan nilai yang sama, untuk menemukan jenis kesalahan ketik selama digitalisasi, bukan seberapa dekatnya.

Dalam konteks lain, kepentingan duplikat adalah untuk mengidentifikasi objek yang cukup dekat dan dalam istilah praktis mereka cocok.

Dengan asumsi QGIS menggunakan Python sebagai bahasa utama, pertanyaan Anda dapat dialamatkan ke dokumen Python dan Anda akan memiliki bacaan yang menarik tentang bagaimana aritmatika basis 2 berbeda dari buku matematika dasar kami: Python: Floating Point Aritmatika: Masalah dan Keterbatasan

Marco
sumber
Terima kasih @ Marco, tapi intinya saya ingin fokus dalam pertanyaan saya adalah bahwa ketepatan (karena itu terkait langsung dengan masalah duplikat / tumpang tindih) tampaknya dikendalikan oleh sumber datanya (shapefile, atau db seperti spatialite, ...) Maaf mungkin belum cukup jelas. Saya akan mengedit pertanyaan untuk menjelaskan.
Kazuhito
0

Saya seorang Surveyor Tanah terdaftar di beberapa negara. Apa yang Anda lihat dengan proyeksi yang berbeda adalah garis lurus / jarak yang berasal dari Lambert atau Mercator Grids. Ini seperti menempatkan kerucut di bumi, maka pengukuran yang Anda lakukan ditempatkan pada garis-garis jari-jari di atas kelengkungan bumi. Transverse Mercator adalah proyeksi silinder untuk negara-negara Barat yang lebih panjang seperti Tennessee. Menggunakan sistem GPS tingkat survei, kami sering membandingkan informasi dengan proyeksi dunia dan bahkan menyatakan proyeksi saat mereka diletakkan di antena. semua pengukuran didasarkan pada parameter yang dimasukkan ke dalam perhitungan pada setiap titik yang diukur. Menggunakan peralatan GIS Grade yang memiliki parameter sub meter sangat cocok dalam satu atau dua mil peregangan. Setelah sekitar 6 tempat desimal dalam pengukuran sudut adalah maks, Anda dapat mengharapkan keakuratannya. Tidak peduli berapa kali Anda GPS titik dengan mengatakan akurasi satu meter, Anda tidak akan pernah mendapatkan "Mean" atau bahkan "Mode" yang akan cocok dengan pengukuran akurasi tinggi. Singkatnya, ketika saya bekerja dengan Aerial atau informasi satelit saya tidak membiarkan satu meter atau lebih mengganggu saya. Oh ada perhitungan bola untuk pengukuran bumi tidur siang menggunakan sudut theta menghitung sudut tegak lurus di lapangan dibandingkan dengan sudut yang dihitung pada titik itu ke pusat bumi. Tidak ada pengukuran yang benar. Untuk membuktikan hal itu kepada kami ketika saya mulai mensurvei pada tahun 1975 bos kami memasang dua paku di jalan berbukit seperempat mil terpisah dan kami harus mengikatnya dan menembak jarak setiap hari selama sebulan. Dengan koreksi atmosfer pada rantai dan meter jarak HP kami hanya mencocokkan jarak asli 3 kali dengan meter jarak dan 1 kali dengan rantai. Sebuah contoh yang sangat rendah hati dan tetap bersama saya selama ini. Saya dicemooh di konvensi GIS sekali ketika mereka mengumumkan saya sebagai surveyor tanah (he he) dan saya tidak mengatakan sepatah kata pun tetapi saya tahu kapan harus memakai topi urveyor saya dan kapan harus memakai topi GIS saya.

pengguna35019
sumber
Saya mengerti maksud Anda. Sebenarnya saya tidak pernah menemukan diri saya berjuang dengan akurasi dunia nyata. QGIS memberi tahu saya bahkan dalam skala nano atau skala pico saya berdiri di lokasi yang berbeda, itu juga baik-baik saja. Hanya saya tidak tahu berapa banyak tempat desimal yang saya perlukan untuk mengatakan dua poin yang diberikan adalah duplikatnya. Ngomong-ngomong, terima kasih banyak untuk berbagi cerita tahun 1970-an, saya belum pernah mendengar fase perintis pemetaan dan GIS, terutama hari-hari sebelum GPS. Wow.
Kazuhito