[3684] | 1 | # -*- coding: iso-8859-1 -*- |
---|
| 2 | # Created : S.Sénési - nov 2015 |
---|
| 3 | |
---|
| 4 | |
---|
| 5 | desc="\nMoyenne par saison et projection des donnees mono-variables issues des donnees SE\n"+\ |
---|
| 6 | " avec ecriture sur fichier \n"+\ |
---|
| 7 | " Exemple : python season.py -s NPv3.1ada_1982_1991 --seasons DJF -g VLR " |
---|
| 8 | |
---|
| 9 | Nota=""" Avec CliMAF, cette etape est loin d'etre necessaire; on la realise |
---|
| 10 | pour 'exposer' ces fichiers dans une arborescence a laquelle sont |
---|
| 11 | habitues certains utilisateurs On ne se repose pas sur l'existence de |
---|
| 12 | fichiers dit 'cmorises', : on accède directement aux donnees SE via |
---|
| 13 | le 'projet' CliMAF adhoc (cf infra) """ |
---|
| 14 | |
---|
| 15 | dir_default='/data/hourdin/LMDZ6/' |
---|
| 16 | |
---|
| 17 | # Répertoire de base pour les entrées et les résultats |
---|
| 18 | seasons_default='JJA,YEAR,DJF' |
---|
| 19 | |
---|
| 20 | # Gestion des options et arguments d'appel |
---|
| 21 | from optparse import OptionParser |
---|
| 22 | parser = OptionParser(desc) ; parser.set_usage("%%prog [-h]\n%s" % desc) |
---|
| 23 | parser.add_option("-i", "--input", help="repertoire des donnes SE d'origine (optionnel)", action="store") |
---|
| 24 | parser.add_option("-o", "--output", |
---|
| 25 | help="repertoire de sortie (un sous rep <GRID>/<SEASON>/<SIMU> sera cree)(defaut : %s)"%dir_default, |
---|
| 26 | action="store",default=dir_default) |
---|
| 27 | parser.add_option("-p", "--seasons", help="saisons a traiter, separees par des virgules " |
---|
| 28 | "(defaut=%s)"%`seasons_default`, action="store", default=seasons_default) |
---|
| 29 | parser.add_option("-g", "--grid", help="nom de grille", action="store",default='') |
---|
| 30 | parser.add_option("-s", "--simulations", help="simulation+annees a traiter (sim_YYY1_YYY2)" |
---|
| 31 | "(separees par des virgules)(defaut : toutes)", action="store",default=None) |
---|
| 32 | parser.add_option("-f", "--force", help="force le recalcul de champs existants", |
---|
| 33 | action="store_true",default=None) |
---|
| 34 | (options, args) = parser.parse_args() |
---|
| 35 | |
---|
| 36 | #--------------------------------------------------------------------------------- |
---|
| 37 | from climaf.api import * |
---|
| 38 | # La description de l'organisation des données SE, des alias et rescalings |
---|
| 39 | # et de la gestion des saisons et grilles , est partagée dans une micro-librairie : |
---|
| 40 | from lmdz_SE import * # variables_list, all_SE_simulations, svsg, seasons |
---|
| 41 | #--------------------------------------------------------------------------------- |
---|
| 42 | # |
---|
| 43 | if options.simulations is None : options.simulations=all_SE_simulations() |
---|
| 44 | else : options.simulations=options.simulations.split(",") |
---|
| 45 | # |
---|
| 46 | for season in options.seasons.split(",") : |
---|
| 47 | if season not in seasons : |
---|
| 48 | print "La saison %s n'est pas connue"%season |
---|
| 49 | continue |
---|
| 50 | for simulation in options.simulations : |
---|
| 51 | out_dir=options.output+"/"+options.grid+"/"+season+"/"+simulation+"/" |
---|
| 52 | # |
---|
| 53 | for var in variables_list : |
---|
| 54 | result=svsg(simulation,var,season,options.grid) |
---|
| 55 | try : |
---|
| 56 | cfile(result,out_dir+var+".nc",deep=options.force,ln=True) |
---|
| 57 | #cfile(result,out_dir+var+".nc",deep=None,ln=True) |
---|
| 58 | except : |
---|
| 59 | print "Pb avec la simulation %s , la saison %s et la variable %s"%(simu,season,var) |
---|
| 60 | |
---|