Skip to content

Commit c159442

Browse files
committed
Expand documentation
1 parent 612fb8e commit c159442

File tree

5 files changed

+101
-14
lines changed

5 files changed

+101
-14
lines changed

docs/installing.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ conda-forge channel.
55

66
## Installing from conda-forge
77

8-
8+
TODO
99

1010
## Installing directly from the GitHub repository
11+
12+
TODO

docs/notebook.md

Lines changed: 65 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,69 @@ input parameters.
99
An Application Package can have, and usually does have, *input parameters*
1010
defined types and default values, which can be set by the caller when running
1111
the package. xcengine automatically generates these parameters from variables
12-
in the notebook. Any variable to be used as a parameter
12+
in the notebook. Any variable to be used as a parameter must be defined
13+
in the **parameters cell** of the notebook. You can only have one parameters
14+
cell in a notebook, and it is strongly advised that the parameters cell appear
15+
**as early as possible** in the notebook.
1316

14-
## Configuring xcengine
17+
You turn a normal code cell into a parameters cell by adding a tag called
18+
**parameters** to it in the Jupyter Lab using the Property Inspector.
19+
(The Property Inspector can be opened by clicking the gear icon at the top
20+
right of the Jupyter Lab window.)
21+
22+
![Property inspector](images/property-inspector.png)
23+
24+
You can define as many parameters as you like in the property cell. The
25+
values you assign to them will be used as the default values for these
26+
parameters when xcengine generates the Application Package.
27+
28+
## Configuring xcengine
29+
30+
As well as parameters, the parameters cell can contain an **xcengine
31+
configuration dictionary**. This is a Python dictionary with the special
32+
name `xcengine_config`. Available configuration settings are:
33+
34+
- `workflow_id`: a string identifier for the workflow in your Application
35+
Package. The runner or Application Package platform can use this
36+
identifier to refer to you Application Package. By default, the name
37+
of the notebook (without the `.ipynb` suffix) is used.
38+
- `environment_file`: the name of a YAML file defining a [conda
39+
environment](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)
40+
(these are often called `environment.yml`). If an environment file is not
41+
specified in the notebook or on the command line, xcetool will try to
42+
deduce the environment automatically. This cannot be done 100% reliably,
43+
so it is **strongly recommended** to provide an environment file.
44+
- `container_image_tag`: the tag applied to the Docker container image that
45+
xcengine builds. If you plan to push the image to a public registry,
46+
you can enter the final registry tag here and push the image once it's
47+
been built by xcengine. If no tag is specified, xcengine will create one
48+
based on the current date and time.
49+
50+
Some of these configuration settings can also be set on the command line.
51+
52+
## Dataset output
53+
54+
### Selecting datasets for output
55+
56+
No additional code or configuration is needed for datasets to be written from
57+
Application Packages or served when the container image is run in xcube
58+
Server/Viewer mode. xcengine will automatically output or serve any instance
59+
of `xarray.DataSet` which is in scope when the notebook's code has finished
60+
executing. If you're created some datasets which you *don't* wish to be
61+
written, you can use the Python
62+
[`del` statement](https://docs.python.org/3/reference/simple_stmts.html#the-del-statement)
63+
to delete them at the end of the notebook to remove them e.g.
64+
65+
```python
66+
del my_temporary_dataset
67+
```
68+
69+
### Setting dataset output type
70+
71+
By default, all `xarray.DataSet` instances are written as Zarr. But you can
72+
force them to be written as NetCDF by setting an attribute on the dataset,
73+
like this:
74+
75+
```python
76+
my_dataset.attrs["xcengine_output_format"] = "netcdf"
77+
```

docs/resources.md

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
11
# Further documentation and resources
22

3-
xcengine has been presented at conferences and workshops. The presentation
4-
materials are available online and provide a useful complement to this
5-
documentation.
3+
xcengine has been presented at several conferences and workshops. Most of the
4+
presentation materials are available online and provide a useful complement to
5+
this documentation.
66

7-
OEMC Global Workshop 2024, Laxenburg:
8-
[recording](https://www.youtube.com/watch?v=e0P1KVyvoEc&list=PLXUoTpMa_9s3g9lD7_aP0XB12wluSPhRJ&index=28)
7+
Presentation at OEMC Global Workshop 2024, Laxenburg.
8+
Pontus Lurcock, "Large-scale EO processing with xcube on CDSE".
9+
[Video recording of presentation](https://www.youtube.com/watch?v=e0P1KVyvoEc&list=PLXUoTpMa_9s3g9lD7_aP0XB12wluSPhRJ&index=28).
910

10-
ESA Living Planet Symposium 2025, Vienna:
11-
[slides](https://lps25.esa.int/lps25-presentations/presentations/1276/lurcock_update.pdf)
11+
Presentation at ESA Living Planet Symposium 2025, Vienna.
12+
Pontus Lurcock, Tejas Morbagal Harish, and Alicja Balfanz,
13+
"From notebooks to application packages with xcube and xcengine".
14+
[Slide deck](https://lps25.esa.int/lps25-presentations/presentations/1276/lurcock_update.pdf).
1215

13-
OpenGeoHub EO-Council Summer School 2025, Wageningen:
16+
Tutorial at OpenGeoHub EO-Council Summer School 2025, Wageningen:
1417
"Application packages in the xcube ecosystem".
1518
[Course page](https://xcube-dev.github.io/summerschool25/) with links to
1619
slides, documentation, and hands-on exercises.
17-
[Video](https://www.youtube.com/watch?v=b3BdOE3mJZU)
20+
[Video recording of presentation](https://www.youtube.com/watch?v=b3BdOE3mJZU).
1821

19-
ESA Big Data from Space 2025, Riga:
20-
[Programme entry](https://federicorondoni.github.io/bids25/brella-wrapper.html?date=2025-10-01&showSession=749314)
22+
ESA Big Data from Space 2025, Riga.
23+
Yogesh Baljeet Singh, Norman Fomferra, Pontus Lurcock, Gunnar Brandt and
24+
Tejas Morbagal Harish: "From reproducible EO Workflow development to OGC
25+
Application Packages for Scalable Data Cube Generation and Visualisation".
26+
[Programme entry](https://federicorondoni.github.io/bids25/brella-wrapper.html?date=2025-10-01&showSession=749314).

docs/testing.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Testing and running application packages
22

3+
TODO
4+
35
## Running with cwltool
46

7+
TODO
8+
59
## Running with ZOO-Project and the DRU extensions
10+
11+
TODO

docs/xcetool.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,13 @@ variables and their types can be defined by tagging a notebook cell
1919
datasets are automatically extracted from the notebook’s environment.
2020
Some user configuration is unavoidable, but xcengine automates much of the
2121
boilerplate required to create an EOAP.
22+
23+
TODO
24+
25+
# Publishing your container image
26+
27+
TODO
28+
29+
# Deploying your application package
30+
31+
TODO

0 commit comments

Comments
 (0)