Matlab - interpolación entre fechas para homogeneizar longitud de vectores de medida

   
Vista:

interpolación entre fechas para homogeneizar longitud de vectores de medida

Publicado por Antonio Jesús Espejo Perez ajespejo@gmail.com (11 intervenciones) el 20/02/2013 17:46:12
Hola,

Creo que mi problema se resuelve interpolando, con la función "interp1", ya que otras veces hice cosas parecidas con ella, pero me da un error, y quizás es que no sea así la forma de resolverlo.

Voy intentar contar mi caso, y qué pretendo resolver.

Dispongo de varias estaciones de medida de humedad de suelo. Una estación es un punto en el espacio en una parcela en el campo, donde hay conectado un sensor que registra una medida cada dt= 5mins en un datalogger. En resumen, el archivo de cada estación es "columna 1 = fecha" y "columna 2 = medida", y dispongo de 22 estaciones (22 archivos donde la primera columna de fecha de recogida de la medida y la 2ª la medida).

Los archivos son del tipo:
fecha = x medida = y
22/02/2012 00:00:00 0.230
22/02/2012 00:05:00 0.230
22/02/2012 00:10:00 0.232
....
.....

Y tengo medidas desde el 01/06/2011 00:00 hasta el 13/02/2011 00:00 . Aunque las fechas os las muestro en este formato, trabajo con el formato "número, o datenum", que os lo recomiendo por ser más cómodo de trabajar.

Si cojo un un paso de tiempo dt=5 mins, el archivo que me debería dar cada estación debería contener 177985 datos.

Aquí está el problema, que a veces hay estaciones que tienen 300 datos más, otros 300 datos menos... Porque a lo mejor los datalogger no recogen datos cada 5mins exactamente, y van acumulando un lapso de error de tiempo con el tiempo, ... Y echando cuentas, se trata de que en todo este tiempo he perdido 24 hrs de muestreo por ejemplo.

Para los análisis que hago necesito tener los datos de medida cada 5mins, y en un solo archivo donde la primera columna sea fecha (fecha de medida común a todos los sensores y estaciones), la 2ª columna "medida1", y así sucesivamente hasta la columna 23 que será "medida 22".

Intenté usar la opción interp1, donde:
yi = interp (x, y, xi), donde que xi es la fecha completa (177985 datos de fecha), e "yi" los datos que me van interpolando para que todos los registros de medida tengan la misma longitud. Me da error en la línea 261, tamaño de x, xi coinciden.

¿alguien puede ayudarme? si alguien tuvo este problema y le es fácil ayudarme, puedo enviarle un archivo de datos.

Gracias por vuestra ayuda.
Antonio
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