QGIS koordinat hassasiyeti


11

QGIS koordinat değerlerinin hangi (xth) ondalık basamağında yinelenen nokta kümesini tanımlar?

QGIS ~ 15 ondalık basamak işlediğini düşünüyordum; ancak bu sadece kısıtlıydı çünkü esas olarak Shapefiles üzerinde çalışıyordum.

resim açıklamasını buraya girin

Ancak, geçici olarak çizik katmanı gibi başka bir veri kaynağı seçtiğimde sınır uygulanmaz.

resim açıklamasını buraya girin

Aşağıdaki gibi bir kukla veri kullanarak, iki araç tarafından hızlı bir test yaptım, koordinat farklılıklarını tanımlayabilecekleri en küçük değeri bulmak için:

  • QGIS coğrafi işleme: Delete duplicate geometries
  • MMQGIS eklentisi: Delete Duplicate Geometries

resim açıklamasını buraya girin

resim açıklamasını buraya girin

Çıktı QGIS Delete duplicate geometries, yukarıdaki girdi verileriyle aynıdır (20 kaydın tümü de korunmuştur), bu QGIS'in hepsinin farklı olduğunu düşündüğü anlamına gelebilir. Bu sınır, bu küçük testte görülen 1e-29 (veya 1e-30) değerini aşıyor mu?

Karşılaştırmalı olarak, MMQGIS Delete Duplicate Geometriesaşağıda üretilmiştir. MMQGIS, 16. veya 17. ondalık basamakları sınır olarak belirliyor.

resim açıklamasını buraya girin


[Düzenle]

Korkarım sorumun merkezi kısmının ne olduğunu net olarak bilmiyordum. Amacım, sorumun ilk paragrafında belirtildiği gibi, koordinat değerleri ile kopyalar / örtüşmeler arasındaki ilişkiyi anlamak. Umarım bu tür bilgiler, alan hesap makinesi ifadelerini değiştirerek çakışan özellikleri kolayca kontrol etmemize yardımcı olabilir.

Ancak, odaklanmaya çalıştığım temel sorun, QGIS'in noktaların (düğümlerin) tanıdığı ondalık basamakların veri kaynağına bağlı olarak değiştiği göründüğü yönündeydi.

Katmanımız için Shapefiles kullanırsak, QGIS ~ 15. ondalık basamak kullanır ve daha küçük fark (16. veya 17.) fark edilmez ... MMQGIS de bu sınırlamadan (gözlerime) etkilenir. Geçici olarak çizik bir katman veya DB katmanları oluşturursak, bu sınırlama 30.-ish'nin çok ötesine geçer mi? Bu davranış değişikliği beni meraklandırıyor.


2
ArcGis ile veritabanında bir özellik sınıfı oluştururken, farklı olarak kabul edilecek iki koordinat arasındaki minimum farkı belirleyebilirsiniz (varsayılan değer, metre cinsinden yansıtılan koordinat için 0,001 m ve WGS84 için 0,000000008983153 derece gibi görünür). Ayrıca bu değerlerin qgis'te ne olduğunu ve bunları değiştirip değiştiremeyeceğinizi bilmek istiyorum.
JR

Yanıtlar:


2

