insula-earthcode-publication-tool 1.0.8
Insula EarthCODE Publication Tool
Requires Python: >=3.9
Keywords: Italia, cgi, client, insula

# Insula EarthCODE Publication Tool

Use this tool to generate templates with placeholder values for the EarthCODE project.  
This tool can be used both as an import and as a CLI command.  

The package is released publicly on PyPi, to install from anywhere simply use:
```shell
pip install insula-earthcode-publication-tool
```

## Template Generator:
### - CLI
<pre>
  -h, --help            show this help message and exit
  -p, --project         If present generate a project template with the same name
  -w, --workflow        If present generate a workflow template with the same name
  -e, --experiment      If present generate an experiment template
  -t TARGET, --target TARGET
                        The target location where the templates will be generated.
</pre>
Example usage using local code:
```shell
python template_generator.py -p -w -e -t targetdir
```
or using the equivalent custom command after installation:
```shell
insula_earthcode_template_gen -p -w -e -t targetdir
```

### - Import
For usage inside notebooks just install the package, import it and call the `generate_template()` function.  
Example usage equivalent to previous CLI call:
```python
from insula_earthcode_publication_tool import generate_template

generate_template(project=True, workflow=True, experiment=True, target="targetdir")
```

## STAC Json Generator:

After filling the templates with the correct information for a new product or workflow, the following command can
generate a STAC json conform to the Open Science Catalog.

The generated `project_collection.json` shall be moved to `catalog/projects/{project-id}/collection.json` in the OSC.   
The generated `workflow_record.json` shall be moved to `catalog/workflows/{workflow-id}/record.json` in the OSC  
The generated files `experiment_record.json`, `experiment_environment.yaml`, `experiment_input.yaml` shall be moved to
`catalog/experiments/{experiment-id}` renamed without the `"experiment_"` part.

### - CLI
<pre>
  -h, --help            show this help message and exit
  -p PROJECT, --project PROJECT
                        Project YAML template location
  -w WORKFLOW, --workflow WORKFLOW
                        Workflow YAML template location
  -e EXPERIMENT, --experiment EXPERIMENT
                        Experiment YAML template
  -t TARGET, --target TARGET
                        The target location where the STAC jsons will be created.
</pre>
Example usage using local code:
```shell
python stac_generator.py -p templ/project.yaml -w templ/workflow.yaml -e templ/experiment.yaml -t targetdir
```
or using the equivalent custom command after installation:
```shell
insula_earthcode_stac_gen -p templ/project.yaml -w templ/workflow.yaml -e templ/experiment.yaml -t targetdir
```

### - Import
For usage inside notebooks just install the package, import it and call the `generate_stac()` function.  
Example usage equivalent to previous CLI call:
```python
from insula_earthcode_publication_tool import generate_stac

generate_stac(project="templ/project.yaml", workflow="templ/workflow.yaml", experiment="templ/experiment.yaml", target="targetdir")
```