Skip to content

Commit 27f0ffd

Browse files
committed
modification to enable WW3 spectra from CCI sea state runs to be co-located
1 parent f575d1c commit 27f0ffd

File tree

2 files changed

+29
-12
lines changed

2 files changed

+29
-12
lines changed

slcl1butils/coloc/coloc_IW_WW3spectra.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,13 @@ def check_colocation(cartesianspWW3, lon, lat, time):
135135
return coloc_ds
136136

137137

138-
def resampleWW3spectra_on_TOPS_SAR_cartesian_grid(dsar, xspeckind):
138+
def resampleWW3spectra_on_TOPS_SAR_cartesian_grid(dsar, xspeckind, nameWW3sp_product):
139139
"""
140140
141141
Args:
142142
dsar: xarray.core.Dataset IW Level-1B IFREMER dataset
143143
xspeckind: str inter or intra
144+
nameWW3sp_product: str example "ww3CCIseastate_spectra"
144145
Returns:
145146
146147
"""
@@ -149,7 +150,7 @@ def resampleWW3spectra_on_TOPS_SAR_cartesian_grid(dsar, xspeckind):
149150
start_date_dt = datetime.datetime.strptime(
150151
dsar.attrs["start_date"], "%Y-%m-%d %H:%M:%S.%f"
151152
)
152-
pathww3sp = get_ww3HINDCAST_TRCKspectra_path_from_date(sar_date=start_date_dt)
153+
pathww3sp = get_ww3_path_from_date(sar_date=start_date_dt,nameWW3sp_product=nameWW3sp_product)
153154
gridsar = {
154155
d: k
155156
for d, k in dsar.sizes.items()
@@ -296,11 +297,13 @@ def resampleWW3spectra_on_TOPS_SAR_cartesian_grid(dsar, xspeckind):
296297
return dsar, flag_ww3spectra_added, flag_ww3spectra_found
297298

298299

299-
def get_ww3HINDCAST_TRCKspectra_path_from_date(sar_date):
300+
def get_ww3_path_from_date(sar_date,nameWW3sp_product):
300301
"""
301302
302303
Args:
303304
sar_date: (datetime)
305+
nameWW3sp_product : (str) eg ww3CCIseastate_spectra
306+
304307
305308
Returns:
306309
filename (str): path of the TRCK WW3 HINDCAST corresponding to the
@@ -309,10 +312,17 @@ def get_ww3HINDCAST_TRCKspectra_path_from_date(sar_date):
309312

310313
filename = None
311314
conf = get_conf()
312-
pattern = conf["ww3hindcast_track_pattern"].replace(
315+
if 'ww3handcast_track_pattern' in nameWW3sp_product:
316+
pattern = conf["ww3hindcast_track_pattern"].replace(
313317
"LOPS_WW3-GLOB-30M_*_trck.nc",
314318
"LOPS_WW3-GLOB-30M_" + sar_date.strftime("%Y%m") + "_trck.nc",
315-
)
319+
)
320+
elif 'ww3CCIseastate_spectra' in nameWW3sp_product:
321+
pattern = conf['auxilliary_dataset'][nameWW3sp_product]['pattern'].replace('%Y/',sar_date.strftime("%Y/")).replace('%Y%m',sar_date.strftime("%Y%m"))
322+
323+
else:
324+
raise ValueError('nameWW3sp_product: not handled : %s'%nameWW3sp_product)
325+
logging.info('pattern for spectra : %s',pattern)
316326
datefound, pattern2 = resource_strftime(pattern, step=0.5, date=sar_date)
317327
filenames = glob.glob(pattern2)
318328

slcl1butils/scripts/do_IW_L1C_SAFE_from_L1B_SAFE.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -213,21 +213,27 @@ def enrich_onesubswath_l1b(
213213
ancillary_list[ancillary_name], ds_intra, ds_inter
214214
)
215215
flag_ancillaries[ancillary_name] = ancillary_fields_added
216-
if "ww3hindcast_spectra" in ancillary_list:
216+
if "ww3hindcast_spectra" in ancillary_list or 'ww3CCIseastate_spectra' in ancillary_list:
217+
idx = None
218+
for uui,uu in enumerate(ancillary_list):
219+
if 'spectra' in uu:
220+
idx = uu
221+
ww3spectra_matching_name = ancillary_list[idx]['name']
222+
logging.info('the product used to add wave spectra is: %s',ww3spectra_matching_name)
217223
(
218224
ds_intra,
219225
flag_ww3spectra_added,
220226
flag_ww3spectra_found,
221227
) = resampleWW3spectra_on_TOPS_SAR_cartesian_grid(
222-
dsar=ds_intra, xspeckind="intra"
228+
dsar=ds_intra, xspeckind="intra",nameWW3sp_product=ww3spectra_matching_name
223229
)
224230
flag_ancillaries["ww3spectra_intra"] = flag_ww3spectra_added
225231
(
226232
ds_inter,
227233
flag_ww3spectra_added,
228234
flag_ww3spectra_found,
229235
) = resampleWW3spectra_on_TOPS_SAR_cartesian_grid(
230-
dsar=ds_inter, xspeckind="inter"
236+
dsar=ds_inter, xspeckind="inter",nameWW3sp_product=ww3spectra_matching_name
231237
)
232238
flag_ancillaries["ww3spectra_inter"] = flag_ww3spectra_added
233239
return ds_intra, ds_inter, flag_ancillaries
@@ -271,7 +277,7 @@ def append_ancillary_field(ancillary, ds_intra, ds_inter):
271277
raster_ds = ww3_global_yearly_3h(filename, closest_date)
272278
elif ancillary["name"] == "ww3hindcast_field":
273279
raster_ds = ww3_IWL1Btrack_hindcasts_30min(glob(filename)[0], closest_date)
274-
elif ancillary["name"] == "ww3hindcast_spectra":
280+
elif ancillary["name"] in ["ww3hindcast_spectra","ww3CCIseastate_spectra"]:
275281
pass # nothing to do here, there is a specific method called later in the code.
276282
return ds_intra, ds_inter, ancillary_fields_added
277283
else:
@@ -428,9 +434,10 @@ def main():
428434
"ww3hindcast_field": conf["auxilliary_dataset"]["ww3hindcast_field"],
429435
}
430436
if args.ww3spectra:
431-
ancillary_list["ww3hindcast_spectra"] = conf["auxilliary_dataset"][
432-
"ww3hindcast_spectra"
433-
]
437+
#ancillary_list["ww3hindcast_spectra"] = conf["auxilliary_dataset"][
438+
# "ww3hindcast_spectra"
439+
#]
440+
ancillary_list["ww3CCIseastate_spectra"] = conf["auxilliary_dataset"]["ww3CCIseastate_spectra"]
434441
final_L1C_path = do_L1C_SAFE_from_L1B_SAFE(
435442
args.l1bsafe,
436443
version=args.version,

0 commit comments

Comments
 (0)