4 votos

Buen algoritmo para detectar características "erróneas" en una cobertura vectorial

Estoy trabajando con un montón de shapefiles. Cada archivo de forma consistente en rectángulos con un atributo entero que representa la intensidad de una señal. Me sirven estos archivos vectoriales como superposiciones en un mapa base, la aplicación de diferentes colores según el atributo entero (como un mapa de calor o mapa de cobertura).

Tengo un problema con los datos: contiene los "agujeros". El término "agujero" aquí se puede explicar fácilmente con una imagen:

Holes in the data

Que es una captura de pantalla de una parte de mi carga de datos en QGIS. He aplicado un estilo simple: sólo tiene que utilizar el naranja para un rango de valores entre X y Y. de lo Contrario, no hay color aplicado.

Los cuadrados blancos rodeados por círculos azules son, probablemente, los errores de medición. Cada cuadrado representa 250m en el mundo real. Eso realmente no tiene sentido obtener una medida de X en un punto (es decir: -55 dbM) y a 250 metros más allá de un valor mucho más bajo (o más alto), de la representación del rango.

Por lo tanto, estoy básicamente buscando un algoritmo para "detectar" este patrón: Un vector que contiene un valor entero de -10000 (la "anomalía"), pero rodeado de los vectores que contienen "normal" y coherente de valores. Quiero evitar un simple tonto bucle, la comprobación de todos los vectores en función de su posición. Me administrar varios GBs de datos, y esto puede tener para siempre.

¿Hay algún algoritmo conocido para detectar este tipo de problema en vectorial archivos?

ACTUALIZACIÓN: Hay algunas sugerencias en los comentarios. Pero me perdí una parte importante: el espacio que rodea el shapefile (el gran espacio en blanco alrededor del shapefile) es considerado como "agua", y un valor de "sin cobertura". Así que, yo sólo necesita para deshacerse de los pequeños agujeros (en azul en la imagen), pero mantener el espacio circundante, sin cambios. Que hace las cosas más difíciles...

Muchas gracias de antemano

2voto

Nikola Puntos 21

Este problema debe ser resuelto con los rásteres. Así que me gustaría combinar todas las Pchs, a continuación, trazar la resultante SHP con el fin de tener una matriz de señales, manipular el resultado de trama (Raster calculator o similar) con el fin de tener 1s para el bien de las señales y 0s para NoData y malas señales y, por último, aplicar un filtro 3x3 (Laplace) para detectar el mal de las señales con un kernel como este:

1/8 1/8 1/8
1/8 -1  1/8
1/8 1/8 1/8

El filtrado de trama tendrá 0s donde la señal es buena, 1s donde es malo. Puede ser también vectorizados de nuevo y se muestran claramente las señales de calidad. Espero que esto ayude.

0voto

GeneQ Puntos 2885

Cómo sobre el uso de una puntuación Z de cálculo para identificar valores atípicos extremos? Si usted no está familiarizado con una puntuación Z se calcula restando la media de población de la puntuación bruta y dividiendo por la desviación estándar de población. Aquí hay un enlace a una descripción más técnica:

http://en.wikipedia.org/wiki/Standard_score

Desde una puntuación Z tiene una media de 0 y una desviación estándar de 1 es muy fácil de identificar valores atípicos extremos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X