Repository files navigation

ClimatEM

This is the code to run experiments to train and evaluate probabilistic generative models that aim to emulate climate models.

Installation

Dependencies

1. Clone the repo

git clone git@github.com:RolnickLab/climatem.git

2. Set up environment

In order to set up the environment, please use venv, running the following commands once the repository is cloned.

Environment creation, first make sure you have a python installation (or module load python\3.10 on cluster), and run from the climatem directory:

  1. python3 -m venv env_emulator_climatem

  2. source env_emulator_climatem/bin/activate

  3. poetry install Run poetry install --with dev to use formatting tools for code development

If you do not have poetry yet, follow guidelines in the "Install poetry" section here https://github.com/RolnickLab/lab-basic-template This link points you to additional references for setting up your environment correctly.

  1. Install pre-commit hooks using pre-commit install.

  2. INstall netcdf4 with pip. After activating your environment, run pip install netcdf4. This package cannot be installed with poetry because of dependencies.

3. Downloading input data

For running the model on real cliamte data, please download monthly climate model data and regrid it to an icosahedral grid using ClimateSet https://github.com/RolnickLab/ClimateSet. If you have any problem downloading or formatting the data, please get in touch.

4. Running the model

An example of bash script can be found in scripts/run_single_jsonfile.sh. This script assumes that environment env_climatem and climatem repo are located in $HOME. You should then update the parameters of the config file configs/single_param_file.json and the bash script params at top of the bash script. If you use a different json file, set its location using --config-path path_to_json_params.json in the bash script. For overwriting parameters of the json file, you can also add --hp train_params.batch_size=256 to the command line (this is an example of setting batch_size, a parameter in the train_params config object, to 256)

Detailed description of parameters can be found in climatem/config.py. configs/single_param_file.json and configs/single_param_file_savar.json show an example of parameter files used for climate model and synthetic data respectively.

To run the particle filter, run the bash script scripts/run_rollout_bf.sh using the same param json file. The rollout parameters can be set in the json file as well.

accelerate

Parallelism is handled by Accelerator https://huggingface.co/docs/accelerate/package_reference/accelerator

Set up accelerate by running

accelerate config

It will prompt a range of questions. You can either answer them yourself or copy paste the following configs into your $HOME/.cache/huggingface/accelerate/default_config.yaml

compute_environment: LOCAL_MACHINE
debug: true
distributed_type: MULTI_GPU
downcast_bf16: 'no'
enable_cpu_affinity: true
gpu_ids: 0,1,2,3
machine_rank: 0
main_training_function: main
mixed_precision: 'no'
num_machines: 1
num_processes: 4
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false

Check configurations by running:

accelerate env

Run a quick test to check if it's working:

accelerate test

If this runs smoothly you can go ahead.

jupyter

In order to run notebooks, you need to install a jupyter kernel. To do so, first activate yoru environment and run

python -m pip install jupyter
python -m ipykernel install --user --name=my_env_name

About

Emulating climate model data with causal representation learning.

Resources

Contributing

Stars

4 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

ClimatEM

This is the code to run experiments to train and evaluate probabilistic generative models that aim to emulate climate models.

Installation

Dependencies

1. Clone the repo

git clone git@github.com:RolnickLab/climatem.git

2. Set up environment

In order to set up the environment, please use venv, running the following commands once the repository is cloned.

Environment creation, first make sure you have a python installation (or module load python\3.10 on cluster), and run from the climatem directory:

  1. python3 -m venv env_emulator_climatem

  2. source env_emulator_climatem/bin/activate

  3. poetry install Run poetry install --with dev to use formatting tools for code development

If you do not have poetry yet, follow guidelines in the "Install poetry" section here https://github.com/RolnickLab/lab-basic-template This link points you to additional references for setting up your environment correctly.

  1. Install pre-commit hooks using pre-commit install.

  2. INstall netcdf4 with pip. After activating your environment, run pip install netcdf4. This package cannot be installed with poetry because of dependencies.

3. Downloading input data