QGIS Yinelenen Geometrileri Silme aracı (QGIS 2.18'in Coğrafi Algoritmaları, Vektör Genel Araçları), QGIS'in Python katmanı tarafından dışa aktarılan / pozlanan geometri nesneleri üzerinde çalışan bir Python betiğidir. Ve bu katmanın altında GEOS katmanı var.

GEO katmanının geometri eşitlik operatörü, iki geometri karşılaştırılırken bir tolerans parametresini (harita mesafe biriminde) kabul eder. Ne yazık ki, bu tolerans parametresi QGIS'in Python katmanı tarafından gösterilmez - bu nedenle Yinelenen Geometrileri Sil için , yalnızca tüm XY değerleri tamamen eşitse iki geometri eşit kabul edilir. Örneğin, POINT (1.000000 1.000000), POINT (1.00000001 1.00000001) ile aynı değildir.


QGIS geoalgoritmasını incelediğiniz için teşekkür ederiz! Bulgularınızdan, sarma araçlarının (Python komut dosyaları gibi) tolerans parametresine erişimi yoksa, toleransın yalnızca veri türüne bağlı olduğu anlamına mı geliyor? (Başka bir deyişle, toleransın seçtiğimiz veri kaynağı tarafından kontrol ediliyormuş gibi görünmesinin nedeni budur?)
Kazuhito

Evet. Bu noktada, yinelenen algılama yapmadan önce X ve Y değerlerini kendiniz kesmeniz veya yuvarlamanız gerekir. Bu POINT'ler için basittir (yine de ileri geri dönüş için birkaç adım içermesine rağmen), ancak diğer geometriler (önemli) programlama gerektirir.
Ralph Tee

Anlıyorum. Daha fazla açıklama için çok teşekkürler. Şimdilik biraz talihsiz, ama umarım gelecekteki QGIS sürümleri bize (yani programcı olmayanlar) kontrol etmek için biraz daha yer açar.
Kazuhito

1

Bu konu hakkında ilginç bir okuma şu sık sorulan soru: Enlem ve boylamın doğruluğunu ölçmek?

Yinelemeleri tanımlamak için tasarlanmış araçları bilmiyorum, ancak hesaplama açısından, sayıların varlıkların depolama mimarisi ve bunları kullanan yazılım tarafından ele alınma biçimi meselesi. FLASEDil, sayıları eşit değilse test biraz fark yaratacak şekilde sayıları temsil ettiği sürece iki farklı sayı çıkacaktır . Birçok durumda, yinelemenin ilgisi, aynı olan değerleri bulmak, dijitalleşme sırasında bir tür yazım hatası bulmaktır, ne kadar yakın olduklarını değil.

Diğer bağlamlarda, kopyaların ilgisi, yeterince yakın ve pratik olarak eşleştirdikleri nesneleri tanımlamaktır.

QGIS'in ana dil olarak Python kullandığını varsayarsak, sorunuz Python belgelerine yöneltilebilir ve bir temel 2 aritmetiğin temel matematik kitaplarımızdan nasıl farklı olduğu hakkında ilginç bir okumaya sahip olacaksınız: Python: Kayan Nokta Aritmetiği: Sorunlar ve Sınırlamalar


Teşekkürler @Marco, ama soruma odaklanmak istediğim nokta, hassasiyetin (dolayısıyla doğrudan yinelenen / çakışan sorunlarla ilgili) veri kaynağı (şekil dosyası veya spatialite gibi db, ...) tarafından kontrol edildiğiydi. yeterince açık olmayabilir. Açıklığa kavuşturmak için soruyu düzenleyeceğim.
Kazuhito

0

Çeşitli eyaletlerde kayıtlı bir Arazi Sürveyörüyüm. Farklı projeksiyonlarla gördüğünüz, Lambert veya Mercator Izgaralarından gelen düz çizgiler / mesafelerdir. Bu, dünyaya bir koni yerleştirmek gibidir, daha sonra aldığınız ölçüm, dünyanın eğriliğinin üzerindeki yarıçap çizgileri üzerine yerleştirilir. Enine Mercator, Tennessee gibi daha uzun Doğu Batı eyaletleri için silindirik bir projeksiyon. Anket dereceli GPS sistemlerini kullanarak, bilgileri genellikle antenler üzerinde yer alırken dünya projeksiyonları ve hatta devlet projeksiyonları ile karşılaştırırız. tüm ölçümler, ölçülen her noktada hesaplamalarda yerleşik olan parametrelere dayanır. Bir alt metre parametresine sahip GIS Sınıfı ekipmanı kullanmak, bir veya iki mil uzatmalarda çok iyi eşleşir. Açısal ölçümlerde yaklaşık 6 ondalık basamaktan sonra doğruluk olmasını beklediğiniz maksimum değerdir. Bir noktayı kaç kez GPS ile ölçtüğünüz önemli değil, asla yüksek doğruluk ölçümleriyle eşleşen bir "Ortalama" hatta bir "Mod" elde edemezsiniz. Her şeyi özetlemek gerekirse, Antenler veya Uydu bilgileriyle çalışırken bir metrenin beni rahatsız etmesine izin vermem. Oh, dünyanın ortasına doğru o noktada hesaplanan açıya kıyasla, alandaki çekül açısını hesaplayan teta açılarını kullanarak yeryüzü ölçümleri için küresel hesaplamalar vardır. Gerçek bir ölçüm diye bir şey yoktur. 1975'te araştırmaya başladığımda bu noktayı bize kanıtlamak için patronumuz çeyrek mil aralıklarla dağlık yolda iki çivi ayarladı ve onu bir ay boyunca her gün zincirlemek ve mesafeyi vurmak zorunda kaldık. Zincir ve HP mesafe ölçerdeki atmosferik düzeltmelerle orijinal mesafeyi sadece mesafe ölçerle 3 kez ve zincirle 1 kez eşleştirdik. Çok alçakgönüllü bir örnek ve tüm bu yıl boyunca benimle kalıyor. Bir kez arazi araştırmacısı olarak ilan ettiklerinde bir CBS toplantısında yuhalandım ve o bir kelime söylemedim ama ne zaman sörvey şapkamı ve ne zaman GIS şapkamı takacağımı biliyorum.


Senin değinmek istediğin noktayı anlıyorum. Aslında kendimi hiçbir zaman gerçek dünya doğruluğu ile mücadele ederken bulmadım. QGIS bana nano ölçekte veya piko ölçekte bile farklı konumlarda durduğumu söylüyor, bu da iyi. Sadece verilen iki noktanın kopya olduğunu söylemem için ne kadar ondalık basamağın gerektiğini anlayamıyorum. Bu arada, 1970'lerin hikayesini paylaştığınız için çok teşekkürler, haritalama ve CBS'nin, özellikle de GPS öncesi günlerin bu öncü aşamasını hiç duymadım. Vay.
Kazuhito
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.