From 804e137e65de5b3e72928e9045ecd6f24548039b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 13:39:10 +0200 Subject: [PATCH 01/28] Check partly formatted links --- scripts/format_external_links.py | 41 +++++++++++++++++++------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/scripts/format_external_links.py b/scripts/format_external_links.py index be8c0d07..f0ad1546 100755 --- a/scripts/format_external_links.py +++ b/scripts/format_external_links.py @@ -8,15 +8,32 @@ def modify_link(line): download_pattern = r'\[([^\]]+)\]\((https://polybox\.ethz\.ch/index\.php/s/[^\s\)]+)\)' # Define replacements for general and download links - general_replacement = r'[\1 :material-open-in-new:](\2){:target="_blank"}' - download_replacement = r'[\1 :material-download:](\2){:target="_blank"}' + icon_external_link = ':material-open-in-new:' + icon_download = ':material-download:' + open_new_tab = '{:target="_blank"}' + general_replacement = r'[\1 ' + icon_external_link + r'](\2)' + open_new_tab + download_replacement = r'[\1 ' + icon_download + r'](\2)' + open_new_tab # Check if the line was already modified or doesn't need modification - if ':material-open-in-new:' in line and '{:target="_blank"}' in line: + if icon_external_link in line and open_new_tab in line: return line, False - if ':material-download:' in line and '{:target="_blank"}' in line: + if icon_download in line and open_new_tab in line: return line, False + # Check for incomplete or incorrect custom formatting + if icon_external_link in line and open_new_tab not in line: + line = line.replace(icon_external_link, icon_external_link) + open_new_tab + return line, True + if icon_download in line and open_new_tab not in line: + line = line.replace(icon_download, icon_download) + open_new_tab + return line, True + if open_new_tab in line and icon_external_link not in line and icon_download not in line: + if re.search(download_pattern, line): + line = re.sub(download_pattern, download_replacement, line) + else: + line = re.sub(general_pattern, general_replacement, line) + return line, True + # Apply the appropriate replacement based on the URL pattern if re.search(download_pattern, line): modified_line, num_subs = re.subn(download_pattern, download_replacement, line) @@ -32,23 +49,15 @@ def process_markdown_file(file_path): for i, line in enumerate(lines): new_line, changed = modify_link(line) if changed: - modified = True lines[i] = new_line + modified = True if modified: file.seek(0) file.writelines(lines) file.truncate() - print(f"Modified: {file_path}") - -def main(start_path): - for root, dirs, files in os.walk(start_path): - for file in files: - if file.endswith('.md'): - process_markdown_file(os.path.join(root, file)) if __name__ == "__main__": - parser = argparse.ArgumentParser(description='Check markdown links in files.') - parser.add_argument('-p', '--path', default=os.getcwd(), help='Base path to search for markdown files. Defaults to current working directory.') + parser = argparse.ArgumentParser(description="Modify external links in markdown files.") + parser.add_argument("file_path", help="Path to the markdown file to be processed.") args = parser.parse_args() - - main(args.path) \ No newline at end of file + process_markdown_file(args.file_path) \ No newline at end of file From 4780dc17dc0f4fd045e67536fbd98833e8e338ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 13:46:29 +0200 Subject: [PATCH 02/28] Push md to trigger action --- docs/best_practices/coding.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index a0dc5484..00a27b78 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -50,6 +50,7 @@ Check out our Git course for examples of [Custom Git Hooks :material-open-in-new ## Useful tools for coding Two popular tools for coding are [Visual Studio (VS) Code :material-open-in-new:](https://code.visualstudio.com){:target="_blank"} and [PyCharm :material-open-in-new:](https://www.jetbrains.com/pycharm/){:target="_blank"}. Here are instructions for setting up and using Visual Studio Code with SSH on a CSCS machine. + ### VS Code 1. [Download :material-open-in-new:](https://code.visualstudio.com/download){:target="_blank"} and install VS Code on your computer. 2. Install extensions: From 7c0ffde2da68ee9e0cbc1baf67cc298f25953da0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 13:48:29 +0200 Subject: [PATCH 03/28] Restore argparse --- scripts/format_external_links.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/format_external_links.py b/scripts/format_external_links.py index f0ad1546..44445996 100755 --- a/scripts/format_external_links.py +++ b/scripts/format_external_links.py @@ -57,7 +57,8 @@ def process_markdown_file(file_path): file.truncate() if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Modify external links in markdown files.") - parser.add_argument("file_path", help="Path to the markdown file to be processed.") + parser = argparse.ArgumentParser(description='Check markdown links in files.') + parser.add_argument('-p', '--path', default=os.getcwd(), help='Base path to search for markdown files. Defaults to current working directory.') args = parser.parse_args() + main(args.path) process_markdown_file(args.file_path) \ No newline at end of file From 6b1b0bff231ca39b798681e5fa6e22f6d7c1c3cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 13:48:54 +0200 Subject: [PATCH 04/28] Fix argparse --- scripts/format_external_links.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/format_external_links.py b/scripts/format_external_links.py index 44445996..c99a10cb 100755 --- a/scripts/format_external_links.py +++ b/scripts/format_external_links.py @@ -60,5 +60,4 @@ def process_markdown_file(file_path): parser = argparse.ArgumentParser(description='Check markdown links in files.') parser.add_argument('-p', '--path', default=os.getcwd(), help='Base path to search for markdown files. Defaults to current working directory.') args = parser.parse_args() - main(args.path) - process_markdown_file(args.file_path) \ No newline at end of file + main(args.path) \ No newline at end of file From 45644226c454e21a9d4d1d856df9c80bae7a0e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 13:50:12 +0200 Subject: [PATCH 05/28] Push md again --- docs/best_practices/coding.md | 7 ++++++- scripts/format_external_links.py | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index 00a27b78..20cb022f 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -3,6 +3,7 @@ Whether you're new to coding or already working on it, there are two important things to remember: always **use version control** and **add automatic testing**. These steps will make things easier for you and everyone you work with. Also, try out tools that can make coding easier for you. ## Version Control with Git + **Git** is a popular tool for managing source code. C2SM repositories are hosted on GitHub, which uses Git as its version control system. If you're new to Git or want to improve your Git skills, we recommend attending our annual **Git for Beginners** and/or **Git for Advanced** courses. @@ -31,23 +32,27 @@ When working together with Git, follow these simple steps for a smooth collabora Code testing is a critical step in software development. It's about finding and fixing problems to make sure the software works well, is of high quality and reliable. Testing involves checking different parts of the code to make sure the software is strong and free of bugs. The specific tests you need will depend on your project and its requirements. Here is a list of tests that are usually very useful. + ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. + ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. + ### System Tests These tests are performed to ensure that all the components and modules of a software system work together as intended and that the system meets its specified requirements and functions correctly in its operational environment. Find an [example for system tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py){:target="_blank"} in our spack-c2sm repository. + ### Tolerance tests These tests are used in the development of ICON, specifically when code is ported from CPU to GPU. The results when running on CPU and GPU are not bit identical, therefore a tolerance range is accepted when comparing a test case to the CPU reference. The accepted tolerance range is created by running an ensemble of the same test case with different perturbations. MeteoSwiss has developed [probtest :material-open-in-new:](https://github.com/MeteoSwiss/probtest){:target="_blank"} for handling everything related to tolerance tests with ICON. If you have a DKRZ account and are working with ICON-NWP, you can also check out the manual for [Generating tolerances for non-standard tests :material-open-in-new:](https://gitlab.dkrz.de/icon/wiki/-/wikis/GPU-development/Validating-with-probtest-without-buildbot-references-(Generating-tolerances-for-non-standard-tests){:target="_blank"}). + ### Git Hooks & GitHub Actions Git Hooks are local scripts in Git that make sure things get done right when you work on your code. GitHub Actions, on the other hand, are integrated with GitHub and allow you to automate code management workflows. They can be run automatically on GitHub whenever something is committed. Check out our Git course for examples of [Custom Git Hooks :material-open-in-new:](https://github.com/C2SM/git-course/blob/main/advanced/Exercise_7_git-hooks.md){:target="_blank"} hooks, and read GitHub's [documentation on GitHub Actions :material-open-in-new:](https://docs.github.com/en/actions){:target="_blank"}. - ## Useful tools for coding Two popular tools for coding are [Visual Studio (VS) Code :material-open-in-new:](https://code.visualstudio.com){:target="_blank"} and [PyCharm :material-open-in-new:](https://www.jetbrains.com/pycharm/){:target="_blank"}. Here are instructions for setting up and using Visual Studio Code with SSH on a CSCS machine. diff --git a/scripts/format_external_links.py b/scripts/format_external_links.py index c99a10cb..d3f6dfcd 100755 --- a/scripts/format_external_links.py +++ b/scripts/format_external_links.py @@ -60,4 +60,5 @@ def process_markdown_file(file_path): parser = argparse.ArgumentParser(description='Check markdown links in files.') parser.add_argument('-p', '--path', default=os.getcwd(), help='Base path to search for markdown files. Defaults to current working directory.') args = parser.parse_args() + main(args.path) \ No newline at end of file From ac52bd8ae96ab324c69d84aee06249b97d306bb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 13:52:24 +0200 Subject: [PATCH 06/28] Fix formatter --- docs/best_practices/coding.md | 8 ++++++++ scripts/format_external_links.py | 9 ++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index 20cb022f..3233c1f4 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -29,34 +29,42 @@ When working together with Git, follow these simple steps for a smooth collabora 6. **Merge Time**: Once the revisions are done and the tests are green, merge your feature branch into the main branch. ## Automatic Testing + Code testing is a critical step in software development. It's about finding and fixing problems to make sure the software works well, is of high quality and reliable. Testing involves checking different parts of the code to make sure the software is strong and free of bugs. The specific tests you need will depend on your project and its requirements. Here is a list of tests that are usually very useful. ### Unit Tests + These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests + These tests are to check how different parts of your code work together and communicate with each other. Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. ### System Tests + These tests are performed to ensure that all the components and modules of a software system work together as intended and that the system meets its specified requirements and functions correctly in its operational environment. Find an [example for system tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py){:target="_blank"} in our spack-c2sm repository. ### Tolerance tests + These tests are used in the development of ICON, specifically when code is ported from CPU to GPU. The results when running on CPU and GPU are not bit identical, therefore a tolerance range is accepted when comparing a test case to the CPU reference. The accepted tolerance range is created by running an ensemble of the same test case with different perturbations. MeteoSwiss has developed [probtest :material-open-in-new:](https://github.com/MeteoSwiss/probtest){:target="_blank"} for handling everything related to tolerance tests with ICON. If you have a DKRZ account and are working with ICON-NWP, you can also check out the manual for [Generating tolerances for non-standard tests :material-open-in-new:](https://gitlab.dkrz.de/icon/wiki/-/wikis/GPU-development/Validating-with-probtest-without-buildbot-references-(Generating-tolerances-for-non-standard-tests){:target="_blank"}). ### Git Hooks & GitHub Actions + Git Hooks are local scripts in Git that make sure things get done right when you work on your code. GitHub Actions, on the other hand, are integrated with GitHub and allow you to automate code management workflows. They can be run automatically on GitHub whenever something is committed. Check out our Git course for examples of [Custom Git Hooks :material-open-in-new:](https://github.com/C2SM/git-course/blob/main/advanced/Exercise_7_git-hooks.md){:target="_blank"} hooks, and read GitHub's [documentation on GitHub Actions :material-open-in-new:](https://docs.github.com/en/actions){:target="_blank"}. ## Useful tools for coding + Two popular tools for coding are [Visual Studio (VS) Code :material-open-in-new:](https://code.visualstudio.com){:target="_blank"} and [PyCharm :material-open-in-new:](https://www.jetbrains.com/pycharm/){:target="_blank"}. Here are instructions for setting up and using Visual Studio Code with SSH on a CSCS machine. ### VS Code + 1. [Download :material-open-in-new:](https://code.visualstudio.com/download){:target="_blank"} and install VS Code on your computer. 2. Install extensions: - Open VS Code. diff --git a/scripts/format_external_links.py b/scripts/format_external_links.py index d3f6dfcd..72fef762 100755 --- a/scripts/format_external_links.py +++ b/scripts/format_external_links.py @@ -55,10 +55,17 @@ def process_markdown_file(file_path): file.seek(0) file.writelines(lines) file.truncate() + print(f"Modified: {file_path}") + +def main(start_path): + for root, dirs, files in os.walk(start_path): + for file in files: + if file.endswith('.md'): + process_markdown_file(os.path.join(root, file)) if __name__ == "__main__": parser = argparse.ArgumentParser(description='Check markdown links in files.') parser.add_argument('-p', '--path', default=os.getcwd(), help='Base path to search for markdown files. Defaults to current working directory.') args = parser.parse_args() - main(args.path) \ No newline at end of file + main(args.path) From 41e67dc46eb0949660e0cac6e23b356281ef9706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 13:53:48 +0200 Subject: [PATCH 07/28] Test new formatter --- docs/best_practices/coding.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index 3233c1f4..b9a2cb46 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -37,12 +37,12 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. -Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. ### System Tests From 7e97b0604dc74695b968173b491d8941d7f7e5f6 Mon Sep 17 00:00:00 2001 From: mjaehn Date: Thu, 15 Aug 2024 11:54:00 +0000 Subject: [PATCH 08/28] GitHub Action: Apply external link format --- docs/best_practices/coding.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index b9a2cb46..0102bf3a 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -37,13 +37,13 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"}{:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. - +{:target="_blank"} ### System Tests These tests are performed to ensure that all the components and modules of a software system work together as intended and that the system meets its specified requirements and functions correctly in its operational environment. From a530344a7a6fd32fca4259620e327301364acd7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 13:59:20 +0200 Subject: [PATCH 09/28] Test again --- docs/best_practices/coding.md | 4 ++-- scripts/format_external_links.py | 19 ++----------------- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index 0102bf3a..b9a2cb46 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -37,13 +37,13 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"}{:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. -{:target="_blank"} + ### System Tests These tests are performed to ensure that all the components and modules of a software system work together as intended and that the system meets its specified requirements and functions correctly in its operational environment. diff --git a/scripts/format_external_links.py b/scripts/format_external_links.py index 72fef762..27bfab03 100755 --- a/scripts/format_external_links.py +++ b/scripts/format_external_links.py @@ -22,10 +22,10 @@ def modify_link(line): # Check for incomplete or incorrect custom formatting if icon_external_link in line and open_new_tab not in line: - line = line.replace(icon_external_link, icon_external_link) + open_new_tab + line = re.sub(r'(\[.*?\]\(.*?\))', r'\1' + open_new_tab, line) return line, True if icon_download in line and open_new_tab not in line: - line = line.replace(icon_download, icon_download) + open_new_tab + line = re.sub(r'(\[.*?\]\(.*?\))', r'\1' + open_new_tab, line) return line, True if open_new_tab in line and icon_external_link not in line and icon_download not in line: if re.search(download_pattern, line): @@ -42,21 +42,6 @@ def modify_link(line): return modified_line, num_subs > 0 -def process_markdown_file(file_path): - with open(file_path, 'r+', encoding='utf-8') as file: - lines = file.readlines() - modified = False - for i, line in enumerate(lines): - new_line, changed = modify_link(line) - if changed: - lines[i] = new_line - modified = True - if modified: - file.seek(0) - file.writelines(lines) - file.truncate() - print(f"Modified: {file_path}") - def main(start_path): for root, dirs, files in os.walk(start_path): for file in files: From be5e5c1e81b3ca339ca8250a16d458e40efeb902 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 14:03:05 +0200 Subject: [PATCH 10/28] Restore function --- docs/best_practices/coding.md | 2 +- scripts/format_external_links.py | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index b9a2cb46..a305ed94 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -77,4 +77,4 @@ Two popular tools for coding are [Visual Studio (VS) Code :material-open-in-new: 3. Use VS Code with SSH on CSCS: - Install the "Remote-SSH" extension. - Ensure VS Code remains active when working on CSCS: - - Activate the "Remote.SSH: Remote Server Listen On Socket" option in "Remote-SSH: Settings". + - Activate the "Remote.SSH: Remote Server Listen On Socket" option in "Remote-SSH: Settings". \ No newline at end of file diff --git a/scripts/format_external_links.py b/scripts/format_external_links.py index 27bfab03..2c222405 100755 --- a/scripts/format_external_links.py +++ b/scripts/format_external_links.py @@ -42,6 +42,23 @@ def modify_link(line): return modified_line, num_subs > 0 + +def process_markdown_file(file_path): + with open(file_path, 'r+', encoding='utf-8') as file: + lines = file.readlines() + modified = False + for i, line in enumerate(lines): + new_line, changed = modify_link(line) + if changed: + modified = True + lines[i] = new_line + if modified: + file.seek(0) + file.writelines(lines) + file.truncate() + print(f"Modified: {file_path}") + + def main(start_path): for root, dirs, files in os.walk(start_path): for file in files: From 077d5664b078dc82a00b3cb3d8d39edaef24814e Mon Sep 17 00:00:00 2001 From: mjaehn Date: Thu, 15 Aug 2024 12:03:17 +0000 Subject: [PATCH 11/28] GitHub Action: Apply external link format --- docs/best_practices/coding.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index a305ed94..d92bb67d 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -37,12 +37,12 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"}{:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. -Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. +Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. ### System Tests From 27ab76ce6b85ae38607a10f127836b46a16bf14b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 14:26:04 +0200 Subject: [PATCH 12/28] Fix and test --- docs/best_practices/coding.md | 6 +++--- scripts/format_external_links.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index d92bb67d..970667be 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -37,17 +37,17 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"}{:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. -Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. ### System Tests These tests are performed to ensure that all the components and modules of a software system work together as intended and that the system meets its specified requirements and functions correctly in its operational environment. -Find an [example for system tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for system tests](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py) in our spack-c2sm repository. ### Tolerance tests diff --git a/scripts/format_external_links.py b/scripts/format_external_links.py index 2c222405..9009d263 100755 --- a/scripts/format_external_links.py +++ b/scripts/format_external_links.py @@ -11,8 +11,8 @@ def modify_link(line): icon_external_link = ':material-open-in-new:' icon_download = ':material-download:' open_new_tab = '{:target="_blank"}' - general_replacement = r'[\1 ' + icon_external_link + r'](\2)' + open_new_tab - download_replacement = r'[\1 ' + icon_download + r'](\2)' + open_new_tab + general_replacement = r'[\1 ' + icon_external_link + r'](\2)' + download_replacement = r'[\1 ' + icon_download + r'](\2)' # Check if the line was already modified or doesn't need modification if icon_external_link in line and open_new_tab in line: From 1893399a835b7de8d049fed3beea2ea438ced7ae Mon Sep 17 00:00:00 2001 From: mjaehn Date: Thu, 15 Aug 2024 12:26:20 +0000 Subject: [PATCH 13/28] GitHub Action: Apply external link format --- docs/best_practices/coding.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index 970667be..78a45fc8 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -37,17 +37,17 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. -Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. +Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. ### System Tests These tests are performed to ensure that all the components and modules of a software system work together as intended and that the system meets its specified requirements and functions correctly in its operational environment. -Find an [example for system tests](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py) in our spack-c2sm repository. +Find an [example for system tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py) in our spack-c2sm repository. ### Tolerance tests From ba5a9dc000c40eb7b8392e07f5e3f43cecec4c19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 14:37:25 +0200 Subject: [PATCH 14/28] Fix and test --- docs/best_practices/coding.md | 6 +++--- scripts/format_external_links.py | 7 ++----- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index 78a45fc8..970667be 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -37,17 +37,17 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. -Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. ### System Tests These tests are performed to ensure that all the components and modules of a software system work together as intended and that the system meets its specified requirements and functions correctly in its operational environment. -Find an [example for system tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py) in our spack-c2sm repository. +Find an [example for system tests](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py) in our spack-c2sm repository. ### Tolerance tests diff --git a/scripts/format_external_links.py b/scripts/format_external_links.py index 9009d263..d2bb32e3 100755 --- a/scripts/format_external_links.py +++ b/scripts/format_external_links.py @@ -21,13 +21,10 @@ def modify_link(line): return line, False # Check for incomplete or incorrect custom formatting - if icon_external_link in line and open_new_tab not in line: + if open_new_tab not in line: line = re.sub(r'(\[.*?\]\(.*?\))', r'\1' + open_new_tab, line) return line, True - if icon_download in line and open_new_tab not in line: - line = re.sub(r'(\[.*?\]\(.*?\))', r'\1' + open_new_tab, line) - return line, True - if open_new_tab in line and icon_external_link not in line and icon_download not in line: + if icon_external_link not in line and icon_download not in line: if re.search(download_pattern, line): line = re.sub(download_pattern, download_replacement, line) else: From b4e04fdaae5490489eb091a3f0d1eb473f148f4c Mon Sep 17 00:00:00 2001 From: mjaehn Date: Thu, 15 Aug 2024 12:37:41 +0000 Subject: [PATCH 15/28] GitHub Action: Apply external link format --- docs/alps/index.md | 2 +- docs/alps/uenvs.md | 2 +- docs/alps/vclusters.md | 2 +- docs/best_practices/coding.md | 8 ++++---- docs/best_practices/data_handling.md | 2 +- docs/best_practices/index.md | 2 +- docs/blog/posts/2024-07-01_new_design.md | 2 +- docs/blog/posts/2024-08-14_alps.md | 2 +- docs/datasets/cordex_fpsconv_data.md | 2 +- docs/events/icon_meetings/index.md | 6 +++--- docs/index.md | 6 +++--- docs/models/cosmo.md | 10 +++++----- docs/models/icon.md | 14 +++++++------- docs/support/index.md | 6 +++--- docs/tasks/assignment.md | 4 ++-- docs/tools/int2lm.md | 4 ++-- docs/tools/zephyr.md | 18 +++++++++--------- 17 files changed, 46 insertions(+), 46 deletions(-) diff --git a/docs/alps/index.md b/docs/alps/index.md index 74e96de7..84cdbcce 100644 --- a/docs/alps/index.md +++ b/docs/alps/index.md @@ -33,7 +33,7 @@ The following vClusters are hosted at CSCS: ## Introductory Workshop Material -As an introduction to the Alps infrastructure, the material of our [C2SM workshop "Switching to Alps"](../blog/posts/2024-07-02_switching_to_Alps.md) is available: +As an introduction to the Alps infrastructure, the material of our [C2SM workshop "Switching to Alps"](../blog/posts/2024-07-02_switching_to_Alps.md){:target="_blank"} is available: - [Recording :material-download:](https://polybox.ethz.ch/index.php/s/oSxyJgTjyvJKX8B){:target="_blank"}
- [Slides presenting Alps, vClusters and Uenvs :material-download:](https://polybox.ethz.ch/index.php/s/jvtIYkBvHUSGZYD){:target="_blank"}
diff --git a/docs/alps/uenvs.md b/docs/alps/uenvs.md index b37ecf6e..09bdd5fc 100644 --- a/docs/alps/uenvs.md +++ b/docs/alps/uenvs.md @@ -25,7 +25,7 @@ A description of user environments and the `uenv` tool can be found in the [CSCS ## Uenvs central Registry and C2SM uenvs -The user environments provided by CSCS are registered in a central database. In the long run we should be able to operate only with those but, at least for the initial period, there is also the need for uenvs provided by C2SM. These are accessed by their absolute path. All supported uenvs are documented in the corresponding vClsuter section of the [dedicated page](../vclusters/). +The user environments provided by CSCS are registered in a central database. In the long run we should be able to operate only with those but, at least for the initial period, there is also the need for uenvs provided by C2SM. These are accessed by their absolute path. All supported uenvs are documented in the corresponding vClsuter section of the [dedicated page](../vclusters/){:target="_blank"}. ## The `uenv` command line tool diff --git a/docs/alps/vclusters.md b/docs/alps/vclusters.md index b3218bd1..9aaf0017 100644 --- a/docs/alps/vclusters.md +++ b/docs/alps/vclusters.md @@ -33,7 +33,7 @@ This would allow standard connections like `ssh santis.cscs.ch` but also specify Daint is the vCluster dedicated to the User Lab. It is deployed on ~800 Grace-Hopper nodes. -Even though Weather and Climate also has the dedicated vCluster Santis (see [below](#santis)), traditional projects will be running on Daint. +Even though Weather and Climate also has the dedicated vCluster Santis (see [below](#santis){:target="_blank"}), traditional projects will be running on Daint. !!! warning "Hostname conflict" diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index 970667be..7d0767fb 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -8,7 +8,7 @@ Whether you're new to coding or already working on it, there are two important t If you're new to Git or want to improve your Git skills, we recommend attending our annual **Git for Beginners** and/or **Git for Advanced** courses. Additionally, all course materials are publicly available and can be used throughout the year. -For more details, please visit [Technical Events - Git Courses](../events/git_courses.md). +For more details, please visit [Technical Events - Git Courses](../events/git_courses.md){:target="_blank"}. ### Key Concepts of Git @@ -37,17 +37,17 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. -Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. +Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. ### System Tests These tests are performed to ensure that all the components and modules of a software system work together as intended and that the system meets its specified requirements and functions correctly in its operational environment. -Find an [example for system tests](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py) in our spack-c2sm repository. +Find an [example for system tests](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py){:target="_blank"} in our spack-c2sm repository. ### Tolerance tests diff --git a/docs/best_practices/data_handling.md b/docs/best_practices/data_handling.md index 7a6ef23d..6db1cf67 100644 --- a/docs/best_practices/data_handling.md +++ b/docs/best_practices/data_handling.md @@ -18,7 +18,7 @@ * openBIS software: Dr. Caterina Barillari, ETH SIS, [ETH Personal Page :material-open-in-new:](https://www.ethz.ch/en/the-eth-zurich/organisation/departments/informatikdienste/personen/person-detail.html?persid=185758){:target="_blank"} ## Data repositories - * [C2SM datasets](../datasets/index.md) + * [C2SM datasets](../datasets/index.md){:target="_blank"} * [Directory of data repositories :material-open-in-new:](https://www.re3data.org){:target="_blank"} * [ETH research collection :material-open-in-new:](https://www.research-collection.ethz.ch){:target="_blank"} * [Zenodo :material-open-in-new:](https://zenodo.org){:target="_blank"} diff --git a/docs/best_practices/index.md b/docs/best_practices/index.md index e4d6a191..ad2f5dde 100644 --- a/docs/best_practices/index.md +++ b/docs/best_practices/index.md @@ -1,5 +1,5 @@ # Best Practices -Here, you'll find valuable resources for improving your [coding](coding.md) and [data handling](data_handling.md) skills. For those new to coding, we emphasize the importance of using version control with Git and implementing automatic testing to ensure high-quality, reliable software. We offer courses and materials on Git, along with examples of various types of tests to help you maintain robust code. +Here, you'll find valuable resources for improving your [coding](coding.md){:target="_blank"} and [data handling](data_handling.md){:target="_blank"} skills. For those new to coding, we emphasize the importance of using version control with Git and implementing automatic testing to ensure high-quality, reliable software. We offer courses and materials on Git, along with examples of various types of tests to help you maintain robust code. Additionally, our data handling section provides guidelines for effective data management, including links to ETH resources, data repositories, and licensing advice to help you manage and share your research data responsibly and efficiently. \ No newline at end of file diff --git a/docs/blog/posts/2024-07-01_new_design.md b/docs/blog/posts/2024-07-01_new_design.md index def811ed..f39ba4a9 100644 --- a/docs/blog/posts/2024-07-01_new_design.md +++ b/docs/blog/posts/2024-07-01_new_design.md @@ -21,7 +21,7 @@ A big advantage of Material for MkDocs is how it helps us keep a consistent styl - News are managed with the `blog` feature and appear more prominently in the navigation bar - Table of Content now visible for each site on the right side bar - Clear distinction between internal and external hyperlinks -- Replaced [Datasets](../../datasets/climate_model_data.md) tables with sections and listings +- Replaced [Datasets](../../datasets/climate_model_data.md){:target="_blank"} tables with sections and listings - The [source code :material-open-in-new:](https://github.com/C2SM/c2sm.github.io){:target="_blank"} is now public (so you can try it out by yourself) ## Your Thoughts Matter diff --git a/docs/blog/posts/2024-08-14_alps.md b/docs/blog/posts/2024-08-14_alps.md index e0d35066..731ce595 100644 --- a/docs/blog/posts/2024-08-14_alps.md +++ b/docs/blog/posts/2024-08-14_alps.md @@ -6,7 +6,7 @@ date: # New information about the Alps system available Since the transition from Piz Daint to the new Alps infrastructure is already taking place, -we have added a new navigation section [Alps](../../alps/index.md) to collect all necessary information there. +we have added a new navigation section [Alps](../../alps/index.md){:target="_blank"} to collect all necessary information there. Most importantly, C2SM users will find details about the new vClusters as well as how to use User Environments (uenvs) in order to access the software stacks. \ No newline at end of file diff --git a/docs/datasets/cordex_fpsconv_data.md b/docs/datasets/cordex_fpsconv_data.md index d688cd2e..e9855604 100644 --- a/docs/datasets/cordex_fpsconv_data.md +++ b/docs/datasets/cordex_fpsconv_data.md @@ -3,7 +3,7 @@ The CORDEX-FPSCONV dataset is a multi-model ensemble of convection permitting regional climate model runs created within [WCRP-CORDEX :material-open-in-new:](https://cordex.org/experiment-guidelines/flagship-pilot-studies/endorsed-cordex-flagship-pilote-studies/europe-mediterranean-convective-phenomena-at-high-resolution-over-europe-and-the-mediterranean/){:target="_blank"}. The model runs are described in [Coppola et al. 2020 :material-open-in-new:](https://link.springer.com/article/10.1007/s00382-018-4521-8){:target="_blank"}, [Ban et al. 2021 :material-open-in-new:](https://link.springer.com/article/10.1007/s00382-021-05708-w){:target="_blank"} and [Pichelli et al. 2021 :material-open-in-new:](https://link.springer.com/article/10.1007/s00382-021-05657-4){:target="_blank"} and cover the ALP-3 domain. -![Image of the extent of the ALP-3 domain](images/ALP-3-crop.png) +![Image of the extent of the ALP-3 domain](images/ALP-3-crop.png){:target="_blank"} So far, only the data from ETH (CLMcom-ETH-COSMO-crCLIM) has been CMORized (more info about this effort in this [pdf :material-open-in-new:](https://www.polybox.ethz.ch/index.php/s/cLZG0RkPipah6Uw){:target="_blank"}, for all other models the data format is a preliminary version (from ~September 2022) and not the one that will go to ESGF. Currently, the data archive contains mainly 1-hourly precipitation and temperature and daily maximum temperature and minimum temperature. diff --git a/docs/events/icon_meetings/index.md b/docs/events/icon_meetings/index.md index acfd2f40..279003fc 100644 --- a/docs/events/icon_meetings/index.md +++ b/docs/events/icon_meetings/index.md @@ -11,10 +11,10 @@ In case you have any questions or suggestions, contact the meeting organiser, ## C2SM ICON Mailing List -As a member of the `c2sm.icon` mailing list, you will receive all relevant information around [ICON](../../models/icon.md) and invitations to the quarterly ICON meeting. +As a member of the `c2sm.icon` mailing list, you will receive all relevant information around [ICON](../../models/icon.md){:target="_blank"} and invitations to the quarterly ICON meeting. If you or someone from your group is not yet a member of the `c2sm.icon` mailing list, subscribe by sending an e-mail to: -[`mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname`](mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname) (modify `firstname` and `lastname` in the subject). +[`mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname`](mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname){:target="_blank"} (modify `firstname` and `lastname` in the subject). To check which lists you are subscribed to, send an e-mail to: -[`mailto:sympa@sympa.ethz.ch?subject=WHICH`](mailto:sympa@sympa.ethz.ch?subject=WHICH) \ No newline at end of file +[`mailto:sympa@sympa.ethz.ch?subject=WHICH`](mailto:sympa@sympa.ethz.ch?subject=WHICH){:target="_blank"} \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index f15c6851..cbabf7a4 100644 --- a/docs/index.md +++ b/docs/index.md @@ -43,11 +43,11 @@ This will allow you to submit new tasks, receive support from the C2SM Core Team 2. Get access to the [C2SM GitHub organisation :material-open-in-new:](https://github.com/C2SM){:target="_blank"}. - Reach out to your group’s technical contact and provide them with your GitHub account name. They will be responsible for adding you to the appropriate user group. - - If you do not know who your group's technical contact is, please send an email to [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch). + - If you do not know who your group's technical contact is, please send an email to [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch){:target="_blank"}. ## Are you a new member of the C2SM community? - Designate a technical contact within your group, preferably a permanent member who is familiar with technical aspects. -- Contact us by visiting our office in person or by emailing us at [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch). +- Contact us by visiting our office in person or by emailing us at [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch){:target="_blank"}. - Once contacted, we will initiate the setup of your group's user group on GitHub for effective collaboration. ## C2SM on GitHub @@ -59,4 +59,4 @@ This is our main GitHub organisation, which contains many repositories, includin ### [C2SM-RCM :material-open-in-new:](https://github.com/C2SM-RCM){:target="_blank"} -The C2SM-RCM organisation contains all codes related to COSMO and tools like EXTPAR. For questions and access, please contact [Jonas Jucker](mailto:jonas.jucker@c2sm.ethz.ch). +The C2SM-RCM organisation contains all codes related to COSMO and tools like EXTPAR. For questions and access, please contact [Jonas Jucker](mailto:jonas.jucker@c2sm.ethz.ch){:target="_blank"}. diff --git a/docs/models/cosmo.md b/docs/models/cosmo.md index 8d76adb3..558fec10 100644 --- a/docs/models/cosmo.md +++ b/docs/models/cosmo.md @@ -95,7 +95,7 @@ The GPU porting of the dynamical core of COSMO was accomplished by rewriting the ## Access In order to get access to the [COSMO repository :material-open-in-new:](https://github.com/C2SM-RCM/cosmo){:target="_blank"} hosted on the C2SM-RCM GitHub organisation, -please contact [C2SM Support](mailto:support@c2sm.ethz.ch). +please contact [C2SM Support](mailto:support@c2sm.ethz.ch){:target="_blank"}. Once you have access, clone the repository from GitHub using the SSH protocol: ``` @@ -107,11 +107,11 @@ If you do not already have an SSH key set up for GitHub but would like to do so, For configuring and building COSMO with Spack, please refer to the official spack-c2sm documentation, which provides instructions for [setting up a Spack instance :material-open-in-new:](https://c2sm.github.io/spack-c2sm/latest/QuickStart.html#at-cscs-ethz-daint-tsa-balfrin-and-euler){:target="_blank"} and [installing COSMO :material-open-in-new:](https://c2sm.github.io/spack-c2sm/latest/QuickStart.html#cosmo){:target="_blank"} on Piz Daint and Euler Cluster. ## Related tools -In the [Tools](../tools/index.md) section, you will find relevant tools for working with COSMO: +In the [Tools](../tools/index.md){:target="_blank"} section, you will find relevant tools for working with COSMO: -* [**Extpar:**](../tools/extpar.md) External parameters for the COSMO-grid (preprocessing) -* [**int2lm:**](../tools/int2lm.md) The interpolation software for the COSMO-model (preprocessing) -* [**Processing Chain**](../tools/processing_chain.md): Python workflow tool for COSMO +* [**Extpar:**](../tools/extpar.md){:target="_blank"} External parameters for the COSMO-grid (preprocessing) +* [**int2lm:**](../tools/int2lm.md){:target="_blank"} The interpolation software for the COSMO-model (preprocessing) +* [**Processing Chain**](../tools/processing_chain.md){:target="_blank"}: Python workflow tool for COSMO ## Documentation diff --git a/docs/models/icon.md b/docs/models/icon.md index badbd66e..f0b23bd6 100644 --- a/docs/models/icon.md +++ b/docs/models/icon.md @@ -2,7 +2,7 @@ ICON (Icosahedral Nonhydrostatic Weather and Climate Model) is a global model suitable for climate and weather prediction at regional and global domains. It is a joint project of [DWD :material-open-in-new:](https://www.dwd.de/DE/Home/home_node.html){:target="_blank"}, [MPI-M :material-open-in-new:](https://mpimet.mpg.de/startseite){:target="_blank"} and [KIT :material-open-in-new:](https://www.kit.edu/){:target="_blank"}. -To stay informed about what is going on in the ICON world and to get to know other ICON users, please attend our [quarterly ICON meeting](../events/icon_meetings/index.md). +To stay informed about what is going on in the ICON world and to get to know other ICON users, please attend our [quarterly ICON meeting](../events/icon_meetings/index.md){:target="_blank"}. ## Support status C2SM facilitates the utilisation of ICON on the [Piz Daint :material-open-in-new:](https://www.cscs.ch/computers/piz-daint){:target="_blank"} and [Euler :material-open-in-new:](https://scicomp.ethz.ch/wiki/Euler){:target="_blank"} computing platforms for the CPU and GPU architectures. @@ -11,7 +11,7 @@ C2SM facilitates the utilisation of ICON on the [Piz Daint :material-open-in-new The latest release distributed by C2SM, currently [`2024.07` :material-open-in-new:](https://github.com/C2SM/icon/tree/2024.07){:target="_blank"}, is continuously being tested on both Piz Daint and Euler and receives patches when necessary. ## Mailing list -If you use ICON, please follow [these instructions](../events/icon_meetings/index.md#c2sm-icon-mailing-list) to subscribe to our mailing list. +If you use ICON, please follow [these instructions](../events/icon_meetings/index.md#c2sm-icon-mailing-list){:target="_blank"} to subscribe to our mailing list. ## Access The [ICON repository :material-open-in-new:](https://github.com/C2SM/icon){:target="_blank"} is hosted on the C2SM GitHub organisation. If you do not have access, please follow the instructions under [How to get Access](../index.md#how-to-get-access). @@ -111,12 +111,12 @@ ICON input data are stored at the following locations: ## Toolset -In the [Tools](../tools/index.md) section, you will find relevant tools for working with ICON: +In the [Tools](../tools/index.md){:target="_blank"} section, you will find relevant tools for working with ICON: -* [**Extpar**](../tools/extpar.md): External parameters for the ICON grid (preprocessing) -* [**Processing Chain**](../tools/processing_chain.md): Python workflow tool for ICON -* [**SPICE**](../tools/spice.md): Starter package for ICON-CLM experiments -* [**icon-vis**](../tools/icon-vis.md): Python scripts to visualise ICON data +* [**Extpar**](../tools/extpar.md){:target="_blank"}: External parameters for the ICON grid (preprocessing) +* [**Processing Chain**](../tools/processing_chain.md){:target="_blank"}: Python workflow tool for ICON +* [**SPICE**](../tools/spice.md){:target="_blank"}: Starter package for ICON-CLM experiments +* [**icon-vis**](../tools/icon-vis.md){:target="_blank"}: Python scripts to visualise ICON data ## Projects Learn more about ongoing projects involving ETHZ in the development of ICON: diff --git a/docs/support/index.md b/docs/support/index.md index 7bfaf01e..3427ccdf 100644 --- a/docs/support/index.md +++ b/docs/support/index.md @@ -1,12 +1,12 @@ # User Support -User Support refers to the Core Team's efforts to ensure that all supported software runs correctly on supported computer systems. This includes hosting the software for easy distribution to members, regular testing and helping members resolve issues with running and compiling. Find information about supported [tools](../tools/index.md) and [models](../models/index.md) in the corresponding sections. +User Support refers to the Core Team's efforts to ensure that all supported software runs correctly on supported computer systems. This includes hosting the software for easy distribution to members, regular testing and helping members resolve issues with running and compiling. Find information about supported [tools](../tools/index.md){:target="_blank"} and [models](../models/index.md){:target="_blank"} in the corresponding sections. ## Request support To request regular support, please [use our discussion forum :material-open-in-new:](https://github.com/C2SM/Tasks-Support/discussions/categories/support){:target="_blank"}. The Core Team will be notified and will respond as soon as possible. In addition, all C2SM members can participate in these discussions and help as well. -If you do not have access to the support forum, please follow the instructions under [How to get Access](../index.md#how-to-get-access). +If you do not have access to the support forum, please follow the instructions under [How to get Access](../index.md#how-to-get-access){:target="_blank"}. -![](assets/Support_Forum.png) +![](assets/Support_Forum.png){:target="_blank"} *Different threads in our discussion forum* diff --git a/docs/tasks/assignment.md b/docs/tasks/assignment.md index 76142737..a4e9444a 100644 --- a/docs/tasks/assignment.md +++ b/docs/tasks/assignment.md @@ -4,12 +4,12 @@ The Core Team accepts tasks from the three different areas mentioned above, each !!! info Please submit concrete tasks by following the instructions on our GitHub repository [Tasks-Support :material-open-in-new:](https://github.com/C2SM/Tasks-Support){:target="_blank"}. - If you do not have access, please follow the instructions under [How to get Access](../index.md#how-to-get-access). + If you do not have access, please follow the instructions under [How to get Access](../index.md#how-to-get-access){:target="_blank"}. ## Requirements for Tasks -Tasks are one-​time assignments that typically involve the development of a new model feature, acceleration/optimisation of a model feature, or other technical improvements to a model. Tasks are proposed by one or more C2SM members and are approved by the C2SM Working Groups (WGs). In case of tasks from C2SM Member Groups, priority will be given to tasks with greater benefit to multiple C2SM groups. Tasks must be related to our supported [tools](../tools/index.md) and [models](../models/index.md). +Tasks are one-​time assignments that typically involve the development of a new model feature, acceleration/optimisation of a model feature, or other technical improvements to a model. Tasks are proposed by one or more C2SM members and are approved by the C2SM Working Groups (WGs). In case of tasks from C2SM Member Groups, priority will be given to tasks with greater benefit to multiple C2SM groups. Tasks must be related to our supported [tools](../tools/index.md){:target="_blank"} and [models](../models/index.md){:target="_blank"}. ## Overview of current tasks diff --git a/docs/tools/int2lm.md b/docs/tools/int2lm.md index 680ff4bf..97455873 100644 --- a/docs/tools/int2lm.md +++ b/docs/tools/int2lm.md @@ -10,7 +10,7 @@ The `master` branch is continuously being tested on Piz Daint ## Access In order to get access to the [INT2LM repository hosted on the C2SM-RCM GitHub organisation :material-open-in-new:](https://github.com/C2SM-RCM/int2lm){:target="_blank"}, -please contact [C2SM Support](mailto:support@c2sm.ethz.ch). +please contact [C2SM Support](mailto:support@c2sm.ethz.ch){:target="_blank"}. ## Compile @@ -33,4 +33,4 @@ This mitigates slowdown for large input files via new namelist parameters in nam The parameters `ie_in_tot` and `je_in_tot` define the length of the data to be read, instead of the total length present in the NetCDF input file. ### Schematic about the two ways for reading NetCDF input files -![](images/int2lm_subset_schematic.png) +![](images/int2lm_subset_schematic.png){:target="_blank"} diff --git a/docs/tools/zephyr.md b/docs/tools/zephyr.md index 8f620758..38d1cc64 100644 --- a/docs/tools/zephyr.md +++ b/docs/tools/zephyr.md @@ -1,4 +1,4 @@ -# ![](https://polybox.ethz.ch/index.php/s/P1sc5n7TLhmUcld/download#only-light){:style="vertical-align: top"} ![](https://polybox.ethz.ch/index.php/s/7FVqpqKOPQw9xew/download#only-dark){:style="vertical-align: top"} Climate Data Extraction Tool +# ![](https://polybox.ethz.ch/index.php/s/P1sc5n7TLhmUcld/download#only-light){:target="_blank"}{:style="vertical-align: top"} ![](https://polybox.ethz.ch/index.php/s/7FVqpqKOPQw9xew/download#only-dark){:target="_blank"}{:style="vertical-align: top"} Climate Data Extraction Tool Zephyr is the climate data extraction tool developed by C2SM, serving as the backend processing engine for the [Zephyr website :material-open-in-new:](https://zephyr.ethz.ch){:target="_blank"}. @@ -13,14 +13,14 @@ Scans of the datasets listed below are performed daily, generating file trees in Requests are made via the [Zephyr website :material-open-in-new:](https://zephyr.ethz.ch){:target="_blank"} and submitted using the [Zephyr data request template :material-open-in-new:](https://github.com/C2SM/zephyr-request/issues/new/choose){:target="_blank"}. Zephyr supports a range of [climate models and reanalysis datasets](../datasets/index.md), including: -- [CMIP5](../datasets/climate_model_data.md#cmip5) -- [CMIP6](../datasets/climate_model_data.md#cmip6) -- [CORDEX](../datasets/climate_model_data.md#cordex) -- [CORDEX ReKliEs](../datasets/climate_model_data.md#cordex-reklies) -- [ERA5](../datasets/obs_reanalysis_data.md#era5_1) -- [ERA5 land](../datasets/obs_reanalysis_data.md#era5-land_1) -- [CERRA](../datasets/obs_reanalysis_data.md#cerra_1) -- [CERRA land](../datasets/obs_reanalysis_data.md#cerra-land_1) +- [CMIP5](../datasets/climate_model_data.md#cmip5){:target="_blank"} +- [CMIP6](../datasets/climate_model_data.md#cmip6){:target="_blank"} +- [CORDEX](../datasets/climate_model_data.md#cordex){:target="_blank"} +- [CORDEX ReKliEs](../datasets/climate_model_data.md#cordex-reklies){:target="_blank"} +- [ERA5](../datasets/obs_reanalysis_data.md#era5_1){:target="_blank"} +- [ERA5 land](../datasets/obs_reanalysis_data.md#era5-land_1){:target="_blank"} +- [CERRA](../datasets/obs_reanalysis_data.md#cerra_1){:target="_blank"} +- [CERRA land](../datasets/obs_reanalysis_data.md#cerra-land_1){:target="_blank"} Zephyr efficiently extracts both regional and global climate datasets, with options to retrieve data at individual nearest grid points or within a user-defined rectangular area. Once a request has been successfully submitted and processed, a download link will be posted to the GitHub issue thread where the request was submitted. The download link will be available for up to seven days. From 9968f7e973f8c61ca29366006eb383d1f9cf0dbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 14:40:53 +0200 Subject: [PATCH 16/28] Fix and test --- docs/best_practices/coding.md | 6 +++--- scripts/format_external_links.py | 10 ++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index 7d0767fb..a0ac961a 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -37,17 +37,17 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. -Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. ### System Tests These tests are performed to ensure that all the components and modules of a software system work together as intended and that the system meets its specified requirements and functions correctly in its operational environment. -Find an [example for system tests](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for system tests](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py) in our spack-c2sm repository. ### Tolerance tests diff --git a/scripts/format_external_links.py b/scripts/format_external_links.py index d2bb32e3..fbecda2d 100755 --- a/scripts/format_external_links.py +++ b/scripts/format_external_links.py @@ -20,10 +20,7 @@ def modify_link(line): if icon_download in line and open_new_tab in line: return line, False - # Check for incomplete or incorrect custom formatting - if open_new_tab not in line: - line = re.sub(r'(\[.*?\]\(.*?\))', r'\1' + open_new_tab, line) - return line, True + # Check for link icon if icon_external_link not in line and icon_download not in line: if re.search(download_pattern, line): line = re.sub(download_pattern, download_replacement, line) @@ -31,6 +28,11 @@ def modify_link(line): line = re.sub(general_pattern, general_replacement, line) return line, True + # Check for new tab attribute + if open_new_tab not in line: + line = re.sub(r'(\[.*?\]\(.*?\))', r'\1' + open_new_tab, line) + return line, True + # Apply the appropriate replacement based on the URL pattern if re.search(download_pattern, line): modified_line, num_subs = re.subn(download_pattern, download_replacement, line) From 3788ffafb7878eb832c50180a6308104d1f6cc8a Mon Sep 17 00:00:00 2001 From: mjaehn Date: Thu, 15 Aug 2024 12:41:06 +0000 Subject: [PATCH 17/28] GitHub Action: Apply external link format --- docs/best_practices/coding.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index a0ac961a..43d939ff 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -37,17 +37,17 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. -Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. +Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. ### System Tests These tests are performed to ensure that all the components and modules of a software system work together as intended and that the system meets its specified requirements and functions correctly in its operational environment. -Find an [example for system tests](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py) in our spack-c2sm repository. +Find an [example for system tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py) in our spack-c2sm repository. ### Tolerance tests From 79df8e464bc8039d94bc24821fa032dd5350d271 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 14:57:44 +0200 Subject: [PATCH 18/28] Fix formatter --- docs/best_practices/coding.md | 6 +++--- scripts/format_external_links.py | 37 +++++++++++++++----------------- 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index 43d939ff..a0ac961a 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -37,17 +37,17 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. -Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. ### System Tests These tests are performed to ensure that all the components and modules of a software system work together as intended and that the system meets its specified requirements and functions correctly in its operational environment. -Find an [example for system tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py) in our spack-c2sm repository. +Find an [example for system tests](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py) in our spack-c2sm repository. ### Tolerance tests diff --git a/scripts/format_external_links.py b/scripts/format_external_links.py index fbecda2d..302bfd31 100755 --- a/scripts/format_external_links.py +++ b/scripts/format_external_links.py @@ -3,6 +3,8 @@ import argparse def modify_link(line): + replaced = False + # Define patterns for general and download links general_pattern = r'\[([^\]]+)\]\((http[s]?://[^\s\)]+)\)' download_pattern = r'\[([^\]]+)\]\((https://polybox\.ethz\.ch/index\.php/s/[^\s\)]+)\)' @@ -14,32 +16,26 @@ def modify_link(line): general_replacement = r'[\1 ' + icon_external_link + r'](\2)' download_replacement = r'[\1 ' + icon_download + r'](\2)' - # Check if the line was already modified or doesn't need modification - if icon_external_link in line and open_new_tab in line: - return line, False - if icon_download in line and open_new_tab in line: - return line, False - # Check for link icon if icon_external_link not in line and icon_download not in line: - if re.search(download_pattern, line): - line = re.sub(download_pattern, download_replacement, line) + new_line = re.sub(download_pattern, download_replacement, line) + if new_line != line: + line = new_line + replaced = True else: - line = re.sub(general_pattern, general_replacement, line) - return line, True + new_line = re.sub(general_pattern, general_replacement, line) + if new_line != line: + line = new_line + replaced = True # Check for new tab attribute if open_new_tab not in line: - line = re.sub(r'(\[.*?\]\(.*?\))', r'\1' + open_new_tab, line) - return line, True - - # Apply the appropriate replacement based on the URL pattern - if re.search(download_pattern, line): - modified_line, num_subs = re.subn(download_pattern, download_replacement, line) - else: - modified_line, num_subs = re.subn(general_pattern, general_replacement, line) + new_line = re.sub(r'(\[.*?\]\(.*?\))', r'\1' + open_new_tab, line) + if new_line != line: + line = new_line + replaced = True - return modified_line, num_subs > 0 + return line, replaced def process_markdown_file(file_path): @@ -51,11 +47,12 @@ def process_markdown_file(file_path): if changed: modified = True lines[i] = new_line + print(f"Modifying line {i+1} in file: {file_path}") if modified: file.seek(0) file.writelines(lines) file.truncate() - print(f"Modified: {file_path}") + print(f"File modified: {file_path}") def main(start_path): From e5876aad6aa790ddb6f6c727ff22a9d153a66eaf Mon Sep 17 00:00:00 2001 From: mjaehn Date: Thu, 15 Aug 2024 12:57:57 +0000 Subject: [PATCH 19/28] GitHub Action: Apply external link format --- docs/best_practices/coding.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index a0ac961a..0f1a1c7e 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -37,17 +37,17 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. -Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. +Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. ### System Tests These tests are performed to ensure that all the components and modules of a software system work together as intended and that the system meets its specified requirements and functions correctly in its operational environment. -Find an [example for system tests](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py) in our spack-c2sm repository. +Find an [example for system tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/system_test.py){:target="_blank"} in our spack-c2sm repository. ### Tolerance tests From 64aea0cd3633a0b24bdf31fa32711c987336fedc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 15:01:10 +0200 Subject: [PATCH 20/28] Cleanup --- scripts/format_external_links.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/format_external_links.py b/scripts/format_external_links.py index 302bfd31..e3029ce2 100755 --- a/scripts/format_external_links.py +++ b/scripts/format_external_links.py @@ -5,14 +5,16 @@ def modify_link(line): replaced = False + # Define icons and attributes + icon_external_link = ':material-open-in-new:' + icon_download = ':material-download:' + open_new_tab = '{:target="_blank"}' + # Define patterns for general and download links general_pattern = r'\[([^\]]+)\]\((http[s]?://[^\s\)]+)\)' download_pattern = r'\[([^\]]+)\]\((https://polybox\.ethz\.ch/index\.php/s/[^\s\)]+)\)' # Define replacements for general and download links - icon_external_link = ':material-open-in-new:' - icon_download = ':material-download:' - open_new_tab = '{:target="_blank"}' general_replacement = r'[\1 ' + icon_external_link + r'](\2)' download_replacement = r'[\1 ' + icon_download + r'](\2)' From c6258631d6a160d92773d3b2fa4d6f4e11b29c7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 15:04:24 +0200 Subject: [PATCH 21/28] Revert "GitHub Action: Apply external link format" This reverts commit b4e04fdaae5490489eb091a3f0d1eb473f148f4c. --- docs/alps/index.md | 2 +- docs/alps/uenvs.md | 2 +- docs/alps/vclusters.md | 2 +- docs/best_practices/coding.md | 6 +++--- docs/best_practices/data_handling.md | 2 +- docs/best_practices/index.md | 2 +- docs/blog/posts/2024-07-01_new_design.md | 2 +- docs/blog/posts/2024-08-14_alps.md | 2 +- docs/datasets/cordex_fpsconv_data.md | 2 +- docs/events/icon_meetings/index.md | 6 +++--- docs/index.md | 6 +++--- docs/models/cosmo.md | 10 +++++----- docs/models/icon.md | 14 +++++++------- docs/support/index.md | 6 +++--- docs/tasks/assignment.md | 4 ++-- docs/tools/int2lm.md | 4 ++-- docs/tools/zephyr.md | 18 +++++++++--------- 17 files changed, 45 insertions(+), 45 deletions(-) diff --git a/docs/alps/index.md b/docs/alps/index.md index 84cdbcce..74e96de7 100644 --- a/docs/alps/index.md +++ b/docs/alps/index.md @@ -33,7 +33,7 @@ The following vClusters are hosted at CSCS: ## Introductory Workshop Material -As an introduction to the Alps infrastructure, the material of our [C2SM workshop "Switching to Alps"](../blog/posts/2024-07-02_switching_to_Alps.md){:target="_blank"} is available: +As an introduction to the Alps infrastructure, the material of our [C2SM workshop "Switching to Alps"](../blog/posts/2024-07-02_switching_to_Alps.md) is available: - [Recording :material-download:](https://polybox.ethz.ch/index.php/s/oSxyJgTjyvJKX8B){:target="_blank"}
- [Slides presenting Alps, vClusters and Uenvs :material-download:](https://polybox.ethz.ch/index.php/s/jvtIYkBvHUSGZYD){:target="_blank"}
diff --git a/docs/alps/uenvs.md b/docs/alps/uenvs.md index 09bdd5fc..b37ecf6e 100644 --- a/docs/alps/uenvs.md +++ b/docs/alps/uenvs.md @@ -25,7 +25,7 @@ A description of user environments and the `uenv` tool can be found in the [CSCS ## Uenvs central Registry and C2SM uenvs -The user environments provided by CSCS are registered in a central database. In the long run we should be able to operate only with those but, at least for the initial period, there is also the need for uenvs provided by C2SM. These are accessed by their absolute path. All supported uenvs are documented in the corresponding vClsuter section of the [dedicated page](../vclusters/){:target="_blank"}. +The user environments provided by CSCS are registered in a central database. In the long run we should be able to operate only with those but, at least for the initial period, there is also the need for uenvs provided by C2SM. These are accessed by their absolute path. All supported uenvs are documented in the corresponding vClsuter section of the [dedicated page](../vclusters/). ## The `uenv` command line tool diff --git a/docs/alps/vclusters.md b/docs/alps/vclusters.md index 9aaf0017..b3218bd1 100644 --- a/docs/alps/vclusters.md +++ b/docs/alps/vclusters.md @@ -33,7 +33,7 @@ This would allow standard connections like `ssh santis.cscs.ch` but also specify Daint is the vCluster dedicated to the User Lab. It is deployed on ~800 Grace-Hopper nodes. -Even though Weather and Climate also has the dedicated vCluster Santis (see [below](#santis){:target="_blank"}), traditional projects will be running on Daint. +Even though Weather and Climate also has the dedicated vCluster Santis (see [below](#santis)), traditional projects will be running on Daint. !!! warning "Hostname conflict" diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index 0f1a1c7e..a305ed94 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -8,7 +8,7 @@ Whether you're new to coding or already working on it, there are two important t If you're new to Git or want to improve your Git skills, we recommend attending our annual **Git for Beginners** and/or **Git for Advanced** courses. Additionally, all course materials are publicly available and can be used throughout the year. -For more details, please visit [Technical Events - Git Courses](../events/git_courses.md){:target="_blank"}. +For more details, please visit [Technical Events - Git Courses](../events/git_courses.md). ### Key Concepts of Git @@ -37,12 +37,12 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. -Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. ### System Tests diff --git a/docs/best_practices/data_handling.md b/docs/best_practices/data_handling.md index 6db1cf67..7a6ef23d 100644 --- a/docs/best_practices/data_handling.md +++ b/docs/best_practices/data_handling.md @@ -18,7 +18,7 @@ * openBIS software: Dr. Caterina Barillari, ETH SIS, [ETH Personal Page :material-open-in-new:](https://www.ethz.ch/en/the-eth-zurich/organisation/departments/informatikdienste/personen/person-detail.html?persid=185758){:target="_blank"} ## Data repositories - * [C2SM datasets](../datasets/index.md){:target="_blank"} + * [C2SM datasets](../datasets/index.md) * [Directory of data repositories :material-open-in-new:](https://www.re3data.org){:target="_blank"} * [ETH research collection :material-open-in-new:](https://www.research-collection.ethz.ch){:target="_blank"} * [Zenodo :material-open-in-new:](https://zenodo.org){:target="_blank"} diff --git a/docs/best_practices/index.md b/docs/best_practices/index.md index ad2f5dde..e4d6a191 100644 --- a/docs/best_practices/index.md +++ b/docs/best_practices/index.md @@ -1,5 +1,5 @@ # Best Practices -Here, you'll find valuable resources for improving your [coding](coding.md){:target="_blank"} and [data handling](data_handling.md){:target="_blank"} skills. For those new to coding, we emphasize the importance of using version control with Git and implementing automatic testing to ensure high-quality, reliable software. We offer courses and materials on Git, along with examples of various types of tests to help you maintain robust code. +Here, you'll find valuable resources for improving your [coding](coding.md) and [data handling](data_handling.md) skills. For those new to coding, we emphasize the importance of using version control with Git and implementing automatic testing to ensure high-quality, reliable software. We offer courses and materials on Git, along with examples of various types of tests to help you maintain robust code. Additionally, our data handling section provides guidelines for effective data management, including links to ETH resources, data repositories, and licensing advice to help you manage and share your research data responsibly and efficiently. \ No newline at end of file diff --git a/docs/blog/posts/2024-07-01_new_design.md b/docs/blog/posts/2024-07-01_new_design.md index f39ba4a9..def811ed 100644 --- a/docs/blog/posts/2024-07-01_new_design.md +++ b/docs/blog/posts/2024-07-01_new_design.md @@ -21,7 +21,7 @@ A big advantage of Material for MkDocs is how it helps us keep a consistent styl - News are managed with the `blog` feature and appear more prominently in the navigation bar - Table of Content now visible for each site on the right side bar - Clear distinction between internal and external hyperlinks -- Replaced [Datasets](../../datasets/climate_model_data.md){:target="_blank"} tables with sections and listings +- Replaced [Datasets](../../datasets/climate_model_data.md) tables with sections and listings - The [source code :material-open-in-new:](https://github.com/C2SM/c2sm.github.io){:target="_blank"} is now public (so you can try it out by yourself) ## Your Thoughts Matter diff --git a/docs/blog/posts/2024-08-14_alps.md b/docs/blog/posts/2024-08-14_alps.md index 731ce595..e0d35066 100644 --- a/docs/blog/posts/2024-08-14_alps.md +++ b/docs/blog/posts/2024-08-14_alps.md @@ -6,7 +6,7 @@ date: # New information about the Alps system available Since the transition from Piz Daint to the new Alps infrastructure is already taking place, -we have added a new navigation section [Alps](../../alps/index.md){:target="_blank"} to collect all necessary information there. +we have added a new navigation section [Alps](../../alps/index.md) to collect all necessary information there. Most importantly, C2SM users will find details about the new vClusters as well as how to use User Environments (uenvs) in order to access the software stacks. \ No newline at end of file diff --git a/docs/datasets/cordex_fpsconv_data.md b/docs/datasets/cordex_fpsconv_data.md index e9855604..d688cd2e 100644 --- a/docs/datasets/cordex_fpsconv_data.md +++ b/docs/datasets/cordex_fpsconv_data.md @@ -3,7 +3,7 @@ The CORDEX-FPSCONV dataset is a multi-model ensemble of convection permitting regional climate model runs created within [WCRP-CORDEX :material-open-in-new:](https://cordex.org/experiment-guidelines/flagship-pilot-studies/endorsed-cordex-flagship-pilote-studies/europe-mediterranean-convective-phenomena-at-high-resolution-over-europe-and-the-mediterranean/){:target="_blank"}. The model runs are described in [Coppola et al. 2020 :material-open-in-new:](https://link.springer.com/article/10.1007/s00382-018-4521-8){:target="_blank"}, [Ban et al. 2021 :material-open-in-new:](https://link.springer.com/article/10.1007/s00382-021-05708-w){:target="_blank"} and [Pichelli et al. 2021 :material-open-in-new:](https://link.springer.com/article/10.1007/s00382-021-05657-4){:target="_blank"} and cover the ALP-3 domain. -![Image of the extent of the ALP-3 domain](images/ALP-3-crop.png){:target="_blank"} +![Image of the extent of the ALP-3 domain](images/ALP-3-crop.png) So far, only the data from ETH (CLMcom-ETH-COSMO-crCLIM) has been CMORized (more info about this effort in this [pdf :material-open-in-new:](https://www.polybox.ethz.ch/index.php/s/cLZG0RkPipah6Uw){:target="_blank"}, for all other models the data format is a preliminary version (from ~September 2022) and not the one that will go to ESGF. Currently, the data archive contains mainly 1-hourly precipitation and temperature and daily maximum temperature and minimum temperature. diff --git a/docs/events/icon_meetings/index.md b/docs/events/icon_meetings/index.md index 279003fc..acfd2f40 100644 --- a/docs/events/icon_meetings/index.md +++ b/docs/events/icon_meetings/index.md @@ -11,10 +11,10 @@ In case you have any questions or suggestions, contact the meeting organiser, ## C2SM ICON Mailing List -As a member of the `c2sm.icon` mailing list, you will receive all relevant information around [ICON](../../models/icon.md){:target="_blank"} and invitations to the quarterly ICON meeting. +As a member of the `c2sm.icon` mailing list, you will receive all relevant information around [ICON](../../models/icon.md) and invitations to the quarterly ICON meeting. If you or someone from your group is not yet a member of the `c2sm.icon` mailing list, subscribe by sending an e-mail to: -[`mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname`](mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname){:target="_blank"} (modify `firstname` and `lastname` in the subject). +[`mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname`](mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname) (modify `firstname` and `lastname` in the subject). To check which lists you are subscribed to, send an e-mail to: -[`mailto:sympa@sympa.ethz.ch?subject=WHICH`](mailto:sympa@sympa.ethz.ch?subject=WHICH){:target="_blank"} \ No newline at end of file +[`mailto:sympa@sympa.ethz.ch?subject=WHICH`](mailto:sympa@sympa.ethz.ch?subject=WHICH) \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index cbabf7a4..f15c6851 100644 --- a/docs/index.md +++ b/docs/index.md @@ -43,11 +43,11 @@ This will allow you to submit new tasks, receive support from the C2SM Core Team 2. Get access to the [C2SM GitHub organisation :material-open-in-new:](https://github.com/C2SM){:target="_blank"}. - Reach out to your group’s technical contact and provide them with your GitHub account name. They will be responsible for adding you to the appropriate user group. - - If you do not know who your group's technical contact is, please send an email to [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch){:target="_blank"}. + - If you do not know who your group's technical contact is, please send an email to [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch). ## Are you a new member of the C2SM community? - Designate a technical contact within your group, preferably a permanent member who is familiar with technical aspects. -- Contact us by visiting our office in person or by emailing us at [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch){:target="_blank"}. +- Contact us by visiting our office in person or by emailing us at [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch). - Once contacted, we will initiate the setup of your group's user group on GitHub for effective collaboration. ## C2SM on GitHub @@ -59,4 +59,4 @@ This is our main GitHub organisation, which contains many repositories, includin ### [C2SM-RCM :material-open-in-new:](https://github.com/C2SM-RCM){:target="_blank"} -The C2SM-RCM organisation contains all codes related to COSMO and tools like EXTPAR. For questions and access, please contact [Jonas Jucker](mailto:jonas.jucker@c2sm.ethz.ch){:target="_blank"}. +The C2SM-RCM organisation contains all codes related to COSMO and tools like EXTPAR. For questions and access, please contact [Jonas Jucker](mailto:jonas.jucker@c2sm.ethz.ch). diff --git a/docs/models/cosmo.md b/docs/models/cosmo.md index 558fec10..8d76adb3 100644 --- a/docs/models/cosmo.md +++ b/docs/models/cosmo.md @@ -95,7 +95,7 @@ The GPU porting of the dynamical core of COSMO was accomplished by rewriting the ## Access In order to get access to the [COSMO repository :material-open-in-new:](https://github.com/C2SM-RCM/cosmo){:target="_blank"} hosted on the C2SM-RCM GitHub organisation, -please contact [C2SM Support](mailto:support@c2sm.ethz.ch){:target="_blank"}. +please contact [C2SM Support](mailto:support@c2sm.ethz.ch). Once you have access, clone the repository from GitHub using the SSH protocol: ``` @@ -107,11 +107,11 @@ If you do not already have an SSH key set up for GitHub but would like to do so, For configuring and building COSMO with Spack, please refer to the official spack-c2sm documentation, which provides instructions for [setting up a Spack instance :material-open-in-new:](https://c2sm.github.io/spack-c2sm/latest/QuickStart.html#at-cscs-ethz-daint-tsa-balfrin-and-euler){:target="_blank"} and [installing COSMO :material-open-in-new:](https://c2sm.github.io/spack-c2sm/latest/QuickStart.html#cosmo){:target="_blank"} on Piz Daint and Euler Cluster. ## Related tools -In the [Tools](../tools/index.md){:target="_blank"} section, you will find relevant tools for working with COSMO: +In the [Tools](../tools/index.md) section, you will find relevant tools for working with COSMO: -* [**Extpar:**](../tools/extpar.md){:target="_blank"} External parameters for the COSMO-grid (preprocessing) -* [**int2lm:**](../tools/int2lm.md){:target="_blank"} The interpolation software for the COSMO-model (preprocessing) -* [**Processing Chain**](../tools/processing_chain.md){:target="_blank"}: Python workflow tool for COSMO +* [**Extpar:**](../tools/extpar.md) External parameters for the COSMO-grid (preprocessing) +* [**int2lm:**](../tools/int2lm.md) The interpolation software for the COSMO-model (preprocessing) +* [**Processing Chain**](../tools/processing_chain.md): Python workflow tool for COSMO ## Documentation diff --git a/docs/models/icon.md b/docs/models/icon.md index f0b23bd6..badbd66e 100644 --- a/docs/models/icon.md +++ b/docs/models/icon.md @@ -2,7 +2,7 @@ ICON (Icosahedral Nonhydrostatic Weather and Climate Model) is a global model suitable for climate and weather prediction at regional and global domains. It is a joint project of [DWD :material-open-in-new:](https://www.dwd.de/DE/Home/home_node.html){:target="_blank"}, [MPI-M :material-open-in-new:](https://mpimet.mpg.de/startseite){:target="_blank"} and [KIT :material-open-in-new:](https://www.kit.edu/){:target="_blank"}. -To stay informed about what is going on in the ICON world and to get to know other ICON users, please attend our [quarterly ICON meeting](../events/icon_meetings/index.md){:target="_blank"}. +To stay informed about what is going on in the ICON world and to get to know other ICON users, please attend our [quarterly ICON meeting](../events/icon_meetings/index.md). ## Support status C2SM facilitates the utilisation of ICON on the [Piz Daint :material-open-in-new:](https://www.cscs.ch/computers/piz-daint){:target="_blank"} and [Euler :material-open-in-new:](https://scicomp.ethz.ch/wiki/Euler){:target="_blank"} computing platforms for the CPU and GPU architectures. @@ -11,7 +11,7 @@ C2SM facilitates the utilisation of ICON on the [Piz Daint :material-open-in-new The latest release distributed by C2SM, currently [`2024.07` :material-open-in-new:](https://github.com/C2SM/icon/tree/2024.07){:target="_blank"}, is continuously being tested on both Piz Daint and Euler and receives patches when necessary. ## Mailing list -If you use ICON, please follow [these instructions](../events/icon_meetings/index.md#c2sm-icon-mailing-list){:target="_blank"} to subscribe to our mailing list. +If you use ICON, please follow [these instructions](../events/icon_meetings/index.md#c2sm-icon-mailing-list) to subscribe to our mailing list. ## Access The [ICON repository :material-open-in-new:](https://github.com/C2SM/icon){:target="_blank"} is hosted on the C2SM GitHub organisation. If you do not have access, please follow the instructions under [How to get Access](../index.md#how-to-get-access). @@ -111,12 +111,12 @@ ICON input data are stored at the following locations: ## Toolset -In the [Tools](../tools/index.md){:target="_blank"} section, you will find relevant tools for working with ICON: +In the [Tools](../tools/index.md) section, you will find relevant tools for working with ICON: -* [**Extpar**](../tools/extpar.md){:target="_blank"}: External parameters for the ICON grid (preprocessing) -* [**Processing Chain**](../tools/processing_chain.md){:target="_blank"}: Python workflow tool for ICON -* [**SPICE**](../tools/spice.md){:target="_blank"}: Starter package for ICON-CLM experiments -* [**icon-vis**](../tools/icon-vis.md){:target="_blank"}: Python scripts to visualise ICON data +* [**Extpar**](../tools/extpar.md): External parameters for the ICON grid (preprocessing) +* [**Processing Chain**](../tools/processing_chain.md): Python workflow tool for ICON +* [**SPICE**](../tools/spice.md): Starter package for ICON-CLM experiments +* [**icon-vis**](../tools/icon-vis.md): Python scripts to visualise ICON data ## Projects Learn more about ongoing projects involving ETHZ in the development of ICON: diff --git a/docs/support/index.md b/docs/support/index.md index 3427ccdf..7bfaf01e 100644 --- a/docs/support/index.md +++ b/docs/support/index.md @@ -1,12 +1,12 @@ # User Support -User Support refers to the Core Team's efforts to ensure that all supported software runs correctly on supported computer systems. This includes hosting the software for easy distribution to members, regular testing and helping members resolve issues with running and compiling. Find information about supported [tools](../tools/index.md){:target="_blank"} and [models](../models/index.md){:target="_blank"} in the corresponding sections. +User Support refers to the Core Team's efforts to ensure that all supported software runs correctly on supported computer systems. This includes hosting the software for easy distribution to members, regular testing and helping members resolve issues with running and compiling. Find information about supported [tools](../tools/index.md) and [models](../models/index.md) in the corresponding sections. ## Request support To request regular support, please [use our discussion forum :material-open-in-new:](https://github.com/C2SM/Tasks-Support/discussions/categories/support){:target="_blank"}. The Core Team will be notified and will respond as soon as possible. In addition, all C2SM members can participate in these discussions and help as well. -If you do not have access to the support forum, please follow the instructions under [How to get Access](../index.md#how-to-get-access){:target="_blank"}. +If you do not have access to the support forum, please follow the instructions under [How to get Access](../index.md#how-to-get-access). -![](assets/Support_Forum.png){:target="_blank"} +![](assets/Support_Forum.png) *Different threads in our discussion forum* diff --git a/docs/tasks/assignment.md b/docs/tasks/assignment.md index a4e9444a..76142737 100644 --- a/docs/tasks/assignment.md +++ b/docs/tasks/assignment.md @@ -4,12 +4,12 @@ The Core Team accepts tasks from the three different areas mentioned above, each !!! info Please submit concrete tasks by following the instructions on our GitHub repository [Tasks-Support :material-open-in-new:](https://github.com/C2SM/Tasks-Support){:target="_blank"}. - If you do not have access, please follow the instructions under [How to get Access](../index.md#how-to-get-access){:target="_blank"}. + If you do not have access, please follow the instructions under [How to get Access](../index.md#how-to-get-access). ## Requirements for Tasks -Tasks are one-​time assignments that typically involve the development of a new model feature, acceleration/optimisation of a model feature, or other technical improvements to a model. Tasks are proposed by one or more C2SM members and are approved by the C2SM Working Groups (WGs). In case of tasks from C2SM Member Groups, priority will be given to tasks with greater benefit to multiple C2SM groups. Tasks must be related to our supported [tools](../tools/index.md){:target="_blank"} and [models](../models/index.md){:target="_blank"}. +Tasks are one-​time assignments that typically involve the development of a new model feature, acceleration/optimisation of a model feature, or other technical improvements to a model. Tasks are proposed by one or more C2SM members and are approved by the C2SM Working Groups (WGs). In case of tasks from C2SM Member Groups, priority will be given to tasks with greater benefit to multiple C2SM groups. Tasks must be related to our supported [tools](../tools/index.md) and [models](../models/index.md). ## Overview of current tasks diff --git a/docs/tools/int2lm.md b/docs/tools/int2lm.md index 97455873..680ff4bf 100644 --- a/docs/tools/int2lm.md +++ b/docs/tools/int2lm.md @@ -10,7 +10,7 @@ The `master` branch is continuously being tested on Piz Daint ## Access In order to get access to the [INT2LM repository hosted on the C2SM-RCM GitHub organisation :material-open-in-new:](https://github.com/C2SM-RCM/int2lm){:target="_blank"}, -please contact [C2SM Support](mailto:support@c2sm.ethz.ch){:target="_blank"}. +please contact [C2SM Support](mailto:support@c2sm.ethz.ch). ## Compile @@ -33,4 +33,4 @@ This mitigates slowdown for large input files via new namelist parameters in nam The parameters `ie_in_tot` and `je_in_tot` define the length of the data to be read, instead of the total length present in the NetCDF input file. ### Schematic about the two ways for reading NetCDF input files -![](images/int2lm_subset_schematic.png){:target="_blank"} +![](images/int2lm_subset_schematic.png) diff --git a/docs/tools/zephyr.md b/docs/tools/zephyr.md index 38d1cc64..8f620758 100644 --- a/docs/tools/zephyr.md +++ b/docs/tools/zephyr.md @@ -1,4 +1,4 @@ -# ![](https://polybox.ethz.ch/index.php/s/P1sc5n7TLhmUcld/download#only-light){:target="_blank"}{:style="vertical-align: top"} ![](https://polybox.ethz.ch/index.php/s/7FVqpqKOPQw9xew/download#only-dark){:target="_blank"}{:style="vertical-align: top"} Climate Data Extraction Tool +# ![](https://polybox.ethz.ch/index.php/s/P1sc5n7TLhmUcld/download#only-light){:style="vertical-align: top"} ![](https://polybox.ethz.ch/index.php/s/7FVqpqKOPQw9xew/download#only-dark){:style="vertical-align: top"} Climate Data Extraction Tool Zephyr is the climate data extraction tool developed by C2SM, serving as the backend processing engine for the [Zephyr website :material-open-in-new:](https://zephyr.ethz.ch){:target="_blank"}. @@ -13,14 +13,14 @@ Scans of the datasets listed below are performed daily, generating file trees in Requests are made via the [Zephyr website :material-open-in-new:](https://zephyr.ethz.ch){:target="_blank"} and submitted using the [Zephyr data request template :material-open-in-new:](https://github.com/C2SM/zephyr-request/issues/new/choose){:target="_blank"}. Zephyr supports a range of [climate models and reanalysis datasets](../datasets/index.md), including: -- [CMIP5](../datasets/climate_model_data.md#cmip5){:target="_blank"} -- [CMIP6](../datasets/climate_model_data.md#cmip6){:target="_blank"} -- [CORDEX](../datasets/climate_model_data.md#cordex){:target="_blank"} -- [CORDEX ReKliEs](../datasets/climate_model_data.md#cordex-reklies){:target="_blank"} -- [ERA5](../datasets/obs_reanalysis_data.md#era5_1){:target="_blank"} -- [ERA5 land](../datasets/obs_reanalysis_data.md#era5-land_1){:target="_blank"} -- [CERRA](../datasets/obs_reanalysis_data.md#cerra_1){:target="_blank"} -- [CERRA land](../datasets/obs_reanalysis_data.md#cerra-land_1){:target="_blank"} +- [CMIP5](../datasets/climate_model_data.md#cmip5) +- [CMIP6](../datasets/climate_model_data.md#cmip6) +- [CORDEX](../datasets/climate_model_data.md#cordex) +- [CORDEX ReKliEs](../datasets/climate_model_data.md#cordex-reklies) +- [ERA5](../datasets/obs_reanalysis_data.md#era5_1) +- [ERA5 land](../datasets/obs_reanalysis_data.md#era5-land_1) +- [CERRA](../datasets/obs_reanalysis_data.md#cerra_1) +- [CERRA land](../datasets/obs_reanalysis_data.md#cerra-land_1) Zephyr efficiently extracts both regional and global climate datasets, with options to retrieve data at individual nearest grid points or within a user-defined rectangular area. Once a request has been successfully submitted and processed, a download link will be posted to the GitHub issue thread where the request was submitted. The download link will be available for up to seven days. From 0652faf9623b079f20dedf9d9e9fe388fa0e24b0 Mon Sep 17 00:00:00 2001 From: mjaehn Date: Thu, 15 Aug 2024 13:04:40 +0000 Subject: [PATCH 22/28] GitHub Action: Apply external link format --- docs/alps/index.md | 2 +- docs/alps/uenvs.md | 2 +- docs/alps/vclusters.md | 2 +- docs/best_practices/coding.md | 6 +++--- docs/best_practices/data_handling.md | 2 +- docs/best_practices/index.md | 2 +- docs/blog/posts/2024-07-01_new_design.md | 2 +- docs/blog/posts/2024-08-14_alps.md | 2 +- docs/datasets/cordex_fpsconv_data.md | 2 +- docs/events/icon_meetings/index.md | 6 +++--- docs/index.md | 6 +++--- docs/models/cosmo.md | 10 +++++----- docs/models/icon.md | 14 +++++++------- docs/support/index.md | 6 +++--- docs/tasks/assignment.md | 4 ++-- docs/tools/int2lm.md | 4 ++-- docs/tools/zephyr.md | 18 +++++++++--------- 17 files changed, 45 insertions(+), 45 deletions(-) diff --git a/docs/alps/index.md b/docs/alps/index.md index 74e96de7..84cdbcce 100644 --- a/docs/alps/index.md +++ b/docs/alps/index.md @@ -33,7 +33,7 @@ The following vClusters are hosted at CSCS: ## Introductory Workshop Material -As an introduction to the Alps infrastructure, the material of our [C2SM workshop "Switching to Alps"](../blog/posts/2024-07-02_switching_to_Alps.md) is available: +As an introduction to the Alps infrastructure, the material of our [C2SM workshop "Switching to Alps"](../blog/posts/2024-07-02_switching_to_Alps.md){:target="_blank"} is available: - [Recording :material-download:](https://polybox.ethz.ch/index.php/s/oSxyJgTjyvJKX8B){:target="_blank"}
- [Slides presenting Alps, vClusters and Uenvs :material-download:](https://polybox.ethz.ch/index.php/s/jvtIYkBvHUSGZYD){:target="_blank"}
diff --git a/docs/alps/uenvs.md b/docs/alps/uenvs.md index b37ecf6e..09bdd5fc 100644 --- a/docs/alps/uenvs.md +++ b/docs/alps/uenvs.md @@ -25,7 +25,7 @@ A description of user environments and the `uenv` tool can be found in the [CSCS ## Uenvs central Registry and C2SM uenvs -The user environments provided by CSCS are registered in a central database. In the long run we should be able to operate only with those but, at least for the initial period, there is also the need for uenvs provided by C2SM. These are accessed by their absolute path. All supported uenvs are documented in the corresponding vClsuter section of the [dedicated page](../vclusters/). +The user environments provided by CSCS are registered in a central database. In the long run we should be able to operate only with those but, at least for the initial period, there is also the need for uenvs provided by C2SM. These are accessed by their absolute path. All supported uenvs are documented in the corresponding vClsuter section of the [dedicated page](../vclusters/){:target="_blank"}. ## The `uenv` command line tool diff --git a/docs/alps/vclusters.md b/docs/alps/vclusters.md index b3218bd1..9aaf0017 100644 --- a/docs/alps/vclusters.md +++ b/docs/alps/vclusters.md @@ -33,7 +33,7 @@ This would allow standard connections like `ssh santis.cscs.ch` but also specify Daint is the vCluster dedicated to the User Lab. It is deployed on ~800 Grace-Hopper nodes. -Even though Weather and Climate also has the dedicated vCluster Santis (see [below](#santis)), traditional projects will be running on Daint. +Even though Weather and Climate also has the dedicated vCluster Santis (see [below](#santis){:target="_blank"}), traditional projects will be running on Daint. !!! warning "Hostname conflict" diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index a305ed94..0f1a1c7e 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -8,7 +8,7 @@ Whether you're new to coding or already working on it, there are two important t If you're new to Git or want to improve your Git skills, we recommend attending our annual **Git for Beginners** and/or **Git for Advanced** courses. Additionally, all course materials are publicly available and can be used throughout the year. -For more details, please visit [Technical Events - Git Courses](../events/git_courses.md). +For more details, please visit [Technical Events - Git Courses](../events/git_courses.md){:target="_blank"}. ### Key Concepts of Git @@ -37,12 +37,12 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. -Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. +Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. ### System Tests diff --git a/docs/best_practices/data_handling.md b/docs/best_practices/data_handling.md index 7a6ef23d..6db1cf67 100644 --- a/docs/best_practices/data_handling.md +++ b/docs/best_practices/data_handling.md @@ -18,7 +18,7 @@ * openBIS software: Dr. Caterina Barillari, ETH SIS, [ETH Personal Page :material-open-in-new:](https://www.ethz.ch/en/the-eth-zurich/organisation/departments/informatikdienste/personen/person-detail.html?persid=185758){:target="_blank"} ## Data repositories - * [C2SM datasets](../datasets/index.md) + * [C2SM datasets](../datasets/index.md){:target="_blank"} * [Directory of data repositories :material-open-in-new:](https://www.re3data.org){:target="_blank"} * [ETH research collection :material-open-in-new:](https://www.research-collection.ethz.ch){:target="_blank"} * [Zenodo :material-open-in-new:](https://zenodo.org){:target="_blank"} diff --git a/docs/best_practices/index.md b/docs/best_practices/index.md index e4d6a191..ad2f5dde 100644 --- a/docs/best_practices/index.md +++ b/docs/best_practices/index.md @@ -1,5 +1,5 @@ # Best Practices -Here, you'll find valuable resources for improving your [coding](coding.md) and [data handling](data_handling.md) skills. For those new to coding, we emphasize the importance of using version control with Git and implementing automatic testing to ensure high-quality, reliable software. We offer courses and materials on Git, along with examples of various types of tests to help you maintain robust code. +Here, you'll find valuable resources for improving your [coding](coding.md){:target="_blank"} and [data handling](data_handling.md){:target="_blank"} skills. For those new to coding, we emphasize the importance of using version control with Git and implementing automatic testing to ensure high-quality, reliable software. We offer courses and materials on Git, along with examples of various types of tests to help you maintain robust code. Additionally, our data handling section provides guidelines for effective data management, including links to ETH resources, data repositories, and licensing advice to help you manage and share your research data responsibly and efficiently. \ No newline at end of file diff --git a/docs/blog/posts/2024-07-01_new_design.md b/docs/blog/posts/2024-07-01_new_design.md index def811ed..f39ba4a9 100644 --- a/docs/blog/posts/2024-07-01_new_design.md +++ b/docs/blog/posts/2024-07-01_new_design.md @@ -21,7 +21,7 @@ A big advantage of Material for MkDocs is how it helps us keep a consistent styl - News are managed with the `blog` feature and appear more prominently in the navigation bar - Table of Content now visible for each site on the right side bar - Clear distinction between internal and external hyperlinks -- Replaced [Datasets](../../datasets/climate_model_data.md) tables with sections and listings +- Replaced [Datasets](../../datasets/climate_model_data.md){:target="_blank"} tables with sections and listings - The [source code :material-open-in-new:](https://github.com/C2SM/c2sm.github.io){:target="_blank"} is now public (so you can try it out by yourself) ## Your Thoughts Matter diff --git a/docs/blog/posts/2024-08-14_alps.md b/docs/blog/posts/2024-08-14_alps.md index e0d35066..731ce595 100644 --- a/docs/blog/posts/2024-08-14_alps.md +++ b/docs/blog/posts/2024-08-14_alps.md @@ -6,7 +6,7 @@ date: # New information about the Alps system available Since the transition from Piz Daint to the new Alps infrastructure is already taking place, -we have added a new navigation section [Alps](../../alps/index.md) to collect all necessary information there. +we have added a new navigation section [Alps](../../alps/index.md){:target="_blank"} to collect all necessary information there. Most importantly, C2SM users will find details about the new vClusters as well as how to use User Environments (uenvs) in order to access the software stacks. \ No newline at end of file diff --git a/docs/datasets/cordex_fpsconv_data.md b/docs/datasets/cordex_fpsconv_data.md index d688cd2e..e9855604 100644 --- a/docs/datasets/cordex_fpsconv_data.md +++ b/docs/datasets/cordex_fpsconv_data.md @@ -3,7 +3,7 @@ The CORDEX-FPSCONV dataset is a multi-model ensemble of convection permitting regional climate model runs created within [WCRP-CORDEX :material-open-in-new:](https://cordex.org/experiment-guidelines/flagship-pilot-studies/endorsed-cordex-flagship-pilote-studies/europe-mediterranean-convective-phenomena-at-high-resolution-over-europe-and-the-mediterranean/){:target="_blank"}. The model runs are described in [Coppola et al. 2020 :material-open-in-new:](https://link.springer.com/article/10.1007/s00382-018-4521-8){:target="_blank"}, [Ban et al. 2021 :material-open-in-new:](https://link.springer.com/article/10.1007/s00382-021-05708-w){:target="_blank"} and [Pichelli et al. 2021 :material-open-in-new:](https://link.springer.com/article/10.1007/s00382-021-05657-4){:target="_blank"} and cover the ALP-3 domain. -![Image of the extent of the ALP-3 domain](images/ALP-3-crop.png) +![Image of the extent of the ALP-3 domain](images/ALP-3-crop.png){:target="_blank"} So far, only the data from ETH (CLMcom-ETH-COSMO-crCLIM) has been CMORized (more info about this effort in this [pdf :material-open-in-new:](https://www.polybox.ethz.ch/index.php/s/cLZG0RkPipah6Uw){:target="_blank"}, for all other models the data format is a preliminary version (from ~September 2022) and not the one that will go to ESGF. Currently, the data archive contains mainly 1-hourly precipitation and temperature and daily maximum temperature and minimum temperature. diff --git a/docs/events/icon_meetings/index.md b/docs/events/icon_meetings/index.md index acfd2f40..279003fc 100644 --- a/docs/events/icon_meetings/index.md +++ b/docs/events/icon_meetings/index.md @@ -11,10 +11,10 @@ In case you have any questions or suggestions, contact the meeting organiser, ## C2SM ICON Mailing List -As a member of the `c2sm.icon` mailing list, you will receive all relevant information around [ICON](../../models/icon.md) and invitations to the quarterly ICON meeting. +As a member of the `c2sm.icon` mailing list, you will receive all relevant information around [ICON](../../models/icon.md){:target="_blank"} and invitations to the quarterly ICON meeting. If you or someone from your group is not yet a member of the `c2sm.icon` mailing list, subscribe by sending an e-mail to: -[`mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname`](mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname) (modify `firstname` and `lastname` in the subject). +[`mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname`](mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname){:target="_blank"} (modify `firstname` and `lastname` in the subject). To check which lists you are subscribed to, send an e-mail to: -[`mailto:sympa@sympa.ethz.ch?subject=WHICH`](mailto:sympa@sympa.ethz.ch?subject=WHICH) \ No newline at end of file +[`mailto:sympa@sympa.ethz.ch?subject=WHICH`](mailto:sympa@sympa.ethz.ch?subject=WHICH){:target="_blank"} \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index f15c6851..cbabf7a4 100644 --- a/docs/index.md +++ b/docs/index.md @@ -43,11 +43,11 @@ This will allow you to submit new tasks, receive support from the C2SM Core Team 2. Get access to the [C2SM GitHub organisation :material-open-in-new:](https://github.com/C2SM){:target="_blank"}. - Reach out to your group’s technical contact and provide them with your GitHub account name. They will be responsible for adding you to the appropriate user group. - - If you do not know who your group's technical contact is, please send an email to [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch). + - If you do not know who your group's technical contact is, please send an email to [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch){:target="_blank"}. ## Are you a new member of the C2SM community? - Designate a technical contact within your group, preferably a permanent member who is familiar with technical aspects. -- Contact us by visiting our office in person or by emailing us at [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch). +- Contact us by visiting our office in person or by emailing us at [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch){:target="_blank"}. - Once contacted, we will initiate the setup of your group's user group on GitHub for effective collaboration. ## C2SM on GitHub @@ -59,4 +59,4 @@ This is our main GitHub organisation, which contains many repositories, includin ### [C2SM-RCM :material-open-in-new:](https://github.com/C2SM-RCM){:target="_blank"} -The C2SM-RCM organisation contains all codes related to COSMO and tools like EXTPAR. For questions and access, please contact [Jonas Jucker](mailto:jonas.jucker@c2sm.ethz.ch). +The C2SM-RCM organisation contains all codes related to COSMO and tools like EXTPAR. For questions and access, please contact [Jonas Jucker](mailto:jonas.jucker@c2sm.ethz.ch){:target="_blank"}. diff --git a/docs/models/cosmo.md b/docs/models/cosmo.md index 8d76adb3..558fec10 100644 --- a/docs/models/cosmo.md +++ b/docs/models/cosmo.md @@ -95,7 +95,7 @@ The GPU porting of the dynamical core of COSMO was accomplished by rewriting the ## Access In order to get access to the [COSMO repository :material-open-in-new:](https://github.com/C2SM-RCM/cosmo){:target="_blank"} hosted on the C2SM-RCM GitHub organisation, -please contact [C2SM Support](mailto:support@c2sm.ethz.ch). +please contact [C2SM Support](mailto:support@c2sm.ethz.ch){:target="_blank"}. Once you have access, clone the repository from GitHub using the SSH protocol: ``` @@ -107,11 +107,11 @@ If you do not already have an SSH key set up for GitHub but would like to do so, For configuring and building COSMO with Spack, please refer to the official spack-c2sm documentation, which provides instructions for [setting up a Spack instance :material-open-in-new:](https://c2sm.github.io/spack-c2sm/latest/QuickStart.html#at-cscs-ethz-daint-tsa-balfrin-and-euler){:target="_blank"} and [installing COSMO :material-open-in-new:](https://c2sm.github.io/spack-c2sm/latest/QuickStart.html#cosmo){:target="_blank"} on Piz Daint and Euler Cluster. ## Related tools -In the [Tools](../tools/index.md) section, you will find relevant tools for working with COSMO: +In the [Tools](../tools/index.md){:target="_blank"} section, you will find relevant tools for working with COSMO: -* [**Extpar:**](../tools/extpar.md) External parameters for the COSMO-grid (preprocessing) -* [**int2lm:**](../tools/int2lm.md) The interpolation software for the COSMO-model (preprocessing) -* [**Processing Chain**](../tools/processing_chain.md): Python workflow tool for COSMO +* [**Extpar:**](../tools/extpar.md){:target="_blank"} External parameters for the COSMO-grid (preprocessing) +* [**int2lm:**](../tools/int2lm.md){:target="_blank"} The interpolation software for the COSMO-model (preprocessing) +* [**Processing Chain**](../tools/processing_chain.md){:target="_blank"}: Python workflow tool for COSMO ## Documentation diff --git a/docs/models/icon.md b/docs/models/icon.md index badbd66e..f0b23bd6 100644 --- a/docs/models/icon.md +++ b/docs/models/icon.md @@ -2,7 +2,7 @@ ICON (Icosahedral Nonhydrostatic Weather and Climate Model) is a global model suitable for climate and weather prediction at regional and global domains. It is a joint project of [DWD :material-open-in-new:](https://www.dwd.de/DE/Home/home_node.html){:target="_blank"}, [MPI-M :material-open-in-new:](https://mpimet.mpg.de/startseite){:target="_blank"} and [KIT :material-open-in-new:](https://www.kit.edu/){:target="_blank"}. -To stay informed about what is going on in the ICON world and to get to know other ICON users, please attend our [quarterly ICON meeting](../events/icon_meetings/index.md). +To stay informed about what is going on in the ICON world and to get to know other ICON users, please attend our [quarterly ICON meeting](../events/icon_meetings/index.md){:target="_blank"}. ## Support status C2SM facilitates the utilisation of ICON on the [Piz Daint :material-open-in-new:](https://www.cscs.ch/computers/piz-daint){:target="_blank"} and [Euler :material-open-in-new:](https://scicomp.ethz.ch/wiki/Euler){:target="_blank"} computing platforms for the CPU and GPU architectures. @@ -11,7 +11,7 @@ C2SM facilitates the utilisation of ICON on the [Piz Daint :material-open-in-new The latest release distributed by C2SM, currently [`2024.07` :material-open-in-new:](https://github.com/C2SM/icon/tree/2024.07){:target="_blank"}, is continuously being tested on both Piz Daint and Euler and receives patches when necessary. ## Mailing list -If you use ICON, please follow [these instructions](../events/icon_meetings/index.md#c2sm-icon-mailing-list) to subscribe to our mailing list. +If you use ICON, please follow [these instructions](../events/icon_meetings/index.md#c2sm-icon-mailing-list){:target="_blank"} to subscribe to our mailing list. ## Access The [ICON repository :material-open-in-new:](https://github.com/C2SM/icon){:target="_blank"} is hosted on the C2SM GitHub organisation. If you do not have access, please follow the instructions under [How to get Access](../index.md#how-to-get-access). @@ -111,12 +111,12 @@ ICON input data are stored at the following locations: ## Toolset -In the [Tools](../tools/index.md) section, you will find relevant tools for working with ICON: +In the [Tools](../tools/index.md){:target="_blank"} section, you will find relevant tools for working with ICON: -* [**Extpar**](../tools/extpar.md): External parameters for the ICON grid (preprocessing) -* [**Processing Chain**](../tools/processing_chain.md): Python workflow tool for ICON -* [**SPICE**](../tools/spice.md): Starter package for ICON-CLM experiments -* [**icon-vis**](../tools/icon-vis.md): Python scripts to visualise ICON data +* [**Extpar**](../tools/extpar.md){:target="_blank"}: External parameters for the ICON grid (preprocessing) +* [**Processing Chain**](../tools/processing_chain.md){:target="_blank"}: Python workflow tool for ICON +* [**SPICE**](../tools/spice.md){:target="_blank"}: Starter package for ICON-CLM experiments +* [**icon-vis**](../tools/icon-vis.md){:target="_blank"}: Python scripts to visualise ICON data ## Projects Learn more about ongoing projects involving ETHZ in the development of ICON: diff --git a/docs/support/index.md b/docs/support/index.md index 7bfaf01e..3427ccdf 100644 --- a/docs/support/index.md +++ b/docs/support/index.md @@ -1,12 +1,12 @@ # User Support -User Support refers to the Core Team's efforts to ensure that all supported software runs correctly on supported computer systems. This includes hosting the software for easy distribution to members, regular testing and helping members resolve issues with running and compiling. Find information about supported [tools](../tools/index.md) and [models](../models/index.md) in the corresponding sections. +User Support refers to the Core Team's efforts to ensure that all supported software runs correctly on supported computer systems. This includes hosting the software for easy distribution to members, regular testing and helping members resolve issues with running and compiling. Find information about supported [tools](../tools/index.md){:target="_blank"} and [models](../models/index.md){:target="_blank"} in the corresponding sections. ## Request support To request regular support, please [use our discussion forum :material-open-in-new:](https://github.com/C2SM/Tasks-Support/discussions/categories/support){:target="_blank"}. The Core Team will be notified and will respond as soon as possible. In addition, all C2SM members can participate in these discussions and help as well. -If you do not have access to the support forum, please follow the instructions under [How to get Access](../index.md#how-to-get-access). +If you do not have access to the support forum, please follow the instructions under [How to get Access](../index.md#how-to-get-access){:target="_blank"}. -![](assets/Support_Forum.png) +![](assets/Support_Forum.png){:target="_blank"} *Different threads in our discussion forum* diff --git a/docs/tasks/assignment.md b/docs/tasks/assignment.md index 76142737..a4e9444a 100644 --- a/docs/tasks/assignment.md +++ b/docs/tasks/assignment.md @@ -4,12 +4,12 @@ The Core Team accepts tasks from the three different areas mentioned above, each !!! info Please submit concrete tasks by following the instructions on our GitHub repository [Tasks-Support :material-open-in-new:](https://github.com/C2SM/Tasks-Support){:target="_blank"}. - If you do not have access, please follow the instructions under [How to get Access](../index.md#how-to-get-access). + If you do not have access, please follow the instructions under [How to get Access](../index.md#how-to-get-access){:target="_blank"}. ## Requirements for Tasks -Tasks are one-​time assignments that typically involve the development of a new model feature, acceleration/optimisation of a model feature, or other technical improvements to a model. Tasks are proposed by one or more C2SM members and are approved by the C2SM Working Groups (WGs). In case of tasks from C2SM Member Groups, priority will be given to tasks with greater benefit to multiple C2SM groups. Tasks must be related to our supported [tools](../tools/index.md) and [models](../models/index.md). +Tasks are one-​time assignments that typically involve the development of a new model feature, acceleration/optimisation of a model feature, or other technical improvements to a model. Tasks are proposed by one or more C2SM members and are approved by the C2SM Working Groups (WGs). In case of tasks from C2SM Member Groups, priority will be given to tasks with greater benefit to multiple C2SM groups. Tasks must be related to our supported [tools](../tools/index.md){:target="_blank"} and [models](../models/index.md){:target="_blank"}. ## Overview of current tasks diff --git a/docs/tools/int2lm.md b/docs/tools/int2lm.md index 680ff4bf..97455873 100644 --- a/docs/tools/int2lm.md +++ b/docs/tools/int2lm.md @@ -10,7 +10,7 @@ The `master` branch is continuously being tested on Piz Daint ## Access In order to get access to the [INT2LM repository hosted on the C2SM-RCM GitHub organisation :material-open-in-new:](https://github.com/C2SM-RCM/int2lm){:target="_blank"}, -please contact [C2SM Support](mailto:support@c2sm.ethz.ch). +please contact [C2SM Support](mailto:support@c2sm.ethz.ch){:target="_blank"}. ## Compile @@ -33,4 +33,4 @@ This mitigates slowdown for large input files via new namelist parameters in nam The parameters `ie_in_tot` and `je_in_tot` define the length of the data to be read, instead of the total length present in the NetCDF input file. ### Schematic about the two ways for reading NetCDF input files -![](images/int2lm_subset_schematic.png) +![](images/int2lm_subset_schematic.png){:target="_blank"} diff --git a/docs/tools/zephyr.md b/docs/tools/zephyr.md index 8f620758..38d1cc64 100644 --- a/docs/tools/zephyr.md +++ b/docs/tools/zephyr.md @@ -1,4 +1,4 @@ -# ![](https://polybox.ethz.ch/index.php/s/P1sc5n7TLhmUcld/download#only-light){:style="vertical-align: top"} ![](https://polybox.ethz.ch/index.php/s/7FVqpqKOPQw9xew/download#only-dark){:style="vertical-align: top"} Climate Data Extraction Tool +# ![](https://polybox.ethz.ch/index.php/s/P1sc5n7TLhmUcld/download#only-light){:target="_blank"}{:style="vertical-align: top"} ![](https://polybox.ethz.ch/index.php/s/7FVqpqKOPQw9xew/download#only-dark){:target="_blank"}{:style="vertical-align: top"} Climate Data Extraction Tool Zephyr is the climate data extraction tool developed by C2SM, serving as the backend processing engine for the [Zephyr website :material-open-in-new:](https://zephyr.ethz.ch){:target="_blank"}. @@ -13,14 +13,14 @@ Scans of the datasets listed below are performed daily, generating file trees in Requests are made via the [Zephyr website :material-open-in-new:](https://zephyr.ethz.ch){:target="_blank"} and submitted using the [Zephyr data request template :material-open-in-new:](https://github.com/C2SM/zephyr-request/issues/new/choose){:target="_blank"}. Zephyr supports a range of [climate models and reanalysis datasets](../datasets/index.md), including: -- [CMIP5](../datasets/climate_model_data.md#cmip5) -- [CMIP6](../datasets/climate_model_data.md#cmip6) -- [CORDEX](../datasets/climate_model_data.md#cordex) -- [CORDEX ReKliEs](../datasets/climate_model_data.md#cordex-reklies) -- [ERA5](../datasets/obs_reanalysis_data.md#era5_1) -- [ERA5 land](../datasets/obs_reanalysis_data.md#era5-land_1) -- [CERRA](../datasets/obs_reanalysis_data.md#cerra_1) -- [CERRA land](../datasets/obs_reanalysis_data.md#cerra-land_1) +- [CMIP5](../datasets/climate_model_data.md#cmip5){:target="_blank"} +- [CMIP6](../datasets/climate_model_data.md#cmip6){:target="_blank"} +- [CORDEX](../datasets/climate_model_data.md#cordex){:target="_blank"} +- [CORDEX ReKliEs](../datasets/climate_model_data.md#cordex-reklies){:target="_blank"} +- [ERA5](../datasets/obs_reanalysis_data.md#era5_1){:target="_blank"} +- [ERA5 land](../datasets/obs_reanalysis_data.md#era5-land_1){:target="_blank"} +- [CERRA](../datasets/obs_reanalysis_data.md#cerra_1){:target="_blank"} +- [CERRA land](../datasets/obs_reanalysis_data.md#cerra-land_1){:target="_blank"} Zephyr efficiently extracts both regional and global climate datasets, with options to retrieve data at individual nearest grid points or within a user-defined rectangular area. Once a request has been successfully submitted and processed, a download link will be posted to the GitHub issue thread where the request was submitted. The download link will be available for up to seven days. From 113cbbfdf93d41b24b1fad93cdfde3b90c757ae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 15:05:43 +0200 Subject: [PATCH 23/28] Revert "GitHub Action: Apply external link format" This reverts commit 0652faf9623b079f20dedf9d9e9fe388fa0e24b0. --- docs/alps/index.md | 2 +- docs/alps/uenvs.md | 2 +- docs/alps/vclusters.md | 2 +- docs/best_practices/coding.md | 6 +++--- docs/best_practices/data_handling.md | 2 +- docs/best_practices/index.md | 2 +- docs/blog/posts/2024-07-01_new_design.md | 2 +- docs/blog/posts/2024-08-14_alps.md | 2 +- docs/datasets/cordex_fpsconv_data.md | 2 +- docs/events/icon_meetings/index.md | 6 +++--- docs/index.md | 6 +++--- docs/models/cosmo.md | 10 +++++----- docs/models/icon.md | 14 +++++++------- docs/support/index.md | 6 +++--- docs/tasks/assignment.md | 4 ++-- docs/tools/int2lm.md | 4 ++-- docs/tools/zephyr.md | 18 +++++++++--------- 17 files changed, 45 insertions(+), 45 deletions(-) diff --git a/docs/alps/index.md b/docs/alps/index.md index 84cdbcce..74e96de7 100644 --- a/docs/alps/index.md +++ b/docs/alps/index.md @@ -33,7 +33,7 @@ The following vClusters are hosted at CSCS: ## Introductory Workshop Material -As an introduction to the Alps infrastructure, the material of our [C2SM workshop "Switching to Alps"](../blog/posts/2024-07-02_switching_to_Alps.md){:target="_blank"} is available: +As an introduction to the Alps infrastructure, the material of our [C2SM workshop "Switching to Alps"](../blog/posts/2024-07-02_switching_to_Alps.md) is available: - [Recording :material-download:](https://polybox.ethz.ch/index.php/s/oSxyJgTjyvJKX8B){:target="_blank"}
- [Slides presenting Alps, vClusters and Uenvs :material-download:](https://polybox.ethz.ch/index.php/s/jvtIYkBvHUSGZYD){:target="_blank"}
diff --git a/docs/alps/uenvs.md b/docs/alps/uenvs.md index 09bdd5fc..b37ecf6e 100644 --- a/docs/alps/uenvs.md +++ b/docs/alps/uenvs.md @@ -25,7 +25,7 @@ A description of user environments and the `uenv` tool can be found in the [CSCS ## Uenvs central Registry and C2SM uenvs -The user environments provided by CSCS are registered in a central database. In the long run we should be able to operate only with those but, at least for the initial period, there is also the need for uenvs provided by C2SM. These are accessed by their absolute path. All supported uenvs are documented in the corresponding vClsuter section of the [dedicated page](../vclusters/){:target="_blank"}. +The user environments provided by CSCS are registered in a central database. In the long run we should be able to operate only with those but, at least for the initial period, there is also the need for uenvs provided by C2SM. These are accessed by their absolute path. All supported uenvs are documented in the corresponding vClsuter section of the [dedicated page](../vclusters/). ## The `uenv` command line tool diff --git a/docs/alps/vclusters.md b/docs/alps/vclusters.md index 9aaf0017..b3218bd1 100644 --- a/docs/alps/vclusters.md +++ b/docs/alps/vclusters.md @@ -33,7 +33,7 @@ This would allow standard connections like `ssh santis.cscs.ch` but also specify Daint is the vCluster dedicated to the User Lab. It is deployed on ~800 Grace-Hopper nodes. -Even though Weather and Climate also has the dedicated vCluster Santis (see [below](#santis){:target="_blank"}), traditional projects will be running on Daint. +Even though Weather and Climate also has the dedicated vCluster Santis (see [below](#santis)), traditional projects will be running on Daint. !!! warning "Hostname conflict" diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index 0f1a1c7e..a305ed94 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -8,7 +8,7 @@ Whether you're new to coding or already working on it, there are two important t If you're new to Git or want to improve your Git skills, we recommend attending our annual **Git for Beginners** and/or **Git for Advanced** courses. Additionally, all course materials are publicly available and can be used throughout the year. -For more details, please visit [Technical Events - Git Courses](../events/git_courses.md){:target="_blank"}. +For more details, please visit [Technical Events - Git Courses](../events/git_courses.md). ### Key Concepts of Git @@ -37,12 +37,12 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. -Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. ### System Tests diff --git a/docs/best_practices/data_handling.md b/docs/best_practices/data_handling.md index 6db1cf67..7a6ef23d 100644 --- a/docs/best_practices/data_handling.md +++ b/docs/best_practices/data_handling.md @@ -18,7 +18,7 @@ * openBIS software: Dr. Caterina Barillari, ETH SIS, [ETH Personal Page :material-open-in-new:](https://www.ethz.ch/en/the-eth-zurich/organisation/departments/informatikdienste/personen/person-detail.html?persid=185758){:target="_blank"} ## Data repositories - * [C2SM datasets](../datasets/index.md){:target="_blank"} + * [C2SM datasets](../datasets/index.md) * [Directory of data repositories :material-open-in-new:](https://www.re3data.org){:target="_blank"} * [ETH research collection :material-open-in-new:](https://www.research-collection.ethz.ch){:target="_blank"} * [Zenodo :material-open-in-new:](https://zenodo.org){:target="_blank"} diff --git a/docs/best_practices/index.md b/docs/best_practices/index.md index ad2f5dde..e4d6a191 100644 --- a/docs/best_practices/index.md +++ b/docs/best_practices/index.md @@ -1,5 +1,5 @@ # Best Practices -Here, you'll find valuable resources for improving your [coding](coding.md){:target="_blank"} and [data handling](data_handling.md){:target="_blank"} skills. For those new to coding, we emphasize the importance of using version control with Git and implementing automatic testing to ensure high-quality, reliable software. We offer courses and materials on Git, along with examples of various types of tests to help you maintain robust code. +Here, you'll find valuable resources for improving your [coding](coding.md) and [data handling](data_handling.md) skills. For those new to coding, we emphasize the importance of using version control with Git and implementing automatic testing to ensure high-quality, reliable software. We offer courses and materials on Git, along with examples of various types of tests to help you maintain robust code. Additionally, our data handling section provides guidelines for effective data management, including links to ETH resources, data repositories, and licensing advice to help you manage and share your research data responsibly and efficiently. \ No newline at end of file diff --git a/docs/blog/posts/2024-07-01_new_design.md b/docs/blog/posts/2024-07-01_new_design.md index f39ba4a9..def811ed 100644 --- a/docs/blog/posts/2024-07-01_new_design.md +++ b/docs/blog/posts/2024-07-01_new_design.md @@ -21,7 +21,7 @@ A big advantage of Material for MkDocs is how it helps us keep a consistent styl - News are managed with the `blog` feature and appear more prominently in the navigation bar - Table of Content now visible for each site on the right side bar - Clear distinction between internal and external hyperlinks -- Replaced [Datasets](../../datasets/climate_model_data.md){:target="_blank"} tables with sections and listings +- Replaced [Datasets](../../datasets/climate_model_data.md) tables with sections and listings - The [source code :material-open-in-new:](https://github.com/C2SM/c2sm.github.io){:target="_blank"} is now public (so you can try it out by yourself) ## Your Thoughts Matter diff --git a/docs/blog/posts/2024-08-14_alps.md b/docs/blog/posts/2024-08-14_alps.md index 731ce595..e0d35066 100644 --- a/docs/blog/posts/2024-08-14_alps.md +++ b/docs/blog/posts/2024-08-14_alps.md @@ -6,7 +6,7 @@ date: # New information about the Alps system available Since the transition from Piz Daint to the new Alps infrastructure is already taking place, -we have added a new navigation section [Alps](../../alps/index.md){:target="_blank"} to collect all necessary information there. +we have added a new navigation section [Alps](../../alps/index.md) to collect all necessary information there. Most importantly, C2SM users will find details about the new vClusters as well as how to use User Environments (uenvs) in order to access the software stacks. \ No newline at end of file diff --git a/docs/datasets/cordex_fpsconv_data.md b/docs/datasets/cordex_fpsconv_data.md index e9855604..d688cd2e 100644 --- a/docs/datasets/cordex_fpsconv_data.md +++ b/docs/datasets/cordex_fpsconv_data.md @@ -3,7 +3,7 @@ The CORDEX-FPSCONV dataset is a multi-model ensemble of convection permitting regional climate model runs created within [WCRP-CORDEX :material-open-in-new:](https://cordex.org/experiment-guidelines/flagship-pilot-studies/endorsed-cordex-flagship-pilote-studies/europe-mediterranean-convective-phenomena-at-high-resolution-over-europe-and-the-mediterranean/){:target="_blank"}. The model runs are described in [Coppola et al. 2020 :material-open-in-new:](https://link.springer.com/article/10.1007/s00382-018-4521-8){:target="_blank"}, [Ban et al. 2021 :material-open-in-new:](https://link.springer.com/article/10.1007/s00382-021-05708-w){:target="_blank"} and [Pichelli et al. 2021 :material-open-in-new:](https://link.springer.com/article/10.1007/s00382-021-05657-4){:target="_blank"} and cover the ALP-3 domain. -![Image of the extent of the ALP-3 domain](images/ALP-3-crop.png){:target="_blank"} +![Image of the extent of the ALP-3 domain](images/ALP-3-crop.png) So far, only the data from ETH (CLMcom-ETH-COSMO-crCLIM) has been CMORized (more info about this effort in this [pdf :material-open-in-new:](https://www.polybox.ethz.ch/index.php/s/cLZG0RkPipah6Uw){:target="_blank"}, for all other models the data format is a preliminary version (from ~September 2022) and not the one that will go to ESGF. Currently, the data archive contains mainly 1-hourly precipitation and temperature and daily maximum temperature and minimum temperature. diff --git a/docs/events/icon_meetings/index.md b/docs/events/icon_meetings/index.md index 279003fc..acfd2f40 100644 --- a/docs/events/icon_meetings/index.md +++ b/docs/events/icon_meetings/index.md @@ -11,10 +11,10 @@ In case you have any questions or suggestions, contact the meeting organiser, ## C2SM ICON Mailing List -As a member of the `c2sm.icon` mailing list, you will receive all relevant information around [ICON](../../models/icon.md){:target="_blank"} and invitations to the quarterly ICON meeting. +As a member of the `c2sm.icon` mailing list, you will receive all relevant information around [ICON](../../models/icon.md) and invitations to the quarterly ICON meeting. If you or someone from your group is not yet a member of the `c2sm.icon` mailing list, subscribe by sending an e-mail to: -[`mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname`](mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname){:target="_blank"} (modify `firstname` and `lastname` in the subject). +[`mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname`](mailto:sympa@sympa.ethz.ch?subject=SUBSCRIBE%20c2sm.icon%20firstname%20lastname) (modify `firstname` and `lastname` in the subject). To check which lists you are subscribed to, send an e-mail to: -[`mailto:sympa@sympa.ethz.ch?subject=WHICH`](mailto:sympa@sympa.ethz.ch?subject=WHICH){:target="_blank"} \ No newline at end of file +[`mailto:sympa@sympa.ethz.ch?subject=WHICH`](mailto:sympa@sympa.ethz.ch?subject=WHICH) \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index cbabf7a4..f15c6851 100644 --- a/docs/index.md +++ b/docs/index.md @@ -43,11 +43,11 @@ This will allow you to submit new tasks, receive support from the C2SM Core Team 2. Get access to the [C2SM GitHub organisation :material-open-in-new:](https://github.com/C2SM){:target="_blank"}. - Reach out to your group’s technical contact and provide them with your GitHub account name. They will be responsible for adding you to the appropriate user group. - - If you do not know who your group's technical contact is, please send an email to [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch){:target="_blank"}. + - If you do not know who your group's technical contact is, please send an email to [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch). ## Are you a new member of the C2SM community? - Designate a technical contact within your group, preferably a permanent member who is familiar with technical aspects. -- Contact us by visiting our office in person or by emailing us at [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch){:target="_blank"}. +- Contact us by visiting our office in person or by emailing us at [support@c2sm.ethz.ch](mailto:support@c2sm.ethz.ch). - Once contacted, we will initiate the setup of your group's user group on GitHub for effective collaboration. ## C2SM on GitHub @@ -59,4 +59,4 @@ This is our main GitHub organisation, which contains many repositories, includin ### [C2SM-RCM :material-open-in-new:](https://github.com/C2SM-RCM){:target="_blank"} -The C2SM-RCM organisation contains all codes related to COSMO and tools like EXTPAR. For questions and access, please contact [Jonas Jucker](mailto:jonas.jucker@c2sm.ethz.ch){:target="_blank"}. +The C2SM-RCM organisation contains all codes related to COSMO and tools like EXTPAR. For questions and access, please contact [Jonas Jucker](mailto:jonas.jucker@c2sm.ethz.ch). diff --git a/docs/models/cosmo.md b/docs/models/cosmo.md index 558fec10..8d76adb3 100644 --- a/docs/models/cosmo.md +++ b/docs/models/cosmo.md @@ -95,7 +95,7 @@ The GPU porting of the dynamical core of COSMO was accomplished by rewriting the ## Access In order to get access to the [COSMO repository :material-open-in-new:](https://github.com/C2SM-RCM/cosmo){:target="_blank"} hosted on the C2SM-RCM GitHub organisation, -please contact [C2SM Support](mailto:support@c2sm.ethz.ch){:target="_blank"}. +please contact [C2SM Support](mailto:support@c2sm.ethz.ch). Once you have access, clone the repository from GitHub using the SSH protocol: ``` @@ -107,11 +107,11 @@ If you do not already have an SSH key set up for GitHub but would like to do so, For configuring and building COSMO with Spack, please refer to the official spack-c2sm documentation, which provides instructions for [setting up a Spack instance :material-open-in-new:](https://c2sm.github.io/spack-c2sm/latest/QuickStart.html#at-cscs-ethz-daint-tsa-balfrin-and-euler){:target="_blank"} and [installing COSMO :material-open-in-new:](https://c2sm.github.io/spack-c2sm/latest/QuickStart.html#cosmo){:target="_blank"} on Piz Daint and Euler Cluster. ## Related tools -In the [Tools](../tools/index.md){:target="_blank"} section, you will find relevant tools for working with COSMO: +In the [Tools](../tools/index.md) section, you will find relevant tools for working with COSMO: -* [**Extpar:**](../tools/extpar.md){:target="_blank"} External parameters for the COSMO-grid (preprocessing) -* [**int2lm:**](../tools/int2lm.md){:target="_blank"} The interpolation software for the COSMO-model (preprocessing) -* [**Processing Chain**](../tools/processing_chain.md){:target="_blank"}: Python workflow tool for COSMO +* [**Extpar:**](../tools/extpar.md) External parameters for the COSMO-grid (preprocessing) +* [**int2lm:**](../tools/int2lm.md) The interpolation software for the COSMO-model (preprocessing) +* [**Processing Chain**](../tools/processing_chain.md): Python workflow tool for COSMO ## Documentation diff --git a/docs/models/icon.md b/docs/models/icon.md index f0b23bd6..badbd66e 100644 --- a/docs/models/icon.md +++ b/docs/models/icon.md @@ -2,7 +2,7 @@ ICON (Icosahedral Nonhydrostatic Weather and Climate Model) is a global model suitable for climate and weather prediction at regional and global domains. It is a joint project of [DWD :material-open-in-new:](https://www.dwd.de/DE/Home/home_node.html){:target="_blank"}, [MPI-M :material-open-in-new:](https://mpimet.mpg.de/startseite){:target="_blank"} and [KIT :material-open-in-new:](https://www.kit.edu/){:target="_blank"}. -To stay informed about what is going on in the ICON world and to get to know other ICON users, please attend our [quarterly ICON meeting](../events/icon_meetings/index.md){:target="_blank"}. +To stay informed about what is going on in the ICON world and to get to know other ICON users, please attend our [quarterly ICON meeting](../events/icon_meetings/index.md). ## Support status C2SM facilitates the utilisation of ICON on the [Piz Daint :material-open-in-new:](https://www.cscs.ch/computers/piz-daint){:target="_blank"} and [Euler :material-open-in-new:](https://scicomp.ethz.ch/wiki/Euler){:target="_blank"} computing platforms for the CPU and GPU architectures. @@ -11,7 +11,7 @@ C2SM facilitates the utilisation of ICON on the [Piz Daint :material-open-in-new The latest release distributed by C2SM, currently [`2024.07` :material-open-in-new:](https://github.com/C2SM/icon/tree/2024.07){:target="_blank"}, is continuously being tested on both Piz Daint and Euler and receives patches when necessary. ## Mailing list -If you use ICON, please follow [these instructions](../events/icon_meetings/index.md#c2sm-icon-mailing-list){:target="_blank"} to subscribe to our mailing list. +If you use ICON, please follow [these instructions](../events/icon_meetings/index.md#c2sm-icon-mailing-list) to subscribe to our mailing list. ## Access The [ICON repository :material-open-in-new:](https://github.com/C2SM/icon){:target="_blank"} is hosted on the C2SM GitHub organisation. If you do not have access, please follow the instructions under [How to get Access](../index.md#how-to-get-access). @@ -111,12 +111,12 @@ ICON input data are stored at the following locations: ## Toolset -In the [Tools](../tools/index.md){:target="_blank"} section, you will find relevant tools for working with ICON: +In the [Tools](../tools/index.md) section, you will find relevant tools for working with ICON: -* [**Extpar**](../tools/extpar.md){:target="_blank"}: External parameters for the ICON grid (preprocessing) -* [**Processing Chain**](../tools/processing_chain.md){:target="_blank"}: Python workflow tool for ICON -* [**SPICE**](../tools/spice.md){:target="_blank"}: Starter package for ICON-CLM experiments -* [**icon-vis**](../tools/icon-vis.md){:target="_blank"}: Python scripts to visualise ICON data +* [**Extpar**](../tools/extpar.md): External parameters for the ICON grid (preprocessing) +* [**Processing Chain**](../tools/processing_chain.md): Python workflow tool for ICON +* [**SPICE**](../tools/spice.md): Starter package for ICON-CLM experiments +* [**icon-vis**](../tools/icon-vis.md): Python scripts to visualise ICON data ## Projects Learn more about ongoing projects involving ETHZ in the development of ICON: diff --git a/docs/support/index.md b/docs/support/index.md index 3427ccdf..7bfaf01e 100644 --- a/docs/support/index.md +++ b/docs/support/index.md @@ -1,12 +1,12 @@ # User Support -User Support refers to the Core Team's efforts to ensure that all supported software runs correctly on supported computer systems. This includes hosting the software for easy distribution to members, regular testing and helping members resolve issues with running and compiling. Find information about supported [tools](../tools/index.md){:target="_blank"} and [models](../models/index.md){:target="_blank"} in the corresponding sections. +User Support refers to the Core Team's efforts to ensure that all supported software runs correctly on supported computer systems. This includes hosting the software for easy distribution to members, regular testing and helping members resolve issues with running and compiling. Find information about supported [tools](../tools/index.md) and [models](../models/index.md) in the corresponding sections. ## Request support To request regular support, please [use our discussion forum :material-open-in-new:](https://github.com/C2SM/Tasks-Support/discussions/categories/support){:target="_blank"}. The Core Team will be notified and will respond as soon as possible. In addition, all C2SM members can participate in these discussions and help as well. -If you do not have access to the support forum, please follow the instructions under [How to get Access](../index.md#how-to-get-access){:target="_blank"}. +If you do not have access to the support forum, please follow the instructions under [How to get Access](../index.md#how-to-get-access). -![](assets/Support_Forum.png){:target="_blank"} +![](assets/Support_Forum.png) *Different threads in our discussion forum* diff --git a/docs/tasks/assignment.md b/docs/tasks/assignment.md index a4e9444a..76142737 100644 --- a/docs/tasks/assignment.md +++ b/docs/tasks/assignment.md @@ -4,12 +4,12 @@ The Core Team accepts tasks from the three different areas mentioned above, each !!! info Please submit concrete tasks by following the instructions on our GitHub repository [Tasks-Support :material-open-in-new:](https://github.com/C2SM/Tasks-Support){:target="_blank"}. - If you do not have access, please follow the instructions under [How to get Access](../index.md#how-to-get-access){:target="_blank"}. + If you do not have access, please follow the instructions under [How to get Access](../index.md#how-to-get-access). ## Requirements for Tasks -Tasks are one-​time assignments that typically involve the development of a new model feature, acceleration/optimisation of a model feature, or other technical improvements to a model. Tasks are proposed by one or more C2SM members and are approved by the C2SM Working Groups (WGs). In case of tasks from C2SM Member Groups, priority will be given to tasks with greater benefit to multiple C2SM groups. Tasks must be related to our supported [tools](../tools/index.md){:target="_blank"} and [models](../models/index.md){:target="_blank"}. +Tasks are one-​time assignments that typically involve the development of a new model feature, acceleration/optimisation of a model feature, or other technical improvements to a model. Tasks are proposed by one or more C2SM members and are approved by the C2SM Working Groups (WGs). In case of tasks from C2SM Member Groups, priority will be given to tasks with greater benefit to multiple C2SM groups. Tasks must be related to our supported [tools](../tools/index.md) and [models](../models/index.md). ## Overview of current tasks diff --git a/docs/tools/int2lm.md b/docs/tools/int2lm.md index 97455873..680ff4bf 100644 --- a/docs/tools/int2lm.md +++ b/docs/tools/int2lm.md @@ -10,7 +10,7 @@ The `master` branch is continuously being tested on Piz Daint ## Access In order to get access to the [INT2LM repository hosted on the C2SM-RCM GitHub organisation :material-open-in-new:](https://github.com/C2SM-RCM/int2lm){:target="_blank"}, -please contact [C2SM Support](mailto:support@c2sm.ethz.ch){:target="_blank"}. +please contact [C2SM Support](mailto:support@c2sm.ethz.ch). ## Compile @@ -33,4 +33,4 @@ This mitigates slowdown for large input files via new namelist parameters in nam The parameters `ie_in_tot` and `je_in_tot` define the length of the data to be read, instead of the total length present in the NetCDF input file. ### Schematic about the two ways for reading NetCDF input files -![](images/int2lm_subset_schematic.png){:target="_blank"} +![](images/int2lm_subset_schematic.png) diff --git a/docs/tools/zephyr.md b/docs/tools/zephyr.md index 38d1cc64..8f620758 100644 --- a/docs/tools/zephyr.md +++ b/docs/tools/zephyr.md @@ -1,4 +1,4 @@ -# ![](https://polybox.ethz.ch/index.php/s/P1sc5n7TLhmUcld/download#only-light){:target="_blank"}{:style="vertical-align: top"} ![](https://polybox.ethz.ch/index.php/s/7FVqpqKOPQw9xew/download#only-dark){:target="_blank"}{:style="vertical-align: top"} Climate Data Extraction Tool +# ![](https://polybox.ethz.ch/index.php/s/P1sc5n7TLhmUcld/download#only-light){:style="vertical-align: top"} ![](https://polybox.ethz.ch/index.php/s/7FVqpqKOPQw9xew/download#only-dark){:style="vertical-align: top"} Climate Data Extraction Tool Zephyr is the climate data extraction tool developed by C2SM, serving as the backend processing engine for the [Zephyr website :material-open-in-new:](https://zephyr.ethz.ch){:target="_blank"}. @@ -13,14 +13,14 @@ Scans of the datasets listed below are performed daily, generating file trees in Requests are made via the [Zephyr website :material-open-in-new:](https://zephyr.ethz.ch){:target="_blank"} and submitted using the [Zephyr data request template :material-open-in-new:](https://github.com/C2SM/zephyr-request/issues/new/choose){:target="_blank"}. Zephyr supports a range of [climate models and reanalysis datasets](../datasets/index.md), including: -- [CMIP5](../datasets/climate_model_data.md#cmip5){:target="_blank"} -- [CMIP6](../datasets/climate_model_data.md#cmip6){:target="_blank"} -- [CORDEX](../datasets/climate_model_data.md#cordex){:target="_blank"} -- [CORDEX ReKliEs](../datasets/climate_model_data.md#cordex-reklies){:target="_blank"} -- [ERA5](../datasets/obs_reanalysis_data.md#era5_1){:target="_blank"} -- [ERA5 land](../datasets/obs_reanalysis_data.md#era5-land_1){:target="_blank"} -- [CERRA](../datasets/obs_reanalysis_data.md#cerra_1){:target="_blank"} -- [CERRA land](../datasets/obs_reanalysis_data.md#cerra-land_1){:target="_blank"} +- [CMIP5](../datasets/climate_model_data.md#cmip5) +- [CMIP6](../datasets/climate_model_data.md#cmip6) +- [CORDEX](../datasets/climate_model_data.md#cordex) +- [CORDEX ReKliEs](../datasets/climate_model_data.md#cordex-reklies) +- [ERA5](../datasets/obs_reanalysis_data.md#era5_1) +- [ERA5 land](../datasets/obs_reanalysis_data.md#era5-land_1) +- [CERRA](../datasets/obs_reanalysis_data.md#cerra_1) +- [CERRA land](../datasets/obs_reanalysis_data.md#cerra-land_1) Zephyr efficiently extracts both regional and global climate datasets, with options to retrieve data at individual nearest grid points or within a user-defined rectangular area. Once a request has been successfully submitted and processed, a download link will be posted to the GitHub issue thread where the request was submitted. The download link will be available for up to seven days. From 78d5a3680a708449f9d711927d4d70f8625c3aff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 15:06:27 +0200 Subject: [PATCH 24/28] Only check if pattern appears --- scripts/format_external_links.py | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/scripts/format_external_links.py b/scripts/format_external_links.py index e3029ce2..cb8fe7e3 100755 --- a/scripts/format_external_links.py +++ b/scripts/format_external_links.py @@ -18,24 +18,25 @@ def modify_link(line): general_replacement = r'[\1 ' + icon_external_link + r'](\2)' download_replacement = r'[\1 ' + icon_download + r'](\2)' - # Check for link icon - if icon_external_link not in line and icon_download not in line: - new_line = re.sub(download_pattern, download_replacement, line) - if new_line != line: - line = new_line - replaced = True - else: - new_line = re.sub(general_pattern, general_replacement, line) + if general_pattern in line: + # Check for link icon + if icon_external_link not in line and icon_download not in line: + new_line = re.sub(download_pattern, download_replacement, line) if new_line != line: line = new_line replaced = True + else: + new_line = re.sub(general_pattern, general_replacement, line) + if new_line != line: + line = new_line + replaced = True - # Check for new tab attribute - if open_new_tab not in line: - new_line = re.sub(r'(\[.*?\]\(.*?\))', r'\1' + open_new_tab, line) - if new_line != line: - line = new_line - replaced = True + # Check for new tab attribute + if open_new_tab not in line: + new_line = re.sub(r'(\[.*?\]\(.*?\))', r'\1' + open_new_tab, line) + if new_line != line: + line = new_line + replaced = True return line, replaced From 7f9dc381bacfe72dc98290b388846dc8d18ed778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 15:10:19 +0200 Subject: [PATCH 25/28] Fix pattern check --- scripts/format_external_links.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/format_external_links.py b/scripts/format_external_links.py index cb8fe7e3..7f3b7d24 100755 --- a/scripts/format_external_links.py +++ b/scripts/format_external_links.py @@ -18,7 +18,8 @@ def modify_link(line): general_replacement = r'[\1 ' + icon_external_link + r'](\2)' download_replacement = r'[\1 ' + icon_download + r'](\2)' - if general_pattern in line: + # Check if the general pattern appears in the line + if re.search(general_pattern, line): # Check for link icon if icon_external_link not in line and icon_download not in line: new_line = re.sub(download_pattern, download_replacement, line) From e25caa2d968b214c71dfb52e73bb1e6787386358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 15:11:00 +0200 Subject: [PATCH 26/28] Trigger test --- docs/best_practices/coding.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index a305ed94..b5424ce3 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -37,7 +37,7 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests From 9624341b5d64db06afb0ba2e3283f4ccac44cc24 Mon Sep 17 00:00:00 2001 From: mjaehn Date: Thu, 15 Aug 2024 13:11:15 +0000 Subject: [PATCH 27/28] GitHub Action: Apply external link format --- docs/best_practices/coding.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index b5424ce3..755323ed 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -37,12 +37,12 @@ The specific tests you need will depend on your project and its requirements. He ### Unit Tests These tests are for testing individual components or functions of your code to ensure they work correctly in isolation. -Find an [example for unit tests](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. +Find an [example for unit tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/unit_test.py){:target="_blank"} in our spack-c2sm repository. ### Integrations Tests These tests are to check how different parts of your code work together and communicate with each other. -Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py) in our spack-c2sm repository. +Find an [example for integration tests :material-open-in-new:](https://github.com/C2SM/spack-c2sm/blob/main/test/integration_test.py){:target="_blank"} in our spack-c2sm repository. ### System Tests From f9589e78d2675017d4d24b496149def92748c8b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20J=C3=A4hn?= Date: Thu, 15 Aug 2024 16:22:54 +0200 Subject: [PATCH 28/28] Update coding.md --- docs/best_practices/coding.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/best_practices/coding.md b/docs/best_practices/coding.md index 755323ed..6d9d9345 100644 --- a/docs/best_practices/coding.md +++ b/docs/best_practices/coding.md @@ -1,6 +1,6 @@ # Coding -Whether you're new to coding or already working on it, there are two important things to remember: always **use version control** and **add automatic testing**. These steps will make things easier for you and everyone you work with. Also, try out tools that can make coding easier for you. +Whether you are new to coding or already working on it, there are two important things to remember: always **use version control** and **add automatic testing**. These steps will make things easier for you and everyone you work with. Also, try out tools that can make coding easier for you. ## Version Control with Git @@ -77,4 +77,4 @@ Two popular tools for coding are [Visual Studio (VS) Code :material-open-in-new: 3. Use VS Code with SSH on CSCS: - Install the "Remote-SSH" extension. - Ensure VS Code remains active when working on CSCS: - - Activate the "Remote.SSH: Remote Server Listen On Socket" option in "Remote-SSH: Settings". \ No newline at end of file + - Activate the "Remote.SSH: Remote Server Listen On Socket" option in "Remote-SSH: Settings".