Precisión de coordenadas QGIS

11

¿En qué (decimal) lugar decimal de los valores de coordenadas QGIS define que cualquier conjunto de puntos está duplicado?

Había estado pensando que QGIS maneja ~ 15 decimales; pero era la limitación solo porque había estado trabajando principalmente en Shapefiles.

ingrese la descripción de la imagen aquí

Sin embargo, el límite no se aplica cuando elijo otra fuente de datos, como una capa temporal temporal.

ingrese la descripción de la imagen aquí

Utilizando datos ficticios como los que se muestran a continuación, realicé una prueba rápida con dos herramientas para encontrar el valor más pequeño en el que puedan identificar diferencias de coordenadas:

  • Geoprocesamiento QGIS: Delete duplicate geometries
  • Complemento MMQGIS: Delete Duplicate Geometries

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

La salida por QGIS Delete duplicate geometrieses igual a los datos de entrada anteriores (se conservaron los 20 registros), por lo que puede significar que QGIS cree que todos son distintos. ¿Este límite va más allá de 1e-29 (o 1e-30) visto en esta pequeña prueba?

Solo como comparación, MMQGIS Delete Duplicate Geometriesproducida a continuación. Parece que MMQGIS establece los decimales decimosexto o decimoséptimo como límite.

ingrese la descripción de la imagen aquí


[Editar]

Me temo que no había quedado claro cuál era la parte central de mi pregunta. Mi objetivo es comprender la relación entre los valores de coordenadas y los duplicados / superposición, que es como se indica en el primer párrafo de mi pregunta. Con suerte, este tipo de conocimiento puede ayudarnos a controlar fácilmente las características superpuestas al ajustar las expresiones de la calculadora de campo.

Sin embargo, el problema subyacente que había estado tratando de enfocar era que los lugares decimales QGIS reconoce puntos (nodos) ya que la superposición parece variar, dependiendo de la fuente de datos.

Si utilizamos Shapefiles para nuestra capa, QGIS maneja ~ 15 decimales y no se reconoce una diferencia menor (en 16 o 17) ... MMQGIS también se ve afectado por esta limitación (a mis ojos). Si creamos una capa temporal temporal o capas DB, esta limitación va mucho más allá de 30th-ish? Este cambio de comportamiento me hace preguntarme.

Kazuhito
fuente
2
Con ArcGis al crear una clase de entidad en una base de datos, puede especificar la diferencia mínima entre dos coordenadas para que se considere diferente (el valor predeterminado parece ser 0.001 m para coordenadas proyectadas en metros y 0,000000008983153 grados para WGS84). También me interesa saber cuáles son estos valores en qgis y si puede modificarlos.
JR

Respuestas:

2

La herramienta Eliminar Geometrías Duplicadas de QGIS (en los Geoalgoritmos de QGIS 2.18, Herramientas Generales de Vector) es un script Python que opera en los objetos de geometría exportados / expuestos por la capa Python de QGIS. Y debajo de esta capa está la capa GEOS.

El operador de igualdad de geometría de la capa GEO acepta un parámetro de tolerancia (en la unidad de distancia del mapa) al comparar dos geometrías. Desafortunadamente, este parámetro de tolerancia no está expuesto por la capa Python de QGIS; por lo tanto, para Eliminar geometrías duplicadas , dos geometrías se consideran iguales si y solo si todos sus valores XY son totalmente iguales. Por ejemplo, POINT (1.000000 1.000000) no es igual a POINT (1.00000001 1.00000001).

Ralph Tee
fuente
¡Gracias por investigar el geoalgoritmo de QGIS! Según sus hallazgos, si las herramientas de contenedor (como los scripts de Python) no tienen acceso al parámetro de tolerancia, ¿implica que la tolerancia depende únicamente del tipo de datos? (En otras palabras, ¿es esa la razón por la cual parece que la tolerancia está controlada por la fuente de datos que elegimos?)
Kazuhito
Si. En este momento, debe truncar o redondear los valores X e Y usted mismo antes de realizar la detección de duplicados. Esto es sencillo para los PUNTOS (aunque todavía implica varios pasos de conversión de aquí para allá), pero las otras geometrías requerirán una programación (sustancial).
Ralph Tee
Veo. Muchas gracias por más aclaraciones. Es un poco desafortunado por ahora, pero espero que las futuras versiones de QGIS nos den (es decir, no programadores) más espacio para controlar.
Kazuhito
1

