J'ai un 1er jeu de données (="Virey") qui représente le niveau d'eau d'une rivière en fonction du temps. Le pas de temps des mesures est de 1h et les dates sont en format numérique Excel car je trouve plus simple de les manipuler (sous Excel: 1 jour = 1, 1h = 0,042).
La chronique est longue donc je mets seulement l'exemple d'une crue :
Code : Tout sélectionner
Virey <- structure(list(Date = c(44716.0417, 44716.0833, 44716.125, 44716.1667,
44716.2083, 44716.25, 44716.2917, 44716.3333, 44716.375, 44716.4167,
44716.4583, 44716.5, 44716.5417, 44716.5833, 44716.625, 44716.6667,
44716.7083, 44716.75, 44716.7917, 44716.8333, 44716.875, 44716.9167,
44716.9583, 44717, 44717.0417, 44717.0833, 44717.125, 44717.1667,
44717.2083, 44717.25, 44717.2917, 44717.3333, 44717.375, 44717.4167,
44717.4583, 44717.5, 44717.5417, 44717.5833, 44717.625, 44717.6667,
44717.7083, 44717.75, 44717.7917, 44717.8333, 44717.875, 44717.9167,
44717.9583, 44718, 44718.0417, 44718.0833, 44718.125, 44718.1667,
44718.2083, 44718.25, 44718.2917, 44718.3333, 44718.375, 44718.4167,
44718.4583, 44718.5, 44718.5417, 44718.5833, 44718.625, 44718.6667,
44718.7083, 44718.75, 44718.7917, 44718.8333, 44718.875, 44718.9167,
44718.9583, 44719, 44719.0417, 44719.0833, 44719.125, 44719.1667,
44719.2083, 44719.25, 44719.2917, 44719.3333, 44719.375, 44719.4167,
44719.4583, 44719.5, 44719.5417, 44719.5833, 44719.625, 44719.6667,
44719.7083, 44719.75, 44719.7917, 44719.8333, 44719.875, 44719.9167,
44719.9583), NivV = c(0.279, 0.279, 0.28, 0.283, 0.286, 0.29,
0.297, 0.301, 0.302, 0.3, 0.297, 0.296, 0.293, 0.289, 0.286,
0.285, 0.282, 0.279, 0.28, 0.285, 0.294, 0.318, 0.572, 0.826,
0.975, 1.114, 1.246, 1.393, 1.57, 1.646, 1.622, 1.492, 1.219,
1.033, 0.905, 0.829, 0.771, 0.726, 0.689, 0.657, 0.628, 0.605,
0.581, 0.559, 0.54, 0.523, 0.509, 0.494, 0.479, 0.465, 0.453,
0.442, 0.431, 0.422, 0.414, 0.408, 0.402, 0.396, 0.391, 0.385,
0.374, 0.368, 0.367, 0.362, 0.358, 0.354, 0.35, 0.348, 0.345,
0.341, 0.336, 0.332, 0.329, 0.326, 0.324, 0.323, 0.321, 0.32,
0.319, 0.318, 0.319, 0.316, 0.316, 0.312, 0.312, 0.313, 0.312,
0.311, 0.309, 0.307, 0.306, 0.306, 0.305, 0.305, 0.305)), row.names = 481:575, class = "data.frame")
A partir de cette chronique, je cherche à repérer les hausses de niveau d'eau synonymes de début de crue. J'ai fixé comme seuil de détection une hausse minimale de 4cm en 1h. J'ai réussi à extraire dans un 2ème dataframe (="Virey_crue") la date et le niveau d'eau pour chacun de ces événements de crue. J'ai ensuite éliminer ceux qui étaient trop proches car seuls les débuts de crue m'intéressent ici (sur cette rivière, les crues durent en moyenne entre 1 et 3 jours donc j'ai pris ici un minimum de 2 jours d'écart entre 2 "débuts" de crue)).
Code : Tout sélectionner
Virey_Date <- c()
Virey_Niv <- c()
# Pour identifier les declenchements de crue
for (i in 2:nrow(Virey)) {
if(Virey[i,2]-Virey[i-1,2] >= 0.04) { # le 0.04 represente la hausse du niveau d'eau pour identifier une crue (en metres)
Virey_Date <- c(Virey_Date,Virey[i-1,1])
Virey_Niv <- c(Virey_Niv,Virey[i-1,2])
Virey_crue <- data.frame(Virey_Date,Virey_Niv)
}
}
plot(Virey$Date, Virey$NivV,col="blue",type="l", main="Seuil = 0,04m")
points(Virey_crue$Virey_Date, Virey_crue$Virey_Niv,col="red", pch=19)
# Pour garder seulement les debuts de crue (enlever les declenchements qui se suivent (moins de 2 jours d'ecart)
for (p in 2:nrow(Virey_crue)) {
while(Virey_crue[p,1]-Virey_crue[p-1,1] < 2) { # sous Excel : 2 = 2 jours
Virey_crue <- Virey_crue[-p,]
}
}
plot(Virey$Date, Virey$NivV,col="blue",type="l", main = "Seuil = 0,04m et 48h / n = 12")
points(Virey_crue$Virey_Date, Virey_crue$Virey_Niv,col="red",pch=19)
J'aimerais maintenant simuler un échantillonnage durant chacune de ces crues avec un préleveur automatique qui a une capacité de 24 flacons et qui prélèverait un flacon toutes les 2h (ou 3h).
Je voudrais donc insérer 23 lignes à la suite de chacun de ces débuts de crue, avec un intervalle de 2h entre chaque ligne. Le niveau d'eau peut rester le même pour les 23 lignes (je veux surtout voir si l'ensemble des 24 flacons permet d’échantillonner toute la crue ou pas). Bien sûr, s'il est possible de récupérer le niveau d'eau associé à la date de chaque flacon, ça serait top :)
Merci d'avance et je vous souhaite une très bonne journée,
François