| 9 | |
| 10 | '''De Lionel :''' |
| 11 | Je crois aussi que les méta-données actuelles ne sont pas bonnes. Premièrement, une convention de base des fichiers NetCDF est que les variables coordonnées, c'est-à-dire les variables |
| 12 | dont le nom est identique au nom de leur unique dimension, sont strictement |
| 13 | monotones. Ce qui n'est le cas ni avec "Ahyb" ni avec "Bhyb" ("Bhyb" constant |
| 14 | nul aux plus hauts niveaux). On se le fait tout de suite signaler par Ferret |
| 15 | quand on ouvre un fichier "hist" actuel. Deuxièmement, on est toujours loin |
| 16 | de la convention CF, selon laquelle l'en-tête devrait être de ce type : |
| 17 | |
| 18 | {{{ |
| 19 | netcdf histday { |
| 20 | dimensions: |
| 21 | time = UNLIMITED ; // (30 currently) |
| 22 | s = 50 ; |
| 23 | latitude = 73 ; |
| 24 | longitude = 96 ; |
| 25 | variables: |
| 26 | float time(time) ; |
| 27 | time:units = "days since 1980-01-01" ; |
| 28 | time:calendar = "360d" ; |
| 29 | time:long_name = "time" ; |
| 30 | float s(s) ; |
| 31 | s:positive = "down" ; |
| 32 | s:standard_name = "atmosphere_hybrid_sigma_pressure_coordinate" ; |
| 33 | s:long_name = "hybrid sigma-pressure coordinate" ; |
| 34 | s:formula_terms = "ap: ap b: bp ps: psol p0: p0" ; |
| 35 | float latitude(latitude) ; |
| 36 | latitude:units = "degrees_north" ; |
| 37 | latitude:standard_name = "latitude" ; |
| 38 | float longitude(longitude) ; |
| 39 | longitude:units = "degrees_east" ; |
| 40 | longitude:standard_name = "longitude" ; |
| 41 | float temp(time, s, latitude, longitude) ; |
| 42 | temp:units = "K" ; |
| 43 | temp:standard_name = "air_temperature" ; |
| 44 | temp:long_name = "air temperature" ; |
| 45 | float ap(s) ; |
| 46 | ap:title = "Coefficient A pour hybride" ; |
| 47 | ap:units = "hPa" ; |
| 48 | float bp(s) ; |
| 49 | bp:title = "Coefficient B pour hybride" ; |
| 50 | float psol(time, latitude, longitude) ; |
| 51 | psol:units = "hPa" ; |
| 52 | psol:standard_name = "surface_air_pressure" ; |
| 53 | psol:long_name = "surface pressure" ; |
| 54 | float p0 ; |
| 55 | p0:units = "hPa" ; |
| 56 | p0:long_name = "reference pressure for hybrid coordinate" ; |
| 57 | |
| 58 | // global attributes: |
| 59 | :Conventions = "CF-1.4" ; |
| 60 | :institution = "IPSL" ; |
| 61 | data: |
| 62 | |
| 63 | time = 360.5, 361.5, ..., 389.5 ; |
| 64 | |
| 65 | s = 0.994072, ..., 0.0001417363 ; |
| 66 | |
| 67 | latitude = 90, 87.5, ..., -90 ; |
| 68 | |
| 69 | longitude = -180, -176.25, ..., 176.25 ; |
| 70 | |
| 71 | p0 = 500 ; |
| 72 | |
| 73 | ... |
| 74 | } |
| 75 | }}} |
| 76 | |
| 77 | Une possibilité qui aurait le mérite d'être propre serait de partir d'une |
| 78 | définition du fichier conforme à la convention CF comme ci-dessus et |
| 79 | d'ajouter pour le confort des variables "alt" et "presnivs" qui dépendent de |
| 80 | la coordonnée hybride "s". Dans Ferret par exemple, on pourrait taper : |
| 81 | |
| 82 | shade temp[x=@ave, l=1], y[g=temp], alt |
| 83 | |
| 84 | pour voir la température en fonction de la pseudo-altitude. |