Bonjour,
Dans le cadre d'un TIPE nous devons faire un programme sur matlab pour exploiter des données de températures océaniques issues d'une base .
Nous avons des fichiers de ce type , :
ftp://ftp.nodc.noaa.gov/pub/data.nodc/woa/DATA_ANALYSIS/DATA/climatology/t00an1.gz
Donc c'est une suite de chiffre sur 10 colonnes et beaucoup de lignes , et apparament les chiffres se lisent "les uns à la suite des autres".
En gros on aurait besoin de créer une matrice en 3 dimensions pour stocker nos valeurs de température , pour notre lecture on aurait 3 boucles , une sur la latitude , l'autre sur la longitude et la dernière sur la profondeur.
C'est pas évident d'expliquer la façon dont les données sont données sont rangées par écrit donc je vais donner un exemple de ce qu'il nous faudrait faire:
Le premier chiffre du fichier correspond au point de coordonnée (89.5° de latitude Nord , 0° de longitude , profondeur 0) , les 27 données suivantes correspondent aux données de température sur 27 niveaux ( donc 28 en tout) , donc il faut que l'algo stocke toutes ces données dans une même "colonne d'eau" dans ma matrice 3D (j'espère que c'est assez clair , pas évident :D.)
Ensuite l'algo doit faire la même chose pour le point de coordonnée (89.5°,0.5°) sur les 28 profondeurs , puis (0.5°,1°) etc.
Ensuite une fois que le "tour" de la terre est fait il faut passer la latitude 89,0 et refaire la même opération...
Il faut faire ça sur tout le globe , est-ce que vous savez comment effectuer ce genre de requêtes sur matlab? Je suis assez novice en programmation matlab et je n'ai jamais fait ce genre de choses.
Merci beaucoup , j'espère avoir été compréhensible :).
PS: ne vous étonnez pas de ne voir que des 99,9999 dans les premières pages de ce fichier , il n'y a évidemment pas de données au niveau des pôles , des continents ou partout sur les océans... ce sont des données issues des campagnes océanographiques.

Effectivement il y avait deux erreurs : les profondeurs sont sur 16 niveaux .
Je n'avais pas bien compris la façon dont été organisées les données:
Je reprend mon exemple précédent en le modifiant:
Le premier chiffre du fichier correspond au point de coordonnée (89.5° de latitude Nord , 0° de longitude , profondeur 1) , les 359 données suivantes correspondent aux données de température en faisant un "tour du globe"
Ensuite on recommence pour (88,5°,0°,profondeur 1 )
Donc il suffit d'une matrice de taille 360x180 ( à peu près ) pour stocker les températures à la prondeur k.
Une fois que la totalité du globe a été parcourue on passe à la profondeur 2 , on refait tout le globe , on passe à la profondeur suivante ... etc
D'après ce que j'ai compris sur mes recherches il faut utiliser la fonction fopen pour ouvrir le fichier mais en faisant des test sur un fichier " au pif"
f=fopen('nom_fichier.txt','r')
J'obtiens ans=3 donc je comprend pas bien . J'ai cherché dans l'aide mais je n'ai rien trouvé sur ce problème.
Ensuite pour lire le fichier il faut utiliser fscan apparemment , pareil j'ai un peu de mal à comprendre le fonctionnement de cette fonction .
Voila le prototype de programme: (
f = fopen ('nom_du_fichier', '')
Temp = zeros (360, 180, 28);
for m = 1:28
Temp (:, :, m) = fscanf (f, '%f%f%f%f%f%f%f%f%f%f\n', [360, 180]);
end
Ca vous semble correct comme programme? En particulier je comprend pas à quoi correspond le n à la fin..
Merci beaucoup.