For running the model on real cliamte data, please download monthly climate model data and regrid it to an icosahedral grid using ClimateSet https://github.com/RolnickLab/ClimateSet. If you have any problem downloading or formatting the data, please get in touch.

4. Running the model

An example of bash script can be found in scripts/run_single_jsonfile.sh. This script assumes that environment env_climatem and climatem repo are located in $HOME. You should then update the parameters of the config file configs/single_param_file.json and the bash script params at top of the bash script. If you use a different json file, set its location using --config-path path_to_json_params.json in the bash script. For overwriting parameters of the json file, you can also add --hp train_params.batch_size=256 to the command line (this is an example of setting batch_size, a parameter in the train_params config object, to 256)

Detailed description of parameters can be found in climatem/config.py. configs/single_param_file.json and configs/single_param_file_savar.json show an example of parameter files used for climate model and synthetic data respectively.

To run the particle filter, run the bash script scripts/run_rollout_bf.sh using the same param json file. The rollout parameters can be set in the json file as well.

accelerate

Parallelism is handled by Accelerator https://huggingface.co/docs/accelerate/package_reference/accelerator

Set up accelerate by running

accelerate config

It will prompt a range of questions. You can either answer them yourself or copy paste the following configs into your $HOME/.cache/huggingface/accelerate/default_config.yaml

compute_environment: LOCAL_MACHINE
debug: true
distributed_type: MULTI_GPU
downcast_bf16: 'no'
enable_cpu_affinity: true
gpu_ids: 0,1,2,3
machine_rank: 0
main_training_function: main
mixed_precision: 'no'
num_machines: 1
num_processes: 4
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false

Check configurations by running:

accelerate env

Run a quick test to check if it's working:

accelerate test

If this runs smoothly you can go ahead.

jupyter

In order to run notebooks, you need to install a jupyter kernel. To do so, first activate yoru environment and run

python -m pip install jupyter
python -m ipykernel install --user --name=my_env_name

About

Emulating climate model data with causal representation learning.

Resources

Contributing

Stars

4 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ClimatEM

This is the code to run experiments to train and evaluate probabilistic generative models that aim to emulate climate models.

Installation

Dependencies

1. Clone the repo

git clone git@github.com:RolnickLab/climatem.git

2. Set up environment

In order to set up the environment, please use venv, running the following commands once the repository is cloned.

Environment creation, first make sure you have a python installation (or module load python\3.10 on cluster), and run from the climatem directory:

  1. python3 -m venv env_emulator_climatem

  2. source env_emulator_climatem/bin/activate

  3. poetry install Run poetry install --with dev to use formatting tools for code development

If you do not have poetry yet, follow guidelines in the "Install poetry" section here https://github.com/RolnickLab/lab-basic-template This link points you to additional references for setting up your environment correctly.

  1. Install pre-commit hooks using pre-commit install.

  2. INstall netcdf4 with pip. After activating your environment, run pip install netcdf4. This package cannot be installed with poetry because of dependencies.

3. Downloading input data

For running the model on real cliamte data, please download monthly climate model data and regrid it to an icosahedral grid using ClimateSet https://github.com/RolnickLab/ClimateSet. If you have any problem downloading or formatting the data, please get in touch.

4. Running the model

An example of bash script can be found in scripts/run_single_jsonfile.sh. This script assumes that environment env_climatem and climatem repo are located in $HOME. You should then update the parameters of the config file configs/single_param_file.json and the bash script params at top of the bash script. If you use a different json file, set its location using --config-path path_to_json_params.json in the bash script. For overwriting parameters of the json file, you can also add --hp train_params.batch_size=256 to the command line (this is an example of setting batch_size, a parameter in the train_params config object, to 256)

Detailed description of parameters can be found in climatem/config.py. configs/single_param_file.json and configs/single_param_file_savar.json show an example of parameter files used for climate model and synthetic data respectively.

To run the particle filter, run the bash script scripts/run_rollout_bf.sh using the same param json file. The rollout parameters can be set in the json file as well.

accelerate

