Bonjour,
Cherchant à calculer des jours consécutifs de pluie le code de Kmaniche (voir cette discussion) est correct,
exemple j'ai la matrice "a" suivante
ligne 1 les dates AAAA/MM/JJ et ligne 2 des valeurs de précipitations
a
J'applique donc son code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 20010101 20010102 20010103 20010104 20010105 20010107 20010108 20010109 20010110 20010111 20010112 20010113 1 1 17 7 2 2 8 0 13 5 2 2
J'obtiens donc
Code : Sélectionner tout - Visualiser dans une fenêtre à part [snz, nbnz] = nonzeros2(a(:,2))
snz= [7 4] qui est la taille des séquences pluvieuses, et nbnz=2 qui est le nombre de séquences pluvieuses
De plus je calcul un indice qui me donne le nombre d'évènement où j'ai des jours consécutif de pluie de 6 jour ou plus
J'ai donc ici dans mon cas CWD6j= 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part CWD6j= sum(snz>=6)
Or dans mon vecteur date je m’aperçois qu'il me manque le 20010106. Je souhaite donc un code qui m'arrete de compter lorsqu'il manque une date car j'ai 10 ans de données journalières et donc par moment plusieurs trous.
Dans ce cas j'aimerai obtenir snz= [5 2 4], et nbnz=3 et à ce moment CWD6j= 0
Pour cela j'ai crée un vecteur time complet avec toutes les dates et j'y affecte les valeur NaN. A l'aide de la fonction ismember je reconstitue mon vecteur complet avec des NaN là où il me manque une date. J'ai donc à présent
Mais lorsque je reprend le code de Kmaniche il prend pas les NaN, je ne peux pas pas calculer snz et nbnz, alors que moi j'aimerai qu'il s’arrête de compter dès qu'il voit un 0 ou bien un NaN
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 20010101 20010102 20010103 20010104 20010105 20010106 20010107 20010108 20010109 20010110 20010111 20010112 20010113 1 1 17 7 2 NaN 2 8 0 13 5 2 2
la fonction nonzeros2 de kmaniche est disponible ici
Quelqu'un as t-il la solution ? Cela fait plusieurs semaines que je bloque.
Partager