Al trabajar en ArcMap, he encontrado errores en una capa de polígono que llamaré "astillas de bandera" (tomadas de un lenguaje similar en parcelas llamadas "lotes de bandera"). Estos polígonos astillados (ver imagen a continuación) generalmente están compuestos de un solo nodo adicional que el usuario ha agregado accidentalmente.
En las imágenes a continuación, la "bandera" y el "asta de la bandera" son una característica de una sola parte donde el "asta de la bandera" simplemente se superpone. La imagen de la izquierda tiene un total de 5 nodos.
Cuando se ven solos, los errores son muy obvios, pero cuando hay varios polígonos adyacentes, son casi imposibles de ver porque parecen ser el límite entre 2 polígonos.
Esto probablemente ocurre porque están usando un editor basado en archivos de forma y, por lo tanto, no puedo implementar ninguna regla de edición basada en topología para evitar que esto suceda en el futuro.
¿Alguien tiene una manera de identificar y resolver este tipo de errores? Preferiría un método automatizado de identificación y resolución ya que los usuarios de campo son los que crearon los errores, pero estoy atascado limpiando después de ellos. Gracias.
fuente
Respuestas:
si tiene acceso a las herramientas de Safe Fme, encontrará útil el transformador llamado spikeRemover, échele un vistazo. Puede probar una versión limitada descargable de SAFE FME o verificar su licencia de ArcGis para "FME Extension for ArcGIS"
http://docs.safe.com/fme/html/FME_Transformers/Default.htm#Transformers/spikeremover.htm
http://cdn.safe.com/resources/fme/FME-Transformer-Reference-Guide.pdf
fuente
No estoy seguro de dónde ocurre su problema, o dónde tiene la posibilidad de evitarlo / solucionarlo. Pero he visto esto mucho en nuestra base de datos SDE, aunque las geometrías en SDE siempre deben ser correctas. En nuestro caso fue porque importamos archivos de forma usando ArcObjects en el SDE. Cuando se almacenaron las geometrías, se ajustaron a la cuadrícula del SDE y, por lo tanto, crearon geometrías incorrectas con las astillas que describió cuando la geometría tenía una punta delgada. Esto se debe a que los archivos de forma tienen una precisión doble completa para las coordenadas y el SDE es una cuadrícula más gruesa.
Nuestra solución fue arreglar las geometrías cuando fueron importadas por:
1. Establezca la referencia espacial de la geometría del archivo de forma a la referencia espacial de la clase de entidad SDE correspondiente
2. Ajuste la geometría a la referencia espacial (IGeometry.SnapToSpatialReference () )
3. Establezca ITopologicalOperator2.IsKnownSimple = false (importante, de lo contrario, simplificar no hace nada)
4. Realice alguna operación de simplificación. Para los polígonos usamos IPolygon.SimplifyPreserveFromTo ()
fuente
Con arcmap 9.3.1, agregaría un campo llamado Flag (o quizás FlagFlag?) Y usaría el código VBA en la calculadora de campo para calcular este campo.
El código VBA atenuaría una variable como ITopologicalOperator3 y la establecería en el campo Forma.
Entonces llamaría al método IsSimpleEx no tan simple .
Establezca el valor del campo Indicador en esriNonSimpleEnum . Presumiblemente, el error que le preocupa volvería
esriNonSimpleSelfIntersections
.Con 10.0 puede haber una manera de hacer esto con Python en la calculadora (?) ... No estoy seguro. Usaría un comando de complemento. IMO Esri debería proporcionar soporte para c # en la calculadora de campo. Después de todo, el compilador de c # se instala como parte del marco .NET.
Actualizar
El código que publiqué aquí podría encontrar astas de bandera si aplica una expresión de definición
"Left_OID" = "Right_OID"
a la capa de características de polilínea resultante.fuente
Este script de Python es una herramienta útil
Eliminar los polígonos astillados de los archivos de forma
"EliminateSlivers.py realiza un ciclo a través de todas las funciones en un archivo de forma poligonal y elimina las del archivo de forma de salida que caen por debajo de un umbral de área determinada.
Las operaciones de geoprocesamiento y las tolerancias de agrupación podrían dar lugar a la acumulación de pequeños polígonos de astillas. Esto puede no tener sentido y podría distorsionar la fiabilidad de los datos espaciales ".
Nota: tendrá que probar con diferentes tolerancias con sus datos (primero tome una copia de sus datos)
http://arcscripts.esri.com/details.asp?dbid=14672
fuente
Ryan
Trabajé con la oficina de Soil Survey y revisé periódicamente sus polígonos de suelo. Lo que hago está marcado por astillas. Enviaría la clase de características a cobertura y luego las construiría en una etiqueta para identificar los errores. Si ve 2 etiquetas en un polígono, es un error. Si es una etiqueta por polígono, sabe que es correcta. Crearía una clase de entidad como un punto para marcar un error. O puede seleccionar una o varias etiquetas en una nueva clase de entidad. De esta manera, puede volver y corregir el error. Me funciona muy bien con los polígonos del suelo. Lo uso para informar a los científicos del suelo para solucionar el problema.
Esa es solo una forma de identificar el problema. Solo compartiendo eso contigo.
fuente
Si la identificación no es un punto importante y solo la solución automatizada, intente esto. Agregue los datos a un nuevo documento de mapa en blanco;
He probado esto y parece funcionar, pero no estoy seguro de si he replicado exactamente su fuente de datos
Diviértete, CDB
fuente
Aquí vamos, hay algunas formas de resolver esto y, en mi opinión, la más elegante es usar una extensión llamada GIS Data Reviewer . El Revisor de datos SIG le permite crear comprobaciones personalizadas y simplificadas de la precisión espacial y de los atributos además de la topología central. Dentro de la topología hay cosas que no están disponibles que forman parte de las comprobaciones estándar para Me gusta del revisor de datos
Lo usaría para interrogar sus datos. Otra forma de hacerlo es crear una nueva clase de entidad basada en su clase de entidad poligonal existente. y luego cree una nueva clase de entidad Polígono y llénela con las líneas utilizando la herramienta de entidades de construcción en la Barra de herramientas de topología. Esto significaría que los slivers deberían mostrarse como tales y cualquier otra herramienta de topología debería detectar el error. Luego se trata de seleccionar, eliminar y reemplazar las entidades en la clase de entidad existente.
Espero que esto ayude, CDB
fuente