From f9e18617c79be68829cedd423da5a2db6c602b7f Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Wed, 1 May 2024 15:24:20 +0100 Subject: [PATCH 01/29] Added additional AMOC analyses into the TF plots --- bgcval2/analysis_compare.py | 4 ++-- bgcval2/bgcval2_make_report.py | 2 +- bgcval2/bgcvaltools/makeMask.py | 18 ++++++++++++++++ bgcval2/bgcvaltools/pftnames.py | 6 ++++++ bgcval2/timeseries/timeseriesTools.py | 3 ++- input_yml/TerraFIRMA_overshoot_co2tests.yml | 17 +++++++-------- key_files/atlanticsubtropicsalinity.yml | 23 +++++++++++++++++++++ key_files/mld.yml | 2 +- key_files/salinity.yml | 2 +- key_files/temperature.yml | 2 +- key_lists/debug.yml | 4 +++- key_lists/tfamoc.yml | 20 ++++++++++++++++++ 12 files changed, 86 insertions(+), 17 deletions(-) create mode 100644 key_files/atlanticsubtropicsalinity.yml create mode 100644 key_lists/tfamoc.yml diff --git a/bgcval2/analysis_compare.py b/bgcval2/analysis_compare.py index 7f94ac56..85ca8726 100755 --- a/bgcval2/analysis_compare.py +++ b/bgcval2/analysis_compare.py @@ -175,7 +175,7 @@ def apply_timerange(times, datas, jobID, timeranges): print('apply_timerange:', jobID, ti, da) if not len(n_times): - print('apply_timerange: WARNING: No times made the cut?', len(times), + print('apply_timerange: WARNING: No times made the cut?', jobID, len(times), 'original times', [np.min(times), np.max(times)], 'timerange:', timerange) assert 0 @@ -401,7 +401,7 @@ def timeseries_compare(jobs, title = titleify([region, layer, metric, name]) times, datas = apply_shifttimes(mdata, jobID, shifttimes) - print('post apply_shifttimes:', len(times), len(datas)) + print('post apply_shifttimes:', jobID, len(times), len(datas)) times, datas = apply_timerange(times, datas, jobID, timeranges) timesD[jobID] = times arrD[jobID] = datas diff --git a/bgcval2/bgcval2_make_report.py b/bgcval2/bgcval2_make_report.py index 290c40d1..a3c9c876 100755 --- a/bgcval2/bgcval2_make_report.py +++ b/bgcval2/bgcval2_make_report.py @@ -1488,6 +1488,7 @@ def newImageLocation(fn): 'SouthernTotalIceExtent', 'Temperature_Global_Surface', 'Salinty_Global_Surface', + 'AtlanticSubpolarSalinity', 'FreshwaterFlux_Global', 'TotalHeatFlux', 'MA_SST', @@ -1524,7 +1525,6 @@ def newImageLocation(fn): 'BGC Key Metrics': [], 'Other Plots': [], } - for fn in files: found = False diff --git a/bgcval2/bgcvaltools/makeMask.py b/bgcval2/bgcvaltools/makeMask.py index 2f6fd7c3..f3e5f1e2 100644 --- a/bgcval2/bgcvaltools/makeMask.py +++ b/bgcval2/bgcvaltools/makeMask.py @@ -246,11 +246,29 @@ def makeMask(name, newSlice, xt, xz, xy, xx, xd, debug=False): xy, 60., 80.).mask return mx + if newSlice in ['SubtropicNorthAtlantic', 'STNA']: + mx = np.ma.masked_outside(xx, -90., -10.).mask + np.ma.masked_outside( + xy, 10., 40.).mask +# mx *= np.ma.masked_outside(xx, -45., 15.).mask + np.ma.masked_outside( +# xy, 60., 80.).mask + return mx + + if newSlice in ['SubpolarNorthAtlantic', 'SPNA',]: # Based on SPNA region here: https://www.nature.com/articles/s43247-021-00120-y#citeas mx = np.ma.masked_outside(xx, -35., -10.).mask + np.ma.masked_outside( xy, 40., 65.).mask return mx + +# if newSlice in ['WesternSubpolarNorthAtlantic', 'WSPNA',]: + + + if newSlice in ['GINseas',]: #Greenland, icveland and norwegean seas + mx = np.ma.masked_outside(xx, -20., 15.).mask + np.ma.masked_outside( + xy, 65., 75.).mask + return mx + #65-75:20W-15E + if newSlice == 'AtlanticSOcean': mx = np.ma.masked_outside(xx, -40., 20.).mask + np.ma.masked_outside( diff --git a/bgcval2/bgcvaltools/pftnames.py b/bgcval2/bgcvaltools/pftnames.py index 1fa0e6e9..b2f8f557 100644 --- a/bgcval2/bgcvaltools/pftnames.py +++ b/bgcval2/bgcvaltools/pftnames.py @@ -248,6 +248,9 @@ def makeLongNameDict(): lnd['VolumeMeanTemperature'] = "Volume-weighted Mean Temperature" lnd['GlobalMeanSalinity'] = "Global Volume-weighted Mean Salinity" + lnd['AtlanticSubtropicSalinity'] = 'Atlantic Subtropic Salinity' + lnd['SubtropicNorthAtlantic'] = 'Subtropic North Atlantic' + lnd['Surfaceto800m'] = 'Surface-to-800m' lnd['TotalHeatFlux'] = "Global Total Heat Flux" lnd['HeatFlux'] = "Heat Flux" @@ -531,6 +534,9 @@ def makeLongNameDict(): lnd['ArcticOcean'] = "Arctic Ocean" lnd['NorthernSubpolarAtlantic'] = "Northern Subpolar Atlantic" lnd['SPNA'] = "Subpolar North Atlantic" + lnd['STNA'] = "Subtropic North Atlantic" + lnd['GINseas'] = 'Greenland, Iceland, Norway seas' + lnd['SubpolarNorthAtlantic'] = lnd['SPNA'] lnd['NorthernSubpolarPacific'] = "Northern Subpolar Pacific" diff --git a/bgcval2/timeseries/timeseriesTools.py b/bgcval2/timeseries/timeseriesTools.py index 3a81eb37..0de5a52c 100644 --- a/bgcval2/timeseries/timeseriesTools.py +++ b/bgcval2/timeseries/timeseriesTools.py @@ -204,13 +204,14 @@ def getHorizontalSlice(nc, coords, details, layer, data=''): return ApplyDepthSlice(data, k_surf) - ApplyDepthSlice(data, k_low) elif layer in [ - 'Surface to 100m', 'Surface to 300m', 'Surface to 700m', + 'Surface to 100m', 'Surface to 300m', 'Surface to 700m', 'Surfaceto800m', 'Surface to 2000m' ]: if layer == 'Surface to 100m': z = 100. if layer == 'Surface to 300m': z = 300. if layer == 'Surface to 500m': z = 500. if layer == 'Surface to 700m': z = 700. + if layer == 'Surfaceto800m': z = 800. if layer == 'Surface to 2000m': z = 2000. k_surf = bvt.getORCAdepth(0., diff --git a/input_yml/TerraFIRMA_overshoot_co2tests.yml b/input_yml/TerraFIRMA_overshoot_co2tests.yml index 62578012..d6f30444 100644 --- a/input_yml/TerraFIRMA_overshoot_co2tests.yml +++ b/input_yml/TerraFIRMA_overshoot_co2tests.yml @@ -8,7 +8,7 @@ do_analysis_timeseries: True do_mass_download: False # master analysis suite -master_suites: physics bgc kmf #alkalinity physics kmf1 +master_suites: &keylists physics bgc kmf tfamoc #alkalinity physics kmf11 clean: True @@ -23,8 +23,8 @@ jobs: thickness: 0.6 linestyle: '-' shifttime: -427. - timerange: [1850, 2020] - suite: kmf physics bgc #alkalinity physics +# timerange: [1850, 2020] + suite: *keylists #kmf physics bgc #alkalinity physics u-cz014: description: 'Terrafirma 4x CO2' @@ -33,7 +33,7 @@ jobs: thickness: 1.7 linestyle: '-' shifttime: 0. - suite: kmf physics bgc #alkalinity physics + suite: *keylists #kmf physics bgc #alkalinity physics u-cz152: description: 'Terrafirma 1% CO2' @@ -42,8 +42,7 @@ jobs: thickness: 1.7 linestyle: '-' shifttime: 0. - suite: kmf physics bgc #alkalinity physics - + suite: *keylists #kmf physics bgc #alkalinity physics u-cy623: description: 'interactive ice, started from picontrol yr 2277' @@ -52,8 +51,7 @@ jobs: thickness: 1.7 linestyle: 'dashdot' shifttime: 0. - suite: kmf physics bgc #alkalinity physics - + suite: *keylists #kmf physics bgc #alkalinity physics u-cy690: description: 'static ice sheets, started from picontrol yr 2277' @@ -62,7 +60,8 @@ jobs: thickness: 1.7 linestyle: ':' shifttime: 0. - suite: kmf physics bgc #alkalinity physics + suite: *keylists #kmf physics bgc #alkalinity physics + diff --git a/key_files/atlanticsubtropicsalinity.yml b/key_files/atlanticsubtropicsalinity.yml new file mode 100644 index 00000000..609e9d15 --- /dev/null +++ b/key_files/atlanticsubtropicsalinity.yml @@ -0,0 +1,23 @@ +--- +name : AtlanticSubtropicSalinity +units : PSU +dimensions : 3 +model : NEMO +datasource : WOA +# The filenames +modelFiles : $BASEDIR_MODEL/$JOBID/nemo_$JOBIDo_1y_*_grid-T.nc +modelFile_p2p : $BASEDIR_MODEL/$JOBID/nemo*$JOBIDo_1y_*$YEAR????_grid-T.nc +dataFile : $BASEDIR_OBS/WOA/annual/woa13_decav_s00_01v2.nc +gridFile : $PATHS_GRIDFILE + +# Model coordinates/dimension names +model_vars : so_abs so +model_convert : choose_best_var + +# Data coordinates names +data_vars : s_an +data_convert : NoChange +data_tdict : ZeroToZero + +layers : 'Surfaceto800m' +regions : SubtropicNorthAtlantic diff --git a/key_files/mld.yml b/key_files/mld.yml index e6d04417..e2409d97 100644 --- a/key_files/mld.yml +++ b/key_files/mld.yml @@ -30,4 +30,4 @@ data_convert: maskname : mask areafile: $BASEDIR_OBS/IFREMER-MLD/mld_DT02_c1m_reg2.0-annual.nc #layers : Surface -regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthAtlanticOcean SouthAtlanticOcean NorthPacificOcean SouthPacificOcean SPNA +regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthAtlanticOcean SouthAtlanticOcean NorthPacificOcean SouthPacificOcean SPNA STNA GINseas LabradorSea diff --git a/key_files/salinity.yml b/key_files/salinity.yml index 6ca7f429..3de845e1 100644 --- a/key_files/salinity.yml +++ b/key_files/salinity.yml @@ -20,4 +20,4 @@ data_convert : NoChange data_tdict : ZeroToZero layers : Surface -regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthPacificOcean SouthPacificOcean NorthAtlanticOcean SouthAtlanticOcean SPNA +regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthPacificOcean SouthPacificOcean NorthAtlanticOcean SouthAtlanticOcean SPNA STNA GINseas LabradorSea diff --git a/key_files/temperature.yml b/key_files/temperature.yml index 7d108b61..b7e0d59b 100644 --- a/key_files/temperature.yml +++ b/key_files/temperature.yml @@ -21,7 +21,7 @@ data_convert : NoChange data_tdict : ZeroToZero layers : Surface -regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthPacificOcean SouthPacificOcean NorthAtlanticOcean SouthAtlanticOcean SPNA SPNA +regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthPacificOcean SouthPacificOcean NorthAtlanticOcean SouthAtlanticOcean SPNA STNA GINseas LabradorSea diff --git a/key_lists/debug.yml b/key_lists/debug.yml index 9f666ca1..0843ddb1 100644 --- a/key_lists/debug.yml +++ b/key_lists/debug.yml @@ -8,7 +8,9 @@ keys: # SouthernTotalIceExtent: True # DrakePassageTransport: True # AMOC_26N: True - GlobalMeanTemperature: True +# GlobalMeanTemperature: True + AtlanticSubtropicSalinity: True + MLD: True # Temperature: True # Iron: True # GlobalMeanSalinity: True diff --git a/key_lists/tfamoc.yml b/key_lists/tfamoc.yml new file mode 100644 index 00000000..241c60e2 --- /dev/null +++ b/key_lists/tfamoc.yml @@ -0,0 +1,20 @@ +--- +# Key metrics first - KMF +# A short list of key metrics to run first to get a very quick idea +# of how a model is working. +keys: + GlobalMeanTemperature: True + SST: True + DrakePassageTransport: True + AMOC_26N: True + AtmosCO2: True + AtlanticSubtropicSalinity: True + MLD: True + TotalAirSeaFluxCO2: True + # NoCaspianAirSeaFluxCO2: True + # IntPP_OSU: True + # GlobalExportRatio: True + TotalIceExtent: True + NorthernTotalIceExtent: True + SouthernTotalIceExtent: True + GlobalMeanSalinity: True From c21362278bddafeb6d950640134ffbc3d73349fb Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Thu, 2 May 2024 16:57:09 +0100 Subject: [PATCH 02/29] added STNA salininty --- bgcval2/bgcval2_make_report.py | 2 +- input_yml/TerraFIRMA_overshoot_co2tests.yml | 12 +-- input_yml/TerraFIRMA_overshoot_historical.yml | 23 +++--- input_yml/TerraFIRMA_overshoot_recovery.yml | 67 +++++++-------- input_yml/TerraFIRMA_overshoot_runs.yml | 81 ++++++++++--------- input_yml/TerraFIRMA_overshoot_stables.yml | 81 ++++++++++--------- 6 files changed, 135 insertions(+), 131 deletions(-) diff --git a/bgcval2/bgcval2_make_report.py b/bgcval2/bgcval2_make_report.py index a3c9c876..812c5556 100755 --- a/bgcval2/bgcval2_make_report.py +++ b/bgcval2/bgcval2_make_report.py @@ -1488,7 +1488,7 @@ def newImageLocation(fn): 'SouthernTotalIceExtent', 'Temperature_Global_Surface', 'Salinty_Global_Surface', - 'AtlanticSubpolarSalinity', + 'AtlanticSubtropicalSalinity', 'FreshwaterFlux_Global', 'TotalHeatFlux', 'MA_SST', diff --git a/input_yml/TerraFIRMA_overshoot_co2tests.yml b/input_yml/TerraFIRMA_overshoot_co2tests.yml index d6f30444..c62fca54 100644 --- a/input_yml/TerraFIRMA_overshoot_co2tests.yml +++ b/input_yml/TerraFIRMA_overshoot_co2tests.yml @@ -8,7 +8,7 @@ do_analysis_timeseries: True do_mass_download: False # master analysis suite -master_suites: &keylists physics bgc kmf tfamoc #alkalinity physics kmf11 +master_suites: &keylists physics bgc kmf tfamoc # alkalinity clean: True @@ -24,7 +24,7 @@ jobs: linestyle: '-' shifttime: -427. # timerange: [1850, 2020] - suite: *keylists #kmf physics bgc #alkalinity physics + suite: *keylists u-cz014: description: 'Terrafirma 4x CO2' @@ -33,7 +33,7 @@ jobs: thickness: 1.7 linestyle: '-' shifttime: 0. - suite: *keylists #kmf physics bgc #alkalinity physics + suite: *keylists u-cz152: description: 'Terrafirma 1% CO2' @@ -42,7 +42,7 @@ jobs: thickness: 1.7 linestyle: '-' shifttime: 0. - suite: *keylists #kmf physics bgc #alkalinity physics + suite: *keylists u-cy623: description: 'interactive ice, started from picontrol yr 2277' @@ -51,7 +51,7 @@ jobs: thickness: 1.7 linestyle: 'dashdot' shifttime: 0. - suite: *keylists #kmf physics bgc #alkalinity physics + suite: *keylists u-cy690: description: 'static ice sheets, started from picontrol yr 2277' @@ -60,7 +60,7 @@ jobs: thickness: 1.7 linestyle: ':' shifttime: 0. - suite: *keylists #kmf physics bgc #alkalinity physics + suite: *keylists diff --git a/input_yml/TerraFIRMA_overshoot_historical.yml b/input_yml/TerraFIRMA_overshoot_historical.yml index 60cba4e8..64e4a369 100644 --- a/input_yml/TerraFIRMA_overshoot_historical.yml +++ b/input_yml/TerraFIRMA_overshoot_historical.yml @@ -9,7 +9,8 @@ do_analysis_timeseries: True do_mass_download: False # master analysis suite -master_suites: physics bgc #alkalinity physics kmf1 +master_suites: &keylists physics bgc kmf tfamoc #alkalinity physics + clean: True @@ -25,7 +26,7 @@ jobs: linestyle: '-' shifttime: -427. timerange: [1850, 2020] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-ca306: description: 'Reference ' @@ -35,7 +36,7 @@ jobs: linestyle: '-' shifttime: 0 timerange: [1850, 2020] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cy623: description: 'interactive ice, started from picontrol yr 2277' @@ -44,7 +45,7 @@ jobs: thickness: 1.7 linestyle: '-' shifttime: 0. - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-da914: @@ -54,7 +55,7 @@ jobs: thickness: 1.7 linestyle: '-' shifttime: 0. - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-da916: description: 'interactive ice, started from picontrol yr 2237' @@ -63,7 +64,7 @@ jobs: thickness: 1.7 linestyle: '-' shifttime: 0. - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-da917: description: 'interactive ice, started from picontrol yr 2317' @@ -72,7 +73,7 @@ jobs: thickness: 1.7 linestyle: '-' shifttime: 0. - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cy690: description: 'static ice sheets, started from picontrol yr 2277' @@ -81,7 +82,7 @@ jobs: thickness: 1.7 linestyle: '-' shifttime: 0. - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cy691: description: 'static ice sheets, started from picontrol yr 2197' @@ -90,7 +91,7 @@ jobs: thickness: 1.7 linestyle: '-' shifttime: 0. - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cy692: description: ' static ice sheets, started from picontrol yr 2237' @@ -99,7 +100,7 @@ jobs: thickness: 1.7 linestyle: '-' shifttime: 0. - suite: kmf physics bgc #alkalinity physics kmf + suite: *keylists u-cy693: description: ' static ice sheets, started from picontrol yr 2317' @@ -108,7 +109,7 @@ jobs: thickness: 1.7 linestyle: '-' shifttime: 0. - suite: kmf physics bgc #alkalinity physics kmf + suite: *keylists diff --git a/input_yml/TerraFIRMA_overshoot_recovery.yml b/input_yml/TerraFIRMA_overshoot_recovery.yml index 1c4072b7..6515de08 100644 --- a/input_yml/TerraFIRMA_overshoot_recovery.yml +++ b/input_yml/TerraFIRMA_overshoot_recovery.yml @@ -9,7 +9,8 @@ do_analysis_timeseries: True do_mass_download: False # master analysis suite -master_suites: physics bgc kmf #alkalinity physics kmf1 +master_suites: &keylists physics bgc kmf tfamoc #alkalinity physics + # Run without strick check (if True, breaks if job has no years.) strict_file_check: False @@ -28,7 +29,7 @@ jobs: linestyle: '-' shifttime: -2094 timerange: [-50., 200.] - suite: kmf physics bgc #alkalinity physics + suite: *keylists # u-cx209: @@ -39,7 +40,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # # u-cw988: # description: 'E-mode free ice RAMP UP 8GtC/yr #2' @@ -49,7 +50,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # # u-cw989: # description: 'E-mode free ice RAMP UP 8GtC/yr #3' @@ -59,7 +60,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # # u-cw990: # description: 'E-mode free ice RAMP UP 8GtC/yr #4' @@ -69,7 +70,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # 1.5k Stabilisation # u-cy837: @@ -80,7 +81,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # u-cz834: # description: '1.5K Stabilisation from u-cw988 (#2)' # label: '1.5K Stable #2' @@ -89,7 +90,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # u-da087: # description: '1.5K Stabilisation from u-cw989 (#3)' # label: '1.5K Stable #3' @@ -98,7 +99,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # # # 2k Stabilisation # u-cy838: @@ -109,7 +110,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # # u-cz855: # description: '2.0K Stabilisation from cw988 (#2)' @@ -119,7 +120,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # u-da266: # description: '2.0K Stabilisation from cw988 (#3)' @@ -129,7 +130,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # # # 2.5k Stabilisation # u-cz374: @@ -140,7 +141,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # u-cz859: # description: '2.5K Stabilisation from cw988 (#2)' # label: '2.5K Stable #2' @@ -149,7 +150,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # # 3.0K Stabilisations @@ -161,7 +162,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # # u-db587: # description: '3.0K Stabilisation from u-cx209 (#2)' @@ -171,7 +172,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # # u-db597: # description: '3.0K Stabilisation from u-cx209 (#3)' @@ -181,7 +182,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics # +# suite: *keylists # # # # other Stabilisations # u-cz376: @@ -192,7 +193,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # u-cz377: # description: '5.0K Stabilisation from u-cx209 (#1)' # label: '5K Stable #1' @@ -201,7 +202,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists # Ramp downs # -8: dotted @@ -215,7 +216,7 @@ jobs: linestyle: 'dotted' shifttime: -1994. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-da800: description: 'Ramp down from cy838 (- 2.0K Stabilisation from u-cx209) (#1)' @@ -225,7 +226,7 @@ jobs: linestyle: 'dotted' shifttime: -2144. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-da697: description: '1.5K Rampdown from u-cx209 (#1)' @@ -235,7 +236,7 @@ jobs: linestyle: 'dotted' shifttime: -1969. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-da892: description: '4.K Rampdown (#1)' @@ -244,7 +245,7 @@ jobs: thickness: 1.7 linestyle: 'dotted' shifttime: -2094. - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-db223: description: '3.K Rampdown (#1)' @@ -253,7 +254,7 @@ jobs: thickness: 1.7 linestyle: 'dotted' shifttime: -2032. - suite: kmf physics bgc #alkalinity physics + suite: *keylists @@ -265,7 +266,7 @@ jobs: linestyle: 'dashed' shifttime: -1995. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-dc052: description: 'Rampdown from yr 200 of 1.5deg, -4GtC/yr (#1)' @@ -275,7 +276,7 @@ jobs: linestyle: 'dashed' shifttime: -1969 #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-dc248: description: '1.5K Rampdown -4GtC/yr, (#1)' @@ -284,7 +285,7 @@ jobs: thickness: 1.7 linestyle: 'dashed' shifttime: -2119. - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-dc249: description: '3.K Rampdown -4GtC/yr, 200 years, (#1)' @@ -293,7 +294,7 @@ jobs: thickness: 1.7 linestyle: 'dashed' shifttime: -2182. - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-dc251: description: '5K Rampdown -8GtC/yr, 50 years, (#1)' @@ -302,7 +303,7 @@ jobs: thickness: 1.7 linestyle: 'dotted' shifttime: -2132. - suite: kmf physics bgc #alkalinity physics + suite: *keylists # u-db956: # description: '1.5K Rampdown -8GtC/yr, 0 years, (#1)' @@ -311,7 +312,7 @@ jobs: # thickness: 1.7 # linestyle: '-' # shifttime: -1919. -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists u-dc032: description: 'ramp-down from yr 50 of 3.0 stab #1, free ice, -4GtC/yr (#1)' @@ -321,7 +322,7 @@ jobs: linestyle: 'dashed' shifttime: -2023. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-dc123: description: 'ramp-down from yr 50 of 4.0 stab #1, free ice, -4GtC/yr (#1)' @@ -331,7 +332,7 @@ jobs: linestyle: 'dashed' shifttime: -2096. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-dc130: description: 'ramp-down from yr 50 of 5.0 stab #1, free ice, -4GtC/yr (#1)' @@ -341,6 +342,6 @@ jobs: linestyle: 'dashed' shifttime: -2133. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists diff --git a/input_yml/TerraFIRMA_overshoot_runs.yml b/input_yml/TerraFIRMA_overshoot_runs.yml index 104c28f7..33e27e43 100644 --- a/input_yml/TerraFIRMA_overshoot_runs.yml +++ b/input_yml/TerraFIRMA_overshoot_runs.yml @@ -9,7 +9,8 @@ do_analysis_timeseries: True do_mass_download: False # master analysis suite -master_suites: physics bgc kmf #alkalinity physics kmf1 +master_suites: &keylists physics bgc kmf tfamoc #alkalinity physics + # Run without strick check (if True, breaks if job has no years.) strict_file_check: False @@ -30,7 +31,7 @@ jobs: linestyle: '-' shifttime: -100. timerange: [1850, 2400] - suite: kmf physics bgc #alkalinity physics + suite: *keylists # ramp up u-cx209: @@ -41,7 +42,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cw988: description: 'E-mode free ice RAMP UP 8GtC/yr #2' @@ -51,7 +52,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cw989: description: 'E-mode free ice RAMP UP 8GtC/yr #3' @@ -61,7 +62,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cw990: description: 'E-mode free ice RAMP UP 8GtC/yr #4' @@ -71,7 +72,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cz826: description: 'like cx209 but static ice sheet geometry 8GtC/yr #5' @@ -81,7 +82,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists # 1.5k Stabilisation u-cy837: @@ -92,7 +93,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cz834: description: '1.5K Stabilisation from u-cw988 (#2)' @@ -102,7 +103,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-da087: description: '1.5K Stabilisation from u-cw989 (#3)' @@ -112,7 +113,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists # 2k Stabilisation u-cy838: @@ -123,7 +124,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cz855: description: '2.0K Stabilisation from cw988 (#2)' @@ -133,7 +134,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-da266: description: '2.0K Stabilisation from cw988 (#3)' @@ -143,7 +144,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists # 2.5k Stabilisation u-cz374: @@ -154,7 +155,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cz859: description: '2.5K Stabilisation from cw988 (#2)' label: None #'2.5K Stable #2' @@ -163,7 +164,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists # 3.0K Stabilisations @@ -175,7 +176,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-db587: description: '3.0K Stabilisation from u-cx209 (#2)' @@ -185,7 +186,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-db597: description: '3.0K Stabilisation from u-cx209 (#3)' @@ -195,7 +196,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics # + suite: *keylists # # 4k Stabilisations u-cz376: @@ -206,7 +207,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-db723: description: '4.0K Stabilisation from u-cw988 (#2)' @@ -216,7 +217,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-db733: description: '4.0K Stabilisation from u-cw989 (#3)' @@ -226,7 +227,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists # 5k & 6K Stabilisations u-cz377: @@ -237,7 +238,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-db731: description: '5.0K Stabilisation from u-cw988 (#2)' @@ -247,7 +248,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-dc324: description: '5.0K Stabilisation from u-cw989 (#3)' @@ -257,7 +258,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cz378: description: '6.0K Stabilisation from u-cx209 (#1)' @@ -267,7 +268,7 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists # Ramp downs # -8: dotted @@ -281,7 +282,7 @@ jobs: linestyle: 'dotted' #shifttime: -1994. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-da800: description: 'Ramp down from cy838 (- 2.0K Stabilisation from u-cx209) (#1)' @@ -291,7 +292,7 @@ jobs: linestyle: 'dotted' #shifttime: -2144. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-da697: description: '1.5K Rampdown from u-cx209 (#1)' @@ -301,7 +302,7 @@ jobs: linestyle: 'dotted' #shifttime: -1969. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-da892: description: '4.K Rampdown (#1)' @@ -310,7 +311,7 @@ jobs: thickness: 1.7 linestyle: 'dotted' #shifttime: -2094. - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-db223: description: '3.K Rampdown (#1)' @@ -319,7 +320,7 @@ jobs: thickness: 1.7 linestyle: 'dotted' #shifttime: -2032. - suite: kmf physics bgc #alkalinity physics + suite: *keylists @@ -331,7 +332,7 @@ jobs: linestyle: 'dashed' # shifttime: -1995. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-dc052: description: 'Rampdown from yr 200 of 1.5deg, -4GtC/yr (#1)' @@ -341,7 +342,7 @@ jobs: linestyle: 'dashed' #shifttime: -1969 #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-dc248: description: '1.5K Rampdown -4GtC/yr, (#1)' @@ -350,7 +351,7 @@ jobs: thickness: 1.7 linestyle: 'dashed' #shifttime: -2119. - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-dc249: description: '3.K Rampdown -4GtC/yr, 200 years, (#1)' @@ -359,7 +360,7 @@ jobs: thickness: 1.7 linestyle: 'dashed' #shifttime: -2182. - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-dc251: description: '5K Rampdown -8GtC/yr, 50 years, (#1)' @@ -368,7 +369,7 @@ jobs: thickness: 1.7 linestyle: 'dotted' #shifttime: -2132. - suite: kmf physics bgc #alkalinity physics + suite: *keylists # u-db956: # description: '1.5K Rampdown -8GtC/yr, 0 years, (#1)' @@ -377,7 +378,7 @@ jobs: # thickness: 1.7 # linestyle: '-' # shifttime: -1919. -# suite: kmf physics bgc #alkalinity physics +# suite: *keylists u-dc032: description: 'ramp-down from yr 50 of 3.0 stab #1, free ice, -4GtC/yr (#1)' @@ -387,7 +388,7 @@ jobs: linestyle: 'dashed' # shifttime: -2023. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-dc123: description: 'ramp-down from yr 50 of 4.0 stab #1, free ice, -4GtC/yr (#1)' @@ -397,7 +398,7 @@ jobs: linestyle: 'dashed' # shifttime: -2096. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-dc130: description: 'ramp-down from yr 50 of 5.0 stab #1, free ice, -4GtC/yr (#1)' @@ -407,7 +408,7 @@ jobs: linestyle: 'dashed' # shifttime: -2133. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists @@ -421,5 +422,5 @@ jobs: linestyle: '-' shifttime: 0. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists diff --git a/input_yml/TerraFIRMA_overshoot_stables.yml b/input_yml/TerraFIRMA_overshoot_stables.yml index 9b75d417..5c597de7 100644 --- a/input_yml/TerraFIRMA_overshoot_stables.yml +++ b/input_yml/TerraFIRMA_overshoot_stables.yml @@ -9,7 +9,8 @@ do_analysis_timeseries: True do_mass_download: False # master analysis suite -master_suites: physics bgc kmf #alkalinity physics kmf1 +master_suites: &keylists physics bgc kmf tfamoc #alkalinity physics + # Run without strick check (if True, breaks if job has no years.) strict_file_check: False @@ -31,7 +32,7 @@ jobs: linestyle: '-' shifttime: -2094 timerange: [-50., 400.] - suite: kmf physics bgc #alkalinity physics + suite: *keylists # # ramp ups # u-cx209: @@ -42,7 +43,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-cw988: # description: 'E-mode free ice RAMP UP 8GtC/yr #2' @@ -52,7 +53,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-cw989: # description: 'E-mode free ice RAMP UP 8GtC/yr #3' @@ -62,7 +63,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-cw990: # description: 'E-mode free ice RAMP UP 8GtC/yr #4' @@ -72,7 +73,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-cz826: # description: 'like cx209 but static ice sheet geometry 8GtC/yr #5' @@ -82,7 +83,7 @@ jobs: # linestyle: '-' # shifttime: 0. # #timerange: [1800, 2050] - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # 1.5k Stabilisation u-cy837: @@ -93,7 +94,7 @@ jobs: linestyle: '-' shifttime: -1919. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cz834: description: '1.5K Stabilisation from u-cw988 (#2)' label: None #Stable #2' @@ -102,7 +103,7 @@ jobs: linestyle: '-' shifttime: -1931. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-da087: description: '1.5K Stabilisation from u-cw989 (#3)' label: None #'Stable #3' @@ -111,7 +112,7 @@ jobs: linestyle: '-' shifttime: -1922. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists # 2k Stabilisation u-cy838: @@ -122,7 +123,7 @@ jobs: linestyle: '-' shifttime: -1944. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cz855: description: '2.0K Stabilisation from cw988 (#2)' @@ -132,7 +133,7 @@ jobs: linestyle: '-' shifttime: -1956. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-da266: description: '2.0K Stabilisation from cw988 (#3)' @@ -142,7 +143,7 @@ jobs: linestyle: '-' shifttime: -1947 #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists # 2.5k Stabilisation u-cz374: @@ -153,7 +154,7 @@ jobs: linestyle: '-' shifttime: -1970. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cz859: description: '2.5K Stabilisation from cw988 (#2)' label: None #'2.5K Stable #2' @@ -162,7 +163,7 @@ jobs: linestyle: '-' shifttime: -1979. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists # 3.0K Stabilisations @@ -174,7 +175,7 @@ jobs: linestyle: '-' shifttime: -1992. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-db587: description: '3.0K Stabilisation from u-cx209 (#2)' @@ -184,7 +185,7 @@ jobs: linestyle: '-' shifttime: -2004. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-db597: description: '3.0K Stabilisation from u-cx209 (#3)' @@ -194,7 +195,7 @@ jobs: linestyle: '-' shifttime: -1994. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics # + suite: *keylists # # 4k Stabilisations u-cz376: @@ -205,7 +206,7 @@ jobs: linestyle: '-' shifttime: -2044. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-db723: description: '4.0K Stabilisation from u-cw988 (#2)' label: None #'4K Stable #2' @@ -214,7 +215,7 @@ jobs: linestyle: '-' shifttime: -2049. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-db733: description: '4.0K Stabilisation from u-cw989 (#3)' label: None #'4K Stable #3' @@ -223,7 +224,7 @@ jobs: linestyle: '-' shifttime: -2036. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists # 5k & 6K Stabilisations u-cz377: @@ -234,7 +235,7 @@ jobs: linestyle: '-' shifttime: -2082. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-db731: description: '5.0K Stabilisation from u-cw988 (#2)' label: None #'5K Stable #2' @@ -243,7 +244,7 @@ jobs: linestyle: '-' shifttime: -2095. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-dc324: description: '5.0K Stabilisation from u-cw989 (#3)' label: None #'5K Stable #3' @@ -252,7 +253,7 @@ jobs: linestyle: '-' shifttime: -2084. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists u-cz378: description: '6.0K Stabilisation from u-cx209 (#1)' @@ -262,7 +263,7 @@ jobs: linestyle: '-' shifttime: -2137. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists # # Ramp downs # u-cz944: @@ -273,7 +274,7 @@ jobs: # linestyle: ':' # shifttime: 0. # #timerange: [1800, 2050] - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-da800: # description: 'Ramp down from cy838 (- 2.0K Stabilisation from u-cx209) (#1)' # label: '2K Rampdown #1' @@ -282,7 +283,7 @@ jobs: # linestyle: ':' # shifttime: 0. # #timerange: [1800, 2050] - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-da697: # description: '1.5K Rampdown from u-cx209 (#1)' @@ -292,7 +293,7 @@ jobs: # linestyle: ':' # shifttime: 0. # #timerange: [1800, 2050] - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-da892: # description: '4.K Rampdown (#1)' @@ -301,7 +302,7 @@ jobs: # thickness: 1.2 # linestyle: ':' # shifttime: 0. - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-db223: # description: '3.K Rampdown (#1)' @@ -310,7 +311,7 @@ jobs: # thickness: 1.2 # linestyle: ':' # shifttime: 0. - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-dc051: # description: 'Rampdown from yr 50 of 1.5 stab #1, -4GtC/yr (#1)' @@ -320,7 +321,7 @@ jobs: # linestyle: ':' # shifttime: 0. # #timerange: [1800, 2050] - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-dc052: # description: 'Rampdown from yr 200 of 1.5deg, -4GtC/yr (#1)' @@ -330,7 +331,7 @@ jobs: # linestyle: ':' # shifttime: 0 # #timerange: [1800, 2050] - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-dc248: # description: '1.5K Rampdown -4GtC/yr, (#1)' @@ -339,7 +340,7 @@ jobs: # thickness: 1.2 # linestyle: ':' # shifttime: 0. - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-dc249: # description: '3.K Rampdown -4GtC/yr, 200 years, (#1)' @@ -348,7 +349,7 @@ jobs: # thickness: 1.2 # linestyle: ':' # shifttime: 0. - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-dc251: # description: '5K Rampdown -8GtC/yr, 50 years, (#1)' @@ -357,7 +358,7 @@ jobs: # thickness: 1.2 # linestyle: ':' # shifttime: 0. - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-db956: # description: '1.5K Rampdown -8GtC/yr, 0 years, (#1)' @@ -366,7 +367,7 @@ jobs: # thickness: 1.2 # linestyle: ':' # shifttime: 0. - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-dc032: # description: 'ramp-down from yr 50 of 3.0 stab #1, free ice, -4GtC/yr (#1)' @@ -376,7 +377,7 @@ jobs: # linestyle: ':' # shifttime: 0. # #timerange: [1800, 2050] - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-dc123: # description: 'ramp-down from yr 50 of 4.0 stab #1, free ice, -4GtC/yr (#1)' # label: '4K Rampdown #1' @@ -385,7 +386,7 @@ jobs: # linestyle: ':' # shifttime: 0. # #timerange: [1800, 2050] - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # u-dc130: # description: 'ramp-down from yr 50 of 5.0 stab #1, free ice, -4GtC/yr (#1)' # label: '5K Rampdown #1' @@ -394,7 +395,7 @@ jobs: # linestyle: ':' # shifttime: 0. # #timerange: [1800, 2050] - # suite: kmf physics bgc #alkalinity physics + # suite: *keylists # Ramp down stables. u-dc163: @@ -405,5 +406,5 @@ jobs: linestyle: '-' shifttime: -2019. #timerange: [1800, 2050] - suite: kmf physics bgc #alkalinity physics + suite: *keylists From 1c3fe2790023c8ee73740fae8d6faf57a3da7f84 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Fri, 3 May 2024 10:02:00 +0100 Subject: [PATCH 03/29] added self destruct to mass scripts. --- bgcval2/download_from_mass.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bgcval2/download_from_mass.py b/bgcval2/download_from_mass.py index 139c67c6..7828a013 100755 --- a/bgcval2/download_from_mass.py +++ b/bgcval2/download_from_mass.py @@ -441,6 +441,12 @@ def download_from_mass( header_lines.append('# from login1.jasmin.ac.uk, ssh to the mass machine:\n# ssh -X mass-cli\n') header_lines.append(''.join(['# run script with:\n# source ', os.path.abspath(download_script_path),'\n'])) header_lines.append('# moo passwd -r # if mass password is expired\n') + header_lines.append('\n#self-destruct:\n') + header_lines.append('{\n') + header_lines.append(' sleep 720m # Kill script after 12 hours.\n') + header_lines.append(' echo "Script ran out of time (23 hour limit)"\n') + header_lines.append(' kill $$\n') + header_lines.append('} &\n\n') header_lines.append('source /etc/bashrc\n') # make sure script can access moo tools. header_lines.append('echo "\n\nDownloading '+jobID+' on mass-cli1"\n') # make sure script can access moo tools. From 88b922d1e2ecf609527b2120f181784b265935e2 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Mon, 13 May 2024 13:22:32 +0100 Subject: [PATCH 04/29] Working in place. --- bgcval2/bgcvaltools/pftnames.py | 9 +++++++++ bgcval2/timeseries/timeseriesTools.py | 15 ++++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/bgcval2/bgcvaltools/pftnames.py b/bgcval2/bgcvaltools/pftnames.py index b2f8f557..fb37e422 100644 --- a/bgcval2/bgcvaltools/pftnames.py +++ b/bgcval2/bgcvaltools/pftnames.py @@ -250,7 +250,16 @@ def makeLongNameDict(): lnd['AtlanticSubtropicSalinity'] = 'Atlantic Subtropic Salinity' lnd['SubtropicNorthAtlantic'] = 'Subtropic North Atlantic' + + lnd['Surfaceto100m'] = 'Surface-to-100m' + lnd['Surfaceto200m'] = 'Surface-to-200m' + lnd['Surfaceto300m'] = 'Surface-to-300m' + lnd['Surfaceto400m'] = 'Surface-to-400m' + lnd['Surfaceto500m'] = 'Surface-to-500m' + lnd['Surfaceto600m'] = 'Surface-to-600m' + lnd['Surfaceto700m'] = 'Surface-to-700m' lnd['Surfaceto800m'] = 'Surface-to-800m' + lnd['Surfaceto2000m'] = 'Surface-to-2000m' lnd['TotalHeatFlux'] = "Global Total Heat Flux" lnd['HeatFlux'] = "Heat Flux" diff --git a/bgcval2/timeseries/timeseriesTools.py b/bgcval2/timeseries/timeseriesTools.py index 0de5a52c..8f207d21 100644 --- a/bgcval2/timeseries/timeseriesTools.py +++ b/bgcval2/timeseries/timeseriesTools.py @@ -204,15 +204,16 @@ def getHorizontalSlice(nc, coords, details, layer, data=''): return ApplyDepthSlice(data, k_surf) - ApplyDepthSlice(data, k_low) elif layer in [ - 'Surface to 100m', 'Surface to 300m', 'Surface to 700m', 'Surfaceto800m', - 'Surface to 2000m' + 'Surfaceto100m', 'Surfaceto300m', 'Surfaceto700m', + 'Surfaceto500m', 'Surfaceto800m', + 'Surfaceto2000m' ]: - if layer == 'Surface to 100m': z = 100. - if layer == 'Surface to 300m': z = 300. - if layer == 'Surface to 500m': z = 500. - if layer == 'Surface to 700m': z = 700. + if layer == 'Surfaceto100m': z = 100. + if layer == 'Surfaceto300m': z = 300. + if layer == 'Surfaceto500m': z = 500. + if layer == 'Surfaceto700m': z = 700. if layer == 'Surfaceto800m': z = 800. - if layer == 'Surface to 2000m': z = 2000. + if layer == 'Surfaceto2000m': z = 2000. k_surf = bvt.getORCAdepth(0., nc.variables[coords['z']][:], From 4c2dd824ad125aab8293bc3711d3b2084d22ab68 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Mon, 13 May 2024 13:52:06 +0100 Subject: [PATCH 05/29] added missing jobs --- input_yml/TerraFIRMA_overshoot_recovery.yml | 117 +++++++++++++++++ input_yml/TerraFIRMA_overshoot_runs.yml | 133 ++++++++++++++++++++ input_yml/TerraFIRMA_overshoot_stables.yml | 1 - 3 files changed, 250 insertions(+), 1 deletion(-) diff --git a/input_yml/TerraFIRMA_overshoot_recovery.yml b/input_yml/TerraFIRMA_overshoot_recovery.yml index 6515de08..c7f773b8 100644 --- a/input_yml/TerraFIRMA_overshoot_recovery.yml +++ b/input_yml/TerraFIRMA_overshoot_recovery.yml @@ -345,3 +345,120 @@ jobs: suite: *keylists + +# added Monday 13th May: + u-df453: + description: '-8 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dotted' + shifttime: -2043. + suite: *keylists + + u-dc565: + description: '-4 Ramp down from cy838 (2.0K Stabilisation 200 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dashed' + shifttime: -2144. + suite: *keylists + + u-dc566: + description: '-4 Ramp down from cy376 (4.0K Stabilisation 200 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'sienna' + thickness: 1.7 + linestyle: 'dashed' + shifttime: -2144. + suite: *keylists + u-dc567: + description: '-4 Ramp down from cz375 (3.0K Stabilisation 30 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dashed' + shifttime: -2023. + suite: *keylists + u-dc568: + description: '-4 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dashed' + shifttime: -2043. + suite: *keylists + u-dc569: + description: '-4 Ramp down from cz376 (4.0K Stabilisation 50 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'sienna' + thickness: 1.7 + linestyle: 'dashed' + shifttime: -2095. + suite: *keylists + + u-df025: + description: '-2 Ramp down from cy838 (2.0K Stabilisation 50 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'goldenrod' + thickness: 1.7 + linestyle: 'dashdot' + shifttime: -1994. + suite: *keylists + + u-df027: + description: '-2 Ramp down from cy838 (2.0K Stabilisation 200 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'goldenrod' + thickness: 1.7 + linestyle: 'dashdot' + shifttime: -2144. + suite: *keylists + + u-df021: + description: '-2 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dashdot' + shifttime: -2043. + suite: *keylists + + u-df023: + description: '-2 Ramp down from cz375 (3.0K Stabilisation 200 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dashdot' + shifttime: -2193. + suite: *keylists + + u-de943: + description: '-8 Ramp down from cz378 (6.0K Stabilisation 51 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'indigo' + thickness: 1.7 + linestyle: 'dotted' + shifttime: -2188. + suite: *keylists + + u-de962: + description: '-4 Ramp down from cz378 (6.0K Stabilisation 51 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'indigo' + thickness: 1.7 + linestyle: 'dashed' + shifttime: -2188. + suite: *keylists + + u-de963: + description: '-2 Ramp down from cz378 (6.0K Stabilisation 51 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'indigo' + thickness: 1.7 + linestyle: 'dashdot' + shifttime: -2188. + suite: *keylists + + diff --git a/input_yml/TerraFIRMA_overshoot_runs.yml b/input_yml/TerraFIRMA_overshoot_runs.yml index 33e27e43..a1f56a6e 100644 --- a/input_yml/TerraFIRMA_overshoot_runs.yml +++ b/input_yml/TerraFIRMA_overshoot_runs.yml @@ -424,3 +424,136 @@ jobs: #timerange: [1800, 2050] suite: *keylists + + +# added Monday 13th May: + u-df453: + description: '-8 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dotted' + #shifttime: -2043. + suite: *keylists + + u-dc565: + description: '-4 Ramp down from cy838 (2.0K Stabilisation 200 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2144. + suite: *keylists + + u-dc566: + description: '-4 Ramp down from cy376 (4.0K Stabilisation 200 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'sienna' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2144. + suite: *keylists + u-dc567: + description: '-4 Ramp down from cz375 (3.0K Stabilisation 30 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2023. + suite: *keylists + u-dc568: + description: '-4 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2043. + suite: *keylists + u-dc569: + description: '-4 Ramp down from cz376 (4.0K Stabilisation 50 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'sienna' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2095. + suite: *keylists + + u-df025: + description: '-2 Ramp down from cy838 (2.0K Stabilisation 50 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'goldenrod' + thickness: 1.7 + linestyle: 'dashdot' + #shifttime: -1994. + suite: *keylists + + u-df027: + description: '-2 Ramp down from cy838 (2.0K Stabilisation 200 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'goldenrod' + thickness: 1.7 + linestyle: 'dashdot' + #shifttime: -2144. + suite: *keylists + + u-df021: + description: '-2 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dashdot' + #shifttime: -2043. + suite: *keylists + + u-df023: + description: '-2 Ramp down from cz375 (3.0K Stabilisation 200 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dashdot' + #shifttime: -2193. + suite: *keylists + + u-de943: + description: '-8 Ramp down from cz378 (6.0K Stabilisation 51 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'indigo' + thickness: 1.7 + linestyle: 'dotted' + #shifttime: -2188. + suite: *keylists + + u-de962: + description: '-4 Ramp down from cz378 (6.0K Stabilisation 51 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'indigo' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2188. + suite: *keylists + + u-de963: + description: '-2 Ramp down from cz378 (6.0K Stabilisation 51 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'indigo' + thickness: 1.7 + linestyle: 'dashdot' + #shifttime: -2188. + suite: *keylists + +# Key + # Ramp downs + # -8: dotted + # -4: dashed + # -2 dashdot +# colours: + # 1.5 lawngreen + # 2: goldenrod + # 2.5K orange + # 3 red + # 4 sienna + # 5 maroon + # 6 indigo + # rampup: black + # PIControl: blue + diff --git a/input_yml/TerraFIRMA_overshoot_stables.yml b/input_yml/TerraFIRMA_overshoot_stables.yml index 5c597de7..8d1f2590 100644 --- a/input_yml/TerraFIRMA_overshoot_stables.yml +++ b/input_yml/TerraFIRMA_overshoot_stables.yml @@ -407,4 +407,3 @@ jobs: shifttime: -2019. #timerange: [1800, 2050] suite: *keylists - From a49031b27067ce91d4c8f663b80ca8858269d1f6 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Fri, 17 May 2024 14:23:11 +0100 Subject: [PATCH 06/29] commented out wrong jobs --- input_yml/TerraFIRMA_overshoot_recovery.yml | 116 ++++++++++---------- input_yml/TerraFIRMA_overshoot_runs.yml | 89 ++++++++------- 2 files changed, 105 insertions(+), 100 deletions(-) diff --git a/input_yml/TerraFIRMA_overshoot_recovery.yml b/input_yml/TerraFIRMA_overshoot_recovery.yml index c7f773b8..f5b45726 100644 --- a/input_yml/TerraFIRMA_overshoot_recovery.yml +++ b/input_yml/TerraFIRMA_overshoot_recovery.yml @@ -208,16 +208,6 @@ jobs: # -8: dotted # -4: dashed # -2 dashdot - u-cz944: - description: 'Ramp down from cy838 (- 2.0K Stabilisation from u-cx209) (#1)' - label: '2K Rampdown' - colour: 'goldenrod' - thickness: 1.7 - linestyle: 'dotted' - shifttime: -1994. - #timerange: [1800, 2050] - suite: *keylists - u-da800: description: 'Ramp down from cy838 (- 2.0K Stabilisation from u-cx209) (#1)' label: None #'2K Rampdown #1' @@ -238,24 +228,33 @@ jobs: #timerange: [1800, 2050] suite: *keylists - u-da892: - description: '4.K Rampdown (#1)' - label: '4.K Rampdown' - colour: 'sienna' + u-cz944: + description: 'Ramp down from cy838 (- 2.0K Stabilisation from u-cx209) (#1)' + label: '2K Rampdown' + colour: 'goldenrod' thickness: 1.7 linestyle: 'dotted' - shifttime: -2094. + shifttime: -1994. + #timerange: [1800, 2050] suite: *keylists u-db223: description: '3.K Rampdown (#1)' - label: '3.K Rampdown' + label: '3K Rampdown' colour: 'red' thickness: 1.7 linestyle: 'dotted' shifttime: -2032. suite: *keylists + u-da892: + description: '4.K Rampdown (#1)' + label: '4K Rampdown' + colour: 'sienna' + thickness: 1.7 + linestyle: 'dotted' + shifttime: -2094. + suite: *keylists u-dc051: @@ -347,14 +346,14 @@ jobs: # added Monday 13th May: - u-df453: - description: '-8 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'red' - thickness: 1.7 - linestyle: 'dotted' - shifttime: -2043. - suite: *keylists +# u-df453: +# description: '-8 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' +# label: None #'2K Rampdown #1' +# colour: 'red' +# thickness: 1.7 +# linestyle: 'dotted' +# shifttime: -2043. +# suite: *keylists u-dc565: description: '-4 Ramp down from cy838 (2.0K Stabilisation 200 years) (#1)' @@ -365,39 +364,40 @@ jobs: shifttime: -2144. suite: *keylists - u-dc566: - description: '-4 Ramp down from cy376 (4.0K Stabilisation 200 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'sienna' - thickness: 1.7 - linestyle: 'dashed' - shifttime: -2144. - suite: *keylists - u-dc567: - description: '-4 Ramp down from cz375 (3.0K Stabilisation 30 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'red' - thickness: 1.7 - linestyle: 'dashed' - shifttime: -2023. - suite: *keylists - u-dc568: - description: '-4 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'red' - thickness: 1.7 - linestyle: 'dashed' - shifttime: -2043. - suite: *keylists - u-dc569: - description: '-4 Ramp down from cz376 (4.0K Stabilisation 50 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'sienna' - thickness: 1.7 - linestyle: 'dashed' - shifttime: -2095. - suite: *keylists - +# u-dc566: +# description: '-4 Ramp down from cy376 (4.0K Stabilisation 200 years) (#1)' +# label: None #'2K Rampdown #1' +# colour: 'sienna' +# thickness: 1.7 +# linestyle: 'dashed' +# shifttime: -2144. +# suite: *keylists +# u-dc567: +# description: '-4 Ramp down from cz375 (3.0K Stabilisation 30 years) (#1)' +# label: None #'2K Rampdown #1' +# colour: 'red' +# thickness: 1.7 +# linestyle: 'dashed' +# shifttime: -2023. +# suite: *keylists +# u-dc568: +# description: '-4 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' +# label: None #'2K Rampdown #1' +# colour: 'red' +# thickness: 1.7 +# linestyle: 'dashed' +# shifttime: -2043. +# suite: *keylists +# u-dc569: +# description: '-4 Ramp down from cz376 (4.0K Stabilisation 50 years) (#1)' +# label: None #'2K Rampdown #1' +# colour: 'sienna' +# thickness: 1.7 +# linestyle: 'dashed' +# shifttime: -2095. +# suite: *keylists +# NO DATA ON MASS - 2024-05-13 +# u-df025: description: '-2 Ramp down from cy838 (2.0K Stabilisation 50 years) (#1)' label: None #'2K Rampdown #1' @@ -436,7 +436,7 @@ jobs: u-de943: description: '-8 Ramp down from cz378 (6.0K Stabilisation 51 years) (#1)' - label: None #'2K Rampdown #1' + label: '6K Rampdown' colour: 'indigo' thickness: 1.7 linestyle: 'dotted' diff --git a/input_yml/TerraFIRMA_overshoot_runs.yml b/input_yml/TerraFIRMA_overshoot_runs.yml index a1f56a6e..d6293743 100644 --- a/input_yml/TerraFIRMA_overshoot_runs.yml +++ b/input_yml/TerraFIRMA_overshoot_runs.yml @@ -427,15 +427,17 @@ jobs: # added Monday 13th May: - u-df453: - description: '-8 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'red' - thickness: 1.7 - linestyle: 'dotted' - #shifttime: -2043. - suite: *keylists - +# u-df453: +# description: '-8 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' +# label: None #'2K Rampdown #1' +# colour: 'red' +# thickness: 1.7 +# linestyle: 'dotted' +# #shifttime: -2043. +# suite: *keylists +# NO DATA ON MASS - 2024-05-13 +# +# u-dc565: description: '-4 Ramp down from cy838 (2.0K Stabilisation 200 years) (#1)' label: None #'2K Rampdown #1' @@ -445,39 +447,42 @@ jobs: #shifttime: -2144. suite: *keylists - u-dc566: - description: '-4 Ramp down from cy376 (4.0K Stabilisation 200 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'sienna' - thickness: 1.7 - linestyle: 'dashed' - #shifttime: -2144. - suite: *keylists - u-dc567: - description: '-4 Ramp down from cz375 (3.0K Stabilisation 30 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'red' - thickness: 1.7 - linestyle: 'dashed' - #shifttime: -2023. - suite: *keylists - u-dc568: - description: '-4 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'red' - thickness: 1.7 - linestyle: 'dashed' - #shifttime: -2043. - suite: *keylists - u-dc569: - description: '-4 Ramp down from cz376 (4.0K Stabilisation 50 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'sienna' - thickness: 1.7 - linestyle: 'dashed' - #shifttime: -2095. - suite: *keylists - +# u-dc566: +# description: '-4 Ramp down from cy376 (4.0K Stabilisation 200 years) (#1)' +# label: None #'2K Rampdown #1' +# colour: 'sienna' +# thickness: 1.7 +# linestyle: 'dashed' +# #shifttime: -2144. +# suite: *keylists +# NO DATA ON MASS - 2024-05-13 +# +# u-dc567: +# description: '-4 Ramp down from cz375 (3.0K Stabilisation 30 years) (#1)' +# label: None #'2K Rampdown #1' +# colour: 'red' +# thickness: 1.7 +# linestyle: 'dashed' +# #shifttime: -2023. +# suite: *keylists +# u-dc568: +# description: '-4 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' +# label: None #'2K Rampdown #1' +# colour: 'red' +# thickness: 1.7 +# linestyle: 'dashed' +# #shifttime: -2043. +# suite: *keylists +# u-dc569: +# description: '-4 Ramp down from cz376 (4.0K Stabilisation 50 years) (#1)' +# label: None #'2K Rampdown #1' +# colour: 'sienna' +# thickness: 1.7 +# linestyle: 'dashed' +# #shifttime: -2095. +# suite: *keylists +# NO DATA ON MASS - 2024-05-13 +# u-df025: description: '-2 Ramp down from cy838 (2.0K Stabilisation 50 years) (#1)' label: None #'2K Rampdown #1' From ddf78de332ee66c929ecd7e612856d39e8ac3c18 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Fri, 17 May 2024 14:44:52 +0100 Subject: [PATCH 07/29] new jobIDs --- input_yml/TerraFIRMA_overshoot_recovery.yml | 133 +++++++++++--------- input_yml/TerraFIRMA_overshoot_runs.yml | 131 ++++++++++--------- 2 files changed, 140 insertions(+), 124 deletions(-) diff --git a/input_yml/TerraFIRMA_overshoot_recovery.yml b/input_yml/TerraFIRMA_overshoot_recovery.yml index f5b45726..deb4874b 100644 --- a/input_yml/TerraFIRMA_overshoot_recovery.yml +++ b/input_yml/TerraFIRMA_overshoot_recovery.yml @@ -313,35 +313,35 @@ jobs: # shifttime: -1919. # suite: *keylists - u-dc032: - description: 'ramp-down from yr 50 of 3.0 stab #1, free ice, -4GtC/yr (#1)' - label: None #'3K Rampdown #1' - colour: 'red' - thickness: 1.7 - linestyle: 'dashed' - shifttime: -2023. - #timerange: [1800, 2050] - suite: *keylists - - u-dc123: - description: 'ramp-down from yr 50 of 4.0 stab #1, free ice, -4GtC/yr (#1)' - label: None #'4K Rampdown #1' - colour: 'sienna' - thickness: 1.7 - linestyle: 'dashed' - shifttime: -2096. - #timerange: [1800, 2050] - suite: *keylists - - u-dc130: - description: 'ramp-down from yr 50 of 5.0 stab #1, free ice, -4GtC/yr (#1)' - label: None #'5K Rampdown #1' - colour: 'maroon' - thickness: 1.7 - linestyle: 'dashed' - shifttime: -2133. - #timerange: [1800, 2050] - suite: *keylists + # u-dc032: + # description: 'ramp-down from yr 50 of 3.0 stab #1, free ice, -4GtC/yr (#1)' + # label: None #'3K Rampdown #1' + # colour: 'red' + # thickness: 1.7 + # linestyle: 'dashed' + # shifttime: -2023. + # #timerange: [1800, 2050] + # suite: *keylists + + # u-dc123: + # description: 'ramp-down from yr 50 of 4.0 stab #1, free ice, -4GtC/yr (#1)' + # label: None #'4K Rampdown #1' + # colour: 'sienna' + # thickness: 1.7 + # linestyle: 'dashed' + # shifttime: -2096. + # #timerange: [1800, 2050] + # suite: *keylists + + # u-dc130: + # description: 'ramp-down from yr 50 of 5.0 stab #1, free ice, -4GtC/yr (#1)' + # label: None #'5K Rampdown #1' + # colour: 'maroon' + # thickness: 1.7 + # linestyle: 'dashed' + # shifttime: -2133. + # #timerange: [1800, 2050] + # suite: *keylists @@ -364,40 +364,49 @@ jobs: shifttime: -2144. suite: *keylists -# u-dc566: -# description: '-4 Ramp down from cy376 (4.0K Stabilisation 200 years) (#1)' -# label: None #'2K Rampdown #1' -# colour: 'sienna' -# thickness: 1.7 -# linestyle: 'dashed' -# shifttime: -2144. -# suite: *keylists -# u-dc567: -# description: '-4 Ramp down from cz375 (3.0K Stabilisation 30 years) (#1)' -# label: None #'2K Rampdown #1' -# colour: 'red' -# thickness: 1.7 -# linestyle: 'dashed' -# shifttime: -2023. -# suite: *keylists -# u-dc568: -# description: '-4 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' -# label: None #'2K Rampdown #1' -# colour: 'red' -# thickness: 1.7 -# linestyle: 'dashed' -# shifttime: -2043. -# suite: *keylists -# u-dc569: -# description: '-4 Ramp down from cz376 (4.0K Stabilisation 50 years) (#1)' -# label: None #'2K Rampdown #1' -# colour: 'sienna' -# thickness: 1.7 -# linestyle: 'dashed' -# shifttime: -2095. -# suite: *keylists -# NO DATA ON MASS - 2024-05-13 + + u-dd210: # u-dc566: + description: '-4 Ramp down from cy376 (4.0K Stabilisation 200 years) (#1)' + label: None + colour: 'sienna' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2245. + suite: *keylists # + u-dc032: + description: '-4 Ramp down from cz375 (3.0K Stabilisation 30 years) (#1)' + label: None + colour: 'red' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2023. + suite: *keylists + u-df028: + description: '-4 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' + label: None + colour: 'red' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2043. + suite: *keylists + u-dc123: + description: '-4 Ramp down from cz376 (4.0K Stabilisation 50 years) (#1)' + label: None + colour: 'sienna' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2095. + suite: *keylists + u-dc130: + description: '-4 Ramp down from cz376 (5.0K Stabilisation 50 years) (#1)' + label: None + colour: 'maroon' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2133. + suite: *keylists +# NO DATA ON MASS - 2024-05-13 u-df025: description: '-2 Ramp down from cy838 (2.0K Stabilisation 50 years) (#1)' label: None #'2K Rampdown #1' diff --git a/input_yml/TerraFIRMA_overshoot_runs.yml b/input_yml/TerraFIRMA_overshoot_runs.yml index d6293743..80d03367 100644 --- a/input_yml/TerraFIRMA_overshoot_runs.yml +++ b/input_yml/TerraFIRMA_overshoot_runs.yml @@ -380,35 +380,35 @@ jobs: # shifttime: -1919. # suite: *keylists - u-dc032: - description: 'ramp-down from yr 50 of 3.0 stab #1, free ice, -4GtC/yr (#1)' - label: None #'3K Rampdown #1' - colour: 'red' - thickness: 1.7 - linestyle: 'dashed' - # shifttime: -2023. - #timerange: [1800, 2050] - suite: *keylists - - u-dc123: - description: 'ramp-down from yr 50 of 4.0 stab #1, free ice, -4GtC/yr (#1)' - label: None #'#pdown' - colour: 'sienna' - thickness: 1.7 - linestyle: 'dashed' - # shifttime: -2096. - #timerange: [1800, 2050] - suite: *keylists - - u-dc130: - description: 'ramp-down from yr 50 of 5.0 stab #1, free ice, -4GtC/yr (#1)' - label: None #'5K Rampdown #1' - colour: 'maroon' - thickness: 1.7 - linestyle: 'dashed' - # shifttime: -2133. - #timerange: [1800, 2050] - suite: *keylists + # u-dc032: + # description: 'ramp-down from yr 50 of 3.0 stab #1, free ice, -4GtC/yr (#1)' + # label: None #'3K Rampdown #1' + # colour: 'red' + # thickness: 1.7 + # linestyle: 'dashed' + # # shifttime: -2023. + # #timerange: [1800, 2050] + # suite: *keylists + + # u-dc123: + # description: 'ramp-down from yr 50 of 4.0 stab #1, free ice, -4GtC/yr (#1)' + # label: None #'#pdown' + # colour: 'sienna' + # thickness: 1.7 + # linestyle: 'dashed' + # # shifttime: -2096. + # #timerange: [1800, 2050] + # suite: *keylists + + # u-dc130: + # description: 'ramp-down from yr 50 of 5.0 stab #1, free ice, -4GtC/yr (#1)' + # label: None #'5K Rampdown #1' + # colour: 'maroon' + # thickness: 1.7 + # linestyle: 'dashed' + # # shifttime: -2133. + # #timerange: [1800, 2050] + # suite: *keylists @@ -447,40 +447,47 @@ jobs: #shifttime: -2144. suite: *keylists -# u-dc566: -# description: '-4 Ramp down from cy376 (4.0K Stabilisation 200 years) (#1)' -# label: None #'2K Rampdown #1' -# colour: 'sienna' -# thickness: 1.7 -# linestyle: 'dashed' -# #shifttime: -2144. -# suite: *keylists -# NO DATA ON MASS - 2024-05-13 + u-dd210: # u-dc566: + description: '-4 Ramp down from cy376 (4.0K Stabilisation 200 years) (#1)' + label: None + colour: 'sienna' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2245. + suite: *keylists # -# u-dc567: -# description: '-4 Ramp down from cz375 (3.0K Stabilisation 30 years) (#1)' -# label: None #'2K Rampdown #1' -# colour: 'red' -# thickness: 1.7 -# linestyle: 'dashed' -# #shifttime: -2023. -# suite: *keylists -# u-dc568: -# description: '-4 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' -# label: None #'2K Rampdown #1' -# colour: 'red' -# thickness: 1.7 -# linestyle: 'dashed' -# #shifttime: -2043. -# suite: *keylists -# u-dc569: -# description: '-4 Ramp down from cz376 (4.0K Stabilisation 50 years) (#1)' -# label: None #'2K Rampdown #1' -# colour: 'sienna' -# thickness: 1.7 -# linestyle: 'dashed' -# #shifttime: -2095. -# suite: *keylists + u-dc032: + description: '-4 Ramp down from cz375 (3.0K Stabilisation 30 years) (#1)' + label: None + colour: 'red' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2023. + suite: *keylists + u-df028: + description: '-4 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' + label: None + colour: 'red' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2043. + suite: *keylists + u-dc123: + description: '-4 Ramp down from cz376 (4.0K Stabilisation 50 years) (#1)' + label: None + colour: 'sienna' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2095. + suite: *keylists + u-dc130: + description: '-4 Ramp down from cz376 (5.0K Stabilisation 50 years) (#1)' + label: None + colour: 'maroon' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2133. + suite: *keylists # NO DATA ON MASS - 2024-05-13 # u-df025: From 93a225c0cb80d88aa8093489dcd8d8f33d890125 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Wed, 29 May 2024 09:52:54 +0100 Subject: [PATCH 08/29] working here --- input_yml/TerraFIRMA_overshoot_recovery.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/input_yml/TerraFIRMA_overshoot_recovery.yml b/input_yml/TerraFIRMA_overshoot_recovery.yml index deb4874b..f6b18101 100644 --- a/input_yml/TerraFIRMA_overshoot_recovery.yml +++ b/input_yml/TerraFIRMA_overshoot_recovery.yml @@ -371,7 +371,7 @@ jobs: colour: 'sienna' thickness: 1.7 linestyle: 'dashed' - #shifttime: -2245. + shifttime: -2245. suite: *keylists # u-dc032: @@ -380,7 +380,7 @@ jobs: colour: 'red' thickness: 1.7 linestyle: 'dashed' - #shifttime: -2023. + shifttime: -2023. suite: *keylists u-df028: description: '-4 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' @@ -388,7 +388,7 @@ jobs: colour: 'red' thickness: 1.7 linestyle: 'dashed' - #shifttime: -2043. + shifttime: -2043. suite: *keylists u-dc123: description: '-4 Ramp down from cz376 (4.0K Stabilisation 50 years) (#1)' @@ -396,7 +396,7 @@ jobs: colour: 'sienna' thickness: 1.7 linestyle: 'dashed' - #shifttime: -2095. + shifttime: -2095. suite: *keylists u-dc130: description: '-4 Ramp down from cz376 (5.0K Stabilisation 50 years) (#1)' @@ -404,7 +404,7 @@ jobs: colour: 'maroon' thickness: 1.7 linestyle: 'dashed' - #shifttime: -2133. + shifttime: -2133. suite: *keylists # NO DATA ON MASS - 2024-05-13 u-df025: From c2bad98e75cf2333f4b4638f60e07b6032c41738 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Wed, 29 May 2024 10:34:21 +0100 Subject: [PATCH 09/29] working here --- input_yml/TerraFIRMA_overshoot_recovery.yml | 2 +- input_yml/TerraFIRMA_overshoot_runs.yml | 313 +++++++++++--------- 2 files changed, 168 insertions(+), 147 deletions(-) diff --git a/input_yml/TerraFIRMA_overshoot_recovery.yml b/input_yml/TerraFIRMA_overshoot_recovery.yml index f6b18101..a1ce1bd7 100644 --- a/input_yml/TerraFIRMA_overshoot_recovery.yml +++ b/input_yml/TerraFIRMA_overshoot_recovery.yml @@ -358,7 +358,7 @@ jobs: u-dc565: description: '-4 Ramp down from cy838 (2.0K Stabilisation 200 years) (#1)' label: None #'2K Rampdown #1' - colour: 'red' + colour: 'goldenrod' thickness: 1.7 linestyle: 'dashed' shifttime: -2144. diff --git a/input_yml/TerraFIRMA_overshoot_runs.yml b/input_yml/TerraFIRMA_overshoot_runs.yml index 80d03367..e6be0680 100644 --- a/input_yml/TerraFIRMA_overshoot_runs.yml +++ b/input_yml/TerraFIRMA_overshoot_runs.yml @@ -274,26 +274,8 @@ jobs: # -8: dotted # -4: dashed # -2 dashdot - u-cz944: - description: 'Ramp down from cy838 (- 2.0K Stabilisation from u-cx209) (#1)' - label: None #'2K Rampdown #1' - colour: 'goldenrod' - thickness: 1.7 - linestyle: 'dotted' - #shifttime: -1994. - #timerange: [1800, 2050] - suite: *keylists - - u-da800: - description: 'Ramp down from cy838 (- 2.0K Stabilisation from u-cx209) (#1)' - label: None #'2K Rampdown #1' - colour: 'goldenrod' - thickness: 1.7 - linestyle: 'dotted' - #shifttime: -2144. - #timerange: [1800, 2050] - suite: *keylists + # 1.5 degree rampdown u-da697: description: '1.5K Rampdown from u-cx209 (#1)' label: '-8Pg/yr' @@ -304,26 +286,6 @@ jobs: #timerange: [1800, 2050] suite: *keylists - u-da892: - description: '4.K Rampdown (#1)' - label: None #'4.K Rampdown #1' - colour: 'sienna' - thickness: 1.7 - linestyle: 'dotted' - #shifttime: -2094. - suite: *keylists - - u-db223: - description: '3.K Rampdown (#1)' - label: None #'3.K Rampdown #1' - colour: 'red' - thickness: 1.7 - linestyle: 'dotted' - #shifttime: -2032. - suite: *keylists - - - u-dc051: description: 'Rampdown from yr 50 of 1.5 stab #1, -4GtC/yr (#1)' label: '-4Pg/yr' @@ -332,7 +294,7 @@ jobs: linestyle: 'dashed' # shifttime: -1995. #timerange: [1800, 2050] - suite: *keylists + suite: *keylists u-dc052: description: 'Rampdown from yr 200 of 1.5deg, -4GtC/yr (#1)' @@ -351,6 +313,64 @@ jobs: thickness: 1.7 linestyle: 'dashed' #shifttime: -2119. + suite: *keylists + + # 2 degree rampdown + u-cz944: + description: 'Ramp down from cy838 (- 2.0K Stabilisation from u-cx209) (#1)' + label: None #'2K Rampdown #1' + colour: 'goldenrod' + thickness: 1.7 + linestyle: 'dotted' + #shifttime: -1994. + #timerange: [1800, 2050] + suite: *keylists + + u-da800: + description: 'Ramp down from cy838 (- 2.0K Stabilisation from u-cx209) (#1)' + label: None #'2K Rampdown #1' + colour: 'goldenrod' + thickness: 1.7 + linestyle: 'dotted' + #shifttime: -2144. + #timerange: [1800, 2050] + suite: *keylists + + u-dc565: + description: '-4 Ramp down from cy838 (2.0K Stabilisation 200 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2144. + suite: *keylists + + u-df025: + description: '-2 Ramp down from cy838 (2.0K Stabilisation 50 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'goldenrod' + thickness: 1.7 + linestyle: 'dashdot' + #shifttime: -1994. + suite: *keylists + + u-df027: + description: '-2 Ramp down from cy838 (2.0K Stabilisation 200 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'goldenrod' + thickness: 1.7 + linestyle: 'dashdot' + #shifttime: -2144. + suite: *keylists + + # 3 degree rampdown + u-db223: + description: '3.K Rampdown (#1)' + label: None #'3.K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dotted' + #shifttime: -2032. suite: *keylists u-dc249: @@ -362,6 +382,71 @@ jobs: #shifttime: -2182. suite: *keylists + u-dc032: + description: '-4 Ramp down from cz375 (3.0K Stabilisation 30 years) (#1)' + label: None + colour: 'red' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2023. + suite: *keylists + + u-df028: + description: '-4 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' + label: None + colour: 'red' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2043. + suite: *keylists + + u-df021: + description: '-2 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dashdot' + #shifttime: -2043. + suite: *keylists + + u-df023: + description: '-2 Ramp down from cz375 (3.0K Stabilisation 200 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'red' + thickness: 1.7 + linestyle: 'dashdot' + #shifttime: -2193. + suite: *keylists + + # 4 degree rampdown + u-da892: + description: '4.K Rampdown (#1)' + label: None #'4.K Rampdown #1' + colour: 'sienna' + thickness: 1.7 + linestyle: 'dotted' + #shifttime: -2094. + suite: *keylists + + u-dd210: # u-dc566: + description: '-4 Ramp down from cy376 (4.0K Stabilisation 200 years) (#1)' + label: None + colour: 'sienna' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2245. + suite: *keylists + + u-dc123: + description: '-4 Ramp down from cz376 (4.0K Stabilisation 50 years) (#1)' + label: None + colour: 'sienna' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2095. + suite: *keylists + + # 5 degree rampdown u-dc251: description: '5K Rampdown -8GtC/yr, 50 years, (#1)' label: None #'5K Rampdown #1' @@ -370,6 +455,43 @@ jobs: linestyle: 'dotted' #shifttime: -2132. suite: *keylists + + u-dc130: + description: '-4 Ramp down from cz376 (5.0K Stabilisation 50 years) (#1)' + label: None + colour: 'maroon' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2133. + suite: *keylists + + # 6 degree rampdown + u-de943: + description: '-8 Ramp down from cz378 (6.0K Stabilisation 51 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'indigo' + thickness: 1.7 + linestyle: 'dotted' + #shifttime: -2188. + suite: *keylists + + u-de962: + description: '-4 Ramp down from cz378 (6.0K Stabilisation 51 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'indigo' + thickness: 1.7 + linestyle: 'dashed' + #shifttime: -2188. + suite: *keylists + + u-de963: + description: '-2 Ramp down from cz378 (6.0K Stabilisation 51 years) (#1)' + label: None #'2K Rampdown #1' + colour: 'indigo' + thickness: 1.7 + linestyle: 'dashdot' + #shifttime: -2188. + suite: *keylists # u-db956: # description: '1.5K Rampdown -8GtC/yr, 0 years, (#1)' @@ -438,120 +560,19 @@ jobs: # NO DATA ON MASS - 2024-05-13 # # - u-dc565: - description: '-4 Ramp down from cy838 (2.0K Stabilisation 200 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'red' - thickness: 1.7 - linestyle: 'dashed' - #shifttime: -2144. - suite: *keylists - u-dd210: # u-dc566: - description: '-4 Ramp down from cy376 (4.0K Stabilisation 200 years) (#1)' - label: None - colour: 'sienna' - thickness: 1.7 - linestyle: 'dashed' - #shifttime: -2245. - suite: *keylists + + # - u-dc032: - description: '-4 Ramp down from cz375 (3.0K Stabilisation 30 years) (#1)' - label: None - colour: 'red' - thickness: 1.7 - linestyle: 'dashed' - #shifttime: -2023. - suite: *keylists - u-df028: - description: '-4 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' - label: None - colour: 'red' - thickness: 1.7 - linestyle: 'dashed' - #shifttime: -2043. - suite: *keylists - u-dc123: - description: '-4 Ramp down from cz376 (4.0K Stabilisation 50 years) (#1)' - label: None - colour: 'sienna' - thickness: 1.7 - linestyle: 'dashed' - #shifttime: -2095. - suite: *keylists - u-dc130: - description: '-4 Ramp down from cz376 (5.0K Stabilisation 50 years) (#1)' - label: None - colour: 'maroon' - thickness: 1.7 - linestyle: 'dashed' - #shifttime: -2133. - suite: *keylists + + # NO DATA ON MASS - 2024-05-13 # - u-df025: - description: '-2 Ramp down from cy838 (2.0K Stabilisation 50 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'goldenrod' - thickness: 1.7 - linestyle: 'dashdot' - #shifttime: -1994. - suite: *keylists - - u-df027: - description: '-2 Ramp down from cy838 (2.0K Stabilisation 200 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'goldenrod' - thickness: 1.7 - linestyle: 'dashdot' - #shifttime: -2144. - suite: *keylists - - u-df021: - description: '-2 Ramp down from cz375 (3.0K Stabilisation 50 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'red' - thickness: 1.7 - linestyle: 'dashdot' - #shifttime: -2043. - suite: *keylists + - u-df023: - description: '-2 Ramp down from cz375 (3.0K Stabilisation 200 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'red' - thickness: 1.7 - linestyle: 'dashdot' - #shifttime: -2193. - suite: *keylists - u-de943: - description: '-8 Ramp down from cz378 (6.0K Stabilisation 51 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'indigo' - thickness: 1.7 - linestyle: 'dotted' - #shifttime: -2188. - suite: *keylists - u-de962: - description: '-4 Ramp down from cz378 (6.0K Stabilisation 51 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'indigo' - thickness: 1.7 - linestyle: 'dashed' - #shifttime: -2188. - suite: *keylists - u-de963: - description: '-2 Ramp down from cz378 (6.0K Stabilisation 51 years) (#1)' - label: None #'2K Rampdown #1' - colour: 'indigo' - thickness: 1.7 - linestyle: 'dashdot' - #shifttime: -2188. - suite: *keylists # Key # Ramp downs From bba2de823efe0ef32906ee99501bebc6f44e55e2 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Wed, 29 May 2024 11:08:20 +0100 Subject: [PATCH 10/29] Changes visualising. --- input_yml/TerraFIRMA_overshoot_runs.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/input_yml/TerraFIRMA_overshoot_runs.yml b/input_yml/TerraFIRMA_overshoot_runs.yml index e6be0680..ce45ba02 100644 --- a/input_yml/TerraFIRMA_overshoot_runs.yml +++ b/input_yml/TerraFIRMA_overshoot_runs.yml @@ -339,7 +339,7 @@ jobs: u-dc565: description: '-4 Ramp down from cy838 (2.0K Stabilisation 200 years) (#1)' label: None #'2K Rampdown #1' - colour: 'red' + colour: 'goldenrod' thickness: 1.7 linestyle: 'dashed' #shifttime: -2144. @@ -347,7 +347,7 @@ jobs: u-df025: description: '-2 Ramp down from cy838 (2.0K Stabilisation 50 years) (#1)' - label: None #'2K Rampdown #1' + label: '-2Pg/yr' #'2K Rampdown #1' colour: 'goldenrod' thickness: 1.7 linestyle: 'dashdot' @@ -538,9 +538,9 @@ jobs: # Ramp down stables. u-dc163: description: 'Stable post ramp-down (#1)' - label: None #'Stab Rampdown #1' - colour: 'lawngreen' - thickness: 1.2 + label: 'Ramp-down 0.Pg/yr' + colour: 'green' + thickness: 1.6 linestyle: '-' shifttime: 0. #timerange: [1800, 2050] From fa2ed3c9ea14cc7bb1a2ad02a9547e71d6d4b052 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Wed, 29 May 2024 13:40:09 +0100 Subject: [PATCH 11/29] minor edit. --- input_yml/TerraFIRMA_overshoot_runs.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/input_yml/TerraFIRMA_overshoot_runs.yml b/input_yml/TerraFIRMA_overshoot_runs.yml index ce45ba02..b627fea9 100644 --- a/input_yml/TerraFIRMA_overshoot_runs.yml +++ b/input_yml/TerraFIRMA_overshoot_runs.yml @@ -278,7 +278,7 @@ jobs: # 1.5 degree rampdown u-da697: description: '1.5K Rampdown from u-cx209 (#1)' - label: '-8Pg/yr' + label: '-8.Pg/yr' colour: 'lawngreen' thickness: 1.7 linestyle: 'dotted' @@ -288,7 +288,7 @@ jobs: u-dc051: description: 'Rampdown from yr 50 of 1.5 stab #1, -4GtC/yr (#1)' - label: '-4Pg/yr' + label: '-4.Pg/yr' colour: 'lawngreen' thickness: 1.7 linestyle: 'dashed' @@ -347,7 +347,7 @@ jobs: u-df025: description: '-2 Ramp down from cy838 (2.0K Stabilisation 50 years) (#1)' - label: '-2Pg/yr' #'2K Rampdown #1' + label: '-2.Pg/yr' #'2K Rampdown #1' colour: 'goldenrod' thickness: 1.7 linestyle: 'dashdot' @@ -538,7 +538,7 @@ jobs: # Ramp down stables. u-dc163: description: 'Stable post ramp-down (#1)' - label: 'Ramp-down 0.Pg/yr' + label: '0.Pg/yr' colour: 'green' thickness: 1.6 linestyle: '-' From 32c509092bcf79bc6a56ec32a5b675f30b662ae3 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Tue, 4 Jun 2024 15:39:07 +0100 Subject: [PATCH 12/29] added new regions and layers and jobs --- input_yml/TerraFIRMA_overshoot_runs.yml | 2 +- key_files/mld.yml | 2 +- key_files/ph.yml | 2 +- key_files/salinity.yml | 4 ++-- key_files/temperature.yml | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/input_yml/TerraFIRMA_overshoot_runs.yml b/input_yml/TerraFIRMA_overshoot_runs.yml index b627fea9..65332051 100644 --- a/input_yml/TerraFIRMA_overshoot_runs.yml +++ b/input_yml/TerraFIRMA_overshoot_runs.yml @@ -30,7 +30,7 @@ jobs: thickness: 1.2 linestyle: '-' shifttime: -100. - timerange: [1850, 2400] + timerange: [1850, 2600] suite: *keylists # ramp up diff --git a/key_files/mld.yml b/key_files/mld.yml index e2409d97..6c4bd18a 100644 --- a/key_files/mld.yml +++ b/key_files/mld.yml @@ -30,4 +30,4 @@ data_convert: maskname : mask areafile: $BASEDIR_OBS/IFREMER-MLD/mld_DT02_c1m_reg2.0-annual.nc #layers : Surface -regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthAtlanticOcean SouthAtlanticOcean NorthPacificOcean SouthPacificOcean SPNA STNA GINseas LabradorSea +regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthAtlanticOcean SouthAtlanticOcean NorthPacificOcean SouthPacificOcean SPNA STNA GINseas LabradorSea EquatorialAtlanticOcean diff --git a/key_files/ph.yml b/key_files/ph.yml index 4a31d1c5..cb4d6365 100644 --- a/key_files/ph.yml +++ b/key_files/ph.yml @@ -14,4 +14,4 @@ model_vars : PH3 model_convert : NoChange layers : Surface #50m #;100m 200m 500m 1000m 2000m -regions : Global #ignoreInlandSeas #;SouthernOcean ArcticOcean Equator10 Remainder NorthernSubpolarAtlantic NorthernSubpolarPacific +regions : Global SouthernOcean ArcticOcean Equator10 # Remainder NorthernSubpolarAtlantic NorthernSubpolarPacific diff --git a/key_files/salinity.yml b/key_files/salinity.yml index 3de845e1..20e1d754 100644 --- a/key_files/salinity.yml +++ b/key_files/salinity.yml @@ -19,5 +19,5 @@ data_vars : s_an data_convert : NoChange data_tdict : ZeroToZero -layers : Surface -regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthPacificOcean SouthPacificOcean NorthAtlanticOcean SouthAtlanticOcean SPNA STNA GINseas LabradorSea +layers : Surface 500m +regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthPacificOcean SouthPacificOcean NorthAtlanticOcean SouthAtlanticOcean SPNA STNA GINseas LabradorSea EquatorialAtlanticOcean diff --git a/key_files/temperature.yml b/key_files/temperature.yml index b7e0d59b..2686b03e 100644 --- a/key_files/temperature.yml +++ b/key_files/temperature.yml @@ -20,8 +20,8 @@ data_vars : t_an data_convert : NoChange data_tdict : ZeroToZero -layers : Surface -regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthPacificOcean SouthPacificOcean NorthAtlanticOcean SouthAtlanticOcean SPNA STNA GINseas LabradorSea +layers : Surface 500m +regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthPacificOcean SouthPacificOcean NorthAtlanticOcean SouthAtlanticOcean SPNA STNA GINseas LabradorSea EquatorialAtlanticOcean From 6747ff0c2d161ffeb82e328d15ad0e17438e963f Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Tue, 4 Jun 2024 15:39:19 +0100 Subject: [PATCH 13/29] added exit 0 to download script --- bgcval2/download_from_mass.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bgcval2/download_from_mass.py b/bgcval2/download_from_mass.py index 7828a013..c6aa67f9 100755 --- a/bgcval2/download_from_mass.py +++ b/bgcval2/download_from_mass.py @@ -502,6 +502,8 @@ def download_from_mass( stdout=subprocess.PIPE) output = process.communicate()[0] + download_script_txt = ''.join([download_script_txt, '\nexit 0\n']) # ends the self-destruct timer. + print('writing file:',download_script_path, '\nfile contents:\n', download_script_txt) outfile = open(download_script_path, 'w') outfile.write(download_script_txt) From 2f34482a91929fa05f6d31c8cc1a221e1efc7877 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Fri, 7 Jun 2024 15:17:55 +0100 Subject: [PATCH 14/29] revised regions corrected --- bgcval2/bgcvaltools/generic_map_legend.py | 247 ++++++++++++++++++++ bgcval2/bgcvaltools/makeMask.py | 18 +- bgcval2/bgcvaltools/removeMaskFromshelve.py | 34 ++- 3 files changed, 284 insertions(+), 15 deletions(-) create mode 100644 bgcval2/bgcvaltools/generic_map_legend.py diff --git a/bgcval2/bgcvaltools/generic_map_legend.py b/bgcval2/bgcvaltools/generic_map_legend.py new file mode 100644 index 00000000..32711a0a --- /dev/null +++ b/bgcval2/bgcvaltools/generic_map_legend.py @@ -0,0 +1,247 @@ +#!/usr/bin/ipython +# +# Copyright 2024, Plymouth Marine Laboratory +# +# This file is part of the bgc-val library. +# +# bgc-val is free software: you can redistribute it and/or modify it +# under the terms of the Revised Berkeley Software Distribution (BSD) 3-clause license. + +# bgc-val is distributed in the hope that it will be useful, but +# without any warranty; without even the implied warranty of merchantability +# or fitness for a particular purpose. See the revised BSD license for more details. +# You should have received a copy of the revised BSD license along with bgc-val. +# If not, see . +# +# Address: +# Plymouth Marine Laboratory +# Prospect Place, The Hoe +# Plymouth, PL1 3DH, UK +# +# Email: +# ledm@pml.ac.uk +# +""" +.. module:: generic_map_legend + :platform: Unix + :synopsis: Tool to make a plot showing a regions. +.. moduleauthor:: Lee de Mora +.. active:: No +""" + +# implement correct import of params if module in use +# from ..Paths.paths import orcaGridfn, WOAFolder_annual +import matplotlib +matplotlib.use('Agg') +import os +from netCDF4 import Dataset +import numpy as np +from bgcval2.bgcvaltools import bv2tools as bvt +from bgcval2.bgcvaltools.pftnames import getLongName +from bgcval2.bgcvaltools.makeMask import makeMask +from matplotlib import pyplot +import cartopy +import cartopy.crs as ccrs +from cartopy import img_transform, feature as cfeature +from bgcval2._runtime_config import get_run_configuration +from bgcval2.Paths.paths import paths_setter + + + + +# Functions# +# Make a single plot for each region. +# one pane for global map centered on the middle of the region. +# One pane zoomed in on center of region +# One pane global map. + + +def plot_globe(ax): + pyplot.sca(ax) + + # if quick: + ax.add_feature(cfeature.OCEAN, zorder=0) + ax.add_feature(cfeature.LAND, zorder=0, edgecolor='black') + # else: + # nc = Dataset(bathy_fn, 'r') + # lats = nc.variables['lat'][::binning] + # lons = nc.variables['lon'][::binning] + + # data = nc.variables['elevation'][::binning, ::binning] + # nc.close() + + # data = np.ma.masked_where(data>0., data) + + # pyplot.pcolormesh( + # lons, + # lats, + # data, + # #transform=proj, + # transform=ccrs.PlateCarree(), + # cmap=cmap, + # vmin=vmin, vmax=vmax, + # ) + # ax.coastlines() + # ax.add_feature(cfeature.LAND, edgecolor='black', facecolor=land_color, linewidth=0.5, zorder=9) + + ax.set_global() + ax.gridlines() + return ax + + +def plot_platcarre(ax): + pyplot.sca(ax) + + # if quick: + ax.add_feature(cfeature.OCEAN, zorder=0) + # else: + # nc = Dataset(bathy_fn, 'r') + # lats = nc.variables['lat'][::binning] + # lons = nc.variables['lon'][::binning] + + # data = nc.variables['elevation'][::binning, ::binning] + # nc.close() + + # data = np.ma.masked_where(data>0., data) + + # pyplot.pcolormesh( + # lons, + # lats, + # data, + # #transform=proj, + # transform=ccrs.PlateCarree(), + # cmap=cmap, + # vmin=vmin, vmax=vmax, + # ) + # ax.coastlines() + # ax.add_feature(cfeature.LAND, edgecolor='black', facecolor=land_color, linewidth=0.5, zorder=9) + + ax.set_global() + ax.gridlines() + return ax + + +def add_region(fig, ax, lons, lats, data): + #im = ax.scatter(lons, lats, c=data) + pyplot.sca(ax) + #im = ax.contourf(lons, lats, data, zorder=1000) + im = ax.pcolormesh(lons, lats, data, zorder=1, transform=ccrs.PlateCarree(),) + + #pyplot.colorbar() + + ax.add_feature(cfeature.LAND, zorder=10, edgecolor='black') + return fig, ax, im + + +def make_figure(region): + fig_fn = bvt.folder('images/regions')+region+'.png' + if os.path.exists(fig_fn): return + + fig = pyplot.figure() + + paths_dict, config_user = get_run_configuration("defaults") + # filter paths dict into an object that's usable below + paths = paths_setter(paths_dict) + #ncfn = paths.orcaGridfn + ncfn = 'mesh_mask_eORCA1_wrk.nc' + + nc = Dataset(ncfn, 'r') + print(ncfn) + + dat = nc.variables['mbathy'][:].squeeze() + lats = nc.variables['nav_lat'][:].squeeze() + lons = nc.variables['nav_lon'][:].squeeze() + lons = bvt.makeLonSafeArr(lons) + + old_mask = np.ma.masked_where(dat.mask + dat ==0, dat).mask + + xd = np.ma.masked_where(old_mask, dat).flatten() + xt = np.ones_like(xd) + xz = xt + xy = np.ma.masked_where(old_mask, lats).flatten() + xx = np.ma.masked_where(old_mask, lons).flatten() + old_mask_flat = old_mask.flatten() + + region_mask = makeMask('bathy', region, xt, xz, xy, xx, xd, debug=True) + #print('done makeMask') + #assert 0 + new_dat = np.ma.masked_where(region_mask + old_mask_flat, xd) + new_lon = np.ma.masked_where(region_mask+ old_mask_flat, xx) + new_lat = np.ma.masked_where(region_mask+ old_mask_flat, xy) + + new_dat = new_dat.reshape(dat.shape) + #new_lat = lats # new_lat.reshape(lats.shape) + #new_lon = lons # new_lon.reshape(lons.shape) + + + fig.set_size_inches(12, 8) + widths = [1, 1, 1] + heights = [1, 1.75] + spec2 = matplotlib.gridspec.GridSpec( + ncols=len(widths), + nrows=len(heights), + figure=fig, + width_ratios=widths, + height_ratios=heights, + hspace=0.30, + wspace=0.30,) + + print('lats:', new_lat.mean(), 'lon:', new_lon.mean(), 'data:', new_dat.min(), new_dat.max()) + + ortho_pro=ccrs.Orthographic(new_lon.mean(), new_lat.mean(),) + ax_globe = fig.add_subplot(spec2[0, 0], projection=ortho_pro) + ax_globe = plot_globe(ax_globe) + fig, ax_globe, im = add_region(fig, ax_globe, lons, lats, new_dat) + + ortho_pro=ccrs.Orthographic(new_lon.mean()+120., new_lat.mean(),) + ax_globe1 = fig.add_subplot(spec2[0, 1], projection=ortho_pro) + ax_globe1 = plot_globe(ax_globe1) + fig, ax_globe1, im1 = add_region(fig, ax_globe1, lons, lats, new_dat) + + + ortho_pro=ccrs.Orthographic(new_lon.mean()-120., new_lat.mean(),) + ax_globe2 = fig.add_subplot(spec2[0, 2], projection=ortho_pro) + ax_globe2 = plot_globe(ax_globe2) + fig, ax_globe2, im2 = add_region(fig, ax_globe2, lons, lats, new_dat) + + pc_proj=cartopy.crs.PlateCarree(central_longitude=new_lon.mean()) + ax_pc = fig.add_subplot(spec2[1, :], projection=pc_proj) + ax_pc = plot_platcarre(ax_pc) + fig, ax_pc, im3 = add_region(fig, ax_pc, lons, lats, new_dat) + #cbar = pyplot.colorbar(ax=ax_pc, cax=im3) + + pyplot.suptitle(region+': '+getLongName(region)) + print('saving:', fig_fn) + pyplot.savefig(fig_fn,dpi=300.) + #pyplot.savefig(fig_fn.replace('.png', '_trans.png'), transparent=True) + pyplot.close() + + +def main(): + regions = [ + 'Ascension', + 'ITCZ', + 'TristandaCunha', + 'Pitcairn', + 'Cornwall', + 'SubtropicNorthAtlantic', + 'SPNA', + 'STNA', + 'SouthernOcean', + 'ArcticOcean', + 'Equator10', + 'NorthPacificOcean', + 'SouthPacificOcean', + 'NorthAtlanticOcean', + 'SouthAtlanticOcean', + 'GINseas', + 'LabradorSea', + 'EquatorialAtlanticOcean', + 'Global', + 'ignoreInlandSeas', + ] + for region in regions[:]: + make_figure(region) + +if __name__ == "__main__": + main() diff --git a/bgcval2/bgcvaltools/makeMask.py b/bgcval2/bgcvaltools/makeMask.py index f3e5f1e2..a0b78929 100644 --- a/bgcval2/bgcvaltools/makeMask.py +++ b/bgcval2/bgcvaltools/makeMask.py @@ -216,20 +216,20 @@ def makeMask(name, newSlice, xt, xz, xy, xx, xd, debug=False): if newSlice == 'ignoreExtraArtics': return np.ma.masked_outside(xy, -50., 50.).mask if newSlice == 'NorthAtlanticOcean': - return np.ma.masked_outside(bvt.makeLonSafeArr(xx), -80., + print('NorthAtlanticOcean - pre') + #xx = bvt.makeLonSafeArr(xx) + print('NorthAtlanticOcean', len(xx)) + return np.ma.masked_outside(xx, -80., 0.).mask + np.ma.masked_outside( xy, 10., 60.).mask if newSlice == 'SouthAtlanticOcean': - return np.ma.masked_outside(bvt.makeLonSafeArr(xx), -65., - 20.).mask + np.ma.masked_outside( + return np.ma.masked_outside(xx, -65., 20.).mask + np.ma.masked_outside( xy, -50., -10.).mask if newSlice == 'EquatorialAtlanticOcean': - return np.ma.masked_outside(bvt.makeLonSafeArr(xx), -65., - 20.).mask + np.ma.masked_outside( + return np.ma.masked_outside(xx, -65., 20.).mask + np.ma.masked_outside( xy, -15., 15.).mask if newSlice == 'ITCZ': #Inter‐Tropical Convergence Zone (johns 2020 Sargassum) in the region 0-15N, 15-55W - return np.ma.masked_outside(bvt.makeLonSafeArr(xx), -55., - 15.).mask + np.ma.masked_outside( + return np.ma.masked_outside(xx, -55., 15.).mask + np.ma.masked_outside( xy, 0., 15.).mask if newSlice == 'ArcticOcean': @@ -247,7 +247,7 @@ def makeMask(name, newSlice, xt, xz, xy, xx, xd, debug=False): return mx if newSlice in ['SubtropicNorthAtlantic', 'STNA']: - mx = np.ma.masked_outside(xx, -90., -10.).mask + np.ma.masked_outside( + mx = np.ma.masked_outside(xx, -80., -10.).mask + np.ma.masked_outside( xy, 10., 40.).mask # mx *= np.ma.masked_outside(xx, -45., 15.).mask + np.ma.masked_outside( # xy, 60., 80.).mask @@ -310,7 +310,7 @@ def makeMask(name, newSlice, xt, xz, xy, xx, xd, debug=False): if newSlice == 'Pitcairn': # MPA covers several islands. This is very approximate # Ducie Island: 24.66 S 124.75 W (Eastern most) # Oeno island: 23.9 S 130.74 W (western most) (Western boundary is not the full EEZ) - mx = np.ma.masked_outside(xx, -130.74 - 1.5, 124.75 + 3.).mask # longitude # West + mx = np.ma.masked_outside(xx, -130.74 - 1.5, -124.75 + 3.).mask # longitude # West mx += np.ma.masked_outside(xy, -24.66 -3, -23.9 + 3.).mask # Lattitue # South return mx diff --git a/bgcval2/bgcvaltools/removeMaskFromshelve.py b/bgcval2/bgcvaltools/removeMaskFromshelve.py index d41bc55e..31728188 100644 --- a/bgcval2/bgcvaltools/removeMaskFromshelve.py +++ b/bgcval2/bgcvaltools/removeMaskFromshelve.py @@ -53,10 +53,32 @@ def removeFromShelves(fn, removeRegions): # sh.close() -removeRegions = [ - 'Remainder', -] #'ignoreInlandSeas', -for fn in glob('shelves/timeseries/u-ab749/u-ab749_*'): - if fn.find('insitu') > -1: continue - removeFromShelves(fn, removeRegions) +def main(): + + + # get runtime configuration + if config_user: + paths_dict, config_user = get_run_configuration(config_user) + else: + paths_dict, config_user = get_run_configuration("defaults") + + # filter paths dict into an object that's usable below + paths = paths_setter(paths_dict) + + removeRegions = [ + # 'Remainder', + 'STNA', 'SubtropicNorthAtlantic', + 'Pitcairn', + ] #'ignoreInlandSeas', + + shelvedir = bvt.folder([paths.shelvedir, "timeseries", jobID]) + + jobIDs = ['u-ab749', ] + for jobID in jobIDS: + for fn in glob(shelvedir+'/*'): + if fn.find('insitu') > -1: continue + removeFromShelves(fn, removeRegions) + +if __name__ == "__main__": + main() From 0f6a5a05c1f6096879b7d9de9cd8fbbe02962177 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Fri, 7 Jun 2024 15:19:37 +0100 Subject: [PATCH 15/29] debug --- bgcval2/bgcvaltools/removeMaskFromshelve.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bgcval2/bgcvaltools/removeMaskFromshelve.py b/bgcval2/bgcvaltools/removeMaskFromshelve.py index 31728188..a4af72eb 100644 --- a/bgcval2/bgcvaltools/removeMaskFromshelve.py +++ b/bgcval2/bgcvaltools/removeMaskFromshelve.py @@ -34,6 +34,8 @@ from shelve import open as shOpen from glob import glob +from bgcval2._runtime_config import get_run_configuration + def removeFromShelves(fn, removeRegions): print('removing:', removeRegions, 'from', fn) @@ -54,8 +56,7 @@ def removeFromShelves(fn, removeRegions): -def main(): - +def main(config_user=None): # get runtime configuration if config_user: From 2cfa2f7cb3246c7c1be8d540e02eccb1fd4de667 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Mon, 10 Jun 2024 14:17:42 +0100 Subject: [PATCH 16/29] Created Total Ice Area field --- key_files/totalicearea.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 key_files/totalicearea.yml diff --git a/key_files/totalicearea.yml b/key_files/totalicearea.yml new file mode 100644 index 00000000..80822272 --- /dev/null +++ b/key_files/totalicearea.yml @@ -0,0 +1,16 @@ +--- +# TotalIceExtent +name : TotalIceArea +units : 1E6 km^2 +dimensions : 1 +model : CICE +modelFiles : $BASEDIR_MODEL/$JOBID/nemo*$JOBIDo_1y_*_grid-T.nc +model_vars : soicecov +model_convert: + path: bgcval2/functions/ice.py + function: calculate_ice_area + areafile : $PATHS_GRIDFILE + #minIce: 0.15 + region: global +layers : layerless +regions : regionless From 318b8301b99bbaadcc75d0ef52f0392a43ac1deb Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Mon, 10 Jun 2024 14:19:11 +0100 Subject: [PATCH 17/29] Added NH and SH ice area --- key_files/northerntotalicearea.yml | 15 +++++++++++++++ key_files/southerntotalicearea.yml | 14 ++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 key_files/northerntotalicearea.yml create mode 100644 key_files/southerntotalicearea.yml diff --git a/key_files/northerntotalicearea.yml b/key_files/northerntotalicearea.yml new file mode 100644 index 00000000..73c34484 --- /dev/null +++ b/key_files/northerntotalicearea.yml @@ -0,0 +1,15 @@ +--- +name : NorthernTotalIceArea +units : 1E6 km^2 +dimensions : 1 +model : CICE +modelFiles : $BASEDIR_MODEL/$JOBID/nemo*$JOBIDo_1y_*_grid-T.nc +model_vars : soicecov +model_convert: + path: bgcval2/functions/ice.py + function: calculate_ice_area + areafile : $PATHS_GRIDFILE + region: NorthernHemisphere +layers : layerless +regions : regionless + diff --git a/key_files/southerntotalicearea.yml b/key_files/southerntotalicearea.yml new file mode 100644 index 00000000..7fb34ca7 --- /dev/null +++ b/key_files/southerntotalicearea.yml @@ -0,0 +1,14 @@ +--- +name : SouthernTotalIceArea +units : 1E6 km^2 +dimensions : 1 +model : CICE +modelFiles : $BASEDIR_MODEL/$JOBID/nemo*$JOBIDo_1y_*_grid-T.nc +model_vars : soicecov +model_convert: + path: bgcval2/functions/ice.py + function: calculate_ice_area + areafile : $PATHS_GRIDFILE + region: SouthernHemisphere +layers : layerless +regions : regionless From 6615e5db42c469f97a3c6bd95b92bbe89ede7c93 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Thu, 13 Jun 2024 14:46:23 +0100 Subject: [PATCH 18/29] working on new fields and jobs --- bgcval2/bgcvaltools/removeMaskFromshelve.py | 25 +++++-- bgcval2/functions/ice.py | 41 +++++++++++ input_yml/TerraFIRMA_overshoot_runs.yml | 18 ++--- input_yml/TerraFIRMA_overshoot_stables.yml | 79 +-------------------- key_lists/debug.yml | 8 ++- key_lists/physics.yml | 9 +-- 6 files changed, 83 insertions(+), 97 deletions(-) diff --git a/bgcval2/bgcvaltools/removeMaskFromshelve.py b/bgcval2/bgcvaltools/removeMaskFromshelve.py index a4af72eb..51948656 100644 --- a/bgcval2/bgcvaltools/removeMaskFromshelve.py +++ b/bgcval2/bgcvaltools/removeMaskFromshelve.py @@ -35,6 +35,8 @@ from glob import glob from bgcval2._runtime_config import get_run_configuration +from bgcval2.Paths.paths import paths_setter +from bgcval2.bgcvaltools import bv2tools as bvt def removeFromShelves(fn, removeRegions): @@ -73,12 +75,27 @@ def main(config_user=None): 'Pitcairn', ] #'ignoreInlandSeas', - shelvedir = bvt.folder([paths.shelvedir, "timeseries", jobID]) - jobIDs = ['u-ab749', ] - for jobID in jobIDS: - for fn in glob(shelvedir+'/*'): + jobIDs = [ + 'u-cs495', 'u-cs568', 'u-cy623', 'u-da914', 'u-da916', + 'u-da917', 'u-cy690', 'u-cy691', 'u-cy692', 'u-cy693', + 'u-cz152', 'u-cz014', 'u-cx209', 'u-cw988', 'u-cw989', + 'u-cw990', 'u-cz826', 'u-cy837', 'u-cy838', 'u-cz374', + 'u-cz375', 'u-cz376', 'u-cz377', 'u-cz378', 'u-cz834', + 'u-cz855', 'u-cz859', 'u-db587', 'u-db723', 'u-db731', + 'u-da087', 'u-da266', 'u-db597', 'u-db733', 'u-dc324', + 'u-cz944', 'u-da800', 'u-da697', 'u-da892', 'u-db223', + 'u-df453', 'u-dc251', 'u-dc051', 'u-dc052', 'u-dc248', + 'u-dc249', 'u-db956', 'u-dc565', 'u-dd210', 'u-dc032', + 'u-df028', 'u-dc123', 'u-dc130', 'u-df025', 'u-df027', + 'u-df021', 'u-df023', 'u-de943', 'u-de962', 'u-de963', + 'u-dc163', 'u-df028', ] + for jobID in jobIDs: + shelvedir = bvt.folder([paths.shelvedir, "timeseries", jobID]) + + for fn in glob(shelvedir+'/*shelve.dir'): if fn.find('insitu') > -1: continue + fn = fn[:-4] removeFromShelves(fn, removeRegions) if __name__ == "__main__": diff --git a/bgcval2/functions/ice.py b/bgcval2/functions/ice.py index e719d22b..be4fc432 100644 --- a/bgcval2/functions/ice.py +++ b/bgcval2/functions/ice.py @@ -94,3 +94,44 @@ def calculate_ice_extent(nc, keys, **kwargs): return masked_area.sum()/1.E12 + +def calculate_ice_area(nc, keys, **kwargs): + """ + Calculate the total ice area. + This is the total area of all sea ice. + + kwargs: + areafile: path to area file + maskname: name of the mask in the input file. (default is tmask) + #minIce: fraction of ice coverage, default is 15%. + region: global, North hemisphere or Southern Hemisphere. + """ + areafile = get_kwarg_file(kwargs, 'areafile') + + maskname = kwargs.get('maskname', 'tmask') + if 'area' not in nc.variables and not loaded_area_and_mask: + area, tmask, lat = load_area_and_mask(areafile, maskname) + else: + area = nc.variables['area'][:] + lat = nc.variables['nav_lat'][:] + tmask = nc.variables[keys[0]][:].squeeze().mask + ice_fraction = nc.variables[keys[0]][:].squeeze() + + if ice_fraction.max() > 1. or ice_fraction.min() < 0. : + raise ValueError('Ice coverage fraction incorrect range. Are you using the correct variable?') + + region = kwargs.get('region', 'Global') + region = region.lower().replace('-', '').replace(' ', '').replace('_', '') + + # create mask of ice values: + masked_area = np.ma.masked_where(tmask, ice_fraction * area) + + if region in ['n', 'north', 'northern', 'northhemisphere', 'northernhemisphere']: + masked_area = np.ma.masked_where(masked_area.mask + (lat<0.), masked_area) + + if region in ['s', 'south', 'southern', 'southhemisphere', 'southernhemisphere']: + masked_area = np.ma.masked_where(masked_area.mask + (lat>0.), masked_area) + + return masked_area.sum()/1.E12 + + diff --git a/input_yml/TerraFIRMA_overshoot_runs.yml b/input_yml/TerraFIRMA_overshoot_runs.yml index 65332051..80cbeb40 100644 --- a/input_yml/TerraFIRMA_overshoot_runs.yml +++ b/input_yml/TerraFIRMA_overshoot_runs.yml @@ -74,15 +74,15 @@ jobs: #timerange: [1800, 2050] suite: *keylists - u-cz826: - description: 'like cx209 but static ice sheet geometry 8GtC/yr #5' - label: None #'Ramp-up #5' - colour: 'black' - thickness: 1.2 - linestyle: '-' - shifttime: 0. - #timerange: [1800, 2050] - suite: *keylists +# u-cz826: +# description: 'like cx209 but static ice sheet geometry 8GtC/yr #5' +# label: None #'Ramp-up #5' +# colour: 'black' +# thickness: 1.2 +# linestyle: '-' +# shifttime: 0. +# #timerange: [1800, 2050] +# suite: *keylists # 1.5k Stabilisation u-cy837: diff --git a/input_yml/TerraFIRMA_overshoot_stables.yml b/input_yml/TerraFIRMA_overshoot_stables.yml index 8d1f2590..fe9fc8ba 100644 --- a/input_yml/TerraFIRMA_overshoot_stables.yml +++ b/input_yml/TerraFIRMA_overshoot_stables.yml @@ -1,81 +1,4 @@ ---- -# GC5 N96 ORCA1 spinup analysis -name: TerraFIRMA_overshoot_stables - -# Run the single job analysis -do_analysis_timeseries: True - -# Download from mass: -do_mass_download: False - -# master analysis suite -master_suites: &keylists physics bgc kmf tfamoc #alkalinity physics - - -# Run without strick check (if True, breaks if job has no years.) -strict_file_check: False - -# Output the figures as csv json files. -savejson: True - -clean: True - - - -jobs: - # PI CONTROL - u-cs495: - description: 'PI-Control' - label: 'PIcontrol' - colour: 'blue' - thickness: 1.2 - linestyle: '-' - shifttime: -2094 - timerange: [-50., 400.] - suite: *keylists - - # # ramp ups - # u-cx209: - # description: 'E-mode free ice RAMP UP 8GtC/yr #1' - # label: 'Ramp-up #1' - # colour: 'black' - # thickness: 1.2 - # linestyle: '-' - # shifttime: 0. - # #timerange: [1800, 2050] - # suite: *keylists - - # u-cw988: - # description: 'E-mode free ice RAMP UP 8GtC/yr #2' - # label: 'Ramp-up #2' - # colour: 'black' - # thickness: 1.2 - # linestyle: '-' - # shifttime: 0. - # #timerange: [1800, 2050] - # suite: *keylists - - # u-cw989: - # description: 'E-mode free ice RAMP UP 8GtC/yr #3' - # label: 'Ramp-up #3' - # colour: 'black' - # thickness: 1.2 - # linestyle: '-' - # shifttime: 0. - # #timerange: [1800, 2050] - # suite: *keylists - - # u-cw990: - # description: 'E-mode free ice RAMP UP 8GtC/yr #4' - # label: 'Ramp-up #4' - # colour: 'black' - # thickness: 1.2 - # linestyle: '-' - # shifttime: 0. - # #timerange: [1800, 2050] - # suite: *keylists - - # u-cz826: +u-cz826: # description: 'like cx209 but static ice sheet geometry 8GtC/yr #5' # label: 'Ramp-up #5' # colour: 'black' diff --git a/key_lists/debug.yml b/key_lists/debug.yml index 0843ddb1..e8c9dfbf 100644 --- a/key_lists/debug.yml +++ b/key_lists/debug.yml @@ -9,8 +9,12 @@ keys: # DrakePassageTransport: True # AMOC_26N: True # GlobalMeanTemperature: True - AtlanticSubtropicSalinity: True - MLD: True +# pH: True + TotalIceArea: True + NorthernTotalIceArea: True + SouthernTotalIceArea: True +# AtlanticSubtropicSalinity: True +# MLD: True # Temperature: True # Iron: True # GlobalMeanSalinity: True diff --git a/key_lists/physics.yml b/key_lists/physics.yml index a142d1bb..c0f07879 100644 --- a/key_lists/physics.yml +++ b/key_lists/physics.yml @@ -26,10 +26,11 @@ keys: # MinMonthlyMLD: True # MLD Monthly min # Ice keys: - # TotalIceArea: True # work in progress - # NorthernTotalIceArea: True # work in progress - # SouthernTotalIceArea: True # work in progress - # WeddelTotalIceArea: True + TotalIceArea: True # work in progress + NorthernTotalIceArea: True # work in progress + SouthernTotalIceArea: True # work in progress + + #WeddelTotalIceArea: True TotalIceExtent: True # work in progress NorthernTotalIceExtent: True # work in progress SouthernTotalIceExtent: True # work in progress From 71f4a50fc1df63df9d8c5e02a217c29548abfb38 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Thu, 13 Jun 2024 14:47:19 +0100 Subject: [PATCH 19/29] added map legend stuff --- bgcval2/bgcvaltools/generic_map_legend.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bgcval2/bgcvaltools/generic_map_legend.py b/bgcval2/bgcvaltools/generic_map_legend.py index 32711a0a..38939f01 100644 --- a/bgcval2/bgcvaltools/generic_map_legend.py +++ b/bgcval2/bgcvaltools/generic_map_legend.py @@ -135,7 +135,7 @@ def add_region(fig, ax, lons, lats, data): def make_figure(region): fig_fn = bvt.folder('images/regions')+region+'.png' - if os.path.exists(fig_fn): return + #if os.path.exists(fig_fn): return fig = pyplot.figure() @@ -213,7 +213,7 @@ def make_figure(region): pyplot.suptitle(region+': '+getLongName(region)) print('saving:', fig_fn) pyplot.savefig(fig_fn,dpi=300.) - #pyplot.savefig(fig_fn.replace('.png', '_trans.png'), transparent=True) + pyplot.savefig(fig_fn.replace('.png', '_trans.png'), transparent=True) pyplot.close() From 4a3faff0a1b8e7dc45e9bfd2debeb38ccd90691e Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Thu, 13 Jun 2024 15:05:13 +0100 Subject: [PATCH 20/29] Added several new physics metrics --- bgcval2/bgcvaltools/pftnames.py | 6 ++++++ key_files/evs.yml | 22 ++++++++++++++++++++++ key_files/precip.yml | 22 ++++++++++++++++++++++ key_files/sowflisf.yml | 22 ++++++++++++++++++++++ key_files/sowindsp.yml | 22 ++++++++++++++++++++++ key_files/zos.yml | 22 ++++++++++++++++++++++ key_lists/debug.yml | 7 +++++++ 7 files changed, 123 insertions(+) create mode 100644 key_files/evs.yml create mode 100644 key_files/precip.yml create mode 100644 key_files/sowflisf.yml create mode 100644 key_files/sowindsp.yml create mode 100644 key_files/zos.yml diff --git a/bgcval2/bgcvaltools/pftnames.py b/bgcval2/bgcvaltools/pftnames.py index fb37e422..b295b4aa 100644 --- a/bgcval2/bgcvaltools/pftnames.py +++ b/bgcval2/bgcvaltools/pftnames.py @@ -328,6 +328,12 @@ def makeLongNameDict(): lnd['WeddelIceExent'] = 'Weddel Sea Ice Extent' lnd['TotalIceExtent'] = 'Total Ice Extent' + lnd['ZOS'] = 'Sea Surface Height' + lnd['EVS'] = 'Water Evaporation flux ' + lnd['Precip'] = 'Precipitation' + lnd['sowindsp'] = 'Surface wind speed' + lnd['sowlisf'] = 'Ice Shelf Melting' + lnd['AMM'] = 'Atlantic Margins' lnd['AMM_Shelf'] = 'Atlantic Margins Shelf' lnd['AMM_OffShelf'] = 'Atlantic Margins Off Shelf' diff --git a/key_files/evs.yml b/key_files/evs.yml new file mode 100644 index 00000000..be09b221 --- /dev/null +++ b/key_files/evs.yml @@ -0,0 +1,22 @@ +--- +name : EVS +units : kg/m2/s +dimensions : 3 +model : NEMO +datasource : WOA +# The filenames +modelFiles : $BASEDIR_MODEL/$JOBID/nemo_$JOBIDo_1y_*_grid-T.nc +modelFile_p2p : $BASEDIR_MODEL/$JOBID/nemo*$JOBIDo_1y_*$YEAR????_grid-T.nc +gridFile : $PATHS_GRIDFILE + +# Model coordinates/dimension names +model_vars : evs +model_convert : choose_best_var + +layers : layerless +regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthPacificOcean SouthPacificOcean NorthAtlanticOcean SouthAtlanticOcean SPNA +smoothings : DataOnly 5and30 + + + + diff --git a/key_files/precip.yml b/key_files/precip.yml new file mode 100644 index 00000000..91fe45a2 --- /dev/null +++ b/key_files/precip.yml @@ -0,0 +1,22 @@ +--- +name : Precip +units : kg/m2/s +dimensions : 3 +model : NEMO +datasource : WOA +# The filenames +modelFiles : $BASEDIR_MODEL/$JOBID/nemo_$JOBIDo_1y_*_grid-T.nc +modelFile_p2p : $BASEDIR_MODEL/$JOBID/nemo*$JOBIDo_1y_*$YEAR????_grid-T.nc +gridFile : $PATHS_GRIDFILE + +# Model coordinates/dimension names +model_vars : pr prsn +model_convert : sum + +layers : layerless +regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthPacificOcean SouthPacificOcean NorthAtlanticOcean SouthAtlanticOcean SPNA +smoothings : DataOnly 5and30 + + + + diff --git a/key_files/sowflisf.yml b/key_files/sowflisf.yml new file mode 100644 index 00000000..a6b025af --- /dev/null +++ b/key_files/sowflisf.yml @@ -0,0 +1,22 @@ +--- +name : iceshelfmelting +units : kg/m2/s +dimensions : 3 +model : NEMO +datasource : WOA +# The filenames +modelFiles : $BASEDIR_MODEL/$JOBID/nemo_$JOBIDo_1y_*_isf-T.nc +modelFile_p2p : $BASEDIR_MODEL/$JOBID/nemo*$JOBIDo_1y_*$YEAR????_isf-T.nc +gridFile : $PATHS_GRIDFILE + +# Model coordinates/dimension names +model_vars : sowflisf +model_convert : choose_best_var + +layers : layerless +regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthPacificOcean SouthPacificOcean NorthAtlanticOcean SouthAtlanticOcean SPNA +smoothings : DataOnly 5and30 + + + + diff --git a/key_files/sowindsp.yml b/key_files/sowindsp.yml new file mode 100644 index 00000000..edd4d40e --- /dev/null +++ b/key_files/sowindsp.yml @@ -0,0 +1,22 @@ +--- +name : Windspeed +units : m/s +dimensions : 3 +model : NEMO +datasource : WOA +# The filenames +modelFiles : $BASEDIR_MODEL/$JOBID/nemo_$JOBIDo_1y_*_grid-T.nc +modelFile_p2p : $BASEDIR_MODEL/$JOBID/nemo*$JOBIDo_1y_*$YEAR????_grid-T.nc +gridFile : $PATHS_GRIDFILE + +# Model coordinates/dimension names +model_vars : sowindsp +model_convert : choose_best_var + +layers : layerless +regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthPacificOcean SouthPacificOcean NorthAtlanticOcean SouthAtlanticOcean SPNA +smoothings : DataOnly 5and30 + + + + diff --git a/key_files/zos.yml b/key_files/zos.yml new file mode 100644 index 00000000..3bf33caf --- /dev/null +++ b/key_files/zos.yml @@ -0,0 +1,22 @@ +--- +name : ZOS +units : m +dimensions : 3 +model : NEMO +datasource : WOA +# The filenames +modelFiles : $BASEDIR_MODEL/$JOBID/nemo_$JOBIDo_1y_*_grid-T.nc +modelFile_p2p : $BASEDIR_MODEL/$JOBID/nemo*$JOBIDo_1y_*$YEAR????_grid-T.nc +gridFile : $PATHS_GRIDFILE + +# Model coordinates/dimension names +model_vars : zos +model_convert : choose_best_var + +layers : layerless +regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthPacificOcean SouthPacificOcean NorthAtlanticOcean SouthAtlanticOcean SPNA +smoothings : DataOnly 5and30 + + + + diff --git a/key_lists/debug.yml b/key_lists/debug.yml index e8c9dfbf..32cbbad9 100644 --- a/key_lists/debug.yml +++ b/key_lists/debug.yml @@ -13,6 +13,13 @@ keys: TotalIceArea: True NorthernTotalIceArea: True SouthernTotalIceArea: True + + ZOS: True + sowindsp: True + sowflisf: True + evs: True + precip: True + # AtlanticSubtropicSalinity: True # MLD: True # Temperature: True From 7554dc30663cdeaefd8a535f22d7493a15af3eb0 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Thu, 13 Jun 2024 15:45:57 +0100 Subject: [PATCH 21/29] Update physics.yml --- key_lists/physics.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/key_lists/physics.yml b/key_lists/physics.yml index c0f07879..a93f6d7a 100644 --- a/key_lists/physics.yml +++ b/key_lists/physics.yml @@ -52,6 +52,14 @@ keys: # MeridionalCurrent: True # Meridional Veloctity # VerticalCurrent: True # Vertical Veloctity + + ZOS: True # Sea Surface Height + sowindsp: True # Wind speed + sowflisf: True # Ice flux + evs: True # Evaporation + precip: True # Precipitation + + # Misc fluxes: # FreshwaterFlux: True # Freshwater flux # sowaflup: True # Net Upward Water Flux From 434cd8ee93eaa45d66b4b6c9b5f14d223cad63ba Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Fri, 14 Jun 2024 11:51:46 +0100 Subject: [PATCH 22/29] changed long names --- bgcval2/bgcvaltools/pftnames.py | 2 +- key_lists/debug.yml | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/bgcval2/bgcvaltools/pftnames.py b/bgcval2/bgcvaltools/pftnames.py index b295b4aa..20f49b17 100644 --- a/bgcval2/bgcvaltools/pftnames.py +++ b/bgcval2/bgcvaltools/pftnames.py @@ -332,7 +332,7 @@ def makeLongNameDict(): lnd['EVS'] = 'Water Evaporation flux ' lnd['Precip'] = 'Precipitation' lnd['sowindsp'] = 'Surface wind speed' - lnd['sowlisf'] = 'Ice Shelf Melting' + lnd['sowflisf'] = 'Ice Shelf Melting' lnd['AMM'] = 'Atlantic Margins' lnd['AMM_Shelf'] = 'Atlantic Margins Shelf' diff --git a/key_lists/debug.yml b/key_lists/debug.yml index 32cbbad9..fb459afc 100644 --- a/key_lists/debug.yml +++ b/key_lists/debug.yml @@ -10,14 +10,14 @@ keys: # AMOC_26N: True # GlobalMeanTemperature: True # pH: True - TotalIceArea: True - NorthernTotalIceArea: True - SouthernTotalIceArea: True +# TotalIceArea: True +# NorthernTotalIceArea: True +# SouthernTotalIceArea: True - ZOS: True - sowindsp: True - sowflisf: True - evs: True + #ZOS: True + #sowindsp: True + #sowflisf: True + #evs: True precip: True # AtlanticSubtropicSalinity: True From 904248cdbd3f84791e29336b50f2a9fa54240158 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Fri, 14 Jun 2024 12:49:44 +0100 Subject: [PATCH 23/29] working on fov analysis --- bgcval2/bgcvaltools/pftnames.py | 4 ++++ bgcval2/functions/circulation.py | 6 ++++++ key_files/fov.yml | 16 ++++++++++++++++ key_lists/debug.yml | 1 + 4 files changed, 27 insertions(+) create mode 100644 key_files/fov.yml diff --git a/bgcval2/bgcvaltools/pftnames.py b/bgcval2/bgcvaltools/pftnames.py index 20f49b17..72762ba2 100644 --- a/bgcval2/bgcvaltools/pftnames.py +++ b/bgcval2/bgcvaltools/pftnames.py @@ -333,6 +333,10 @@ def makeLongNameDict(): lnd['Precip'] = 'Precipitation' lnd['sowindsp'] = 'Surface wind speed' lnd['sowflisf'] = 'Ice Shelf Melting' + lnd['fov'] = 'AMOC Meridional freshwater transport' + lnd['fov_sa'] = 'AMOC Meridional freshwater transport (South Atlantic)' + lnd['fov_stna'] = 'AMOC Meridional freshwater transport (Subtropial North Atlantic)' + lnd['AMM'] = 'Atlantic Margins' lnd['AMM_Shelf'] = 'Atlantic Margins Shelf' diff --git a/bgcval2/functions/circulation.py b/bgcval2/functions/circulation.py index 94b6bf3e..92f7dd26 100644 --- a/bgcval2/functions/circulation.py +++ b/bgcval2/functions/circulation.py @@ -305,6 +305,12 @@ def AMOC26N(nc, keys, **kwargs): return atlmoc.max() +def fov_sa(nc, keys, **kwargs): + assert 0 + + return atlmoc.max() + + def AEU(nc, keys, **kwargs): """ diff --git a/key_files/fov.yml b/key_files/fov.yml new file mode 100644 index 00000000..d6ddcf8b --- /dev/null +++ b/key_files/fov.yml @@ -0,0 +1,16 @@ +--- +#Fov meridional transport of freshwater by the AMOC _ South Atlantic +name: Fov +units: # Sv +dimensions: 1 +model: NEMO +modelFiles: $BASEDIR_MODEL/$JOBID/nemo_$JOBIDo_1y_*_grid-V.nc +model_vars: # vo +model_convert: + path: bgcval2/functions/circulation.py + function: fov_sa + areafile: $PATHS_GRIDFILE + altmaskfile: $PATHS_BGCVAL2/bgcval2/data/basinlandmask_eORCA1.nc +layers: layerless +regions: regionless +smoothings: DataOnly both5 both30 movingav30years 5and30 30and100 diff --git a/key_lists/debug.yml b/key_lists/debug.yml index fb459afc..5797ab6b 100644 --- a/key_lists/debug.yml +++ b/key_lists/debug.yml @@ -19,6 +19,7 @@ keys: #sowflisf: True #evs: True precip: True + fov: True # AtlanticSubtropicSalinity: True # MLD: True From 29f7d940056737a96384157df804bf6003db4d73 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Fri, 14 Jun 2024 14:16:50 +0100 Subject: [PATCH 24/29] Added salt flux --- bgcval2/bgcvaltools/makeMask.py | 7 ++++ bgcval2/bgcvaltools/pftnames.py | 5 ++- bgcval2/functions/circulation.py | 63 +++++++++++++++++++++++++++++++- key_files/fov.yml | 2 +- key_lists/debug.yml | 5 ++- 5 files changed, 77 insertions(+), 5 deletions(-) diff --git a/bgcval2/bgcvaltools/makeMask.py b/bgcval2/bgcvaltools/makeMask.py index a0b78929..25c4642f 100644 --- a/bgcval2/bgcvaltools/makeMask.py +++ b/bgcval2/bgcvaltools/makeMask.py @@ -253,6 +253,13 @@ def makeMask(name, newSlice, xt, xz, xy, xx, xd, debug=False): # xy, 60., 80.).mask return mx + if newSlice in ['SubtropicSouthAtlantic', 'STSA']: + mx = np.ma.masked_outside(xx, -80., -10.).mask + np.ma.masked_outside( + xy, 10., 40.).mask +# mx *= np.ma.masked_outside(xx, -45., 15.).mask + np.ma.masked_outside( +# xy, 60., 80.).mask + return mx + if newSlice in ['SubpolarNorthAtlantic', 'SPNA',]: # Based on SPNA region here: https://www.nature.com/articles/s43247-021-00120-y#citeas diff --git a/bgcval2/bgcvaltools/pftnames.py b/bgcval2/bgcvaltools/pftnames.py index 72762ba2..bd233dd9 100644 --- a/bgcval2/bgcvaltools/pftnames.py +++ b/bgcval2/bgcvaltools/pftnames.py @@ -336,7 +336,7 @@ def makeLongNameDict(): lnd['fov'] = 'AMOC Meridional freshwater transport' lnd['fov_sa'] = 'AMOC Meridional freshwater transport (South Atlantic)' lnd['fov_stna'] = 'AMOC Meridional freshwater transport (Subtropial North Atlantic)' - + lnd['somesatr'] = 'Salt Transport in y-direction' lnd['AMM'] = 'Atlantic Margins' lnd['AMM_Shelf'] = 'Atlantic Margins Shelf' @@ -554,6 +554,9 @@ def makeLongNameDict(): lnd['NorthernSubpolarAtlantic'] = "Northern Subpolar Atlantic" lnd['SPNA'] = "Subpolar North Atlantic" lnd['STNA'] = "Subtropic North Atlantic" + + lnd['STSA'] = "Subtropic North Atlantic" + lnd['SubtropicSouthAtlantic'] = lnd['STSA'] lnd['GINseas'] = 'Greenland, Iceland, Norway seas' lnd['SubpolarNorthAtlantic'] = lnd['SPNA'] diff --git a/bgcval2/functions/circulation.py b/bgcval2/functions/circulation.py index 92f7dd26..0989f678 100644 --- a/bgcval2/functions/circulation.py +++ b/bgcval2/functions/circulation.py @@ -72,8 +72,10 @@ e1v_AMOC26N = 0 tmask_AMOC26N = 0 alttmask_AMOC26N = 0 +alttmask = 0 loadedArea = False loadedAltMask = False +loadedAltMask_full = False loaded_AEU = False def loadDataMask(gridfn, maskname, grid): @@ -157,6 +159,22 @@ def loadAtlanticMask(altmaskfile, maskname='tmaskatl', grid = 'eORCA1'): loadedAltMask = True +def loadAtlanticMask_full(altmaskfile, maskname='tmaskatl', grid = 'eORCA1'): + """ + Load the atlantic ocean mask. + """ + global alttmask + global loadedAltMask_full + if grid == 'eORCA1': + latslice26Nnm = eORCA1_latslice26Nnm + else: + raise ValueError("Grid not recognised in this calculation: %s", grid) + nc = dataset(altmaskfile, 'r') + alttmask = nc.variables[maskname][latslice26Nnm, :] + nc.close() + loadedAltMask_full = True + + def find_keys_in_nc(nc, keys): """ Find some keys in a netcdf. @@ -306,9 +324,52 @@ def AMOC26N(nc, keys, **kwargs): def fov_sa(nc, keys, **kwargs): + # Fov/Mov defined in Jackson 2023 as: + # We also use diagnostics of the overturning component of the Atlantic freshwater transport (Fov). + # This is calculated as "equation", where + # vbar is the zonal mean of the meridional velocity, + # sbar is the zonal mean of the salinity, + # and S0 is a reference salinity, 35PSU (Rahmstorf, 1996; Hawkins et al., 2011; Weaver et al., 2012). + # This is calculated with monthly mean velocity and salinity fields, + # which ignores the impacts of the higher-frequency covariances of v and S; + # however, previous studies have found these to be small (Mecking et al., 2016; Jackson and Wood, 2018a). + # We use a reference salinity of 35 PSU, except in the case of CESM2, + # for which a reference salinity of 34.7 PSU is used, + # although the implied difference in transports from these different reference salinities + # is again very small (Mecking et al., 2017)." + # https://gmd.copernicus.org/articles/16/1975/2023/ + + # Grid? + grid = kwargs.get('grid', 'eORCA1') + + # Reference salinity, S0 + sal_ref = kwargs.get('sal_ref', 35.) + + # Load Atlantic Mask + if not loadedAltMask_full: + loadAtlanticMask_full(altmaskfile, maskname='tmaskatl', grid=grid) + + # Load and mask vo + vo = np.ma.array(nc.variables[keys[0]][:]) # #vo in m/s + vo = np.ma.masekd_where(vo.mask + alttmask, vo) # shape alignment? assert 0 - return atlmoc.max() + # Take the zonal mean of the salinity in the Atlantic then subtract 35. + vobar = + # Take the zonal mean of the meridional velocity + + # Multiply these two terms together + + # Integrate along the meridional direction from 30 S to 34 S. * + #Integrate along the vertical direction from surface to sea floor. + #Multiply by -1/35 + #*This range is given in the paragraph of this paper that starts "There are various factors which could contribute to whether a model has a bistable AMOC." We could also do a second version for the subtropical North Atlantic, which we previously defined as 10N-40N. + + # apply Atlantic mas# + + vbar = + + return diff --git a/key_files/fov.yml b/key_files/fov.yml index d6ddcf8b..1016f6dc 100644 --- a/key_files/fov.yml +++ b/key_files/fov.yml @@ -5,7 +5,7 @@ units: # Sv dimensions: 1 model: NEMO modelFiles: $BASEDIR_MODEL/$JOBID/nemo_$JOBIDo_1y_*_grid-V.nc -model_vars: # vo +model_vars: vo model_convert: path: bgcval2/functions/circulation.py function: fov_sa diff --git a/key_lists/debug.yml b/key_lists/debug.yml index 5797ab6b..aef45573 100644 --- a/key_lists/debug.yml +++ b/key_lists/debug.yml @@ -18,8 +18,9 @@ keys: #sowindsp: True #sowflisf: True #evs: True - precip: True - fov: True + #precip: True + #fov: True + somesatr: True # AtlanticSubtropicSalinity: True # MLD: True From 274061f6f5144e43d33dd561b9d0935d41c5cc2c Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Fri, 14 Jun 2024 14:19:06 +0100 Subject: [PATCH 25/29] Added new file for salt flux. --- key_files/somesatr.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 key_files/somesatr.yml diff --git a/key_files/somesatr.yml b/key_files/somesatr.yml new file mode 100644 index 00000000..e616fdff --- /dev/null +++ b/key_files/somesatr.yml @@ -0,0 +1,22 @@ +--- +name : somesatr #ocean_salt_y_transport +units : 1e-3*kg/s +dimensions : 3 +model : NEMO + +# The filenames +modelFiles : $BASEDIR_MODEL/$JOBID/nemo_$JOBIDo_1y_*_grid-V.nc +modelFile_p2p : $BASEDIR_MODEL/$JOBID/nemo*$JOBIDo_1y_*$YEAR????_grid-T.nc +gridFile : $PATHS_GRIDFILE + +# Model coordinates/dimension names +model_vars : somesatr +model_convert : choose_best_var + +layers : layerless +regions : Global ignoreInlandSeas SouthernOcean ArcticOcean Equator10 NorthPacificOcean SouthPacificOcean NorthAtlanticOcean SouthAtlanticOcean SPNA STSA +smoothings : DataOnly 5and30 + + + + From 55fa05eb28588b6f46f473b3c53c871c940b8020 Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Mon, 17 Jun 2024 10:14:12 +0100 Subject: [PATCH 26/29] work in progress --- bgcval2/functions/circulation.py | 4 ++-- key_lists/physics.yml | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/bgcval2/functions/circulation.py b/bgcval2/functions/circulation.py index 0989f678..a13fbbb8 100644 --- a/bgcval2/functions/circulation.py +++ b/bgcval2/functions/circulation.py @@ -355,7 +355,7 @@ def fov_sa(nc, keys, **kwargs): assert 0 # Take the zonal mean of the salinity in the Atlantic then subtract 35. - vobar = + #vobar = # Take the zonal mean of the meridional velocity # Multiply these two terms together @@ -367,7 +367,7 @@ def fov_sa(nc, keys, **kwargs): # apply Atlantic mas# - vbar = + #vbar = return diff --git a/key_lists/physics.yml b/key_lists/physics.yml index a93f6d7a..e1758412 100644 --- a/key_lists/physics.yml +++ b/key_lists/physics.yml @@ -53,6 +53,8 @@ keys: # VerticalCurrent: True # Vertical Veloctity + somesatr: True # salt flow + ZOS: True # Sea Surface Height sowindsp: True # Wind speed sowflisf: True # Ice flux From aa6124960a65af18c1a6cac99b33fa2f7efd003f Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Mon, 17 Jun 2024 10:42:09 +0100 Subject: [PATCH 27/29] Create TerraFIRMA_ssp245_cmm.yml --- input_yml/TerraFIRMA_ssp245_cmm.yml | 116 ++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 input_yml/TerraFIRMA_ssp245_cmm.yml diff --git a/input_yml/TerraFIRMA_ssp245_cmm.yml b/input_yml/TerraFIRMA_ssp245_cmm.yml new file mode 100644 index 00000000..0b44e2b6 --- /dev/null +++ b/input_yml/TerraFIRMA_ssp245_cmm.yml @@ -0,0 +1,116 @@ +--- +# GC5 N96 ORCA1 spinup analysis +name: TerraFIRMA_SSP245_CMM + +# Run the single job analysis +do_analysis_timeseries: True + +# Download from mass: +do_mass_download: False + +# master analysis suite +master_suites: &keylists physics bgc kmf tfamoc #alkalinity physics + + +# Run without strick check (if True, breaks if job has no years.) +strict_file_check: False + +# Output the figures as csv json files. +savejson: True + +clean: True + + +jobs: + + + # PI CONTROL + u-cs495: + description: 'PI-Control' + label: 'PIcontrol' + colour: 'blue' + thickness: 1.2 + linestyle: '-' + shifttime: -300. + timerange: [2197, 2600] + suite: *keylists + + + # ramp up + u-cy623: + description: 'TF OS SSP245 cmm' + label: 'SSP2-4.5' + colour: 'red' + thickness: 1.2 + linestyle: '-' + shifttime: 0. + #timerange: [1800, 2050] + suite: *keylists + + # ramp up + u-da914: + description: 'TF OS SSP245 cmm- High freq nemo, no CFC/SF6 output' + label: 'SSP2-4.5' + colour: 'red' + thickness: 1.2 + linestyle: '-' + shifttime: 0. + #timerange: [1800, 2050] + suite: *keylists + + # ramp up + u-da916: + description: 'TF OS SSP245 cmm - High freq nemo, no CFC/SF6 output from 2030 onwards' + label: 'SSP2-4.5' + colour: 'red' + thickness: 1.2 + linestyle: '-' + shifttime: 0. + #timerange: [1800, 2050] + suite: *keylists + + # ramp up + u-da917: + description: 'TF OS SSP245 cmm - High freq nemo, no CFC/SF6 output from 2030 onwards' + label: 'SSP2-4.5' + colour: 'red' + thickness: 1.2 + linestyle: '-' + shifttime: 0. + #timerange: [1800, 2050] + suite: *keylists + + + # ramp up + u-dg308: + description: 'TF OS SSP245 cmm - High freq nemo, no CFC/SF6 output from 2030 onwards' + label: 'SSP2-4.5' + colour: 'red' + thickness: 1.2 + linestyle: '-' + shifttime: 0. + #timerange: [1800, 2050] + suite: *keylists + + # ramp up + u-dg508: + description: 'TF OS SSP245 cmm - High freq nemo, no CFC/SF6 output from 2030 onwards' + label: 'SSP2-4.5' + colour: 'red' + thickness: 1.2 + linestyle: '-' + shifttime: 0. + #timerange: [1800, 2050] + suite: *keylists + + # ramp up + u-dg509: + description: 'TF OS SSP245 cmm - High freq nemo, no CFC/SF6 output from 2030 onwards' + label: 'SSP2-4.5' + colour: 'red' + thickness: 1.2 + linestyle: '-' + shifttime: 0. + #timerange: [1800, 2050] + suite: *keylists + From 5f114e37c41bc6916f7ccad7de815ad8e100e05a Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Thu, 20 Jun 2024 14:58:22 +0100 Subject: [PATCH 28/29] work in progress --- input_yml/TerraFIRMA_overshoot_stables.yml | 25 +++++++- input_yml/TerraFIRMA_ssp245_cmm.yml | 67 +++++++++++++--------- 2 files changed, 64 insertions(+), 28 deletions(-) diff --git a/input_yml/TerraFIRMA_overshoot_stables.yml b/input_yml/TerraFIRMA_overshoot_stables.yml index fe9fc8ba..0952cdda 100644 --- a/input_yml/TerraFIRMA_overshoot_stables.yml +++ b/input_yml/TerraFIRMA_overshoot_stables.yml @@ -1,4 +1,27 @@ -u-cz826: +--- +name: TerraFIRMA_overshoot_stables + +# Run the single job analysis +do_analysis_timeseries: True + +# Download from mass: +do_mass_download: False + +# master analysis suite +master_suites: &keylists physics bgc kmf tfamoc #alkalinity physics + + +# Run without strick check (if True, breaks if job has no years.) +strict_file_check: False + +# Output the figures as csv json files. +savejson: True + +clean: True + +jobs: + +# u-cz826: # description: 'like cx209 but static ice sheet geometry 8GtC/yr #5' # label: 'Ramp-up #5' # colour: 'black' diff --git a/input_yml/TerraFIRMA_ssp245_cmm.yml b/input_yml/TerraFIRMA_ssp245_cmm.yml index 0b44e2b6..e9fb839c 100644 --- a/input_yml/TerraFIRMA_ssp245_cmm.yml +++ b/input_yml/TerraFIRMA_ssp245_cmm.yml @@ -32,25 +32,25 @@ jobs: thickness: 1.2 linestyle: '-' shifttime: -300. - timerange: [2197, 2600] + timerange: [1825, 2200] suite: *keylists - # ramp up + + u-cy623: - description: 'TF OS SSP245 cmm' - label: 'SSP2-4.5' - colour: 'red' + description: 'interactive ice, started from picontrol yr 2277' + label: 'Historical' + colour: 'maroon' thickness: 1.2 linestyle: '-' shifttime: 0. #timerange: [1800, 2050] suite: *keylists - # ramp up u-da914: - description: 'TF OS SSP245 cmm- High freq nemo, no CFC/SF6 output' - label: 'SSP2-4.5' + description: 'interactive ice, started from picontrol yr 2197' + label: None colour: 'red' thickness: 1.2 linestyle: '-' @@ -58,10 +58,10 @@ jobs: #timerange: [1800, 2050] suite: *keylists - # ramp up u-da916: - description: 'TF OS SSP245 cmm - High freq nemo, no CFC/SF6 output from 2030 onwards' - label: 'SSP2-4.5' + description: 'interactive ice, started from picontrol yr 2237' + label: None +# label: 'SSP2-4.5' colour: 'red' thickness: 1.2 linestyle: '-' @@ -69,10 +69,10 @@ jobs: #timerange: [1800, 2050] suite: *keylists - # ramp up u-da917: - description: 'TF OS SSP245 cmm - High freq nemo, no CFC/SF6 output from 2030 onwards' - label: 'SSP2-4.5' + description: 'interactive ice, started from picontrol yr 2317' + label: None +# label: 'SSP2-4.5' colour: 'red' thickness: 1.2 linestyle: '-' @@ -81,36 +81,49 @@ jobs: suite: *keylists - # ramp up u-dg308: - description: 'TF OS SSP245 cmm - High freq nemo, no CFC/SF6 output from 2030 onwards' + description: 'TF OS SSP245 cmm - High freq nemo, no CFC/SF6 output - ssp245 extension of u-da914' +# label: 'Extension' label: 'SSP2-4.5' - colour: 'red' + colour: 'purple' thickness: 1.2 linestyle: '-' shifttime: 0. #timerange: [1800, 2050] suite: *keylists - # ramp up - u-dg508: - description: 'TF OS SSP245 cmm - High freq nemo, no CFC/SF6 output from 2030 onwards' - label: 'SSP2-4.5' - colour: 'red' + + u-dg480: + description: 'Interactive ice TF OS SSP245 cmm - High freq nemo, no CFC/SF6 output - ssp245 extension of u-cy623' +# label: 'Extension' + label: 'SSP2-4.5' + colour: 'violet' thickness: 1.2 linestyle: '-' shifttime: 0. #timerange: [1800, 2050] suite: *keylists - # ramp up - u-dg509: - description: 'TF OS SSP245 cmm - High freq nemo, no CFC/SF6 output from 2030 onwards' - label: 'SSP2-4.5' - colour: 'red' + + u-dg508: + description: 'TF OS SSP245 cmm - High freq nemo, no CFC/SF6 output from 2030 onwards - ssp245 extension of u-da916' + label: None +# label: 'SSP2-4.5' + colour: 'purple' thickness: 1.2 linestyle: '-' shifttime: 0. #timerange: [1800, 2050] suite: *keylists +# u-dg509: +# description: 'TF OS SSP245 cmm - High freq nemo, no CFC/SF6 output from 2030 onwards - ssp245 extension of u-da917' +# label: None +# label: 'SSP2-4.5' +# colour: 'purple' +# thickness: 1.2 +# linestyle: '-' +# shifttime: 0. +# #timerange: [1800, 2050] +# suite: *keylists + From 41e61d8b91fe487707d91ca634eddb0ed956e49d Mon Sep 17 00:00:00 2001 From: Lee de Mora Date: Thu, 20 Jun 2024 15:38:58 +0100 Subject: [PATCH 29/29] adding new field to the test --- input_yml/TerraFIRMA_overshoot_stables.yml | 9 +++++++++ tests/integration/test_analysis_timeseries.py | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/input_yml/TerraFIRMA_overshoot_stables.yml b/input_yml/TerraFIRMA_overshoot_stables.yml index 0952cdda..32cde66b 100644 --- a/input_yml/TerraFIRMA_overshoot_stables.yml +++ b/input_yml/TerraFIRMA_overshoot_stables.yml @@ -20,6 +20,15 @@ savejson: True clean: True jobs: + u-cs495: + description: 'PI-Control' + label: 'PIcontrol' + colour: 'blue' + thickness: 1.2 + linestyle: '-' + shifttime: -2094 + timerange: [-50., 400.] + suite: *keylist # u-cz826: # description: 'like cx209 but static ice sheet geometry 8GtC/yr #5' diff --git a/tests/integration/test_analysis_timeseries.py b/tests/integration/test_analysis_timeseries.py index 5f31b740..360b01c7 100644 --- a/tests/integration/test_analysis_timeseries.py +++ b/tests/integration/test_analysis_timeseries.py @@ -172,7 +172,7 @@ class Object(object): assert expected_output_dict['units'] == runtime_output_dict['units'] expected_output_dict['dimensions'] = 3 assert expected_output_dict['dimensions'] == runtime_output_dict['dimensions'] - expected_output_dict['layers'] = ['Surface'] + expected_output_dict['layers'] = ['Surface', '500m'] assert expected_output_dict['layers'] == runtime_output_dict['layers'] expected_output_dict['gridFile'] = paths.orcaGridfn assert expected_output_dict['gridFile'] == runtime_output_dict['gridFile']