Parallelism is handled by Accelerator https://huggingface.co/docs/accelerate/package_reference/accelerator

Set up accelerate by running

accelerate config

It will prompt a range of questions. You can either answer them yourself or copy paste the following configs into your $HOME/.cache/huggingface/accelerate/default_config.yaml

compute_environment: LOCAL_MACHINE
debug: true
distributed_type: MULTI_GPU
downcast_bf16: 'no'
enable_cpu_affinity: true
gpu_ids: 0,1,2,3
machine_rank: 0
main_training_function: main
mixed_precision: 'no'
num_machines: 1
num_processes: 4
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false

Check configurations by running:

accelerate env

Run a quick test to check if it's working:

accelerate test

If this runs smoothly you can go ahead.

jupyter

In order to run notebooks, you need to install a jupyter kernel. To do so, first activate yoru environment and run

python -m pip install jupyter
python -m ipykernel install --user --name=my_env_name

About

Emulating climate model data with causal representation learning.

Resources

Contributing

Stars

4 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ClimatEM

This is the code to run experiments to train and evaluate probabilistic generative models that aim to emulate climate models.

Installation

Dependencies

1. Clone the repo

git clone git@github.com:RolnickLab/climatem.git

2. Set up environment

In order to set up the environment, please use venv, running the following commands once the repository is cloned.

Environment creation, first make sure you have a python installation (or module load python\3.10 on cluster), and run from the climatem directory:

  1. python3 -m venv env_emulator_climatem

  2. source env_emulator_climatem/bin/activate

  3. poetry install Run poetry install --with dev to use formatting tools for code development

If you do not have poetry yet, follow guidelines in the "Install poetry" section here https://github.com/RolnickLab/lab-basic-template This link points you to additional references for setting up your environment correctly.

  1. Install pre-commit hooks using pre-commit install.

  2. INstall netcdf4 with pip. After activating your environment, run pip install netcdf4. This package cannot be installed with poetry because of dependencies.

3. Downloading input data

For running the model on real cliamte data, please download monthly climate model data and regrid it to an icosahedral grid using ClimateSet https://github.com/RolnickLab/ClimateSet. If you have any problem downloading or formatting the data, please get in touch.

4. Running the model

An example of bash script can be found in scripts/run_single_jsonfile.sh. This script assumes that environment env_climatem and climatem repo are located in $HOME. You should then update the parameters of the config file configs/single_param_file.json and the bash script params at top of the bash script. If you use a different json file, set its location using --config-path path_to_json_params.json in the bash script. For overwriting parameters of the json file, you can also add --hp train_params.batch_size=256 to the command line (this is an example of setting batch_size, a parameter in the train_params config object, to 256)

Detailed description of parameters can be found in climatem/config.py. configs/single_param_file.json and configs/single_param_file_savar.json show an example of parameter files used for climate model and synthetic data respectively.

To run the particle filter, run the bash script scripts/run_rollout_bf.sh using the same param json file. The rollout parameters can be set in the json file as well.

accelerate

Parallelism is handled by Accelerator https://huggingface.co/docs/accelerate/package_reference/accelerator

Set up accelerate by running

accelerate config

It will prompt a range of questions. You can either answer them yourself or copy paste the following configs into your $HOME/.cache/huggingface/accelerate/default_config.yaml

compute_environment: LOCAL_MACHINE
debug: true
distributed_type: MULTI_GPU
downcast_bf16: 'no'
enable_cpu_affinity: true
gpu_ids: 0,1,2,3
machine_rank: 0
main_training_function: main
mixed_precision: 'no'
num_machines: 1
num_processes: 4
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false

Check configurations by running:

accelerate env

Run a quick test to check if it's working:

accelerate test

If this runs smoothly you can go ahead.

jupyter

In order to run notebooks, you need to install a jupyter kernel. To do so, first activate yoru environment and run

python -m pip install jupyter
python -m ipykernel install --user --name=my_env_name

About

Emulating climate model data with causal representation learning.

Resources

Contributing

Stars

