Skip to content

Martin-Morrey/semiafa

Repository files navigation

SEMIAFA - Simple Empirical Model of Ice-Albedo Feedback in the Arctic

Description

SEMIAFA is a simple parameterised empirical model of Arctic sea-ice extent (SIE) over the annual cycle, best used on the geographically bound area of Arctic Sea, and specifically the marginal seas.

It was designed to be used to for testing the order-of-magnitude impact of shading interventions, which could take advantage of the amplifying effect of the ice-albedo feedback.

The pseudo-physical parameters used for modelling the physical processes affecting Arctic SIE, including the ice-albedo feedback, are set-out in the table below.

Training data on SIE:

  • MASIE-NH data on SIE from the NSIDC
    • MASIE NSIDC/NIC Sea Ice Product G02186 - Daily Ice Extent by Region in Square Kilometers
  • In theory any similar data on sea-ice extent could be used.

Limitations of the Model

Far from an exhaustive list, but here goes:

  • It's not a dynamic physical model
    • No physics occurs in the model, it's all parameterised at a very high level
    • The pseudo physical parameters relate only to their effect on SIE, nothing else
  • It does not consider ice thickness, volume or age
    • SIE is the only output of the model
    • It is optimised against SIE data only
  • It doesn't model the physical geography at all
  • It doesn't include the weather or any effects of clouds etc
  • There are no inter-annual effects in the model
    • It does not consider inter-annual trends in sea-ice extent
    • Any benefit of an intervention that preserves sea-ice is just in-year only
    • So although interventions which preserve SIE during the summer, will increase ice thickness over winter, the amount of multi-year ice, and tend to slow the loss of SIE in the following year, these effects will not be reflected in the model results

Scripts for Running and Using the Model

ScriptActionNotes
test-shade-effect.pyRun the model twice, with and without shade, and compare the resultsThis fulfils the ultimate purpose of the model, to estimate the impact of a shading intervention on Arctic sea-ice extent
plot-masie-model-comparison.pyCompare the masie input data with the model outputTo review how well the simple empirical model predicts SIE, compared to the input data it is optimised on.
plot-masie-data.pyView the input data on sea-ice extent
optimise.pyUsed with Hydra framework to optimse the parameters of the modelMore info in "Optuna Sweeper Optimisation" below
semiafa.pythe model code itselfnormally called by one of the above scripts

Pseudo Physical Parameters of the Model

The simple empirical model is configured with a limited set of parameters set-out in the table below. These parameters are optimised by minimising a cost function based on the delta between the model output and the input data from masie.

NameDescriptionExample Value*
sun_melt_multiplierrelative melting rate from a date-dependent rescaled insolation24.0
ocean_heat_multiplierrelative melting rate from a constant ocean heat input0.2
air_heat_lagtime in days between notional solar-driven air heat and direct solar heat-49
air_melt_multiplierrelative melting rate from date-dependent notional air heat1.7
ice_freeze_multiplierrelative freezing rate of open sea10.0
ice_powerpower relation between extent of open sea and freezing rate0.7
final_freeze_multiplierdegree of accelerated final freeze, needed to reach full SIE in winter0.00002

*Example values are after being optimised against the marginal seas only - see configuration notes.

Other Configuration Parameters

Model - General

NameTypical Value(s) UsedDescription
lat_for_insolation_calc75representative latitude for approximate insolation
max_sie0.99999used to prevent infinities, should be close to 1
min_sie0.00001used to prevent infinities, should be close to 0
insolation_year2010doesn't really matter, pick a year
insolation_filecache/insolation.pkl.pkl file for caching insolation data
start_year2004 - 2026start year for model run, typically 2 years before start of MASIE data for parameter optimisation runs
num_years2-22number of years to run model over - long for parameter optimisation runs, short for shading tests
wind_spread_start136day we assume wind starts exposing open sea (first of month April:91, May:121)
wind_spread_stop156day we stop wind exposure of open sea # data indicates ~50,000 km2 by day 150, but highly variable
wind_spread_rate0.0002, 0.0003proportion of total area exposed by wind daily,0.0002 (marginal seas,5M km2) 0.0003 (whole of central arctic 8M km2) represent ~2,500km2 (x 20 days give 50,000)

Model - Shade Experiments

NameTypical Value(s) UsedDescription
shade_onNo/Yesapply a shade intervention (always "No" in parameter optimisation runs)
shade_start137day we start shade intervention (if any)
shade_stop201day we stop shade intervention (if any)
shade_area0.002relative area to which to apply shade
shade_targeting_factor1 or 00: shade is distributed over whole area, 1: shade is targeted at open sea 100% of the time

Use of MASIE Data on Sea-Ice Extent

Configuration Notes

To get a consist total frozen area in winter, select only the geographically bounded zones in the masie-NH data, i.e.:

regions: [' (1) Beaufort_Sea',' (2) Chukchi_Sea',' (3) East_Siberian_Sea',' (4) Laptev_Sea',' (5) Kara_Sea',' (11) Central_Arctic']

The SIE Central Arctic does not change in the early part of the melt season, so to get the best approximation of the albedo feedback, select only the marginal seas, i.e.:

regions: [' (1) Beaufort_Sea',' (2) Chukchi_Sea',' (3) East_Siberian_Sea',' (4) Laptev_Sea',' (5) Kara_Sea']

See https://nsidc.org/data/masie/explore-region

Optuna Sweeper Optimisation

The Optuna optimiser works as a sweeper plugin for the Hydra config framework, see https://hydra.cc/docs/plugins/optuna_sweeper/.

To configure and run Optuna:

  • Configure the Optuna sweeper in the Hydra config file, i.e. config/optimiser-config.yaml
    • this involves setting the range and increment of each parameter
  • Run python3 optimise.py --multirun
  • Best config parameters are recorded in optimization_results.yaml, in sub-folder multirun/yyyy-mm-dd/hh-mm-ss/

Insolation Cache

  • The insolation values calculated for each latitude and date are always the same.
  • By default, to reduce run-time, the model caches the calculated insolation values using Pandas DataFrame_to_pickle, in the following .pkl file
    • cache/insolation.pkl
  • IMPORTANT: If the overall time period or latitude range is changed, the above .pkl file must be removed the next time the model is run
    • It won't detect a discrepancy automatically. To fix this is on the to-do list (below)

To Do List

  • include an automatic check that date range of specified insolation .pkl is compatible with current run
  • report insolation delta from shading for each year
  • average insolation from multiple latitudes (currenty 75N only)
  • add parameter to measure benefit from retaining multi-season ice?
  • take account of sunlight reaching southerly latitudes first
  • albedos as config parameters

About

Empirical model of ice-albedo-feedback in the Arctic, used for testing shading interventions

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages