diff --git a/docs/source/quickstart.rst b/docs/source/quickstart.rst index 76f9a931..d1422135 100644 --- a/docs/source/quickstart.rst +++ b/docs/source/quickstart.rst @@ -41,10 +41,14 @@ Installing and Using FACTS on a GNU/Linux Workstation cd facts python3 runFACTS.py experiments/dummy -5. If you wish to run the ``emulandice`` module set, additional steps are necessary, as this module set is a wrapper around separately developed R code (see https://github.com/tamsinedwards/emulandice/). First, ensure R and cmake are installed. On Ubuntu, these are provided by the r-base and cmake packages. Then build ``emulandice`` and a tar file of its associated R dependencies:: +5. a. If you wish to run the ``emulandice`` module set, additional steps are necessary, as this module set is a wrapper around separately developed R code (see https://github.com/tamsinedwards/emulandice/). First, ensure R and cmake are installed. On Ubuntu, these are provided by the r-base and cmake packages. Then build ``emulandice`` and a tar file of its associated R dependencies:: modules/emulandice/emulandice_config.sh + b. If you wish to run the ``emulandice2`` module set, additional steps are necessary, as this module set is a wrapper around git submodule https://github.com/tamsinedwards/emulandice2/. First, ensure R and cmake are installed. On Ubuntu, these are provided by the r-base and cmake packages. Then build ``emulandice2`` and a tar file of its associated R dependencies:: + + modules/emulandice2/emulandice_config.sh + 6. Create a new experiment. For example:: mkdir test @@ -105,10 +109,14 @@ To install FACTS through Docker please follow the steps below: python3 runFACTS.py experiments/dummy -6. If you wish to use ``emulandice``, build ``emulandice`` and a tar file of its associated R dependencies:: +6. a. If you wish to use ``emulandice``, build ``emulandice`` and a tar file of its associated R dependencies:: modules/emulandice/emulandice_config.sh + b. If you wish to use ``emulandice2``, build ``emulandice2`` and a tar file of its associated R dependencies:: + + modules/emulandice2/emulandice_config.sh + The Dockerfile also creates a ``facts-jupyter`` image, should you wish to run FACTS from a Jupyter notebook rather than the commandline. This Docker image can be launched:: docker run -it --volume=$HOME/facts:/opt/facts -w /opt/facts -p 8888:8888 facts-jupyter jupyter lab --ip=0.0.0.0 --port=8888 diff --git a/experiments/emulandice2.protect.ssp585/config.yml b/experiments/emulandice2.protect.ssp585/config.yml new file mode 100644 index 00000000..c1cb212f --- /dev/null +++ b/experiments/emulandice2.protect.ssp585/config.yml @@ -0,0 +1,25 @@ +global-options: + nsamps: 2237 + scenario: ssp585 + pyear_start: 2020 + pyear_end: 2300 #2150 + pyear_step: 10 + baseyear: 2005 + pipeline_file: "pipeline.2300.yml" # "pipeline.yml" + +climate_step: + temperature: + module_set: "fair" + module: "temperature" + pipeline_file: "pipeline.global.yml" + generates_climate_output: true +sealevel_step: + emuAIS: + module_set: "emulandice2" + module: "AIS" + emuGLA: + module_set: "emulandice2" + module: "glaciers" + emuGIS: + module_set: "emulandice2" + module: "GrIS" diff --git a/modules/emulandice2/AIS/pipeline.2300.yml b/modules/emulandice2/AIS/pipeline.2300.yml new file mode 100644 index 00000000..49a4cabd --- /dev/null +++ b/modules/emulandice2/AIS/pipeline.2300.yml @@ -0,0 +1,66 @@ + +project: + task1: + python_dependencies: "xarray dask numpy scipy" + executable: "python3" + script_noupload: "emulandice_project.py" + arguments: + - --ice_source + - AIS + - --region + - ALL + - --emu_file + - emu_file/AIS_ALL_Kori_PISM_pow_exp_10_EMULATOR.RData + options: + - "pipeline_id" + - "scenario" + - "climate_data_file" + - "baseyear" + - "pyear_start" + - "pyear_end" + - "pyear_step" + - "seed" + upload_input_data: + - "%MODULE_PATH%/../shared/emulandice_environment.sh" + - "%MODULE_PATH%/../shared/emulandice_steer.sh" + - "%MODULE_PATH%/../shared/emulandice2/main.R" + - "%MODULE_PATH%/../shared/emulandice_project.py" + upload_and_extract_input_data: + - "%MODULE_PATH%/../shared/emulandice_bundled_dependencies.tgz" + - "emulandice2_AIS_project_2300_240214_data.tgz" + global_total_files: + - "%PIPELINE_ID%_ALL_globalsl.nc" + download_output_data: + - "%PIPELINE_ID%_ALL_globalsl.nc" + + +postprocess: + task1: + executable: "python3" + script_noupload: "emulandice_postprocess.py" + arguments: + - --ncfiles + - "%PIPELINE_ID%_ALL_globalsl.nc" + options: + - "locationfile" + - "chunksize" + - "pipeline_id" + - "scenario" + - "baseyear" + - "grdfingerprintfile" + upload_input_data: + - '%MODULE_PATH%/../shared/read_locationfile.py' + - '%MODULE_PATH%/../shared/AssignFP.py' + - '%MODULE_PATH%/../shared/ReadFingerprint.py' + - '%MODULE_PATH%/../shared/grd_fingerprintmap.yml' + - '%MODULE_PATH%/../shared/emulandice_postprocess.py' + upload_and_extract_input_data: + - 'grd_fingerprints_data.tgz' + copy_shared_data: + - '$SHARED/location.lst' + copy_input_data: + project: + task1: + - "%PIPELINE_ID%_ALL_globalsl.nc" + local_total_files: + - "%PIPELINE_ID%_localsl.nc" diff --git a/modules/emulandice2/AIS/pipeline.yml b/modules/emulandice2/AIS/pipeline.yml index 50654cb7..c3f6ec22 100644 --- a/modules/emulandice2/AIS/pipeline.yml +++ b/modules/emulandice2/AIS/pipeline.yml @@ -10,7 +10,7 @@ project: - --region - ALL - --emu_file - - emu_file/AIS_ALL_Kori_PISM_pow_exp_10_EMULATOR.RData + - emu_file/AIS_ALL_Kori_PISM_CISM_ElmerIce_pow_exp_10_EMULATOR.RData options: - "pipeline_id" - "scenario" @@ -27,7 +27,7 @@ project: - "%MODULE_PATH%/../shared/emulandice_project.py" upload_and_extract_input_data: - "%MODULE_PATH%/../shared/emulandice_bundled_dependencies.tgz" - - "emulandice2_AIS_project_data.tgz" + - "emulandice2_AIS_project_2150_240214_data.tgz" global_total_files: - "%PIPELINE_ID%_ALL_globalsl.nc" download_output_data: diff --git a/modules/emulandice2/GrIS/pipeline.2300.yml b/modules/emulandice2/GrIS/pipeline.2300.yml new file mode 100644 index 00000000..39d102a6 --- /dev/null +++ b/modules/emulandice2/GrIS/pipeline.2300.yml @@ -0,0 +1,66 @@ + +project: + task1: + python_dependencies: "xarray dask numpy scipy" + executable: "python3" + script_noupload: "emulandice_project.py" + arguments: + - --ice_source + - GIS + - --region + - ALL + - --emu_file + - emu_file/GIS_ALL_CISM_pow_exp_01_EMULATOR.RData + options: + - "pipeline_id" + - "scenario" + - "climate_data_file" + - "baseyear" + - "pyear_start" + - "pyear_end" + - "pyear_step" + - "seed" + upload_input_data: + - "%MODULE_PATH%/../shared/emulandice_environment.sh" + - "%MODULE_PATH%/../shared/emulandice_steer.sh" + - "%MODULE_PATH%/../shared/emulandice2/main.R" + - "%MODULE_PATH%/../shared/emulandice_project.py" + upload_and_extract_input_data: + - "%MODULE_PATH%/../shared/emulandice_bundled_dependencies.tgz" + - "emulandice2_GrIS_project_2300_240214_data.tgz" + global_total_files: + - "%PIPELINE_ID%_ALL_globalsl.nc" + download_output_data: + - "%PIPELINE_ID%_ALL_globalsl.nc" + + +postprocess: + task1: + executable: "python3" + script_noupload: "emulandice_postprocess.py" + arguments: + - --ncfiles + - "%PIPELINE_ID%_ALL_globalsl.nc" + options: + - "locationfile" + - "chunksize" + - "pipeline_id" + - "scenario" + - "baseyear" + - "grdfingerprintfile" + upload_input_data: + - '%MODULE_PATH%/../shared/read_locationfile.py' + - '%MODULE_PATH%/../shared/AssignFP.py' + - '%MODULE_PATH%/../shared/ReadFingerprint.py' + - '%MODULE_PATH%/../shared/grd_fingerprintmap.yml' + - '%MODULE_PATH%/../shared/emulandice_postprocess.py' + upload_and_extract_input_data: + - 'grd_fingerprints_data.tgz' + copy_shared_data: + - '$SHARED/location.lst' + copy_input_data: + project: + task1: + - "%PIPELINE_ID%_ALL_globalsl.nc" + local_total_files: + - "%PIPELINE_ID%_localsl.nc" diff --git a/modules/emulandice2/GrIS/pipeline.yml b/modules/emulandice2/GrIS/pipeline.yml index e5cf200a..aa9f0815 100644 --- a/modules/emulandice2/GrIS/pipeline.yml +++ b/modules/emulandice2/GrIS/pipeline.yml @@ -10,7 +10,7 @@ project: - --region - ALL - --emu_file - - emu_file/GIS_ALL_CISM_pow_exp_01_EMULATOR.RData + - emu_file/GIS_ALL_CISM_IMAUICE_ElmerIce_GISM_pow_exp_01_EMULATOR.RData options: - "pipeline_id" - "scenario" @@ -27,7 +27,7 @@ project: - "%MODULE_PATH%/../shared/emulandice_project.py" upload_and_extract_input_data: - "%MODULE_PATH%/../shared/emulandice_bundled_dependencies.tgz" - - "emulandice2_GrIS_project_data.tgz" + - "emulandice2_GrIS_project_2100_240214_data.tgz" global_total_files: - "%PIPELINE_ID%_ALL_globalsl.nc" download_output_data: diff --git a/modules/emulandice2/glaciers/pipeline.2300.yml b/modules/emulandice2/glaciers/pipeline.2300.yml new file mode 100644 index 00000000..d479b6b6 --- /dev/null +++ b/modules/emulandice2/glaciers/pipeline.2300.yml @@ -0,0 +1,137 @@ + +project: + task1: + python_dependencies: "xarray dask numpy scipy" + executable: "python3" + script_noupload: "emulandice_project.py" + arguments: + - --ice_source + - GLA + - --region + - RGI01 + - RGI02 + - RGI03 + - RGI04 + - RGI05 + - RGI06 + - RGI07 + - RGI08 + - RGI09 + - RGI10 + - RGI11 + - RGI12 + - RGI13 + - RGI14 + - RGI15 + - RGI16 + - RGI17 + - RGI18 + - RGI19 + - --emu_file + - emu_file/GLA_RGI01_GloGEM_OGGM_pow_exp_01_EMULATOR.RData + - emu_file/GLA_RGI02_GloGEM_OGGM_pow_exp_20_EMULATOR.RData + - emu_file/GLA_RGI03_GloGEM_OGGM_pow_exp_20_EMULATOR.RData + - emu_file/GLA_RGI04_GloGEM_OGGM_pow_exp_01_EMULATOR.RData + - emu_file/GLA_RGI05_GloGEM_OGGM_pow_exp_01_EMULATOR.RData + - emu_file/GLA_RGI06_GloGEM_OGGM_pow_exp_20_EMULATOR.RData + - emu_file/GLA_RGI07_GloGEM_OGGM_pow_exp_01_EMULATOR.RData + - emu_file/GLA_RGI08_GloGEM_OGGM_pow_exp_20_EMULATOR.RData + - emu_file/GLA_RGI09_GloGEM_OGGM_pow_exp_20_EMULATOR.RData + - emu_file/GLA_RGI10_GloGEM_OGGM_pow_exp_20_EMULATOR.RData + - emu_file/GLA_RGI11_GloGEM_OGGM_pow_exp_20_EMULATOR.RData + - emu_file/GLA_RGI12_GloGEM_OGGM_pow_exp_20_EMULATOR.RData + - emu_file/GLA_RGI13_GloGEM_OGGM_pow_exp_20_EMULATOR.RData + - emu_file/GLA_RGI14_GloGEM_OGGM_pow_exp_20_EMULATOR.RData + - emu_file/GLA_RGI15_GloGEM_OGGM_pow_exp_20_EMULATOR.RData + - emu_file/GLA_RGI16_GloGEM_OGGM_pow_exp_20_EMULATOR.RData + - emu_file/GLA_RGI17_GloGEM_OGGM_pow_exp_20_EMULATOR.RData + - emu_file/GLA_RGI18_GloGEM_OGGM_pow_exp_20_EMULATOR.RData + - emu_file/GLA_RGI19_GloGEM_OGGM_pow_exp_01_EMULATOR.RData + options: + - "pipeline_id" + - "scenario" + - "climate_data_file" + - "baseyear" + - "pyear_start" + - "pyear_end" + - "pyear_step" + - "seed" + upload_input_data: + - "%MODULE_PATH%/../shared/emulandice_environment.sh" + - "%MODULE_PATH%/../shared/emulandice_steer.sh" + - "%MODULE_PATH%/../shared/emulandice2/main.R" + - "%MODULE_PATH%/../shared/emulandice_project.py" + upload_and_extract_input_data: + - "%MODULE_PATH%/../shared/emulandice_bundled_dependencies.tgz" + - "emulandice2_glaciers_project_2300_240223_data.tgz" + global_total_files: + - "%PIPELINE_ID%_ALL_globalsl.nc" + download_output_data: + - "%PIPELINE_ID%_ALL_globalsl.nc" + +postprocess: + task1: + executable: "python3" + script_noupload: "emulandice_postprocess.py" + arguments: + - --ncfiles + - "%PIPELINE_ID%_RGI01_globalsl.nc" + - "%PIPELINE_ID%_RGI02_globalsl.nc" + - "%PIPELINE_ID%_RGI03_globalsl.nc" + - "%PIPELINE_ID%_RGI04_globalsl.nc" + - "%PIPELINE_ID%_RGI05_globalsl.nc" + - "%PIPELINE_ID%_RGI06_globalsl.nc" + - "%PIPELINE_ID%_RGI07_globalsl.nc" + - "%PIPELINE_ID%_RGI08_globalsl.nc" + - "%PIPELINE_ID%_RGI09_globalsl.nc" + - "%PIPELINE_ID%_RGI10_globalsl.nc" + - "%PIPELINE_ID%_RGI11_globalsl.nc" + - "%PIPELINE_ID%_RGI12_globalsl.nc" + - "%PIPELINE_ID%_RGI13_globalsl.nc" + - "%PIPELINE_ID%_RGI14_globalsl.nc" + - "%PIPELINE_ID%_RGI15_globalsl.nc" + - "%PIPELINE_ID%_RGI16_globalsl.nc" + - "%PIPELINE_ID%_RGI17_globalsl.nc" + - "%PIPELINE_ID%_RGI18_globalsl.nc" + - "%PIPELINE_ID%_RGI19_globalsl.nc" + options: + - "locationfile" + - "chunksize" + - "pipeline_id" + - "scenario" + - "baseyear" + - "grdfingerprintfile" + upload_input_data: + - '%MODULE_PATH%/../shared/read_locationfile.py' + - '%MODULE_PATH%/../shared/AssignFP.py' + - '%MODULE_PATH%/../shared/ReadFingerprint.py' + - '%MODULE_PATH%/../shared/grd_fingerprintmap.yml' + - '%MODULE_PATH%/../shared/emulandice_postprocess.py' + upload_and_extract_input_data: + - 'grd_fingerprints_data.tgz' + copy_shared_data: + - '$SHARED/location.lst' + copy_input_data: + project: + task1: + - "%PIPELINE_ID%_RGI01_globalsl.nc" + - "%PIPELINE_ID%_RGI02_globalsl.nc" + - "%PIPELINE_ID%_RGI03_globalsl.nc" + - "%PIPELINE_ID%_RGI04_globalsl.nc" + - "%PIPELINE_ID%_RGI05_globalsl.nc" + - "%PIPELINE_ID%_RGI06_globalsl.nc" + - "%PIPELINE_ID%_RGI07_globalsl.nc" + - "%PIPELINE_ID%_RGI08_globalsl.nc" + - "%PIPELINE_ID%_RGI09_globalsl.nc" + - "%PIPELINE_ID%_RGI10_globalsl.nc" + - "%PIPELINE_ID%_RGI11_globalsl.nc" + - "%PIPELINE_ID%_RGI12_globalsl.nc" + - "%PIPELINE_ID%_RGI13_globalsl.nc" + - "%PIPELINE_ID%_RGI14_globalsl.nc" + - "%PIPELINE_ID%_RGI15_globalsl.nc" + - "%PIPELINE_ID%_RGI16_globalsl.nc" + - "%PIPELINE_ID%_RGI17_globalsl.nc" + - "%PIPELINE_ID%_RGI18_globalsl.nc" + - "%PIPELINE_ID%_RGI19_globalsl.nc" + local_total_files: + - "%PIPELINE_ID%_localsl.nc" diff --git a/modules/emulandice2/glaciers/pipeline.yml b/modules/emulandice2/glaciers/pipeline.yml index 4be08ffc..b8f21b30 100644 --- a/modules/emulandice2/glaciers/pipeline.yml +++ b/modules/emulandice2/glaciers/pipeline.yml @@ -63,7 +63,7 @@ project: - "%MODULE_PATH%/../shared/emulandice_project.py" upload_and_extract_input_data: - "%MODULE_PATH%/../shared/emulandice_bundled_dependencies.tgz" - - "emulandice2_glaciers_project_data.tgz" + - "emulandice2_glaciers_project_2100_240223_data.tgz" global_total_files: - "%PIPELINE_ID%_ALL_globalsl.nc" download_output_data: