1212from pprint import pprint
1313from warnings import warn
1414from importlib .resources import files
15+ import copy
1516
1617import pandas as pd
1718import xarray as xr
@@ -144,7 +145,10 @@ def get_file_from_template(
144145 date = "INVARIANT"
145146 else :
146147 date = pd .to_datetime (date ).strftime ("%Y-%m-%d" )
147- return op .join (path_template , file_template ).format (
148+
149+ filepath_template = op .join (path_template , file_template )
150+
151+ return filepath_template .format (
148152 date = date ,
149153 era_id = era_id ,
150154 frequency = frequency ,
@@ -159,8 +163,10 @@ def get_files_from_template(params, date, template=None):
159163 files = {}
160164 for k , v in params .items ():
161165 f = get_file_from_template (date = date , template = template , ** v )
162- if not f :
163- warn (f"no result for { k } --> params: { v } " )
166+ if not op .isfile (f ) and v .get ("era_id" ) == "E1" :
167+ warn (f"file not found: { f } , will try E5" )
168+ v ["era_id" ] = "E5"
169+ f = get_file_from_template (date = date , template = template , ** v )
164170 files [k ] = f
165171 return files
166172
@@ -529,11 +535,12 @@ def era5_gfile_from_dkrz(date, path, expid="000000"):
529535 str
530536 The path to the computed gfile.
531537 """
532- global era5_params
538+ params = copy . deepcopy ( era5_params )
533539
534- params = era5_params .copy ()
535540 if date .year in range (2000 , 2007 ):
536541 for k , v in params .items ():
542+ # if v["level_type"] == "model_level":
537543 v ["era_id" ] = "E1"
544+
538545 era5 = ERA5 (params , gridfile = era5_grid_file )
539546 return era5 .gfile (date .strftime ("%Y-%m-%dT%H:%M:%S" ), path , expid )
0 commit comments