import os from climaf.dataloc import dataloc from climaf.classes import cproject, calias, cfreqs, cdef p = cproject( "CMIP5", "model", "experiment", ("frequency", "monthly"), ("table", "*"), ("realm", "*"), ("version", "last"), ensemble=["model", "simulation"], ) cdef("simulation", "r1i1p1", project="CMIP5") # Frequency alias cfreqs("CMIP5", {"monthly": "mon", "daily": "day"}) urls_CMIP5 = None if os.path.exists("/cnrm"): # Declare a list of root directories for CNRM-CM CMIP5 data on CNRM's Lustre file system. urls_CMIP5 = [ "/cnrm/aster/data2/ESG/data1", "/cnrm/aster/data2/ESG/data2", "/cnrm/aster/data2/ESG/data5", "/cnrm/aster/data4/ESG/data6", "/cnrm/aster/data4/ESG/data7", "/cnrm/aster/data4/ESG/data8",
# --------------------------------------------- > pattern1 = '${root}/CORDEX/output/${CORDEX_domain}/${institute}/${driving_model}/${experiment}/${realization}/' \ '${model}/${model_version}/${frequency}/${variable}/${version}/' \ '${variable}_${CORDEX_domain}_${driving_model}_${experiment}_${realization}_${model}_${model_version}_' \ '${frequency}_${PERIOD}.nc' pattern2 = '${root}/CORDEX/output/${CORDEX_domain}/${institute}/${driving_model}/${extent_experiment}/' \ '${realization}/${model}/${model_version}/${frequency}/${variable}/${version}/' \ '${variable}_${CORDEX_domain}_${driving_model}_${extent_experiment}_${realization}_${model}_' \ '${model_version}_${frequency}_${PERIOD}.nc' # -- CORDEX cproject('CORDEX', 'root', 'model', 'CORDEX_domain', 'model_version', 'frequency', 'driving_model', 'realization', 'experiment', 'version', 'institute', ensemble=['model', 'driving_model', 'realization'], separator='%') dataloc(project='CORDEX', url=[pattern1]) cdef('experiment', '*', project='CORDEX') cdef('model_version', '*', project='CORDEX') # -- CORDEX extent (historical + scenario at once) cproject('CORDEX_extent', 'root', 'model', 'CORDEX_domain', 'model_version', 'frequency', 'driving_model', 'realization', 'experiment', 'extent_experiment', 'version', 'institute', ensemble=['model', 'driving_model', 'realization'], separator='%') dataloc(project='CORDEX_extent', url=[pattern1]) dataloc(project='CORDEX_extent', url=[pattern2]) cdef('extent_experiment', 'rcp85', project='CORDEX_extent') cdef('experiment', 'historical', project='CORDEX_extent') cdef('model_version', '*', project='CORDEX_extent') # -- CORDEX Adjust pattern = '${root}/CORDEX-Adjust/bias-adjusted-output/${CORDEX_domain}/${institute}/${driving_model}/' \ '${experiment}/${realization}/${model}/${bias_correction}/${frequency}/${variable}/${version}/' \
Example :: >>> pr_gpcp=ds(project='CAMIOBS', simulation='GPCP2.5d', variable='pr', period='1979-1980') """ from climaf.dataloc import dataloc from climaf.classes import cproject, calias, cdef cproject("CAMIOBS", "product", separator="_") # Root directory for obs data organized 'a la CAMI' on CNRM's Lustre file system. CAMIOBS_root = "/cnrm/est/COMMON/cami/V1.8/climlinks/" # Pattern for matching CAMI obs data files and their directory. # We choose to use facet 'model' to carry the observation source CAMIOBS_pattern = "${product}/${variable}_1m_${PERIOD}_${simulation}.nc" # Declare the CAMIOBS pattern to be associated with a project we name OBS_CAMI dataloc(project="CAMIOBS", organization="generic", url=[CAMIOBS_root + CAMIOBS_pattern]) cdef("simulation", "*", project="CAMIOBS") # From here, you can define your dataset using these files. # You need only to define the facets useful w.r.t. the patterns # i.e. here : model and variable #pr_gpcp=ds(project="CAMIOBS", product="GPCP2.5d", variable="pr", period="1979-1980")
## -- Declare a 'CMIP6 CliMAF project ## ------------------------------------ > cproject('CMIP6', 'root', 'model', 'institute', 'mip', 'table', 'experiment', 'realization', 'grid', 'version', ensemble=['model','realization'], separator='%') ## -- Declare a CMIP6 'extent' CliMAF project = extracts a period covering historical and a scenario ## ------------------------------------ > cproject('CMIP6_extent', 'root', 'model', 'institute', 'mip', 'table', 'experiment', 'extent_experiment', 'realization', 'grid', 'version', ensemble=['model','realization'], separator='%') for project in ['CMIP6', 'CMIP6_extent']: ## --> systematic arguments = simulation, frequency, variable ## -- Set the aliases for the frequency ## -- Set default values cdef('root' , root , project=project) cdef('institute' , '*' , project=project) cdef('model' , '*' , project=project) cdef('mip' , '*' , project=project) #cdef('table' , '*' , project='CMIP6') # impossible, because of ambiguities cdef('grid' , 'g*' , project=project) cdef('realization' , 'r1i1p1f*' , project=project) cdef('experiment' , 'historical' , project=project) cdef('version' , 'latest' , project=project) cdef('table' , '*' , project=project) # calias(project, 'tos', offset=273.15) calias(project, 'thetao', offset=273.15) calias(project, 'sivolu', 'sivol') calias(project, 'sic', 'siconc') calias(project, 'sit', 'sithick')
if atCNRM: root = "/cnrm/est/COMMON/climaf/reference_datasets_from_IPSL/" cproject('ref_climatos', ('frequency', 'annual_cycle'), 'product', 'clim_period', ensemble=['product'], separator='%') cfreqs('ref_climatos', { 'monthly': 'mo', 'daily': 'day', 'seasonal': 'mo', 'annual_cycle': 'mo' }) cdef('variable', '*', project='ref_climatos') cdef('product', '*', project='ref_climatos') cdef('clim_period', '*', project='ref_climatos') cdef('simulation', 'refproduct', project='ref_climatos') cdef('period', 'fx', project='ref_climatos') if (root): pattern2 = root + "climatos/*/${frequency}/${variable}/${product}/ac/${variable}_*mon_${product}_${clim_period}-clim.nc" dataloc(project='ref_climatos', organization='generic', url=pattern2) ########################################################################################## cproject('ref_ts', ('frequency', 'monthly'), ('product', '*'), ('period', '1900-2050')) cfreqs('ref_ts', {'monthly': 'mo', 'daily': 'day'})
""" from climaf.dataloc import dataloc from climaf.classes import cproject, calias, cfreqs, cdef # Declare CMIP6CERFACS project cproject('CMIP6CERFACS', 'model', 'simulation', 'institute', 'mip','table', 'realization', 'grid', separator='%') # --> systematic arguments = simulation, frequency, variable # -- Set the aliases for the frequency # cfreqs('PRIMAVERA-cerfacs', {'monthly':'mon', 'yearly':'yr', 'daily':'day'}) # crealms('IGCM_CMIP6', {'atmos':'ATM', 'ocean':'OCE', 'land':'SRF', 'seaice':'ICE' }) # -- Set default values cdef('institute', 'CNRM-CERFACS', project='CMIP6CERFACS') cdef('mip', '*', project='CMIP6CERFACS') cdef('model', '*', project='CMIP6CERFACS') cdef('simulation', '*', project='CMIP6CERFACS') cdef('domain', 'global', project='CMIP6CERFACS') cdef('period', '*', project='CMIP6CERFACS') cdef('variable', 'tas', project='CMIP6CERFACS') cdef('table', 'Amon', project='CMIP6CERFACS') cdef('realization', 'r*i1p1f*', project='CMIP6CERFACS') cdef('grid', 'g*', project='CMIP6CERFACS') # -- Specify the pattern root1 = "/data/scratch/globc/dcom/CMIP6/${mip}/${institute}/${model}/${model}_${simulation}_${realization}/" pathfiles1 = root1 + "${variable}_${table}_${model}_${simulation}_${realization}_${grid}_${PERIOD}.nc" root2 = "/data/scratch/globc/dcom/PRIMAVERA/WP6_HIGHRESMIP/${model}_${simulation}_${realization}/" pathfiles2 = root2 + "${variable}_${table}_${model}_${simulation}_${realization}_${grid}_${PERIOD}.nc"
pathG = "${root}/${group}/${simulation}/" pathI = pathG + "O/${simulation}_1${frequency}_YYYYMMDD_YYYYMMDD_icemod.nc" # var:T pathO = pathG + "O/${simulation}_1${frequency}_YYYYMMDD_YYYYMMDD_grid_${variable}.nc" # var:T dataloc(project="emn36", organization="generic", url=[pathI, pathO]) # Shared simulations pathg = "/cnrm/cmip/cnrm/simulations/${group}/" pathgI = pathg + "O/Origin/Monthly/${simulation}/${simulation}_1${frequency}_YYYYMMDD_YYYYMMDD_icemod.nc" pathgO = pathg + "O/Origin/Monthly/${simulation}/${simulation}_1${frequency}_YYYYMMDD_YYYYMMDD_grid_${variable}.nc" dataloc(project="emn36", organization="generic", url=[pathgI, pathgO]) # Define default values ############################################ # You do not need to use a GROUPs experiment cdef("group", "", project="emn36") cdef("frequency", "monthly", project="emn36") cfreqs("emn36", {"daily": "d", "monthly": "m"}) # More details about data organization ############################################ # Describe how to locate some ocean variables in multi-variable data files calias("emn36", 'e-p', filenameVar='S') calias("emn36", 'fcalva', filenameVar='S') calias("emn36", 'fcalvg', filenameVar='S') calias("emn36", 'friver', filenameVar='S') calias("emn36", 'flake', filenameVar='S') calias("emn36", 'omlmax', filenameVar='S') calias("emn36", 'so', filenameVar='S')
'model', 'realization', 'grid', ensemble=['model', 'simulation', 'realization'], separator='%') # --> systematic arguments = simulation, frequency, variable # -- Set the aliases for the frequency cfreqs('IGCM_CMIP6', {'monthly': 'mon', 'yearly': 'yr', 'daily': 'day'}) crealms('IGCM_CMIP6', { 'atmos': 'ATM', 'ocean': 'OCE', 'land': 'SRF', 'seaice': 'ICE' }) # -- Set default values cdef('IPSL_MODEL', 'IPSLCM6', project='IGCM_CMIP6') cdef('realization', 'r1i1p1f1', project='IGCM_CMIP6') cdef('status', '*', project='IGCM_CMIP6') cdef('experiment', 'historical', project='IGCM_CMIP6') cdef('realm', '*', project='IGCM_CMIP6') cdef('table', '_', project='IGCM_CMIP6') cdef('frequency', 'monthly', project='IGCM_CMIP6') cdef('grid', 'gr', project='IGCM_CMIP6') cdef('root', root, project='IGCM_CMIP6') # -- Specify the pattern pattern1 = "${root}/${login}/IGCM_OUT/${IPSL_MODEL}/${status}/${experiment}/${simulation}/CMIP6/${realm}/" \ "${variable}_*${frequency}_${model}_${experiment}_${realization}_${grid}_${PERIOD}.nc" pattern2 = "${root}/${login}/IGCM_OUT/${IPSL_MODEL}/${status}/${experiment}/${simulation}/CMIP6/${realm}/" \ "${variable}_${table}_${model}_${experiment}_${realization}_${grid}_${PERIOD}.nc" # pattern3="${root}/${login}/IGCM_OUT/${IPSL_MODEL}/${status}/${experiment}/${simulation}/CMIP6/${realm}/"
""" This module declares PCMDI reference products on ciclad data organization and specifics, as managed by J. Servonnat at IPSL; """ from climaf.dataloc import dataloc from climaf.classes import cproject, calias, cfreqs, cdef from climaf.site_settings import onCiclad cfreqs('ref_pcmdi', {'monthly':'mo' , 'daily':'day' , 'seasonal':'mo', 'annual_cycle':'mo'}) if onCiclad: cproject('ref_pcmdi', ('frequency','annual_cycle'), 'product', 'clim_period') cdef('variable', '*', project='ref_pcmdi') cdef('product', '*', project='ref_pcmdi') cdef('clim_period', '*', project='ref_pcmdi') cdef('period', '1950-2015', project='ref_pcmdi') root="/data/jservon/Evaluation/ReferenceDatasets/PCMDI-MP/obs/*/${frequency}/${variable}/${product}/ac/" pattern2=root+"${variable}_*mon_${product}_${clim_period}-clim.nc" dataloc(project='ref_pcmdi', organization='generic', url=pattern2)
# Rajouter login et disk (ou filesystem) = scratch/store/work # ajouter realm? atmos -> ATM; ocean -> OCE root = None if atTGCC: # Declare a list of root directories for IPSL data at TGCC root="/ccc/store/cont003/dsm" if onCiclad : # Declare a list of root directories for CMIP5 data on IPSL's Ciclad file system root="/data/jservon/IPSL_DATA/SIMULATIONS" p=cproject("IGCM_OUT", "clim_period", "model", "simulation", "variable", "frequency", "experiment", "OUT", "DIR", "login", "period", "root", ensemble=["model","simulation"], separator="%") cdef('root', root, project='IGCM_OUT') cdef('clim_period', '????_????', project='IGCM_OUT') cdef('model', '*', project='IGCM_OUT') cdef('simulation', '*', project='IGCM_OUT') cdef('variable', '*', project='IGCM_OUT') cdef('frequency', 'monthly', project='IGCM_OUT') cdef('experiment', '*', project='IGCM_OUT') cdef('OUT', '*', project='IGCM_OUT') cdef('DIR', '*', project='IGCM_OUT') cdef('login', '*', project='IGCM_OUT') cdef('period', '0001-3000', project='IGCM_OUT') # Frequency alias cfreqs('IGCM_OUT', {'monthly':'1M' , 'daily':'1D' , 'seasonal':'SE', 'annual_cycle':'SE'})
# Declare a list of root directories for IPSL data at TGCC root = "/ccc/store/cont003/dsm" if onCiclad: # Declare a list of root directories for CMIP5 data on IPSL's Ciclad file system root = "/prodigfs/fabric" if onSpip: # Declare a list of root directories for IPSL data at TGCC root = "/Users/marti/Volumes/CURIE/ccc/store/cont003/dsm" print 'igcm_out : declaration root sur Spip : ', root if root: p = cproject("NEMO", "root", "login", "model", "config", "status", "experiment", "simulation", "DIR", "OUT", "ave_length", "frequency", "period", "clim_period", "clim_period_length", ensemble=["model", "simulation", "clim_period"], separator="%") cdef('root', root, project='NEMO') cdef('clim_period', '????_????', project='NEMO') cdef('clim_period_length', '*', project='NEMO') # --> Takes the following values: '*', '' # (to access only to SE), '_50Y', '_100Y' cdef('ave_length', '*', project='NEMO') # --> Takes the following values: MO, DA... cdef('model', 'NEMO_v6', project='NEMO') cdef('config', 'ORCA1_LIM3_PISCES', project='NEMO') cdef('status', '*', project='NEMO') # --> PROD, DEVT, TEST cdef('simulation', '*', project='NEMO') cdef('variable', '*', project='NEMO') cdef('frequency', 'yearly', project='NEMO') cdef('experiment', 'ORCA1ia', project='NEMO') cdef('OUT', 'Output', project='NEMO') # --> Output, Analyse cdef('DIR', '*', project='NEMO') # --> ATM, OCE, SRF... cdef('login', '*', project='NEMO') cdef('period', 'fx', project='NEMO')
cproject('CMIP6', 'root', 'model', 'institute', 'mip', 'table', 'experiment', 'realization', 'grid', 'version', ensemble=['model', 'realization'], separator='%') ## --> systematic arguments = simulation, frequency, variable ## -- Set the aliases for the frequency ## -- Set default values cdef('root', root, project='CMIP6') cdef('institute', '*', project='CMIP6') cdef('mip', '*', project='CMIP6') #cdef('table' , '*' , project='CMIP6') # impossible, because of ambiguities cdef('grid', 'g*', project='CMIP6') if atCNRM: cdef('realization', 'r1i1p1f2', project='CMIP6') else: cdef('realization', 'r1i1p1f1', project='CMIP6') cdef('experiment', 'historical', project='CMIP6') cdef('version', 'latest', project='CMIP6') ## -- Define the patterns base_pattern = "${root}/CMIP6/${mip}/${institute}/${model}/${experiment}/${realization}/${table}/" base_pattern += "${variable}/${grid}/${version}/${variable}_${table}_${model}_${experiment}_${realization}_${grid}_" patterns = []
# Shared simulations - example : group=SC pathg = "/cnrm/cmip/cnrm/simulations/${group}/" pathgA = pathg + "${realm}/Regu/${frequency}/${simulation}/${simulation}PLYYYY.nc" #C1P60 pathgL = pathg + "${realm}/Regu/${frequency}/${simulation}/${simulation}SFXYYYY.nc" #C1P60 pathgI = pathg + "${realm}/Origin/Monthly/${simulation}/${variable}_O1_YYYY-YYYY.nc" #HISTNATr8 pathgO = pathg + "${realm}/Origin/Monthly/${simulation}/${simulation}_1${frequency}_YYYYMMDD_YYYYMMDD_grid_${variable}.nc" dataloc(project="em", organization="generic", url=[pathgA, pathgL, pathgI, pathgO]) # Define default values ############################################ # You do not need to use a GROUPs experiment cdef("group", "", project="em") # Files hierarchy and file naming conventions for ocean data requires # to tell freq="m" when defining a monthly ocean dataset. Otherwise, it defaults to 'mon' cdef("frequency", "mon", project="em") # Realm is used only for sometimes disambiguating a variable among realms cdef("realm", "*", project="em") # A/L/I/O or , for shared simulation : Atmos/Land/Seaice/Ocean # More details about data organization ############################################ # Describe how to locate some ocean variables in multi-variable data files #calias("em", 'sos' ,filenameVar='S*') #calias("em", 'so' ,filenameVar='S*')
Example for a CMIP5 dataset declaration :: >>> tas1pc=ds(project='CMIP5', model='CNRM-CM5', experiment='1pctCO2', variable='tas', frequency='monthly', period='1860-1861') """ import os from climaf.dataloc import dataloc from climaf.classes import cproject, calias, cfreqs,cdef from climaf.site_settings import atCNRM, onCiclad, atCEDA p=cproject("CMIP5" ,"model","experiment", ("frequency","monthly"), ("table","*"),("realm","*"),("version","last"), ensemble=["model","simulation"]) cdef("simulation","r1i1p1",project="CMIP5") # Frequency alias cfreqs('CMIP5', {'monthly':'mon' , 'daily':'day' }) urls_CMIP5=None if atCNRM : # Declare the directory for CNRM-CM CMIP5 data on CNRM's Lustre file system. urls_CMIP5=["/cnrm/cmip/cnrm/ESG"] if onCiclad : # Declare a list of root directories for CMIP5 data on IPLS's Ciclad file system urls_CMIP5=["/prodigfs/project/"] if atCEDA: urls_CMIP5=["/badc/cmip5/data"]
dataloc(project='CMIP5_extent', organization='generic', url=pattern1) dataloc(project='CMIP5_extent', organization='generic', url=pattern2) # -- Make the alias and default values for both projects for project in ['CMIP5', 'CMIP5_extent']: # calias(project, 'tos', offset=273.15) # calias(project, 'thetao', offset=273.15) # calias(project, 'sivolu', 'sivol') # calias(project, 'sic', 'siconc') # calias(project, 'sit', 'sithick') calias(project, 'NO3', 'no3') calias(project, 'PO4', 'po4') calias(project, 'Si', 'si') calias(project, 'O2', 'o2') cdef('root', root, project=project) # cdef('institute' , '*' , project=project) cdef('table', '*', project=project) # impossible, because of ambiguities cdef('realm', '*', project=project) cdef('realization', 'r1i1p1', project=project) cdef('experiment', 'historical', project=project) cdef('version', '*', project=project) cdef('frequency', '*', project=project) cdef('extent_experiment', 'rcp85', project='CMIP5_extent') # -- Declare a CMIP5-Adjust CliMAF project: bias corrected CMIP5 simulations # ------------------------------------ > pattern = '${root}/CMIP5-Adjust/bias-adjusted-output/*/${model}/${experiment}/${frequency}/${realm}/${table}/' \ '${realization}/${gr}/${bias_correction}/${version}/${variable}/' \ '${variable}_${table}_${model}_${experiment}_${realization}_${gr}_${bias_correction}_${PERIOD}.nc' cproject('CMIP5-Adjust', 'root', 'model', 'experiment', 'bias_correction', 'frequency', 'table', 'gr', 'realm',
""" This module declares the project E-OBS : This archive is available on Ciclad (IPSL) The specific attributes are: - grid : '*' """ from climaf.dataloc import dataloc from climaf.classes import cproject, calias, cfreqs, cdef from climaf.site_settings import onCiclad, atTGCC, atIDRIS, atCerfacs, atCNRM if onCiclad: # -- Create E-OBS CliMAF project EOBS_pattern = '/bdd/E-OBS/Grid_${grid}/${variable}_${grid}_${PERIOD}_v15.0.nc4' cproject('E-OBS', 'grid', 'frequency', separator='%') dataloc(project='E-OBS', organization='generic', url=EOBS_pattern) # -- Make a cdef('frequency', 'daily', project='E-OBS') cdef('grid', '*deg_*', project='E-OBS') cdef('period', '*', project='E-OBS') cdef('variable', '*', project='E-OBS') cfreqs('E-OBS', {'daily': 'day'}) calias('E-OBS', 'tasmin', 'tn') calias('E-OBS', 'tasmax', 'tx')
# Shared simulations - example : group=SC pathg="/cnrm/cmip/cnrm/simulations/${group}/" pathgA=pathg+"${realm}/Regu/${frequency}/${simulation}/${simulation}PLYYYY.nc" #C1P60 pathgL=pathg+"${realm}/Regu/${frequency}/${simulation}/${simulation}SFXYYYY.nc" #C1P60 pathgI=pathg+"${realm}/Origin/Monthly/${simulation}/${variable}_O1_${PERIOD}.nc" #HISTNATr8 pathgO=pathg+"${realm}/Origin/Monthly/${simulation}/${simulation}_1${frequency}_${PERIOD}_grid_${variable}.nc" dataloc(project="em", organization="generic", url=[pathgA,pathgL,pathgI,pathgO]) # Define default values ############################################ # You do not need to use a GROUPs experiment cdef("group","",project="em") ; # Files hierarchy and file naming conventions for ocean data requires # to tell freq="m" when defining a monthly ocean dataset. Otherwise, it defaults to 'mon' cdef("frequency","mon",project="em") ; # Realm is used only for sometimes disambiguating a variable among realms cdef("realm","*",project="em") ; # A/L/I/O or , for shared simulation : Atmos/Land/Seaice/Ocean # More details about data organization ############################################ # Describe how to locate some ocean variables in multi-variable data files #calias("em", 'sos' ,filenameVar='S*') #calias("em", 'so' ,filenameVar='S*')
'root', 'model', 'realm', 'experiment', 'realization', 'frequency', ensemble=['model', 'realization'], separator='%') ## -- Define the pattern for CMIP3 data pattern1 = '${root}/${experiment}/${realm}/${frequency}/${variable}/${model}/${realization}/' pattern1 += '${variable}_*.nc' ## -- call the dataloc CliMAF function dataloc(project='CMIP3', organization='generic', url=pattern1) # -- Make the alias and default values for both projects for project in ['CMIP3']: #calias(project, 'tos', offset=273.15) cdef('root', root, project=project) cdef('realm', '*', project=project) cdef('realization', '*', project=project) cdef('experiment', 'sresa1b', project=project) cdef('frequency', 'mo', project=project) cdef('period', '*', project=project) cfreqs(project, { 'monthly': 'mo', })
root = "/ccc/work/cont003/igcmg/igcmg/IGCM/ReferenceDatasets/" if atIDRIS: root = "/workgpfs/rech/psl/rpsl035/IGCM/ReferenceDatasets/" if atCerfacs: root = "/data/scratch/globc/dcom/globc_obs/OBS4MIPS_ANA4MIPS_CMOR/Tier1/ERA5/" if atCNRM: root = "/cnrm/est/COMMON/climaf/reference_datasets_from_IPSL/" cproject('ref_era5cerfacs', ('frequency', 'monthly'), 'product', ('period', '1979-2018'), 'obs_type', 'table', separator='%') cfreqs('ref_era5cerfacs', {'monthly': 'mon', 'daily': 'day'}) cdef('variable', '*', project='ref_era5cerfacs') cdef('product', 'ERA5', project='ref_era5cerfacs') cdef('period', '1979-2018', project='ref_era5cerfacs') cdef('obs_type', 'reanalysis', project='ref_era5cerfacs') cdef('table', '*', project='ref_era5cerfacs') # Obs de MOC RAPID (Il a fallu bricoler les donnees d'origine pour la dimension time au debut et unlim) # dataloc(project="ref_climatos",organization="generic", # url='/home/esanchez/data_climaf/${variable}_vertical_unlim.nc') calias(project='ref_era5cerfacs', variable='moc', fileVariable='stream_function_mar', filenameVar='moc') if root: pattern1 = root + "${variable}_${table}_${obs_type}_${product}_${PERIOD}.nc"
"login", "model", "status", "experiment", "simulation", "DIR", "OUT", "ave_length", "frequency", "period", "clim_period", "clim_period_length", ensemble=["model", "simulation", "clim_period"], separator="%") cdef('root', root, project='IGCM_OUT_old') cdef('clim_period', '????_????', project='IGCM_OUT_old') cdef( 'clim_period_length', '*', project='IGCM_OUT_old' ) # --> Takes the following values: '*', '' (to access only to SE), '_50Y', '_100Y' cdef('ave_length', '*', project='IGCM_OUT_old') # --> Takes the following values: MO, DA... cdef('model', '*', project='IGCM_OUT_old') cdef('status', '*', project='IGCM_OUT_old') # --> PROD, DEVT, TEST cdef('simulation', '*', project='IGCM_OUT_old') cdef('variable', '*', project='IGCM_OUT_old') cdef('frequency', 'monthly', project='IGCM_OUT_old') cdef('experiment', '*', project='IGCM_OUT_old') cdef('OUT', 'Analyse', project='IGCM_OUT_old') # --> Output, Analyse cdef('DIR', '*', project='IGCM_OUT_old') # --> ATM, OCE, SRF... cdef('login', '*', project='IGCM_OUT_old')
""" This module declares the project E-OBS : This archive is available on Ciclad (IPSL) The specific attributes are: - grid : '*' """ from climaf.dataloc import dataloc from climaf.classes import cproject, calias, cfreqs, cdef from climaf.site_settings import onCiclad, atTGCC, atIDRIS, atCerfacs, atCNRM if onCiclad: # -- Create E-OBS CliMAF project EOBS_pattern = '/bdd/E-OBS/Grid_${grid}/${variable}_${grid}_YYYY-YYYY_v15.0.nc4' cproject('E-OBS', 'grid', 'frequency', separator='%') dataloc(project='E-OBS', organization='generic', url=EOBS_pattern) # -- Make a cdef('frequency', 'daily', project='E-OBS') cfreqs('E-OBS', {'daily': 'day'}) calias('E-OBS', 'tasmin', 'tn') calias('E-OBS', 'tasmax', 'tx')