Última actualización: 03 junio 2020
Esta sección muestra un control de calidad, sincronización y ajuste de los datos de caudal. Este proceso se hace para corregir cualquier posible desfase de las series temporales de caudal con respecto a la lluvia. Así como suavizar posibles errores en las magnitudes de los caudales observados.
Cómo resultado de la sincronización se optó por adelantar los caudales de Paso de los Troncos, Paso Roldán y Fray Marcos en 1 día y San Ramón y Paso Pache en 2 días. El ajuste de la magnitud de los caudales se hace de forma linieal multiplicando por 1.67,
resumen = readRDS("~/R_projects/SWAT_calibration_ETmodis/resultados/ajustes_caudal_resumen.RDS")
kable(resumen, caption ="Resumen de ajuste y sincronización de caudales en el Santa Lucía") %>%
kable_styling(c("striped", "bordered"))
Paso de los Troncos | Paso Roldán | Fray Marcos | San Ramón | Paso Pache | |
---|---|---|---|---|---|
lluvia media mensual (mm) | 104.30 | 107.10 | 103.40 | 104.70 | 104.90 |
escurrimiento medio mensual (mm) | 22.30 | 47.40 | 30.50 | 50.40 | 32.70 |
coef.esc (-) | 0.21 | 0.44 | 0.29 | 0.48 | 0.31 |
ajuste (-) | 1.65 | 0.79 | 1.19 | 0.72 | 1.12 |
lag (días) | 1.00 | 1.00 | 1.00 | 2.00 | 2.00 |
A continuación se muestra la correlación del nivel horario entre las tres estaciones de nivel. Los datos han sido descargados de la web de dinagua y se leen como datos brutos sin control de calidad, por lo que deben ser utilizados con precaución.
La siguiente figura muestra que:
# Data read
data41 = read.table("~/R_projects/SWAT_calibration_ETmodis/data/paso_pache.csv", sep=",", quote = "")
colnames(data41) = c("h","date")
data41$h = as.numeric(data41$h)
data41$date = substr(data41$date,3,18)
data41$date = as.POSIXct(data41$date, tz="", format=c("%Y-%m-%d %H:%M"))
data41 = data41[as.Date(data41$date)>=as.Date("2005-12-1"),]
data23 = read.table("~/R_projects/SWAT_calibration_ETmodis/data/paso_de_los_troncos.csv", sep=",", quote = "")
colnames(data23) = c("h","date")
data23$h = as.numeric(data23$h)
data23$date = substr(data23$date,3,18)
data23$date = as.POSIXct(data23$date, tz="", format=c("%Y-%m-%d %H:%M"))
data23 = data41[as.Date(data23$date)>=as.Date("2005-12-1"),]
data36 = read.table("~/R_projects/SWAT_calibration_ETmodis/data/fray_marcos.csv", sep=",", quote = "")
colnames(data36) = c("h","date")
data36$h = as.numeric(data36$h)
data36$date = substr(data36$date,3,18)
data36$date = as.POSIXct(data36$date, tz="", format=c("%Y-%m-%d %H:%M"))
data36 = data36[as.Date(data36$date)>=as.Date("2005-12-1"),]
library(openair)
# Time average
h41 = timeAverage(data41, avg.time = "60 min", fill = FALSE, interval = "60 min",
statistic = "mean", start.date = "2005-01-01")
h23 = timeAverage(data23, avg.time = "60 min", fill = FALSE, interval = "60 min",
statistic = "mean", start.date = "2005-01-01")
h36 = timeAverage(data36, avg.time = "60 min", fill = FALSE, interval = "60 min",
statistic = "mean", start.date = "2005-01-01")
h = data.frame(h41 = h41$h, h23=h23$h, h36=h36$h)
par(mfrow=c(3,1), mar=c(4,4,4,1))
ccf(h$h23,
h$h36,
na.action=na.pass, lag.max=24*3,
main = "Paso de los Troncos - Fray Marcos",
xlab= "Lag (horas)")
ccf(h$h23,
h$h41,
na.action=na.pass, lag.max=24*3,
main="Paso de los Troncos - Paso Pache ",
xlab= "Lag (horas)")
ccf(h$h36,
h$h41,
na.action=na.pass, lag.max=24*3,
main="Fray Marcos - Paso Pache ",
xlab= "Lag (horas)")
A continuación se muestra la correlación cruzada del caudal diario entre las estaciones. Los datos han sido obtenidos del drive del grupo de trabajo del Santa Lucía, por consiguiente, los datos han sido manipulados y se desconoce cómo ha sido dicha manipulación.
La siguiente figura muestra que:
library(zoo)
obs.data <- readRDS("~/R_projects/SWAT_calibration_ETmodis/data/obs.data.RDS")
par(mfrow=c(3,1), mar=c(4,4,4,1))
ccf(obs.data$q23,
obs.data$q36,
na.action=na.pass, lag.max=5,
main = "Paso de los Troncos - Fray Marcos",
xlab= "Lag (días)")
ccf(obs.data$q23,
obs.data$q41,
na.action=na.pass, lag.max=5,
main="Paso de los Troncos - Paso Pache ",
xlab= "Lag (días)")
ccf(obs.data$q36,
obs.data$q41,
na.action=na.pass, lag.max=5,
main="Fray Marcos - Paso Pache ",
xlab= "Lag (días)")
A continuación se muestra la correlación de la precipitación con el caudal diario. Cómo precipitación diaria se utiliza el promedio de la precipitación de las estaciones pluviométricas. Por otro lado, el caudal se utiliza la misma base de datos que la sección Correlación cruzada de caudal diario.
La siguiente figura muestra que:
t1 = min(index(obs.data))
t2 = max(index(obs.data))
p <- readRDS("~/R_projects/SWAT_calibration_ETmodis/data/precip_SL_1981_2016.RDS")
cc = p$date>= t1 & p$date<=t2
p = p[cc,-1]
p = apply(p,1, function(x){mean(x,na.rm = T)})
par(mfrow=c(3,1), mar=c(4,4,4,1))
ccf(as.vector(obs.data$q23),
p,
na.action=na.pass, lag.max=5,
main = "Lluvia - Paso de los Troncos",
xlab= "Lag (días)")
ccf(as.vector(obs.data$q36),
p,
na.action=na.pass, lag.max=5,
main="Lluvia - Fray Marcos",
xlab= "Lag (días)")
ccf(as.vector(obs.data$q41),
p,
na.action=na.pass, lag.max=5,
main="Lluvia - Paso Pache ",
xlab= "Lag (días)")
Considerando lo mostrado en la sección Correlación Precipitación-Caudal se opta por adelantar los caudales de Paso de los Troncos y Fray Marcos en 1 día y Paso Pache en 2 días.
De esta manera quedan sincronizadas no sólo con la precipitación sino también con las otras estaciones de caudal.
A continuación se muestra la verificación de la sincronización realizada Lluvia - Caudal. Se observa que:
obs.data$q23_lag1 = lag(obs.data$q23)
obs.data$q36_lag1 = lag(obs.data$q36)
obs.data$q41_lag2 = lag(lag(obs.data$q41))
#obs.data = data.frame(obs.data)
#obs.data$q23_lag1 = c(obs.data$q23[2:nrow(obs.data)],NA)
#obs.data$q36_lag1 = c(obs.data$q36[2:nrow(obs.data)],NA)
#obs.data$q41_lag2 = c(obs.data$q41[3:nrow(obs.data)],NA,NA)
par(mfrow=c(3,1), mar=c(4,4,4,1))
ccf(as.vector(obs.data$q23_lag1),
p,
na.action=na.pass, lag.max=5,
main = "Lluvia - Paso de los Troncos (Lag1)",
xlab= "Lag (días)")
ccf(as.vector(obs.data$q36_lag1),
p,
na.action=na.pass, lag.max=5,
main="Lluvia - Fray Marcos (Lag1)",
xlab= "Lag (días)")
ccf(as.vector(obs.data$q41_lag2),
p,
na.action=na.pass, lag.max=5,
main="Lluvia - Paso Pache (Lag2)",
xlab= "Lag (días)")
par(mfrow=c(3,1), mar=c(4,4,4,1))
ccf(obs.data$q23_lag1,
obs.data$q36_lag1,
na.action=na.pass, lag.max=5,
main = "Paso de los Troncos (Lag1) - Fray Marcos (Lag1)",
xlab= "Lag (días)")
ccf(obs.data$q23_lag1,
obs.data$q41_lag2,
na.action=na.pass, lag.max=5,
main="Paso de los Troncos (Lag1) - Paso Pache (Lag2)",
xlab= "Lag (días)")
ccf(obs.data$q36_lag1,
obs.data$q41_lag2,
na.action=na.pass, lag.max=5,
main="Fray Marcos (Lag1) - Paso Pache (Lag2)",
xlab= "Lag (días)")
A work by Rafael Navas