Changeset 635
- Timestamp:
- 03/27/14 16:11:49 (10 years ago)
- Location:
- trunk
- Files:
-
- 164 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/adm/extract_demoandtest.sh
r634 r635 103 103 if [ ${#} -lt ${minargcount} ] 104 104 then 105 echo "eee : not enough targuments"105 echo "eee : not enough arguments" 106 106 echo "${usage}" 107 107 exit 1 -
trunk/adm/mlintall.sh
r634 r635 129 129 if [ ${#} -lt ${minargcount} ] 130 130 then 131 echo "eee : not enough targuments"131 echo "eee : not enough arguments" 132 132 echo "${usage}" 133 133 exit 1 … … 139 139 case "${1}" in 140 140 -i) 141 # directory for inputs cho osen by user141 # directory for inputs chosen by user 142 142 indir=${2} 143 # si l'opérateur a mis ., on force à $(pwd) pour être plus clair143 # si l'opérateur a mis ., on force à $(pwd)/ pour être plus clair 144 144 # dans les sorties 145 145 if [ "${indir}" = "." ] 146 146 then 147 indir=$(pwd) 147 indir=$(pwd)/ 148 148 fi 149 149 shift 150 150 ;; 151 151 -o) 152 # directory for outputs cho osen by user152 # directory for outputs chosen by user 153 153 outdir=${2} 154 # si l'opérateur a mis ., on force à $(pwd) pour être plus clair154 # si l'opérateur a mis ., on force à $(pwd)/ pour être plus clair 155 155 # dans les sorties 156 156 if [ "${outdir}" = "." ] 157 157 then 158 outdir=$(pwd) 158 outdir=$(pwd)/ 159 159 fi 160 160 shift … … 235 235 unset list_m_dir 236 236 # 237 memo_pwd=$(pwd) 237 memo_pwd=$(pwd)/ 238 238 # loop on each file to launch mlint on it 239 239 for m_file in ${list_m_files} -
trunk/docs/docs_dev/source/guides/data_content.rst
r634 r635 160 160 161 161 exemple de terminologie : 162 - :file:`MOD15A2.A2000361.h16v07.005.2006349094018.hdf` 163 - :file:`MOD15A2.A2000361.h16v07.005.2006349094018.hdf.xml` 162 163 - :file:`MOD15A2.A2000361.h16v07.005.2006349094018.hdf` 164 - :file:`MOD15A2.A2000361.h16v07.005.2006349094018.hdf.xml` 164 165 165 166 Derived files … … 303 304 This file contains Excel files : 304 305 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 306 - Barkedji_pluviom_SP-2008.xls 307 - Barkédji_Morel.xls 308 - Barkédji_RR_1961-2000.xls 309 - CORUS_Ferlo.xls 310 - Coordionénes STATIONS_AGRY_Synop.XLS 311 - Données_Almamy_vallée-SEN.xls 312 - Ferlo_Pluvio-journaliÚre_1961-2000.xls 313 - Ferlo_Pluvio-journaliÚre_2001-2009.xls 314 - LYON_Adama-Sarr(Données).xls 315 - Ranérou.xls 316 - barkedji_pluviom_2003.xls 317 - barkedji_pluviom_2004.xls 318 - barkedji_pluviom_2005.xls 319 - barkedji_pluviom_2006.xls 320 - bar?kdji pluvio2009.xls 321 - ferlo_pluvio_journaliere_1933_2000.xls 322 - petite cÃŽte.xls 322 323 323 324 .. note:: … … 331 332 in ASCII format using xls2csv. 332 333 333 - Barkedji_pluviom_SP-2008.xls 334 335 les cumuls ne sont pas utiles dans les programmes du projets car 336 recalculables 337 338 pas de valeurs manquantes sur des cases ne correspondant pas à une date (ex : 20080931) 339 340 - ferlo_pluvio_journaliere_1933_2000.xls 341 xls2calc ne permet pas de récupérer le nom des feuilles 342 343 on les voit avec strings 344 gassane 345 ranerou 346 linguere 347 dahra 348 sagata 349 barkedji 350 velingara 351 thiel 352 Arbeitsbl 353 354 les années ne sont pas tjs sur la même colonne 355 356 il y a des valeurs manquantes -999 mais aussi des valeurs bizarres -555 357 358 les années ne sont pas typées "date" mais integer. 359 360 361 Une carte du réseau des pluviomÚtres du Sénégal est mis à diposition par 334 - Barkedji_pluviom_SP-2008.xls 335 336 les cumuls ne sont pas utiles dans les programmes du projets car 337 recalculables 338 339 pas de valeurs manquantes sur des cases ne correspondant pas à une 340 date (ex : 20080931) 341 342 - ferlo_pluvio_journaliere_1933_2000.xls 343 xls2calc ne permet pas de récupérer le nom des feuilles 344 345 on les voit avec strings 346 347 .. parsed-literal:: 348 349 gassane 350 ranerou 351 linguere 352 dahra 353 sagata 354 barkedji 355 velingara 356 thiel 357 Arbeitsbl 358 359 les années ne sont pas tjs sur la même colonne 360 361 il y a des valeurs manquantes -999 mais aussi des valeurs bizarres -555 362 363 les années ne sont pas typées "date" mais integer. 364 365 Une carte du réseau des pluviomÚtres du Sénégal est mis à disposition par 362 366 l'agence nationale de la météorologie du Sénégal sout forme PNG : 363 367 http://www.meteo-senegal.net/images/png/pluvio.png. … … 371 375 They are csv files: 372 376 373 374 375 376 377 378 379 380 377 - :file:` BarkCçdji_RR_1961-2000.csv` 378 - :file:`barkedji pluvio2009.csv` 379 - :file:`barkedji_pluie_2003.csv` 380 - :file:`barkedji_pluie_2004.csv` 381 - :file:`barkedji_pluie_2006.csv` 382 - :file:`barkedji_pluvio_2005.csv` 383 - :file:`pluvio_linguere_2001-2009.csv` 384 - :file:`pluvio_ranerou_2001-2009.csv` 381 385 382 386 .. note:: … … 394 398 because of following problems: 395 399 396 397 398 399 400 401 402 403 `"Jours","Juin","Juillet","Août","Septembre","Octobre","Novembre","cumul"`404 vs `"jours","JUIN","JUILLET","AOUT","SEPT","OCT","cumuls","Décads"`405 400 - heterogenous terminology (ex: barkedji_pluvio_2005.csv vs 401 barkedji_pluie_2006.csv) 402 - comma as digital separator 403 - different formalism for missing values : `xx`, `-999`, `-555`, `-`, empty 404 field 405 - no geolocation 406 - heterogenous headers (ex : 407 `"Jours","Juin","Juillet","Août","Septembre","Octobre","Novembre","cumul"` 408 vs `"jours","JUIN","JUILLET","AOUT","SEPT","OCT","cumuls","Décads"` 409 - multiple years in one file 406 410 407 411 Eventually following files are available in 408 412 :file:`/net/zeus/usr/zeus/incas/mousson/PRECIP/` : 409 413 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 414 - :file:`barkedji_pluie_2003.csv` 415 - :file:`barkedji_pluie_2004.csv` 416 - :file:`barkedji_pluie_2005.csv` 417 - :file:`barkedji_pluie_2006.csv` 418 - :file:`barkedji pluie_2009.csv` 419 - :file:`pluvio_linguere_2002.csv` 420 - :file:`pluvio_linguere_2003.csv` 421 - :file:`pluvio_linguere_2004.csv` 422 - :file:`pluvio_linguere_2005.csv` 423 - :file:`pluvio_linguere_2006.csv` 424 - :file:`pluvio_linguere_2007.csv` 425 - :file:`pluvio_linguere_2008.csv` 426 - :file:`pluvio_linguere_2009.csv` 427 - :file:`pluvio_ranerou_2002.csv` 428 - :file:`pluvio_ranerou_2003.csv` 429 - :file:`pluvio_ranerou_2004.csv` 430 - :file:`pluvio_ranerou_2005.csv` 431 - :file:`pluvio_ranerou_2007.csv` 432 - :file:`pluvio_ranerou_2008.csv` 433 - :file:`pluvio_ranerou_2009.csv` 430 434 431 435 Annexes … … 455 459 of following problems: 456 460 457 458 459 460 461 462 463 464 461 - fichier excel 462 - nom avec diacritiques 463 - deux feuilles 464 - sur la deuxiÚme feuille 2 colonnes 465 - des stations sont présentes plusieurs fois (ex: ranerou) 466 - lat lon et alt sont des chaines 467 - séparateur de décimale **,** 468 - jaune et vert uniquement pour être humain 465 469 466 470 Eventually :file:`/net/zeus/usr/zeus/incas/mousson/PRECIP/stations.csv` … … 500 504 Laurence a des fichiers: 501 505 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 ref. dans climeserv :file:`/homedata/eymard/TRAIT_AMSU/`553 554 555 556 557 558 559 560 561 562 563 564 565 566 506 - :file:`{c}{x}.an{yyyy}.nc` :file:`{c}{x}.an{yyyy}.nc` :file:`{c}{x}.an{yyyy}.nc` 507 508 avec 509 510 c 511 canal a ou b 512 513 x 514 numéro du canal (pour `a` parmi [1,2,3,4,5,6,7,8,9,15], pour `b` 515 parmi [1,2,3,4,5]) 516 517 yyyy 518 pour année. 519 520 - :file:`{c}{x}.{yyyy}{mm}.afratl.nc` 521 522 avec 523 524 c 525 canal a ou b 526 527 x 528 numéro du canal (pour `a` parmi [1,2,3,4,5,6,7,8,9,15], pour `b` 529 parmi [1,2,3,4,5]) 530 531 yyyy 532 année 533 534 mm 535 mois 536 537 - :file:`{c}{x}.climato.nc` 538 539 avec 540 541 c 542 canal a ou b 543 544 x 545 numéro du canal (pour a parmi [2,3,4,4,7,8], pour b parmi [3,4,5]) 546 547 - fichiers de correction au nadir 548 549 - :file:`CORR_LAND_AMSUA_AMSUB.DAT` 550 - :file:`CORR_LAND_AMSUA_JUIL2006.DAT` 551 - :file:`CORR_LAND_AMSUB_JUIL2006.DAT` 552 - :file:`CORR_SEA_AMSUA_AMSUB.DAT` 553 - :file:`CORR_SEA_AMSUA_JUIL2006.DAT` 554 - :file:`CORR_SEA_AMSUB_JUIL2006.DAT` 555 556 ref. dans ClimServ :file:`/homedata/eymard/TRAIT_AMSU/` 557 558 aussi dans :file:`/net/zeus/usr/zeus/incas/mousson/AMSU/` 559 560 +todo+ comment ont-ils été crées ? 561 562 used in :ref:`correct_nadir_amsu.pro` and :ref:`interpol_correc.pro` 563 564 - "exotiques" 565 566 Il y a qqes "exotiques" 567 568 - :file:`a5.climato_sstrous.nc`, 569 - :file:`a7.2000_2006.nc`, 570 - :file:`b3.2000_2006.nc` 567 571 568 572 L'année de mise au point des programmes est 2006. … … 735 739 .. warning:: 736 740 737 need to belong to ``amma_eu`` group on climserv.741 need to belong to ``amma_eu`` group on ClimServ. 738 742 739 743 Déposés par Laurence Eymard dans … … 780 784 ---------- 781 785 782 Pour l'instant je ne sais pas grand chose si ce n'est qu'elles sont sur climserv.786 Pour l'instant je ne sais pas grand chose si ce n'est qu'elles sont sur ClimServ. 783 787 784 788 Voir doc dans `ECMWF analysis over global area <http://climserv.ipsl.polytechnique.fr/fr/les-donnees/ecmwf-analysis-over-global-area-6.html>` … … 792 796 793 797 Les fichiers ECMWF INTERIM sont aussi disponibles +todo+. 794 795 796 797 798 799 800 801 802 798 - :file:`msl.{yyyy}{mm}.ash.GLOBAL_1125.nc` 799 800 avec 801 802 mm 803 mois 804 805 yyyy 806 année 803 807 804 808 contient les "mean sea level" toutes les 6 heures sur le globe pour un mois donné. 805 809 806 - :file:`z.{yyyy}{mm}.aph.nc` 807 808 avec 809 810 mm 810 - :file:`z.{yyyy}{mm}.aph.nc` 811 812 avec 813 814 mm 815 mois 816 817 yyyy 818 année 819 820 contient les "++" (réanalyse) toutes les 6 heures sur le globe pour un mois donné. 821 822 - :file:`geopt.{yyyy}{mm}.aph.nc` :file:`geopt.{yyyy}{mm}.aph.GLOBAL_1125.nc` 823 824 avec 825 826 mm 811 827 mois 812 828 813 829 yyyy 814 830 année 815 816 contient les "++" (réanalyse) toutes les 6 heures sur le globe pour un mois donné.817 818 - :file:`geopt.{yyyy}{mm}.aph.nc` :file:`geopt.{yyyy}{mm}.aph.GLOBAL_1125.nc`819 820 avec821 822 mm823 mois824 825 yyyy826 année827 831 828 832 contient les "++" (operationel) toutes les 6 heures sur le globe pour un mois donné. … … 836 840 :file:`/usr/temp/lelod/olr_laurence.nc` et qu'il a posé des soucis d'axe de temps (à l'envers ?!) avec SAXO. ++ à élucider. 837 841 838 Doc sur climserv :842 Doc sur ClimServ : 839 843 ftp://ftp.climserv.ipsl.polytechnique.fr/noaa-olr/README 840 844 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 845 - Moyenne quotidienne globale de 1974 à maintenant : 846 847 ftp://ftp.climserv.ipsl.polytechnique.fr/noaa-olr/olr.day.mean.nc ++ que fait-on du champ info ? 848 849 - Moyenne quotidienne globale par année : 850 851 :file:`olr.day.mean.{yyyy}.nc` 852 853 avec 854 855 yyyy 856 année 857 858 - Moyenne quotidienne 859 860 [60° W, 50° E] [30° S, 45° N] par année : :file:`olr.day.mean.{yyyy}_ng.nc` 861 862 avec 863 864 yyyy 861 865 année 862 866 -
trunk/docs/docs_dev/source/guides/glossary.rst
r634 r635 43 43 44 44 AMMA 45 Analyses Multidisciplinaires de la Mouss n Africaine45 Analyses Multidisciplinaires de la Mousson Africaine 46 46 47 47 AMSU -
trunk/docs/docs_dev/source/guides/read_me.rst
r634 r635 15 15 .. - fplod 20100813T142121Z aedon.locean-ipsl.upmc.fr (Darwin) 16 16 .. 17 .. * conversion en ReS Tde cet aide mémoire de Laurence17 .. * conversion en ReStructuredText de cet aide mémoire de Laurence 18 18 .. * isolatin 19 19 .. … … 112 112 compris entre mois_deb et mois_fin inclus. 113 113 114 ex: pour prendre d'avril à août, on choisit mois_deb=4,mois_fin=8 , de décembre afévrier: mois_deb=12,mois_fin=2, toute l'année (par défaut): mois_deb=1,mois_fin=12114 ex: pour prendre d'avril à août, on choisit mois_deb=4,mois_fin=8, de décembre à février: mois_deb=12,mois_fin=2, toute l'année (par défaut): mois_deb=1,mois_fin=12 115 115 116 116 Calcul des eof sans le cycle annuel : fonction: -
trunk/docs/docs_dev/source/guides/requirements.rst
r633 r635 97 97 ----- 98 98 99 LateX is used by Sphinx_ to build documentation in PDF and may be used for building documentation in HTML if there are mathematical expressions in ReST documents. 99 LateX is used by Sphinx_ to build documentation in PDF and may be used 100 for building documentation in HTML if there are mathematical expressions 101 in ReStructuredText documents. 100 102 101 103 .. note:: -
trunk/docs/docs_dev/source/guides/style.css
r3 r635 2 2 /* DocBook CSS stylesheet of the Traduc.org project */ 3 3 4 /* (c) Jean-Philippe Gu érard - 14 août 2004 */5 /* (c) Jean-Philippe Gu érard - 14 August 2004 */4 /* (c) Jean-Philippe Guérard - 14 août 2004 */ 5 /* (c) Jean-Philippe Guérard - 14 August 2004 */ 6 6 7 7 /* Cette feuille de style est libre, vous pouvez la */ … … 20 20 /* is only provided to help you understand this licence. */ 21 21 22 /* La derni ère version de cette feuille de style est toujours */23 /* disponible sur : http://tigreraye.org/style.css */24 /* Elle est également disponible sur: */22 /* La derniÚre version de cette feuille de style est toujours */ 23 /* disponible sur : http://tigreraye.org/style.css */ 24 /* Elle est également disponible sur : */ 25 25 /* http://www.traduc.org/docs/HOWTO/lecture/style.css */ 26 26 … … 30 30 /* http://www.traduc.org/docs/HOWTO/lecture/style.css */ 31 31 32 /* N'h ésitez pas à envoyer vos commentaires et corrections à*/33 /* Jean-Philippe Gu érard <jean-philippe.guerard@tigreraye.org> */32 /* N'hésitez pas à envoyer vos commentaires et corrections à */ 33 /* Jean-Philippe Guérard <jean-philippe.guerard@tigreraye.org> */ 34 34 35 35 /* Please send feedback and bug reports to */ 36 /* Jean-Philippe Gu érard <jean-philippe.guerard@tigreraye.org> */36 /* Jean-Philippe Guérard <jean-philippe.guerard@tigreraye.org> */ 37 37 38 38 /* $Id$ */ 39 39 40 /* Pr ésentation générale du document */40 /* Présentation générale du document */ 41 41 /* Overall document presentation */ 42 42 … … 52 52 * { font-size: 100%; } 53 53 54 /* Gestion des textes mis en relief imbriqu és */54 /* Gestion des textes mis en relief imbriqués */ 55 55 /* Embedded emphasis */ 56 56 … … 82 82 h6 { font-weight: bold; } 83 83 84 /* Nom de famille en petites majuscules (uniquement en fran çais) */84 /* Nom de famille en petites majuscules (uniquement en français) */ 85 85 /* Last names in small caps (for French only) */ 86 86 87 87 *[class~="surname"]:lang(fr) { font-variant: small-caps; } 88 88 89 /* Historique des r évision */89 /* Historique des révision */ 90 90 /* Revision History */ 91 91 … … 110 110 } 111 111 112 /* Blocs lit éraux: fond gris clair */112 /* Blocs litéraux : fond gris clair */ 113 113 /* Literal blocs: light gray background */ 114 114 … … 119 119 } 120 120 121 /* Programmes et captures texte : fond bleu clair */121 /* Programmes et captures texte : fond bleu clair */ 122 122 /* Listing and text screen snapshots: light blue background */ 123 123 … … 128 128 } 129 129 130 /* Les textes à remplacer sont surlignés en vert pâle */130 /* Les textes à remplacer sont surlignés en vert pâle */ 131 131 /* Replaceable text in highlighted in pale green */ 132 132 … … 135 135 font-style: normal; } 136 136 137 /* Tables : fonds gris clair & bords simples */137 /* Tables : fonds gris clair & bords simples */ 138 138 /* Tables: light gray background and solid borders */ 139 139 … … 177 177 178 178 /* Alignement des colonnes */ 179 /* Colu nms alignment */179 /* Columns alignment */ 180 180 181 181 td[align=center] , th[align=center] { text-align: center; } … … 189 189 img { border: 0; } 190 190 191 /* Les liens ne sont pas soulign és */191 /* Les liens ne sont pas soulignés */ 192 192 /* No underlines for links */ 193 193 194 194 :link , :visited , :active { text-decoration: none; } 195 195 196 /* Prudence : cadre jaune et fond jaune clair */196 /* Prudence : cadre jaune et fond jaune clair */ 197 197 /* Caution: yellow border and light yellow background */ 198 198 … … 217 217 } 218 218 219 /* Note importante : cadre jaune et fond jaune clair */219 /* Note importante : cadre jaune et fond jaune clair */ 220 220 /* Important: yellow border and light yellow background */ 221 221 … … 241 241 242 242 243 /* Mise en évidence : texte légèrement plus grand */243 /* Mise en évidence : texte légÚrement plus grand */ 244 244 /* Highlights: slightly larger texts */ 245 245 … … 248 248 } 249 249 250 /* Note : cadre bleu et fond bleu clair */250 /* Note : cadre bleu et fond bleu clair */ 251 251 /* Notes: blue border and light blue background */ 252 252 … … 271 271 } 272 272 273 /* Astuce : cadre vert et fond vert clair */273 /* Astuce : cadre vert et fond vert clair */ 274 274 /* Tip: green border and light green background */ 275 275 … … 294 294 } 295 295 296 /* Avertissement : cadre rouge et fond rouge clair */296 /* Avertissement : cadre rouge et fond rouge clair */ 297 297 /* Warning: red border and light red background */ 298 298 -
trunk/docs/docs_dev/source/guides/svnbasiccommands.xml
r5 r635 1 <?xml version="1.0" encoding=" iso-8859-1"?>1 <?xml version="1.0" encoding="utf-8"?> 2 2 <!DOCTYPE article [ 3 3 <!ENTITY % isolat1 SYSTEM "http://www.w3.org/2003/entities/iso8879/isolat1.ent"> … … 22 22 fplod 2008-12-09T14:16:01Z aedon.locean-ipsl.upmc.fr (Darwin) 23 23 24 XML/DocBook migration of http://forge.ipsl.jussieu.fr/statpacksaxo/wiki/SvnBasicCommands from S ébastien Masson24 XML/DocBook migration of http://forge.ipsl.jussieu.fr/statpacksaxo/wiki/SvnBasicCommands from Sébastien Masson 25 25 26 26 --> … … 32 32 <info> 33 33 <authorgroup> 34 <author><personname><firstname>S ébastien</firstname> <surname>Masson</surname></personname> <email>Sebastien.Masson_at_locean-ipsl.upmc.fr</email></author>34 <author><personname><firstname>Sébastien</firstname> <surname>Masson</surname></personname> <email>Sebastien.Masson_at_locean-ipsl.upmc.fr</email></author> 35 35 </authorgroup> 36 36 <pubdate>$Id$</pubdate> -
trunk/docs/docs_dev/source/guides/v1.css
r27 r635 6 6 NCSTAT web pages 7 7 8 One can overwrite here choices made in style.css (a quiet beautiful l9 CSS configuration set for dookbook found on the web)8 One can overwrite here choices made in style.css (a quiet beautiful 9 CSS configuration set for XML/DocBook found on the web) 10 10 11 11 EVOLUTIONS -
trunk/docs/docs_dev/source/guides/varamma.css
r3 r635 2 2 This CSS file contains specific choices of look and feel of VARAMMA 3 3 documentation. 4 One can overwrite here choices made in style.css (a quiet beautiful l5 CSS configuration set for dookbook found on the web4 One can overwrite here choices made in style.css (a quiet beautiful 5 CSS configuration set for XML/DocBook found on the web 6 6 7 7 update : -
trunk/docs/docs_dev/source/guides/web.xml
r30 r635 1 <?xml version="1.0" encoding=" iso-8859-1"?>1 <?xml version="1.0" encoding="utf-8"?> 2 2 <!DOCTYPE book [ 3 3 <!ENTITY % isolat1 SYSTEM "http://www.w3.org/2003/entities/iso8879/isolat1.ent"> … … 27 27 <info> 28 28 <authorgroup> 29 <author><personname><firstname>Fran çoise</firstname> <surname>Pinsard</surname></personname> <email>Francoise.Pinsard_at_locean-ipsl.upmc.fr</email></author>29 <author><personname><firstname>Françoise</firstname> <surname>Pinsard</surname></personname> <email>Francoise.Pinsard_at_locean-ipsl.upmc.fr</email></author> 30 30 </authorgroup> 31 31 <keywordset> … … 38 38 <title>Qu'est-ce que &project; ?</title> 39 39 <para> 40 Variabilit éAMMA40 Variabilité AMMA 41 41 </para> 42 42 </chapter> … … 64 64 </para> 65 65 <para> 66 Fran çoise Pinsard pour la gestion du projet sous trac et svn66 Françoise Pinsard pour la gestion du projet sous trac et svn 67 67 </para> 68 68 </chapter> -
trunk/serietempECM.pro
r633 r635 32 32 dom=strcompress(string(lo1,lo2,la1,la2),/remove_all) 33 33 34 ;g eopotentiel : delta entre niveau 700 (7) et 925 hPa34 ;géopotentiel : delta entre niveau 700 (7) et 925 hPa 35 35 lev1=700 36 36 ;lecture premier fichier (OPERA) … … 64 64 dom=strcompress(string(lo1,lo2,la1,la2),/remove_all) 65 65 66 ;g eopotentiel : delta entre niveau 700 (7) et 925 hPa66 ;géopotentiel : delta entre niveau 700 (7) et 925 hPa 67 67 ;domaine pour geopt: 20-25 N ? 68 68 … … 91 91 for i=0,ntime1-1 do y1(i)=mean(serie1(0:nx,0:ny,i)) 92 92 93 ; si travail sur les trois derni eres annees, on saute ce passage94 ; lecture deuxi eme fichier (ERA)95 chp2=chp ;chp2='z';!!!!!attention pour g eopotentiel93 ; si travail sur les trois derniÚres années, on saute ce passage 94 ; lecture deuxiÚme fichier (ERA) 95 chp2=chp ;chp2='z';!!!!!attention pour géopotentiel 96 96 file2 = '/volumes/temp/CAT.'+chp2+'.2000.2001.6TU.nc' 97 97 initncdf, file2,zaxis='level', glam = [-180,180] -
trunk/src/EPSATbuildfullfilename.m
r634 r635 2 2 3 3 %EPSATBUILDFULLFILENAME permet d'obtenir le chemin d'accÚs a un fichier 4 %NetCDF, de donn ees de precipitations estimes d'apres l'algorithme EPSAT,4 %NetCDF, de données de precipitations estimes d'apres l'algorithme EPSAT, 5 5 %pour la date desiree. 6 6 … … 19 19 % - Donnees d'entrees : 20 20 % 21 % * ncfilesset (en caract eres) : Type de fichier NetCDF que l'on cherche,21 % * ncfilesset (en caractÚres) : Type de fichier NetCDF que l'on cherche, 22 22 % 'normal' ou 'extracted'. 23 % * Annee (en caract eres) : Annee (AAAA) du jour d'etude.24 % * Mois (en caract eres) : Numero du mois (MM) du jour d'etude.25 % * Jour (en caract eres) : Numero du Jour d'etude (JJ).23 % * Annee (en caractÚres) : Annee (AAAA) du jour d'etude. 24 % * Mois (en caractÚres) : Numero du mois (MM) du jour d'etude. 25 % * Jour (en caractÚres) : Numero du Jour d'etude (JJ). 26 26 % 27 27 % - Donnees de sorties : … … 30 30 % 31 31 % Cette fonction permet d'obtenir le chemin d'accÚs a un fichier NetCDF, 32 % de donn ees de precipitations estimes d'apres l'algorithme EPSAT, pour la32 % de données de precipitations estimes d'apres l'algorithme EPSAT, pour la 33 33 % date desiree. 34 34 % … … 101 101 % Le repertoire ou se trouve le fichier, ainsi que son nom, different selon 102 102 % qu'il soit 'normal' (fichier original) ou 'extracted' (fichier avec 103 % extraction des donn ees spatiales).103 % extraction des données spatiales). 104 104 switch ncfilesset 105 105 -
trunk/src/EPSATread.m
r634 r635 1 1 function [PluieEPSAT, Temps, Longitudes, Latitudes] = EPSATread(ncfilesset, fullfilename) 2 2 3 %EPSAT lit le fichier NetCDF de l'algorithme EPSAT du jour souhait e3 %EPSAT lit le fichier NetCDF de l'algorithme EPSAT du jour souhaité 4 4 %pour en sortir les variables (temps, longitudes et latitudes) ainsi que 5 %les donn ees de l'estimation des precipitations.5 %les données de l'estimation des précipitations. 6 6 7 7 % … … 17 17 % =========== 18 18 % 19 % - Donn ees d'entrees :20 % 21 % * ncfilesset (en caract eres) : Type de fichier NetCDF que l'on cherche,19 % - Données d'entrées : 20 % 21 % * ncfilesset (en caractÚres) : Type de fichier NetCDF que l'on cherche, 22 22 % 'normal' ou 'extracted'. 23 % * fullfilename : Chemin d'accÚs au fichier pour la date d esiree.24 % 25 % - Donn ees de sorties :23 % * fullfilename : Chemin d'accÚs au fichier pour la date désirée. 24 % 25 % - Données de sorties : 26 26 % 27 27 % * Temps : Variable de temps du fichier NetCDF. 28 28 % * Longitudes : Variable de longitudes. 29 29 % * Latitudes : Variable de latitudes. 30 % * PluieEPSAT : Donn ees brutes de l'estimation des precipitations dont30 % * PluieEPSAT : Données brutes de l'estimation des précipitations dont 31 31 % les dimensions sont respectivement, temps, longitudes et latitudes. 32 32 % 33 % lecture du fichier NetCDF de l'algorithme EPSAT du jour souhait epour en33 % lecture du fichier NetCDF de l'algorithme EPSAT du jour souhaité pour en 34 34 % sortir les variables (temps, longitudes et latitudes) ainsi que les 35 % donn ees de l'estimation des precipitations.35 % données de l'estimation des précipitations. 36 36 % 37 37 % EXAMPLES … … 63 63 % handling of missing values 64 64 % 65 % pourquoi les données sont dans des variables diff erentes entre extracted et normal66 % 67 % unité de temps : jaclod m'a scrontché la r evision 291 !!65 % pourquoi les données sont dans des variables différentes entre extracted et normal 66 % 67 % unité de temps : jaclod m'a scrontché la révision 291 !! 68 68 % 69 69 % EVOLUTIONS … … 87 87 % - jaclod 2011-07-26 88 88 % 89 % * R evision de la documentation et des commentaires.89 % * Révision de la documentation et des commentaires. 90 90 % 91 91 % - jaclod 2011-07-21 … … 95 95 % - jaclod 2011-07-13 96 96 % 97 % * Changement des arguments d'entr ees 'Annee', 'Mois', 'Jour' par98 % 'fullfilename'. Celui-ci peut- etre creepar 'EPSATbuildfullfilename'.99 % * Externalisation de la s election de donnees (voir la fonction97 % * Changement des arguments d'entrées 'Annee', 'Mois', 'Jour' par 98 % 'fullfilename'. Celui-ci peut-être créé par 'EPSATbuildfullfilename'. 99 % * Externalisation de la sélection de données (voir la fonction 100 100 % 'extractedmatrixdata'). 101 % * Ajout du facteur d' echelle.101 % * Ajout du facteur d'échelle. 102 102 % 103 103 % - pinsard 2011-05-20T09:10:34Z loholt1.ipsl.polytechnique.fr (Linux) … … 131 131 % - jaclod 2011-03-02 132 132 % 133 % * Ajout de la documentation et de la d emonstration.133 % * Ajout de la documentation et de la démonstration. 134 134 % 135 135 % - jaclod 2011-02-25 136 136 % 137 % * Creation .137 % * Creation 138 138 % 139 139 %- … … 163 163 clear fullfilename 164 164 165 % R ecuperation des variables selon l'installation et le type de fichier.165 % Récupération des variables selon l'installation et le type de fichier. 166 166 if netcdf_open_available 167 167 … … 182 182 otherwise 183 183 184 error('La variable ncfilesset doit etre ''normal'' ou ''extracted''.');184 error('La variable ncfilesset doit être ''normal'' ou ''extracted''.'); 185 185 186 186 end … … 194 194 end 195 195 196 % R ecuperation des donnees de precipitation selon l'installation.196 % Récupération des données de précipitation selon l'installation. 197 197 if netcdf_open_available 198 198 … … 203 203 PluieEPSAT = netcdf.getVar(ncid,11); 204 204 205 % Application du facteur d' echelle.205 % Application du facteur d'échelle. 206 206 PluieEPSAT = double(PluieEPSAT) * double(netcdf.getAtt(ncid,11,'scale_factor')); 207 207 % permute to output array with … … 213 213 PluieEPSAT = netcdf.getVar(ncid,8); 214 214 215 % Application du facteur d' echelle.215 % Application du facteur d'échelle. 216 216 PluieEPSAT = double(PluieEPSAT) * double(netcdf.getAtt(ncid,8,'scale_factor')); 217 217 % permute to output array with … … 221 221 otherwise 222 222 223 % Un message d'erreur a d eja ete envoyeauparavant, on ne peut224 % se retrouver anouveau dans ce cas.223 % Un message d'erreur a déjà été envoyé auparavant, on ne peut 224 % se retrouver à nouveau dans ce cas. 225 225 226 226 end -
trunk/src/LectureLAIHDF.pro
r634 r635 17 17 ; Read LAI HDF files of a given year and write :file:`${PROJECT_OD}/LAI/laisen{yyyy}_float.txt` containing LAI in Senegal box. 18 18 ; 19 ; Format of output file have bee en choosen to make it readable by Qgis.19 ; Format of output file have been chosen to make it readable by Qgis. 20 20 ; 21 21 ; :param iodirin: based directory of HDF files to be read (before -
trunk/src/MSGanalysiscrossvalidation.m
r634 r635 2 2 3 3 %MSGANALYSISCROSSVALIDATION est une fonction permettant de faire la 4 %validation des relations entre les intensit es issus de l'analyse des5 %temp erature de brillance par MSG et les precipitations d'apres EPSAT. Pour6 %cela, des donn ees aleatoires sont prises dans un domaine donnee et un4 %validation des relations entre les intensités issus de l'analyse des 5 %température de brillance par MSG et les précipitations d'aprÚs EPSAT. Pour 6 %cela, des données aléatoires sont prises dans un domaine donnée et un 7 7 %diagramme de dispersion permet de trouver la formule reliant les deux 8 %grandeurs. Cette formule est ensuite appliqu ee a un autre echantillon9 %al eatoire pour la valider.8 %grandeurs. Cette formule est ensuite appliquée à un autre échantillon 9 %aléatoire pour la valider. 10 10 11 11 % … … 21 21 % =========== 22 22 % 23 % - Donn ees d'entrees :24 % 25 % * ij_intensity_concat : Matrice comportant les donn ees d'intensites et23 % - Données d'entrées : 24 % 25 % * ij_intensity_concat : Matrice comportant les données d'intensités et 26 26 % dont les dimensions sont temps, longitudes, latitudes. 27 % * ij_cumul_concat : Matrice contenant les donn ees de precipitations28 % EPSAT cumul ees et dont les dimensions sont temps, longitudes,27 % * ij_cumul_concat : Matrice contenant les données de précipitations 28 % EPSAT cumulées et dont les dimensions sont temps, longitudes, 29 29 % latitudes. 30 % * time_intensity_concat : Variable temporelle des donn ees d'intensites,30 % * time_intensity_concat : Variable temporelle des données d'intensités, 31 31 % en jour julien. 32 % * time_cumul_concat : Variable temporelle des donn ees de33 % pr ecipitations, en jour julien.34 % * Longitudes : Variable de longitudes des donn ees de precipitations et35 % d'intensit es.36 % * Latitudes : Variable de latitudes des donn ees de precipitations et37 % d'intensit es.38 % * lonmin : Borne inférieure en longitude des donn ees selectionnees pour32 % * time_cumul_concat : Variable temporelle des données de 33 % précipitations, en jour julien. 34 % * Longitudes : Variable de longitudes des données de précipitations et 35 % d'intensités. 36 % * Latitudes : Variable de latitudes des données de précipitations et 37 % d'intensités. 38 % * lonmin : Borne inférieure en longitude des données sélectionnées pour 39 39 % le test et la validation. 40 % * lonmax : Borne supérieure en longitude des donn ees selectionnees pour40 % * lonmax : Borne supérieure en longitude des données sélectionnées pour 41 41 % le test et la validation. 42 % * latmin : Borne inférieure en latitude des donn ees selectionnees pour42 % * latmin : Borne inférieure en latitude des données sélectionnées pour 43 43 % le test et la validation. 44 % * latmax : Borne supérieure en longitude des donn ees selectionnees pour44 % * latmax : Borne supérieure en longitude des données sélectionnées pour 45 45 % le test et la validation. 46 46 % 47 47 % Cette fonction permet de faire la validation des relations entre les 48 % intensit es issus de l'analyse des temperature de brillance par MSG et les49 % pr ecipitations d'apres EPSAT. Pour cela, des donnees aleatoires sont50 % prises dans un domaine donn ee et un diagramme de dispersion permet de48 % intensités issus de l'analyse des température de brillance par MSG et les 49 % précipitations d'aprÚs EPSAT. Pour cela, des données aléatoires sont 50 % prises dans un domaine donnée et un diagramme de dispersion permet de 51 51 % trouver la formule reliant les deux grandeurs. Cette formule est ensuite 52 % appliqu ee a un autre echantillon aleatoire pour la valider.52 % appliquée a un autre échantillon aléatoire pour la valider. 53 53 % 54 54 % EXAMPLES … … 127 127 % 128 128 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 129 % Extraction des donn ees de la zone d'interet129 % Extraction des données de la zone d'interet 130 130 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 131 131 … … 141 141 142 142 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 143 % Suppression de jours eventuels de donn ees 'NaN'143 % Suppression de jours eventuels de données 'NaN' 144 144 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 145 145 146 % Suppressions des donn ees pour les jours ounous avons que des 'NaN'.147 % On cherche s'il y en a, quels sont les pas de temps concern es et leur148 % nombre. On commence par les donn ees d'intensites.146 % Suppressions des données pour les jours où nous avons que des 'NaN'. 147 % On cherche s'il y en a, quels sont les pas de temps concernés et leur 148 % nombre. On commence par les données d'intensités. 149 149 indnan = find(isnan(ij_intensity_concat(:,1,1))); 150 150 nbnan = size(indnan,1); … … 153 153 if ~isempty(indnan); 154 154 155 % On boucle pour supprimer chaque pas de temps concern es en commencant155 % On boucle pour supprimer chaque pas de temps concernés en commençant 156 156 % par les derniers (si on souhaite par exemple supprimer les pas de 157 157 % temps 2 et 5 et que l'on supprime le 2 d'abord, le 5e pas de temps 158 % sera ensuite d ecale au 4e. En commencant par la fin, cela ne se158 % sera ensuite décalé au 4e. En commençant par la fin, cela ne se 159 159 % produit pas). 160 160 for nansuppr = 1 : nbnan; … … 170 170 clear('indnan','nbnan','nansuppr'); 171 171 172 % De m eme pour les donnees EPSAT.172 % De même pour les données EPSAT. 173 173 indnan = find(isnan(ij_cumul_concat(:,1,1))); 174 174 nbnan = size(indnan,1); … … 192 192 193 193 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 194 % R ecuperation des donnees existantes pour MSG et EPSAT194 % Récupération des données existantes pour MSG et EPSAT 195 195 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 196 196 … … 200 200 time_cumul_concat = fix(time_cumul_concat); 201 201 202 % On ne garde que les jours commu ms.202 % On ne garde que les jours communs. 203 203 time_concat = intersect(time_intensity_concat,time_cumul_concat); 204 204 … … 207 207 208 208 % Initialisation des matrices contenant pour MSG et EPSAT, les indices 209 % temporelles des donn ees des jours en commun a recuperer.209 % temporelles des données des jours en commun à récupérer. 210 210 indrecupMSG = zeros(1,nbjour); 211 211 indrecupEPSAT = zeros(1,nbjour); … … 213 213 for jour = 1 : nbjour; 214 214 215 % On cherche quel est l'indice du jour dans les donn ees temporelles215 % On cherche quel est l'indice du jour dans les données temporelles 216 216 % pour chacun des cas. 217 217 indrecupMSG(1,jour) = find(time_intensity_concat == time_concat(jour)); … … 220 220 end 221 221 222 % On r ecupere seulement ces donnees.222 % On récupÚre seulement ces données. 223 223 ij_intensity_concat = ij_intensity_concat(indrecupMSG,:,:); 224 224 ij_cumul_concat = ij_cumul_concat(indrecupEPSAT,:,:); … … 230 230 231 231 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 232 % Fabrication des jeux de donn ees232 % Fabrication des jeux de données 233 233 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 234 234 235 % S election de 10 000 points uniques aleatoirements pour les donnees de235 % Sélection de 10 000 points uniques aléatoirements pour les données de 236 236 % test et de validation. 237 237 nbpoints = size(ij_intensity_concat,1)*size(ij_intensity_concat,2)*size(ij_intensity_concat,3); … … 239 239 [indvalid] = uniquerand(10000,1,nbpoints); 240 240 241 % R ecuperation des donnees correspondant aux points selectionnes.241 % Récupération des données correspondant aux points sélectionnés. 242 242 datatestMSG = ij_intensity_concat(indtest); 243 243 datatestEPSAT = ij_cumul_concat(indtest); … … 245 245 datavalidEPSAT = ij_cumul_concat(indvalid); 246 246 247 % Calcul du nombre de donn ees se recouvrant.247 % Calcul du nombre de données se recouvrant. 248 248 allind = cat(2,indtest,indvalid); 249 249 recover = 20000 - size(unique(allind),2); 250 250 251 % Calcul du pourcentage de donn ees se retrouvant dans les deux jeux.251 % Calcul du pourcentage de données se retrouvant dans les deux jeux. 252 252 pcrecover = recover / 10000 * 100; 253 253 254 % Afficha que d'un message d'information pour connaitre le pourcentage de255 % donn ees se recouvrant sur les deux jeux de donnees.256 disp([num2str(recover) ' points se retrouvent dans le test et la validation, soit ' num2str(pcrecover) ' pour cent des donn ees dans chaque diagramme.']);254 % Affichage d'un message d'information pour connaitre le pourcentage de 255 % données se recouvrant sur les deux jeux de données. 256 disp([num2str(recover) ' points se retrouvent dans le test et la validation, soit ' num2str(pcrecover) ' pour cent des données dans chaque diagramme.']); 257 257 258 258 clear('nbpoints','indtest','indvalid','allind','recover'); … … 265 265 266 266 %%%%%%%%%%%%%%%%%% 267 % Donn ees de test267 % Données de test 268 268 %%%%%%%%%%%%%%%%%% 269 269 270 % On trace le diagramme de dispersion tout en r ecuperant les informations271 % sur les coefficients de r egression lineaire et de correlation.270 % On trace le diagramme de dispersion tout en récupérant les informations 271 % sur les coefficients de régression linéaire et de correlation. 272 272 subplot(1,2,1) 273 [coeffs, r2] = generalscatterplot(datatestEPSAT, datatestMSG, 'Cumuls EPSAT (mm)', 'intensit es MSG');273 [coeffs, r2] = generalscatterplot(datatestEPSAT, datatestMSG, 'Cumuls EPSAT (mm)', 'intensités MSG'); 274 274 clear r2 275 275 set(gca,'FontSize',15,'FontAngle','italic','FontName','Times New Roman'); … … 286 286 287 287 %%%%%%%%%%%%%%%%%%%%%%%% 288 % Donn ees de validation288 % Données de validation 289 289 %%%%%%%%%%%%%%%%%%%%%%%% 290 290 291 % Passage des donn ees d'intensites en donnees de precipitation par la292 % formule trouv ee avec le test.291 % Passage des données d'intensités en données de précipitation par la 292 % formule trouvée avec le test. 293 293 datavalidMSG = coeffs(1) * datavalidMSG + coeffs(2); 294 294 295 % On trace le diagramme de dispersion entre les donn ees de precipitations296 % d'EPSAT et celles obtenues d'apr es la formule reliant les intensites aux297 % pr ecipitations.295 % On trace le diagramme de dispersion entre les données de précipitations 296 % d'EPSAT et celles obtenues d'aprÚs la formule reliant les intensités aux 297 % précipitations. 298 298 subplot(1,2,2) 299 299 [coeffs,r2] = generalscatterplot(datavalidEPSAT, datavalidMSG, 'Cumuls EPSAT (mm)', 'cumuls par l''analyse des Tb MSG (mm)'); … … 323 323 324 324 % Ajout d'un titre general. 325 Titlegen = (['Validation crois ee de la relation precipitations-intensites sur une zone de ' num2str(lonmin) ' a ' num2str(lonmax) ' en longitudes et de ' num2str(latmin) ' a ' num2str(latmax) ' en latitudes (' num2str(pcrecover) ' pour cent de recouvrement)']);325 Titlegen = (['Validation croisée de la relation précipitations-intensités sur une zone de ' num2str(lonmin) ' a ' num2str(lonmax) ' en longitudes et de ' num2str(latmin) ' a ' num2str(latmax) ' en latitudes (' num2str(pcrecover) ' pour cent de recouvrement)']); 326 326 text(-0.2,-0.10,Titlegen,... 327 327 'HorizontalAlignment','center','verticalAlignment','middle',... -
trunk/src/MSGbuildfullfilename.m
r634 r635 2 2 3 3 %MSGbuildfullfilename permet d'obtenir le chemin d'accÚs a un fichier 4 %NetCDF, de donn ees de temperature de brillance par MSG, pour la date4 %NetCDF, de données de temperature de brillance par MSG, pour la date 5 5 %desiree. 6 6 … … 19 19 % - Donnees d'entrees : 20 20 % 21 % * ncfilesset (en caract eres) : Type de fichier NetCDF que l'on cherche,21 % * ncfilesset (en caractÚres) : Type de fichier NetCDF que l'on cherche, 22 22 % 'normal' ou 'extracted'. 23 % * Annee (en caract eres) : Annee (AAAA) du jour d'etude.24 % * Mois (en caract eres) : Numero du mois (MM) du jour d'etude.25 % * Jour (en caract eres) : Numero du Jour d'etude (JJ).23 % * Annee (en caractÚres) : Annee (AAAA) du jour d'etude. 24 % * Mois (en caractÚres) : Numero du mois (MM) du jour d'etude. 25 % * Jour (en caractÚres) : Numero du Jour d'etude (JJ). 26 26 % 27 27 % - Donnees de sorties : … … 30 30 % 31 31 % Cette fonction permet d'obtenir le chemin d'accÚs a un fichier NetCDF, 32 % de donn ees de temperature de brillance par MSG, pour la date desiree.32 % de données de temperature de brillance par MSG, pour la date desiree. 33 33 % 34 34 % EXAMPLES … … 100 100 % Le repertoire ou se trouve le fichier, ainsi que son nom, different selon 101 101 % qu'il soit 'normal' (fichier original) ou 'extracted' (fichier avec 102 % extraction des donn ees spatiales).102 % extraction des données spatiales). 103 103 switch ncfilesset 104 104 -
trunk/src/MSGread.m
r634 r635 1 1 function [TbMSG, Temps, Longitudes, Latitudes] = MSGread(ncfilesset, fullfilename) 2 2 3 %MSGread lit le fichier NetCDF MSG du jour souhait epour en sortir les4 %variables (temps, longitudes et latitudes) ainsi que les donn ees de5 %temp eratures de brillance.3 %MSGread lit le fichier NetCDF MSG du jour souhaité pour en sortir les 4 %variables (temps, longitudes et latitudes) ainsi que les données de 5 %températures de brillance. 6 6 7 7 % … … 17 17 % =========== 18 18 % 19 % - Donn ees d'entrees :20 % 21 % * ncfilesset (en caract eres) : Type de fichier NetCDF que l'on cherche,19 % - Données d'entrées : 20 % 21 % * ncfilesset (en caractÚres) : Type de fichier netCDF que l'on cherche, 22 22 % 'normal' ou 'extracted'. 23 % * fullfilename : Chemin d'accÚs au fichier pour la date d esiree.24 % 25 % - Donn ees de sorties :26 % 27 % * Temps : Variable de temps du fichier NetCDF.23 % * fullfilename : Chemin d'accÚs au fichier pour la date désirée. 24 % 25 % - Données de sorties : 26 % 27 % * Temps : Variable de temps du fichier netCDF. 28 28 % * Longitudes : Variable de longitudes. 29 29 % * Latitudes : Variable de latitudes. 30 % * TbMSG : Donn ees brutes des temperatures de brillance dont les30 % * TbMSG : Données brutes des températures de brillance dont les 31 31 % dimensions sont respectivement, temps, longitudes et latitudes. 32 32 % 33 % lecture du fichier NetCDF MSG du jour souhaite pour en sortir les34 % variables (temps, longitudes et latitudes) ainsi que les donn ees de35 % temp eratures de brillance.33 % lecture du fichier netCDF MSG du jour souhaite pour en sortir les 34 % variables (temps, longitudes et latitudes) ainsi que les données de 35 % températures de brillance. 36 36 % 37 37 % EXAMPLES … … 72 72 % homegenize with datajul_value, datestr_value 73 73 % 74 % comprend pourquoi jason a ecrit::74 % comprendre pourquoi Jason a écrit:: 75 75 % 76 76 % Attention! Comme 77 77 % pour EPSAT, ncdump nous donne temps, longitudes, latitudes comme 78 % dimensions pour la matrice de donn ees qui s'avere etre de dimensions78 % dimensions pour la matrice de données qui s'avÚre être de dimensions 79 79 % longitudes, latitudes, temps). 80 80 % … … 98 98 % - jaclod 2011-07-26 99 99 % 100 % * R evision de la documentation et des commentaires.100 % * Révision de la documentation et des commentaires. 101 101 % 102 102 % - jaclod 2011-07-21 … … 104 104 % * Lecture des fichiers 'extracted' sur Matlab Cratos (Attention! Comme 105 105 % pour EPSAT, ncdump nous donne temps, longitudes, latitudes comme 106 % dimensions pour la matrice de donn ees qui s'avere etre de dimensions106 % dimensions pour la matrice de données qui s'avêre être de dimensions 107 107 % longitudes, latitudes, temps). 108 108 % 109 109 % - jaclod 2011-07-13 110 110 % 111 % * Changement des arguments d'entr ees 'Annee', 'Mois', 'Jour' par112 % 'fullfilename'. Celui-ci peut- etre creepar 'MSGbuildfullfilename'.113 % * Externalisation de la s election de donnees (voir la fonction111 % * Changement des arguments d'entrées 'Annee', 'Mois', 'Jour' par 112 % 'fullfilename'. Celui-ci peut-être créé par 'MSGbuildfullfilename'. 113 % * Externalisation de la sélection de données (voir la fonction 114 114 % 'extractedmatrixdata'). 115 115 % … … 136 136 % - fplod 20110304T082845Z aedon.locean-ipsl.upmc.fr (Darwin) 137 137 % 138 % * fix r st header138 % * fix reStructuredText header 139 139 % 140 140 % - jaclod 2011-03-02 141 141 % 142 % * Ajout de la documentation et de la d emonstration.142 % * Ajout de la documentation et de la démonstration. 143 143 % 144 144 % - jaclod 2011-02-25 145 145 % 146 % * Creation .146 % * Creation 147 147 % 148 148 %- … … 172 172 clear fullfilename 173 173 174 % R ecuperation des variables selon l'installation et le type de fichier.174 % Récupération des variables selon l'installation et le type de fichier. 175 175 if netcdf_open_available 176 176 … … 204 204 end 205 205 206 % R ecuperation des donnees de temperature de brillance selon206 % Récupération des données de température de brillance selon 207 207 % l'installation. 208 208 if netcdf_open_available 209 209 TbMSG = netcdf.getVar(ncid,0); 210 % Application du facteur d' echelle et de la constante aajouter.210 % Application du facteur d'échelle et de la constante à ajouter. 211 211 TbMSG = double(TbMSG) * double(netcdf.getAtt(ncid,0,'scale_factor')) + double(netcdf.getAtt(ncid,0,'add_offset')); 212 212 % permute to output array with … … 217 217 data=ncid{'DATA'}(:,:,:); 218 218 219 % Application du facteur d' echelle et de la constante aajouter.219 % Application du facteur d'échelle et de la constante à ajouter. 220 220 TbMSG=ncid{'DATA'}.scale_factor(:)*data+ncid{'DATA'}.add_offset(:); 221 221 % demo 1 - normal - octave 3.4 cratos 96x928x1856 -
trunk/src/affiche_EOF_PC_3D.m
r368 r635 19 19 % lon, lat, matrices de la taille [size(mat_3D,1),size(mat_3D,2)] 20 20 % 21 % num_eof: le num ero des EOF a afficher. PAr defaut : les 3 premieres22 % 23 % anomalies : bool een a mettre atrue si on travaille sur des champs21 % num_eof: le numéro des EOF a afficher. Par défaut : les 3 premiÚres 22 % 23 % anomalies : booléen à mettre à true si on travaille sur des champs 24 24 % d'anomalies 25 25 % 26 26 % aff_moy : [min max step] pour les couleurs de matrice moyenne OU nombre 27 % pour couleurs matlab OU [] (d efaut) pour les rentrer a la main28 % 29 % aff_eof : [min max step] pour les couleurs des figures d' eofOU nombre30 % pour couleurs matlab OU [] (d efaut) pour les rentrer ala main27 % pour couleurs matlab OU [] (défaut) pour les rentrer a la main 28 % 29 % aff_eof : [min max step] pour les couleurs des figures d'EOF OU nombre 30 % pour couleurs matlab OU [] (défaut) pour les rentrer à la main 31 31 % 32 32 % EOF faits sur le temps, PC 2D … … 97 97 mat_2D=mat_2D';%' 98 98 99 % elimination des points tq pour tout t mat_2D =NaN99 %élimination des points tq pour tout t mat_2D =NaN 100 100 mean_m2D=meanNaN(mat_2D,1); 101 101 mat_2D_ssnan=mat_2D(:,~isnan(mean_m2D)); 102 102 clear mat_2D 103 % elimination des dates tq 1er ou dernier element de matrice = NaN103 %élimination des dates tq 1er ou dernier élément de matrice = NaN 104 104 iidata=find(~isnan(mat_2D_ssnan(:,1)) & ~isnan(mat_2D_ssnan(:,end))); 105 105 mat_2D_ssnan=mat_2D_ssnan(iidata,:); … … 213 213 end 214 214 if(length(aff_eof)==0) 215 q =input('Changer les param etres de l''affichage (o/n) ? ', 's');215 q =input('Changer les paramÚtres de l''affichage (o/n) ? ', 's'); 216 216 if (q=='o') 217 217 min_coul=input('valeur min : '); -
trunk/src/affiche_EOF_PC_3Dsscycle.m
r368 r635 18 18 % lon, lat, matrices de la taille [size(mat_3D,1),size(mat_3D,2)] 19 19 % 20 % anomalies : bool een a mettre atrue si on travaille sur des champs d''anomalies20 % anomalies : booléen à mettre à true si on travaille sur des champs d''anomalies 21 21 % EOF faits sur le temps, PC 2D 22 22 % … … 78 78 mat_2D=mat_2D';%' 79 79 80 % elimination des points tq pour tout t mat_2D =NaN80 %élimination des points tq pour tout t mat_2D =NaN 81 81 mean_m2D=meanNaN(mat_2D,1); 82 82 mat_2D_ssnan=mat_2D(:,~isnan(mean_m2D)); 83 83 clear mat_2D 84 % elimination des dates tq 1er ou dernier element de matrice = NaN84 %élimination des dates tq 1er ou dernier élément de matrice = NaN 85 85 iidata=find(~isnan(mat_2D_ssnan(:,1)) & ~isnan(mat_2D_ssnan(:,end))); 86 86 mat_2D_ssnan=mat_2D_ssnan(iidata,:); … … 107 107 end 108 108 109 %test d elimination du cycle saisonnier (eof 1)109 %test d'élimination du cycle saisonnier (eof 1) 110 110 111 111 %if(nargin<5) … … 200 200 end 201 201 202 q =input('Changer les param etres de l''affichage (o/n) ? ', 's');202 q =input('Changer les paramÚtres de l''affichage (o/n) ? ', 's'); 203 203 if (q=='o') 204 204 min_coul=input('valeur min : '); -
trunk/src/affiche_eofpc_3Drev.m
r368 r635 12 12 % dates de la taille size(mat_3D,3) 13 13 % lon, lat, matrices de la taille [size(mat_3D,1),size(mat_3D,2)] 14 % anomalies : bool een a mettre a true si on travaille sur des champs d''anomalies14 % anomalies : booléen à mettre à true si on travaille sur des champs d'anomalies 15 15 % EOF faits sur le temps, PC 2D 16 16 % Affichage sur 1 seule page : mean mat_3D, EOF 1-3 et PC 1-3 … … 68 68 mat_2D=mat_2D';%' 69 69 70 % elimination des points tq pour tout t mat_2D =NaN70 %élimination des points tq pour tout t mat_2D =NaN 71 71 mean_m2D=meanNaN(mat_2D,1); 72 72 mat_2D_ssnan=mat_2D(:,~isnan(mean_m2D)); 73 73 clear mat_2D 74 % elimination des dates tq 1er ou dernier element de matrice = NaN74 %élimination des dates tq 1er ou dernier élément de matrice = NaN 75 75 iidata=find(~isnan(mat_2D_ssnan(:,1)) & ~isnan(mat_2D_ssnan(:,end))); 76 76 mat_2D_ssnan=mat_2D_ssnan(iidata,:); … … 168 168 end 169 169 170 q =input('Changer les param etres de l''affichage (o/n) ? ', 's');170 q =input('Changer les paramÚtres de l''affichage (o/n) ? ', 's'); 171 171 if (q=='o') 172 172 min_coul=input('valeur min : '); -
trunk/src/amsu2ncdf.pro
r634 r635 145 145 look = 'filename' 146 146 147 ; ne pas utiliser les bornes lon et lat fournies en entr ee car elles148 ; peuvent etre differentes de celle du fichier .dat puisqu'on peut149 ; cr eer un fichier .nc extrait du .dat147 ; ne pas utiliser les bornes lon et lat fournies en entrée car elles 148 ; peuvent être différentes de celle du fichier .dat puisqu'on peut 149 ; créer un fichier .nc extrait du .dat 150 150 ;geomin = geolocation_to_string_idl(lon_min, lat_min, look,1) 151 151 ;geomax = geolocation_to_string_idl(lon_max, lat_max, look,1) … … 189 189 ; calcul seuil pour remplir la nouvelle grille 190 190 ; -------------------------------------------- 191 ;seuil latitude = MAX((variation de latitude sur un m eme fov)/2)191 ;seuil latitude = MAX((variation de latitude sur un même fov)/2) 192 192 ;pour une orbite quelconque (on choisie la plus longue) 193 193 ;moyenne pour fov sur le bord (=min(fov)) et au milieu (=fix(max(fov)/2)) -
trunk/src/anaclimecm.pro
r634 r635 102 102 data2= read_ncdf(chp,j1,j2,/timestep, file = file1) 103 103 datamoy1=reform(data1.arr+data2.arr)/2. 104 ; lecture deuxi eme fichier (ERA)104 ; lecture deuxiÚme fichier (ERA) 105 105 file2 = 'stagiaire/climato.r.2000.2001.6TU.nc' 106 106 initncdf, file2,zaxis='level', glam = [-180,180] … … 120 120 saveimage,'sorties/'+chp+'climatology-saison'+string(lev,format='(i4)')+'.png',/png 121 121 122 ;champs volumiques : variable sur deux niveaux (g eopotentiel)122 ;champs volumiques : variable sur deux niveaux (géopotentiel) 123 123 ;;;;;;;;;;;;;;;;;;; 124 124 no=1 … … 145 145 data1lev2 = read_ncdf(chp1,j1,j2,/timestep, file = file1) 146 146 data1=data1lev1.arr-data1lev2.arr 147 ; lecture deuxi eme fichier (ERA)147 ; lecture deuxiÚme fichier (ERA) 148 148 chp2='z' 149 149 file2 = 'stagiaire/climato.z.2000.2001.6TU.nc' … … 222 222 datamoy1=reform(data1.arr+data2.arr)/2. 223 223 224 ; lecture deuxi eme fichier (ERA)224 ; lecture deuxiÚme fichier (ERA) 225 225 file2 = 'stagiaire/climato.r.2000.2001.6TU.nc' 226 226 initncdf, file2,zaxis='level', glam = [-180,180] … … 251 251 252 252 253 ;g eopotentiel : delta entre niveau 700 (7) et 925 hPa253 ;géopotentiel : delta entre niveau 700 (7) et 925 hPa 254 254 no=2 255 255 chp1='geopt' … … 272 272 data1lev2 = read_ncdf(chp1,j1,j2,/timestep, file = file1) 273 273 data1=data1lev1.arr-data1lev2.arr 274 ; lecture deuxi eme fichier (ERA)274 ; lecture deuxiÚme fichier (ERA) 275 275 chp2='z' 276 276 file2 = 'stagiaire/climato.z.2000.2001.6TU.nc' -
trunk/src/box5x5serietemp.m
r374 r635 1 1 function [result] = box5x5serietemp(ij_concat, time_concat) 2 2 3 %BOX5X5SERIETEMP permet de faire des s eries temporelles de l'evolution4 %moyenne d'une variable sur des zones de 5 sur 5 degr es dans la zone5 %d' etude 0-20W et 0-20N a la resolution d'EPSAT (200*200).3 %BOX5X5SERIETEMP permet de faire des séries temporelles de l'evolution 4 %moyenne d'une variable sur des zones de 5 sur 5 degrés dans la zone 5 %d'étude 0-20W et 0-20N à la résolution d'EPSAT (200*200). 6 6 7 7 % … … 17 17 % =========== 18 18 % 19 % - Donn ees d'entrees :19 % - Données d'entrées : 20 20 % 21 % * ij_concat : Donn ees concatenees dans une matrice 3D de dimensions21 % * ij_concat : Données concatenées dans une matrice 3D de dimensions 22 22 % temps, longitudes, latitudes. 23 23 % * time_concat : Variable temporelle de la matrice en jour julien. 24 24 % 25 % permet de faire des s eries temporelles de l'evolution26 % moyenne d'une variable sur des zones de 5 sur 5 degr es dans la zone27 % d' etude 0-20W et 0-20N a la resolution d'EPSAT (200*200).25 % permet de faire des séries temporelles de l'évolution 26 % moyenne d'une variable sur des zones de 5 sur 5 degrés dans la zone 27 % d'étude 0-20W et 0-20N à la résolution d'EPSAT (200*200). 28 28 % 29 29 % EXAMPLES … … 58 58 % - jaclod 2011-07-29 59 59 % 60 % * R evision finale du stage du mois de juillet 2011.60 % * Révision finale du stage du mois de juillet 2011. 61 61 % 62 62 % - jaclod 2011-07-27 63 63 % 64 % * Ajout de la documentation, des commentaires et de la d emonstration.64 % * Ajout de la documentation, des commentaires et de la démonstration. 65 65 % 66 66 % - jaclod 2011-07-26 67 67 % 68 % * Creation .68 % * Creation 69 69 % 70 70 %- … … 87 87 %%%%%%%%%%%%%%%%% 88 88 89 % Creation d'une matrice de m eme dimension temporelle que la matrice90 % d'entr ee et une dimension spatiale de 4 sur 4 pour nos 16 zones de 5 sur91 % 5 degr es.89 % Creation d'une matrice de même dimension temporelle que la matrice 90 % d'entrée et une dimension spatiale de 4 sur 4 pour nos 16 zones de 5 sur 91 % 5 degrés. 92 92 box5x5_concat = zeros(size(ij_concat,1),4,4); 93 93 … … 107 107 for dlat = 1:4; 108 108 109 % R ecuperation de l'information moyenne sur cette zone et ce109 % Récupération de l'information moyenne sur cette zone et ce 110 110 % jour. 111 111 box5x5_concat(timestep,dlon,dlat) = mean(mean(ij_concat(timestep,1+(dlon-1)*50:dlon*50,1+(dlat-1)*50:dlat*50))); … … 121 121 122 122 %%%%%%%%%%%%%%%%%%%%% 123 % S eries temporelles123 % Séries temporelles 124 124 %%%%%%%%%%%%%%%%%%%%% 125 125 … … 137 137 subplot(4,4,(4-dlat)*4+dlon); 138 138 139 % R ecuperation des donnees de la zone correspondante.139 % Récupération des données de la zone correspondante. 140 140 data = squeeze(box5x5_concat(:,dlon,dlat)); 141 141 142 % Tracage de la s erie temporelle.142 % Tracage de la série temporelle. 143 143 result=serietemp(data, time_concat, 'mmm dd',3, 'cumuls EPSAT (mm)'); 144 144 145 % Modifications des titres et axes pour plus de clar ete.145 % Modifications des titres et axes pour plus de clarté. 146 146 xlabel(''); 147 147 ylabel(''); -
trunk/src/cal_hcl.m
r634 r635 15 15 % 16 16 % Calcul de la hauteur de la couche limite 17 % a partir des analyses operationnelles ECMWF17 % à partir des analyses opérationnelles ECMWF 18 18 % 19 % Entr ees :19 % Entrées : 20 20 % 21 21 % tps_min … … 84 84 % ==== 85 85 % 86 % pour l'instant fonction sur climserv donc matlab 7.1086 % pour l'instant fonction sur ClimServ donc matlab 7.10 87 87 % 88 88 % EVOLUTIONS … … 116 116 [y_max m_max d_max hh_max mm_max ss_max]=datevec(tps_max); 117 117 118 %% Charge les analyses op erationnelles ECMWF118 %% Charge les analyses opérationnelles ECMWF 119 119 120 120 tps_min_mod=(tps_min-datenum([1957 01 01 00 00 00]))*24; … … 160 160 tps=tps/24+datenum([1957 01 01 00 00 00]); 161 161 162 % Calcul des altitudes des niveaux de mod ele en passnat par la pression162 % Calcul des altitudes des niveaux de modÚle en passant par la pression 163 163 p=flipud(load('/homedata/mleduc/OPERA/ml91.dat')); % col 1 : numero du niveau ; col 5 : pression a mi-couche 164 164 for i=1:length(level)+1 … … 170 170 end 171 171 172 % Calcul rapport de m elange172 % Calcul rapport de mélange 173 173 r=hspe2rmix(q,p_mod); 174 174 -
trunk/src/cat_clim_ecmwf.sh
r634 r635 164 164 if [ ${#} -lt ${minargcount} ] 165 165 then 166 echo "eee : not enough targuments"166 echo "eee : not enough arguments" 167 167 echo "${usage}" 168 168 exit 1 … … 288 288 # 289 289 # build fileout 290 # based on the first file of the serie (ie yearmin) ++ ou vraie premiere année290 # based on the first file of the series (ie yearmin) ++ ou vraie premiÚre année 291 291 # (ie si yearmin 1900 pas de données 1900) 292 292 fileout=${PROJECT_OD}/CAT.r.${yearmin}.${yearmax}.6TU.nc … … 311 311 # 312 312 # build fileout 313 # based on the first file of the serie (ie yearmin) ++ ou vraie premiere année313 # based on the first file of the series (ie yearmin) ++ ou vraie premiÚre année 314 314 # (ie si yearmin 1900 pas de données 1900) 315 315 fileout=${PROJECT_OD}/climato.r.${yearmin}.${yearmax}.6TU.nc -
trunk/src/cat_clim_olr.sh
r634 r635 102 102 # 103 103 # To build OLR climatology using year 2000 only (silly for scientific work 104 # but useful lfor test):104 # but useful for test): 105 105 # 106 106 # .. code-block:: bash … … 243 243 if [ ${#} -lt ${minargcount} ] 244 244 then 245 echo "eee : not enough targuments"245 echo "eee : not enough arguments" 246 246 echo "${usage}" 247 247 exit 1 … … 387 387 # 388 388 # build fileout 389 # based on the first file of the serie (ie yearmin)389 # based on the first file of the series (ie yearmin) 390 390 fileout=${PROJECT_OD}/$(basename ${file365[${yearmin}]} ${yearmin}_365d_ng.nc)climato_ng.nc 391 391 if [ -f ${fileout} ] -
trunk/src/choix_mois.m
r634 r635 11 11 % Pour un fichier mat3D(lat, lon, jours), on selectionne tous les mois 12 12 % compris entre mois_deb et mois_fin inclus. ex: pour prendre d'avril à 13 % aout, on choisit mois_deb=4,mois_fin=8 , de d ecembre afevrier:13 % aout, on choisit mois_deb=4,mois_fin=8 , de décembre à fevrier: 14 14 % mois_deb=12,mois_fin=2, toute l'annee (par defaut): mois_deb=1,mois_fin=12 15 15 % -
trunk/src/classes_principales.sh
r634 r635 91 91 # - fplod 20110916T133232Z cratos (Linux) 92 92 # 93 # * allowed concur ent session93 # * allowed concurrent session 94 94 # 95 95 # - fplod 20110909T165744Z aedon.locean-ipsl.upmc.fr (Darwin) … … 139 139 if [ ${#} -lt ${minargcount} ] 140 140 then 141 echo "eee : not enough targuments"141 echo "eee : not enough arguments" 142 142 echo "${usage}" 143 143 exit 1 -
trunk/src/cloud_month.pro
r633 r635 108 108 numax=max(nuag) 109 109 if(numax ne 0) then begin 110 ; calcul par nuage identifi e:110 ; calcul par nuage identifié: 111 111 for inu=1,numax do begin 112 112 zonu=where(nuag eq inu) … … 119 119 endif 120 120 endfor 121 ;Moyennes et ecarts types pour la journee: on ne considere que les121 ;Moyennes et écarts types pour la journée: on ne considÚre que les 122 122 ;nuages qui sont vus plus d'un 123 123 ;certain temps (nbcloudmin) 124 ;donc elimination des nuages de courte duree124 ;donc élimination des nuages de courte durée 125 125 nuday=where(compt ne 0,nbnuday) 126 126 if (nbnuday ne 0) then begin -
trunk/src/compar_tbnoyau_disp.m
r634 r635 195 195 196 196 % On modifie le titre. 197 title(['Dist ibutions des intensités avec un seuil de ' num2str(Tb_SeuilSup) 'K'])197 title(['Distributions des intensités avec un seuil de ' num2str(Tb_SeuilSup) 'K']) 198 198 199 199 end -
trunk/src/compar_tbseuil_histo.m
r634 r635 198 198 199 199 % On modifie le titre. 200 title(['Dist ibutions des intensités avec un seuil de ' num2str(Tb_SeuilSup) 'K']);200 title(['Distributions des intensités avec un seuil de ' num2str(Tb_SeuilSup) 'K']); 201 201 202 202 end -
trunk/src/composite.m
r634 r635 16 16 % Calcul de composites 17 17 % 18 % Entr ees :18 % Entrées : 19 19 % 20 20 % data 21 % donn ees, vecteur ou matrice de n dimensions21 % données, vecteur ou matrice de n dimensions 22 22 % ind 23 23 % indice des valeurs de data servant de bases au composite, vecteur … … 25 25 % nombre de points avant chaque indice 26 26 % jap 27 % nombre de points apr es chaque indice27 % nombre de points aprÚs chaque indice 28 28 % dim_comp 29 % dimension sur laquelle le composite est calcul e29 % dimension sur laquelle le composite est calculé 30 30 % 31 31 % Sortie : … … 37 37 % ======== 38 38 % 39 % ::39 % .. code-block:: matlab 40 40 % 41 % >>x=[0:0.5:100];42 % >>f=sin(x);43 % >>ind=find(f>0.96 & f<=1);44 % >>jav=3;45 % >>jap=8;46 % >>dim_comp=1;47 % >>% Calcul le composite en prenant48 % >> % 3 points avant et 8 points apres chaque indice choisi49 % >>comp_f=composite(f,ind,jav,jap,dim_comp);50 % >>figure;plot(comp_f);41 % x=[0:0.5:100]; 42 % f=sin(x); 43 % ind=find(f>0.96 & f<=1); 44 % jav=3; 45 % jap=8; 46 % dim_comp=1; 47 % % Calcul le composite en prenant 48 % % 3 points avant et 8 points aprÚs chaque indice choisi 49 % comp_f=composite(f,ind,jav,jap,dim_comp); 50 % figure;plot(comp_f); 51 51 % 52 52 % TODO … … 86 86 end 87 87 88 %% Teste si ind ne contient pas de valeurs inférieures ou egales ajav89 % ou supérieures asize(data,dim_comp)-jap90 % sinon pb pour extraire les s eries voulues par la suite88 %% Teste si ind ne contient pas de valeurs inférieures ou égales à jav 89 % ou supérieures à size(data,dim_comp)-jap 90 % sinon pb pour extraire les séries voulues par la suite 91 91 if ~isempty(find(ind<jav)) 92 92 disp('Erreur dans ind par rapport a jav'); … … 99 99 100 100 %% Adapte selon la taille de data 101 % pour pouvoir ensuite extraire les s eries voulues101 % pour pouvoir ensuite extraire les séries voulues 102 102 x(1:2:dim*2)=','; 103 103 x(2:2:dim*2)=':'; … … 128 128 %% Calcul du composite 129 129 comp=squeeze(nanmean(ext,1)); 130 131 132 -
trunk/src/concat-files.sh
r634 r635 124 124 # 125 125 # * bug fix to handle correctly dates if translation in second on 9 digits 126 # (trailing 0 is automatical y interpreted as an octal number).126 # (trailing 0 is automatically interpreted as an octal number). 127 127 # ex = 20010801 128 128 # * bug fix to handle correctly dates if translation in second of begin … … 193 193 if [ ${#} -lt ${minargcount} ] 194 194 then 195 echo "eee : not enough targuments"195 echo "eee : not enough arguments" 196 196 echo "${usage}" 197 197 exit 1 -
trunk/src/correc_amsu.pro
r634 r635 14 14 ; 15 15 ; programme calculant une correction additionnelle 16 ; des donn ees nadir (en complément de la correction de FK) sur terre ou16 ; des données nadir (en complément de la correction de FK) sur terre ou 17 17 ; mer (surf = 0) 18 18 ; … … 140 140 if norb eq deborb then begin 141 141 nfov=max(fov[jnd]) 142 print,'nb points fauch ee', nfov142 print,'nb points fauchée', nfov 143 143 fovv=indgen(nfov)+1 144 144 sumtb=fltarr(nfov) … … 158 158 endfor 159 159 endif else begin 160 print,'fauch ee plus large que normale ',nfovorb,'pour orbite no ',norb160 print,'fauchée plus large que normale ',nfovorb,'pour orbite no ',norb 161 161 endelse 162 162 endif -
trunk/src/correct_nadir_amsu-v2.pro
r634 r635 8 8 ; ========================= 9 9 ; 10 ; routine permettant d'ajuster les donn ees AMSU au nadir10 ; routine permettant d'ajuster les données AMSU au nadir 11 11 ;(correction de 2006 par F. Karbou) 12 12 ; appelle interpol_correc.pro 13 13 ; 14 ; attention correction calcul ee pour les canaux tropospheriques14 ; attention correction calculée pour les canaux troposphériques 15 15 ; (1 à 8 + 15 d'AMSUA) 16 16 ; … … 19 19 ; 20 20 ; read :file:`${PROJECT_ID}//MASK/ETOPO1_Ice_g_gmt4.nc` 21 ; d'o uon tire le type de surface pour chaque pixel (terre=1, mer=0)21 ; d'où on tire le type de surface pour chaque pixel (terre=1, mer=0) 22 22 ; valeur land_sea_mask ajoutée dans le fichier de sortie 23 23 ; … … 65 65 ; latmax 66 66 ; 67 ; bornes domaines n ecessaires pour le masque terre-mer67 ; bornes domaines nécessaires pour le masque terre-mer 68 68 ; 69 69 ; :Also: … … 87 87 ; 88 88 ; fichier (structure) issue de extract_amsua avec header contenant les 89 ; infos utiles, mais pas encore de restriction de zone89 ; infos utiles, mais pas encore de restriction de zone 90 90 ; 91 91 ; indentation du code … … 105 105 ; 106 106 ; 2011/12/09 lelod 107 ; test modif importante pour coh erence avec nouveau traitement108 ; extract_amsu.pro (amsua pour le moment)109 ; d eplacement de l'interpolation des points dans la fauchee de110 ; extract a correct_nadir111 ; d efinition de la zone et ecriture du fichier "ameliore"(!)107 ; test modif importante pour cohérence avec nouveau traitement 108 ; extract_amsu.pro (amsua pour le moment) 109 ; déplacement de l'interpolation des points dans la fauchée de 110 ; extract a correct_nadir 111 ; définition de la zone et ecriture du fichier "amélioré"(!) 112 112 ; 113 113 ; $Id: correct_nadir_amsu.pro 436 2011-11-25 17:48:35Z lelod $ … … 116 116 ; 117 117 ; - lelod 20111121 correction lecture du fichier pour tenir compte 118 ; nouveau param etre introduit : orbit (montante = 0, descendante =1)118 ; nouveau paramÚtre introduit : orbit (montante = 0, descendante =1) 119 119 ; 120 120 ; - fplod 20111103T114723Z aedon.locean-ipsl.upmc.fr (Darwin) … … 125 125 ; - lelod 20/10/2011 126 126 ; 127 ; * calcul des tailles des pixels renvoy edans la fonction pixelsize127 ; * calcul des tailles des pixels renvoyé dans la fonction pixelsize 128 128 ; * modif de interpol_correc, qui appelle lui aussi pixelsize, et ne 129 ; sort plus ces informations lui m eme130 ; * modification pour utilisation de la bathym etrie dans le cas use_amsua=1129 ; sort plus ces informations lui même 130 ; * modification pour utilisation de la bathymétrie dans le cas use_amsua=1 131 131 ; 132 132 ; - pinsard 2011-08-18T12:38:20Z loholt1.ipsl.polytechnique.fr (Linux) … … 181 181 @cm_project 182 182 ; 183 ; bornes de validit e des donnees de Tb:encore en dur...183 ; bornes de validité des données de Tb:encore en dur... 184 184 185 185 tbmin=100 … … 197 197 jpje = n_elements(yye) 198 198 199 ; extraction zone donn ees AMSU199 ; extraction zone données AMSU 200 200 domdef,lonmin,lonmax,latmin,latmax 201 201 bate = ncdf_lec(file, var = 'z') GT 0 … … 207 207 208 208 ; lecture fichier jour 209 ; d ecodage header210 ; 211 ; amodifier en fonction du module de lecture209 ; décodage header 210 ; 211 ; à modifier en fonction du module de lecture 212 212 213 213 … … 233 233 for i=0L, nn-1L do begin 234 234 ifov=fov[i]-1 ; fov est INTEGER 235 ; approximation: 1km= 1deg/100, et on consid ere le quart en lon et lat235 ; approximation: 1km= 1deg/100, et on considÚre le quart en lon et lat 236 236 ; de la surface du pixel pour optimiser la localisation du centre du 237 ; pixel attention approximation brutale des distances en fractions de degre238 ; recherche de la cote par rapport a la resolution AMSUA237 ; pixel attention approximation brutale des distances en fractions de degré 238 ; recherche de la cote par rapport à la résolution AMSUA 239 239 xind=where (xxe ge lon[i]-swatha[ifov]/400. and xxe le lon[i]+swatha[ifov]/400.,nxlandsea) 240 240 yind=where (yye ge lat[i]-tracka[ifov]/400. and yye le lat[i]+tracka[ifov]/400.,nylandsea) … … 252 252 endfor 253 253 ;;correction des valeurs aberrantes 254 ;et ecriture du fichier resultant254 ;et écriture du fichier résultant 255 255 ; 256 256 ind=where(landseamask eq 0) … … 266 266 267 267 268 ; appel ainterpolswatw pour ajuster les pixels amsua sur une grille269 ; r eguliere dans la fauchee270 ; et s election de la zone conservee268 ; appel à interpolswatw pour ajuster les pixels amsua sur une grille 269 ; réguliÚre dans la fauchée 270 ; et sélection de la zone conservée 271 271 resol=1 272 272 tb=fltarr(nbpix) … … 276 276 ifov=0 277 277 for i=0L,n_scan-1L do begin 278 ; rep erage des fauchees : temps constant - faut il aussi test sur fov?278 ; repérage des fauchées : temps constant - faut il aussi test sur fov? 279 279 while(hour[i] eq tt) do begin 280 280 lon[ifov]=lonlu[i] … … 300 300 301 301 302 ; ecriture fichier sortie avec nbgrid valeurs dans la fauchee302 ; écriture fichier sortie avec nbgrid valeurs dans la fauchée 303 303 304 304 -
trunk/src/correct_nadir_amsu.pro
r634 r635 8 8 ; ====================== 9 9 ; 10 ; routine permettant d'ajuster les donn ees AMSUA AMSUB au nadir (correction de 2006 par F. Karbou)11 ; 12 ; attention correction calcul ee pour les canaux tropospheriques10 ; routine permettant d'ajuster les données AMSUA AMSUB au nadir (correction de 2006 par F. Karbou) 11 ; 12 ; attention correction calculée pour les canaux troposphériques 13 13 ; (1 à 8 + 15 d'AMSUA) 14 14 ; … … 17 17 ; 18 18 ; read :file:`${PROJECT_ID}//MASK/ETOPO1_Ice_g_gmt4.nc` 19 ; d'o uon tire le type de surface pour chaque pixel (terre=1, mer=0)19 ; d'où on tire le type de surface pour chaque pixel (terre=1, mer=0) 20 20 ; valeur land_sea_mask ajoutée dans le fichier de sortie 21 21 ; … … 127 127 ; 128 128 ; - lelod 20111121 correction lecture du fichier pour tenir compte 129 ; nouveau param etre introduit : orbit (montante = 0, descendante =1)129 ; nouveau paramÚtre introduit : orbit (montante = 0, descendante =1) 130 130 ; 131 131 ; - fplod 20111103T114723Z aedon.locean-ipsl.upmc.fr (Darwin) … … 138 138 ; * calcul des tailles des pixels renvoye dans la fonction pixelsize 139 139 ; * modif de interpol_correc, qui appelle lui aussi pixelsize, et ne 140 ; sort plus ces informations lui m eme140 ; sort plus ces informations lui même 141 141 ; * modification pour utilisation de la bathymetrie dans le cas use_amsua=1 142 142 ; … … 192 192 @cm_project 193 193 ; 194 ; bornes de validit e des donnees de Tb:194 ; bornes de validité des données de Tb: 195 195 196 196 tbmin=100 197 197 tbmax=350 198 198 199 ; ++ je (lelod) ne sais pas comment lui passer ces infos en param etres199 ; ++ je (lelod) ne sais pas comment lui passer ces infos en paramÚtres 200 200 if (use_amsua eq 1) then begin 201 201 nbpix=30 … … 257 257 endfor 258 258 free_lun, lun1 259 ; appel pixelsize pour r ecuperer les dimensions des taches au sol259 ; appel pixelsize pour récupérer les dimensions des taches au sol 260 260 pixelsize,swatha,swathb,tracka,trackb 261 261 … … 309 309 310 310 endif else begin 311 ; tableaux corrections pleine r esolution311 ; tableaux corrections pleine résolution 312 312 interpol_correc,cor_lb,cor_sb 313 313 endelse … … 324 324 jpje = n_elements(yye) 325 325 326 ; extraction zone donn ees AMSU :passage en parametres326 ; extraction zone données AMSU :passage en paramÚtres 327 327 domdef,lonmin,lonmax,latmin,latmax 328 328 bate = ncdf_lec(file, var = 'z') GT 0 … … 335 335 ;================================================== 336 336 ; lecture du fichier global (1 mois) 337 ; g enere par extract_amsuab (avec selection de zone)337 ; génÚre par extract_amsuab (avec sélection de zone) 338 338 ; 339 339 if (use_amsua eq 1) then begin … … 360 360 +'_nadir.dat' 361 361 362 print, '#correct_nadir_amsu# d ebut lecture du fichier d''observations ', fichier1362 print, '#correct_nadir_amsu# début lecture du fichier d''observations ', fichier1 363 363 364 364 openr,luna,fichier1,/get_lun -
trunk/src/create_amsu_netcdf.pro
r633 r635 55 55 ; 56 56 ; * CF 1.5 57 ; checker avai alble on http://puma.nerc.ac.uk/cgi-bin/cf-checker.pl57 ; checker available on http://puma.nerc.ac.uk/cgi-bin/cf-checker.pl 58 58 ; 59 59 ; - pinsard 2011-05-30T13:20:36Z loholt1.ipsl.polytechnique.fr (Linux) 60 60 ; 61 ; * add mn an sdd parameters61 ; * add mn and dd parameters 62 62 ; 63 63 ; - fplod 20110530T104717Z cratos.locean-ipsl.upmc.fr (Linux) -
trunk/src/create_gif_msg-classif.jnl
r634 r635 34 34 ! 35 35 ! - RR/KR/LMD/IPSL Mai 2006 36 ! 36 37 !- 37 38 !! … … 40 41 !! 41 42 !! 42 !! Redimensionne la fen etre43 !! Redimensionne la fenêtre 43 44 set window/aspect=`400/741.` 44 45 shade/i=1:10/j=1:15 i+j … … 49 50 50 51 !! 51 !! Dessine les donn ees52 !! Dessine les données 52 53 DEFINE VIEWPORT/XLIMITS=0.,0.7/YLIMITS=0.,1. classif_view 53 54 set viewport classif_view -
trunk/src/create_gif_msg-height.jnl
r634 r635 10 10 ! =========== 11 11 ! 12 ! Programme pour générer des GIF à partir de fichiers NetCDF12 ! Programme pour générer des GIF à partir de fichiers netCDF 13 13 ! 14 14 ! $1 = Nom fichier d'entrée (chemin complet) 15 15 ! $2 = Nom fichier de sortie (chemin complet) 16 16 ! 17 ! pour ex ecuter faire:17 ! pour exécuter faire: 18 18 ! 19 19 ! .. code-block:: ferret … … 36 36 ! 37 37 ! - RR/KR/LMD/IPSL Mai 2006 38 ! 38 39 !- 39 40 !! 40 !! Ouverture du fichier NetCDF41 !! Ouverture du fichier netCDF 41 42 use "($1)" 42 43 !! 43 !! Enl eve les LOGOS44 !! EnlÚve les LOGOS 44 45 CANCEL MODE LOGO 45 46 !! 46 !! Redimensionne la fen etre47 !! Redimensionne la fenêtre 47 48 set window/aspect=`370/500.` 48 49 shade/i=1:10/j=1:15 i+j … … 52 53 region/x=-50:40/y=-5:35 53 54 !! 54 !! Dessine les donn ees55 !! Dessine les données 55 56 SET VIEW full 56 57 shade/pal=rainbow/lev=(0,18000,1000)/GRAT=(DASH,color=purple,thick=1)/set DATA … … 58 59 ppl shade 59 60 GO land thick overlay black 60 !! 61 !! c'est nous qui l'ont fait 61 62 LABEL 10,37,-1,0,0.12 @AR Source: EUMETSAT-CMS-IPSL 62 63 -
trunk/src/create_gif_msg-pressure.jnl
r634 r635 10 10 ! =========== 11 11 ! 12 ! Programme pour générer des GIF à partir de fichiers NetCDF12 ! Programme pour générer des GIF à partir de fichiers netCDF 13 13 ! 14 14 ! $1 = Nom fichier d'entrée (chemin complet) … … 34 34 ! 35 35 ! - RR/KR/LMD/IPSL Mai 2006 36 ! 36 37 !- 37 38 !! 38 !! Ouverture du fichier NetCDF39 !! Ouverture du fichier netCDF 39 40 use "($1)" 40 41 !! 41 !! Enl eve les LOGOS42 !! EnlÚve les LOGOS 42 43 CANCEL MODE LOGO 43 44 !! 44 !! Redimensionne la fen etre45 !! Redimensionne la fenêtre 45 46 set window/aspect=`370/500.` 46 47 shade/i=1:10/j=1:15 i+j … … 50 51 region/x=-50:40/y=-5:35 51 52 !! 52 !! Dessine les donn ees53 !! Dessine les données 53 54 SET VIEW full 54 55 shade/pal=rainbow/lev=(100,1500,100)/GRAT=(DASH,color=purple,thick=1)/set DATA -
trunk/src/create_gif_msg-tb087.jnl
r634 r635 7 7 ! ======================== 8 8 ! 9 ! DE CRIPTION9 ! DESCRIPTION 10 10 ! ========== 11 11 ! 12 ! Programme pour générer des GIF à partir de fichiers NetCDF12 ! Programme pour générer des GIF à partir de fichiers netCDF 13 13 ! 14 ! $1 = Nom fichier d'entr <E9>e (chemin complet)14 ! $1 = Nom fichier d'entrée (chemin complet) 15 15 ! $2 = Nom fichier de sortie (chemin complet) 16 16 ! 17 ! pour ex ecuter faire::17 ! pour exécuter faire 18 18 ! 19 ! GO create_gif $1 $2 $3 $4 $5 $6 .... $n 19 ! .. code-block:: ferret 20 ! 21 ! GO create_gif $1 $2 $3 $4 $5 $6 .... $n 20 22 ! 21 23 ! SEE ALSO … … 34 36 ! 35 37 ! - RR/KR/LMD/IPSL Mai 2006 38 ! 36 39 !- 37 40 !! 38 !! Ouverture du fichier NetCDF41 !! Ouverture du fichier netCDF 39 42 use "($1)" 40 43 !! 41 !! Enl eve les LOGOS44 !! EnlÚve les LOGOS 42 45 CANCEL MODE LOGO 43 46 !! 44 !! Redimensionne la fen etre47 !! Redimensionne la fenêtre 45 48 set window/aspect=`370/500.` 46 49 shade/i=1:10/j=1:15 i+j … … 49 52 set window/aspect=`370/500.`/size=`0.7*(370*500)/(($ppl$xpixel)*($ppl$ypixel))` 50 53 !! 51 !! Dessine les donn ees54 !! Dessine les données 52 55 SET VIEW full 53 56 PALETTE=blue_darkred … … 59 62 LABEL 0,22,-1,0,0.12 @AR Source: EUMETSAT-CMS-IPSL 60 63 61 !! Attention cette routine red efinit le viewport et donc tout ce qui est apres ne amrche pas sur64 !! Attention cette routine redéfinit le viewport et donc tout ce qui est aprÚs ne marche pas sur 62 65 !! la carte 63 66 GO ccbar 0.93, 0.96, 0.2, 0.8, 170,330,2, v … … 82 85 !! Sauvegarde du fichier GIF 83 86 FRAME/file="($2)" 84 -
trunk/src/create_gif_msg-tb097-dev.jnl
r634 r635 10 10 ! =========== 11 11 ! 12 ! Programme pour générer des GIF à partir de fichiers NetCDF12 ! Programme pour générer des GIF à partir de fichiers netCDF 13 13 ! 14 14 ! $1 = Nom fichier d'entrée (chemin complet) 15 15 ! $2 = Nom fichier de sortie (chemin complet) 16 16 ! 17 ! pour ex ecuter faire::17 ! pour exécuter faire:: 18 18 ! 19 19 ! GO create_gif $1 $2 $3 $4 $5 $6 .... $n … … 34 34 ! 35 35 ! - RR/KR/LMD/IPSL Mai 2006 36 ! 36 37 !- 37 38 !! 38 !! Ouverture du fichier NetCDF39 !! Ouverture du fichier netCDF 39 40 use "($1)" 40 41 !! 41 !! Enl eve les LOGOS42 !! EnlÚve les LOGOS 42 43 CANCEL MODE LOGO 43 44 !! 44 !! Redimensionne la fen etre45 !! Redimensionne la fenêtre 45 46 set window/aspect=1. 46 47 shade/i=1:10/j=1:15 i+j … … 49 50 set window/aspect=1./size=`0.7*(600*600)/(($ppl$xpixel)*($ppl$ypixel))` 50 51 !! 51 !! Dessine les donn ees52 !! Dessine les données 52 53 SET VIEW full 53 54 PALETTE=blue_darkred … … 57 58 go land thick 58 59 59 !! Attention cette routine red efinit le viewport et donc tout ce qui est apres ne amrche pas sur60 !! la carte60 !! Attention cette routine redéfinit le viewport et donc tout ce qui est 61 !! aprÚs ne marche pas sur la carte 61 62 GO ccbar 0.93, 0.96, 0.2, 0.8, 170,330,2, v 62 63 -
trunk/src/create_gif_msg-tb108.jnl
r634 r635 10 10 ! =========== 11 11 ! 12 ! Programme pour générer des GIF à partir de fichiers NetCDF12 ! Programme pour générer des GIF à partir de fichiers netCDF 13 13 ! 14 ! 15 ! 14 ! $1 = Nom fichier d'entrée (chemin complet) 15 ! $2 = Nom fichier de sortie (chemin complet) 16 16 ! 17 17 ! EXAMPLES 18 18 ! ========= 19 19 ! 20 ! ::20 ! .. code-example:: ferret 21 21 ! 22 ! $ ferret 23 ! yes? GO create_gif_msg-tb108 "/homedata/pinsard/varamma_d/MSG/2006/08/01/200608010000_msg-tb108_map_15min.nc" "/homedata/pinsard/varamma_d/MSG/2006/08/01/200608010000_msg-tb108_map_15min.gif" 22 ! yes? GO create_gif_msg-tb108 "/homedata/pinsard/varamma_d/MSG/2006/08/01/200608010000_msg-tb108_map_15min.nc" "/homedata/pinsard/varamma_d/MSG/2006/08/01/200608010000_msg-tb108_map_15min.gif" 24 23 ! 25 24 ! SEE ALSO … … 46 45 !- 47 46 !! 48 !! Ouverture du fichier NetCDF47 !! Ouverture du fichier netCDF 49 48 use "($1)" 50 49 !! 51 !! Enl eve les LOGOS50 !! EnlÚve les LOGOS 52 51 CANCEL MODE LOGO 53 52 !! 54 !! Redimensionne la fen etre53 !! Redimensionne la fenêtre 55 54 set window/aspect=`370/500.` 56 55 shade/i=1:10/j=1:15 i+j … … 59 58 set window/aspect=`370/500.`/size=`0.7*(370*500)/(($ppl$xpixel)*($ppl$ypixel))` 60 59 !! 61 !! Dessine les donn ees60 !! Dessine les données 62 61 SET VIEW full 63 62 PALETTE=blue_darkred … … 69 68 LABEL 0,22,-1,0,0.12 @AR Source: EUMETSAT-CMS-IPSL 70 69 71 !! Attention cette routine red efinit le viewport et donc tout ce qui est apres ne amrche pas sur70 !! Attention cette routine redéfinit le viewport et donc tout ce qui est aprÚs ne marche pas sur 72 71 !! la carte 73 72 GO ccbar 0.93, 0.96, 0.2, 0.8, 170,330,2, v -
trunk/src/create_gif_msg-tb108z.jnl
r634 r635 10 10 ! =========== 11 11 ! 12 ! Programme pour générer des GIF à partir de fichiers NetCDF12 ! Programme pour générer des GIF à partir de fichiers netCDF 13 13 ! 14 14 ! pour executer faire:: … … 34 34 ! - RR/KR/LMD/IPSL Mai 2006 35 35 !- 36 37 !! Ouverture du fichier NetCDF36 ! 37 !! Ouverture du fichier netCDF 38 38 use "($1)" 39 39 !! 40 !! Enl eve les LOGOS40 !! EnlÚve les LOGOS 41 41 CANCEL MODE LOGO 42 42 !! 43 !! Redimensionne la fen etre43 !! Redimensionne la fenêtre 44 44 set window/aspect=`370/500.` 45 45 shade/i=1:10/j=1:15 i+j … … 48 48 set window/aspect=`370/500.`/size=`0.7*(370*500)/(($ppl$xpixel)*($ppl$ypixel))` 49 49 !! 50 !! Dessine les donn ees50 !! Dessine les données 51 51 SET VIEW full 52 52 … … 61 61 LABEL 0,22,-1,0,0.12 @AR Source: EUMETSAT-CMS-IPSL 62 62 63 !! Attention cette routine red efinit le viewport et donc tout ce qui est apres ne amrche pas sur64 !! la carte63 !! Attention cette routine redéfinit le viewport et donc tout ce qui est 64 !! aprÚs ne marche pas sur la carte 65 65 CANCEL REGION/ALL 66 66 GO ccbar 0.93, 0.96, 0.2, 0.8, 170,330,2, v -
trunk/src/create_gif_msg-tb120.jnl
r634 r635 9 9 ! DESCRIPTION 10 10 ! =========== 11 12 ! Programme pour générer des GIF à partir de fichiers NetCDF11 ! 12 ! Programme pour générer des GIF à partir de fichiers netCDF 13 13 ! 14 14 ! $1 = Nom fichier d'entrée (chemin complet) … … 34 34 ! 35 35 ! - RR/KR/LMD/IPSL Mai 2006 36 ! 36 37 !- 37 38 !! 38 !! Ouverture du fichier NetCDF39 !! Ouverture du fichier netCDF 39 40 use "($1)" 40 41 !! 41 !! Enl eve les LOGOS42 !! EnlÚve les LOGOS 42 43 CANCEL MODE LOGO 43 44 !! 44 !! Redimensionne la fen etre45 !! Redimensionne la fenêtre 45 46 set window/aspect=`370/500.` 46 47 shade/i=1:10/j=1:15 i+j … … 49 50 set window/aspect=`370/500.`/size=`0.7*(370*500)/(($ppl$xpixel)*($ppl$ypixel))` 50 51 !! 51 !! Dessine les donn ees52 !! Dessine les données 52 53 SET VIEW full 53 54 PALETTE=blue_darkred … … 58 59 LABEL 0,22,-1,0,0.12 @AR Source: EUMETSAT-CMS-IPSL 59 60 60 !! Attention cette routine red efinit le viewport et donc tout ce qui est apres ne amrche pas sur61 !! la carte61 !! Attention cette routine redéfinit le viewport et donc tout ce qui est 62 !! aprÚs ne marche pas sur la carte 62 63 GO ccbar 0.93, 0.96, 0.2, 0.8, 170,330,2, v 63 64 -
trunk/src/create_gif_msg-tb134-dev.jnl
r634 r635 10 10 ! =========== 11 11 ! 12 ! Programme pour générer des GIF à partir de fichiers NetCDF12 ! Programme pour générer des GIF à partir de fichiers netCDF 13 13 ! 14 14 ! $1 = Nom fichier d'entrée (chemin complet) … … 26 26 ! EVOLUTIONS 27 27 ! ========== 28 ! 28 29 ! $Id$ 29 30 ! … … 33 34 ! 34 35 ! - RR/KR/LMD/IPSL Mai 2006 36 ! 35 37 !- 36 38 !! 37 !! Ouverture du fichier NetCDF39 !! Ouverture du fichier netCDF 38 40 use "($1)" 39 41 !! 40 !! Enl eve les LOGOS42 !! EnlÚve les LOGOS 41 43 CANCEL MODE LOGO 42 44 !! 43 !! Redimensionne la fen etre45 !! Redimensionne la fenêtre 44 46 set window/aspect=1. 45 47 shade/i=1:10/j=1:15 i+j … … 48 50 set window/aspect=1./size=`0.7*(600*600)/(($ppl$xpixel)*($ppl$ypixel))` 49 51 !! 50 !! Dessine les donn ees52 !! Dessine les données 51 53 SET VIEW full 52 54 PALETTE=blue_darkred … … 56 58 go land thick 57 59 58 !! Attention cette routine red efinit le viewport et donc tout ce qui est apres ne amrche pas sur59 !! la carte60 !! Attention cette routine redéfinit le viewport et donc tout ce qui est 61 !! aprÚs ne marche pas sur la carte 60 62 GO ccbar 0.93, 0.96, 0.2, 0.8, 170,330,2, v 61 63 -
trunk/src/create_gif_msg-temperature.jnl
r634 r635 10 10 ! =========== 11 11 ! 12 ! Programme pour générer des GIF à partir de fichiers NetCDF12 ! Programme pour générer des GIF à partir de fichiers netCDF 13 13 ! 14 14 ! $1 = Nom fichier d'entrée (chemin complet) 15 15 ! $2 = Nom fichier de sortie (chemin complet) 16 16 ! 17 ! pour ex ecuter faire::17 ! pour exécuter faire:: 18 18 ! 19 19 ! GO create_gif $1 $2 $3 $4 $5 $6 .... $n … … 33 33 ! 34 34 ! - RR/KR/LMD/IPSL Mai 2006 35 ! 35 36 !- 36 37 !! 37 !! Ouverture du fichier NetCDF38 !! Ouverture du fichier netCDF 38 39 use "($1)" 39 40 !! 40 !! Enl eve les LOGOS41 !! EnlÚve les LOGOS 41 42 CANCEL MODE LOGO 42 43 !! 43 !! Redimensionne la fen etre44 !! Redimensionne la fenêtre 44 45 set window/aspect=`370/500.` 45 46 shade/i=1:10/j=1:15 i+j … … 50 51 51 52 !! 52 !! Dessine les donn ees53 !! Dessine les données 53 54 SET VIEW full 54 55 PALETTE=blue_darkred … … 62 63 63 64 can reg 64 !! Attention cette routine red efinit le viewport et donc tout ce qui est apres ne amrche pas sur65 !! Attention cette routine redéfinit le viewport et donc tout ce qui est aprÚs ne marche pas sur 65 66 !! la carte 66 67 GO ccbar 0.93, 0.96, 0.2, 0.8, 170,330,2, v -
trunk/src/create_nc.jnl
r634 r635 7 7 ! ============= 8 8 ! 9 ! Programme pour convertir les tarcyl en Netcdf9 ! Programme pour convertir les tarcyl en netCDF 10 10 ! 11 11 ! $1 = datestring -
trunk/src/create_nc.sh
r634 r635 145 145 # 146 146 # * replace /opt/ferret-6.0.8/bin/ferret (not anymore available on 147 # climserv) by ferret147 # ClimServ) by ferret 148 148 # 149 149 # - fplod 20100608T143812Z aedon.locean-ipsl.upmc.fr (Darwin) -
trunk/src/cresamsu.pro
r634 r635 15 15 ; 16 16 ; grille de sortie en long / lat 17 ; re coit en entree les jours de l'annee jdeb et jfin18 ; correspondant au d ebut et la fin du mois19 ; 20 ; adaptation aux donn ees Tb AMSU lues avec la nouvelle chaîne de lecture17 ; reçoit en entrée les jours de l'année jdeb et jfin 18 ; correspondant au début et la fin du mois 19 ; 20 ; adaptation aux données Tb AMSU lues avec la nouvelle chaîne de lecture 21 21 ; extract_amsu.pro 22 22 ; correct_nadir.pro … … 91 91 ; aligner lal/lon de l'exemple sur les autres modules amsu 92 92 ; 93 ;94 93 ; coding rules 95 94 ; … … 107 106 ; - lelod, fin mai 2012 108 107 ; 109 ; * ajout de correction suppl ementaire pour ameliorer les champs108 ; * ajout de correction supplémentaire pour améliorer les champs 110 109 ; * lecture et application de la correction avant interpolation 111 110 ; … … 118 117 ; - lelod 20120410 puis 20120503 119 118 ; 120 ; * param etres de la grille dependant des rayons de cresmann119 ; * paramÚtres de la grille dépendant des rayons de Cressman 121 120 ; * revisite de la grille temporelle 122 ; * choix du rayon de Cressman en degr es et pas en km123 ; * ajout d'un param etre temp (= "m" ou "e") pour choix de la plage124 ; * ajout en param etres des rayons de Cressman rtemp et rhdeg121 ; * choix du rayon de Cressman en degrés et pas en km 122 ; * ajout d'un paramÚtre temp (= "m" ou "e") pour choix de la plage 123 ; * ajout en paramÚtres des rayons de Cressman rtemp et rhdeg 125 124 ; horaire d'interpolation temporelle 126 125 ; … … 145 144 ; 146 145 ; * reprise du programme aprÚs refonte de la chaine (extract_amsua): 147 ; lecture nouveau format de fichier (structure) 148 ; elimination des tentatives precedentes 149 ; ajout du mask dans l'appel a idl_amsu_ncdf 150 ; introduire en parametres les choix pour le fichier ncdf: grille, 151 ; rayons de Cressman, selection de la portion du jour utilisee dans 152 ; l'interpolation 146 ; 147 ; - lecture nouveau format de fichier (structure) 148 ; - élimination des tentatives précedentes 149 ; - ajout du mask dans l'appel a idl_amsu_ncdf 150 ; - introduire en paramÚtres les choix pour le fichier ncdf: grille, 151 ; rayons de Cressman, sélection de la portion du jour utilisée dans 152 ; l'interpolation 153 153 ; 154 154 ; - lelod 20111024 … … 156 156 ; * prise en compte des modifications de lecture et correction nadir 157 157 ; (correct_nadir.pro): 158 ; possibilite de traiter amsua et amsub ou amsub seul 159 ; utilisation de pixelsize.pro pour boucher les trous entres lignes de 160 ; pixels en bordure de fauchee de façon correcte 158 ; 159 ; - possibilité de traiter amsua et amsub ou amsub seul 160 ; - utilisation de pixelsize.pro pour boucher les trous entres lignes de 161 ; pixels en bordure de fauchée de façon correcte 161 162 ; 162 163 ; - fplod 20110505T123230Z cratos.locean-ipsl.upmc.fr (Linux) … … 212 213 tbmin=100 213 214 tbmax=350 214 ; est il utile d'avoir encore les seuils sur les Tbs acette215 ; etape?216 217 ; rayons de cressmann et grille de sortie215 ; est il utile d'avoir encore les seuils sur les Tbs à cette 216 ; étape ? 217 218 ; rayons de Cressman et grille de sortie 218 219 ;---------------------------------------- 219 ;rayon temporel fourni en param etre rtemp220 ;rayon temporel fourni en paramÚtre rtemp 220 221 ;calcul sur orbites du matin (temp='m'), du soir (temp='e') ou 221 ;indiff eremment (temp='d')222 ;indifféremment (temp='d') 222 223 rtemphor=rtemp*24. ; en heures 223 ; caract eristiques de la grille de sortie224 ; par d efaut: orbites du matin ('m')224 ; caractéristiques de la grille de sortie 225 ; par défaut: orbites du matin ('m') 225 226 pastemp=1 226 227 hdeb=0 227 hfin=12 ; on ne cherchera pas de donn ees eloignees de plus de 6 heures228 heurdebut=6 ; grille centr ee sur 6h du matin228 hfin=12 ; on ne cherchera pas de données éloignées de plus de 6 heures 229 heurdebut=6 ; grille centrée sur 6h du matin 229 230 if temp eq 'e' then begin 230 231 heurdebut=18 … … 234 235 if temp eq 'd' then begin 235 236 hdeb=0 236 hfin=24 ; on prend toutes les orbites de la journ ee (regule par rtemp)237 hfin=24 ; on prend toutes les orbites de la journée (regule par rtemp) 237 238 if rtemp gt 0.5 then pastemp=1 238 239 if rtemp gt 0.175 and rtemp le 0.5 then pastemp=0.5 … … 241 242 pasthor=pastemp*24. 242 243 243 ; d ebut et fin de la grille temporelle, a partir des fichiers d'entree244 ; début et fin de la grille temporelle, à partir des fichiers d'entrée 244 245 ; en j juliens : tient compte du rayon de Cressman temporel (rtemp) 245 246 j0=julday(mmb,ddb,yyyyb,0) … … 267 268 msg = report(['iii : ' + routine + ' : debut et fin = ' + string(jdeb) + ' ' + string(jfin)]) 268 269 269 jmax=fix((hrfin-hrdeb)/pasthor) ; valeurs de 0 ajmax270 jmax=fix((hrfin-hrdeb)/pasthor) ; valeurs de 0 à jmax 270 271 nbjour=jmax+1 271 272 272 273 273 ; conversions degr es / radians et rayon en km274 ; conversions degrés / radians et rayon en km 274 275 vbidon=-999. 275 276 coef=!pi/180. … … 277 278 rhor=rhdeg*(rterre*!pi)/180. ; en km 278 279 r2=rhor*rhor 279 ; r esolution spatiale et temporelle de la grille de sortie280 pash=rhdeg/2. ; en degr es281 ; grille des donn ees en sortie280 ; résolution spatiale et temporelle de la grille de sortie 281 pash=rhdeg/2. ; en degrés 282 ; grille des données en sortie 282 283 lo1=lonmin+rhdeg 283 284 lo2=lonmax-rhdeg … … 298 299 ; pour le fichier netcdf 299 300 ;------------------------------------ 300 ; coordonn ees des points de la grille en sortie301 ; coordonnées des points de la grille en sortie 301 302 los=coef*(indgen(nblon)*pash+lo1) ; en radians 302 303 las=coef*(indgen(nblat)*pash+la1) ; idem 303 xxlon=(indgen(nblon)*pash+lo1) ; en degr es304 yylat=(indgen(nblat)*pash+la1) ; en degr es304 xxlon=(indgen(nblon)*pash+lo1) ; en degrés 305 yylat=(indgen(nblat)*pash+la1) ; en degrés 305 306 jjours=indgen(nbjour)*pastemp+jdeb 306 307 lo2=max(xxlon) … … 330 331 geomax = geolocation_to_string_idl(lonmax, latmax, look,1) 331 332 332 ; correction suppl ementaire si necessaire333 ; correction supplémentaire si nécessaire 333 334 correcbis='non' 334 335 if correcbis eq 'oui' then begin … … 364 365 ; if yyyy eq yyyye then mmye=mme 365 366 ; endif 366 ; print,"traitement ann ee ",yyyy,'mois ',mmyb,'a ',mmye367 ; print,"traitement année ",yyyy,'mois ',mmyb,'a ',mmye 367 368 ; for mm=mmyb,mmye do begin 368 369 ; if (mme ne mmb) then begin … … 376 377 dateb=julday(mmb,ddb,yyyyb) 377 378 datee=julday(mme,dde,yyyye) 378 print,'dates d ebut et fin en jours juliens',dateb,datee379 print,'dates début et fin en jours juliens',dateb,datee 379 380 for jd=dateb,datee do begin 380 381 caldat,jd, mm,dd,yyyy … … 394 395 mask=result.data.landseamask 395 396 tbinit=result.data.tb 396 ; d ecodage du nb de points (nn)397 ; décodage du nb de points (nn) 397 398 nn=n_elements(tbinit) 398 ; egalement aussi des bornes en lon / lat (a retirer des parametres d'entree)++399 ; également aussi des bornes en lon / lat (à retirer des paramÚtres d'entrée)++ 399 400 400 401 ; boucle sur les points du fichier 401 402 tb1=tbinit 402 403 if correcbis eq "oui" then begin 403 print,"ATTENTION: correction suppl ementaire activee"404 print,"ATTENTION: correction supplémentaire activée" 404 405 ; application de la correction bis 405 406 tb1=fltarr(nn) 406 print,'fauch ee',min(fov),max(fov)407 print,'fauchée',min(fov),max(fov) 407 408 for ifov=min(fov)+1,fovmax-1 do begin 408 409 ind=where(fov eq ifov and mask eq 1,nbfov) … … 436 437 437 438 for i=0,nn-1 do begin 438 ; r ecupde tb1,hour,lon,lat439 ; récupération de tb1,hour,lon,lat 439 440 if (tb1[i] ge tbmin and tb1[i] le tbmax) then begin 440 ;if ((tb1 lt tbmin) or (tb1 gt tbmax)) then goto,suite0 ;; on ne s int eresse pas aux donnees aberrantes441 ; aremplacer par if tb1 ne Nan then begin441 ;if ((tb1 lt tbmin) or (tb1 gt tbmax)) then goto,suite0 ;; on ne s intéresse pas aux données abérrantes 442 ; à remplacer par if tb1 ne Nan then begin 442 443 ;if (cont lt 10) then print,lon,lat,fov,tb1,hour 443 ; test sur le d ebut et la fin des donnes utiles tenant compte du rayon temporel444 jour=julday(mm,dd,yyyy,0)*24.+hour[i] ; en heures d ecimales444 ; test sur le début et la fin des données utiles tenant compte du rayon temporel 445 jour=julday(mm,dd,yyyy,0)*24.+hour[i] ; en heures décimales 445 446 ;if (cont lt 10) then print,mm,dd,yyyy,'jour julien lu (en heure)',jour 446 447 if ((jour ge hrdeb-rtemphor) and (jour le hrfin+rtemphor) and (hour[i] le hfin) and (hour[i] ge hdeb) ) then begin 447 ; print,'on cherche les donn ees dans la fenetre temporelle'448 ; print,'on cherche les données dans la fenêtre temporelle' 448 449 ; utilisation seulement des orbites du matin - projet heat low 449 450 ; grilles temporelle et spatiale utile … … 490 491 endif 491 492 endif 492 ; fin test sur donn ees valides (inutile normalement)493 ; fin test sur données valides (inutile normalement) 493 494 endfor 494 ; fin lecture donn ees fichier journalier495 ; fin lecture données fichier journalier 495 496 nbfile = nbfile + 1L 496 497 goto, nextday … … 501 502 nextday: 502 503 IF key_performance EQ 1 THEN BEGIN 503 msg = report(['ppp : ' + routine + ' : durée interm ediaire au passage au fichier suivant' $504 msg = report(['ppp : ' + routine + ' : durée intermédiaire au passage au fichier suivant' $ 504 505 + string(SYSTIME(1)-time1,format='(F12.6)')]) 505 506 -
trunk/src/cresamsu.sh
r634 r635 192 192 if [ ${#} -lt ${minargcount} ] 193 193 then 194 echo "${command} : eee : not enough targuments (${#} vs ${minargcount})"194 echo "${command} : eee : not enough arguments (${#} vs ${minargcount})" 195 195 echo "${usage}" 196 196 exit 1 -
trunk/src/cresamsu_cdf.pro
r634 r635 8 8 ; 9 9 ; programme d'interpolation avec algorithme de Cressman 10 ; adaptation aux donn ees Tb AMSU lues avec la nouvelle chaîne de lecture10 ; adaptation aux données Tb AMSU lues avec la nouvelle chaîne de lecture 11 11 ; extract_amsuab.pro 12 12 ; correct_nadir.pro … … 16 16 ; 17 17 ; Uses: 18 ; param etres:18 ; paramÚtres: 19 19 ; use_amsua = 0 ou 1 (amsub ou les deux) 20 20 ; … … 58 58 ; modifier correct_nadir_amsu.pro pour créer des fichiers AMSUa et 59 59 ; AMSUb séparés pour garder la pleine résolution de chaque 60 ; instrument jusqu' a l'interpolation dans une grille reguliÚre60 ; instrument jusqu'à l'interpolation dans une grille réguliÚre 61 61 ; 62 62 ; lelod 2011/10/24 63 63 ; actuellement codes en dur 64 ; passer le choix du rayon de Cressman en param etres64 ; passer le choix du rayon de Cressman en paramÚtres 65 65 ; rayon temporel rtemp (en jour decimal) 66 66 ; rayon horizontal rhor (km) … … 74 74 ; 75 75 ; envisager possibilité de ne traiter que les orbites du matin ou du 76 ; soir comme teste sur climserv, par ajout de ce critÚre sur variable76 ; soir comme teste sur ClimServ, par ajout de ce critÚre sur variable 77 77 ; lue "hour" dans le test sur le début et la fin des données utiles 78 78 ; … … 84 84 ; 85 85 ; 20111121 lelod 86 ; récupération du param etre "orbit" dans le fichier lu :86 ; récupération du paramÚtre "orbit" dans le fichier lu : 87 87 ; pour permettre ajustement en latitude des pseudopixels qui servent a 88 88 ; tenir compte de l'élargissement des taches au sol … … 101 101 ; longitude 102 102 ; par rapport au pixel central: 103 ; à partir de fov=+/-11, dédoublement du pixel pixel +/- diam etre tache au sol/6104 ; à partir de fov=+/-14, pixel triple centre et +/- diam etre tache au sol/4103 ; à partir de fov=+/-11, dédoublement du pixel pixel +/- diamÚtre tache au sol/6 104 ; à partir de fov=+/-14, pixel triple centre et +/- diamÚtre tache au sol/4 105 105 ; 106 106 ; 2011/10/24 lelod … … 125 125 pro cresamsu_cdf,use_amsua,yyyyb,mmb,ddb,yyyye,mme,dde,lonmin, lonmax, latmin, latmax,listcanal 126 126 127 ; les param etres de l'interpolation127 ; les paramÚtres de l'interpolation 128 128 129 129 ; grille de sortie en long / lat 130 ; re coit en entree les jours de l'annee jdeb et jfin correspondant au debut et la fin du mois130 ; reçoit en entrée les jours de l'année jdeb et jfin correspondant au début et la fin du mois 131 131 ;============================================================================================= 132 132 … … 136 136 tbmin=100 137 137 tbmax=350 138 ; est il utile d'avoir encore les seuils sur les Tbs acette139 ; etape? Verifier le passage des NaN140 141 ; r esolution spatiale et temporelle de la grille de sortie142 pash=0.5 ; en degr es138 ; est il utile d'avoir encore les seuils sur les Tbs à cette 139 ; étape? Vérifier le passage des NaN 140 141 ; résolution spatiale et temporelle de la grille de sortie 142 pash=0.5 ; en degrés 143 143 pastemp=1 ; ennb revisites par jour - choix d'un nb entier par jour (0.25, 0.5 ou 1) 144 heurinterp=6. ; heure des tableaux interpol es (choix lieaux heures de passage satellites) si pas de temps eq 1144 heurinterp=6. ; heure des tableaux interpolés (choix lié aux heures de passage satellites) si pas de temps eq 1 145 145 ; sinon fixer heurinterp comme l'heure minimale pour l'interpolation 146 146 ; (= rtemp???) … … 150 150 151 151 ; rayons de cressmann 152 rhor=60. ; en gros deux fois la r esolde AMSUB, et proche de celle d'AMSUA152 rhor=60. ; en gros deux fois la résolution de AMSUB, et proche de celle d'AMSUA 153 153 rtemp=0.5 ;en jours rayon de Cressman (0.25, 0.5, 1, 2,... - nb entiers!) 154 154 r2=rhor*rhor … … 161 161 rhdeg=rhor*180./(rterre*!pi) ;rayon de Cressman en degres 162 162 163 ; d ebut et fin de la grille temporelle, a partir des fichiers d'entree163 ; début et fin de la grille temporelle, a partir des fichiers d'entrée 164 164 ; en j juliens : tient compte du rayon de Cressman temporel (rtemp) 165 165 if (heurinterp/24.le rtemp and rtemp lt 1) then begin … … 177 177 print,'debut et fin', jdeb,jfin 178 178 179 ; grille des donn ees en sortie179 ; grille des données en sortie 180 180 lo1=lonmin+rhdeg 181 181 lo2=lonmax-rhdeg … … 192 192 193 193 ;____________________________________ 194 ; pour le fichier net cdf194 ; pour le fichier netCDF 195 195 ;------------------------------------ 196 ; coordonn ees des points de la grille en sortie196 ; coordonnées des points de la grille en sortie 197 197 los=coef*(indgen(nblon)*pash+lo1) ; en radians 198 198 las=coef*(indgen(nblat)*pash+la1) ; idem … … 203 203 la2=max(yylat) 204 204 hrfin=max(jjours)*24. 205 print, 'pas de temps du fichier n cdfen jours decimaux',jjours205 print, 'pas de temps du fichier netCDF en jours decimaux',jjours 206 206 print,'derniers points de la grille',max(xxlon),max(yylat),hrfin 207 207 ;----------------------------------- 208 208 t=indgen(nbjour)*pasthor+hrdeb ; en heures 209 209 print,'t',t 210 ; dimension des pixels dans la fauch ee (swath) et dans le sens du "track"210 ; dimension des pixels dans la fauchée (swath) et dans le sens du "track" 211 211 ; utiliser les dimensions amsua si use_amsua=1 212 212 ; valeurs en km … … 228 228 ; lecture des données et calcul des points interpolés 229 229 ; lecture du fichier ajusté au nadir 230 ; lecture séquentielle des donn ees d'entree et ajout aux points de grille230 ; lecture séquentielle des données d'entrée et ajout aux points de grille 231 231 ; concernés 232 232 ;window,0 … … 268 268 cont=0L 269 269 while (not eof(2)) do begin 270 ;lecture nouveaux formats de donn ees270 ;lecture nouveaux formats de données 271 271 if (use_amsua eq 1) then begin 272 272 readf,2, month,land_sea,yrday,orbit,hour,fov,nosat,lon,lat,zen,$ … … 296 296 ;if (tb1 ne !values.f_Nan) then begin 297 297 if (tb1 ge tbmin and tb1 le tbmax) then begin 298 ;if ((tb1 lt tbmin) or (tb1 gt tbmax)) then goto,suite0 ;; on ne s interesse pas aux donnees aberrantes299 ; a remplacer par if tb1 ne Nanthen begin298 ;if ((tb1 lt tbmin) or (tb1 gt tbmax)) then goto,suite0 ;; on ne s'intéresse pas aux données aberrantes 299 ; à remplacer par if tb1 ne NaN then begin 300 300 ;if (cont lt 10) then print,lon,lat,fov,tb1,hour 301 ; test sur le d ebut et la fin des donnes utiles tenant compte du rayon temporel302 jour=julday(mm,dd,yyyy,0)*24.+hour ; en heures d ecimales301 ; test sur le début et la fin des données utiles tenant compte du rayon temporel 302 jour=julday(mm,dd,yyyy,0)*24.+hour ; en heures décimales 303 303 ;if (cont lt 10) then print,mm,dd,yyyy,'jour julien lu (en heure)',jour 304 304 if ((jour ge hrdeb-rtemphor) and (jour le hrfin+rtemphor) and (hour le 24.)) then begin 305 ; print,'on cherche les donn ees dans la fenetre temporelle'305 ; print,'on cherche les données dans la fenêtre temporelle' 306 306 ; utilisation seulement des orbites du 307 307 ; matin - projet heat low … … 320 320 ; d'autre 321 321 ; pour 11 - 13: remplacement du pixel central par deux pixels répartis 322 ; de swath/6 de part et d'autre, avec m eme Tb322 ; de swath/6 de part et d'autre, avec même Tb 323 323 ; pour 14 et 15: complément du pixel central par deux pixels 324 ; supplémentaires a +/- swath/4 avec m eme Tb324 ; supplémentaires a +/- swath/4 avec même Tb 325 325 ; prévoir même analyse pour amsub 326 326 ; pour ajuster aussi la latitude, nec tenir compte de l'orbite … … 340 340 ; endif 341 341 if (fov ge fov_min and fov le fov_edge1) or (fov ge fov_edge2 and fov le fov_max) then begin 342 ; print,'bord de fauch ee'342 ; print,'bord de fauchée' 343 343 lolo=fltarr(3) 344 344 lala=fltarr(3) … … 404 404 endelse 405 405 for ilolo=0,1 do begin 406 ; if (cont gt cont1 and cont lt cont2) then print,'pixels interm ediaires',cont,fov,lolo[ilolo],lala[ilolo]406 ; if (cont gt cont1 and cont lt cont2) then print,'pixels intermédiaires',cont,fov,lolo[ilolo],lala[ilolo] 407 407 yy=lala[ilolo]*coef 408 408 xx=lolo[ilolo]*coef … … 437 437 endif 438 438 439 ; cas normal: milieu de la fauch ee439 ; cas normal: milieu de la fauchée 440 440 ;print,'cas normal' 441 441 if (fov gt fov_int2 and fov lt fov_int3) then begin … … 450 450 ; (los, las, t) 451 451 for nj=jdp,jfn do begin 452 dij=(jour-t[nj])/rtemphor ; normalis ee par le rayon de Cressman452 dij=(jour-t[nj])/rtemphor ; normalisée par le rayon de Cressman 453 453 disj=dij*dij 454 454 for l=ldp,lfn do begin … … 474 474 endif 475 475 endif 476 endif ; fin test donn ees Nan476 endif ; fin test données NaN 477 477 endwhile 478 478 … … 489 489 if (nbad ne 0) then tb1fin[bad]=!values.f_Nan 490 490 ; print,tb1fin 491 print,'extr emes du compteur',min(kont1),max(kont1)491 print,'extrÚmes du compteur',min(kont1),max(kont1) 492 492 493 493 ;toto=reform(tb1fin[*,*,0]) -
trunk/src/cumulEPSAT_concat.m
r634 r635 1 1 function [ij_cumul_concat, time_concat, Longitudes, Latitudes] = cumulEPSAT_concat(ncfilesset, lonmin, lonmax, latmin, latmax, longresol, latresol, Annee, Mois_start, Jour_start, Mois_stop, Jour_stop) 2 2 3 %CUMULEPSAT_CONCAT permet d'analyser les donn ees EPSAT et de concatener les4 %cumuls journaliers r esultants. L'analyse s'effectue sur une seule5 %saison, sur tous les fichiers ou entre deux dates pr edefinies.3 %CUMULEPSAT_CONCAT permet d'analyser les données EPSAT et de concaténer les 4 %cumuls journaliers résultants. L'analyse s'effectue sur une seule 5 %saison, sur tous les fichiers ou entre deux dates prédéfinies. 6 6 7 7 % … … 17 17 % =========== 18 18 % 19 % - Donn ees d'entrees :20 % 21 % * ncfilesset (en caract eres) : Type de fichier NetCDF que l'on cherche,19 % - Données d'entrées : 20 % 21 % * ncfilesset (en caractÚres) : Type de fichier NetCDF que l'on cherche, 22 22 % 'normal' ou 'extracted'. 23 % * lonmin : Borne inférieure des longitudes du domaine etudie.24 % * lonmax : Borne supérieure des longitudes du domaine etudie.25 % * latmin : Borne inférieure des latitudes du domaine etudie.26 % * latmax : Borne supérieure des latitudes du domaine etudie.27 % * longresol : Nouvelle r esolution souhaitee (nombre de points) pour les28 % longitudes (0 pour garder la r esolution d'origine).29 % * latresol : Nouvelle r esolution souhaitee (nombre de points) pour les30 % latitudes (0 pour garder la r esolution d'origine).31 % * Annee : Ann ee de la saison d'etude.32 % * Mois_start (Facultatif) : Mois du premier jour d' etude pour la33 % s election des fichiers.34 % * Jour_start (Facultatif) : Jour du premier jour d' etude pour la35 % s election des fichiers.36 % * Mois_stop (Facultatif) : Mois du dernier jour d' etude pour la37 % s election des fichiers.38 % * Jour_stop (Facultatif) : Jour du dernier jour d' etude pour la39 % s election des fichiers.40 % 41 % - Donn ees de sorties :42 % 43 % * ij_cumul_concat : Matrice de donn ees (temps, longitudes,44 % latitudes)contenant les cumuls de pr ecipitations concatenees des45 % diff erents jours d'etude.23 % * lonmin : Borne inférieure des longitudes du domaine étudié. 24 % * lonmax : Borne supérieure des longitudes du domaine étudié. 25 % * latmin : Borne inférieure des latitudes du domaine étudié. 26 % * latmax : Borne supérieure des latitudes du domaine étudié. 27 % * longresol : Nouvelle résolution souhaitée (nombre de points) pour les 28 % longitudes (0 pour garder la résolution d'origine). 29 % * latresol : Nouvelle résolution souhaitée (nombre de points) pour les 30 % latitudes (0 pour garder la résolution d'origine). 31 % * Annee : Année de la saison d'étude. 32 % * Mois_start (Facultatif) : Mois du premier jour d'étude pour la 33 % sélection des fichiers. 34 % * Jour_start (Facultatif) : Jour du premier jour d'étude pour la 35 % sélection des fichiers. 36 % * Mois_stop (Facultatif) : Mois du dernier jour d'étude pour la 37 % sélection des fichiers. 38 % * Jour_stop (Facultatif) : Jour du dernier jour d'étude pour la 39 % sélection des fichiers. 40 % 41 % - Données de sorties : 42 % 43 % * ij_cumul_concat : Matrice de données (temps, longitudes, 44 % latitudes)contenant les cumuls de précipitations concatenées des 45 % différents jours d'étude. 46 46 % * time_concat : Variable de temps, en jour julien, pour identifier les 47 % jours etudies.48 % * Longitudes : Variable de longitudes dans le domaine s electionne.49 % * Latitudes : Variable de latitudes dans le domaine s electionne.50 % 51 % Cette fonction permet d'analyser les donn ees EPSAT et de concatener les52 % cumuls de pr ecipitations resultants. L'analyse s'effectue sur une seule53 % saison, sur tous les fichiers ou entre deux dates pr edefinies.47 % jours étudiés. 48 % * Longitudes : Variable de longitudes dans le domaine sélectionné. 49 % * Latitudes : Variable de latitudes dans le domaine sélectionné. 50 % 51 % Cette fonction permet d'analyser les données EPSAT et de concaténer les 52 % cumuls de précipitations résultants. L'analyse s'effectue sur une seule 53 % saison, sur tous les fichiers ou entre deux dates prédéfinies. 54 54 % 55 55 % EXAMPLES … … 103 103 % - jaclod 2011-07-29 104 104 % 105 % * R evision finale du stage du mois de juillet 2011.105 % * Révision finale du stage du mois de juillet 2011. 106 106 % 107 107 % - jaclod 2011-07-27 … … 111 111 % - jaclod 2011-07-21 112 112 % 113 % * Cr eation en se basant sut la fonction intensityMSG_concat deja113 % * Création en se basant sur la fonction intensityMSG_concat déjà 114 114 % existante. 115 % * Compatibilit eavec des fichiers 'extracted'.115 % * Compatibilité avec des fichiers 'extracted'. 116 116 % 117 117 %- … … 136 136 end 137 137 138 % Sauvegarde de la variable 'Annee' sous forme de caract eres.138 % Sauvegarde de la variable 'Annee' sous forme de caractÚres. 139 139 annee = num2str(Annee); 140 140 … … 146 146 %%%%%%%%%%%%%%%%%%%%%%%%%%% 147 147 148 % Les boucles se realisent de diff erentes facons selon la selection ou non148 % Les boucles se realisent de différentes façons selon la sélection ou non 149 149 % de jours. 150 150 151 % Si le nombre d'arguments est supérieur a 8 c'est qu'une s election est152 % demand ee. Sinon, on analyse tous les fichiers present dans le repertoire151 % Si le nombre d'arguments est supérieur a 8 c'est qu'une sélection est 152 % demandée. Sinon, on analyse tous les fichiers present dans le répertoire 153 153 % EPSAT. 154 154 if nargin > 8; … … 161 161 for Mois = Mois_start : Mois_stop; 162 162 163 % Récupération de la variable 'Mois' sous forme de caract eres.163 % Récupération de la variable 'Mois' sous forme de caractÚres. 164 164 if Mois < 10; 165 165 mois = ['0' num2str(Mois)]; … … 187 187 for Jour = Jour_ini : Jour_fin; 188 188 189 % Récupération de la variable 'Jour' sous forme de caract eres.189 % Récupération de la variable 'Jour' sous forme de caractÚres. 190 190 if Jour < 10; 191 191 jour = ['0' num2str(Jour)]; … … 199 199 %%%%%% Analyse du fichier %%%%%% 200 200 201 % V erification que le fichier du jour existe bien. Si ce n'est201 % Vérification que le fichier du jour existe bien. Si ce n'est 202 202 % pas le cas un message d'avertissement est donne. Sinon, on 203 203 % peut faire l'analyse. 204 % Cette v erification differe selon le type de fichier en raison205 % d'un changement de r epertoire et de nom.204 % Cette vérification diffÚre selon le type de fichier en raison 205 % d'un changement de répertoire et de nom. 206 206 207 207 switch ncfilesset … … 228 228 disp(['iii : Analyse du fichier surf-rr_epsat-sg_multi-sat_010d_30min_' annee mois jour '_v3.1-02c.nc.']); 229 229 230 % Lecture du fichier NetCDF, r ecuperation des231 % donn ees et des variables.230 % Lecture du fichier NetCDF, récupération des 231 % données et des variables. 232 232 [PluieEPSAT, Temps, Longitudes, Latitudes] = EPSATread(ncfilesset, fullfilename); 233 233 234 % Extraction des donn ees.234 % Extraction des données. 235 235 [PluieEPSAT, Temps, Longitudes, Latitudes] = extractedmatrixdata(PluieEPSAT, Temps, Longitudes, Latitudes, Temps(1), Temps(size(Temps,1)), lonmin, lonmax, latmin, latmax); 236 236 237 %%%%%% Changement de r esolution %%%%%%237 %%%%%% Changement de résolution %%%%%% 238 238 % Si longresol et/ou latresol ont pour valeur 0, 239 % alors on r ecupere la valeur de la resolution239 % alors on récupÚre la valeur de la résolution 240 240 % initiale pour ne pas faire de changement. 241 241 if longresol == 0; … … 247 247 end 248 248 249 % Si la r esolution demandee est differente de celle250 % initiale, alors on interpole les donn ees avec la249 % Si la résolution demandée est différente de celle 250 % initiale, alors on interpole les données avec la 251 251 % fonction spatial resolution. 252 252 if longresol ~= size(PluieEPSAT,2) || latresol ~= size(PluieEPSAT,3); … … 290 290 disp(['iii : Analyse du fichier extracted-surf-rr_epsat-sg_multi-sat_010d_30min_' annee mois jour '_v3.1-02c.nc.']); 291 291 292 % Lecture du fichier NetCDF, r ecuperation des293 % donn ees et des variables.292 % Lecture du fichier NetCDF, récupération des 293 % données et des variables. 294 294 [PluieEPSAT, Temps, Longitudes, Latitudes] = EPSATread(ncfilesset, fullfilename); 295 295 296 % Pas d'extraction des donn ees.296 % Pas d'extraction des données. 297 297 298 298 %%%%%% Changement de resolution %%%%%% 299 299 % Si longresol et/ou latresol ont pour valeur 0, 300 % alors on r ecupere la valeur de la resolution300 % alors on récupÚre la valeur de la resolution 301 301 % initiale pour ne pas faire de changement. 302 302 if longresol == 0; … … 308 308 end 309 309 310 % Si la resolution demand ee est differente de celle311 % initiale, alors on interpole les donn ees avec la310 % Si la resolution demandée est différente de celle 311 % initiale, alors on interpole les données avec la 312 312 % fonction spatial resolution. 313 313 if longresol ~= size(PluieEPSAT,2) || latresol ~= size(PluieEPSAT,3); … … 345 345 346 346 otherwise 347 % Cas impossible. Erreur deja donn ee.347 % Cas impossible. Erreur deja donnée. 348 348 end 349 349 … … 354 354 else 355 355 356 %%%%% Recherche des mois de donn ees %%%%%357 % R epertoire correspondant aux fichiers EPSAT de l'annee en question358 % diff erents selon le type de fichier.356 %%%%% Recherche des mois de données %%%%% 357 % Répertoire correspondant aux fichiers EPSAT de l'année en question 358 % différents selon le type de fichier. 359 359 switch ncfilesset 360 360 … … 370 370 path(path,repertoireEPSATsaison); 371 371 372 % On cherche les dossier dans ce dernier r epertoire correspondant aux373 % mois dont nous disposons des donn ees.372 % On cherche les dossier dans ce dernier répertoire correspondant aux 373 % mois dont nous disposons des données. 374 374 listdir = dir(repertoireEPSATsaison); 375 375 376 % Nombre de dossier. Attention les deux premiers r esultats sont '.' et376 % Nombre de dossier. Attention les deux premiers résultats sont '.' et 377 377 % '..' et ne compte donc pas comme dossier de fichiers. 378 378 nbdir = numel(listdir)-2; … … 381 381 for numdir = 1 : nbdir; 382 382 383 % Récupération du numero du mois sous forme de caract eres.383 % Récupération du numero du mois sous forme de caractÚres. 384 384 mois = listdir(numdir+2).name; 385 385 386 % R epertoire du mois correspondant.386 % Répertoire du mois correspondant. 387 387 repertoireEPSATmois = [repertoireEPSATsaison '/' mois]; 388 388 … … 406 406 disp(['iii : Analyse du fichier ' listncfiles(numfiles).name '.']); 407 407 408 % Lecture du fichier NetCDF, r ecuperation des donnees et408 % Lecture du fichier NetCDF, récupération des données et 409 409 % des variables. 410 410 [PluieEPSAT, Temps, Longitudes, Latitudes] = EPSATread(ncfilesset, fullfilename); … … 413 413 414 414 case 'normal' 415 % Extraction des donn ees.415 % Extraction des données. 416 416 [PluieEPSAT, Temps, Longitudes, Latitudes] = extractedmatrixdata(PluieEPSAT, Temps, Longitudes, Latitudes, Temps(1), Temps(size(Temps,1)), lonmin, lonmax, latmin, latmax); 417 417 … … 424 424 %%%%%% Changement de resolution %%%%%% 425 425 % Si longresol et/ou latresol ont pour valeur 0, alors on 426 % r ecupere la valeur de la resolution initiale pour ne pas426 % récupÚre la valeur de la résolution initiale pour ne pas 427 427 % faire de changement. 428 428 if longresol == 0; … … 434 434 end 435 435 436 % Si la r esolution demandee est differente de celle437 % initiale, alors on interpole les donn ees avec la fonction436 % Si la résolution demandée est différente de celle 437 % initiale, alors on interpole les données avec la fonction 438 438 % spatial resolution. 439 439 if longresol ~= size(PluieEPSAT,2) || latresol ~= size(PluieEPSAT,3); -
trunk/src/essailai.m
r634 r635 106 106 % http://www.mathworks.com/support/tech-notes/1200/1212.html 107 107 % 108 % * add info of Matlab Statis cal tool box (see108 % * add info of Matlab Statistical tool box (see 109 109 % 110 110 % - fplod 20101206T112730Z aedon.locean-ipsl.upmc.fr (Darwin) … … 159 159 latmax=-13.402; 160 160 latmin=-10.455; 161 % ++ for cage au domaine initial161 % ++ forçage au domaine initial 162 162 lonmax=max(lon_value); 163 163 lonmin=min(lon_value); -
trunk/src/evolution_msg.m
r634 r635 112 112 % - fplod 20100726T160540Z aedon.locean-ipsl.upmc.fr (Darwin) 113 113 % 114 % * suppress usage of netcdf.open (might be used on climserv114 % * suppress usage of netcdf.open (might be used on ClimServ 115 115 % but side effect on zeus running matlab) 116 116 % … … 243 243 % - détermination des indices correspondants à la boite 244 244 % nb : on procéde ainsi pour limiter le nb de données à lire 245 % mais cela suppose bien sûr que tous les fich ers ont les mêmes245 % mais cela suppose bien sûr que tous les fichiers ont les mêmes 246 246 % caractéristiques (ce qui n'est pas vérifié ici) 247 247 … … 377 377 xlabel('date','fontsize',8) 378 378 ylabel('nb pixels froids'); 379 title(['evolution du nb de pixels froids dans les donn ees MSG entre ', times_str(1,:), ' et ', times_str(size(times_str,1),:)]);379 title(['evolution du nb de pixels froids dans les données MSG entre ', times_str(1,:), ' et ', times_str(size(times_str,1),:)]); 380 380 381 381 % sauvegarde de la figure -
trunk/src/extract_amsu.pro
r634 r635 162 162 ; - lelod 20120718 163 163 ; 164 ; * extension de extract_amsua à amsu a et b valid ee sur un cas test164 ; * extension de extract_amsua à amsu a et b validée sur un cas test 165 165 ; en direct (sans passer par traite_amsuab.sh) avec b3 166 166 ; … … 253 253 ; 254 254 ; * remove blank in output filename 255 ; * revision of arti cifial example with use_amsua=0256 ; * add arti cifial example with use_amsua=1 and try (but fail) to255 ; * revision of artificial example with use_amsua=0 256 ; * add artificial example with use_amsua=1 and try (but fail) to 257 257 ; make it work on loholt1 258 258 ; * remove length path dependencies using IDL function file_basename … … 304 304 END 305 305 ELSE : BEGIN 306 print, 'nb de fich ers', size(files_list,/DIMENSION)306 print, 'nb de fichiers', size(files_list,/DIMENSION) 307 307 END 308 308 ENDCASE … … 316 316 tbmin=100 317 317 tbmax=350 318 PRINT, 'www : d ebut programme extract_amsu',SYSTIME()318 PRINT, 'www : début programme extract_amsu',SYSTIME() 319 319 320 320 jpie = n_elements(xxe) … … 328 328 ; ouverture des fichiers liste (année, mois, jour, tous satellites) pour 329 329 ; chaque instrument 330 ; boucle sur les elements de la liste330 ; boucle sur les éléments de la liste 331 331 desc=0 332 332 msg = report(['iii : ' + routine + ' : traitement du jour' $ … … 337 337 338 338 IF key_performance EQ 1 THEN BEGIN 339 msg = report(['ppp : ' + routine + ' : dur ee intermediaire demarrage boucle sur fichier ' $339 msg = report(['ppp : ' + routine + ' : durée intermédiaire démarrage boucle sur fichier ' $ 340 340 + string(SYSTIME(1)-time1,format='(F12.6)')]) 341 341 ENDIF … … 347 347 COMMON amsua_data ,ama_scan 348 348 IF key_performance EQ 1 THEN BEGIN 349 msg = report(['ppp : ' + routine + ' : dur ee intermediaire ouverture et lecture du fichier' $349 msg = report(['ppp : ' + routine + ' : durée intermédiaire ouverture et lecture du fichier' $ 350 350 + string(SYSTIME(1)-time1,format='(F12.6)')]) 351 351 ENDIF … … 393 393 n_scan=nb_scan 394 394 nb_fov=nb[1] ; nb pixels dans la fauchée 395 nbpix = nb_fov ; nb pixels dans la fauch ee AMSUB395 nbpix = nb_fov ; nb pixels dans la fauchée AMSUB 396 396 ; extraction du canal traité dans un domaine enveloppant la zone choisie 397 397 nosat=amb_head.h_satid ; numéro du satellite NOAA (15 a 19) ou METOP 2 … … 443 443 desc=desc+1 444 444 ; 445 ; correction nadir des données. En principe le 17 est eliminedes listes445 ; correction nadir des données. En principe le 17 est éliminé des listes 446 446 isat=0 447 447 if nosat eq 15 then begin … … 455 455 456 456 ch_nadir=fltarr(nbpix,nzon) 457 landseamask=intarr(nbpix,nzon)+2 ; valeur hors zone s electionnée457 landseamask=intarr(nbpix,nzon)+2 ; valeur hors zone sélectionnée 458 458 IF key_performance EQ 1 THEN BEGIN 459 459 msg = report(['ppp : ' + routine + ' : durée intermédiaire boucle sur les points du fichier, correction nadir ' $ … … 475 475 ; approximation: 1km= 1deg/100, et on considÚre le quart en lon et lat 476 476 ; de la surface du pixel pour optimiser la localisation du centre du 477 ; pixel attention approximation brutale des distances en fractions de degre477 ; pixel attention approximation brutale des distances en fractions de degré 478 478 ; recherche de la cÃŽte par rapport à la résolution AMSUA 479 479 xind=where (xxutile ge amalon[ifo,isc]-swath[ifo]/400. and xxutile le amalon[ifo,isc]+swath[ifo]/400.,nxlandsea) … … 496 496 endfor 497 497 IF key_performance EQ 1 THEN BEGIN 498 msg = report(['ppp : ' + routine + ' : dur ï¿œe intermediaire fin boucle ' $498 msg = report(['ppp : ' + routine + ' : durée intermédiaire fin boucle ' $ 499 499 + string(SYSTIME(1)-time1,format='(F12.6)')]) 500 500 ENDIF … … 520 520 fovgrid=indgen(n_elements(tbgrid))+1 521 521 ;print,'wwwtest: nb points fov interpolés ',n_elements(tbgrid) 522 ; sélection des taches au sol situées dans la zone d'intér et522 ; sélection des taches au sol situées dans la zone d'intérêt 523 523 zone=where((longrid ge lonmin) and (longrid le lonmax) $ 524 524 and (latgrid ge latmin) and (latgrid le latmax) and (tbgrid gt tbmin) and (tbgrid lt tbmax), npt) … … 574 574 endelse 575 575 endfor 576 desc=desc+1 ; incr ementation du numero de l'orbite576 desc=desc+1 ; incrémentation du numéro de l'orbite 577 577 endif 578 578 ; -
trunk/src/extract_amsua.pro
r634 r635 11 11 ; =========== 12 12 ; 13 ; prgm de lecture des fichiers AMSU (A seulement, avalider avant de14 ; g eneraliser pour amsub aussi)15 ; 16 ; d ecode les noms des fichiers donnï¿œs en argument dans **files_list**13 ; prgm de lecture des fichiers AMSU (A seulement, à valider avant de 14 ; généraliser pour amsub aussi) 15 ; 16 ; décode les noms des fichiers données en argument dans **files_list** 17 17 ; dans la date choisie, puis appelle le prgm de lecture 18 18 ; 19 ; utilise les tableaux bate, xxe, yye dï¿œfinis dans le common :file:`cm_project.pro` remplis par :func:`file_bathy_to_mem` 20 ; 21 ; appelle :ref:`interpol_correc.pro`, qui fournit les fonctions de correction au 22 ; nadir et les applique, en fonction du masque terre-mer issu de la 23 ; carte de bathymetrie de S. Masson 24 ; 25 ; applique une interpolation tenant compte de la dimension de la tache 26 ; au sol selon la position dans la fauchee 27 ; 28 ; ecrit les donnees pour la zone (lat/long) choisie 19 ; utilise les tableaux bate, xxe, yye définis dans le common 20 ; :file:`cm_project.pro` remplis par :func:`file_bathy_to_mem` 21 ; 22 ; appelle :ref:`interpol_correc.pro`, qui fournit les fonctions de correction 23 ; au nadir et les applique, en fonction du masque terre-mer issu de la 24 ; carte de bathymétrie de S. Masson 25 ; 26 ; applique une interpolation tenant compte de la dimension de la tâche 27 ; au sol selon la position dans la fauchée 28 ; 29 ; écrit les données pour la zone (lat/long) choisie 29 30 ; 30 31 ; ++ le fichier de sortie contient dans l'ordre mm, jj (jour de 31 ; l'ann ee), le temps (identique pour les points d'une meme fauchee), le32 ; l'année), le temps (identique pour les points d'une même fauchée), le 32 33 ; no satellite, le no de fov (1 a 40 ou 1 a 90), long, lat, tb 33 34 ; 34 ; Les valeurs manquantes sont cod ï¿œes par NaN.35 ; Les valeurs manquantes sont codées par NaN. 35 36 ; 36 37 ; .. only:: man … … 161 162 ; % Program caused arithmetic error: Floating illegal operand 162 163 ; 163 ; traiter les longitudes autour de 180 degr es (passage de 180 a -180)164 ; traiter les longitudes autour de 180 degrés (passage de 180 a -180) 164 165 ; interpolswath ne gere pas cette situation 165 166 ; 166 ; lever le doute sur le contenu du fichier ï¿œcrit par le printf (je (fplod)167 ; crains des z eros louches!!).louche167 ; lever le doute sur le contenu du fichier écrit par le printf (je (fplod) 168 ; crains des zéros louches!!). louche 168 169 ; 169 170 ; vï¿œrifier que pas NaN dans les lignes ï¿œcrites … … 185 186 ; check args 186 187 ; 187 ; d ecrire la limitation avec les seuils188 ; décrire la limitation avec les seuils 188 189 ; 189 190 ; EVOLUTIONS … … 201 202 ; - lelod 20120525 202 203 ; 203 ; * revisite de la correction nadir, calcul ee par satellite204 ; * revisite de la correction nadir, calculée par satellite 204 205 ; utilisation du no de satellite lu dans le fichier pour choix de la 205 206 ; correction 206 ; pb pour Metop: pas lu par read_amsua1c, et pas de donn ee AQUA dans207 ; pb pour Metop: pas lu par read_amsua1c, et pas de donnée AQUA dans 207 208 ; la bdd 208 209 … … 235 236 ; 236 237 ; * modif lecture du fichier bathy (ETOPO) pour limiter le temps 237 ; necessaire. Introduction de coordonn ees limite dans initncdf, puis238 ; necessaire. Introduction de coordonnées limite dans initncdf, puis 238 239 ; domdef 239 240 ; 240 ; Attention, si on change la zone, il faut changer les coordonn ees!!!241 ; Attention, si on change la zone, il faut changer les coordonnées!!! 241 242 ; 242 243 ; - lelod 20111215 243 244 ; 244 245 ; * tests de fonctionnement effectues: la correction nadir est 245 ; correctement implement ee246 ; 247 ; l'interpolation de la fauch ee fonctionne246 ; correctement implementée 247 ; 248 ; l'interpolation de la fauchée fonctionne 248 249 ; mais attention test sur la longitude code en dur: 249 ; pbs avec les fauch ees qui traversent le meridien 180deg!!!!250 ; pbs avec les fauchées qui traversent le meridien 180deg!!!! 250 251 ; l'interpolation ajoute des points parasites dans la zone... 251 252 ; … … 264 265 ; - lelod 20111211 265 266 ; 266 ; * r eintegre les modules de correct_nadir_amsu dans extract267 ; pr evu decodage de numch pour connaitre le nom instrument et le268 ; numero du canal (pas fini, au d ebut) --> afaire aussi dans les269 ; ssprgm appel es (interpol_correc)270 ; esp ere que c'est le dernier avatar de cette !!!!?XX^! de271 ; cha ine de traitement AMSU267 ; * réintÚgre les modules de correct_nadir_amsu dans extract 268 ; prévu décodage de numch pour connaître le nom instrument et le 269 ; numero du canal (pas fini, au début) --> à faire aussi dans les 270 ; ssprgm appelés (interpol_correc) 271 ; espÚre que c'est le dernier avatar de cette !!!!?XX^! de 272 ; chaîne de traitement AMSU 272 273 ; 273 274 ; - fplod 20111209T125312Z aedon.locean-ipsl.upmc.fr (Darwin) 274 275 ; 275 276 ; * chgt de terminologie 276 ; * ajout param etre numch277 ; * ajout paramÚtre numch 277 278 ; * transition pour utilisation de :ref:`mem_to_file_amsu_t2` 278 279 ; 279 280 ; - lelod 20111121 280 281 ; 281 ; * introduction du param etre "descending" (orbite descendante 1,282 ; * introduction du paramÚtre "descending" (orbite descendante 1, 282 283 ; montante 0) dans le fichier de sortie : a tester! 283 284 ; … … 307 308 ; 308 309 ; * remove blank in output filename 309 ; * revision of arti cifial example with use_amsua=0310 ; * add arti cifial example with use_amsua=1 and try (but fail) to310 ; * revision of artificial example with use_amsua=0 311 ; * add artificial example with use_amsua=1 and try (but fail) to 311 312 ; make it work on loholt1 312 313 ; * remove length path dependencies using IDL function file_basename … … 359 360 END 360 361 ELSE : BEGIN 361 print, 'nb de fich ers', size(files_list,/DIMENSION)362 print, 'nb de fichiers', size(files_list,/DIMENSION) 362 363 END 363 364 ENDCASE … … 379 380 ; de l'appeler a chaque fichier....) 380 381 interpol_correc,numch,nbpixel,cor_l,cor_s,swath,track 381 ; ouverture des fichiers liste (ann ee, mois, jour, tous satellites) pour382 ; ouverture des fichiers liste (année, mois, jour, tous satellites) pour 382 383 ; chaque instrument 383 384 ; boucle sur les elements de la liste … … 391 392 392 393 IF key_performance EQ 1 THEN BEGIN 393 msg = report(['ppp : ' + routine + ' : dur ee intermediaire demarrage boucle sur fichier ' $394 msg = report(['ppp : ' + routine + ' : durée intermédiaire démarrage boucle sur fichier ' $ 394 395 + string(SYSTIME(1)-time1,format='(F12.6)')]) 395 396 ENDIF … … 400 401 COMMON amsua_data ,ama_scan 401 402 IF key_performance EQ 1 THEN BEGIN 402 msg = report(['ppp : ' + routine + ' : dur ee intermediaire ouverture et lecture du fichier' $403 msg = report(['ppp : ' + routine + ' : durée intermédiaire ouverture et lecture du fichier' $ 403 404 + string(SYSTIME(1)-time1,format='(F12.6)')]) 404 405 ENDIF … … 406 407 if (flag1 eq 0) then goto, labfile 407 408 na=SIZE(reform(ama_scan.btemps[0,*,*])) 408 na_scan=na[2] ; nb lignes (fauch ees) dans l'orbite409 na_fov=na[1] ; nb points dans la fauch ee409 na_scan=na[2] ; nb lignes (fauchées) dans l'orbite 410 na_fov=na[1] ; nb points dans la fauchée 410 411 nbpix= na_fov 411 412 nosat=ama_head.h_satid ; numero du satellite NOAA (15 a 19) ou METOP 2 412 413 print,'NUMERO DU SATELLITE ',nosat 413 414 print,'INSTRUMENT',ama_head.h_instrument 414 ; nb pixels dans la fauch ee AMSUA415 ; nb pixels dans la fauchée AMSUA 415 416 print,'na=', na 416 417 print,'nbpix=', nbpix … … 428 429 ; 429 430 ; on lit la structure et on extrait les infos: temps, longitude, 430 ; latitude, et les Tbs des diff erents canaux (15 pour AMSUA)431 ; latitude, et les Tbs des différents canaux (15 pour AMSUA) 431 432 432 433 ; extraction du canal traite dans un domaine enveloppant la zone choisie … … 439 440 ttt=REFORM(ama_scan.scnlintime/3600000.) 440 441 jnd=where(amalong[midpix,*] gt lonmin-15 and amalong[midpix,*] lt lonmax+15 and amalati[midpix,*] gt latmin-15 and amalati[midpix,*] lt latmax+15 ,nzon) 441 msg = report(['iii : ' + routine + ' : nb de points du fichier dans le domaine g eographique +15deg ' + string(nzon,format='(I8.8)')])442 msg = report(['iii : ' + routine + ' : nb de points du fichier dans le domaine géographique +15deg ' + string(nzon,format='(I8.8)')]) 442 443 IF key_performance EQ 1 THEN BEGIN 443 msg = report(['ppp : ' + routine + ' : dur ï¿œe intermediaire avant test nzon' $444 msg = report(['ppp : ' + routine + ' : durée intermédiaire avant test nzon' $ 444 445 + string(SYSTIME(1)-time1,format='(F12.6)')]) 445 446 ENDIF … … 453 454 print,'dimension tableaux extraits',dims 454 455 n_scan=dims[1] 455 PRINT,'il y a des donn ees dans la region '456 PRINT,'il y a des données dans la region ' 456 457 amaday=REFORM(ama_scan.scnlindy) 457 458 amafov= fovy_1 … … 466 467 ; endelse 467 468 ; 468 ; correction nadir des donn ees. En principe le 17 est elimine des listes469 ; correction nadir des données. En principe le 17 est elimine des listes 469 470 isat=0 470 471 if nosat eq 15 then begin … … 477 478 if nosat eq 2 then isat=4 478 479 ch_nadir=fltarr(nbpix,nzon) 479 landseamask=intarr(nbpix,nzon)+2 ; valeur hors zone selectionn ee480 landseamask=intarr(nbpix,nzon)+2 ; valeur hors zone selectionnée 480 481 IF key_performance EQ 1 THEN BEGIN 481 msg = report(['ppp : ' + routine + ' : dur ï¿œe intermediaire boucle sur les points du fichier, correction nadir ' $482 msg = report(['ppp : ' + routine + ' : durée intermédiaire boucle sur les points du fichier, correction nadir ' $ 482 483 + string(SYSTIME(1)-time1,format='(F12.6)')]) 483 484 ENDIF 484 485 485 486 for isc=0L,nzon-1L do begin 486 ;recherche de la zone xxe,yye englobant la fauch ee487 ;recherche de la zone xxe,yye englobant la fauchée 487 488 utilex=where(xxe ge amalon[midpix,isc]-15 and xxe le amalon[midpix,isc]+15,nxu) 488 489 if nxu ne 0 then begin … … 518 519 endfor 519 520 IF key_performance EQ 1 THEN BEGIN 520 msg = report(['ppp : ' + routine + ' : dur ï¿œe intermediaire fin boucle ' $521 msg = report(['ppp : ' + routine + ' : durée intermédiaire fin boucle ' $ 521 522 + string(SYSTIME(1)-time1,format='(F12.6)')]) 522 523 ENDIF … … 524 525 525 526 ; appel a interpolswath pour ajuster les pixels amsua sur une grille 526 ; réguliere dans la fauch ee527 ; et selection de la zone conserv ee527 ; réguliere dans la fauchée 528 ; et selection de la zone conservée 528 529 ; attention test sur la longitude code en dur: 529 ; pbs avec les fauch ees qui traversent le meridien 180deg!!!!530 ; pbs avec les fauchées qui traversent le meridien 180deg!!!! 530 531 ; l'interpolation ajoute des points parasites dans la zone... 531 532 nbgrid=0 … … 545 546 fovgrid=indgen(n_elements(tbgrid))+1 546 547 ;print,'wwwtest: nb points fov interpole ',n_elements(tbgrid) 547 ; selection des taches au sol situ ees dans la zone d'interet548 ; selection des taches au sol situées dans la zone d'interet 548 549 zone=where((longrid ge lonmin) and (longrid le lonmax) $ 549 550 and (latgrid ge latmin) and (latgrid le latmax) and (tbgrid gt tbmin) and (tbgrid lt tbmax), npt) … … 571 572 endfor 572 573 IF key_performance EQ 1 THEN BEGIN 573 msg = report(['ppp : ' + routine + ' : dur ï¿œe intermediaire fin interpolation et selection des points de la zone ' $574 msg = report(['ppp : ' + routine + ' : durée intermédiaire fin interpolation et selection des points de la zone ' $ 574 575 + string(SYSTIME(1)-time1,format='(F12.6)')]) 575 576 ENDIF … … 605 606 endif 606 607 IF key_performance EQ 1 THEN BEGIN 607 msg = report(['ppp : ' + routine + ' : dur ï¿œe intermediaire au passage au fichier suivant ' $608 msg = report(['ppp : ' + routine + ' : durée intermédiaire au passage au fichier suivant ' $ 608 609 + string(SYSTIME(1)-time1,format='(F12.6)')]) 609 610 ENDIF -
trunk/src/extract_amsuab.pro
r634 r635 15 15 ; read :file:`${PROJECT_ID}/list_fileb` inside :ref:`traite_amsuab.sh`. 16 16 ; 17 ; d ecode les noms des fichiers dans la date choisie, puis17 ; décode les noms des fichiers dans la date choisie, puis 18 18 ; appelle le prgm de lecture 19 19 ; 20 ; ecrit les donnees pour la zone (lat/long) choisie20 ; écrit les données pour la zone (lat/long) choisie 21 21 ; 22 22 ; le fichier de sortie contient dans l'ordre mm, jj (jour de 23 ; l'ann ee), le temps (identique pour les points d'une meme fauchee), le23 ; l'année), le temps (identique pour les points d'une même fauchée), le 24 24 ; no satellite, le no de fov (1 a 40 ou 1 a 90), long, lat, 25 25 ; tb1,... tbn … … 118 118 ; - lelod 20111121 119 119 ; 120 ; * introduction du param etre "descending" (orbite descendante 1,120 ; * introduction du paramÚtre "descending" (orbite descendante 1, 121 121 ; montante 0) dans le fichier de sortie : a tester! 122 122 ; … … 144 144 ; 145 145 ; * remove blank in output filename 146 ; * revision of arti cifial example with use_amsua=0147 ; * add arti cifial example with use_amsua=1 and try (but fail) to146 ; * revision of artificial example with use_amsua=0 147 ; * add artificial example with use_amsua=1 and try (but fail) to 148 148 ; make it work on loholt1 149 149 ; * remove length path dependencies using IDL function file_basename … … 188 188 ; ajouter MHS 189 189 ; 190 ; eviter la creation d'un fichier vide (si pas de points dans la zone)190 ; éviter la création d'un fichier vide (si pas de points dans la zone) 191 191 ; 192 192 ; tester la cohérence entre les fichiers présents dans list_filea et list_fileb … … 240 240 ; 241 241 242 print, 'ouverture pour ecriture de ', fileout242 print, 'ouverture pour écriture de ', fileout 243 243 openw, lun_obs, fileout, /get_lun, ERROR = error 244 244 IF (error NE 0) then begin … … 251 251 252 252 253 ; ouverture des fichiers liste (ann ee, mois, jour, tous satellites) pour253 ; ouverture des fichiers liste (année, mois, jour, tous satellites) pour 254 254 ; chaque instrument 255 ; boucle sur les elements de la liste256 257 ; lecture de la liste des fichiers AMSU-A si n ecessaire255 ; boucle sur les éléments de la liste 256 257 ; lecture de la liste des fichiers AMSU-A si nécessaire 258 258 if (use_amsua EQ 1) THEN BEGIN 259 259 list_filea = project_id_env+'list_filea' … … 274 274 endif 275 275 276 ; lecture des fichiers de donn ees276 ; lecture des fichiers de données 277 277 ; AMSUB 278 278 list_fileb=project_id_env+'list_fileb' … … 304 304 if (flag1 eq 0) then goto, labfile 305 305 na=SIZE(reform(ama_scan.btemps[0,*,*])) 306 na_scan=na[2] ; nb lignes (fauch ees) dans l'orbite307 na_fov=na[1] ; nb points dans la fauch ee306 na_scan=na[2] ; nb lignes (fauchées) dans l'orbite 307 na_fov=na[1] ; nb points dans la fauchée 308 308 satt_ide=ama_head.h_satid 309 309 tt=REFORM(ama_scan.scnlintime/3600000.) 310 nbpix_a = na_fov ; nb pixels dans la fauch ee AMSUA310 nbpix_a = na_fov ; nb pixels dans la fauchée AMSUA 311 311 endif 312 312 … … 318 318 319 319 nb=SIZE(reform(amb_scan.btemps[0,*,*])) 320 nb_scan=nb[2] ; nb lignes (ou fauch ees)321 nb_fov=nb[1] ; nb pixels dans la fauch ee322 nbpix_b = nb_fov ; nb pixels dans la fauch ee AMSUB320 nb_scan=nb[2] ; nb lignes (ou fauchées) 321 nb_fov=nb[1] ; nb pixels dans la fauchée 322 nbpix_b = nb_fov ; nb pixels dans la fauchée AMSUB 323 323 nosat=amb_head.h_satid ; on le lit dans le fichier, donc pas besoin de l'info dans la liste 324 324 tt=REFORM(amb_scan.scnlintime/3600000.) 325 325 fovb=indgen(nbpix_b - 1 ) + 1 326 326 ; dans le cas use_amsua=1 : 327 ; s election des lignes amsub qui minimisent la distance avec le centre327 ; sélection des lignes amsub qui minimisent la distance avec le centre 328 328 ; des lignes amsua 329 329 if (use_amsua EQ 1 ) THEN BEGIN … … 358 358 ; 359 359 ; on lit la structure et on extrait les infos: temps, longitude, 360 ; latitude, et les Tbs des diff erents canaux (15 pour AMSUA, 5 pour AMSUB)360 ; latitude, et les Tbs des différents canaux (15 pour AMSUA, 5 pour AMSUB) 361 361 bmch1_1=REFORM(amb_scan.btemps[0,*,*]/100.) 362 362 bmch2_1=REFORM(amb_scan.btemps[1,*,*]/100.) … … 396 396 endif else begin 397 397 398 ; choix d'un pixel amsub sur 3 et une ligne synchronis ee avec amsua398 ; choix d'un pixel amsub sur 3 et une ligne synchronisée avec amsua 399 399 ; 400 400 bmzen_2=bmzen_1[fov,*] … … 466 466 ENDELSE 467 467 ;----------------- 468 ; ici on s electionne la zone definie468 ; ici on sélectionne la zone définie 469 469 ;----------------- 470 470 zone=where((amalon ge lonmin) and (amalon le lonmax) $ … … 509 509 ENDIF 510 510 511 ; ecriture des donnees ligne par ligne dans le fichier resultant511 ; écriture des données ligne par ligne dans le fichier résultant 512 512 nab=nn 513 513 ; 514 ; mm : mois, a recuperer dans les parametres514 ; mm : mois, à récupérer dans les paramÚtres 515 515 ; nosat: 15, 16 ou 17 516 516 print,'orbite',desc -
trunk/src/extract_nc.m
r634 r635 24 24 % avec NaN pour les valeurs d'erreur 25 25 % 26 % NB : 27 % - pour extraire une dimension entiÚre entrer NaN comme bornes min et max 28 % - var doit être un tableau de cellules 26 % .. note:: 27 % 28 % - pour extraire une dimension entiÚre entrer NaN comme bornes min et max 29 % - var doit être un tableau de cellules 29 30 % 30 31 % EXAMPLES … … 84 85 var_dim=getnc(file,dim); 85 86 86 % extrait la dimension a la taille demandee et la donne en sortie87 % extrait la dimension à la taille demandée et la donne en sortie 87 88 if (isnan(dim_max) & isnan(dim_min)) 88 89 ind=[1:length(var_dim)]; … … 107 108 end 108 109 109 %% Extraction des variables et sto kage pour la sortie110 %% Extraction des variables et stockage pour la sortie 110 111 for k=1:length(var) 111 112 ext_data=getnc(file,cell2str(var(k)),ind_min,ind_max,-1,-1,2,1,0); -
trunk/src/extract_netcdf_TRMM.sh
r634 r635 42 42 # ==== 43 43 # 44 # don't know hox Netcdffiles have been produced :45 # now longitude [-19.875,+9.875] lati dute [+24.875 , +0.125]44 # don't know hox netCDF files have been produced : 45 # now longitude [-19.875,+9.875] latitude [+24.875 , +0.125] 46 46 # 47 47 # coding rules -
trunk/src/extract_zone_nc.sh
r634 r635 61 61 # - fplod 20110531T101614Z cratos.locean-ipsl.upmc.fr (Linux) 62 62 # 63 # * corr dection of netCDF variable names63 # * correction of netCDF variable names 64 64 # * path of nco tools on locean* is /opt/bin cf. ticket 65 65 # https://zethos/glpi/index.php?redirect=tracking_1974 -
trunk/src/extractedmatrixdata.m
r634 r635 1 1 function [dataextracted, dim1extracted, dim2extracted, dim3extracted] = extractedmatrixdata(data, dim1, dim2, dim3, mindim1, maxdim1, mindim2, maxdim2, mindim3, maxdim3) 2 2 3 %extractedmatrixdata permet d'extraire les donn ees d'une matrice 3D ainsi4 %que ses variables apartir des bornes choisies pour chacune d'elles.3 %extractedmatrixdata permet d'extraire les données d'une matrice 3D ainsi 4 %que ses variables à partir des bornes choisies pour chacune d'elles. 5 5 6 6 % … … 16 16 % =========== 17 17 % 18 % - Donn ees d'entrees :18 % - Données d'entrées : 19 19 % 20 % * data : Donn ees initiales de la matrice 3D (dim1, dim2, dim3).20 % * data : Données initiales de la matrice 3D (dim1, dim2, dim3). 21 21 % * dim1 : Dimension 1 de la matrice 'data'. 22 22 % * dim2 : Dimension 2 de la matrice 'data'. 23 23 % * dim3 : Dimension 3 de la matrice 'data'. 24 % * mindim1 : Borne inf erieure pour l'extraction de la dimension 1.25 % * maxdim1 : Borne supérieure pour l'extraction de la dimension 1. 26 % * mindim2 : Borne inf erieure pour l'extraction de la dimension 2.27 % * maxdim2 : Borne supérieure pour l'extraction de la dimension 2. 28 % * mindim3 : Borne inf erieure pour l'extraction de la dimension 3.29 % * maxdim3 : Borne supérieure pour l'extraction de la dimension 3. 24 % * mindim1 : Borne inférieure pour l'extraction de la dimension 1. 25 % * maxdim1 : Borne supérieure pour l'extraction de la dimension 1. 26 % * mindim2 : Borne inférieure pour l'extraction de la dimension 2. 27 % * maxdim2 : Borne supérieure pour l'extraction de la dimension 2. 28 % * mindim3 : Borne inférieure pour l'extraction de la dimension 3. 29 % * maxdim3 : Borne supérieure pour l'extraction de la dimension 3. 30 30 % 31 % - Donn ees de sorties :31 % - Données de sorties : 32 32 % 33 % * dataextracted : Donn ees extraites de la matrice 3D initiale.33 % * dataextracted : Données extraites de la matrice 3D initiale. 34 34 % * dim1extracted : Dimension 1 extraite de la matrice 'dataextracted'. 35 35 % * dim2extracted : Dimension 2 extraite de la matrice 'dataextracted'. 36 36 % * dim3extracted : Dimension 3 extraite de la matrice 'dataextracted'. 37 37 % 38 % Cette fonction permet d'extraire les donn ees d'une matrice 3D ainsi39 % que ses variables apartir des bornes choisies pour chacune d'elles.38 % Cette fonction permet d'extraire les données d'une matrice 3D ainsi 39 % que ses variables à partir des bornes choisies pour chacune d'elles. 40 40 % 41 41 % EXAMPLES … … 52 52 % make it work with demo with MSG real file 53 53 % 54 % Message d'erreur ou d'avertissement lorsque les bornes d epassent les55 % donn ees. Avertir et prendre toutes les donnees ?54 % Message d'erreur ou d'avertissement lorsque les bornes dépassent les 55 % données. Avertir et prendre toutes les données ? 56 56 % 57 57 % EVOLUTIONS … … 69 69 % - jaclod 2011-07-26 70 70 % 71 % * R evision de la documentation et des commentaires.71 % * Révision de la documentation et des commentaires. 72 72 % 73 73 % - jaclod 2011-07-20 … … 77 77 % - jaclod 2011-07-12 78 78 % 79 % * Creation .79 % * Creation 80 80 % 81 81 %- … … 92 92 end 93 93 % 94 % On cherche les indices extr emes dans les matrices bornant les donnees95 % souhait ees. Pour cela on prend le premier indice tel que apartir96 % de celui-ci on d epasse la limite inferieure et le dernier indice tel94 % On cherche les indices extrêmes dans les matrices bornant les données 95 % souhaitées. Pour cela on prend le premier indice tel qu'à partir 96 % de celui-ci on dépasse la limite inférieure et le dernier indice tel 97 97 % qu'on est sous la limite supérieure. 98 98 indexmin1 = find(dim1 >= mindim1, 1, 'first'); … … 103 103 indexmax3 = find(dim3 <= maxdim3, 1, 'last'); 104 104 105 % Extraction des donn ees seulement entre les indices de bornes, pour les106 % diff erentes dimensions et pour la matrice de donnees.105 % Extraction des données seulement entre les indices de bornes, pour les 106 % différentes dimensions et pour la matrice de données. 107 107 dim1extracted = dim1(indexmin1:indexmax1); 108 108 dim2extracted = dim2(indexmin2:indexmax2); -
trunk/src/file_amsu_t2_to_mem.pro
r634 r635 39 39 ; result = file_amsu_t2_to_mem(yyyy, mm, dd, numch, lonmin, lonmax, latmin, latmax, testfilename) 40 40 ; 41 ; impression de contr ole : structure et 1re ligne de données:41 ; impression de contrÃŽle : structure et 1re ligne de données: 42 42 ; 43 43 ; .. code-block:: idl … … 60 60 ; ajouter de # dans les lignes d'entete 61 61 ; 62 ; à intégrer dans la chaine de traitement amsu62 ; à intégrer dans la chaîne de traitement amsu 63 63 ; 64 64 ; check args 65 65 ; 66 ; ecrire le module de dessin66 ; écrire le module de dessin 67 67 ; 68 68 ; EVOLUTIONS … … 88 88 ; - fplod 20111209T150657Z cratos (Linux) 89 89 ; 90 ; * suppression des param etres de zone géographique90 ; * suppression des paramÚtres de zone géographique 91 91 ; * ajout de nbpix dans la premiÚre ligne de header 92 92 ; * ajout d'une seconde ligne d'entete avec les coordonnées de la zone … … 186 186 } 187 187 ; 188 print, 'iii : inter ogation nb de lignes de ', fullfilename188 print, 'iii : interrogation nb de lignes de ', fullfilename 189 189 nrows = file_lines(fullfilename) - 2 190 190 ; -
trunk/src/file_bathy_to_mem.pro
r634 r635 13 13 ; =========== 14 14 ; 15 ; lit la carte de bathym etrie de S. Masson et remplit les tableaux du common ++15 ; lit la carte de bathymétrie de S. Masson et remplit les tableaux du common ++ 16 16 ; 17 17 ; .. only:: man or text … … 89 89 ; - lelod 20121127 90 90 ; 91 ; * introduction d'une interpolation bilin eaire de la topographie92 ; pas r eussi a faire marcher file_interp, donc creation du tableau91 ; * introduction d'une interpolation bilinéaire de la topographie 92 ; pas réussi à faire marcher file_interp, donc création du tableau 93 93 ; interpole à l'appel (tres rapide) sur la zone choisie 94 ; la zone est cod ee comme latmin, lonmin -marge; latmax, lonmax +marge95 ; marge cod e en dur = 1694 ; la zone est codée comme latmin, lonmin -marge; latmax, lonmax +marge 95 ; marge codée en dur = 16 96 96 ; 97 97 ; - fplod 20120416 -
trunk/src/generalscatterplot.m
r374 r635 2 2 3 3 %GENERALSCATTERPLOT est une fonction qui trace le diagramme de dispersion 4 %entre 2 variables et en sort les coefficient de regression lin eaire ainsi4 %entre 2 variables et en sort les coefficient de regression linéaire ainsi 5 5 %que le coefficient de correlation. 6 6 … … 16 16 % =========== 17 17 % 18 % - Donn ees d'entrees :18 % - Données d'entrées : 19 19 % 20 % * data1 : Matrice de donn ees de la premiere variable, qui sera21 % represente sur l'axe des ordonn ees du diagramme.22 % * data1 : Matrice de donn ees de la seconde variable, qui sera20 % * data1 : Matrice de données de la premiere variable, qui sera 21 % represente sur l'axe des ordonnées du diagramme. 22 % * data1 : Matrice de données de la seconde variable, qui sera 23 23 % represente sur l'axe des abscisses du diagramme. 24 % * nomvar1 (caract eres) : Nom et unite de la premiere variable (pour le24 % * nomvar1 (caractÚres) : Nom et unite de la premiere variable (pour le 25 25 % titre et axe). 26 % * nomvar2 (caract eres) : Nom et unite de la seconde variable (pour le26 % * nomvar2 (caractÚres) : Nom et unite de la seconde variable (pour le 27 27 % titre et axe). 28 % * infocompl (caract eres, facultatif) : Informations complementaires a28 % * infocompl (caractÚres, facultatif) : Informations complémentaires a 29 29 % mettre dans le titre (ex : 'sur une periode de 2 jours'). 30 30 % 31 % - Donn ees de sorties :31 % - Données de sorties : 32 32 % 33 33 % * coeffs : Vecteur de dimension 1*2 comportant les coefficients a et b 34 % de la regression lin eaire y = ax + b.34 % de la regression linéaire y = ax + b. 35 35 % * r2 : Coefficient de correlation. 36 36 % 37 37 % trace le diagramme de dispersion 38 % entre 2 variables et en sort les coefficient de regression lin eaire ainsi38 % entre 2 variables et en sort les coefficient de regression linéaire ainsi 39 39 % que le coefficient de correlation. 40 40 % … … 100 100 end 101 101 % 102 % On passe les donn ees sous forme de vecteur.102 % On passe les données sous forme de vecteur. 103 103 data1 = reshape(data1,1,[]); 104 104 data2 = reshape(data2,1,[]); … … 107 107 scatter(data2,data1,5,'filled'); 108 108 109 % Ajout d'une droite de regression lin eaire selon la methode des moindres110 % carr ees.109 % Ajout d'une droite de regression linéaire selon la methode des moindres 110 % carrées. 111 111 switch application 112 112 case {'matlab'} … … 119 119 end 120 120 121 % R ecuperation des coefficient de cette droite et du coefficient de121 % Récupération des coefficient de cette droite et du coefficient de 122 122 % correlation. 123 123 coeffs = polyfit(data2,data1,1); … … 128 128 ylabel(nomvar1); 129 129 130 % Ajout de titres selon le nombre d'arguments d'entr ees.130 % Ajout de titres selon le nombre d'arguments d'entrées. 131 131 if nargin == 5; 132 132 title(['Diagramme de dispersion entre les ' nomvar1 ' et les ' nomvar2 ' ' infocompl]); … … 141 141 %! clear all 142 142 %! varamma_startup 143 %! [coeffs, r2] = generalscatterplot(linspace(1,100*rand(1),100)+rand(1,100),linspace(1,50,100)+10*rand(1)*rand(1,100),'valeurs semi-al eatoires y', 'valeurs semi-aleatoires x', 'pour la demonstration');143 %! [coeffs, r2] = generalscatterplot(linspace(1,100*rand(1),100)+rand(1,100),linspace(1,50,100)+10*rand(1)*rand(1,100),'valeurs semi-aléatoires y', 'valeurs semi-aléatoires x', 'pour la démonstration'); -
trunk/src/geolocation_to_string.m
r634 r635 41 41 % ======== 42 42 % 43 % equivalent f onctionality :43 % equivalent functionality : 44 44 % :func:`geolocation_to_string_idl` (IDL) 45 45 % :ref:`geolocation_to_string_sh.sh` (shell script) … … 140 140 end 141 141 % 142 % conver tion lon and lat absolute values to string142 % conversion lon and lat absolute values to string 143 143 lon_string=num2str(abs(lon_value),'%7.2f') 144 144 lat_string=num2str(abs(lat_value),'%6.2f'); -
trunk/src/geolocation_to_string_idl.pro
r634 r635 51 51 ; ======== 52 52 ; 53 ; equivalent f onctionality :53 ; equivalent functionality : 54 54 ; :func:`geolocation_to_string_sh.sh` (shell script) 55 55 ; :func:`geolocation_to_string` (matlab/octave) when :samp:`look=filename` -
trunk/src/geolocation_to_string_sh.sh
r631 r635 76 76 # :ref:`traite_amsuab.sh` 77 77 # 78 # equivalent f onctionality :78 # equivalent functionality : 79 79 # :func:`geolocation_to_string_idl` with :samp:`look=filename` (IDL), 80 80 # :func:`geolocation_to_string` (matlab/octave) when :samp:`look=filename` … … 143 143 if [ ${#} -lt ${minargcount} ] 144 144 then 145 echo "eee : not enough targuments"145 echo "eee : not enough arguments" 146 146 echo "${usage}" 147 147 exit 1 -
trunk/src/get_amsu.sh
r634 r635 106 106 # .. todo:: 107 107 # 108 # make it work outside climserv108 # make it work outside ClimServ 109 109 # 110 110 # exit on error if some correction files do not exist ? … … 136 136 # 137 137 # * bug fix to handle correctly dates if translation in second on 9 digits 138 # (trailing 0 is automatical y interpreted as an octal number).138 # (trailing 0 is automatically interpreted as an octal number). 139 139 # ex = 20010801 140 140 # * bug fix to handle correctly dates if translation in second of begin … … 189 189 if [ ${#} -lt ${minargcount} ] 190 190 then 191 echo "eee : not enough targuments"191 echo "eee : not enough arguments" 192 192 echo "${usage}" 193 193 exit 1 -
trunk/src/get_epsat.sh
r634 r635 85 85 # how to know if there is enough place before ? 86 86 # 87 # need to belong to amma_eu group on climserv?87 # need to belong to amma_eu group on ClimServ ? 88 88 # 89 89 # SEE ALSO … … 101 101 # .. todo:: 102 102 # 103 # make it work outside climserv103 # make it work outside ClimServ 104 104 # 105 105 # exit on error if some correction files do not exist ? … … 126 126 # 127 127 # * bug fix to handle correctly dates if translation in second on 9 digits 128 # (trailing 0 is automatical y interpreted as an octal number).128 # (trailing 0 is automatically interpreted as an octal number). 129 129 # ex = 20010801 130 130 # * bug fix to handle correctly dates if translation in second of begin … … 179 179 if [ ${#} -lt ${minargcount} ] 180 180 then 181 echo "eee : not enough targuments"181 echo "eee : not enough arguments" 182 182 echo "${usage}" 183 183 exit 1 -
trunk/src/get_msg.sh
r634 r635 113 113 # .. todo:: 114 114 # 115 # make it work outside climserv115 # make it work outside ClimServ 116 116 # 117 117 # build/complete catalog … … 148 148 # 149 149 # * bug fix to handle correctly dates if translation in second on 9 digits 150 # (trailing 0 is automatical y interpreted as an octal number).150 # (trailing 0 is automatically interpreted as an octal number). 151 151 # ex = 20010801 152 152 # * bug fix to handle correctly dates if translation in second of begin … … 165 165 # 166 166 # * better handling of missing directories ans files 167 # * make it work on loholt1 ( climserv)167 # * make it work on loholt1 (ClimServ) 168 168 # * thanks to 169 169 # http://tldp.org/LDP/abs/html/comparison-ops.html for strings comparison … … 220 220 if [ ${#} -lt ${minargcount} ] 221 221 then 222 echo "eee : not enough targuments"222 echo "eee : not enough arguments" 223 223 echo "${usage}" 224 224 exit 1 -
trunk/src/get_msg_xrit.sh
r634 r635 255 255 # images des longitudes LONS absente 256 256 # 257 # J'essaie avec un crit ere ligne,colonne plutot que lat,lon257 # J'essaie avec un critÚre ligne, colonne plutÃŽt que lat,lon 258 258 # 259 259 # .. code-block:: bash 260 260 # 261 261 # readXRIT ${file_msg_xrit_gz} ${file_msg_xrit}.readXRIT.raw LINECOL 1 3712 1 3712 RAW CAL NOROT 262 # Zone ind eterminee : LINECOL262 # Zone indéterminée : LINECOL 263 263 # Choix possibles : LATLON ou LIGCOL 264 264 # … … 270 270 # 271 271 # readXRIT ${file_msg_xrit_gz} ${file_msg_xrit}.readXRIT.raw LIGCOL 1 2 1 2 RAW CAL NOROT 272 # images des longitudes LONS absente 272 # images des longitudes LONS absentes 273 273 # 274 274 # hyperlouche !! … … 276 276 # Je soupçonne une embrouille sur la localisation des fichiers LATS et LONS: 277 277 # 278 # ln -s /bdd/msg/software/read_xrit/readXRIT/LATS $(pwd) 279 # ln -s /bdd/msg/software/read_xrit/readXRIT/LONS $(pwd) 278 # ln -s /bdd/msg/software/read_xrit/readXRIT/LATS $(pwd)/ 279 # ln -s /bdd/msg/software/read_xrit/readXRIT/LONS $(pwd)/ 280 280 # readXRIT ${file_msg_xrit_gz} ${file_msg_xrit}.readXRIT.raw LIGCOL 1 2 1 2 RAW CAL NOROT 281 281 # … … 315 315 # ... 316 316 # 317 # make it work outside climserv317 # make it work outside ClimServ 318 318 # 319 319 # build/complete catalog … … 342 342 # 343 343 # * creation from get_msg.sh /bdd/AMMA/AOC-PARIS to sharp longitude range 344 # longit itude min = 25°W, 40°W needed to follow cyclones344 # longitude min = 25°W, 40°W needed to follow cyclones 345 345 # 346 346 #- … … 388 388 if [ ${#} -lt ${minargcount} ] 389 389 then 390 echo "eee : not enough targuments"390 echo "eee : not enough arguments" 391 391 echo "${usage}" 392 392 exit 1 -
trunk/src/get_station_geolocation.m
r634 r635 59 59 % status de retour 60 60 % 61 % description du résultat en ReS T61 % description du résultat en ReStructuredText 62 62 % 63 63 % EVOLUTIONS -
trunk/src/get_trmm.sh
r634 r635 101 101 # ==== 102 102 # 103 # make it work outside climserv103 # make it work outside ClimServ 104 104 # 105 105 # build/complete catalog … … 121 121 # 122 122 # * bug fix to handle correctly dates if translation in second on 9 digits 123 # (trailing 0 is automatical y interpreted as an octal number).123 # (trailing 0 is automatically interpreted as an octal number). 124 124 # ex = 20010801 125 125 # * bug fix to handle correctly dates if translation in second of begin … … 176 176 if [ ${#} -lt ${minargcount} ] 177 177 then 178 echo "eee : not enough targuments"178 echo "eee : not enough arguments" 179 179 echo "${usage}" 180 180 exit 1 -
trunk/src/get_zi_geolocation.m
r634 r635 59 59 % status de retour 60 60 % 61 % description du résultat en ReS T61 % description du résultat en ReStructuredText 62 62 % 63 63 % exact match : now asking for "ferl" is ok but it should be so !! -
trunk/src/graphe_zicode.m
r634 r635 2 2 3 3 %GRAPHE_ZICODE appelle les programmes read_lai_gis.m et 4 %plot_lai_gis.m pour tracer le lai des diff erentetypes de sol5 %et de classes de v egetation dans chacune des zones d'interet définies autour6 %des pluviom etres4 %plot_lai_gis.m pour tracer le lai des différents types de sol 5 %et de classes de végétation dans chacune des zones d'intérêt définies autour 6 %des pluviomÚtres 7 7 8 8 %+ … … 41 41 % 42 42 % graphe_zicode appelle les programmes :func:`read_lai_gis` et 43 % :func:`plot_lai_gis` pour tracer le lai des differentetypes de sol44 % et de classes de v egetation dans chacune des zones d'interet définies autour45 % des pluviom etres43 % :func:`plot_lai_gis` pour tracer le lai des différents types de sol 44 % et de classes de végétation dans chacune des zones d'intérêt définies autour 45 % des pluviomÚtres 46 46 % 47 47 % If ``classes_select`` is set to **all**, all possible classes_values will be … … 55 55 % applied to select data. 56 56 % 57 % ++ tracer de la moyenne et de lecart type du lai des classes de v egetation58 % correspondant a chaque type de sol autour de chaque pluviom etres pour57 % ++ tracer de la moyenne et de lecart type du lai des classes de végétation 58 % correspondant a chaque type de sol autour de chaque pluviomÚtres pour 59 59 % 60 60 % ++for soil types and vegetation plot LAI data 61 61 % each around rain gauges 62 % d efiniezones d'interet63 % 64 % sur une zone pour un type de sol on regarde l' evolution des differentes65 % classes de v egetation62 % définit zones d'interet 63 % 64 % sur une zone pour un type de sol on regarde l'évolution des différentes 65 % classes de végétation 66 66 % 67 67 % SEE ALSO … … 79 79 % add imageprefix in parameter 80 80 % 81 % encore une bataille entre les type cell et char ... pénible mais ça marche81 % encore une bataille entre les type cell et char ... Pénible mais ça marche 82 82 % 83 83 % les messages genre 84 84 % :samp:`warning: ft_render: skipping missing glyph for character ..` 85 85 % sont liés à des pb de diacritiques dans les classes ou les msd 86 % ... faire le ménage au niveau de la production86 % ... Faire le ménage au niveau de la production 87 87 % 88 88 % comprendre pourquoi warning gnuplot broken pipe sur mac soclod … … 122 122 % - fplod 20110823T135630Z aedon.locean-ipsl.upmc.fr (Darwin) 123 123 % 124 % * prise en compte de la nouvelle paramétr eisation de plot_lai_gis124 % * prise en compte de la nouvelle paramétrisation de plot_lai_gis 125 125 % (classes_select et msdnom_select à la place de gridcode et msd) 126 126 % * listes de classes_select et msdnom_select fabriquées à partir des … … 141 141 % - fplod/soclod 20110818 142 142 % 143 % * supprimer gridcode et msd des param etres143 % * supprimer gridcode et msd des paramÚtres 144 144 % 145 145 % - soclod 20110817 … … 209 209 clear arg_info 210 210 % 211 % lecture du fichier contenant les lai pour l'ann ee demandee211 % lecture du fichier contenant les lai pour l'année demandée 212 212 [lon_value, lat_value, datejul_value, datestr_value, lai_value, classes_value, msdnom_value]=read_lai_gis(yyyy, nbligne, zi_code); 213 213 % … … 235 235 for ind_classes=1:numel(list_classes_select) 236 236 disp([' ind_classes : ' num2str(ind_classes) ' ,classes_select : ' char(list_classes_select(ind_classes))]); 237 % calcule les moyennes et ecart type non filtrés et filtrés237 % calcule les moyennes et écart type non filtrés et filtrés 238 238 % et produit une figure 239 239 [lai_mean, lai_std]=plot_lai_gis(datejul_value, datestr_value, lai_value, classes_value, msdnom_value, char(list_classes_select(ind_classes)), char(list_msdnom_select(ind_msd)), zi_code, imageprefix, seuil); -
trunk/src/h_clim.m
r368 r635 16 16 % Calcul de la hauteur de la couche limite. 17 17 % 18 % Crit eres :19 % - maximum du gradient de temp erature potentielle18 % Critéres : 19 % - maximum du gradient de température potentielle 20 20 % - hauteur comprise entre 700 et 2500m 21 21 % 22 % Entr ees :23 % 22 % Entrées : 23 % 24 24 % tpt 25 % temp erature potentielle, tableau 2D (variable,altitude)25 % température potentielle, tableau 2D (variable,altitude) 26 26 % alt 27 % altitude en m etre, tableau 2D (variable,altitude)27 % altitude en mÚtre, tableau 2D (variable,altitude) 28 28 % 29 29 % Sorties : 30 30 % 31 31 % ep_cl 32 % hauteur de couche limite en m etre, vecteur (variable)32 % hauteur de couche limite en mÚtre, vecteur (variable) 33 33 % grad_tpt 34 % valeur du gradient de temp erature potentielle au sommet de la couche limite, vecteur (variable);34 % valeur du gradient de température potentielle au sommet de la couche limite, vecteur (variable); 35 35 % 36 36 % EXAMPLES … … 66 66 for n=1:size(tpt,1) 67 67 68 %Calcule diff erence entre chaque niveau68 %Calcule différence entre chaque niveau 69 69 dif_tpt=tpt(n,1:size(tpt,2)-1)-tpt(n,2:size(tpt,2)); 70 70 71 %Trouve le maximum de la diff erence71 %Trouve le maximum de la différence 72 72 ind_tpt=min(find(abs(dif_tpt)==max(abs(dif_tpt)))); 73 73 … … 85 85 86 86 end 87 -
trunk/src/histo_cumulEPSAT.m
r634 r635 2 2 3 3 %HISTO_CUMULEPSAT trace la distribution des précipitations EPSAT cumulées sur 4 %plusie rs pas de temps dans un domaine d'étude donné4 %plusieurs pas de temps dans un domaine d'étude donné 5 5 6 6 % … … 30 30 % 31 31 % Tracé la distribution des précipitations EPSAT cumulées sur 32 % plusie rs pas de temps dans un domaine d'étude donné32 % plusieurs pas de temps dans un domaine d'étude donné 33 33 % 34 34 % Figure is saved in :file:`./histo_cumulEPSAT.ps` … … 84 84 % * remove diacriticals from title and labels 85 85 % to avoid "warning: ft_render: skipping missing glyph for character" 86 % runn ning with octave 3.486 % running with octave 3.4 87 87 % 88 88 % - fplod 20110311T110836Z aedon.locean-ipsl.upmc.fr (Darwin) -
trunk/src/histoplot.m
r374 r635 2 2 3 3 %HISTOPLOT est une fonction permettant de tracer la distribution des 4 %valeurs d'une matrice de donn ees en un nombre de classes defini.4 %valeurs d'une matrice de données en un nombre de classes defini. 5 5 6 6 % … … 16 16 % =========== 17 17 % 18 % - Donn ees d'entrees :18 % - Données d'entrées : 19 19 % 20 % * data : Matrice de donn ees de dimensions quelconques.20 % * data : Matrice de données de dimensions quelconques. 21 21 % * nbclasses : Nombre de classes de l'histogramme. 22 % * nomvar (en caract eres) : Nom de la variable dont on trace la22 % * nomvar (en caractÚres) : Nom de la variable dont on trace la 23 23 % distribution (Pour le titre et l'axe des abscisses). 24 % * infocompl (en caract eres, factultatif) : Informations complementaires25 % sur les donn ees pour le titre. (Sur la date par exemple 'du 26/07 au24 % * infocompl (en caractÚres, facultatif) : Informations complémentaires 25 % sur les données pour le titre. (Sur la date par exemple 'du 26/07 au 26 26 % ...' par exemple). 27 27 % 28 28 % Cette fonction permet de tracer la distribution des valeurs d'une 29 % de donn ees en un nombre de classes defini.29 % de données en un nombre de classes defini. 30 30 % 31 31 % EXAMPLES … … 81 81 clear data; 82 82 83 % On d efinit les differentes valeurs centrales de l'histogramme en84 % utilisant 'ext', l' etendue de chaque barres.83 % On définit les diffÚrentes valeurs centrales de l'histogramme en 84 % utilisant 'ext', l'étendue de chaque barre. 85 85 ext = (max(distribdata)-min(distribdata)) / nbclasses; 86 86 X = min(distribdata) + ext/2 : ext : max(distribdata) - ext/2; … … 93 93 ylabel('Nombre') 94 94 95 % Ajout de titres selon les arguments d'entr ees.95 % Ajout de titres selon les arguments d'entrées. 96 96 if nargin == 4; 97 97 title(['Distribution des ' nomvar ' ' infocompl]) … … 107 107 %! clear all 108 108 %! close all 109 %! result = histoplot(rand(4,5,5),5,'valeurs al eatoires','dans une matrice 3D pour demonstration');109 %! result = histoplot(rand(4,5,5),5,'valeurs aléatoires','dans une matrice 3D pour démonstration'); -
trunk/src/hovmuller.pro
r634 r635 49 49 ; to NOT save the output image in a file 50 50 ; 51 ; might be useful lif several plots are needed on the same figure.51 ; might be useful if several plots are needed on the same figure. 52 52 ; 53 53 ; file if exist might be overwritten if OVERWRITE is set to 1. … … 596 596 ; 597 597 initncdf, fullfilename_in[0], xaxisname = xaxisname , yaxisname = yaxisname 598 msg = 'iii : init cdf with ' + fullfilename_in[0]598 msg = 'iii : initncdf with ' + fullfilename_in[0] 599 599 ras = report(msg) 600 600 ; -
trunk/src/hovmullerlat.m
r634 r635 139 139 % 140 140 % * add dataset parameter 141 % * Temps is now julian date141 % * Temps is now Julian date 142 142 % * remove unused calculation of "nb de pixels froids" 143 143 % * time is a reserved word … … 164 164 % * replace datedebut parameter by yyyymmddb, replace datefin parameter by yyyymmdde 165 165 % * fix for path of MSG files 166 % * use of netcdf.open on climserv166 % * use of netcdf.open on ClimServ 167 167 % * loop on yime like in evolution_msg.m 168 168 % * usage of MSGread 169 169 % 170 % nb : seems to be ok on climserv170 % nb : seems to be ok on ClimServ 171 171 % 172 172 % - pinsard 2011-05-26T07:52:18Z loholt1.ipsl.polytechnique.fr -
trunk/src/hovmullerlonorlat.m
r634 r635 1 1 function [hovdata] = hovmullerlonorlat(data,dim1,dim2,dim3,numdimtomean,centralvalue,extmeandim, nomvar) 2 2 3 %hovmullerlonorlat permet de r ealiser un diagramme de hovmuller apartir4 %d'une matrice 3D (temps, longitudes, latitudes). Celui-ci peut- etre3 %hovmullerlonorlat permet de réaliser un diagramme de hovmuller à partir 4 %d'une matrice 3D (temps, longitudes, latitudes). Celui-ci peut-être 5 5 %latitudes vs temps ou temps vs longitudes. 6 6 … … 17 17 % =========== 18 18 % 19 % - Donn ees d'entrees :20 % 21 % * data : Matrice de donn ees 3D (temps, longitudes, latitudes).19 % - Données d'entrées : 20 % 21 % * data : Matrice de données 3D (temps, longitudes, latitudes). 22 22 % * dim1 : Variable de la dimension 1 de la matrice 'data', c'est-a-dire 23 23 % le temps. … … 26 26 % * dim3 : Variable de la dimension 3 de la matrice 'data', c'est-a-dire 27 27 % les latitudes. 28 % * numdimtomean : Num ero de la dimension spatialsur laquelle il faudra28 % * numdimtomean : Numéro de la dimension spatiale sur laquelle il faudra 29 29 % moyenner. (Ex : Pour un diagramme latitudes vs temps, il faut 30 30 % moyenner sur les longitudes soit la dimension 2). 31 31 % * centralvalue : Valeur centrale du moyennage sur la dimension 32 % correspondante (en degr ees+ si N/E ou - si S/W).33 % * extmeandim : Etendue du moyennage autour de la valeur centrale (en34 % degr ees).35 % * nomvar (caract eres) : Nom et unite de la donnee etudiee ici32 % correspondante (en degré + si N/E ou - si S/W). 33 % * extmeandim : Ãtendue du moyennage autour de la valeur centrale (en 34 % degré). 35 % * nomvar (caractÚres) : Nom et unité de la donnée étudiée ici 36 36 % (Ex : 'cumuls EPSAT (mm)'). 37 37 % 38 % - Donn ees de sorties :39 % 40 % * hovdata : Matrice 2D comportant les donn ees du diagramme de41 % hovmuller. La premi ere dimension est le temps et la dimension38 % - Données de sorties : 39 % 40 % * hovdata : Matrice 2D comportant les données du diagramme de 41 % hovmuller. La premiÚre dimension est le temps et la dimension 42 42 % spatiale du diagramme. 43 43 % 44 % Cette fonction permet d'analyser les donn ees MSG et de concatener les45 % intensit es resultantes en sortie. L'analyse s'effectue sur une seule46 % saison, sur tous les fichiers ou entre deux dates pr edefinies.44 % Cette fonction permet d'analyser les données MSG et de concaténer les 45 % intensités résultantes en sortie. L'analyse s'effectue sur une seule 46 % saison, sur tous les fichiers ou entre deux dates prédéfinies. 47 47 % 48 48 % EXAMPLES … … 74 74 % - jaclod 2011-07-27 75 75 % 76 % * R evision de la documentation et des commentaires.77 % * Remplacement des arguments d'entr ees 'minmeandim' et 'maxmeandim' par76 % * Révision de la documentation et des commentaires. 77 % * Remplacement des arguments d'entrées 'minmeandim' et 'maxmeandim' par 78 78 % 'centralvalue' et 'extmeandim' et modification des titres. 79 79 % 80 80 % - jaclod 2011-07-21 81 81 % 82 % * Modification de l'affichage des donn ees temporelles sur l'axe82 % * Modification de l'affichage des données temporelles sur l'axe 83 83 % correspondant. 84 % * Ajou rde la documentation et des commentaires.84 % * Ajout de la documentation et des commentaires. 85 85 % 86 86 % - jaclod 2011-07-20 87 87 % 88 % * Creation .88 % * Creation 89 89 % 90 90 %- … … 102 102 % 103 103 if size(size(data),2) ~= 3; 104 error('Les donn ees doivent etre dans une matrice a 3 dimensions.')104 error('Les données doivent etre dans une matrice a 3 dimensions.') 105 105 end 106 106 107 107 if numdimtomean ~= 2 && numdimtomean ~= 3; 108 error('Le moyennage ne se fait que sur l''une des dimensions spatiales de la matrice de donn ees (temps, longitudes, latitudes).');108 error('Le moyennage ne se fait que sur l''une des dimensions spatiales de la matrice de données (temps, longitudes, latitudes).'); 109 109 end 110 110 111 111 112 112 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 113 % Cr eation des bornes sur la dimension moyenne113 % Création des bornes sur la dimension moyenne 114 114 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 115 115 … … 121 121 122 122 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 123 % Extraction des donn ees concernes124 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 125 126 % On cherche les indices entre lesquelles il faut prendre les donn ees. On127 % extrait ensuite les donn ees correspondantes.123 % Extraction des données concernées 124 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 125 126 % On cherche les indices entre lesquelles il faut prendre les données. On 127 % extrait ensuite les données correspondantes. 128 128 if numdimtomean == 2; 129 129 … … 132 132 indicemax = find(dim2 <= maxmeandim,1,'last'); 133 133 134 %%%%% Extraction des donn ees %%%%%134 %%%%% Extraction des données %%%%% 135 135 extracteddata = data(1:size(data,1),indicemin:indicemax,1:size(data,3)); 136 136 … … 141 141 indicemax = find(dim3 <= maxmeandim,1,'last'); 142 142 143 %%%%% Extraction des donn ees %%%%%143 %%%%% Extraction des données %%%%% 144 144 extracteddata = data(1:size(data,1),1:size(data,2),indicemin:indicemax); 145 145 … … 150 150 151 151 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 152 % Moyennage sur la dimension spatiale s electionne152 % Moyennage sur la dimension spatiale sélectionnée 153 153 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 154 154 … … 169 169 h=figure; 170 170 171 %%%%% Calculs pour l'affichage de la coordonn ee temporelle %%%%%171 %%%%% Calculs pour l'affichage de la coordonnée temporelle %%%%% 172 172 % Nombre de 'tick' temporel maximum. 173 173 nbtickmax = 10; … … 177 177 178 178 % On cherche le pas d'affichage des pas de temps pour ne pas depasser la 179 % limite autoris ee (on prend l'arrondi supérieur avec la fonction 'ceil').179 % limite autorisée (on prend l'arrondi supérieur avec la fonction 'ceil'). 180 180 tickstep = ceil(nbtimestep / nbtickmax); 181 181 182 % On garde les num ero dans temps aafficher.182 % On garde les numéros dans temps à afficher. 183 183 numtime = 1 : tickstep : nbtimestep; 184 184 185 % On enregistre les futures 'ticklabel' sous forme de caract eres.185 % On enregistre les futures 'ticklabel' sous forme de caractÚres. 186 186 time = datestr(dim1(numtime),'mmm dd'); 187 187 … … 190 190 %%%%% Image du diagramme %%%%% 191 191 % On veut un diagramme latitudes vs temps, il faut donc transposer la 192 % matrice de donn ees.192 % matrice de données. 193 193 imagesc(dim1,dim3,hovdata'); 194 194 set(gca,'ydir','normal'); -
trunk/src/hspe2rmix.m
r634 r635 20 20 % - hspe = 0.622*e/(p-0.378*e)) avec e la pression partielle de vapeur d'eau 21 21 % 22 % Entr ees :22 % Entrées : 23 23 % 24 24 % hspe -
trunk/src/idl_amsu_netcdf.pro
r634 r635 83 83 ; ==== 84 84 ; 85 ; 86 ; ++ test si toutes les valeurs sont des valeurs manquantes/aberantes 85 ; test si toutes les valeurs sont des valeurs manquantes/abérantes 87 86 ; si ou ne rien écrire 88 87 ; 89 88 ; improve tip 90 89 ; 91 ; check arg : time in julian days. check for noon !!90 ; check arg : time in Julian days. check for noon !! 92 91 ; 93 92 ; unit of input vs attribute … … 121 120 ; - lelod 20120410 122 121 ; 123 ; * ajout param etre temp pour choix des orbites interpolees(m pour122 ; * ajout paramÚtre temp pour choix des orbites interpolées (m pour 124 123 ; morning, e pour evening) 125 124 ; … … 133 132 ; * la transformation du mask 1D en matrice est trop complexe et 134 133 ; inutilement lourde 135 ; proposition de recr eer le masque avec le fichier bathy de S. masson (dans136 ; cresamsu ou ici). Est ce utile du coup de l'inserer dans le fichier?134 ; proposition de recréer le masque avec le fichier bathy de S. masson (dans 135 ; cresamsu ou ici). Est-ce utile du coup de l'insérer dans le fichier? 137 136 ; 138 137 ; - fplod 20111216T160934Z cratos (Linux) … … 201 200 ; build output filename 202 201 ; avec le nom et le numéro du canal traité par interpolation de 203 ; Cres mann202 ; Cressman 204 203 rt=string(rtemp,format='(f3.1)') 205 204 rh=string(rhdeg,format='(f3.1)') … … 221 220 + '.nc' 222 221 ; 223 ; d efinition des tableaux qui vont contenir les valeurs à écrire222 ; définition des tableaux qui vont contenir les valeurs à écrire 224 223 ; dans les fichiers NetCDF 225 224 moyenne_tb = fltarr(nblon, nblat, nbtime) … … 235 234 jours[*] = timesin - julday(01,01,2000) 236 235 ; 237 ; masque des valeurs ab errantes236 ; masque des valeurs abérrantes 238 237 ind = where(finite(moyenne_tb,/nan), nnbad) 239 238 if nnbad ne 0 then begin … … 243 242 msg = report(['iii : ' + routine + ' : nb valeurs manquantes = ' + string(nnbad)]) 244 243 ; 245 ; ++ test si toutes les valeurs sont des valeurs manquantes/ab erantes244 ; ++ test si toutes les valeurs sont des valeurs manquantes/abérantes 246 245 ; si ou ne rien écrire 247 246 ; 248 247 ; 249 248 ;--------------------------------------- 250 ; cr eation du fichier netcdf de sortie249 ; création du fichier netcdf de sortie 251 250 ; -------------------------------------- 252 251 ; … … 257 256 ENDIF 258 257 ; 259 msg = report(['iii : ' + routine + ' : ouverture pour ecriture de ' + cdfout])258 msg = report(['iii : ' + routine + ' : ouverture pour écriture de ' + cdfout]) 260 259 id = ncdf_create(cdfout,/clobber) 261 260 ncdf_control, id, /nofill … … 274 273 ;print, creation_date 275 274 ; 276 ; d eclaration des variables275 ; déclaration des variables 277 276 varid = lonarr(5) 278 277 varid[0] = ncdf_vardef(id, 'xlon', [dimidx], /float) -
trunk/src/int2precip.m
r368 r635 1 1 function [mat_intensity_precip] = int2precip(mat_intensity, type, Longitudes, Latitudes) 2 2 3 %int2precip est une fonction permettant de passer de donn ees d'intensites4 %en donn ees de precipitations en mm sur le domaine 0-20W 0-20N.3 %int2precip est une fonction permettant de passer de données d'intensités 4 %en données de précipitations en mm sur le domaine 0-20W 0-20N. 5 5 6 6 % … … 16 16 % =========== 17 17 % 18 % - Donn ees d'entrees :19 % 20 % * mat_intensity : Matrice contenant les intensit es sur la zone 0-20W et18 % - Données d'entrées : 19 % 20 % * mat_intensity : Matrice contenant les intensités sur la zone 0-20W et 21 21 % 0-20N, de dimension longitudes, latitudes si elle est 2D ou temps, 22 22 % longitudes, latitudes si elle est 3D. 23 % * type : Type de formules a utiliser, 'global' pour utiliser la m eme24 % sur l'ensemble du domaine ou 'r egional' pour utiliser les formules25 % sur les 4 sous regions etudies.23 % * type : Type de formules a utiliser, 'global' pour utiliser la même 24 % sur l'ensemble du domaine ou 'régional' pour utiliser les formules 25 % sur les 4 sous-régions étudiées. 26 26 % * Longitudes (si type = 'regional') : Variable de longitudes des 27 % donn ees.27 % données. 28 28 % * Latitudes (si type = 'regional') : Variable de latitudes des 29 % donn ees.30 % 31 % - Donn ees de sorties :32 % 33 % * mat_intensity_precip : Matrice de donn ees de precipitations dont les34 % dimensions sont celle de la matrice d'intensit es initiales.35 % 36 % Cette fonction permet de passer de donn ees d'intensites en donnees de37 % pr ecipitations en mm sur le domaine 0-20W 0-20N.29 % données. 30 % 31 % - Données de sorties : 32 % 33 % * mat_intensity_precip : Matrice de données de précipitations dont les 34 % dimensions sont celle de la matrice d'intensités initiales. 35 % 36 % Cette fonction permet de passer de données d'intensités en données de 37 % précipitations en mm sur le domaine 0-20W 0-20N. 38 38 % 39 39 % EXAMPLES … … 90 90 end 91 91 % 92 % Application des formules pour passer des intensit es en precipitations93 % (formules bas ees sur la validation croisee entre les intensites obtenues94 % par l'analyse des donn ees MSG et des donnees EPSAT sur une zone de -20 a95 % 0 en longitudes et de 0 a20 en latitudes. Dans chaque cas, la formule96 % moyenne est obtenue a partir des proches r esultats pour un domaine donnee97 % des r egressions lineaires, cf. MSGanalysiscrossvalidation).92 % Application des formules pour passer des intensités en précipitations 93 % (formules basées sur la validation croisée entre les intensités obtenues 94 % par l'analyse des données MSG et des données EPSAT sur une zone de -20 à 95 % 0 en longitudes et de 0 à 20 en latitudes. Dans chaque cas, la formule 96 % moyenne est obtenue a partir des proches résultats pour un domaine donnée 97 % des régressions linéaires, cf. MSGanalysiscrossvalidation). 98 98 switch type 99 99 100 100 case 'global' 101 % Dans ce cas, on souhaite appliquer la m eme formule al'ensemble101 % Dans ce cas, on souhaite appliquer la même formule à l'ensemble 102 102 % du domaine (0-20W et 0-20N). Nous ne gardons que le facteur 103 % d' echelle, pour garder les precipitations nulles,sur la formule103 % d'échelle, pour garder les précipitations nulles, sur la formule 104 104 % moyenne suivante : 105 % pr ecipitations (mm) = 0.0327 * intensites + 1.02.105 % précipitations (mm) = 0.0327 * intensités + 1.02. 106 106 mat_intensity_precip = 0.0327 * mat_intensity; 107 107 108 108 case 'regional' 109 % Dans ce cas, on souhaite appliquer la formule sur diff erents110 % domaines etudies (Il s'agit des regions 10-20W 10-20N, 10-20W109 % Dans ce cas, on souhaite appliquer la formule sur différents 110 % domaines étudiés (Il s'agit des régions 10-20W 10-20N, 10-20W 111 111 % 0-10N, 0-20W 5-10N et enfin 0-20W 0-5N). 112 112 113 % Initialisation de la matrice de donn ees de precipitations.113 % Initialisation de la matrice de données de précipitations. 114 114 mat_intensity_precip = zeros(size(mat_intensity)); 115 115 116 % On applique le facteur d' echelle de la formule moyenne117 % correspondante a chaque region.116 % On applique le facteur d'échelle de la formule moyenne 117 % correspondante à chaque région. 118 118 % Region 10-20W 10-20N : 119 119 120 % R ecuperation des indices des bornes de la region.120 % Récupération des indices des bornes de la région. 121 121 indlonmin = find(Longitudes >= -20,1,'first'); 122 122 indlonmax = find(Longitudes <= -10,1,'last'); … … 124 124 indlatmax = find(Latitudes <= 20,1,'last'); 125 125 126 % Application, pour cette r egion, du facteur de la formule127 % moyenne : 128 % Pr ecipitations (mm) = 0.028035 * intensites + 0.66.129 if size(size(mat_intensity),2)==3; 130 131 % Matrice 3D avec une premi ere dimension temporelle.126 % Application, pour cette région, du facteur de la formule 127 % moyenne : 128 % Précipitations (mm) = 0.028035 * intensités + 0.66. 129 if size(size(mat_intensity),2)==3; 130 131 % Matrice 3D avec une premiÚre dimension temporelle. 132 132 mat_intensity_precip(:,indlonmin:indlonmax,indlatmin:indlatmax) = 0.028035 * mat_intensity(:,indlonmin:indlonmax,indlatmin:indlatmax); 133 133 … … 138 138 139 139 else 140 error('Les donn ees d''intensites doivent etre dans une matrice 2D ou 3D avec une premiere dimension temporelle.')141 142 end 143 144 % R egion 0-10W 10-20N :145 146 % R ecuperation des indices des bornes de la region.140 error('Les données d''intensités doivent être dans une matrice 2D ou 3D avec une premiÚre dimension temporelle.') 141 142 end 143 144 % Région 0-10W 10-20N : 145 146 % Récupération des indices des bornes de la région. 147 147 indlonmin = find(Longitudes >= -10,1,'first'); 148 148 indlonmax = find(Longitudes <= 0,1,'last'); … … 150 150 indlatmax = find(Latitudes <= 20,1,'last'); 151 151 152 % Application, pour cette r egion, du facteur de la formule153 % moyenne : 154 % Pr ecipitations (mm) = 0.028126 * intensites + 0.55.152 % Application, pour cette région, du facteur de la formule 153 % moyenne : 154 % Précipitations (mm) = 0.028126 * intensités + 0.55. 155 155 % (On remarque que cette formule, ne change pas beaucoup par 156 % rapport a la precedent qui est a la meme latitude. La constante157 % change probablement a cause des precipitations sous-estimeavec158 % notre analyse sur l'oc ean).159 if size(size(mat_intensity),2)==3; 160 161 % Matrice 3D avec une premi ere dimension temporelle.156 % rapport à la précédente qui est a la même latitude. La constante 157 % change probablement à cause des précipitations sous-estimées avec 158 % notre analyse sur l'océan). 159 if size(size(mat_intensity),2)==3; 160 161 % Matrice 3D avec une premiÚre dimension temporelle. 162 162 mat_intensity_precip(:,indlonmin:indlonmax,indlatmin:indlatmax) = 0.028126 * mat_intensity(:,indlonmin:indlonmax,indlatmin:indlatmax); 163 163 … … 168 168 169 169 else 170 % Erreur deja donn ee.170 % Erreur deja donnée. 171 171 end 172 172 173 173 % Region 0-20W 5-10N : 174 174 175 % R ecuperation des indices des bornes de la region.175 % Récupération des indices des bornes de la région. 176 176 indlonmin = find(Longitudes >= -20,1,'first'); 177 177 indlonmax = find(Longitudes <= 0,1,'last'); … … 179 179 indlatmax = find(Latitudes <= 10,1,'last'); 180 180 181 % Application, pour cette r egion, du facteur de la formule182 % moyenne : 183 % Pr ecipitations (mm) = 0.0395 * intensites + 2.184 if size(size(mat_intensity),2)==3; 185 186 % Matrice 3D avec une premi ere dimension temporelle.181 % Application, pour cette région, du facteur de la formule 182 % moyenne : 183 % Précipitations (mm) = 0.0395 * intensités + 2. 184 if size(size(mat_intensity),2)==3; 185 186 % Matrice 3D avec une premiÚre dimension temporelle. 187 187 mat_intensity_precip(:,indlonmin:indlonmax,indlatmin:indlatmax) = 0.0395 * mat_intensity(:,indlonmin:indlonmax,indlatmin:indlatmax); 188 188 … … 193 193 194 194 else 195 % Erreur d eja donnee.196 end 197 198 % R egion 0-20W 0-5N :199 200 % R ecuperation des indices des bornes de la region.195 % Erreur déjà donnée. 196 end 197 198 % Région 0-20W 0-5N : 199 200 % Récupération des indices des bornes de la région. 201 201 indlonmin = find(Longitudes >= -20,1,'first'); 202 202 indlonmax = find(Longitudes <= 0,1,'last'); … … 204 204 indlatmax = find(Latitudes <= 5,1,'last'); 205 205 206 % Application, pour cette r egion, du facteur de la formule207 % moyenne : 208 % Pr ecipitations (mm) = 0.055 * intensites + 0.56.209 if size(size(mat_intensity),2)==3; 210 211 % Matrice 3D avec une premi ere dimension temporelle.206 % Application, pour cette région, du facteur de la formule 207 % moyenne : 208 % Précipitations (mm) = 0.055 * intensités + 0.56. 209 if size(size(mat_intensity),2)==3; 210 211 % Matrice 3D avec une premiÚre dimension temporelle. 212 212 mat_intensity_precip(:,indlonmin:indlonmax,indlatmin:indlatmax) = 0.055 * mat_intensity(:,indlonmin:indlonmax,indlatmin:indlatmax); 213 213 … … 218 218 219 219 else 220 % Erreur d eja donnee.220 % Erreur déjà donnée. 221 221 end 222 222 223 223 otherwise 224 error('Le type d''application de formules ne peut qu'' etre ''global'' ou ''regional''.')224 error('Le type d''application de formules ne peut qu''être ''global'' ou ''regional''.') 225 225 226 226 end -
trunk/src/intensityMSG_concat.m
r634 r635 1 1 function [ij_intensity_concat, time_concat, Longitudes, Latitudes] = intensityMSG_concat(ncfilesset, lonmin, lonmax, latmin, latmax, longresol, latresol, Annee, Mois_start, Jour_start, Mois_stop, Jour_stop) 2 2 3 %INTENSITYMSG_CONCAT permet d'analyser les donn ees de temperature de4 %brillance par MSG et de concat ener les intensites resultantes en sortie.3 %INTENSITYMSG_CONCAT permet d'analyser les données de température de 4 %brillance par MSG et de concaténer les intensités résultantes en sortie. 5 5 %L'analyse s'effectue sur une seule saison, sur tous les fichiers ou entre 6 %deux dates pr edefinies.6 %deux dates prédéfinies. 7 7 8 8 % … … 18 18 % =========== 19 19 % 20 % - Donn ees d'entrees :21 % 22 % * ncfilesset (en caract eres) : Type de fichier NetCDF que l'on cherche,20 % - Données d'entrées : 21 % 22 % * ncfilesset (en caractÚres) : Type de fichier NetCDF que l'on cherche, 23 23 % 'normal' ou 'extracted'. 24 % * lonmin : Borne inférieure des longitudes du domaine etudie.25 % * lonmax : Borne supérieure des longitudes du domaine etudie.26 % * latmin : Borne inférieure des latitudes du domaine etudie.27 % * latmax : Borne supérieure des latitudes du domaine etudie.28 % * longresol : Nouvelle r esolution souhaitee (nombre de points) pour les29 % longitudes (0 pour garder la r esolution d'origine).30 % * latresol : Nouvelle r esolution souhaitee (nombre de points) pour les31 % latitudes (0 pour garder la r esolution d'origine).32 % * Annee : Ann ee de la saison d'etude.33 % * Mois_start (Facultatif) : Mois du premier jour d' etude pour la34 % s election des fichiers.35 % * Jour_start (Facultatif) : Jour du premier jour d' etude pour la36 % s election des fichiers.37 % * Mois_stop (Facultatif) : Mois du dernier jour d' etude pour la38 % s election des fichiers.39 % * Jour_stop (Facultatif) : Jour du dernier jour d' etude pour la40 % s election des fichiers.41 % 42 % - Donn ees de sorties :43 % 44 % * ij_intensity_concat : Matrice de donn ees (temps, longitudes,45 % latitudes)contenant les intensit es concatenees des differents jours46 % d' etude.24 % * lonmin : Borne inférieure des longitudes du domaine étudié. 25 % * lonmax : Borne supérieure des longitudes du domaine étudié. 26 % * latmin : Borne inférieure des latitudes du domaine étudié. 27 % * latmax : Borne supérieure des latitudes du domaine étudié. 28 % * longresol : Nouvelle résolution souhaitée (nombre de points) pour les 29 % longitudes (0 pour garder la résolution d'origine). 30 % * latresol : Nouvelle résolution souhaitée (nombre de points) pour les 31 % latitudes (0 pour garder la résolution d'origine). 32 % * Annee : Année de la saison d'étude. 33 % * Mois_start (Facultatif) : Mois du premier jour d'étude pour la 34 % sélection des fichiers. 35 % * Jour_start (Facultatif) : Jour du premier jour d'étude pour la 36 % sélection des fichiers. 37 % * Mois_stop (Facultatif) : Mois du dernier jour d'étude pour la 38 % sélection des fichiers. 39 % * Jour_stop (Facultatif) : Jour du dernier jour d'étude pour la 40 % sélection des fichiers. 41 % 42 % - Données de sorties : 43 % 44 % * ij_intensity_concat : Matrice de données (temps, longitudes, 45 % latitudes)contenant les intensités concaténées des différents jours 46 % d'étude. 47 47 % * time_concat : Variable de temps, en jour julien, pour identifier les 48 % jours etudies.49 % * Longitudes : Variable de longitudes dans le domaine s electionne.50 % * Latitudes : Variable de latitudes dans le domaine s electionne.51 % 52 % Cette fonction permet d'analyser les donn ees de temperature de brillance53 % par MSG et de concat ener les intensites resultantes en sortie. L'analyse48 % jours étudiés. 49 % * Longitudes : Variable de longitudes dans le domaine sélectionné. 50 % * Latitudes : Variable de latitudes dans le domaine sélectionné. 51 % 52 % Cette fonction permet d'analyser les données de température de brillance 53 % par MSG et de concaténer les intensités résultantes en sortie. L'analyse 54 54 % s'effectue sur une seule saison, sur tous les fichiers ou entre deux 55 % dates pr edefinies.55 % dates prédéfinies. 56 56 % 57 57 % EXAMPLES … … 115 115 % - jaclod 2011-07-22 116 116 % 117 % * Compatibilit eavec des fichiers 'extracted'.117 % * Compatibilité avec des fichiers 'extracted'. 118 118 % 119 119 % - jaclod 2011-07-20 … … 124 124 % - jaclod 2011-07-19 125 125 % 126 % * Ajout de boucles pour la lecture des fichiers avec ou sans s election.126 % * Ajout de boucles pour la lecture des fichiers avec ou sans sélection. 127 127 % 128 128 % - jaclod 2011-07-13 … … 151 151 global PROJECT_ID 152 152 153 % Sauvegarde de la variable 'Annee' sous forme de caract eres.153 % Sauvegarde de la variable 'Annee' sous forme de caractÚres. 154 154 annee = num2str(Annee); 155 155 … … 161 161 %%%%%%%%%%%%%%%%%%%%%%%%%%% 162 162 163 % Les boucles se realisent de diff erentes facons selon la selection ou non163 % Les boucles se realisent de différentes façons selon la sélection ou non 164 164 % de jours. 165 165 166 % Si le nombre d'arguments est supérieur a 8 c'est qu'une s election est167 % demand ee. Sinon, on analyse tous les fichiers present dans le repertoire166 % Si le nombre d'arguments est supérieur a 8 c'est qu'une sélection est 167 % demandée. Sinon, on analyse tous les fichiers présent dans le répertoire 168 168 % MSG. 169 169 if nargin > 8; 170 170 171 % Cr eation d'un vecteur comportant le nombre maximum de jours que l'on171 % Création d'un vecteur comportant le nombre maximum de jours que l'on 172 172 % a dans chaque mois. 173 173 maxjourmois = [31 29 31 30 31 30 31 31 30 31 30 31]; … … 176 176 for Mois = Mois_start : Mois_stop; 177 177 178 % R ecuperation de la variable 'Mois' sous forme de caracteres.178 % Récupération de la variable 'Mois' sous forme de caractÚres. 179 179 if Mois < 10; 180 180 mois = ['0' num2str(Mois)]; … … 202 202 for Jour = Jour_ini : Jour_fin; 203 203 204 % R ecuperation de la variable 'Jour' sous forme de caracteres.204 % Récupération de la variable 'Jour' sous forme de caractÚres. 205 205 if Jour < 10; 206 206 jour = ['0' num2str(Jour)]; … … 209 209 end 210 210 211 % Cr eation du chemin d'accÚs complet au fichier correspondant.211 % Création du chemin d'accÚs complet au fichier correspondant. 212 212 [fullfilename] = MSGbuildfullfilename(ncfilesset, annee, mois, jour); 213 213 214 214 %%%%%% Analyse du fichier %%%%%% 215 215 216 % V erification que le fichier du jour existe bien. Si ce n'est216 % Vérification que le fichier du jour existe bien. Si ce n'est 217 217 % pas le cas un message d'avertissement est donne. Sinon, on 218 218 % peut faire l'analyse. 219 % Cette v erification differe selon le type de fichier en raison220 % d'un changement de r epertoire et de nom.219 % Cette vérification diffÚre selon le type de fichier en raison 220 % d'un changement de répertoire et de nom. 221 221 222 222 switch ncfilesset … … 243 243 disp(['iii : Analyse du fichier msg-tb108_' annee '-' mois '-' jour '_15min.nc.']); 244 244 245 % Lecture du fichier NetCDF, r ecuperation des246 % donn ees et des variables.245 % Lecture du fichier NetCDF, récupération des 246 % données et des variables. 247 247 [TbMSG, Temps, Longitudes, Latitudes] = MSGread(ncfilesset, fullfilename); 248 248 249 % Extraction des donn ees.249 % Extraction des données. 250 250 [TbMSG, Temps, Longitudes, Latitudes] = extractedmatrixdata(TbMSG, Temps, Longitudes, Latitudes, Temps(1), Temps(size(Temps,1)), lonmin, lonmax, latmin, latmax); 251 251 252 %%%%%% Changement de r esolution %%%%%%252 %%%%%% Changement de résolution %%%%%% 253 253 % Si longresol et/ou latresol ont pour valeur 0, alors on 254 % r ecupere la valeur de la resolution initiale pour ne pas254 % récupÚre la valeur de la résolution initiale pour ne pas 255 255 % faire de changement. 256 256 if longresol == 0; … … 262 262 end 263 263 264 % Si la r esolution demandee est differente de celle265 % initiale, alors on interpole les donn ees avec la264 % Si la résolution demandée est différente de celle 265 % initiale, alors on interpole les données avec la 266 266 % fonction 'spatial resolution'. 267 267 if longresol ~= size(TbMSG,2) || latresol ~= size(TbMSG,3); … … 275 275 clear unused_Tb_LimNoyau 276 276 277 %%%%%% Concat enation %%%%%%278 % Sauvegarde des intensit es (la dimension 3 est ici277 %%%%%% Concaténation %%%%%% 278 % Sauvegarde des intensités (la dimension 3 est ici 279 279 % le temps). 280 280 if Mois == Mois_start && Jour == Jour_start; … … 307 307 disp(['iii : Analyse du fichier extracted-msg-tb108_' annee '-' mois '-' jour '_15min.nc.']); 308 308 309 % Lecture du fichier NetCDF, r ecuperation des310 % donn ees et des variables.309 % Lecture du fichier NetCDF, récupération des 310 % données et des variables. 311 311 [TbMSG, Temps, Longitudes, Latitudes] = MSGread(ncfilesset, fullfilename); 312 312 313 % Pas d'extraction des donn ees.314 315 %%%%%% Changement de r esolution %%%%%%313 % Pas d'extraction des données. 314 315 %%%%%% Changement de résolution %%%%%% 316 316 % Si longresol et/ou latresol ont pour valeur 0, 317 % alors on r ecupere la valeur de la resolution317 % alors on récupÚre la valeur de la résolution 318 318 % initiale pour ne pas faire de changement. 319 319 if longresol == 0; … … 325 325 end 326 326 327 % Si la r esolution demandee est differente de celle328 % initiale, alors on interpole les donn ees avec la327 % Si la résolution demandée est différente de celle 328 % initiale, alors on interpole les données avec la 329 329 % fonction 'spatial resolution'. 330 330 if longresol ~= size(TbMSG,2) || latresol ~= size(TbMSG,3); … … 365 365 366 366 otherwise 367 % Cas impossible. Erreur d eja donnee.367 % Cas impossible. Erreur déjà donnée. 368 368 end 369 369 … … 374 374 else 375 375 376 %%%%% Recherche des mois de donn ees %%%%%377 % R epertoire correspondant aux fichiers MSG de l'annee en question.378 % diff erents selon le type de fichier.376 %%%%% Recherche des mois de données %%%%% 377 % Répertoire correspondant aux fichiers MSG de l'année en question. 378 % différents selon le type de fichier. 379 379 switch ncfilesset 380 380 … … 390 390 path(path,repertoireMSGsaison); 391 391 392 % On cherche les dossier dans ce dernier r epertoire correspondant aux393 % mois dont nous disposons des donn ees.392 % On cherche les dossier dans ce dernier répertoire correspondant aux 393 % mois dont nous disposons des données. 394 394 listdir = dir(repertoireMSGsaison); 395 395 396 % Nombre de dossier. Attention les deux premiers r esultats sont '.' et396 % Nombre de dossier. Attention les deux premiers résultats sont '.' et 397 397 % '..' et ne compte donc pas comme dossier de fichiers. 398 398 nbdir = numel(listdir)-2; … … 401 401 for numdir = 1 : nbdir; 402 402 403 % R ecuperation du numero du mois sous forme de caracteres.403 % Récupération du numéro du mois sous forme de caractÚres. 404 404 mois = listdir(numdir+2).name; 405 405 … … 419 419 for numfiles = 1 : nbfiles; 420 420 421 % R ecuperation du nom du fichier et de son chemin d'accÚs421 % Récupération du nom du fichier et de son chemin d'accÚs 422 422 % complet. 423 423 fullfilename = [repertoireMSGmois '/' listncfiles(numfiles).name]; … … 426 426 disp(['iii : Analyse du fichier ' listncfiles(numfiles).name '.']); 427 427 428 % Lecture du fichier NetCDF, r ecuperation des donnees et des428 % Lecture du fichier NetCDF, récupération des données et des 429 429 % variables. 430 430 [TbMSG, Temps, Longitudes, Latitudes] = MSGread(ncfilesset, fullfilename); … … 433 433 434 434 case 'normal' 435 % Extraction des donn ees.435 % Extraction des données. 436 436 [TbMSG, Temps, Longitudes, Latitudes] = extractedmatrixdata(TbMSG, Temps, Longitudes, Latitudes, Temps(1), Temps(size(Temps,1)), lonmin, lonmax, latmin, latmax); 437 437 … … 442 442 end 443 443 444 %%%%%% Changement de r esolution %%%%%%444 %%%%%% Changement de résolution %%%%%% 445 445 % Si longresol et/ou latresol ont pour valeur 0, alors on 446 % r ecupere la valeur de la resolution initiale pour ne pas446 % récupÚre la valeur de la résolution initiale pour ne pas 447 447 % faire de changement. 448 448 if longresol == 0; … … 454 454 end 455 455 456 % Si la r esolution demandee est differente de celle457 % initiale, alors on interpole les donn ees avec la fonction456 % Si la résolution demandée est différente de celle 457 % initiale, alors on interpole les données avec la fonction 458 458 % spatial resolution. 459 459 if longresol ~= size(TbMSG,2) || latresol ~= size(TbMSG,3); -
trunk/src/intensityMSG_day.m
r634 r635 1 1 function [ij_intensity, Tps_SeuilInf, Tb_SeuilSup, Tb_LimNoyau] = intensityMSG_day(Temps, TbMSG, Tps_SeuilInf, Tb_SeuilSup, Tb_LimNoyau) 2 2 3 %INTENSITYMSG_DAY calcule les intensit es de l'activite nuageuse estimees4 %d'apr es les donnees de temperature de brillance et un modele de nuages a3 %INTENSITYMSG_DAY calcule les intensités de l'activité nuageuse estimées 4 %d'aprÚs les données de température de brillance et un modÚle de nuages à 5 5 %deux couches (noyau + enveloppe externe), sur un jour. 6 6 … … 17 17 % =========== 18 18 % 19 % - Donn ees d'entrees :20 % 21 % * Temps : Variable de temps des donn ees de temperatures de brillances19 % - Données d'entrées : 20 % 21 % * Temps : Variable de temps des données de températures de brillances 22 22 % (jour julien). 23 % * TbMSG : Donn ees brutes de temperatures de brillance.23 % * TbMSG : Données brutes de températures de brillance. 24 24 % dimension 1 : temps, dimension 2 : lon, dimension 3 : lat 25 % * Tps_SeuilInf (Facultatif) : Crit ere de temps minimum de vie d'un25 % * Tps_SeuilInf (Facultatif) : CritÚre de temps minimum de vie d'un 26 26 % nuage pour qu'il soit pris en compte (en nombre de quarts d'heure, 3 27 % par d efaut).28 % * Tb_SeuilSup (Facultatif) : Seuil de temp erature de brillance29 % maximale d elimitant un nuage convectif (en K, 235 par defaut).30 % * Tb_LimNoyau (Facultatif) : Seuil de temp erature de brillance31 % d elimitant le noyau dans notre modele adeux couches (en K, 190 par32 % d efaut).33 % 34 % - Donn ees de sorties :35 % 36 % * ij_intensity : Donn ees d'intensites estimees sur une journee.37 % * Tps_SeuilInf : Crit ere de temps minimum de vie d'un nuage pour qu'il27 % par défaut). 28 % * Tb_SeuilSup (Facultatif) : Seuil de température de brillance 29 % maximale délimitant un nuage convectif (en K, 235 par defaut). 30 % * Tb_LimNoyau (Facultatif) : Seuil de température de brillance 31 % délimitant le noyau dans notre modÚle à deux couches (en K, 190 par 32 % défaut). 33 % 34 % - Données de sorties : 35 % 36 % * ij_intensity : Données d'intensités estimées sur une journée. 37 % * Tps_SeuilInf : CritÚre de temps minimum de vie d'un nuage pour qu'il 38 38 % soit pris en compte. 39 % * Tb_SeuilSup : Seuil de temp erature de brillance maximale delimitant39 % * Tb_SeuilSup : Seuil de température de brillance maximale délimitant 40 40 % un nuage convectif. 41 % * Tb_LimNoyau : Seuil de temp erature de brillance delimitant le noyau42 % dans notre mod ele adeux couches.43 % 44 % Calcul des intensit es de l'activite nuageuse estimees, sur une journee,45 % d'apr es les donnees de temperature de brillance et un modele de nuages a41 % * Tb_LimNoyau : Seuil de température de brillance délimitant le noyau 42 % dans notre modÚle à deux couches. 43 % 44 % Calcul des intensités de l'activité nuageuse estimées, sur une journée, 45 % d'aprÚs les données de température de brillance et un modÚle de nuages à 46 46 % deux couches (noyau + enveloppe externe). 47 47 % 48 % Dans le cas de donn ees manquantes, une interpolation 1D est realisee.48 % Dans le cas de données manquantes, une interpolation 1D est realisée. 49 49 % 50 50 % EXAMPLES … … 86 86 % demo 2 There should be at least two data points. 87 87 % 88 % find matlab pc jason smooth equivalent in matlab locean and climserv and88 % find matlab pc jason smooth equivalent in matlab locean and ClimServ and 89 89 % octave 90 90 % see http://www.aquaphoenix.com/lecture/matlab9/page3.html 91 91 % 92 92 % c'est quoi les 99 et 100 code en dur ! Il ne reste plus que le 100, c'est 93 % la nouvelle r esolution de la matrice 100*100. Il faudrait trouver un93 % la nouvelle résolution de la matrice 100*100. Il faudrait trouver un 94 94 % moyen d'obtenir cette information et d'externaliser le changement de 95 % r esolution car il ne sera pas toujours utile (en reflexion).95 % résolution car il ne sera pas toujours utile (en reflexion). 96 96 % 97 97 % Et si on veut observer plusieurs jours ou moins de un jour ? 98 % actuellement aa plante !!98 % actuellement ça plante !! 99 99 % 100 100 % est-il raisonnable de modifier le tableau TbMGS en sortie ? … … 121 121 % * pour le "switch application" erreur : 122 122 % ??? SWITCH expression must be a scalar or string constant. 123 % * Si "switch 'application'" pas d'erreur ace niveau mais je me retrouve123 % * Si "switch 'application'" pas d'erreur à ce niveau mais je me retrouve 124 124 % dans le cas "otherwise", ni matlab, ni octave. 125 125 % … … 140 140 % - jaclod 2011-07-29 141 141 % 142 % * Externalisation du passage en mm de pr ecipitation suite ala142 % * Externalisation du passage en mm de précipitation suite à la 143 143 % validation qui montre que cette formule n'est pas valable partout et 144 % pour une zone plus etendue (utiliser la fonction int2precip).145 % * Modifications des d emonstrations suite aux differentes144 % pour une zone plus étendue (utiliser la fonction int2precip). 145 % * Modifications des démonstrations suite aux différentes 146 146 % externalisations de fonctions (lecture, extraction, etc.). 147 147 % 148 148 % - jaclod 2011-07-27 149 149 % 150 % * R evision de la documentation et des commentaires.150 % * Révision de la documentation et des commentaires. 151 151 % 152 152 % - jaclod 2011-07-22 153 153 % 154 % * Application d'un facteur d' echelle et d'une constante pour passer des155 % intensit es en unite arbitraire a des intensites en mm de156 % pr ecipitation (y = 0.022685*x + 0.8366).154 % * Application d'un facteur d'échelle et d'une constante pour passer des 155 % intensités en unité arbitraire à des intensités en mm de 156 % précipitation (y = 0.022685*x + 0.8366). 157 157 % 158 158 % - jaclod 2011-07-11 159 159 % 160 % * Externalisation du changement de r esolution (cf. fonction160 % * Externalisation du changement de résolution (cf. fonction 161 161 % spatialresolution). 162 % * Plus de modification du tableau de donn ees initiales en sortie.162 % * Plus de modification du tableau de données initiales en sortie. 163 163 % 164 164 % - fplod 20110704T104826Z aedon.locean-ipsl.upmc.fr (Darwin) … … 178 178 % see http://blinkdagger.com/matlab/matlab-tips-and-tricks-on-manipulating-1-d-arrays-vectors/ 179 179 % 180 % ** Si la matrice de donnees, TbMSG, n'a pas une dimension temporelle de 96, alors il manque des donnees et il faut interpoler.** 181 % 182 % This acception is wrong : now we detect time holes greater than 1/96 day (15mn) to know if interpolation is needed. 180 % ** Si la matrice de données, TbMSG, n'a pas une dimension temporelle 181 % de 96, alors il manque des données et il faut interpoler.** 182 % 183 % This acception is wrong : now we detect time holes greater 184 % than 1/96 day (15mn) to know if interpolation is needed. 183 185 % 184 186 % - fplod 20110609T093726Z aedon.locean-ipsl.upmc.fr (Darwin) … … 188 190 % - pinsard 2011-06-08T15:01:07Z loholt1.ipsl.polytechnique.fr (Linux) 189 191 % 190 % * Temps is now julian day192 % * Temps is now Julian day 191 193 % 192 194 % - fplod 20110307T142316Z cratos.locean-ipsl.upmc.fr (Linux) … … 201 203 % - jaclod 2011-03-02 202 204 % 203 % * Ajout de la documentation et de la d emonstration.205 % * Ajout de la documentation et de la démonstration. 204 206 % 205 207 % - jaclod 2011-02-25 206 208 % 207 % * Creation .209 % * Creation 208 210 % 209 211 %- … … 211 213 212 214 % Appel de la variable global 'application' (Il faut s'assurer d'avoir 213 % ex ecutele programme 'varamma_startup' dans un premier temps).215 % exécuté le programme 'varamma_startup' dans un premier temps). 214 216 global application; 215 217 … … 226 228 % 227 229 %%%%%%%%%%%%% 228 % Param etres230 % ParamÚtres 229 231 %%%%%%%%%%%%% 230 232 231 % Si les param etres correspondant aux seuils n'ont pas ete donnes par232 % l'utilisateur, des valeurs par d efaut sont prises.233 % Si les paramÚtres correspondant aux seuils n'ont pas été donnés par 234 % l'utilisateur, des valeurs par défaut sont prises. 233 235 if exist('Tb_SeuilSup','var')~=1; 234 % Seuil de Tb en Kelvin (Temp erature de brillance).236 % Seuil de Tb en Kelvin (Température de brillance). 235 237 Tb_SeuilSup = 235; 236 238 end … … 253 255 254 256 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 255 % Interpolation pour les donn ees manquantes257 % Interpolation pour les données manquantes 256 258 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 257 259 258 % On cherche quels sont les pas de temps o u les mesures sont presentes. La259 % matrice "mesures_15min" contient alors les num eros des quarts d'heure que260 % On cherche quels sont les pas de temps où les mesures sont présentes. La 261 % matrice "mesures_15min" contient alors les numéros des quarts d'heure que 260 262 % l'on a. 261 263 mTemps = Temps/24 + datenum(1960,01,01); … … 263 265 mesures_15min = (mTemps(:,4)*4 + mTemps(:,5)/15)'+1; 264 266 265 % Avant de regarder s'il y a des donn ees manquantes, on va supprimer les266 % donn ees absurdes donnees deliberement et indiquer dans le descriptif du267 % Avant de regarder s'il y a des données manquantes, on va supprimer les 268 % données absurdes données délibérément et indiquer dans le descriptif du 267 269 % fichier. On a alors des 656 comme valeurs (exemple pour le 31 juillet 268 270 % 2006, au quart d'heure 28). 269 271 mesures_absurdes = find(TbMSG(:,1,1) == 656); 270 272 271 % On fait une boucle pour supprimer ces valeurs (si on avait rien trouv e,273 % On fait une boucle pour supprimer ces valeurs (si on avait rien trouvé, 272 274 % 'mesures_absurdes' est une matrice vide et la boucle ne se fait pas). 273 275 for i = 1 : size(mesures_absurdes,1); 274 276 275 % On commence par supprimer le dernier pas de temps absurde pour eviter276 % le d ecalage des pas de temps lorsqu'on supprime les premiers277 % d'abord s.277 % On commence par supprimer le dernier pas de temps absurde pour éviter 278 % le décalage des pas de temps lorsqu'on supprime les premiers 279 % d'abord. 278 280 suppr = mesures_absurdes(size(mesures_absurdes,1)-(i-1)); 279 281 mesures_15min(suppr) = []; … … 282 284 end 283 285 284 % Si la matrice de donn ees, TbMSG, n'a pas une dimension temporelle de 96,285 % alors il manque des donn ees et il faut interpoler.286 % Si la matrice de données, TbMSG, n'a pas une dimension temporelle de 96, 287 % alors il manque des données et il faut interpoler. 286 288 if size(TbMSG,idim_time)~=96; 287 289 288 % On interpole apr es avoir converti, par securite, notre matrice en290 % On interpole aprÚs avoir converti, par sécurité, notre matrice en 289 291 % type 'double'. 290 292 TbMSG = double(TbMSG); … … 300 302 %%%%%%%%%%%%%%%%%%%%%%%%%%% 301 303 302 % Cr eation d'une matrice de la taille de 'TbMSG' qui contiendra les donnees303 % liss ees.304 % Création d'une matrice de la taille de 'TbMSG' qui contiendra les données 305 % lissées. 304 306 TbLiss = zeros(size(TbMSG)); 305 307 306 308 for timestep = 1 : size(TbMSG,idim_time); 307 309 308 % Lissage selon la m ethode "lowess".310 % Lissage selon la méthode "lowess". 309 311 if ispc() 310 312 TbLiss_15min = smooth(TbMSG(timestep,:,:),'lowess'); … … 316 318 % l'utilisateur. 317 319 if timestep == 1; 318 disp('www : no smooth available using on non-pc plat eform');320 disp('www : no smooth available using on non-pc platform'); 319 321 end 320 322 321 323 end 322 324 323 % R ecuperation des donnees de chaque pas de temps dans la matrice324 % g enerale.325 % Récupération des données de chaque pas de temps dans la matrice 326 % générale. 325 327 TbLiss_15min = reshape(TbLiss_15min,size(TbMSG,idim_lon),size(TbMSG,idim_lat)); 326 328 TbLiss(timestep,:,:) = TbLiss_15min; … … 337 339 %%%%%%%%%%%%%%%%%%%%%%%%%%% 338 340 339 % La labellisation diff erent selon le programme utilise.341 % La labellisation diffÚre selon le programme utilisé. 340 342 341 343 switch application … … 358 360 numax = max(DetectionNuage(:)); 359 361 360 % Boucle sur les nuages, pour eliminer ceux trop brefs.362 % Boucle sur les nuages, pour éliminer ceux trop brefs. 361 363 for num_nuage = 1 : numax; 362 364 363 365 disp(['Analyse du nuage ' num2str(num_nuage) ' sur ' num2str(numax)]) 364 % On cherche a quel quart d'heure le nuage apparait pour la premiere366 % On cherche à quel quart d'heure le nuage apparaît pour la premiÚre 365 367 % fois. 366 368 timestep = 1; … … 369 371 end 370 372 371 % On vérifie que le nuage est pr esent, depuis le temps ouil372 % appara it jusqu'a atteindre le seuil definit precedemment.373 % On vérifie que le nuage est présent, depuis le temps où il 374 % apparaît jusqu'à atteindre le seuil définit précédemment. 373 375 Elimination = 0; 374 376 timestepSup = 0; 375 377 376 378 while timestepSup ~= Tps_SeuilInf-1 && Elimination == 0; 377 % Si parmi les quarts d'heure o a le nuage doit atre present, il378 % n'est pas d etecte, alors il ne satisfait pas le critere de379 % Si parmi les quarts d'heure où le nuage doit être présent, il 380 % n'est pas détecté, alors il ne satisfait pas le critÚre de 379 381 % temps et n'est plus pris en compte. 380 382 if size(find(DetectionNuage(timestep+timestepSup,:,:) == num_nuage), 1) == 0; … … 414 416 415 417 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 416 % Mod ele de nuages adeux couches418 % ModÚle de nuages à deux couches 417 419 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 418 420 419 % Cr eation d'une matrice qui contiendra les valeurs des Tb dans ce modele.421 % Création d'une matrice qui contiendra les valeurs des Tb dans ce modÚle. 420 422 Tb2couches = zeros(size(m_TbMSG)); 421 423 … … 427 429 Tb2couches(ZoneNoyau) = mean(m_TbMSG(ZoneNoyau)); 428 430 429 % De m eme pour la zone exterieure.431 % De même pour la zone extérieure. 430 432 ZoneExt = find(m_TbMSG > Tb_LimNoyau & m_TbMSG <= Tb_SeuilSup & DetectionNuage == num_nuage); 431 433 Tb2couches(ZoneExt) = mean(m_TbMSG(ZoneExt)); … … 437 439 438 440 %%%%%%%%%%%%% 439 % Intensit es441 % Intensités 440 442 %%%%%%%%%%%%% 441 443 442 444 Tb2couches(Tb2couches==0)=NaN; 443 445 444 % On d efinit l'intensite pour chaque point comme la somme de la difference445 % entre la temp erature de brillance de reference (Tb_SeuilSup, valeur seuil446 % du nuage) et la temp erature de brillance du nuage achaque pas de temps.446 % On définit l'intensité pour chaque point comme la somme de la différence 447 % entre la température de brillance de référence (Tb_SeuilSup, valeur seuil 448 % du nuage) et la température de brillance du nuage à chaque pas de temps. 447 449 Intensity = Tb_SeuilSup - Tb2couches; 448 450 ij_intensity = squeeze(nansum(Intensity,idim_time)); -
trunk/src/intensity_day.m
r634 r635 176 176 177 177 %%%%%%%%%%%%%%%%%%%%%%%%%% 178 % Eliminations des brefs178 % Ãliminations des brefs 179 179 %%%%%%%%%%%%%%%%%%%%%%%%%% 180 180 -
trunk/src/interpol_correc.pro
r634 r635 11 11 ; 12 12 ; interpolation des tableaux de correction amsub (calcules sur 13 ; echantillonnage amsua) sur les 90 points de la fauchee amsub13 ; échantillonnage amsua) sur les 90 points de la fauchée amsub 14 14 ; 15 15 ; read :file:`${PROJECT}/src/dataref_amsu/CORR_[LAND|SEA]_AMSU[AB]_JUIL2006.DAT` … … 61 61 ; 62 62 ; 63 ; on peut changer le codage en dur des fauch ees ou demi-fauchees, mais64 ; programme adapte a AMSUA et AMSUB, pas MHS (90 points, mais fauch ee63 ; on peut changer le codage en dur des fauchées ou demi-fauchées, mais 64 ; programme adapte a AMSUA et AMSUB, pas MHS (90 points, mais fauchée 65 65 ; un peu plus large) 66 66 ; … … 84 84 ; - lelod 20120620 85 85 ; 86 ; * am elioration du code et introduction des corrections par86 ; * amélioration du code et introduction des corrections par 87 87 ; satellite pour amsub 88 ; * impasse sur diff erence amsub - mhs ace niveau89 ; remis les donn ees de correction dans data_raf_amsu pour update VARAMMA88 ; * impasse sur différence amsub - mhs à ce niveau 89 ; remis les données de correction dans data_raf_amsu pour update VARAMMA 90 90 ; 91 91 ; - lelod 20120525 92 92 ; 93 93 ; * analyse de la correction nadir : refonte et calcul par satellite 94 ; avec adaptation à la r egion choisie (Afrique de l'ouest)95 ; changement afaire dans extract_amsua.pro94 ; avec adaptation à la région choisie (Afrique de l'ouest) 95 ; changement à faire dans extract_amsua.pro 96 96 ; 97 97 ; - fplod 20120416 … … 101 101 ; - fplod 20120106 102 102 ; 103 ; * reprise des modifs lelod : changement de localisation des fichiers de correction 103 ; * reprise des modifs lelod : changement de localisation des fichiers de 104 ; correction 104 105 ; 105 106 ; - lelod 20111209 106 107 ; 107 ; * modif organisation avec s eparation des traitements un seul canal traite108 ; * modif organisation avec séparation des traitements un seul canal traité 108 109 ; 109 110 ; - lelod 20111019 110 111 ; 111 112 ; * fonction pixelsize fait le calcul des tailles des taches au sol a et 112 ; b, et ressort le tableau correspondant sur la fauch ee113 ; b, et ressort le tableau correspondant sur la fauchée 113 114 ; appelé en début de interpol 114 115 ; … … 147 148 endelse 148 149 149 ; param etres AMSU et calcul de la geometrie de la fauchee150 ; pour interpolation de la correction (calculee sur geometrie AMSUA) a AMSUB150 ; paramÚtres AMSU et calcul de la géométrie de la fauchée 151 ; pour interpolation de la correction (calculée sur géométrie AMSUA) a AMSUB 151 152 nfova=30 152 153 nfovb=90 … … 157 158 alonga=alongatot[ndfova:nfova-1] 158 159 pixa=pixatot[ndfova:nfova-1] 159 ;ifov nadir : diam etre (km)160 ;ifov nadir : diamÚtre (km) 160 161 ifova=48.05 161 ; position dans la fauch ee: premier point au nadir a ifov/2162 ; position dans la fauchée: premier point au nadir a ifov/2 162 163 ; zone pixel : ellipse de grand axe pixb et petit axe alongb 163 coefa=1 ; recouvrement des pixels dans la fauch ee164 coefa=1 ; recouvrement des pixels dans la fauchée 164 165 fova(0)=ifova/2. 165 166 for i=1,ndfova-1 do fova(i)=fova(i-1)+coefa*(pixa(i-1)/2 +pixa(i)/2) ; vérifier!!! … … 173 174 alongb=alongbtot[ndfovb:nfovb-1] ; vérifier l'intervalle!!!!! 174 175 pixb=pixbtot[ndfovb:nfovb-1] 175 ;ifov nadir : diam etre (km)176 ;ifov nadir : diamÚtre (km) 176 177 ifovb=16. 177 178 coefb=0.8 … … 182 183 ;for i=0,43 do fov_b(43-i)=fov_b(44-i)+coefb*(pixb(43-i)/2 +pixb(44-i)/2) 183 184 for i=0,ndfovb-1 do fov_b(i)=-fovb(ndfovb-1-i) 184 185 185 186 186 path = project_env + '/src/dataref_amsu/' -
trunk/src/map_amab.pro
r634 r635 75 75 if (flag1 eq 0) then goto, nopoints 76 76 na=SIZE(reform(ama_scan.btemps[0,*,*])) 77 na_scan=na[2] ; nb lignes (fauch ees) dans l'orbite78 na_fov=na[1] ; nb points dans la fauch ee77 na_scan=na[2] ; nb lignes (fauchées) dans l'orbite 78 na_fov=na[1] ; nb points dans la fauchée 79 79 satt_ide=ama_head.h_satid 80 80 tt=REFORM(ama_scan.scnlintime/3600000.) … … 93 93 ENDIF 94 94 95 nbpix_a = 30 ; nb pixels dans la fauch ee AMSUA = na_fov96 nbpix_b = 90 ; nb pixels dans la fauch ee AMSUB = nb_fov97 98 99 ; s election des lignes amsub qui minimisent la distance avec le centre95 nbpix_a = 30 ; nb pixels dans la fauchée AMSUA = na_fov 96 nbpix_b = 90 ; nb pixels dans la fauchée AMSUB = nb_fov 97 98 99 ; sélection des lignes amsub qui minimisent la distance avec le centre 100 100 ; des lignes amsua 101 101 get_sync_pulse, use_amsua, pulse_line, descending ; fonction qui cherche les pixels AMSUB qui minimisent la distance avec ceux d'AMSUA … … 105 105 106 106 fovb=indgen(nbpix_b - 1 ) + 1 107 ; cette fois on travaille sur la fauch ee107 ; cette fois on travaille sur la fauchée 108 108 if (use_amsua EQ 1 ) AND (use_amsub EQ 1) THEN BEGIN 109 109 sfo=where((fix(fovb+1) mod 3) eq 0) … … 127 127 ;------------------------------------------------------------------- 128 128 ; 129 ; choix d'un pixel amsub sur 3 et une ligne synchronis ee avec amsua129 ; choix d'un pixel amsub sur 3 et une ligne synchronisée avec amsua 130 130 ; 131 131 ;------------------------------------------------------------------- … … 141 141 endfor 142 142 ; on lit la structure et on extrait les infos: temps, longitude, 143 ; latitude, et les Tbs des diff erents canaux (15 pour AMSUA, 5 pour AMSUB)143 ; latitude, et les Tbs des différents canaux (15 pour AMSUA, 5 pour AMSUB) 144 144 bmch1_1=REFORM(amb_scan.btemps[0,*,*]/100.) 145 145 bmch2_1=REFORM(amb_scan.btemps[1,*,*]/100.) … … 153 153 bmlon_1=REFORM(amb_scan.latlon[1,*,*]/1.E4) 154 154 155 ; si use_amsua=0 tout cela se r eduit a b*=b*_1 et c'est tout155 ; si use_amsua=0 tout cela se réduit a b*=b*_1 et c'est tout 156 156 if (use_amsua eq 0) then begin 157 157 bmzen=bmzen_1 … … 245 245 jour_ama=amaday[0] 246 246 ;----------------- 247 ; ici on s electionne la zone definie248 ; on elimine les donnees non valides247 ; ici on sélectionne la zone définie 248 ; on élimine les données non valides 249 249 ;----------------- 250 250 … … 252 252 tbmax=350 253 253 254 ;;on d efinit ici par precaution contre les donnees erronees seulement la zone geographique254 ;;on définit ici par précaution contre les données erronées seulement la zone géographique 255 255 256 256 zone=where((amalon ge lonmin) and (amalon le lonmax) $ … … 290 290 dam[24,*]=bmch5[zone] 291 291 292 ; on r eeaffecte les donnees erronees ala valeur -999.292 ; on réaffecte les données erronées à la valeur -999. 293 293 294 294 for j=0L,nn-1L do begin -
trunk/src/meanandstdplot.m
r634 r635 2 2 3 3 %MEANANDSTDPLOT est une fonction permettant de realiser la carte des 4 %moyennes et ecart-types d'une variable dont les donn ees sont inclus dans4 %moyennes et ecart-types d'une variable dont les données sont inclus dans 5 5 %une matrice 3D dont les dimensions sont le temps, longitudes et latitudes. 6 6 … … 27 27 % * dim3 : Variable de la dimension 3 de la matrice 'data', c'est-a-dire 28 28 % les latitudes. 29 % * nomvar (caract eres) : Nom et unite de la donnee etudiee ici29 % * nomvar (caractÚres) : Nom et unite de la donnée etudiee ici 30 30 % (Ex : 'cumuls EPSAT (mm)'). 31 31 % 32 32 % - Donnees de sorties : 33 33 % 34 % * meandata : Matrice 2D (longitudes, latitudes) comportant les donn ees34 % * meandata : Matrice 2D (longitudes, latitudes) comportant les données 35 35 % moyennes sur le temps de la variable de la matrice 'data'. 36 % * stddata : Matrice 2D (longitudes, latitudes) comportant les donn ees36 % * stddata : Matrice 2D (longitudes, latitudes) comportant les données 37 37 % d'ecart-types sur le temps de la variable de la matrice 'data'. 38 38 % … … 94 94 figure(); 95 95 96 % Visualisation des donn ees (il faut utiliser la transposée pour le96 % Visualisation des données (il faut utiliser la transposée pour le 97 97 % 'imagesc' pour mettre la dimension 1, longitudes, sur l'axe des x). 98 98 subplot(1,2,1); -
trunk/src/mem_to_file_amsu_t2.pro
r634 r635 95 95 ; * ajout de nbpix dans la premiÚre ligne de header 96 96 ; * ajout d'une seconde ligne d'entete avec les coordonnées de la zone 97 ; * suppression de param etres redondants97 ; * suppression de paramÚtres redondants 98 98 ; 99 99 ; - fplod 20111208T173432Z aedon.locean-ipsl.upmc.fr (Darwin) -
trunk/src/missingdaytonan.m
r368 r635 1 1 function [mat_withnan, dimtemp_complete] = missingdaytonan(mat_ini,dimtemp) 2 2 3 %MISSINGDAYTONAN est une fonction permettant, pour des donn ees journalieres4 %concaten ees, de remplir les jours manquants par des 'NaN' dans la matrice5 %de donn ees et de mettre ajour la matrice temporelle.3 %MISSINGDAYTONAN est une fonction permettant, pour des données journaliÚres 4 %concatenées, de remplir les jours manquants par des 'NaN' dans la matrice 5 %de données et de mettre à jour la matrice temporelle. 6 6 7 7 % … … 17 17 % =========== 18 18 % 19 % - Donn ees d'entrees :20 % 21 % * mat_ini : Matrice 3D de donn ees initiales dont la premiere dimension19 % - Données d'entrées : 20 % 21 % * mat_ini : Matrice 3D de données initiales dont la premiÚre dimension 22 22 % est le temps. 23 23 % * dimtemp : Variable de la dimension temporelle de la matrice de 24 % donn ees initiales, en jour julien.25 % 26 % - Donn ees de sorties :27 % 28 % * mat_withnan : Matrice 3D de donn ees finales avec des 'NaN' pour les24 % données initiales, en jour julien. 25 % 26 % - Données de sorties : 27 % 28 % * mat_withnan : Matrice 3D de données finales avec des 'NaN' pour les 29 29 % jours initialement manquants. 30 30 % * dimtemp_complete : Variable de la dimension temporelle de la matrice 31 % de donn ees finales, en jour julien.31 % de données finales, en jour julien. 32 32 % 33 33 % EXAMPLES … … 60 60 % - jaclod 2011-07-27 61 61 % 62 % * Ajout de la documentation, des commentaires et de la d emonstration.62 % * Ajout de la documentation, des commentaires et de la démonstration. 63 63 % 64 64 % - jaclod 2011-07-26 … … 92 92 nanmat = permute(nanmat,[3 1 2]); 93 93 94 % Passage de l'information temporelle dans une matrice s eparant chaque95 % element de la date.94 % Passage de l'information temporelle dans une matrice séparant chaque 95 % élément de la date. 96 96 tempvec = datevec(dimtemp); 97 97 98 % R ecuperation du premier et dernier mois de donnees.98 % Récupération du premier et dernier mois de données. 99 99 Mois_start = tempvec(1,2); 100 100 Mois_stop = tempvec(size(tempvec,1),2); 101 101 102 % Initialisation des donn ees de sorties qui seront modifiees tout au long102 % Initialisation des données de sorties qui seront modifiées tout au long 103 103 % de cette fonction. 104 104 mat_withnan = mat_ini; … … 120 120 Jour = 1; 121 121 122 % V erification sur chaque jour.122 % Vérification sur chaque jour. 123 123 while Jour <= maxjourmois(Mois); 124 124 … … 131 131 if isempty(find(tempvec(indmois,3)==Jour, 1)); 132 132 133 % Il faut trouver aquel endroit il faut ajouter des NaN.134 % On cherche le jour pr esent precedent ou, a defaut, le133 % Il faut trouver à quel endroit il faut ajouter des NaN. 134 % On cherche le jour présent précédent ou, à défaut, le 135 135 % jour suivant. 136 136 Jourprec = Jour - 1; … … 144 144 end 145 145 146 % S'il n'y avait pas de jour pr ecedent, on cherche parmi146 % S'il n'y avait pas de jour précédent, on cherche parmi 147 147 % les suivants. 148 148 if isempty(indprec) == 1; … … 158 158 end 159 159 160 % Si on a l'indice suivant, on en d eduit l'indice161 % pr ecedent.160 % Si on a l'indice suivant, on en déduit l'indice 161 % précédent. 162 162 indprec = indsuiv - 1; 163 163 164 164 else 165 165 166 % Si on a l'indice pr ecedent, on en deduit l'indice166 % Si on a l'indice précédent, on en déduit l'indice 167 167 % suivant. 168 168 indsuiv = indprec + 1; … … 170 170 end 171 171 172 % Ajout de Nan entre les jours pr ecedents et suivants.172 % Ajout de Nan entre les jours précédents et suivants. 173 173 indinf = indmois(1)-1+indprec; 174 174 indsup = indmois(1)-1+indsuiv; 175 175 176 % L'ajout diff erent selon l'emplacement du jour par rapport177 % a l'ensemble. Il peut etre encercle ou sur une extremite.176 % L'ajout différent selon l'emplacement du jour par rapport 177 % à l'ensemble. Il peut être encerclé ou sur une extrémité. 178 178 if indinf ~= 0 && indsup <= size(mat_withnan,1); 179 179 180 % Dans ce cas, on est entour epar d'autres jours181 % pr esents.180 % Dans ce cas, on est entouré par d'autres jours 181 % présénts. 182 182 mat_withnan = cat(1,mat_withnan(1:indinf,:,:),nanmat(1,:,:),mat_withnan(indsup:size(mat_withnan,1),:,:)); 183 183 dimtemp_complete = cat(2,dimtemp_complete(1:indinf),datenum(tempvec(1,1),Mois,Jour),dimtemp_complete(indsup:size(dimtemp_complete,2))); … … 185 185 else 186 186 187 % Dans ce cas on est sur l'une des extr imite. Le suite188 % d epend s'il s'agit du premier ou du dernier jour.187 % Dans ce cas on est sur l'une des extrémité. Le suite 188 % dépend s'il s'agit du premier ou du dernier jour. 189 189 if indinf == 0; 190 190 … … 204 204 end 205 205 206 % Mise ajour des informations temporelles.206 % Mise à jour des informations temporelles. 207 207 tempvec = datevec(dimtemp_complete); 208 208 209 209 end 210 210 211 % Modification de la variable 'Jour', on s'int eresse au jour211 % Modification de la variable 'Jour', on s'intéresse au jour 212 212 % suivant. 213 213 Jour = Jour + 1; -
trunk/src/msgnuage.pro
r633 r635 47 47 ; * rewrote in matlab/octave 48 48 ; * introduce a time dimension 49 ; * build useful loutput : add geolocation (may be two outputs will49 ; * build useful output : add geolocation (may be two outputs will 50 50 ; be necessary : one summary and one NetCDF file 51 51 ; * suppress goto … … 150 150 lon1=-25 & lon2=25 & lat1=-5 & lat2=20 151 151 domdef,lon1,lon2,lat1,lat2 152 h1=23 & h2=23 ; en principe, la m eme heure que AMSU152 h1=23 & h2=23 ; en principe, la même heure que AMSU 153 153 data=read_ncdf('DATA', h1,h2,/timestep,timevar = 'time', file = file) 154 154 ; ++ close -
trunk/src/nonprecipperiods.m
r634 r635 31 31 % des données par exemple ('cumuls EPSAT (mm)' ou 'cumuls par analyses 32 32 % des Tb MSG (mm)'). 33 % * infocompl (en caractÚres, fac tultatif) : Informations complémentaires33 % * infocompl (en caractÚres, facultatif) : Informations complémentaires 34 34 % sur les données pour le titre. (La date étant automatiquement indique 35 35 % dans le titre, informations suite à une opération spéciale, 'échelle … … 38 38 % * maxmean (Facultatif) : Borne supÚrieure de l'échelle des moyennes. 39 39 % * minstd (Facultatif) : Borne inférieure de l'échelle des écart-types. 40 % * maxstd (Facultatif) : Borne inférieure de l' echelle des écart-types.40 % * maxstd (Facultatif) : Borne inférieure de l'échelle des écart-types. 41 41 % 42 42 % - Données de sorties : … … 93 93 % - fplod 20110804T132212Z aedon.locean-ipsl.upmc.fr (Darwin) 94 94 % 95 % * mini ze decoration (but not enougth ?)95 % * minimize decoration (but not enough ?) 96 96 % 97 97 % - jaclod 2011-07-29 98 98 % 99 99 % * Ajout des données de sorties. 100 % * Ajout d'une restriction sur les échelles de moyennes et ecart-types100 % * Ajout d'une restriction sur les échelles de moyennes et écart-types 101 101 % pour une meilleure observation. 102 102 % * Ajout de la démonstration. … … 133 133 134 134 % Initialisation de la matrice qui contiendra les moyennes du temps en jour 135 % des p eriodes de non precipitations.135 % des périodes de non précipitations. 136 136 meantimestepof0 = zeros(size(ij_concat,2),size(ij_concat,3)); 137 137 138 138 % Initialisation de la matrice qui contiendra les ecart-types du temps en 139 % jour des p eriodes de non precipitations.139 % jour des périodes de non précipitations. 140 140 stdtimestepof0 = zeros(size(ij_concat,2),size(ij_concat,3)); 141 141 142 % Suppressions des donn ees pour les jours ou nous avons que des 'NaN'.143 % On cherche s'il y en a, quels sont les pas de temps concern es et leur142 % Suppressions des données pour les jours ou nous avons que des 'NaN'. 143 % On cherche s'il y en a, quels sont les pas de temps concernés et leur 144 144 % nombre. 145 145 indnan = find(isnan(ij_concat(:,1,1))); … … 149 149 if ~isempty(indnan); 150 150 151 % On boucle pour supprimer chaque pas de temps concern es en commencant151 % On boucle pour supprimer chaque pas de temps concernés en commençant 152 152 % par les derniers (si on souhaite par exemple supprimer les pas de 153 153 % temps 2 et 5 et que l'on supprime le 2 d'abord, le 5e pas de temps 154 % sera ensuite d ecale au 4e. En commencant par la fin, cela ne se154 % sera ensuite décalé au 4e. En commençant par la fin, cela ne se 155 155 % produit pas). 156 156 for nansuppr = 1 : nbnan; … … 178 178 for ilat = 1 : size(ij_concat,3); 179 179 180 % Recuperation des donnees du pixel.180 % Récupération des données du pixel. 181 181 data = squeeze(ij_concat(:,ilon,ilat)); 182 182 183 % R ecuperation des indices ou les precipitations sont nulles183 % Récupération des indices ou les précipitations sont nulles 184 184 % pour le pixel considere. 185 185 indzero = find(data==0); 186 186 187 187 % Boucle sur les indices trouves (Elle ne se fait pas si aucun 188 % 0 n'a ete trouve).188 % 0 n'a été trouvé). 189 189 indindzero = 1; 190 190 nbperiods = 0; 191 191 while indindzero <= size(indzero,1) 192 192 193 % R ecuperation de l'indice de debut de la periode de 0.193 % Récupération de l'indice de debut de la période de 0. 194 194 indstart = indzero(indindzero); 195 195 196 % On cherche l'indice de fin de la p eriode de 0.196 % On cherche l'indice de fin de la période de 0. 197 197 while indindzero ~= size(indzero,1) && indzero(indindzero+1) - indzero(indindzero) == 1; 198 198 … … 205 205 nbperiods = nbperiods + 1; 206 206 207 % On enregistre pour chaque p eriode, le nombre de jours de non208 % pr ecipitation.207 % On enregistre pour chaque période, le nombre de jours de non 208 % précipitation. 209 209 timestepof0(nbperiods) = 1 + indstop - indstart; 210 210 … … 254 254 % Creation de variables comportant les titres et noms des axes. 255 255 if nargin >= 6; 256 Titlegen = (['Suivi des pauses de pr ecipitations d''apres les ' nomvar ' sur ' num2str(size(ij_concat,1)) ' jours du ' datestr(time_concat(1),'dd mmm yyyy') ' au ' datestr(time_concat(size(time_concat,2)),'dd mmm yyyy') char(10) infocompl]);256 Titlegen = (['Suivi des pauses de précipitations d''apres les ' nomvar ' sur ' num2str(size(ij_concat,1)) ' jours du ' datestr(time_concat(1),'dd mmm yyyy') ' au ' datestr(time_concat(size(time_concat,2)),'dd mmm yyyy') char(10) infocompl]); 257 257 else 258 Titlegen = (['Suivi des pauses de pr ecipitations d''apres les ' nomvar ' sur ' num2str(size(ij_concat,1)) ' jours du ' datestr(time_concat(1),'dd mmm yyyy') ' au ' datestr(time_concat(size(time_concat,2)),'dd mmm yyyy')]);259 end 260 261 Title1 = ('Moyennes des jours de non pr ecipitation');262 Title2 = ('Ecart-types des jours de non pr ecipitation');258 Titlegen = (['Suivi des pauses de précipitations d''apres les ' nomvar ' sur ' num2str(size(ij_concat,1)) ' jours du ' datestr(time_concat(1),'dd mmm yyyy') ' au ' datestr(time_concat(size(time_concat,2)),'dd mmm yyyy')]); 259 end 260 261 Title1 = ('Moyennes des jours de non précipitation'); 262 Title2 = ('Ecart-types des jours de non précipitation'); 263 263 Abs = 'Longitudes'; 264 264 Ord = 'Latitudes'; … … 314 314 %! more off 315 315 %! [ij_cumul_concat, time_concat, Longitudes, Latitudes] = cumulEPSAT_concat('extracted', 0, 0, 0, 0, 0, 0, 2006); 316 %! [meantimestepof0, stdtimestepof0] = nonprecipperiods(ij_cumul_concat, time_concat, Longitudes, Latitudes, 'cumuls EPSAT (mm)', 'Restriction des echelles entre 0 et 7 pour la demonstration', 0, 7, 0, 7);316 %! [meantimestepof0, stdtimestepof0] = nonprecipperiods(ij_cumul_concat, time_concat, Longitudes, Latitudes, 'cumuls EPSAT (mm)', 'Restriction des échelles entre 0 et 7 pour la démonstration', 0, 7, 0, 7); -
trunk/src/nuage.pro
r634 r635 64 64 tbamsu=data.arr 65 65 ; tentative pour boucher les trous dans la glille AMSU 66 ; masque des donn ees valides66 ; masque des données valides 67 67 mask=bytarr(nblon,nblat) 68 68 for j=0,nblat-1 do begin … … 71 71 mask(indmin:indmax,j)=1 72 72 endfor 73 tbplein=extrapolate(tbamsu,finite(tbamsu),10) ;extrapole lin eairement a partir des donnees bonnes73 tbplein=extrapolate(tbamsu,finite(tbamsu),10) ;extrapole linéairement à partir des données bonnes 74 74 ; entourant le trou, donc extrapole aussi en dehors de la zone de l'orbite 75 tbplein(where(mask eq 0))=!values.f_nan ; remet en Nan les donn ees exterieures al'orbite75 tbplein(where(mask eq 0))=!values.f_nan ; remet en Nan les données extérieures à l'orbite 76 76 77 77 seuil=270. … … 90 90 ; lon1=15 & lon2=20 & lat1=7 & lat2=12 91 91 domdef,lon1,lon2,lat1,lat2 92 h1=23 & h2=23 ; en principe, la m eme heure que AMSU92 h1=23 & h2=23 ; en principe, la même heure que AMSU 93 93 data=read_ncdf('DATA', h1,h2,/timestep,timevar = 'time', file = file) 94 94 ; ++ close … … 120 120 121 121 ;extraction des nuages 122 ;d etection:122 ;détection: 123 123 print,'on attaque les nuages' 124 124 ; utilisation de la fonction idl qui fait le travail toute seule! … … 129 129 zut=1 130 130 if zut eq 1 then goto,labfin 131 ; m ethode LE initiale131 ; méthode LE initiale 132 132 ncloud_max=5000 133 133 nuag=intarr(ni,ll) … … 154 154 ENDFOR 155 155 ENDIF 156 ; print , 'd etection',i,j,nuag(i,j),wl(i,j)156 ; print , 'détection',i,j,nuag(i,j),wl(i,j) 157 157 ENDIF 158 158 ENDFOR 159 159 ENDFOR 160 160 print,'nb nuages',max(nuag) 161 ;on a num eroteles nuages. Recherche des affectations abusives161 ;on a numéroté les nuages. Recherche des affectations abusives 162 162 163 163 FOR j=0,ll-1 DO BEGIN … … 188 188 ;loadct,18 189 189 plt,nuagplot,window=2,/realcont,/cont_nofill,title='nuages MSG',/rempli,/nocontour,min=min(nuagplot),max=max(nuagplot) 190 ;Moyennes et ecarts types dans les nuages190 ;Moyennes et écarts types dans les nuages 191 191 compt=intarr(numax) 192 192 lmoy=fltarr(numax) -
trunk/src/olr_split.sh
r634 r635 40 40 # 41 41 # For validation of the tool, if :option:`-r` option is set, output files 42 # will be concatenated in one (might be useful l, combinated with42 # will be concatenated in one (might be useful, combinated with 43 43 # :option:`-g` option to check). 44 44 # … … 244 244 if [ ${#} -lt ${minargcount} ] 245 245 then 246 echo "eee : not enough targuments"246 echo "eee : not enough arguments" 247 247 echo "${usage}" 248 248 exit 1 … … 357 357 else 358 358 # I remove the file because I don't know how to tell ncks to ask 359 # interactiv ily if I want to append, overwrite etc...359 # interactively if I want to append, overwrite etc... 360 360 rm -f ${fileout} 361 361 fi -
trunk/src/paper01_pre.sh
r634 r635 88 88 # add dataset parameter 89 89 # 90 # ++les fichiers de climato sont produits à partir des fichiers de référence90 # les fichiers de climato sont produits à partir des fichiers de référence 91 91 # donc il faudrait plutÃŽt lancer clim++ avant ou dedans 92 92 # 93 # ++quels sont les fichiers de références AMSU94 # 95 # ++ comment ça marche sur climserv93 # quels sont les fichiers de références AMSU 94 # 95 # comment ça marche sur ClimServ 96 96 # 97 97 # CAUTIONS … … 298 298 nfile=0 299 299 # have we all then yearly-afratl ? 300 # ++ et si ils sont là est-ce que c'est la bonn ne version300 # ++ et si ils sont là est-ce que c'est la bonne version 301 301 while [ ${iyear} -le ${iyearmax} ] 302 302 do -
trunk/src/pixelsize.pro
r634 r635 13 13 ; suivant l'article de [Bennartz:JAOT:2000]_ 14 14 ; 15 ; swath(ab): grand axe de la tache au sol (sens fauch ee == swath)15 ; swath(ab): grand axe de la tache au sol (sens fauchée == swath) 16 16 ; 17 17 ; track(ab) : petit axe de la tache au sol (sens trajectoire sat == track) 18 18 ; 19 ; parametrisation des nb points fauch ee:19 ; parametrisation des nb points fauchée: 20 20 ; 2x15 pour AMSUA, 2x45 pour AMSUB 21 21 ; … … 38 38 ; 39 39 ; remplacer le "pro" par "function" 40 ; pr evoir trace de controle des tailles de pixel (ellipes)40 ; prévoir trace de contrÃŽle des tailles de pixel (ellipes) 41 41 ; tester les dimensionnements 42 42 ; 43 ; on peut changer le codage en dur des fauch ees ou demi-fauchees, mais44 ; programme adapte a AMSUA et AMSUB, pas MHS (90 points, mais fauch ee43 ; on peut changer le codage en dur des fauchées ou demi-fauchées, mais 44 ; programme adapte a AMSUA et AMSUB, pas MHS (90 points, mais fauchée 45 45 ; un peu plus large) 46 46 ; … … 83 83 pixb=fltarr(45) 84 84 85 ;taille pixels dans la fauch ee incluant l'elargissement par integration - partant du bord85 ;taille pixels dans la fauchée incluant l'elargissement par integration - partant du bord 86 86 for n=0,44 do pixb(n)=79.08+2.84*(n+1)-14.78*(n+1)^0.666 87 87 for n=0,14 do pixa(n)=230.65+12.39*(n+1)-95.06*(n+1)^0.5 … … 91 91 for n=0,44 do alongb(n)=28.72-0.9*(n+1)+0.094*(n+1)^1.5 92 92 93 ; symetrie pour l'autre demi fauch ee93 ; symetrie pour l'autre demi fauchée 94 94 pix_b=fltarr(45) 95 95 along_b=fltarr(45) -
trunk/src/plot_amsu.pro
r634 r635 80 80 ; decodage du nb de points (nn) 81 81 nn=n_elements(tbinit) 82 print,'fauch ee',min(fov),max(fov)82 print,'fauchée',min(fov),max(fov) 83 83 print,'nb orbites',max(desc) 84 84 … … 100 100 lolo=lon[jnd] 101 101 lala=lat[jnd] 102 for ide=descmin,descmax do print,'heure des orbites trac ees',mean(hour[ide])102 for ide=descmin,descmax do print,'heure des orbites tracées',mean(hour[ide]) 103 103 plot,lon,lat,xrange=[lonmin,lonmax],yrange=[latmin,latmax],xstyle=1,ystyle=1,/nodata 104 104 colscale=intarr(n_elements(tb)) -
trunk/src/plot_cartes3B42.m
r603 r635 101 101 else 102 102 indlat=find(Latitude>=latmin & Latitude<=latmax); 103 % countlat=find(Latitude<=latmax,1,'last')-startlat+1;103 % countlat=find(Latitude<=latmax,1,'last')-startlat+1; 104 104 indlon=find(Longitude>=lonmin & Longitude<=lonmax); 105 105 %countlon=find(Longitude<=lonmax,1,'last')-startlon+1; … … 109 109 %Longitude = Longitude(Longitude >= lonmin & Longitude <= lonmax); 110 110 PPT=ncid{'ppt'}(:,indlat,indlon); 111 % disp(['iii: taille ppt'])112 % size(PPT)111 % disp(['iii: taille ppt']) 112 % size(PPT) 113 113 end 114 114 if netcdf_open_available … … 116 116 end 117 117 clear ncid 118 %s election de la saison des pluies118 %sélection de la saison des pluies 119 119 ind_date=find(Temps>=datenum(annee,6,1)&Temps<=datenum(annee,11,30)); 120 120 … … 140 140 colorbar("SouthOutside"); 141 141 % pour l'inversion de l'axe des ordonnées y (origine en bas à 142 % gauche, valeurs Y croissantes de bas en haut (par d efaut)142 % gauche, valeurs Y croissantes de bas en haut (par défaut) 143 143 axis('xy'); 144 144 %ppt_moy=peaks(latmax); … … 148 148 %title('PPT Moyenne 2000-2009','fontsize',14); 149 149 montitre=sprintf('ppt_moyenne : %s\n',ppt_moy); 150 montitre=sprintf('Ann ee : %d\n',annee);151 montitre=[montitre sprintf('P ecipitation Moyenne')];150 montitre=sprintf('Année : %d\n',annee); 151 montitre=[montitre sprintf('Précipitation Moyenne')]; 152 152 title(montitre,'interpreter', 'none'); 153 153 xlabel('Longitude','fontsize',14); … … 156 156 %print -djpeg -r72 'carte3B42_2001.jpg'; 157 157 subplot1(2) 158 %title('PPT Ecartype 2000-2009','fontsize',14)158 %title('PPT Ãcart type 2000-2009','fontsize',14) 159 159 montitre=sprintf('ppt_ecartyp : %s\n',ppt_ecartyp); 160 montitre=sprintf('Ann ee : %d\n',annee);161 montitre=[montitre sprintf('Pr ecipitation Ecart Type')];160 montitre=sprintf('Année : %d\n',annee); 161 montitre=[montitre sprintf('Précipitation Ãcart Type')]; 162 162 title(montitre,'interpreter', 'none'); 163 163 image3B42=imagesc( Longzone, Latzone, ppt_ecartyp); … … 166 166 colorbar("SouthOutside"); 167 167 168 %title(' Ecart Type PPT en 2008','fontsize',14)168 %title('Ãcart Type PPT en 2008','fontsize',14) 169 169 % pour l'inversion de l'axe des ordonnées y (origine en bas à 170 % gauche, valeurs Y croissantes de bas en haut (par d efaut)170 % gauche, valeurs Y croissantes de bas en haut (par défaut) 171 171 axis('xy'); 172 %title('Variabilit e Espatiale PPT moyenne Ferlo (2008)');172 %title('Variabilité spatiale PPT moyenne Ferlo (2008)'); 173 173 %figure=1; 174 174 %xdata=Temps … … 181 181 %ylim([0 110]) 182 182 %xlim([0 370]) 183 %title('Moyennes Journali ere ppt')183 %title('Moyennes JournaliÚre ppt') 184 184 xlabel('Longitude','fontsize',14); 185 185 … … 187 187 %ylabel('Latitude','fontsize',14); 188 188 %grid on 189 %legend('pr ecipitation moyenne')189 %legend('précipitation moyenne') 190 190 %print -djpeg cartes2008.jpg 191 192 193 -
trunk/src/plot_cumulEPSAT.m
r634 r635 103 103 % * remove diacriticals from title and labels 104 104 % to avoid "warning: ft_render: skipping missing glyph for character" 105 % runn ning with octave 3.4105 % running with octave 3.4 106 106 % 107 107 % - fplod 20110311T092857Z aedon.locean-ipsl.upmc.fr (Darwin) -
trunk/src/plot_lai_gis.m
r634 r635 360 360 end 361 361 if ~isempty(msdnom_select) 362 %montitre= [mont ritre sprintf('type de sol : %s\n ', msdnom_select)];362 %montitre= [montitre sprintf('type de sol : %s\n ', msdnom_select)]; 363 363 malegende_p1= [malegende_p1 sprintf(' - %s', msdnom_select)]; 364 364 else -
trunk/src/plot_lai_parameterscycle.m
r634 r635 53 53 % ==== 54 54 % 55 % add sim ilation demo55 % add simulation demo 56 56 % 57 57 % diviser par un seuil adequat pour toutes les années et les entités ex 30 … … 125 125 126 126 % recherche des reprises de vegetation (maxima) 127 % calcul de la dur ee des anomalies127 % calcul de la durée des anomalies 128 128 duree_anomalie=zeros(size(date_anomalie)); 129 129 lmax=length(date_anomalie); … … 141 141 fin_anomalie=date_anomalie+duree_anomalie 142 142 143 % cal ul de la date du maximum de LAI143 % calcul de la date du maximum de LAI 144 144 lai_max=max(lai_utile); 145 145 ind_maxlai=find(lai_utile == lai_max); -
trunk/src/plot_lai_spline_detect_anomalies.m
r634 r635 364 364 %end 365 365 %if ~isempty(msdnom_select) 366 %montitre= [mont ritre sprintf('type de sol : %s\n ', msdnom_select)];366 %montitre= [montitre sprintf('type de sol : %s\n ', msdnom_select)]; 367 367 % malegende_p1= [malegende_p1 sprintf(' - %s', msdnom_select)]; 368 368 %else -
trunk/src/plot_station.m
r634 r635 105 105 % - fplod 20110302T100637Z aedon.locean-ipsl.upmc.fr (Darwin) 106 106 % 107 % * adap ation for matlab : can not use octave size_equal107 % * adaptation for matlab : can not use octave size_equal 108 108 % 109 109 % - fplod 20110302T084421Z aedon.locean-ipsl.upmc.fr (Darwin) -
trunk/src/precipPlot.m
r634 r635 17 17 % +todo+ pre_precip.sh 18 18 % 19 % This file in mainly a serie of exercices for SoukÚyé Cisse to learn octave.19 % This file in mainly a series of exercices for SoukÚyé Cisse to learn octave. 20 20 % 21 21 % EXAMPLES … … 42 42 % 43 43 % - calcul et tracé des cumuls par decades 44 % - avec subplot mettre toutes figures sur un m eme graphe44 % - avec subplot mettre toutes figures sur un même graphe 45 45 % 46 46 % - last day of month is not always 31 … … 104 104 % 105 105 % * dessin precip_journaliere avec label x yyyymmdd 106 % * des in precip_journaliere avec subplot106 % * dessin precip_journaliere avec subplot 107 107 % 108 108 % - fplod 20100715T075514Z aedon.locean-ipsl.upmc.fr (Darwin) … … 112 112 % - 20100708 soclod+fplod 113 113 % 114 % * ajout precip journali ere114 % * ajout precip journaliÚre 115 115 % 116 116 % - fplod 20100709T072024Z aedon.locean-ipsl.upmc.fr (Darwin) … … 311 311 set(gca,'xtick',xdata); 312 312 set(gca,'xticklabel',xticklabel); 313 % defin ir au title with number of day for courant month and courant year313 % define title with number of day for current month and courant year 314 314 xlabel('1st day of the month each year'); 315 % defin ir autitle with precipitation in (mm)315 % define title with precipitation in (mm) 316 316 ylabel('precipjournaliere (mm)'); 317 317 % give title of figure … … 327 327 xlabel('day number (from June 1st to October 30th)'); 328 328 ylabel('precipjournaliere (mm)'); 329 title('pr ecipitation journaliere');329 title('précipitation journaliÚre'); 330 330 331 331 … … 338 338 domaine_an=1961:2000; 339 339 nban=size(domaine_an,2); 340 % initialise le tableau des mois pour chaque ann ee340 % initialise le tableau des mois pour chaque année 341 341 domaine_month=1:12; 342 342 nbmonth=size(domaine_month,2); 343 343 % initialise le tableau contenant les sommes et les moyennes 344 % mensuelles de toutes les ann ee344 % mensuelles de toutes les années 345 345 summensuelle=zeros(nban,nbmonth); 346 346 meanmensuelle=zeros(nban,nbmonth); 347 % boucle sur les ann ee347 % boucle sur les années 348 348 for ian=1:nban; 349 349 % boucle sur les mois 350 350 for imonth=domaine_month; 351 % calcul de la ligne contenant les pr ecipitations du mois352 % courant/ann ee courante351 % calcul de la ligne contenant les précipitations du mois 352 % courant/année courante 353 353 iligne=imonth+((ian-1)*12); 354 354 if (iligne <= size(precip_journaliere,1)); 355 % calcul de la somme mensuelle des pr ecipitations355 % calcul de la somme mensuelle des précipitations 356 356 summensuelle(ian,imonth)=sum(precip_journaliere(iligne,3:eomday(ian+1961-1,imonth)+2)); 357 % calcul de la moyenne mensuelle des pr ecipitations357 % calcul de la moyenne mensuelle des précipitations 358 358 meanmensuelle(ian,imonth)=summensuelle(ian,imonth)/eomday(ian+1961-1,imonth); 359 359 else … … 379 379 xticklabel=datestr(xdata,'yyyy/mm/dd'); 380 380 % ++todo+++ subplot(nl,nc,(ian+1)-1961); 381 % dessine les pr ecipitations moyennes mensuelles de chaque mois de382 % l'ann ee courante381 % dessine les précipitations moyennes mensuelles de chaque mois de 382 % l'année courante 383 383 if (find(meanmensuelle(ian,domaine_month) > 0 )) 384 384 ifigure=ifigure+1; 385 385 figure(ifigure); 386 386 plot(xdata, meanmensuelle(ian,domaine_month),'o'); 387 % on impose les bornes x et y des graphiques pour avoir la même echelle387 % on impose les bornes x et y des graphiques pour avoir la même échelle 388 388 % sur toutes les figures 389 389 set(gca,'xtick',xdata); -
trunk/src/presentation_lpao.m
r634 r635 35 35 % check/complete list of call to plot_lai_gis 36 36 % 37 % missing data files to run complet ly : test with fake data37 % missing data files to run completely : test with fake data 38 38 % 39 39 % handling errors -
trunk/src/presentation_lpao.sh
r634 r635 138 138 if [ ${#} -lt ${minargcount} ] 139 139 then 140 echo "eee : not enough targuments"140 echo "eee : not enough arguments" 141 141 echo "${usage}" 142 142 exit 1 -
trunk/src/readAMSU.m
r368 r635 9 9 % ========== 10 10 % 11 % routine de lecture d un fichier de donn ees AMSU au format netcdf11 % routine de lecture d un fichier de données AMSU au format netcdf 12 12 % nclod : simplification du seuillage et de la mise sous forme 13 13 % mat_3D(lat,lon, jours) … … 72 72 73 73 %% On realise un seuillage qui optimise l''affichage 74 %% des donn ees peu traitees.74 %% des données peu traitees. 75 75 mat_3D(find((mat_3D>300)|(mat_3D<140)))=NaN; -
trunk/src/readAMSU_clim.m
r634 r635 12 12 % =========== 13 13 % 14 % routine de lecture d un fichier de donn ees AMSU au format netcdf14 % routine de lecture d un fichier de données AMSU au format netcdf 15 15 % 16 16 % EVOLUTIONS … … 76 76 77 77 %% On realise un seuillage qui optimise l''affichage 78 %% des donn ees peu traitees.78 %% des données peu traitees. 79 79 mat_3D(find((mat_3D>300)|(mat_3D<140)))=NaN; -
trunk/src/readERA.m
r634 r635 1 1 function[mat_3D,lat ,lon,jours,niveau]=readERA(file, z_deb, z_fin,nom_var,chemin) 2 2 3 % routine de lecture d un fichier de donn ees ERA40 au format netcdf sur4 % la zone d efinie par les points z_deb zfin de forme [lat lon time level]3 % routine de lecture d un fichier de données ERA40 au format netcdf sur 4 % la zone définie par les points z_deb zfin de forme [lat lon time level] 5 5 6 6 %+ … … 15 15 % =========== 16 16 % 17 % routine de lecture d un fichier de donn ees ERA40 au format netcdf sur18 % la zone definie par les points z_deb zfin de forme [lat lon time level]17 % routine de lecture d un fichier de données ERA40 au format netcdf sur 18 % la zone définie par les points z_deb zfin de forme [lat lon time level] 19 19 % 20 20 % EVOLUTIONS … … 84 84 85 85 if(isempty(niveau)) %variable 3D 86 %extraction de la variable pour les longitudes positives et n egatives86 %extraction de la variable pour les longitudes positives et négatives 87 87 if(~isempty(lop)) 88 88 variable_p=nc{nom_var}(jo,la,lop); … … 98 98 99 99 else %Variable 4D dont on moyenne la dimension "niveau" 100 %extraction de la variable pour les longitudes positives et n egatives100 %extraction de la variable pour les longitudes positives et négatives 101 101 if(~isempty(lop)) 102 102 variable_p=nc{nom_var}(jo,ni,la,lop); -
trunk/src/readERA_LE.m
r368 r635 13 13 % =========== 14 14 % 15 % routine de lecture d un fichier de donn ees ERA40 au format netcdf sur15 % routine de lecture d un fichier de données ERA40 au format netcdf sur 16 16 % la zone definie par les points z_deb zfin de forme [lat lon time level] 17 17 % -
trunk/src/read_lai.m
r634 r635 65 65 % status de retour 66 66 % 67 % description du résultat en ReS T67 % description du résultat en ReStructuredText 68 68 % 69 69 % hard coded value of nb_data_line_max -
trunk/src/read_lai_2d.m
r634 r635 60 60 % status de retour 61 61 % 62 % description du résultat en ReS T62 % description du résultat en ReStructuredText 63 63 % 64 64 % hard coded value of nb_data_line_max; … … 94 94 % - fplod 20101206T103915Z adonis.locean-ipsl.upmc.fr (Linux) 95 95 % 96 % * clean ning thanks to mlint96 % * cleaning thanks to mlint 97 97 % 98 98 % - fplod 20101203T171418Z aedon.locean-ipsl.upmc.fr (Darwin) -
trunk/src/read_lai_gis.m
r634 r635 43 43 % **datejul_value**. 44 44 % 45 % corrige pb de colonne mapusub souvent vide de donn ees avec45 % corrige pb de colonne mapusub souvent vide de données avec 46 46 % textedit (remplace );; par ;" ";) 47 47 % 48 % lecture r eussie sur un nb limite de lignes, mais pb memoire pour48 % lecture réussie sur un nb limite de lignes, mais pb mémoire pour 49 49 % traitement du fichier complet (sur mon Mac) 50 50 % 51 % corrige quelques pbs dans le pr gm(inversion colonnes, ismember51 % corrige quelques pbs dans le programme (inversion colonnes, ismember 52 52 % remplace par isnan,...) 53 53 % 54 % pb de m emoire: impossible d'avoir l'allocation memoire pour les 50000 lignes54 % pb de mémoire: impossible d'avoir l'allocation mémoire pour les 50000 lignes 55 55 % du fichier 56 56 % fonctionne jusqu'a 45000 lignes (sur cratos). … … 114 114 % 115 115 % $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/varamma/svn/trunk/src/read_lai_gis.m $ 116 %117 116 % 118 117 % - fplod 20110920T091450Z aedon.locean-ipsl.upmc.fr (Darwin) … … 170 169 % - lelod 20110728 171 170 % 172 % * pour d eveloppements d'analyse LAI par Soukeye, ajout du parametre171 % * pour développements d'analyse LAI par Soukeye, ajout du paramÚtre 173 172 % nbligne dans la fonction 174 173 % … … 176 175 % 177 176 % * reading data line using technique of read_zi.m 178 % because of string values dmlread c onnaot be used177 % because of string values dmlread can't be used 179 178 % * file written in correct format (. for decimal, ");" as 180 179 % separator, float values for numbers (no more string for … … 312 311 nb_gis_label = nb_gis_label + 1; 313 312 otherwise 314 % here we expect some sthing like "doy"313 % here we expect something like "doy" 315 314 % for example day 9 will be coded "9" 316 315 % ++ todo regexp … … 318 317 clear extra_sdoy 319 318 doy_string = sdoy; 320 %(1,3:end); plus utile, puisque header nettoy e ala fabrication319 %(1,3:end); plus utile, puisque header nettoyé à la fabrication 321 320 clear sdoy 322 321 if ~isnan(str2double(doy_string)) … … 386 385 data_line = fgetl(fid); 387 386 % loop to handle each item on the data line (";" separated value) 388 % attention, il arrive qu'une cellule soit vide (mapusub) : corrig een principe387 % attention, il arrive qu'une cellule soit vide (mapusub) : corrigé en principe 389 388 index_item=1; 390 389 while (~isempty(data_line)) -
trunk/src/read_msg_xrit_raw.py
r628 r635 87 87 ==== 88 88 89 clean ning89 cleaning 90 90 91 91 EVOLUTIONS -
trunk/src/read_precip.m
r634 r635 83 83 % status de retour 84 84 % 85 % description du résultat en ReS T85 % description du résultat en ReStructuredText 86 86 % 87 87 % pourquoi 20061201 : parce que -99.9 dans la case 20061131 qui n'existe pas … … 180 180 % 181 181 % 182 % build precip titation filename to be read182 % build precipitation filename to be read 183 183 switch datasettype 184 184 case {'precip_cm'} -
trunk/src/read_rt_file.pro
r633 r635 50 50 ; * get it from ftp://meso.gsfc.nasa.gov/pub/trmmdocs/rt/read_rt_file.pro 51 51 ; 52 ; * add top ReST header 52 ; * add top ReStructuredText header 53 ; 53 54 ;- 54 55 ;--------------------------------------------------------------- -
trunk/src/read_station.m
r634 r635 68 68 % status de retour 69 69 % 70 % description du résultat en ReS T70 % description du résultat en ReStructuredText 71 71 % 72 72 % add test : no yet done because too many assert to write -
trunk/src/read_zi.py
r628 r635 85 85 ==== 86 86 87 test failed because of newline \r\n writed by wr tite_zi.py87 test failed because of newline \r\n writed by write_zi.py 88 88 89 89 get rid of matlab stuff -
trunk/src/recup_camp.m
r634 r635 51 51 % outputs : std max, etc. to be plot and use in SIG 52 52 % 53 % jbfill is no a matlab or octave function : it has been found by soclod on website ++ 54 % it should be moved to external_matlab. No rest documentation in this source : how to reference it ? 53 % jbfill is no a matlab or octave function : it has been found by soclod 54 % on website ++ 55 % it should be moved to external_matlab. 56 % No rest documentation in this source : how to reference it ? 55 57 % 56 58 % jbfill effect not visible 57 59 % 58 % jbfill al ernative60 % jbfill alternative 59 61 % 60 62 % remove ind_pt_fixes forcing … … 62 64 % return status 63 65 % 64 % avec la demo 1 (simu 1) pas de données trouvées. soit changer la demo soit changer la simu. 66 % avec la demo 1 (simu 1) pas de données trouvées. 67 % soit changer la demo soit changer la simu. 65 68 % 66 69 % idem pour demo2 ... plus bizarre ! 67 70 % 68 % demo3 même avec forçage des points s electionnés pas de points sur la figure71 % demo3 même avec forçage des points sélectionnés pas de points sur la figure 69 72 % ... bizarre ! 70 73 % 71 % bo ite en parametre, selection boitre , rayon72 % 73 % je n'arrive aps en jouant avc xmlin à voir "Dec yyyy" dans les labels x74 % boîte en paramÚtre, sélection boîte , rayon 75 % 76 % je n'arrive pas en jouant avec xmlin à voir "Dec yyyy" dans les labels x 74 77 % 75 78 % externalize boxes def. … … 78 81 % 2000 à 2008 79 82 % 80 % calcul pour les trois premi ere anneeet enregistrer et81 % faire de m eme pour les quatre derniere puis concatener les deux resultats82 % 83 % check be ahaviour with missing value (nanmean vs mean)83 % calcul pour les trois premiÚres années et enregistrer et 84 % faire de même pour les quatre derniÚres puis concaténer les deux résultats 85 % 86 % check behaviour with missing value (nanmean vs mean) 84 87 % 85 88 % externalize plot … … 208 211 209 212 ind_pt_fixes=1:size(lai_value,1); 210 disp([' www : for cage ind_pt_fixes pour map']);213 disp([' www : forçage ind_pt_fixes pour map']); 211 214 212 215 if (isempty(ind_pt_fixes)) -
trunk/src/run_cresamsu.sh
r634 r635 77 77 # 78 78 # calcul du temps estimé total en fonction du nb de jours demandés plutot 79 # qu'un m echant 10:00:00 en dur79 # qu'un méchant 10:00:00 en dur 80 80 # 81 81 # check param or fusion with cresamsu.sh 82 82 # 83 # introduire m ethode comme dans run_modmarin pour batch cratos (pas de PBS !)83 # introduire méthode comme dans run_modmarin pour batch cratos (pas de PBS !) 84 84 # 85 85 # EVOLUTIONS -
trunk/src/run_traite_amsuab.sh
r634 r635 74 74 # 75 75 # calcul du temps estimé total en fonction du nb de jours demandés plutot 76 # qu'un m echant 10:00:00 en dur76 # qu'un méchant 10:00:00 en dur 77 77 # 78 78 # check param or fusion with traite_amsuab.sh 79 79 # 80 # introduire m ethode comme dans run_modmarin pour batch cratos (pas de PBS !)80 # introduire méthode comme dans run_modmarin pour batch cratos (pas de PBS !) 81 81 # 82 82 # EVOLUTIONS … … 99 99 # 100 100 # * add rest title ! 101 # * lancement sur le cluster de climserv avec plus de temps que l'heure de101 # * lancement sur le cluster de ClimServ avec plus de temps que l'heure de 102 102 # base en interactif sur loholt ou que les 6h de base (sans l'option 103 103 # -l walltime) : … … 110 110 # 111 111 # * creation car traite_amsuab.sh trop long en interactif sur 112 # climserv loholt1112 # ClimServ loholt1 113 113 # 114 114 #- -
trunk/src/scatterplot.m
r368 r635 104 104 % - fplod 20100901T150719Z aedon.locean-ipsl.upmc.fr (Darwin) 105 105 % 106 % * restore distinction between A SMU and MSG directories106 % * restore distinction between AMSU and MSG directories 107 107 % * replace int2str by num2str to be able to specify a format 108 108 % * revision of indentation … … 117 117 % * add usage of varamma_startup : no more chemin parameter, PROJECT_ID value 118 118 % used instead 119 % * no more distinction between A SMU and MSG directories : each file is119 % * no more distinction between AMSU and MSG directories : each file is 120 120 % intended to be in PROJECT_ID (links are welcome !) 121 121 % -
trunk/src/script_cat_climeraint2d.sh
r634 r635 51 51 set -u 52 52 53 # Param etres du script53 # ParamÚtres du script 54 54 an_deb=2000 55 55 groupe=msl … … 64 64 dataerai=/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_SF 65 65 data=${dataerai} 66 # Concat enation de tous les pas de temps66 # Concaténation de tous les pas de temps 67 67 while [ annee -le ${an_fin} ] 68 68 do … … 97 97 let imois=imois+1 98 98 done 99 #concat enation des fichiers extraits mois par mois99 #concaténation des fichiers extraits mois par mois 100 100 ncrcat ${chemin}/M${groupe}.${annee}.* ${chemin}/cat${groupe}.${annee}.6TU.nc 101 101 … … 106 106 done 107 107 108 #CAT s erie temporelle mensuelle complete108 #CAT série temporelle mensuelle complÚte 109 109 #ncrcat SLP/cat${groupe}.* SLP/CAT.${groupe}.${an_deb}.${an_fin}.nc 110 110 ncrcat ${chemin}/cat${groupe}.* ${chemin}/CAT.${groupe}.${an_deb}.${an_fin}.6TU.nc 111 111 112 #CLIMATO 113 # Elimination du 29/02/2000112 #CLIMATOLOGIE 113 #Ãlimination du 29/02/2000 114 114 mv ${chemin}/M${groupe}.2000.02.6TU.nc ${chemin}/M${groupe}.2000.02.jours29.nc 115 115 ncks -d time,0,27 ${chemin}/M${groupe}.2000.02.jours29.nc ${chemin}/M${groupe}.2000.02.6TU.nc 116 116 rm ${chemin}/M${groupe}.2000.02.jours29.nc 117 # Elimination du 29/02/2004117 #Ãlimination du 29/02/2004 118 118 mv ${chemin}/M${groupe}.2004.02.6TU.nc ${chemin}/M${groupe}.2004.02.jours29.nc 119 119 ncks -d time,0,27 ${chemin}/M${groupe}.2004.02.jours29.nc ${chemin}/M${groupe}.2004.02.6TU.nc 120 120 rm ${chemin}/M${groupe}.2004.02.jours29.nc 121 121 122 # Concat enation de tous les mois de l'annee 2000122 # Concaténation de tous les mois de l'année 2000 123 123 \rm ${chemin}/cat${groupe}.2000.6TU.nc 124 124 ncrcat ${chemin}/M${groupe}.2000.*.nc ${chemin}/cat${groupe}.2000.6TU.nc 125 # Concat enation de tous les mois de l'annee 2004125 # Concaténation de tous les mois de l'année 2004 126 126 \rm ${chemin}/cat${groupe}.2004.6TU.nc 127 127 ncrcat ${chemin}/M${groupe}.2004.*.nc ${chemin}/cat${groupe}.2004.6TU.nc 128 128 129 ## Elimination du 29/02/2004129 ##Ãlimination du 29/02/2004 130 130 #mv SLP/M${groupe}.2004.02.nc SLP/M${groupe}.2004.02.jours29.nc 131 131 #ncks -d time,0,111 SLP/M${groupe}.2004.02.jours29.nc SLP/M${groupe}.2004.02.nc 132 132 #rm SLP/M${groupe}.2004.02.jours29.nc 133 ## Concat enation de tous les mois de l'annee 2004133 ## Concaténation de tous les mois de l'année 2004 134 134 #ncrcat SLP/M${groupe}.2004.*.nc SLP/cat${groupe}.2004.nc 135 135 #ncea SLP/cat${groupe}.*.nc SLP/climato.${groupe}.${an_deb}.${an_fin}.nc -
trunk/src/script_cat_climeraint3d.sh
r634 r635 49 49 set -u 50 50 51 # Param etres du script51 # ParamÚtres du script 52 52 an_deb=2000 53 53 groupe=geopt 54 #ATTENTION : changer r epertoire et extraction (ncks) pour 3d ou surface54 #ATTENTION : changer répertoire et extraction (ncks) pour 3d ou surface 55 55 an_fin=2007 56 56 ### … … 60 60 annee=${an_deb} 61 61 chemin=/homedata/eymard/OPERA_Trop 62 # ATTENTION : pas m eme repertoire pour 3d et surface62 # ATTENTION : pas même repertoire pour 3d et surface 63 63 #datera40=/bdd/ERA40/NETCDF/4xdaily/AN_PL 64 64 #datera40=/bdd/ERA40/NETCDF/4xdaily/AN_SF … … 70 70 data=${dataerai} 71 71 72 # Concat enation de tous les pas de temps72 # Concaténation de tous les pas de temps 73 73 while [ ${annee} -le ${an_fin} ] 74 74 do … … 102 102 done 103 103 # \rm ${chemin}/${groupe}* 104 #concat enation des fichiers extraits mois par mois104 #concaténation des fichiers extraits mois par mois 105 105 ncrcat ${chemin}/M${groupe}.${annee}.* ${chemin}/cat${groupe}.${annee}.6TU.nc 106 106 let imois=1 … … 109 109 done 110 110 111 #CAT s erie temporelle mensuelle complete (toutes les annees)111 #CAT série temporelle mensuelle complÚte (toutes les années) 112 112 ncrcat ${chemin}/cat${groupe}.* ${chemin}/CAT.${groupe}.${an_deb}.${an_fin}.6TU.nc 113 113 114 #CLIMATO 115 # Elimination du 29/02/2000114 #CLIMATOLOGIE 115 #Ãlimination du 29/02/2000 116 116 mv ${chemin}/M${groupe}.2000.02.6TU.nc ${chemin}/M${groupe}.2000.02.jours29.nc 117 117 ncks -d time,0,27 ${chemin}/M${groupe}.2000.02.jours29.nc ${chemin}/M${groupe}.2000.02.6TU.nc 118 118 rm ${chemin}/M${groupe}.2000.02.jours29.nc 119 # Elimination du 29/02/2004119 #Ãlimination du 29/02/2004 120 120 mv ${chemin}/M${groupe}.2004.02.6TU.nc ${chemin}/M${groupe}.2004.02.jours29.nc 121 121 ncks -d time,0,27 ${chemin}/M${groupe}.2004.02.jours29.nc ${chemin}/M${groupe}.2004.02.6TU.nc 122 122 rm ${chemin}/M${groupe}.2004.02.jours29.nc 123 123 124 # Concat enation de tous les mois de l'annee 2000124 # Concaténation de tous les mois de l'année 2000 125 125 \rm ${chemin}/cat${groupe}.2000.6TU.nc 126 126 ncrcat ${chemin}/M${groupe}.2000.*.nc ${chemin}/cat${groupe}.2000.6TU.nc 127 # Concat enation de tous les mois de l'annee 2004127 # Concaténation de tous les mois de l'année 2004 128 128 \rm ${chemin}/cat${groupe}.2004.6TU.nc 129 129 ncrcat ${chemin}/M${groupe}.2004.*.nc ${chemin}/cat${groupe}.2004.6TU.nc -
trunk/src/selectionimages.m
r368 r635 165 165 imagesamsu=zeros(indicefin-indicedebut+1,indicelat2-indicelat1+1,indicelon2-indicelon1+1); 166 166 167 %lecture des donn ees amsu167 %lecture des données amsu 168 168 for i=1:indicefin-indicedebut+1 169 169 fich=datafilesamsu(i).name; … … 181 181 [a,indicedate2]=min(abs(vecteurdatesamsu-date2)); 182 182 183 %classement des donn ees amsu dans l ordre chronologique183 %classement des données amsu dans l ordre chronologique 184 184 [s,indices]=sort(vecteurdatesamsu); 185 185 imagesamsu=imagesamsu(indices,:,:); … … 206 206 207 207 208 %lecture des donn ees msg, remplissage des vecteurs dates msg et heures msg208 %lecture des données msg, remplissage des vecteurs dates msg et heures msg 209 209 for i=1:indicefin-indicedebut+1 210 210 i -
trunk/src/serietemp.m
r634 r635 1 1 function [result] = serietemp(data, dimtemp, formattemps, nbtickmax, nomvar, infocompl) 2 2 3 %SERIETEMP est une fonction permettant de tracer une s erie temporelle.3 %SERIETEMP est une fonction permettant de tracer une série temporelle. 4 4 5 5 % … … 15 15 % =========== 16 16 % 17 % - Donn ees d'entrees :17 % - Données d'entrées : 18 18 % 19 % * data : Vecteur colonne de donn ees dont la seule dimension est19 % * data : Vecteur colonne de données dont la seule dimension est 20 20 % temporelle. 21 % * dimtemp : Dimension temporelle de la matrice de donn ees 'data' en21 % * dimtemp : Dimension temporelle de la matrice de données 'data' en 22 22 % jour julien. 23 % * formattemps (caract eres) : Format d'affichage du temps sur l'abscisse24 % de la s erie temporelle ('HH:MM' pour avoir l'heure, 'mmm dd' pour le23 % * formattemps (caractÚres) : Format d'affichage du temps sur l'abscisse 24 % de la série temporelle ('HH:MM' pour avoir l'heure, 'mmm dd' pour le 25 25 % mois et le jour par exemple, etc. voir l'aide pour datestr). 26 26 % * nbtickmax : Nombre maximum de 'tick' sur l'axe des abscisses (axe 27 27 % temporel). 28 % * nomvar (en caract eres) : Nom de la variable dont on trace la28 % * nomvar (en caractÚres) : Nom de la variable dont on trace la 29 29 % distribution (Pour le titre et l'axe des abscisses). 30 % * infocompl (en caract eres, facultatif) : Informations complementaires31 % sur les donn ees pour le titre. (Sur la date par exemple 'du 26/07 au30 % * infocompl (en caractÚres, facultatif) : Informations complémentaires 31 % sur les données pour le titre. (Sur la date par exemple 'du 26/07 au 32 32 % ...' par exemple). 33 33 % 34 % Cette fonction permet de tracer une s erie temporelle.34 % Cette fonction permet de tracer une série temporelle. 35 35 % 36 36 % EXAMPLES … … 48 48 % easier 49 49 % 50 % improve optional arguments 50 % improve optional arguments 51 51 % 52 52 % EVOLUTIONS … … 63 63 % - jaclod 2011-07-27 64 64 % 65 % * R evision de la documentation et des commentaires.66 % * Modification de la d emonstration.65 % * Révision de la documentation et des commentaires. 66 % * Modification de la démonstration. 67 67 % 68 68 % - jaclod 2011-07-25 69 69 % 70 % * Creation .70 % * Creation 71 71 % 72 72 %- … … 85 85 error(usage); 86 86 end 87 % Tra cage de la serie temporelle.87 % Traçage de la série temporelle. 88 88 plot(dimtemp,data); 89 89 90 % Ajout de titre, variant selon le nombre d'arguments d'entr ees.90 % Ajout de titre, variant selon le nombre d'arguments d'entrées. 91 91 if nargin == 6; 92 92 title(['Serie temporelle des ' nomvar ' ' infocompl]) … … 105 105 nbtimestep = size(data,1); 106 106 107 % On cherche le pas d'affichage des pas de temps pour ne pas d epasser la108 % limite autoris ee (on prend l'arrondi supérieur avec la fonction 'ceil').107 % On cherche le pas d'affichage des pas de temps pour ne pas dépasser la 108 % limite autorisée (on prend l'arrondi supérieur avec la fonction 'ceil'). 109 109 tickstep = ceil(nbtimestep / nbtickmax); 110 110 111 % On garde les num ero dans temps aafficher.111 % On garde les numéros dans temps à afficher. 112 112 numtime = 1 : tickstep : nbtimestep; 113 113 114 % On enregistre les futures 'ticklabel' sous forme de caract eres.114 % On enregistre les futures 'ticklabel' sous forme de caractÚres. 115 115 time = datestr(dimtemp(numtime),formattemps); 116 116 … … 126 126 %! clear all 127 127 %! close all 128 %! result = serietemp(rand(25,1), datenum(2011,07,25):datenum(2011,07,25)+24, 'mmm dd',7, 'valeurs al eatoires quotidiennes', 'sur 25 jours a partir du 25 juillet 2011');128 %! result = serietemp(rand(25,1), datenum(2011,07,25):datenum(2011,07,25)+24, 'mmm dd',7, 'valeurs aléatoires quotidiennes', 'sur 25 jours a partir du 25 juillet 2011'); -
trunk/src/serietempecm.pro
r633 r635 8 8 ; 9 9 ; Analyse fichiers complets 2000 - 2007 ECMWF 10 ; Attention : 2 an dde ERA40 et 6 ans d'OPERA11 ; Hovmoller et s eries temporelles10 ; Attention : 2 ans de ERA40 et 6 ans d'OPERA 11 ; Hovmoller et séries temporelles 12 12 ; 13 13 ; :Uses: … … 52 52 dom=strcompress(string(lo1,lo2,la1,la2),/remove_all) 53 53 54 ;g eopotentiel : delta entre niveau 700 (7) et 925 hPa54 ;géopotentiel : delta entre niveau 700 (7) et 925 hPa 55 55 lev1=700 56 56 ;lecture premier fichier (OPERA) … … 78 78 saveimage,'SORTIES/'+chp+'hovy2005-2007'+dom+'.png' 79 79 80 ;s eries temporelles80 ;séries temporelles 81 81 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 82 82 chp='geopt' … … 84 84 dom=strcompress(string(lo1,lo2,la1,la2),/remove_all) 85 85 86 ;g eopotentiel : delta entre niveau 700 (7) et 925 hPa86 ;géopotentiel : delta entre niveau 700 (7) et 925 hPa 87 87 ;domaine pour geopt: 20-25 N ? 88 88 … … 111 111 for i=0,ntime1-1 do y1(i)=mean(serie1(0:nx,0:ny,i)) 112 112 113 ; si travail sur les trois derni eres annees, on saute ce passage114 ; lecture deuxi eme fichier (ERA)115 chp2=chp ;chp2='z';!!!!!attention pour g eopotentiel113 ; si travail sur les trois derniÚres années, on saute ce passage 114 ; lecture deuxiÚme fichier (ERA) 115 chp2=chp ;chp2='z';!!!!!attention pour géopotentiel 116 116 file2 = '/volumes/temp/CAT.'+chp2+'.2000.2001.6TU.nc' 117 117 initncdf, file2,zaxis='level', glam = [-180,180] -
trunk/src/showgrid.m
r634 r635 123 123 % - fplod 20110302T172026Z aedon.locean-ipsl.upmc.fr (Darwin) 124 124 % 125 % * adap ation for matlab : can not use octave size_equal125 % * adaptation for matlab : can not use octave size_equal 126 126 % 127 127 % - fplod 20110302T085925Z aedon.locean-ipsl.upmc.fr (Darwin) -
trunk/src/sigmoide.m
r345 r635 62 62 % - fplod 20110202T132012Z aedon.locean-ipsl.upmc.fr (Darwin) 63 63 % 64 % * add minimu nrest header64 % * add minimum rest header 65 65 % 66 66 % - soclod 20110126 … … 78 78 a1c=0.28; 79 79 a2c=0.47; 80 %indices de d ecroissance80 %indices de décroissance 81 81 md=38.67; 82 82 nd=0.13; … … 87 87 %j3=233; 88 88 %j4=361; 89 % d efinir le tableau temps89 % définir le tableau temps 90 90 ac=zeros(nbdoi,1); 91 91 ac(:)=NaN; -
trunk/src/sigmoide2.m
r634 r635 27 27 % - soclod ? 28 28 % 29 % * charger les donn ees datelai.csv sous format d'une ligne qui30 % contient les jours de l'ann ee31 % * d efinition manuelle des parametres d'ajustement pour les deux branches29 % * charger les données datelai.csv sous format d'une ligne qui 30 % contient les jours de l'année 31 % * définition manuelle des paramÚtres d'ajustement pour les deux branches 32 32 % de la fonction (mc,nc,md,et nd) 33 % * d efinition des indices correspondant à l'amplitude total et la33 % * définition des indices correspondant à l'amplitude total et la 34 34 % faible valeur du LAI 35 35 % * description deux branches de la fonction sigmoïde, se basant 36 % sur l' evolution du LAI pour boucler sur les numeros de dates36 % sur l'évolution du LAI pour boucler sur les numéros de dates 37 37 % 38 38 %- … … 54 54 55 55 nbdate=size(date,2); 56 % param etres d'ajustement correspondant à la croissance56 % paramÚtres d'ajustement correspondant à la croissance 57 57 mc=30.11; 58 58 nc=0.13; … … 61 61 a1c=1.34; 62 62 a2c=4.10; 63 % param etres d'ajustement de la branche correspondant à la decroissance63 % paramÚtres d'ajustement de la branche correspondant à la décroissance 64 64 md=37.97; 65 65 nd=0.13; 66 %les valeurs du LAI correspondant al'amplitude totale et à la66 %les valeurs du LAI correspondant à l'amplitude totale et à la 67 67 % faible valeur 68 68 a1d=1.18; … … 85 85 ac(i)=((a1c+a2c*(1/(1+exp(mc-nc*date(i))))))/5; 86 86 end 87 % description de la branche de la d ecroissance de la fonction87 % description de la branche de la décroissance de la fonction 88 88 % sigmoïde 89 89 for j=30:nbdate; … … 99 99 ylabel('LAI'); 100 100 title('fonction sigmoïde'); 101 %legend('lai','verdure ajustée','s enescence ajustée');101 %legend('lai','verdure ajustée','sénescence ajustée'); 102 102 103 103 result=0; -
trunk/src/sigmoide3.m
r634 r635 72 72 % ===== 73 73 % 74 % trouver les équivalents en numéro de jour dans l'ann ee de t1c, t2c, t1d, et t2d74 % trouver les équivalents en numéro de jour dans l'année de t1c, t2c, t1d, et t2d 75 75 % pour la démo 76 76 % … … 82 82 % t2c (unit16 ou double) 83 83 % 84 % valeur d'ajustement de l'ampliude (/5) en dur ici. est-ce que l'on doit la garder, la mettre en paramÚtre ... 84 % valeur d'ajustement de l'amplitude (/5) en dur ici. 85 % est-ce que l'on doit la garder, la mettre en paramÚtre ... 85 86 % 86 87 % automatisation des paramÚtres d'ajustement (pas ici !) -
trunk/src/simul_lai_2d.m
r634 r635 113 113 % - fplod 20101206T105346Z adonis.locean-ipsl.upmc.fr (Linux) 114 114 % 115 % * clean ning thanks to mlint115 % * cleaning thanks to mlint 116 116 % 117 117 % - fplod 20101203T105554Z aedon.locean-ipsl.upmc.fr (Darwin) -
trunk/src/simul_station.m
r634 r635 73 73 % ==== 74 74 % 75 % description du résultat en ReS T75 % description du résultat en ReStructuredText 76 76 % 77 77 % add test -
trunk/src/simul_zi.m
r634 r635 52 52 % ==== 53 53 % 54 % description du résultat en ReS T54 % description du résultat en ReStructuredText 55 55 % 56 56 % add test -
trunk/src/spatialresolution.m
r374 r635 1 1 function [spatialdimension1_fin, spatialdimension2_fin, mat_fin] = spatialresolution(spatialdimension1_ini, spatialdimension2_ini, mat_ini, newresoldim1, newresoldim2) 2 2 3 %SPATIALRESOLUTION est une fonction qui permet, par interpolation lin eaire,4 %de modifier la r esolution spatiale 2D d'une matrice initiale de donnees5 %(2D ou 3D avec une premi ere dimension temporelle), ainsi que la resolution6 %de ses coordonn ees correspondantes.3 %SPATIALRESOLUTION est une fonction qui permet, par interpolation linéaire, 4 %de modifier la résolution spatiale 2D d'une matrice initiale de données 5 %(2D ou 3D avec une premiÚre dimension temporelle), ainsi que la résolution 6 %de ses coordonnées correspondantes. 7 7 8 8 % … … 18 18 % =========== 19 19 % 20 % - Donn ees d'entrees :21 % 22 % * mat_ini : Matrice initiale dont on souhaite modifier la r esolution.23 % * spatialdimension1_ini : Coordonn ees initiales pour la premiere24 % dimension spatiale (dim1) de la matrice de donn ees.25 % * spatialdimension2_ini : Coordonn ees initiales pour la seconde26 % dimension spatiale (dim2) de la matrice de donn ees.27 % * newresoldim1 : Nouvelle r esolution souhaitee pour la premiere20 % - Données d'entrées : 21 % 22 % * mat_ini : Matrice initiale dont on souhaite modifier la résolution. 23 % * spatialdimension1_ini : Coordonnées initiales pour la premiÚre 24 % dimension spatiale (dim1) de la matrice de données. 25 % * spatialdimension2_ini : Coordonnées initiales pour la seconde 26 % dimension spatiale (dim2) de la matrice de données. 27 % * newresoldim1 : Nouvelle résolution souhaitée pour la premiÚre 28 28 % dimension spatiale. 29 % * newresoldim2 : Nouvelle r esolution souhaitee pour la seconde29 % * newresoldim2 : Nouvelle résolution souhaitée pour la seconde 30 30 % dimension spatiale. 31 31 % 32 % - Donn ees de sorties :33 % 34 % * mat_fin : Matrice finale issue de l'interpolation lin eaire de la32 % - Données de sorties : 33 % 34 % * mat_fin : Matrice finale issue de l'interpolation linéaire de la 35 35 % matrice initiale mat_ini. 36 % * spatialdimension1dim1_fin : Coordonn ees finales pour la premiere37 % dimension spatiale (dim1) de la nouvelle matrice de donn ees.38 % * spatialdimension2_fin : Coordonn ees finales pour la seconde39 % dimension spatiale (dim2) de la nouvelle matrice de donn ees.40 % 41 % Cette fonction permet, par interpolation lin eaire, de modifier la42 % r esolution spatiale d'une matrice initiale de donnees, ainsi que la43 % r esolution de ses coordonnees correspondantes.44 % La matrice initiale peut- etre 2D (dim1, dim2) ou 3D si elle comporte, le45 % temps en tant que premi ere dimension de celle-ci (dimension temporelle,36 % * spatialdimension1dim1_fin : Coordonnées finales pour la premiÚre 37 % dimension spatiale (dim1) de la nouvelle matrice de données. 38 % * spatialdimension2_fin : Coordonnées finales pour la seconde 39 % dimension spatiale (dim2) de la nouvelle matrice de données. 40 % 41 % Cette fonction permet, par interpolation linéaire, de modifier la 42 % résolution spatiale d'une matrice initiale de données, ainsi que la 43 % résolution de ses coordonnées correspondantes. 44 % La matrice initiale peut-être 2D (dim1, dim2) ou 3D si elle comporte, le 45 % temps en tant que premiÚre dimension de celle-ci (dimension temporelle, 46 46 % dim1, dim2). Dans ce dernier cas, l'interpolation se fait alors sur 47 47 % chaque pas de temps. … … 51 51 % 52 52 % Voir la 'demo' avec visualisation de la matrice initiale et de la matrice 53 % finale issue de l'interpolation de la premi ere.53 % finale issue de l'interpolation de la premiÚre. 54 54 % 55 55 % SEE ALSO … … 60 60 % 61 61 % Envisager une autre technique possible pour la grille d'interpolation 62 % pour eviter le "probleme des bords" qui se fait ressentir pour un fort63 % changement de r esolution (cf. demo, on a un changement dans les bornes62 % pour éviter le "probleme des bords" qui se fait ressentir pour un fort 63 % changement de résolution (cf. demo, on a un changement dans les bornes 64 64 % des axes, axis nous donne : 65 65 % … … 72 72 % -1.0714 1.0714 -4.2857 4.2857). 73 73 % 74 % Quelle m ethode est la plus pertinente ??74 % Quelle méthode est la plus pertinente ?? 75 75 % 76 76 % EVOLUTIONS … … 81 81 % $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/varamma/svn/trunk/src/spatialresolution.m $ 82 82 % 83 %84 83 % - fplod 20110830T074359Z cratos (Linux) 85 84 % … … 93 92 % - jaclod 2011-07-26 94 93 % 95 % * R evision de la documentation et des commentaires.94 % * Révision de la documentation et des commentaires. 96 95 % 97 96 % - jaclod 2011-07-11 98 97 % 99 % * Modifications des variables pour plus de claret e.98 % * Modifications des variables pour plus de clareté. 100 99 % 101 100 % - jaclod 2011-07-07 102 101 % 103 % * Creation .102 % * Creation 104 103 % 105 104 %- … … 115 114 end 116 115 % 117 % V erification que les coordonnees de la premiere dimension spatiale est116 % Vérification que les coordonnées de la premiere dimension spatiale est 118 117 % bien un vecteur (1D). Pour cela, on regarde si la matrice correspondant 119 % aux coordonn ees est bien de deux dimensions dont l'une est unitee. Si118 % aux coordonnées est bien de deux dimensions dont l'une est unitee. Si 120 119 % l'une de ces conditions n'est pas satisfaite, on a un message d'erreur. 121 120 if size(size(spatialdimension1_ini),2) ~= 2 || isempty(find(size(spatialdimension1_ini)==1, 1)) == 1; 122 121 123 error('Les coordonn ees doivent etre sous forme de vecteur (une seule dimension).');124 125 end 126 127 % De m eme pour les coordonnees de la seconde dimension spatiale.122 error('Les coordonnées doivent être sous forme de vecteur (une seule dimension).'); 123 124 end 125 126 % De même pour les coordonnées de la seconde dimension spatiale. 128 127 if size(size(spatialdimension2_ini),2) ~= 2 || isempty(find(size(spatialdimension2_ini)==1, 1)) == 1; 129 128 130 error('Les coordonn ees doivent etre sous forme de vecteur (une seule dimension).');131 132 end 133 134 % V erification que la matrice initiale ne contient pas de NaN, ce qui129 error('Les coordonnées doivent être sous forme de vecteur (une seule dimension).'); 130 131 end 132 133 % Vérification que la matrice initiale ne contient pas de NaN, ce qui 135 134 % fausserait l'interpolation. 136 135 if size(find(isnan(mat_ini)),1) ~= 0; 137 136 138 error('La matrice initiale contient des NaN, l''interpolation ne peut etre juste.')139 140 end 141 142 % R ecuperation de la resolution spatiale de la matrice initiale dans le cas137 error('La matrice initiale contient des NaN, l''interpolation ne peut être juste.') 138 139 end 140 141 % Récupération de la résolution spatiale de la matrice initiale dans le cas 143 142 % 2D (dim1, dim2) ou 3D (dimension temporelle, dim1, dim2). Pour les autres 144 % cas (4D, 5D, ...), un message d'erreur appara it.143 % cas (4D, 5D, ...), un message d'erreur apparaît. 145 144 if size(size(mat_ini),2) == 2; 146 145 … … 154 153 else 155 154 156 error('La matrice initiale doit avoir 2 dimensions spatiales (dim1, dim2) et eventuellement une premiere dimension temporelle (dim temp, dim1, dim2)');155 error('La matrice initiale doit avoir 2 dimensions spatiales (dim1, dim2) et éventuellement une premiÚre dimension temporelle (dim temp, dim1, dim2)'); 157 156 158 157 end … … 162 161 y = 1:oldresoldim1; 163 162 164 % Cr eation de la nouvelle grille (On garde les memes intervalles mais pas165 % le m eme nombre d'elements dans chacun d'eux).163 % Création de la nouvelle grille (On garde les mêmes intervalles mais pas 164 % le même nombre d'éléments dans chacun d'eux). 166 165 xi = linspace(1,oldresoldim2,newresoldim2); 167 166 yi = linspace(1,oldresoldim1,newresoldim1)'; 168 167 169 % Interpolation 1D pour les coordonn ees.168 % Interpolation 1D pour les coordonnées. 170 169 spatialdimension1_fin = interp1(y,spatialdimension1_ini,yi,'linear'); 171 170 spatialdimension2_fin = interp1(x,spatialdimension2_ini,xi,'linear'); 172 171 173 % Interpolation 2D pour la matrice de donn ees. Une seule fois si la matrice172 % Interpolation 2D pour la matrice de données. Une seule fois si la matrice 174 173 % initiale est 2D ou en bouclant sur la dimension temporelle dans le cas 175 174 % d'une matrice initiale 3D. -
trunk/src/ssmi_fastex.pro
r634 r635 10 10 ; =========== 11 11 ; 12 ; Programme de visualisation ou impression poscript des13 ; images SSMI de FASTEX (7 canaux) et des param etres14 ; g eophysiques restitues (WV, LW, US) selon les derniers12 ; Programme de visualisation ou impression PostScript des 13 ; images SSMI de FASTEX (7 canaux) et des paramÚtres 14 ; géophysiques restitués (WV, LW, US) selon les derniers 15 15 ; algorithmes. Juin 1997. 16 16 ; 17 17 ; Projection des images format WENTZ en lat/lon 18 18 ; sur une grille 40-55N - 30-45W, pas de 0.4° 19 ; pour eviter trous dans l'image projetee19 ; pour éviter trous dans l'image projetée 20 20 ; (=> recouvrements de pixels par endroits => moyennes) 21 21 ; … … 44 44 45 45 ;****************************************************** 46 ; Choix du device: ecran ou papier47 ; Param etres de position de l'image dans la fenetre46 ; Choix du device: écran ou papier 47 ; ParamÚtres de position de l'image dans la fenêtre 48 48 ;****************************************************** 49 49 rep=' ' … … 63 63 ;***************************************************** 64 64 ; Chargement de la palette de couleurs 65 ; D efinition de la legende (11 valeurs)65 ; Définition de la légende (11 valeurs) 66 66 ;***************************************************** 67 67 color_trait=0 … … 70 70 ;couleur=2 ;palette vert - rouge - bleu 71 71 imcol=bytarr(11) 72 ;couleurs associ ees aux classes72 ;couleurs associées aux classes 73 73 vmin=1. & vmax=254. 74 74 imcol=[1,26,52,77,102,127,153,178,203,229,254] ;palette 5 … … 99 99 100 100 ;**************************************************** 101 ; D eclaration des tableaux101 ; Déclaration des tableaux 102 102 ;**************************************************** 103 103 lat=fltarr(64,200) … … 120 120 l=0 121 121 while (not eof(1)) do begin 122 ; forl=0,78 do begin122 ;FOR l=0,78 do begin 123 123 readu,1,tab 124 124 lat(*,l)=tab … … 141 141 l=l+1 142 142 endwhile 143 ; endfor143 ;ENDFOR 144 144 close,1 145 145 print,'Fichier ',name,l,' lignes' … … 147 147 ;************************************************** 148 148 ; Premier nettoyage: si moins de 20 lignes dans 149 ; l'image, eliminer l'image, sinon traitement149 ; l'image, éliminer l'image, sinon traitement 150 150 ;************************************************** 151 151 ll=l … … 155 155 156 156 ;****************************************************** 157 ; Affichage des coordonn ees des 4 extremites de l'image157 ; Affichage des coordonnées des 4 extrémités de l'image 158 158 ;****************************************************** 159 print,'Coordonn ees des 4 coins'159 print,'Coordonnées des 4 coins' 160 160 print,'1 ',lat(0,0),lon(0,0) 161 161 print,'2 ',lat(63,0),lon(63,0) … … 165 165 166 166 ;***************************************************** 167 ; Restitution des param etres geophysiques (WV, WL, US)167 ; Restitution des paramÚtres géophysiques (WV, WL, US) 168 168 ;***************************************************** 169 169 ialgo=1 … … 172 172 -1.76*tb37V +0.786*tb37H +147.9 ;m/s 173 173 ;choix des algo: vapeur d'eau 174 ;correction des Tbs optimis ee pour algo Guillou174 ;correction des Tbs optimisée pour algo Guillou 175 175 if (ialgo le 2) then begin 176 176 tb19V =tb19V -0.5 … … 212 212 nuag=intarr(64,200) 213 213 nu=0 214 forj=0,ll-1 do begin215 ; forj=0,4 do begin216 fori=0,63 do begin217 ; fori=0,10 do begin214 FOR j=0,ll-1 do begin 215 ;FOR j=0,4 do begin 216 FOR i=0,63 do begin 217 ;FOR i=0,10 do begin 218 218 if((tb22v(i,j) ne 0.) and (wl(i,j) gt 0.05)) then begin 219 219 nuage=nuag(0>(i-1):(i+1)<63,0>(j-1):j) … … 225 225 if (nb ne 0) then begin 226 226 nuag(i,j)=min(nuage(ind)) 227 forkj=0>(j-1),j do begin228 forki=0>(i-1),(i+1)<63 do begin227 FOR kj=0>(j-1),j do begin 228 FOR ki=0>(i-1),(i+1)<63 do begin 229 229 if(nuag(ki,kj) ne 0) then nuag(ki,kj)=nuag(i,j) 230 endfor231 endfor230 ENDFOR 231 ENDFOR 232 232 endif 233 233 endif 234 endfor 235 endfor 236 237 ;on a num eroteles nuages. Recherche des affectations abusives238 forj=0,ll-1 do begin239 fori=0,63 do begin234 ENDFOR 235 ENDFOR 236 237 ;on a numéroté les nuages. Recherche des affectations abusives 238 FOR j=0,ll-1 do begin 239 FOR i=0,63 do begin 240 240 if(nuag(i,j) gt 0) then begin 241 241 nu=nuag(i,j) … … 245 245 if nbd gt nbi then nuag(i,j)=min(cloud(kdi)) 246 246 endif 247 endfor248 endfor 249 forik=0,63 do begin247 ENDFOR 248 ENDFOR 249 FOR ik=0,63 do begin 250 250 i=63-ik 251 forjk=0,ll-1 do begin251 FOR jk=0,ll-1 do begin 252 252 j=ll-1-jk 253 253 if(nuag(i,j) gt 0) then begin … … 258 258 if nbd gt nbi then nuag(i,j)=min(cloud(kdi)) 259 259 endif 260 endfor261 endfor 260 ENDFOR 261 ENDFOR 262 262 263 263 … … 267 267 268 268 ;***************************************************** 269 ; Choix des param etre a tracer (TB et param geophys)270 ;***************************************************** 271 ;print,'Choix du param etre ?'269 ; Choix des paramÚtre à tracer (TB et paramÚtres géophysiques) 270 ;***************************************************** 271 ;print,'Choix du paramÚtre ?' 272 272 ;print,' tb19v (1) tb19h (2) tb22v (3) ' 273 273 ;print,' tb37v (4) tb37h (5)' … … 295 295 y0=13.5 296 296 297 foripar=7,8 do begin297 FOR ipar=7,8 do begin 298 298 if ipar eq 1 then val= tb19v(*,0:ll-1) 299 299 if ipar eq 2 then val= tb19h(*,0:ll-1) … … 324 324 if ipar eq 9 then yoffset=3. 325 325 if ipar eq 10 then xoffset=1. 326 ; Titre de la fen etre326 ; Titre de la fenêtre 327 327 ;******************** 328 328 vue='FASTEX '+name +' '+al 329 329 ;print,vue 330 330 331 ; D eclarations - Initialisations331 ; Déclarations - Initialisations 332 332 ;******************************* 333 333 ;image=fltarr(maxlon,maxlat) & npt=intarr(maxlon,maxlat) … … 337 337 ; Projection image en lon,lat 338 338 ;**************************** 339 ; fori=0,ll-1 do begin340 ; forj=0,63 do begin339 ;FOR i=0,ll-1 do begin 340 ;FOR j=0,63 do begin 341 341 ;k=fix((lon(j,i)+45.)/dlon+0.5) 342 342 ;l=fix((lat(j,i)-40.)/dlat+0.5) … … 347 347 ;endif 348 348 ;endif 349 ; endfor350 ; endfor351 352 ;Choix de la mani ere de boucher les trous : 0:non;1:moyennes;2:cressmann349 ;ENDFOR 350 ;ENDFOR 351 352 ;Choix de la maniÚre de boucher les trous : 0:non;1:moyennes;2:Cressman 353 353 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 354 354 parmoy=0 … … 413 413 ;spawn,'rm ssmi.ps' 414 414 415 endfor ; boucle parametre415 ENDFOR ; boucle paramÚtre 416 416 if rep eq 'ps' then begin 417 417 … … 432 432 433 433 ;******************************************************** 434 ; Routines Box et L egende434 ; Routines Box et Légende 435 435 ;******************************************************** 436 436 437 437 ;******************************************************** 438 ; Proc edure de remplissage438 ; Procédure de remplissage 439 439 ;******************************************************** 440 440 Pro Box, x0, y0, x1, y1, col … … 444 444 445 445 ;********************************** 446 ;Proc edure de trace de la legende446 ;Procédure de trace de la légende 447 447 ;********************************** 448 448 Pro Legende,xpage,ypage,xo,yo,imcol,minps,vmin,aps,numdev,ipar … … 458 458 nbclasses=11 ; 459 459 460 ; Echelles et couleurs: la legende460 ;Ãchelles et couleurs: la légende 461 461 ;******************************** 462 462 x0=xo/xpage & y0=yo/ypage … … 466 466 x=fltarr(nbclasses) 467 467 y=fltarr(nbclasses) 468 F ori=0,nbclasses-1 do begin468 FOR i=0,nbclasses-1 do begin 469 469 x(i)=x0 470 470 y(i)=i 471 E ndfor471 ENDFOR 472 472 yy=y0 473 F ori=0,nbclasses-1 do begin473 FOR i=0,nbclasses-1 do begin 474 474 box,x0,yy,x1,yy+dy, imcol(i) 475 475 plots,[x0,x1],[yy,yy],color=color_trait,/normal … … 483 483 ; print,imcol(i),tclasse 484 484 yy=yy+dy 485 E ndfor485 ENDFOR 486 486 487 487 -
trunk/src/ssminuage.pro
r633 r635 12 12 ; 13 13 ; Programme d'analyse des nuages SSMI de FASTEX 14 ; (param etres geophysiques restitues (WV, LW, US)14 ; (paramÚtres géophysiques restitués (WV, LW, US) 15 15 ; 16 16 ; EXAMPLES … … 49 49 ; * rewrote in matlab/octave 50 50 ; * introduce a time dimension 51 ; * build useful loutput : add geolocation (may be two outputs will51 ; * build useful output : add geolocation (may be two outputs will 52 52 ; be necessary : one summary and one NetCDF file 53 53 ; * suppress goto … … 112 112 ; - lelod 13/07/2010 skylla 113 113 ; 114 ; * revision de la d etection des nuages : adaptation aMSG114 ; * revision de la détection des nuages : adaptation à MSG 115 115 ; (Tb < threshold) donc maintenant incompatible avec LW SSMI!!!!! 116 116 ; * detection faite avec MSG, pas AMSU (en raison des "trous" dans l'orbite) … … 160 160 lon1=-25 & lon2=25 & lat1=-5 & lat2=20 161 161 domdef,lon1,lon2,lat1,lat2 162 h1=23 & h2=23 ; en principe, la m eme heure que AMSU162 h1=23 & h2=23 ; en principe, la même heure que AMSU 163 163 data=read_ncdf('DATA', h1,h2,/timestep,timevar = 'time', file = file) 164 164 ; ++ close -
trunk/src/stagejasonjuillet.m
r634 r635 96 96 %%%%%%%%%% 97 97 98 % Chargement des données c otieres.98 % Chargement des données cÃŽtiÚres. 99 99 load('cmgco_traitdecote.mat','Xgco','Ygco'); 100 100 101 % Chargement des données si elles ont ete enregistrees sinon on les102 % r ecuperes (tres long, 1h environ la premiere fois et trop long pour103 % attendre la fin une seconde fois, peut- etre trop de monde sur cratos ace104 % moment l a...).101 % Chargement des données si elles ont été enregistrées sinon on les 102 % récupÚre (trÚs long, 1h environ la premiÚre fois et trop long pour 103 % attendre la fin une seconde fois, peut-être trop de monde sur cratos à ce 104 % moment là ...). 105 105 if exist('dataintandprecip2006.mat','file'); 106 106 load(dataintandprecip2006.mat'); … … 118 118 119 119 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 120 % Moyennes et ecart-types des intensites sur la saison 2006120 % Moyennes et écart types des intensités sur la saison 2006 121 121 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 122 122 123 123 [meandata, stddata] = meanandstdplot(ij_intensity_concat, time_intensity_concat, Longitudes, Latitudes, 'intensites'); 124 124 125 % Ajout des c otes (N'est que present automatiquement dans126 % 'nonprecipperiods', ajout e ala fin du stage).125 % Ajout des cÃŽtés (N'est que présent automatiquement dans 126 % 'nonprecipperiods', ajouté à la fin du stage). 127 127 hold on 128 128 plot(Xgco,Ygco,'k.'); … … 135 135 136 136 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 137 % Moyennes et ecart-types des cumuls EPSAT sur la saison 2006137 % Moyennes et écart types des cumuls EPSAT sur la saison 2006 138 138 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 139 139 … … 145 145 % Extrait de 'nonprecipperiods' : 146 146 % Suppressions des données pour les jours ou nous avons que des 'NaN'. 147 % On cherche s'il y en a, quels sont les pas de temps concern es et leur147 % On cherche s'il y en a, quels sont les pas de temps concernés et leur 148 148 % nombre. 149 149 indnan = find(isnan(ij_cumul_concat(:,1,1))); … … 153 153 if ~isempty(indnan); 154 154 155 % On boucle pour supprimer chaque pas de temps concern es en commencant155 % On boucle pour supprimer chaque pas de temps concerné en commençant 156 156 % par les derniers (si on souhaite par exemple supprimer les pas de 157 157 % temps 2 et 5 et que l'on supprime le 2 d'abord, le 5e pas de temps 158 % sera ensuite d ecale au 4e. En commencant par la fin, cela ne se158 % sera ensuite décalé au 4e. En commençant par la fin, cela ne se 159 159 % produit pas). 160 160 for nansuppr = 1 : nbnan; … … 182 182 183 183 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 184 % Diagramme de hovmuller des intensit es et cumuls EPSAT sur 15 jours184 % Diagramme de hovmuller des intensités et cumuls EPSAT sur 15 jours 185 185 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 186 186 187 % Diagrammes r ealises sur les 15 jours en communsavant rapatriement de187 % Diagrammes réalisés sur les 15 jours en commun avant rapatriement de 188 188 % l'ensemble de la saison c'est-à -dire du 26 juillet au 09 aout 2006. 189 189 190 190 % Diagrammes de hovmöller latitudes vs temps pour des données moyennes sur 191 % 0.5 degr es autour de -4 en longitudes.191 % 0.5 degrés autour de -4 en longitudes. 192 192 [hovdata] = hovmullerlonorlat(ij_intensity_concat(26:40,:,:),time_intensity_concat(26:40),Longitudes,Latitudes,2,-4,0.5,'intensites'); 193 193 [hovdata] = hovmullerlonorlat(ij_cumul_concat(26:40,:,:),time_cumul_concat(26:40),Longitudes,Latitudes,2,-4,0.5,'cumuls EPSAT'); … … 201 201 202 202 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 203 % Distributions des intensit es et cumuls EPSAT sur la saison 2006203 % Distributions des intensités et cumuls EPSAT sur la saison 2006 204 204 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 205 205 … … 213 213 214 214 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 215 % Comparaison des s eries temporelles sur la saison dans 5x5 degres215 % Comparaison des séries temporelles sur la saison dans 5x5 degrés 216 216 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 217 217 … … 230 230 231 231 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 232 % Validation crois ee sur plusieurs zones232 % Validation croisée sur plusieurs zones 233 233 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 234 234 … … 248 248 249 249 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 250 % Passage des intensit es en precipitations250 % Passage des intensités en précipitations 251 251 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 252 252 … … 282 282 283 283 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 284 % Suivi des pauses de pr ecipitations284 % Suivi des pauses de précipitations 285 285 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 286 286 287 [meantimestepof0, stdtimestepof0] = nonprecipperiods(ij_intensity_concat, time_intensity_concat, Longitudes, Latitudes, 'intensites', 'avec restriction de l'' echelle entre 0 et 5 jours', 0, 5, 0, 5);288 289 [meantimestepof0, stdtimestepof0] = nonprecipperiods(ij_cumul_concat, time_cumul_concat, Longitudes, Latitudes, 'cumuls EPSAT', 'avec restriction de l'' echelle entre 0 et 5 jours', 0, 5, 0, 5);287 [meantimestepof0, stdtimestepof0] = nonprecipperiods(ij_intensity_concat, time_intensity_concat, Longitudes, Latitudes, 'intensites', 'avec restriction de l''échelle entre 0 et 5 jours', 0, 5, 0, 5); 288 289 [meantimestepof0, stdtimestepof0] = nonprecipperiods(ij_cumul_concat, time_cumul_concat, Longitudes, Latitudes, 'cumuls EPSAT', 'avec restriction de l''échelle entre 0 et 5 jours', 0, 5, 0, 5); 290 290 291 291 result = 0; -
trunk/src/testInterp1D.m
r634 r635 63 63 % - fplod 20110225T172102Z aedon.locean-ipsl.upmc.fr (Darwin) 64 64 % 65 % * test on zeus with octave 3.0.2. not so ug gly.65 % * test on zeus with octave 3.0.2. not so ugly. 66 66 % * test on zeus with matlab R2007a. idem 67 67 % … … 110 110 Longitudes = ncid{'lon'}(:); 111 111 112 % On cherche la premi ere et le nombre de latitude/longitude à prendre112 % On cherche la premiÚre et le nombre de latitude/longitude à prendre 113 113 % en compte d'aprÚs notre domaine d'étude précédemment définit. 114 114 startlat = find(Latitudes >= latmin, 1 ); -
trunk/src/testinterpolswath.pro
r475 r635 11 11 ; =========== 12 12 ; 13 ; test methode d'affectation des tb amsu sur grille de resolution egale a celle au nadir 14 ; 13 ; test méthode d'affectation des tb amsu sur grille de résolution égale à celle au nadir 15 14 ; 16 15 ; EVOLUTIONS … … 27 26 ;- 28 27 29 28 fovain=fltarr(15) 30 29 31 30 pixelsize,pixatot,pixbtot,alongatot,alongbtot … … 93 92 tbint(ind)=tb(i) 94 93 endfor 95 ;alternative: interpolation lin eaire94 ;alternative: interpolation linéaire 96 95 ;tbpol=interpol(tb,fova,grid) 97 96 plot,fovtest,tb,psym=1 -
trunk/src/tpot.m
r368 r635 1 1 function [tpota tva]=tpot(ta,pa,r) 2 2 3 %TPOT Calcul de la temp erature potentielle et potentielle virtuelle3 %TPOT Calcul de la température potentielle et potentielle virtuelle 4 4 5 5 %+ … … 14 14 % =========== 15 15 % 16 % Calcul de la temp erature potentielle et potentielle virtuelle en degres Celsius16 % Calcul de la température potentielle et potentielle virtuelle en degrés Celsius 17 17 % 18 % Entr ees :18 % Entrées : 19 19 % 20 20 % ta 21 % temp erature en K ou degres C21 % température en K ou degrés C 22 22 % pa 23 23 % pression en hPa ou Pa 24 24 % r 25 % rapport de m elange en g/kg ou kg/kg25 % rapport de mélange en g/kg ou kg/kg 26 26 % 27 27 % Sorties : 28 28 % 29 29 % tpota 30 % temp erature potentielle en degres C30 % température potentielle en degrés C 31 31 % tva 32 % temp erature potentielle virtuelle en degres C32 % température potentielle virtuelle en degrés C 33 33 % 34 34 % EXAMPLES … … 39 39 % SEE ALSO 40 40 % ======== 41 %42 41 % 43 42 % TODO … … 65 64 end 66 65 % 67 %test si pa est en Pa ou hPa et attribut a pstandard cette meme unite66 %test si pa est en Pa ou hPa et attribut à pstandard cette même unité 68 67 ind_nan=find(~isnan(pa)); 69 68 if pa(ind_nan(1)) < 2000 … … 80 79 81 80 %test si ta est en °C ou en K 82 % et calcule la temp erature potentielle en °C83 if ta(1) < 100 % il est peu tprobable d''avoir + de 100°C au niveau du sol81 % et calcule la température potentielle en °C 82 if ta(1) < 100 % il est peu probable d''avoir + de 100°C au niveau du sol 84 83 tpota=((ta+273.15).*((pstandard./pa).^0.286))-273.15; % (exposant=R/Cp) 85 84 else % ta déjà en K … … 87 86 end 88 87 89 % calcul la temp erature potentielle virtuelle88 % calcul la température potentielle virtuelle 90 89 tva=(tpota+273.15).*(1.+0.608*r)-273.15; -
trunk/src/traite_amsuab.sh
r634 r635 182 182 # 183 183 # * bug fix to handle correctly dates if translation in second on 9 digits 184 # (trailing 0 is automatical y interpreted as an octal number).184 # (trailing 0 is automatically interpreted as an octal number). 185 185 # ex = 20010801 186 186 # * bug fix to handle correctly dates if translation in second of begin … … 234 234 # 235 235 # * usage of ${IDL_CMD} instead of idl to allow run on 236 # idl 6.4 (/opt/idl-6.4/idl/bin/idl on climserv)236 # idl 6.4 (/opt/idl-6.4/idl/bin/idl on ClimServ) 237 237 # 238 238 # - fplod 20110818T154338Z cratos (Linux) 239 239 # 240 # * test on cratos after copying files from climserv240 # * test on cratos after copying files from ClimServ 241 241 # 242 242 # as get_amsu.sh do not yet work on cratos copies have been done using … … 371 371 if [ ${#} -lt ${minargcount} ] 372 372 then 373 echo "${command} : eee : not enough targuments"373 echo "${command} : eee : not enough arguments" 374 374 echo "${usage}" 375 375 exit 1 -
trunk/src/traite_amsuab_old.sh
r634 r635 165 165 # 166 166 # * bug fix to handle correctly dates if translation in second on 9 digits 167 # (trailing 0 is automatical y interpreted as an octal number).167 # (trailing 0 is automatically interpreted as an octal number). 168 168 # ex = 20010801 169 169 # * bug fix to handle correctly dates if translation in second of begin … … 215 215 # - pinsard 2011-08-22T14:32:21Z loholt1.ipsl.polytechnique.fr (Linux) 216 216 # 217 # * usage of ${IDL_CMD} instead of idl to allow run on idl 6.4 (/opt/idl-6.4/idl/bin/idl on climserv)217 # * usage of ${IDL_CMD} instead of idl to allow run on idl 6.4 (/opt/idl-6.4/idl/bin/idl on ClimServ) 218 218 # 219 219 # - fplod 20110818T154338Z cratos (Linux) 220 220 # 221 # * test on cratos after copying files from climserv221 # * test on cratos after copying files from ClimServ 222 222 # 223 223 # as get_amsu.sh do not yet work on cratos copies have been done using … … 341 341 if [ ${#} -lt ${minargcount} ] 342 342 then 343 echo "${command} : eee : not enough targuments"343 echo "${command} : eee : not enough arguments" 344 344 echo "${usage}" 345 345 exit 1 -
trunk/src/traite_msg-prod.sh
r634 r635 145 145 # 146 146 # * bug fix to handle correctly dates if translation in second on 9 digits 147 # (trailing 0 is automatical y interpreted as an octal number).147 # (trailing 0 is automatically interpreted as an octal number). 148 148 # ex = 20010801 149 149 # * bug fix to handle correctly dates if translation in second of begin … … 238 238 if [ ${#} -lt ${minargcount} ] 239 239 then 240 echo "eee : not enough targuments"240 echo "eee : not enough arguments" 241 241 echo "${usage}" 242 242 exit 1 -
trunk/src/traite_trmm.sh
r634 r635 134 134 # 135 135 # * bug fix to handle correctly dates if translation in second on 9 digits 136 # (trailing 0 is automatical y interpreted as an octal number).136 # (trailing 0 is automatically interpreted as an octal number). 137 137 # ex = 20010801 138 138 # * bug fix to handle correctly dates if translation in second of begin … … 202 202 if [ ${#} -lt ${minargcount} ] 203 203 then 204 echo "eee : not enough targuments"204 echo "eee : not enough arguments" 205 205 echo "${usage}" 206 206 exit 1 -
trunk/src/uniquerand.m
r634 r635 73 73 % valeurs demandées. 74 74 if N > fix(maxvalue)-ceil(minvalue)+1; 75 error('Vous demandez plus de valeurs entiÚres uniques qu''il n''en existe dans l''intervalle donn ee.');75 error('Vous demandez plus de valeurs entiÚres uniques qu''il n''en existe dans l''intervalle donnée.'); 76 76 end 77 77 -
trunk/src/utilitaires/ajoute_date_fig.m
r308 r635 12 12 % =========== 13 13 % 14 % no_fig : fen etre ou on rajoute la date, par defaut, fenetre courante15 % sp nombre de subplots sur la verticale, par defaut 1 seul14 % no_fig : fenêtre où on rajoute la date, par défaut, fenêtre courante 15 % sp : nombre de subplots sur la verticale, par défaut 1 seul 16 16 % 17 17 % EVOLUTIONS … … 43 43 pos_x=p_x(1)-(p_x(2)-p_x(1))/10; 44 44 pos_y= p_y(2)+(p_y(2)-p_y(1))/20*sp; 45 if(log) % echelle log46 p=get(gca,'ytick');47 45 if(log) % échelle log 46 p=get(gca,'ytick'); 47 pos_y=p(1)-p(2)/5; 48 48 end 49 49 -
trunk/src/utilitaires/supprime_point_trous.m
r308 r635 12 12 % =========== 13 13 % 14 % Trouve les points contenant des NaN dans leur s erie temporelle15 % et met a NaN toute la serie pour ces points14 % Trouve les points contenant des NaN dans leur série temporelle 15 % et met à NaN toute la série pour ces points 16 16 % 17 17 % input : matrice de type [lat lon temps] 18 % output : la m eme matrice avec les points mis aNaN18 % output : la même matrice avec les points mis à NaN 19 19 % 20 20 % EVOLUTIONS -
trunk/src/varamma_profile.sh
r634 r635 84 84 # cd /usr/home/fplod/incas/varamma/varamma_ws/ 85 85 # . ./src/varamma_profile.sh \ 86 # -d $(pwd) \86 # -d $(pwd)/ \ 87 87 # -i /usr/temp/${LOGNAME}/varamma_d/ \ 88 88 # -o /usr/temp/${LOGNAME}/varamma_d/ \ … … 97 97 # cd ${HOME}/incas/varamma/varamma_ws/ 98 98 # . ./src/varamma_profile.sh \ 99 # -d $(pwd) \99 # -d $(pwd)/ \ 100 100 # -i /usr/temp/${LOGNAME}/varamma_d/ \ 101 101 # -o /usr/temp/${LOGNAME}/varamma_d/ \ … … 109 109 # cd ${HOME}/incas/varamma/varamma_ws/ 110 110 # . ./src/varamma_profile.sh \ 111 # -d $(pwd) \111 # -d $(pwd)/ \ 112 112 # -i /usr/temp/${LOGNAME}/varamma_d/ \ 113 113 # -o /usr/temp/${LOGNAME}/varamma_d/ \ … … 122 122 # cd ${HOME}/varamma/ 123 123 # . ./src/varamma_profile.sh \ 124 # -d $(pwd) \124 # -d $(pwd)/ \ 125 125 # -i /homedata/${LOGNAME}/varamma_d/ \ 126 126 # -o /homedata/${LOGNAME}/varamma_d/ \ … … 134 134 # cd ${HOME}/varamma/ 135 135 # . ./src/varamma_profile.sh \ 136 # -d $(pwd) \136 # -d $(pwd)/ \ 137 137 # -i /homedata/${LOGNAME}/varamma_d/ \ 138 138 # -o /homedata/${LOGNAME}/varamma_d/ \ … … 266 266 if [ ${narg} -lt ${minargcount} ] 267 267 then 268 echo "eee : not enough targuments (${narg} vs ${minargcount})"268 echo "eee : not enough arguments (${narg} vs ${minargcount})" 269 269 echo "${usage}" 270 270 # nb : no exit because this file should be launched by login process … … 289 289 case ${1} in 290 290 -d) 291 # directory for application cho osen by user291 # directory for application chosen by user 292 292 # (see svn checkout command used) 293 293 directory=${2} … … 295 295 ;; 296 296 -i) 297 # directory for inputs cho osen by user297 # directory for inputs chosen by user 298 298 indir=${2} 299 299 shift 300 300 ;; 301 301 -o) 302 # directory for outputs cho osen by user302 # directory for outputs chosen by user 303 303 outdir=${2} 304 304 shift 305 305 ;; 306 306 -t) 307 # directory for temporary outputs cho osen by user307 # directory for temporary outputs chosen by user 308 308 tempdir=${2} 309 309 shift -
trunk/src/varamma_startup.m
r624 r635 17 17 % 18 18 % Define : 19 % - path for matlab/octave commands used in VARAMMA project 20 % - IO directories in global variables 21 % 22 % This file can be either run classicaly when current directory 19 % 20 % - path for matlab/octave commands used in VARAMMA project 21 % - IO directories in global variables 22 % 23 % This file can be either run classically when current directory 23 24 % is ${PROJECT}:: 24 25 % … … 26 27 % 27 28 % 28 % If linked or copy to ./startup.m, it will be automatical y29 % If linked or copy to ./startup.m, it will be automatically 29 30 % run by matlab at start. 30 31 % 31 % If linked or copy to ${HOME}/.octaverc, it will be automatical y32 % If linked or copy to ${HOME}/.octaverc, it will be automatically 32 33 % run by octave at start. 33 34 % … … 79 80 % either netcdf.open is available (case on matlab in loholt1 80 81 % or matlab on jaclod windows) or not (case on matlab and octave on 81 % LOCEAN plat eforms82 % LOCEAN platforms 82 83 % 83 84 % - fplod 20110307T171843Z aedon.locean-ipsl.upmc.fr (Darwin) … … 95 96 % - fplod 20110217T153835Z aedon.locean-ipsl.upmc.fr (Darwin) 96 97 % 97 % * control eof error/warning98 % * control of error/warning 98 99 % see http://www.kxcad.net/cae_MATLAB/techdoc/ref/intwarning.html 99 100 % see http://www.gnu.org/software/octave/doc/interpreter/Enabling-and-Disabling-Warnings.html … … 121 122 % - fplod 20100608T123239Z aedon.locean-ipsl.upmc.fr (Darwin) 122 123 % 123 % * make application_version us eable in functions124 % * make application_version usable in functions 124 125 % 125 126 % - fplod 20100525T095121Z aedon.locean-ipsl.upmc.fr (Darwin) -
trunk/src/visuEPSATprecipcumul.m
r382 r635 21 21 % EPSAT dans une matrice de dimensions longitudes, latitudes. 22 22 % * Annee, Mois et Jour : informations sur la date sous forme de 23 % caract eres.23 % caractÚres. 24 24 % * Longitudes : Donnees de la premiere dimension spatiale de la matrice. 25 25 % * Latitudes : Donnees de la seconde dimension spatiale de la matrice. … … 54 54 % check arg 55 55 % 56 % bad plot all blank on climserv56 % bad plot all blank on ClimServ 57 57 % 58 58 % coast dots are plot outside the frame … … 124 124 end 125 125 % 126 % Fonction pour le dessin des donn ees.126 % Fonction pour le dessin des données. 127 127 result=plot_cumulEPSAT(CumulEPSAT, Annee, Mois, Jour, Longitudes, Latitudes); 128 128 -
trunk/src/visuMSG.m
r634 r635 18 18 % - Donnï¿œes d'entrï¿œes : 19 19 % 20 % * TbMSG : Donn ees de temperature de brillance d'apres MSG dans une20 % * TbMSG : Données de temperature de brillance d'apres MSG dans une 21 21 % matrice de dimensions temps, longitudes, latitudes. 22 % * Temps : Donn ees de la dimension temporelle de la matrice en jour22 % * Temps : Données de la dimension temporelle de la matrice en jour 23 23 % julien (premiere dimension). 24 % * Longitudes : Donn ees de la premiere dimension spatiale de la matrice24 % * Longitudes : Données de la premiere dimension spatiale de la matrice 25 25 % (seconde dimension). 26 % * Latitudes : Donn ees de la seconde dimension spatiale de la matrice27 % (troisi eme dimension).26 % * Latitudes : Données de la seconde dimension spatiale de la matrice 27 % (troisiÚme dimension). 28 28 % * timestep : Numï¿œro du quart d'heure correspondant (de 1 pour 00:00 ï¿œ 29 % 96 pour 23:45 pour des donn ees completes).29 % 96 pour 23:45 pour des données completes). 30 30 % 31 31 % EXAMPLES … … 76 76 % - jaclod 2011-07-24 77 77 % 78 % * Externalisation de la lecture et modification des arguments d'entr ee.78 % * Externalisation de la lecture et modification des arguments d'entrée. 79 79 % * Modification en consequence de la demo. 80 80 % … … 114 114 end 115 115 % 116 % Récupération des donn ees concernees (On transpose pour avoir latitudes,116 % Récupération des données concernées (On transpose pour avoir latitudes, 117 117 % longitudes comme dimension pour 'data', en vue de l'imagesc plus loin). 118 118 data = transpose(squeeze(TbMSG(timestep,:,:))); -
trunk/src/visuMSGsystconv.m
r634 r635 21 21 % - Donnï¿œes d'entrï¿œes : 22 22 % 23 % * TbMSG : Donn ees de temperature de brillance d'apres MSG dans une23 % * TbMSG : Données de température de brillance d'apres MSG dans une 24 24 % matrice de dimensions temps, longitudes, latitudes. 25 % * Temps : Donn ees de la dimension temporelle de la matrice en jour26 % julien (premi ere dimension).27 % * Longitudes : Donn ees de la premiere dimension spatiale de la matrice25 % * Temps : Données de la dimension temporelle de la matrice en jour 26 % julien (premiÚre dimension). 27 % * Longitudes : Données de la premiÚre dimension spatiale de la matrice 28 28 % (seconde dimension). 29 % * Latitudes : Donn ees de la seconde dimension spatiale de la matrice30 % (troisi eme dimension).29 % * Latitudes : Données de la seconde dimension spatiale de la matrice 30 % (troisiÚme dimension). 31 31 % * timestep : Numï¿œro du quart d'heure correspondant (de 1 pour 00:00 ï¿œ 32 % 96 pour 23:45 pour des donn ees completes).32 % 96 pour 23:45 pour des données complÚtes). 33 33 % * Tb_SeuilSup : Seuil de tempï¿œrature de brillance maximale dï¿œlimitant 34 34 % un systï¿œme convectif. … … 55 55 % ==== 56 56 % 57 % coast dots are plot outside the frame on climserv and cratos matlab 7.457 % coast dots are plot outside the frame on ClimServ and cratos matlab 7.4 58 58 % 59 59 % timestep vs extractedmartixdata : not the same unit but equivalent with … … 93 93 % - jaclod 2011-07-24 94 94 % 95 % * Externalisation de la lecture et modification des arguments d'entr ee.95 % * Externalisation de la lecture et modification des arguments d'entrée. 96 96 % * Modification en consequence de la demo. 97 97 % … … 133 133 end 134 134 % 135 % R ecuperation des donnees concernees (On transpose pour avoir latitudes,135 % Récupération des données concernées (On transpose pour avoir latitudes, 136 136 % longitudes comme dimension pour 'data', en vue de l'imagesc plus loin). 137 137 data = transpose(squeeze(TbMSG(timestep,:,:))); -
trunk/src/visufiltscatter.m
r374 r635 139 139 set(gca, 'DataAspectRatio', [Axis(2) Axis(4) 1]); 140 140 hold on 141 xlabel('Intensit es', 'FontSize',24, 'FontName','Times');142 ylabel('Pr ecipitations cumulees', 'FontSize',24, 'FontName','Times');141 xlabel('Intensités', 'FontSize',24, 'FontName','Times'); 142 ylabel('Précipitations cumulées', 'FontSize',24, 'FontName','Times'); 143 143 title('(a)','FontSize',24,'FontName','Times'); 144 144 set(gca,'FontSize',22,'FontName','Times'); … … 183 183 set(gca, 'DataAspectRatio', [Axis(2) Axis(4) 1]); 184 184 hold on 185 xlabel('Intensit es', 'FontSize',24, 'FontName','Times');186 ylabel('Pr ecipitations cumulees', 'FontSize',24, 'FontName','Times');185 xlabel('Intensités', 'FontSize',24, 'FontName','Times'); 186 ylabel('Précipitations cumulées', 'FontSize',24, 'FontName','Times'); 187 187 title('(b)','FontSize',24,'FontName','Times'); 188 188 set(gca,'FontSize',22,'FontName','Times'); -
trunk/src/visumodele1.m
r634 r635 28 28 % (seconde dimension). 29 29 % * Latitudes : Donnees de la seconde dimension spatiale de la matrice 30 % (troisi eme dimension).30 % (troisiÚme dimension). 31 31 % * Tb_SeuilSup : Seuil de tempï¿œrature de brillance maximale dï¿œlimitant 32 32 % un systï¿œme convectif (en K). … … 58 58 % To RESHAPE the number of elements must not change. 59 59 % 60 % find matlab pc jason smooth equivalent in matlab locean and climserv and60 % find matlab pc jason smooth equivalent in matlab locean and ClimServ and 61 61 % octave 62 62 % see http://www.aquaphoenix.com/lecture/matlab9/page3.html … … 217 217 else 218 218 TbLiss_15min=double(TbMSG(timestep,:,:)); 219 disp('www : no smooth available using on non-pc plat eform');219 disp('www : no smooth available using on non-pc platform'); 220 220 end 221 221 … … 289 289 290 290 %%%%%%%%%%%%%%%%%%%%%%%%%% 291 % Label issation291 % Labellisation 292 292 % des nuages 293 293 % (Avec le temps, en 3D) … … 347 347 end 348 348 349 % Aprï¿œs l' ï¿œlimination de certains nuages, on les labellise de nouveau.349 % Aprï¿œs l'élimination de certains nuages, on les labellise de nouveau. 350 350 switch application 351 351 case {'matlab'} -
trunk/src/visumodele2.m
r374 r635 26 26 % (seconde dimension). 27 27 % * Latitudes : Donnees de la seconde dimension spatiale de la matrice 28 % (troisi eme dimension).28 % (troisiÚme dimension). 29 29 % * Tb_SeuilSup : Seuil de tempï¿œrature de brillance maximale dï¿œlimitant 30 30 % un systï¿œme convectif (en K). … … 154 154 end 155 155 156 % On v ï¿œrifie que le nuage est prï¿œsent, depuis le temps oï¿œ il156 % On vérifie que le nuage est prï¿œsent, depuis le temps oï¿œ il 157 157 % apparait jusqu'a atteindre le seuil dï¿œfinit prï¿œcï¿œdemment. 158 158 Elimination = 0; -
trunk/src/visuscatternorm.m
r634 r635 20 20 % - Données d'entrées : 21 21 % 22 % * Ann ee (en caractÚres) : Année (AAAA) du jour d'étude.22 % * Année (en caractÚres) : Année (AAAA) du jour d'étude. 23 23 % * Mois (en caractÚres) : Numéro du mois (MM) du jour d'étude. 24 24 % * Jour (en caractÚres) : Numéro du Jour d'étude (JJ). … … 262 262 263 263 % Ajout/Modification des titres et axes. 264 xlabel('Intensit es normalisees');265 ylabel('Pr ecipitations cumulees normalisees');264 xlabel('Intensités normalisées'); 265 ylabel('Précipitations cumulées normalisées'); 266 266 title(char(97+i)); 267 267 set(gca,'TickDir','in'); -
trunk/src/write_lai_2d.m
r374 r635 95 95 % - fplod 20101206T103915Z adonis.locean-ipsl.upmc.fr (Linux) 96 96 % 97 % * clean ning thanks to mlint97 % * cleaning thanks to mlint 98 98 % 99 99 % - fplod 20101203T093624Z aedon.locean-ipsl.upmc.fr (Darwin) -
trunk/src/write_msg_xrit_nc.py
r633 r635 1 1 #!/usr/bin/env python 2 # -*- coding: iso-8859-1-*-2 # -*- coding: utf-8 -*- 3 3 4 4 __docformat__ = 'reStructuredText' … … 255 255 # time unlimited 1 value 256 256 times[0] = date2num(yyyymmddhhmn, units=times.units,calendar=times.calendar) 257 # control e258 # d ecommenter pour debuger ou ajouter dans le log debug257 # control 258 # décommenter pour debuger ou ajouter dans le log debug 259 259 #dates = num2date(times[0],units=times.units,calendar=times.calendar) 260 260 #print 'dates corresponding to time values:\n',dates -
trunk/src/write_zi.m
r374 r635 241 241 end 242 242 format_code='%s'; 243 format_descri tption='"%s"';243 format_description='"%s"'; 244 244 format_lat='%-6.3f'; 245 245 format_lon='%-7.3f'; 246 246 % loop on zis to write each data line 247 247 for index_zi=1:nb_zi 248 description_trim=strtrim(sprintf(format_descri tption,zi_description(index_zi,:)));248 description_trim=strtrim(sprintf(format_description,zi_description(index_zi,:))); 249 249 code_trim=strtrim(sprintf(format_code,zi_code(index_zi,:))); 250 250 west_trim=strtrim(sprintf(format_lon,west_value(index_zi)));
Note: See TracChangeset
for help on using the changeset viewer.