source: BOL/Multi_atlas/atlas/pseudo_cmor.py @ 4221

Last change on this file since 4221 was 3684, checked in by idelkadi, 4 years ago

Repository under svn of a first version of Multiatlas diagnostics for LMDZ. This version is adapted to be able to run a LMDZ multiatlas on an individual account on the ciclad machine of the IPSL. In this version, the parts to be modified are identified so as to subsequently adapt it to other machines.
This version is still under development.

  • Property svn:executable set to *
File size: 2.8 KB
Line 
1# -*- coding: iso-8859-1 -*-
2# Created : S.Sénési - nov 2015
3
4
5desc="\nReformatage des donnees SE en fichiers mono-variable ('cmorises')\n"+\
6"  Exemples : \n"+\
7"  >>> python ./pseudo_cmor.py -v hfls -s NPv3.1ada_1982_1991\n"+\
8"  >>> python ./pseudo_cmor.py  (! couteux : traite tout !)\n"
9
10# Avec CliMAF, cette etape est loin d'etre necessaire; on la réalise pour 'exposer' ces fichiers
11# dans une arborescence à laquelle sont habitues certains utilisateurs
12
13
14# Gestion des options et arguments d'appel
15from optparse import OptionParser
16parser = OptionParser(desc) ; parser.set_usage("%%prog [-h]\n%s" % desc)
17parser.add_option("-f", "--force", help="force le recalcul de champs existants", action="store_true",default=None)
18parser.add_option("-i", "--input", help="repertoire des donnees SE (optionnel)", action="store",default=None)
19parser.add_option("-o", "--output", help="repertoire de sortie", action="store",default='./test/')
20parser.add_option("-v", "--variables", help="liste des variables (separees par des virgules)(deafut : toutes celles definies dans lmdz_SE)", action="store",default=None)
21#simu='NPv3.1ada_1982_1991' ;
22parser.add_option("-s", "--simulations", help="simulations a traiter (defaut : toutes)", action="store",default=None)
23(options, args) = parser.parse_args()
24
25#---------------------------------------------------------------------------------
26verbose=True
27from climaf.api import *
28# La description de l'organisation des données SE et des alias et rescalings
29# est partagée dans une micro-librairie :
30from lmdz_SE import * # dont : variables_list
31#---------------------------------------------------------------------------------
32
33if (options.input) :  cdef('root',options.input,project='SE')
34#
35lvars=options.variables
36if lvars is not None : lvars=lvars.split(',')
37else : lvars=variables_list
38
39def create_mono_var_files(simu,lvars,rootout,force=None) :
40    """ Use CliMAF basics to create a mono-variable file in dir rootout/simulation/
41    for each var in 'lvars', using SE data for simulation 'simu'
42
43    The file will also be known to CliMAF cache, through a symbolic link
44    """
45    #
46    # Il faut identifier les annees dans le nom de la simu
47    yeardeb=simu.split('_')[1]
48    yearfin=simu.split('_')[2]
49    years=yeardeb+"_"+yearfin
50    simu=simu.split('_')[0]
51    #
52    dirout=rootout+'/'+simu+'_'+years+'/'
53    print "vars : ",
54    for var in lvars :
55        print " %s, "%(var),
56        data=ds(project='SE',variable=var,years=years, simulation=simu)
57        try : 
58            cfile(data,dirout+var+'.nc',ln=True, deep=force)
59        except : print " Pb ",
60
61if options.simulations is None : options.simulations=all_SE_simulations()
62else : options.simulations=options.simulations.split(",")
63
64for simulation in options.simulations :
65    print "simu=%s"%(simulation),
66    create_mono_var_files(simulation,lvars,rootout=options.output,force=options.force)
67
Note: See TracBrowser for help on using the repository browser.