Skip to content

Commit 910c6a7

Browse files
committed
Initial commit
0 parents  commit 910c6a7

File tree

13 files changed

+837
-0
lines changed

13 files changed

+837
-0
lines changed

.github/workflows/docs.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Docs
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
release:
10+
name: GitHub Pages
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: write
14+
steps:
15+
- name: Checkout the Repository
16+
uses: actions/checkout@v4
17+
18+
- name: Install uv
19+
uses: astral-sh/setup-uv@v5
20+
21+
- name: Setup Python
22+
run: uv python install
23+
24+
- name: Install mkdocs dependencies
25+
run: uv venv && uv pip install -r docs/requirements.txt
26+
27+
- name: Build the documentation
28+
run: uv run mkdocs build
29+
30+
- name: Deploy the Documentation
31+
uses: peaceiris/actions-gh-pages@v4
32+
with:
33+
github_token: ${{ secrets.GITHUB_TOKEN }}
34+
publish_branch: gh-pages
35+
publish_dir: ./site
36+
keep_files: false

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/.venv

LICENSE.txt

Lines changed: 395 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Documentation for the Online Laboratory for Climate Science and Meteorology
2+
3+
## Getting Help and Contributing
4+
5+
This documentation is being developed at https://github.com/climet-eu/docs. If you come across a bug or would like to suggest a new feature or support for an additional Python package, please submit an issue at https://github.com/climet-eu/docs/issues/.
6+
7+
8+
## License
9+
10+
Licensed under the CC BY 4.0 license ([LICENSE](LICENSE.txt) or https://creativecommons.org/licenses/by/4.0/).
11+
12+
13+
## Funding
14+
15+
The Online Laboratory for Climate Science and Meteorology has been developed as part of [ESiWACE3](https://www.esiwace.eu), the third phase of the Centre of Excellence in Simulation of Weather and Climate in Europe.
16+
17+
Funded by the European Union. This work has received funding from the European High Performance Computing Joint Undertaking (JU) under grant agreement No 101093054.

docs/compression.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# Online Laboratory for Data Compression in Climate Science and Meteorology
2+
3+
Welcome to the **Online Laboratory for Data Compression in Climate Science and Meteorology**, [compression.lab.climet.eu](https://compression.lab.climet.eu)!
4+
5+
If you are familiar with [JupyterLab](https://jupyter.org/), you should feel right at home with the user interface of this lab. You can use the JupyterLab interface at [/lab](https://lab.climet.eu/latest/lab) and a REPL interface at [/repl](https://lab.climet.eu/latest/repl).
6+
7+
In fact, this laboratory is built using [JupyterLite](https://jupyterlite.readthedocs.io/en/stable/), "a JupyterLab distribution that runs entirely in [your] browser" by leveraging WebAssembly. In other words, while you typically need to install JupyterLab on your own machine or connect to a server that executes your code, JupyterLite runs installation-free in your webbrowser and allows your code, data, and information to stay entirely on your machine. To run Python code within your browser, JupyterLite uses [Pyodide](https://pyodide.org/en/stable/), "a Python distribution for the browser [...] based on WebAssembly".
8+
9+
While Pyodide already supports an extensive list of scientific Python packages, which we have contributed to, this laboratory comes with additional packages that are commonly used in the weather and climate science community, including (but not limited to) `metpy`, `cfgrib`, `earthkit`, and `xeofs`.
10+
11+
12+
## Getting Started
13+
14+
To get started, click the blue `+` button in the top left to open a new launcher and create a new Python notebook from there. After the Python kernel has initialised, you can execute Python code in the cells of the notebook.
15+
16+
!!! tip
17+
18+
While many Python packages can be `import`ed directly, additional pure Python packages can also be loaded by executing the `%pip install <PACKAGE>` magic inside a cell, after which the package can be imported.
19+
20+
!!! note
21+
22+
The online laboratory has only been tested in recent Firefox and Chrome browsers. Some features may not (yet) be supported in Safari browsers.
23+
24+
!!! attention
25+
26+
The online laboratory runs with the strict memory constraints of your web browser. It is therefore recommended to only open and execute one or two notebooks at a time. When a notebook is closed, the kernel will automatically shutdown to preserve resources.
27+
28+
If the online lab runs out of memory, you can save your work, close the notebook, and try to restart it. If you are still running low on memory, you should first download a copy of your notebooks, then reload the notebook page, re-upload the notebook, and continue working on them.
29+
30+
If you intend on executing memory intensive workloads, it is best to continue working on the notebooks locally instead. The online laboratory is primarily designed for initial exploration and for sharing codes in a reproducible environment.
31+
32+
!!! caution
33+
34+
In the online laboratory, changes to notebooks and local files are only saved in your web browser's storage and not persisted to disk.
35+
36+
Please download copies of any files that you don't want to loose.
37+
38+
Your files from an old session will usually be kept if you close or refresh this page, unless your browser's storage for `lab.climet.eu` is cleared, e.g.
39+
40+
- manually by clearing the browser's site data
41+
- automatically when too much data is stored
42+
- automatically when you close a private browsing context
43+
- if you have setup your browser to clear site data, e.g. when the browser is closed
44+
45+
46+
## Overview of the provided notebooks
47+
48+
The **Online Laboratory for Data Compression** comes with several Jupyter notebook examples to
49+
50+
1. introduce you to its functionality
51+
2. showcase different compression methods on various weather and climate datasets
52+
3. allow you to easily and quickly test out compression on *your* data
53+
54+
The following is an overview of all notebooks:
55+
56+
- [`01-intro.ipynb`](https://compression.lab.climet.eu/v0.2/01-intro.ipynb): First introduction to the online laboratory, data loading, compression, and visualisation
57+
- [`02-data-sources/`](https://compression.lab.climet.eu/v0.2/02-data-sources/README.md): Small examples on how to open datasets from different sources
58+
- [`01-local.ipynb`](https://compression.lab.climet.eu/v0.2/02-data-sources/01-local.ipynb): open a large local read-only dataset by mounting it into the online lab
59+
- [`02-remote.ipynb`](https://compression.lab.climet.eu/v0.2/02-data-sources/02-remote.ipynb): open large remote datasets using `fsspec`, `kerchunk`, and `zarr`
60+
- [`03-cdsapi.ipynb`](https://compression.lab.climet.eu/v0.2/02-data-sources/03-cdsapi.ipynb): download small datasets from the Climate Data Store using the `cdsapi`
61+
- [`04-ecmwfapi.ipynb`](https://compression.lab.climet.eu/v0.2/02-data-sources/04-ecmwfapi.ipynb): download small datasets from the ECMWF Archive using the `ecmwfapi`
62+
- [`03-examples/`](https://compression.lab.climet.eu/v0.2/03-examples/README.md): Longer walkthrough examples that apply and evaluate data compression on different variables
63+
- [`01-compressors.ipynb`](https://compression.lab.climet.eu/v0.2/03-examples/01-compressors.ipynb): comparison of different compressors on a small temperature and specific humidity dataset
64+
- [`04-example-datasets/`](https://compression.lab.climet.eu/v0.2/04-example-datasets/README.md): Example datasets and access via an S3 bucket
65+
- [`01-hplp.ipynb`](https://compression.lab.climet.eu/v0.2/04-example-datasets/01-hplp.ipynb): open hplp-experiment dataset from the ECMWF S3 bucket
66+
- [`02-OpenIFS.ipynb`](https://compression.lab.climet.eu/v0.2/04-example-datasets/02-OpenIFS.ipynb): open OpenIFS-experiment dataset from the ECMWF S3 bucket
67+
- [`03-NextGEMS.ipynb`](https://compression.lab.climet.eu/v0.2/04-example-datasets/03-NextGEMS.ipynb): open NextGEMS-experiment dataset from the ECMWF S3 bucket
68+
- [`04-ICONXPP.ipynb`](https://compression.lab.climet.eu/v0.2/04-example-datasets/04-ICONXPP.ipynb): open ICON-XPP-experiment dataset from the ECMWF S3 bucket
69+
70+
71+
## Getting Help and Contributing
72+
73+
This laboratory is being developed at <https://github.com/climet-eu/lab> and <https://github.com/climet-eu/compression-lab-notebooks>. If you come across a bug or would like to suggest a new feature or support for an additional Python package, please submit an issue at <https://github.com/climet-eu/lab/issues/> or <https://github.com/climet-eu/compression-lab-notebooks/issues>.
74+
75+
76+
## License
77+
78+
Licensed under the CC BY 4.0 license (<https://creativecommons.org/licenses/by/4.0/>).
79+
80+
81+
## Funding
82+
83+
The Online Laboratory for Data Compression in Climate Science and Meteorology has been developed as part of [ESiWACE3](https://www.esiwace.eu), the third phase of the Centre of Excellence in Simulation of Weather and Climate in Europe.
84+
85+
Funded by the European Union. This work has received funding from the European High Performance Computing Joint Undertaking (JU) under grant agreement No 101093054.

docs/index.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Supporting Climate Science and Meteorology
2+
3+
[climet.eu](https://climet.eu) is developing tools to support weather and climate modelling:
4+
5+
- [lab.climet.eu](https://lab.climet.eu): Online Laboratory for Climate Science and Meteorology, developed at [climet-eu/lab](https://github.com/climet-eu/lab)
6+
- [compression.lab.climet.eu](https://compression.lab.climet.eu): Online Laboratory for Data Compression in Climate Science and Meteorology, developed at [climet-eu/compression-lab-notebooks](https://github.com/climet-eu/compression-lab-notebooks)
7+
8+
## Funding
9+
10+
[climet.eu](https://climet.eu) has been developed as part of [ESiWACE3](https://www.esiwace.eu), the third phase of the Centre of Excellence in Simulation of Weather and Climate in Europe.
11+
12+
Funded by the European Union. This work has received funding from the European High Performance Computing Joint Undertaking (JU) under grant agreement No 101093054.

docs/js/katex.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
document.addEventListener("DOMContentLoaded", () => {
2+
renderMathInElement(document.body, {
3+
delimiters: [
4+
{ left: "\\(", right: "\\)", display: false },
5+
{ left: "\\[", right: "\\]", display: true }
6+
],
7+
})
8+
});

docs/lab.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Online Laboratory for Climate Science and Meteorology
2+
3+
Welcome to the **Online Laboratory for Climate Science and Meteorology**, [lab.climet.eu](https://lab.climet.eu)!
4+
5+
If you are familiar with [JupyterLab](https://jupyter.org/), you should feel right at home with the user interface of this lab. You can use the JupyterLab interface at [/lab](https://lab.climet.eu/latest/lab) and a REPL interface at [/repl](https://lab.climet.eu/latest/repl).
6+
7+
In fact, this laboratory is built using [JupyterLite](https://jupyterlite.readthedocs.io/en/stable/), "a JupyterLab distribution that runs entirely in [your] browser" by leveraging WebAssembly. In other words, while you typically need to install JupyterLab on your own machine or connect to a server that executes your code, JupyterLite runs installation-free in your webbrowser and allows your code, data, and information to stay entirely on your machine. To run Python code within your browser, JupyterLite uses [Pyodide](https://pyodide.org/en/stable/), "a Python distribution for the browser [...] based on WebAssembly".
8+
9+
While Pyodide already supports an extensive list of scientific Python packages, which we have contributed to, this laboratory comes with additional packages that are commonly used in the weather and climate science community, including (but not limited to) `metpy`, `cfgrib`, `earthkit`, and `xeofs`.
10+
11+
12+
## Getting Started
13+
14+
To get started, click the blue `+` button in the top left to open a new launcher and create a new Python notebook from there. After the Python kernel has initialised, you can execute Python code in the cells of the notebook.
15+
16+
!!! tip
17+
18+
While many Python packages can be `import`ed directly, additional pure Python packages can also be loaded by executing the `%pip install <PACKAGE>` magic inside a cell, after which the package can be imported.
19+
20+
!!! note
21+
22+
The online laboratory has only been tested in recent Firefox and Chrome browsers. Some features may not (yet) be supported in Safari browsers.
23+
24+
!!! attention
25+
26+
The online laboratory runs with the strict memory constraints of your web browser. It is therefore recommended to only open and execute one or two notebooks at a time. When a notebook is closed, the kernel will automatically shutdown to preserve resources.
27+
28+
If the online lab runs out of memory, you can save your work, close the notebook, and try to restart it. If you are still running low on memory, you should first download a copy of your notebooks, then reload the notebook page, re-upload the notebook, and continue working on them.
29+
30+
If you intend on executing memory intensive workloads, it is best to continue working on the notebooks locally instead. The online laboratory is primarily designed for initial exploration and for sharing codes in a reproducible environment.
31+
32+
!!! caution
33+
34+
In the online laboratory, changes to notebooks and local files are only saved in your web browser's storage and not persisted to disk.
35+
36+
Please download copies of any files that you don't want to lose.
37+
38+
Your files from an old session will usually be kept if you close or refresh this page, unless your browser's storage for `lab.climet.eu` is cleared, e.g.
39+
40+
- manually by clearing the browser's site data
41+
- automatically when too much data is stored
42+
- automatically when you close a private browsing context
43+
- if you have setup your browser to clear site data, e.g. when the browser is closed
44+
45+
46+
## Getting Help and Contributing
47+
48+
This laboratory is being developed at <https://github.com/climet-eu/lab>. If you come across a bug or would like to suggest a new feature or support for an additional Python package, please submit an issue at <https://github.com/climet-eu/lab/issues/>.
49+
50+
51+
## License
52+
53+
Licensed under the Mozilla Public License, Version 2.0 (<https://www.mozilla.org/en-US/MPL/2.0/>).
54+
55+
56+
## Funding
57+
58+
The Online Laboratory for Climate Science and Meteorology has been developed as part of [ESiWACE3](https://www.esiwace.eu), the third phase of the Centre of Excellence in Simulation of Weather and Climate in Europe.
59+
60+
Funded by the European Union. This work has received funding from the European High Performance Computing Joint Undertaking (JU) under grant agreement No 101093054.

docs/requirements.in

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
mkdocs ~= 1.6.0
2+
mkdocs-autorefs ~= 1.4
3+
mkdocs-exclude ~= 1.0
4+
mkdocs-material ~= 9.0
5+
pygments ~= 2.19
6+
pymdown-extensions ~= 10.14
7+
ruff ~= 0.11.0

docs/requirements.txt

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# This file was autogenerated by uv via the following command:
2+
# uv pip compile docs/requirements.in
3+
babel==2.17.0
4+
# via mkdocs-material
5+
backrefs==5.8
6+
# via mkdocs-material
7+
certifi==2025.1.31
8+
# via requests
9+
charset-normalizer==3.4.1
10+
# via requests
11+
click==8.1.8
12+
# via mkdocs
13+
colorama==0.4.6
14+
# via mkdocs-material
15+
ghp-import==2.1.0
16+
# via mkdocs
17+
idna==3.10
18+
# via requests
19+
jinja2==3.1.6
20+
# via
21+
# mkdocs
22+
# mkdocs-material
23+
markdown==3.7
24+
# via
25+
# mkdocs
26+
# mkdocs-autorefs
27+
# mkdocs-material
28+
# pymdown-extensions
29+
markupsafe==3.0.2
30+
# via
31+
# jinja2
32+
# mkdocs
33+
# mkdocs-autorefs
34+
mergedeep==1.3.4
35+
# via
36+
# mkdocs
37+
# mkdocs-get-deps
38+
mkdocs==1.6.1
39+
# via
40+
# -r docs/requirements.in
41+
# mkdocs-autorefs
42+
# mkdocs-exclude
43+
# mkdocs-material
44+
mkdocs-autorefs==1.4.1
45+
# via -r docs/requirements.in
46+
mkdocs-exclude==1.0.2
47+
# via -r docs/requirements.in
48+
mkdocs-get-deps==0.2.0
49+
# via mkdocs
50+
mkdocs-material==9.6.9
51+
# via -r docs/requirements.in
52+
mkdocs-material-extensions==1.3.1
53+
# via mkdocs-material
54+
packaging==24.2
55+
# via mkdocs
56+
paginate==0.5.7
57+
# via mkdocs-material
58+
pathspec==0.12.1
59+
# via mkdocs
60+
platformdirs==4.3.7
61+
# via mkdocs-get-deps
62+
pygments==2.19.1
63+
# via
64+
# -r docs/requirements.in
65+
# mkdocs-material
66+
pymdown-extensions==10.14.3
67+
# via
68+
# -r docs/requirements.in
69+
# mkdocs-material
70+
python-dateutil==2.9.0.post0
71+
# via ghp-import
72+
pyyaml==6.0.2
73+
# via
74+
# mkdocs
75+
# mkdocs-get-deps
76+
# pymdown-extensions
77+
# pyyaml-env-tag
78+
pyyaml-env-tag==0.1
79+
# via mkdocs
80+
requests==2.32.3
81+
# via mkdocs-material
82+
ruff==0.11.2
83+
# via -r docs/requirements.in
84+
six==1.17.0
85+
# via python-dateutil
86+
urllib3==2.3.0
87+
# via requests
88+
watchdog==6.0.0
89+
# via mkdocs

0 commit comments

Comments
 (0)