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