Matlab - Ventana circular para filtrar datos

   
Vista:

Ventana circular para filtrar datos

Publicado por Aura thepinkpanter7@hotmail.com (4 intervenciones) el 13/03/2012 10:23:12
Buenas,

estudio la Conductividad Electrica del suelo y para ello esto se utiliza un sensor empujado por un quad, cada medida del sensor lleva asociada la posición X e Y mediante un GPS colocado en el quad.

Por tanto tengo una matriz de datos "tiempo de medida GPS", "coordenada X (utm en metros) medida con GPS", "coordenada Y (utm en metros) medida con GPS" y "valor de CE" y necesito programar en matlab un tipo de filtrado de datos que funcione de la siguiente manera:
1.- Elegir una ventana circular de búsqueda de radio = 28 metros, que su centro vaya recorriendo todos los puntos medidos.
2.- Calcular la media y desviación típica de los valores de CE contenidos en esa ventana, exceptuando el valor del punto a evaluar (el que esté en su centro)
3.- Calcular z=/x-m//desv; x=valor de CE del punto a evaluar, m=media y desv=desviación típica.
4.- Establecer un umbral de z=2.
5.- Elimiar la fila del punto evaluado si z>2 o dejarla si z<=2.
6.- Crear un archivo con los datos filtrados (los buenos) y otro con los datos eliminados (los malos)

Los pasos que yo había pensado seguir son un poco básicos, relacionados con mi nivel de matlab, pero creo que audará a entender mejor la pregunta que estoy haciendo:
1. Cargar el fichero y leer los datos.
2. Ordenar por GPS_TIME para tenerlos ordenados tal y como tomó los datos el sensor.
3. La X y Y de cada fila hacen referencia a un punto único. Ir fila por fila (es como ir punto por punto) y calcular la circunferencia de radio 28 centrada en ese punto
t=0:.01:2*pi;
r=28 %m;
x=X+r*cos(t);
y=Y+r*sin(t);
4. Si desde el primer punto hasta el punto evaluado "AND" desde el punto evaluado hasta el último punto, los puntos caen dentro de la circunferencia --> calcular la media y la desviación típica de todos los puntos incluidos en la ventana exceptuando el punto evaluado.
Si no caen dentro de la ventana --> No hacer nada.
5. Calcular Z para el punto, z=/punto-m//desv. "Punto (valor de CE) - media" en valor absoluto.
6. Si Z =<2 --> No hacer nada (el punto se deja xq es bueno)
Si Z>2 --> Guardar el punto (la fila) en una matriz nueva y guardar el archivo con el nombre* original terminado en "e" y eliminar el punto (la fila) del archivo original.
7. Guardar el archivo original ya filtrado con el nombre* original terminado en "f".
* No sé si es posible hacerlo en matlab, sino lo haré a mano.

Sin embargo me he quedado en el punto "3" y no sé cómo seguir, podría enviar el archivo de excel a quien estuviera interesado en ayudarme, ya que son demasiados datos como para pegarlos aquí.

Muchas gracias,
Aura.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO

Ventana circular para filtrar datos

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 13/03/2012 14:43:16
Hola Aura,
Debe ser tu seudonimo. Porque en tu pregunta anterior habias puesto Lucia.
Cualquier persona que quisiera ayudarte necesita de tu guia, en tu problema.
para que le expliques paso a paso que es lo quieres hacer , para ganar tiempo.
Porque en los pasos que pones siempre habrá vacios.
Para hacer un programa necesitas saber perfectamente que es lo quieres hacer y tener un camino definido.
Claro que te puedo dar o te pueden dar sugerencias para salir de paso.

Si deseas mandame tu base datos a mi correo.
Y cuando deseas me explicas via audio y asi podré ayudarte con mas certeza.
Ya que sino, estaria adivinando lo que quieres hacer, y asi el programa no seria exactamtente lo que quieres.


Saludos
JOSE JEREMIAS CABALLERO

Servicios de programacion matlab


Asesor de Proyectos con Matlab
programador en matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar