Este paquete corresponde a la herramienta para cargar, editar y eliminar colecciones e items del stac.
- Python (3.10)
- Conda
-
Clonar el repositorio:
git clone git@github.com:PEM-Humboldt/stac-data-tools.git
-
Ir al directorio del proyecto:
cd stac-data-tools
-
Crear el entorno de ejecución para python con Conda e instalar dependencias:
conda env create -f environment.yml
El nombre del entorno de ejecución será el que se configure en el archivo
environment.yml
, el cual se encuentra en la raiz del proyecto. Este comando no solo crea el entorno de ejecución si no que tambien instala las dependencias. -
Activar el entorno de ejecución:
conda activate <nombre_del_entorno>
Antes de usar la herramienta asegurese de realizar lo siguiente:
- Crear un archivo .env réplica de env.sample y actualizar los valores de la variables existentes.
(Es posible que la variable de STAC_URL no reconozca la ruta: "localhost:8082", entonces se recomienda agregar la siguiente:STAC_URL="http://localhost:8082")
STAC_URL="" # URL del servidor del STAC ABS_STRING="" # Cadena de conexión a Azure Blob Storage ABS_CONTAINER="" # Nombre del contenedor en Azure Blob Storage AUTH_URL="" # Path de la ruta de la url para autenticar, la cual seria "/auth/token" USERNAME_AUTH:"" # Nombre de usuario para autenticación. PASSWORD_AUTH:"" # Contraseña para autenticación.
Preparación de los insumos
Para cargar una nueva colección (incluyendo los items de la misma), lo primero que hay que hacer es describir toda la información que se desea cargar a la nueva colección, esto se hace por medio de un archivo .json
, siguiendo la especificación descrita en el archivo collection.md.
El archivo collection.example.json sirve como ejemplo y como punto de partida.
Para crear una colección siga los siguientes pasos:
- Cargar la carpeta de la colección en el directorio
input
, esta carpeta debe contar con los archivos correpondientes a las capas (.tif) y el archivo mencionado previamente en la secciónPreparación de los insumos
que describe la colección en formato JSON y siempre debe ser nombradocollection.json
.
La autenticación se realiza automáticamente utilizando las credenciales definidas en las variables de ambiente.
Para cargar una colección de capas, ejecuta el siguiente comando:
python src/main.py create -f folder_name [-c collection_name]
-f, --folder
(obligatorio): Directorio con el archivo collection.json y las capas.-c, --collection
(opcional): Nombre de la colección. Si no se proporciona, se tomará elid
del archivo collection.json.
- Especificando un nombre de colección:
python src/main.py create -f my_folder -c MyCollection
o
python src/main.py create --folder my_folder --collection MyCollection
Este comando creará la colección MyCollection
a partir de los archivos en el directorio input/my_folder
.
- Usando el
id
del archivo collection.json:
python src/main.py create -f my_folder
o
python src/main.py create --folder my_folder
Para sobrescribir una colección existente, ejecuta el siguiente comando:
python src/main.py create -f folder_name [-c collection_name] [-o]
-f, --folder
(obligatorio): Directorio con el archivocollection.json
y las capas.-c, --collection
(opcional): Nombre de la colección. Si no se proporciona, se tomará elid
del archivocollection.json
.-o, --overwrite
(obligatorio): Permite sobrescribir una colección existente si ya existe. Si no se proporciona, la colección no será sobrescrita.
- Sobrescribiendo una colección existente:
python src/main.py create -f my_folder -o
o
python src/main.py create --folder my_folder --overwrite
Este comando sobrescribirá la colección existente (si ya existe) usando los archivos en el directorio input/my_folder
.
- Especificando un nombre de colección para sobrescribir:
python src/main.py create -f my_folder -c MyCollection -o
o
python src/main.py create --folder my_folder --collection MyCollection --overwrite
Este comando sobrescribirá la colección MyCollection
si ya existe, usando los archivos en el directorio input/my_folder
.
Si solo deseas validar una colección sin cargarla, puedes ejecutar:
python src/main.py validate -f folder_name [-c collection_name]
-f, --folder
(obligatorio): Directorio que contiene los archivos de la colección.-c, --collection
(opcional): Nombre de la colección para validar. Si no se proporciona, se tomará elid
del archivo collection.json.
python src/main.py validate -f my_folder
o
python src/main.py validate --folder my_folder
Este comando validará los archivos de la colección en el directorio input/my_folder
sin cargarlos.
Para eliminar una colección de STAC y de Azure, ejecuta el siguiente comando:
python src/main.py remove --collection collection_name
-c, --collection
(obligatorio): Nombre de la colección a eliminar.
python src/main.py remove -c my_collection
o
python src/main.py remove --collection my_collection
Este comando eliminará la colección my_collection
del sistema.
El formato de estilos para la revisión con flake8 se define en el archivo .flake8. La revisión de estilos se puede realizar con el paquete flake8 de la siguiente forma:
flake8 src
Para hacer formateo de estilos automático se utiliza el paquete black. Al ejecutarlo se tendran en cuenta las configuraciones de estilo definidas en el archivo pyproject.toml.
black src
La documentación se genera con ayuda del paquete pdoc que lee los docstrings presentes en los scripts para describir las clases y funciones. Pdoc genera documentación en formatos como Markdown o HTML y permite especificar el directorio de salida.
Salida como HTML:
pdoc --html --output-dir docs src
La documentación de la versión actual se puede consultar aquí.
Licencia MIT (MIT) 2024 - Instituto de Investigación de Recursos Biológicos Alexander von Humboldt. Vea el archivo LICENSE para mas información.