4 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

ClimatEM

This is the code to run experiments to train and evaluate probabilistic generative models that aim to emulate climate models.

Installation

Dependencies

1. Clone the repo

git clone git@github.com:RolnickLab/climatem.git

2. Set up environment

In order to set up the environment, please use venv, running the following commands once the repository is cloned.

Environment creation, first make sure you have a python installation (or module load python\3.10 on cluster), and run from the climatem directory:

  1. python3 -m venv env_emulator_climatem

  2. source env_emulator_climatem/bin/activate

  3. poetry install Run poetry install --with dev to use formatting tools for code development

If you do not have poetry yet, follow guidelines in the "Install poetry" section here https://github.com/RolnickLab/lab-basic-template This link points you to additional references for setting up your environment correctly.

  1. Install pre-commit hooks using pre-commit install.

  2. INstall netcdf4 with pip. After activating your environment, run pip install netcdf4. This package cannot be installed with poetry because of dependencies.

3. Downloading input data

For running the model on real cliamte data, please download monthly climate model data and regrid it to an icosahedral grid using ClimateSet https://github.com/RolnickLab/ClimateSet. If you have any problem downloading or formatting the data, please get in touch.

4. Running the model

An example of bash script can be found in scripts/run_single_jsonfile.sh. This script assumes that environment env_climatem and climatem repo are located in $HOME. You should then update the parameters of the config file configs/single_param_file.json and the bash script params at top of the bash script. If you use a different json file, set its location using --config-path path_to_json_params.json in the bash script. For overwriting parameters of the json file, you can also add --hp train_params.batch_size=256 to the command line (this is an example of setting batch_size, a parameter in the train_params config object, to 256)

Detailed description of parameters can be found in climatem/config.py. configs/single_param_file.json and configs/single_param_file_savar.json show an example of parameter files used for climate model and synthetic data respectively.

To run the particle filter, run the bash script scripts/run_rollout_bf.sh using the same param json file. The rollout parameters can be set in the json file as well.

accelerate

Parallelism is handled by Accelerator https://huggingface.co/docs/accelerate/package_reference/accelerator

Set up accelerate by running

accelerate config

It will prompt a range of questions. You can either answer them yourself or copy paste the following configs into your $HOME/.cache/huggingface/accelerate/default_config.yaml

compute_environment: LOCAL_MACHINE
debug: true
distributed_type: MULTI_GPU
downcast_bf16: 'no'
enable_cpu_affinity: true
gpu_ids: 0,1,2,3
machine_rank: 0
main_training_function: main
mixed_precision: 'no'
num_machines: 1
num_processes: 4
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false

Check configurations by running:

accelerate env

Run a quick test to check if it's working:

accelerate test

If this runs smoothly you can go ahead.

jupyter

In order to run notebooks, you need to install a jupyter kernel. To do so, first activate yoru environment and run

python -m pip install jupyter
python -m ipykernel install --user --name=my_env_name

About

Emulating climate model data with causal representation learning.

Resources

Contributing

Stars

4 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ClimatEM

This is the code to run experiments to train and evaluate probabilistic generative models that aim to emulate climate models.

Installation

Dependencies

1. Clone the repo

git clone git@github.com:RolnickLab/climatem.git

2. Set up environment

In order to set up the environment, please use venv, running the following commands once the repository is cloned.

Environment creation, first make sure you have a python installation (or module load python\3.10 on cluster), and run from the climatem directory:

  1. python3 -m venv env_emulator_climatem

  2. source env_emulator_climatem/bin/activate

  3. poetry install Run poetry install --with dev to use formatting tools for code development

If you do not have poetry yet, follow guidelines in the "Install poetry" section here https://github.com/RolnickLab/lab-basic-template This link points you to additional references for setting up your environment correctly.

  1. Install pre-commit hooks using pre-commit install.

  2. INstall netcdf4 with pip. After activating your environment, run pip install netcdf4. This package cannot be installed with poetry because of dependencies.

3. Downloading input data

