Spécification initiale¶
Voir le ticket JIRA
Contexte¶
Script de recopie de pyramide depuis une livraison vers une donnée stockée
Ce script sera exécuté afin de produire une pyramide à destination de Rok4 depuis des données raster issues d’une livraison
Cette intégration permet de créer une nouvelle donnée stockée pyramide rok4 image diffusable ou d’en mettre à jour une déjà existante.
Données en entrée¶
une livraison de type
ROK4-PYRAMID
Donnée en sortie¶
une donnée stockée de type
ROK4-PYRAMID-RASTER
ouROK4-PYRAMID-VECTOR
, stockée sur du S3, déjà existante (`MODIFYING)
Paramètres¶
non_existing
: Enum(ERROR
,SKIP
,FORCE
) par défaut àERROR
: indique le comportement à avoir pour une dalle qui n’existe pas dans la pyramide cibleprocess_size
: bool par défaut àTrue
: indique si on souhaite recalculer la taille de la pyramide après l’injection des dalles
Étapes et régles métier¶
Contrôler les paramètres :
Voir toutes les contraintes ci-dessus (paramètres, type et nombre de données en entrée et en sortie, types des stockages)
le
TMS
doit être le même dans la livraison en entrée et la pyramide en sortieLe
format
doit être le même dans la livraison en entrée et la pyramide en sortie. Pour la pyramide en sortie, le format est défini dans le fichier descriptor json de la pyramide. Le fichier<stored_data._id>json
à la racine de la donnée stockée est utilisé comme fichier descriptor. La baliseformat
du fichier doit être utilisée.Si le
format
est celui d’une pyramide raster (qu’il y a unchannels_number
), il doit être le même dans la livraison en entrée et la pyramide en sortie
Identifier les fichiers en entrée à traiter et la destination :
les paramètres de connection au S3 pour la récupération des fichiers et l’écriture des pyramides sont issus des variables globales du parameters.json (accès au S3), et également :
du storage de la livraison en entrée (
inputs/uploads[0]/storage/type_infos/pot_name
) et de la livraison en elle même :upload/{inputs/uploads[0]/_id}
/du storage de la donnée stockée en sortie (
output/stored_data/storage/type_infos/pot_name
) et de la donnée stockée en elle même :stored_data/{output/stored_data/_id}/
Pour chaque dalle livrée, il faut la recopier à l’emplacement final :
source :
{inputs/uploads[0]/storage/type_infos/pot_name}/DATA_{level}_{column}_{row}.tif
destination :
{output/stored_data/storage/type_infos/pot_name}/{output/stored_data/id}/{output/stored_data/id}/DATA_{level}_{column}_{row}
Calculer les informations sur la donnée en sortie :
Dans
output.stored_data
:size
: siprocess_size
àTrue
, la taille complète des fichiers de la données stockée en sortie sur le S3 en fin de processus, en octets : à mettre à jour
Dans
pipeline_status
: Une ligne indiquant le status du script :SUCCESS
: L’intégration n’a pas rencontré de problème, pour aucun des fichiers de la livraison.FAILURE
: Une erreur est intervenu lors du calcul de pyramide :Erreur de validation
TECHNICAL_ERROR
: En cas d’erreur technique :Mauvaise composition du parameters.json
Valeur inatendue dans le schéma JSON
Erreur de lecture / écriture dans le S3