Una lectura interesante sobre este tema es esta pregunta frecuente: ¿ Precisión de medición de latitud y longitud?

No conozco las herramientas diseñadas para identificar duplicados, pero desde un punto de vista computacional, es solo una cuestión de la forma en que los números son manejados por la arquitectura de almacenamiento de las entidades y el software que los maneja. Se generarán dos números diferentes FLASEsiempre que el idioma represente los números de una manera que marque una diferencia si la prueba es si no son iguales. En muchos casos, el interés del duplicado es encontrar valores que sean los mismos, descubrir un tipo de error tipográfico durante la digitalización, no lo cerca que estén.

En otros contextos, el interés de los duplicados es identificar objetos que estén lo suficientemente cerca y en términos prácticos que coincidan.

Suponiendo que QGIS usa Python como lenguaje principal, su pregunta puede dirigirse a los documentos de Python y tendrá una lectura interesante sobre cómo una aritmética de base 2 difiere de nuestros libros elementales de matemáticas: Python: Aritmética de punto flotante: problemas y limitaciones

Marco
fuente
Gracias @Marco, pero el punto en el que quería centrarme en mi pregunta era que la precisión (por lo tanto, directamente relacionada con problemas de duplicación / superposición) parece estar controlada por su fuente de datos (shapefile o db como spaceialite, ...) Lo siento. Puede que no haya sido lo suficientemente claro. Editaré la pregunta para aclarar.
Kazuhito
0

Soy un agrimensor registrado en varios estados. Lo que ve con las diferentes proyecciones son líneas rectas / distancias que provienen de las cuadrículas de Lambert o Mercator. Es como colocar un cono en la tierra, luego la medida que está tomando se coloca en las líneas de radio sobre la curvatura de la tierra. Transversal de Mercator es una proyección cilíndrica para estados del este oeste más largos como Tennessee. Mediante el uso de sistemas GPS de grado topográfico, a menudo comparamos la información con las proyecciones mundiales e incluso las proyecciones estatales que se encuentran en las antenas. Todas las mediciones se basan en los parámetros incorporados en los cálculos en cada punto medido. El uso de equipos de grado GIS que tiene un parámetro de submedidor coincide muy bien en tramos de una o dos millas. Después de aproximadamente 6 lugares decimales en mediciones angulares es el máximo que puede esperar que sea la precisión. No importa cuántas veces use un punto GPS con una precisión de un metro, nunca obtendrá un "Modo" o incluso un "Modo" que coincida con las mediciones de alta precisión. Para resumirlo todo, cuando estoy trabajando con Antenas o información satelital, no dejo que un medidor me moleste. Oh, hay cálculos esféricos para las mediciones de la siesta de la tierra usando ángulos theta que calculan el ángulo de la plomada en el campo en comparación con el ángulo calculado en ese punto al centro de la tierra. No existe una medida verdadera. Para demostrar ese punto cuando comencé a encuestar en 1975, nuestro jefe colocó dos clavos en una carretera montañosa a un cuarto de milla de distancia y tuvimos que encadenarlo y disparar la distancia todos los días durante un mes. Con correcciones atmosféricas en la cadena y el medidor de distancia HP, solo igualamos la distancia original 3 veces con el medidor de distancia y 1 vez con la cadena. Un ejemplo muy humillante y se queda conmigo durante todo este año. Fui abucheado en una convención de SIG una vez cuando me anunciaron como agrimensor (él él) y no había dicho una palabra, pero sé cuándo ponerme el sombrero de mi proveedor y cuándo ponerme el sombrero de SIG.

user35019
fuente
Entiendo tu argumento. De hecho, nunca me he encontrado luchando con la precisión del mundo real. QGIS me dice que incluso en la nanoescala o picoescala estoy parado en diferentes ubicaciones, eso también está bien. Solo que no puedo calcular cuánto decimal requiere que coloque para decir que dos puntos dados son los duplicados. Por cierto, muchas gracias por compartir la historia de la década de 1970, nunca he oído hablar de una fase tan pionera de mapeo y SIG, especialmente los días anteriores al GPS. Guau.
Kazuhito