Tengo un archivo de formas que contiene entidades con geometrías duplicadas, pero diferentes atributos (por ejemplo, un polígono con atributo XX y un polígono idéntico con atributo XY). Quiero identificar los duplicados, luego elegir uno con los atributos correctos, eliminando el otro.
He probado herramientas de topología en OpenJump / Kosmo, pero sin éxito. Tienen una herramienta para 'eliminar duplicados' que hace lo que quiero, excepto que parece eliminar arbitrariamente una de las características en lugar de permitirme elegir cuál conservar.
Tengo acceso a QGIS, OpenJUMP, Kosmo, etc. y puedo instalar otras herramientas de código abierto / gratuitas si es necesario.
Pensamientos?
fuente
Esto es lo que suelo hacer en esos casos. Según tengo entendido, tendrá que hacer una verificación manual para decidir cuál tiene el atributo correcto. Luego suelo hacerlo en dos pasos. Primero hago una tabla o una vista en PostGIS con los polígonos duplicados, luego abro esta tabla en un SIG de escritorio junto con la capa original donde quiero eliminar los duplicados. Eso me llevará a los duplicados a través de mi tabla duplicada y puedo eliminarlos en la tabla original o en el archivo de forma o lo que sea.
La consulta para encontrar los duplicados será algo como esto si tiene una identificación única llamada gid y una columna de geometría llamada the_geom:
Hay algunas variantes en ST_Equals, pero creo que ST_Equals es la que deseas. Eso le dará una tabla con las geometrías duplicadas y el gid (id) de la primera y la segunda ocasión del polígono. Sin embargo, obtendrás el mismo par de duplicados dos veces, pero eso no debería importar porque solo quieres que te muestren dónde están.
HTH Nicklas
fuente
Si está utilizando PostGIS 1.5.x, consulte la función ST_HausdorffDistance ().
Las geometrías duplicadas producirán un valor de 0. Úselo como las autouniones mencionadas. Bastante ordenado para comparar formas poligonales.
fuente
Una forma más sencilla de hacerlo. Calcule el área en su SIG de escritorio y ordene por área ascendente o descendente. Ahora tendrá que verificar cada línea para ver los objetos duplicados en su tabla de atributos. Se basa en una suposición de que nunca tiene exactamente la misma área para objetos no duplicados, aunque a veces puede ser incorrecto.
fuente