From 1048d846d0b824e86dd4e8a017dbf8619b86b5af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oriol=20Tint=C3=B3?= <oriol.tinto@lmu.de> Date: Mon, 26 Jun 2023 17:05:59 +0200 Subject: [PATCH] Instead of interpolating extpar, we try to add the T_SEA variable on the original grid's extpar. --- conf/event-generator/simulation.yml | 3 +- templates/event-generator/adapt_member.sh | 7 +++- .../event-generator/adapt_member_utils.sh | 37 +++++++++++++++++++ 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/conf/event-generator/simulation.yml b/conf/event-generator/simulation.yml index 8df8a41..b464dce 100644 --- a/conf/event-generator/simulation.yml +++ b/conf/event-generator/simulation.yml @@ -7,7 +7,8 @@ simulation: radiation_grid_filename: icon_grid_0015_R02B05_R.nc # external_parameters_filename: icon_extpar_0010_R02B04_G.nc - external_parameters_filename: icon_extpar_0024_R02B06_G_20200917_tiles.nc +# external_parameters_filename: icon_extpar_0024_R02B06_G_20200917_tiles.nc + external_parameters_filename: icon_extpar_0016_R02B06_G_20131206.nc date_format: '%Y-%m-%dT%H:%M:%SZ' namelist_paths: # Path to the namelists diff --git a/templates/event-generator/adapt_member.sh b/templates/event-generator/adapt_member.sh index 8e9bd2e..606cce3 100644 --- a/templates/event-generator/adapt_member.sh +++ b/templates/event-generator/adapt_member.sh @@ -48,7 +48,12 @@ interpolate_SST "${DESTINATION_GRID}" "${SST_FORCING}" "${INTERPOLATED_SST}" # Interpolate extpar -interpolate_extpar "${DESTINATION_GRID}" "${EXTERNAL_PARAMETERS_FILE}" +#interpolate_extpar "${DESTINATION_GRID}" "${EXTERNAL_PARAMETERS_FILE}" + + +# Integrate sst to extpar +integrate_sst_to_extpar "${INTERPOLATED_SST}" "${EXTERNAL_PARAMETERS_FILE}" + # Integrate sst to analysis diff --git a/templates/event-generator/adapt_member_utils.sh b/templates/event-generator/adapt_member_utils.sh index 1154254..da4db52 100644 --- a/templates/event-generator/adapt_member_utils.sh +++ b/templates/event-generator/adapt_member_utils.sh @@ -133,3 +133,40 @@ END python integrate_sst_to_analysis.py } + +function integrate_sst_to_extpar() { + local INTERPOLATED_SST="$1" + local EXTERNAL_PARAMETERS_FILE="$2" + + cat <<END >integrate_sst_to_extpar.py +# Add sst field to analysis file. +from enstools.io import read +import os +import numpy as np + +os.environ['ECCODES_GRIB_NO_INDEX'] = '1' +# Open files +with read("${EXTERNAL_PARAMETERS_FILE}") as ds, read("${INTERPOLATED_SST}") as sst_ds: + da = sst_ds["T_SEA"] + year = 2000 # or any other year + dates = [(datetime(year, 1, 1) + timedelta(days=idx)).month for idx, _ in enumerate(da['time'].values)] + + da['time'] = dates + + # Replace analysis T_SEA with monthly mean from the sst_ds. + monthly_means = [da.sel(time=month).mean(dim="time") for month in range(1,13)] + concat_da = xr.concat(monthly_means, dim='time') + concat_da['time'] = np.arange(1, 13) # replace 'time' with month numbers + concat_da = concat_da.drop(['clon', 'clat']) + + # Replace analysis T_SEA with monthly mean from the sst_ds. + ds["T_SEA"] = concat_da + + ds.to_netcdf("extpar.nc") + +END + + python integrate_sst_to_extpar.py + +} + -- GitLab