diff --git a/Inst_eddies/Analysis/stat.py b/Inst_eddies/Analysis/stat.py index 84ab2329492ef3db721ebc77a94af41f093e4099..d6a4bae82aff89f77f71cc397e25e56a4fc1b632 100755 --- a/Inst_eddies/Analysis/stat.py +++ b/Inst_eddies/Analysis/stat.py @@ -59,13 +59,10 @@ with shapefile.Reader(path.join(args.SHPC, "Slice_0", args.orientation, else: n_valid_speed += 1 -print("number of extrema of SSH:", n_extr) -print() - +print("number of extrema of SSH:", n_extr, "\n") print("number of null outermost contours:", n_null, "\n") print("number of valid eddies (outermost contour found with sufficient area):", - n_valid) -print() + n_valid, "\n") if with_radius_4: print("number of extrema with radius4 == 0 (no outermost contour or " @@ -82,10 +79,9 @@ if n_valid != 0: print("average number of points of outermost contour per valid eddy:", n_points_valid / n_valid) -print("average number of points of outermost contour per extremum (valid eddy " - "or not):", n_points / n_extr) -print() - +print("average number of points of outermost contour per extremum (valid or " + "invalid eddy, including null outermost contours):", n_points / n_extr, + "\n") print("number of valid speed values:", n_valid_speed) if with_radius_4: @@ -106,6 +102,7 @@ with shapefile.Reader(path.join(args.SHPC, "Slice_0", args.orientation, for shape_rec in max_speed_contour: l = len(shape_rec.shape.points) n_points += l + if shape_rec.record.r_eq_area >= 0: n_max_speed += 1 n_points_valid += l diff --git a/Inst_eddies/Documentation_texfol/documentation.tex b/Inst_eddies/Documentation_texfol/documentation.tex index 19571418d815d37e92f2d89bf7954d05385f8ed8..d4996ecaf053a1f0552a101972ab98bf69367ed5 100644 --- a/Inst_eddies/Documentation_texfol/documentation.tex +++ b/Inst_eddies/Documentation_texfol/documentation.tex @@ -737,9 +737,16 @@ Nous avons besoin que la composante extr\_map de snapshot soit étendue en longitude dans le cas d'un domaine périodique pour son utilisation par \verb+nearby_extr+. -Les tailles ci-dessous sont calculées pour 8000 tourbillons, 30 côtés par -polygone (sans différence entre contour extérieur et contour de -vitesse maximale), 720 latitudes par 1440 longitudes. +Avec les données globales Aviso en 1993, on trouve (avec le script +\verb+stat.py+), pour chaque orientation, une moyenne d'environ +\np{7e3} extremums par date, \np{14} points par contour extérieur +(valide ou non, y compris nul), \np{4} points par contour de vitesse +maximale (nul ou non), \np{3e3} contours extérieurs valides par date, +23 points par contour extérieur valide, \np{1e3} contours de vitesse +maximale non vides par date, 20 points par contour de vitesse maximale +non vide. Les tailles ci-dessous sont calculées pour 13000 +tourbillons, 18 points au total dans le contour extérieur et le +contour de vitesse maximale, 720 latitudes par 1440 longitudes. \begin{description} \item[longitude, latitude] Vecteurs de réels \item[ssh, u, v] Tableaux de réels, deux dimensions (nlon, @@ -762,7 +769,7 @@ vitesse maximale), 720 latitudes par 1440 longitudes. & = [2 (n_o + n_s) + 17]\ \mathrm{mots} \\ & = 4 [2 (n_o + n_s) + 17]\ \mathrm{B} \end{align*} -soit environ \np{0.5} KiB. +soit environ \np{0.2} KiB. \item[snapshot\%list\_vis] On a besoin d'encapsuler le vecteur de type eddy dans un scalaire de type snapshot pour pouvoir considérer un vecteur de snapshots. Notons $n_{ve}$ le nombre de tourbillons à une @@ -772,12 +779,12 @@ soit environ \np{0.5} KiB. = n_{ve} [2 (\langle n_o \rangle + \langle n_s \rangle) + 17]\ \mathrm{mots} \end{equation*} - soit environ 4 MiB. + soit environ 3 MiB. \item[snapshot\%extr\_map] Notons $n_\lambda$ le nombre de longitudes, $n_\phi$ le nombre de latitudes. Taille : $n_\lambda n_\phi$ mots, soit environ 4 MiB. \item[snapshot\%ind\_extr] Taille : $2 n_{ve}$ mots, soit environ - \np{0.06} MiB. + \np{0.1} MiB. \end{description} On a : \begin{align*} @@ -787,7 +794,7 @@ On a : & = [n_{ve} (2 (\langle n_o \rangle + \langle n_s \rangle) + 19) + n_\lambda n_\phi + 2]\ \mathrm{mots} \end{align*} -D'où la taille d'un scalaire de type snapshot : environ 8 MiB. +D'où la taille d'un scalaire de type snapshot : environ 7 MiB. J'avais d'abord pensé mettre dans le type eddy les champs ind\_lon et ind\_lat. Ce n'est pas très cohérent parce que les indices se réfèrent @@ -924,6 +931,16 @@ ne ferme pas les contours passant par le bord. J'avais essayé, pour inférieure mais cela pose des problèmes de cohérence dans l'algorithme. +Remarque. Il est inutile de tester si area est supérieur à +\verb+min_area+ à chaque itération. Si area est strictement inférieur, +cela ne permet pas de stopper la boucle puisqu'on va chercher ensuite +un contour plus grand. + +Remarque. Il n'est pas possible de diminuer la fenêtre de recherche +des contours au cours de la boucle. En effet, les bons contours +trouvés sont de plus en plus grands, et on cherche toujours un contour +plus grand. + \subsection{good\_contour} Trouve, si elle existe, une ligne de niveau à un niveau donné,