For running the model on real cliamte data, please download monthly climate model data and regrid it to an icosahedral grid using ClimateSet https://github.com/RolnickLab/ClimateSet. If you have any problem downloading or formatting the data, please get in touch.

4. Running the model

An example of bash script can be found in scripts/run_single_jsonfile.sh. This script assumes that environment env_climatem and climatem repo are located in $HOME. You should then update the parameters of the config file configs/single_param_file.json and the bash script params at top of the bash script. If you use a different json file, set its location using --config-path path_to_json_params.json in the bash script. For overwriting parameters of the json file, you can also add --hp train_params.batch_size=256 to the command line (this is an example of setting batch_size, a parameter in the train_params config object, to 256)

Detailed description of parameters can be found in climatem/config.py. configs/single_param_file.json and configs/single_param_file_savar.json show an example of parameter files used for climate model and synthetic data respectively.

To run the particle filter, run the bash script scripts/run_rollout_bf.sh using the same param json file. The rollout parameters can be set in the json file as well.

accelerate

Parallelism is handled by Accelerator https://huggingface.co/docs/accelerate/package_reference/accelerator

Set up accelerate by running

accelerate config

It will prompt a range of questions. You can either answer them yourself or copy paste the following configs into your $HOME/.cache/huggingface/accelerate/default_config.yaml

compute_environment: LOCAL_MACHINE
debug: true
distributed_type: MULTI_GPU
downcast_bf16: 'no'
enable_cpu_affinity: true
gpu_ids: 0,1,2,3
machine_rank: 0
main_training_function: main
mixed_precision: 'no'
num_machines: 1
num_processes: 4
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false

Check configurations by running:

accelerate env

Run a quick test to check if it's working:

accelerate test

If this runs smoothly you can go ahead.

jupyter

In order to run notebooks, you need to install a jupyter kernel. To do so, first activate yoru environment and run

python -m pip install jupyter
python -m ipykernel install --user --name=my_env_name

About

Emulating climate model data with causal representation learning.

Resources

Contributing

Stars

4 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ClimatEM

This is the code to run experiments to train and evaluate probabilistic generative models that aim to emulate climate models.

Installation

Dependencies

1. Clone the repo

git clone git@github.com:RolnickLab/climatem.git

2. Set up environment

In order to set up the environment, please use venv, running the following commands once the repository is cloned.

Environment creation, first make sure you have a python installation (or module load python\3.10 on cluster), and run from the climatem directory:

  1. python3 -m venv env_emulator_climatem

  2. source env_emulator_climatem/bin/activate

  3. poetry install Run poetry install --with dev to use formatting tools for code development

If you do not have poetry yet, follow guidelines in the "Install poetry" section here https://github.com/RolnickLab/lab-basic-template This link points you to additional references for setting up your environment correctly.

  1. Install pre-commit hooks using pre-commit install.

  2. INstall netcdf4 with pip. After activating your environment, run pip install netcdf4. This package cannot be installed with poetry because of dependencies.

3. Downloading input data

For running the model on real cliamte data, please download monthly climate model data and regrid it to an icosahedral grid using ClimateSet https://github.com/RolnickLab/ClimateSet. If you have any problem downloading or formatting the data, please get in touch.

4. Running the model

An example of bash script can be found in scripts/run_single_jsonfile.sh. This script assumes that environment env_climatem and climatem repo are located in $HOME. You should then update the parameters of the config file configs/single_param_file.json and the bash script params at top of the bash script. If you use a different json file, set its location using --config-path path_to_json_params.json in the bash script. For overwriting parameters of the json file, you can also add --hp train_params.batch_size=256 to the command line (this is an example of setting batch_size, a parameter in the train_params config object, to 256)

Detailed description of parameters can be found in climatem/config.py. configs/single_param_file.json and configs/single_param_file_savar.json show an example of parameter files used for climate model and synthetic data respectively.

To run the particle filter, run the bash script scripts/run_rollout_bf.sh using the same param json file. The rollout parameters can be set in the json file as well.

accelerate

Parallelism is handled by Accelerator https://huggingface.co/docs/accelerate/package_reference/accelerator

Set up accelerate by running

accelerate config

It will prompt a range of questions. You can either answer them yourself or copy paste the following configs into your $HOME/.cache/huggingface/accelerate/default_config.yaml

compute_environment: LOCAL_MACHINE
debug: true
distributed_type: MULTI_GPU
downcast_bf16: 'no'
enable_cpu_affinity: true
gpu_ids: 0,1,2,3
machine_rank: 0
main_training_function: main
mixed_precision: 'no'
num_machines: 1
num_processes: 4
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false

Check configurations by running:

accelerate env

Run a quick test to check if it's working:

accelerate test

If this runs smoothly you can go ahead.

jupyter

In order to run notebooks, you need to install a jupyter kernel. To do so, first activate yoru environment and run

python -m pip install jupyter
python -m ipykernel install --user --name=my_env_name

About

Emulating climate model data with causal representation learning.

Resources

Contributing

Stars

4 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

ClimatEM

This is the code to run experiments to train and evaluate probabilistic generative models that aim to emulate climate models.

Installation

Dependencies

1. Clone the repo

git clone git@github.com:RolnickLab/climatem.git

2. Set up environment

In order to set up the environment, please use venv, running the following commands once the repository is cloned.

Environment creation, first make sure you have a python installation (or module load python\3.10 on cluster), and run from the climatem directory:

  1. python3 -m venv env_emulator_climatem

  2. source env_emulator_climatem/bin/activate

  3. poetry install Run poetry install --with dev to use formatting tools for code development

If you do not have poetry yet, follow guidelines in the "Install poetry" section here https://github.com/RolnickLab/lab-basic-template This link points you to additional references for setting up your environment correctly.

  1. Install pre-commit hooks using pre-commit install.

  2. INstall netcdf4 with pip. After activating your environment, run pip install netcdf4. This package cannot be installed with poetry because of dependencies.

3. Downloading input data

For running the model on real cliamte data, please download monthly climate model data and regrid it to an icosahedral grid using ClimateSet https://github.com/RolnickLab/ClimateSet. If you have any problem downloading or formatting the data, please get in touch.

4. Running the model

An example of bash script can be found in scripts/run_single_jsonfile.sh. This script assumes that environment env_climatem and climatem repo are located in $HOME. You should then update the parameters of the config file configs/single_param_file.json and the bash script params at top of the bash script. If you use a different json file, set its location using --config-path path_to_json_params.json in the bash script. For overwriting parameters of the json file, you can also add --hp train_params.batch_size=256 to the command line (this is an example of setting batch_size, a parameter in the train_params config object, to 256)

Detailed description of parameters can be found in climatem/config.py. configs/single_param_file.json and configs/single_param_file_savar.json show an example of parameter files used for climate model and synthetic data respectively.

To run the particle filter, run the bash script scripts/run_rollout_bf.sh using the same param json file. The rollout parameters can be set in the json file as well.

accelerate

Parallelism is handled by Accelerator https://huggingface.co/docs/accelerate/package_reference/accelerator

Set up accelerate by running

accelerate config

It will prompt a range of questions. You can either answer them yourself or copy paste the following configs into your $HOME/.cache/huggingface/accelerate/default_config.yaml

compute_environment: LOCAL_MACHINE
debug: true
distributed_type: MULTI_GPU
downcast_bf16: 'no'
enable_cpu_affinity: true
gpu_ids: 0,1,2,3
machine_rank: 0
main_training_function: main
mixed_precision: 'no'
num_machines: 1
num_processes: 4
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false

Check configurations by running:

accelerate env

Run a quick test to check if it's working:

accelerate test

If this runs smoothly you can go ahead.

jupyter

In order to run notebooks, you need to install a jupyter kernel. To do so, first activate yoru environment and run

python -m pip install jupyter
python -m ipykernel install --user --name=my_env_name

About

Emulating climate model data with causal representation learning.

Resources

Contributing

Stars

4 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages