Geoplateforme / sdk-entrepot

SDK Python pour utiliser l'API Entrepôt de la Géoplateforme.
GNU General Public License v3.0
1 stars 0 forks source link

Rendre les traitements compatibles avec le visualiseur carte.gouv #149

Open LudivineSchlegel opened 3 months ago

LudivineSchlegel commented 3 months ago

Contexte

cartes.gouv.fr est le portail principal d'accès à la Géoplateforme, son entrepôt et son catalogue.

Il prend la suite de la préfiguration que constitue le Géotuileur en étendant ses possibilités d'alimentation aux données vecteur et raster et ses possibilités de diffusion à d'autres flux que les seules tuiles vectorielles.

cartes.gouv.fr d’appuis sur les tag/label sur les entités pour retrouver la source des données, le traitement l'ayant créer, la donnée dérivé ...

Demande

Possibilité de rendre compatible l'utilisation du SDK avec cartes.gouv.fr sans à avoir à ajouté à la main les tags nécessaire.

La compatibilité avec cartes.gouv.fr ne sera pas obligatoire elle sera activée à la demande de l'utilisateur

Développement

activation de la compatibilité

Plusieurs moyen d'activer la compatibilité :

action upload / téléversement de fichiers

Correspond à la ligne de commande : python -m sdk_entrepot_gpf upload --file upload_descriptor.json

Il faudra faire des modifications dans la classe UploadAction fonction run ou sous-fonctions.

action de workflow de type processing-execution

Il faut faire les modifications dans ProcessingExecutionAction (fonction run et sous-fonctions).

action de workflow de type configuration

Il faut faire les modifications dans ConfigurationAction (fonction run et sous-fonctions).

Configuration

[compatibility_cartes]
activate=false
upload_creation_integration_progress
upload_creation_integration_current_step
upload_upload_start_integration_progress
upload_upload_end_integration_progress
upload_upload_end_integration_current_step
upload_check_ok_integration_progress
upload_check_ko_integration_progress
execution_start_integration_progress
execution_start_integration_current_step
execution_end_ok_integration_progress
execution_end_ko_integration_progress
LudivineSchlegel commented 3 months ago

@vsasyan-ignf @slafayIGN pouvez vous vérifier ce ticket et le compléter si besoin.

J'ai repris la documentation mais je peux avoir oublier des tag à ajouté.

J'ai notamment des question :

ocruze commented 3 months ago

Bonjour,

Le reste m'a l'air bon.

vsasyan-ignf commented 3 months ago

Bonjour,

Merci pour les précisions.

La fiche de données est en fait le point d'entrée pour votre application, non ? Je veux dire que c'est ça qui permet à l'utilisateur de retrouver les traitements et les données qu'il manipule.

On va effectivement pas implémenté le data_upload_path et les 3 autres seront sûrement à gérer directement par l'utilisateur car assez spécifiques.

ocruze commented 3 months ago

La fiche de données est en fait le point d'entrée pour votre application, non ?

La fiche de données est un peu comme un dossier qui réunit les uploads, stored_data, config/offering etc. Toutes ces entités sont liées à cette fiche de données par le tag datasheet_name. La création d'une fiche de données débute par l'upload d'un fichier et la création d'une stored_data correspondante.

LudivineSchlegel commented 3 months ago

merci @ocruze

Donc pour résumer :

Pour le style en annexe j'ai toujours la question du passage de la configuration à ce fichier json. On fait du wmts-tms donc oui on à des fichiers de style à gérer

J'en déduis le style en annexe est uniquement pour les types ayant un style :

(je ne vois pas de style avec le WFS contrairement à la doc pour les style en annexe)

Quel serait le fichier annexe pour les exemple suivants :

WMS-vecteur : (cliquer pour développer/réduite) ```json "used_data": [ { "relations": [ { "name": "transport_par_cable", "style": "uuid_style_1" }, { "name": "voie_ferree_nommee", "style": "uuid_style_2" }, { "name": "equipement_de_transport", "style": "uuid_style_3" }, { "name": "equipement_de_transport", "style": "uuid_style_4" }, { "name": "troncon_de_voie_ferree", "style": "uuid_style_5" } ], "stored_data": "uuid_stored_data_a" }, { "relations": [ { "name": "transport_par_cable", "style": "uuid_style_1" }, { "name": "voie_ferree_nommee", "style": "uuid_style_2" }, { "name": "equipement_de_transport", "style": "uuid_style_3" }, { "name": "equipement_de_transport", "style": "uuid_style_4" }, { "name": "troncon_de_voie_ferree", "style": "uuid_style_5" } ], "stored_data": "uuid_stored_data_b" } ], ```
WMS-raster : (cliquer pour développer/réduite) ```json "styles": [ "uuid_style_1", "uuid_style_2" ], "used_data": [ { "bottom_level": "16", "top_level": "6", "stored_data": "uuid_stored_data_a" }, { "bottom_level": "16", "top_level": "6", "stored_data": "uuid_stored_data_b" } ], ```
WMTS-TMS : (cliquer pour développer/réduite) ```json "styles": [ "uuid_style_1", "uuid_style_2" ], "used_data": [ { "bottom_level": "16", "top_level": "6", "stored_data": "uuid_stored_data_a" }, { "bottom_level": "16", "top_level": "6", "stored_data": "uuid_stored_data_b" } ], ```
ocruze commented 3 months ago

(je ne vois pas de style avec le WFS contrairement à la doc pour les style en annexe)

En fait, on stocke uniquement les styles en annexe qu'on applique côté front. Pour un WFS, il n'y a pas de style au moment de la création de la config, mais pour afficher le flux dans une page web, il faut bien appliquer un style. Donc, c'est dans nos interfaces qu'on permet aux utilisateurs de téléverser des fichiers de styles et ensuite on les stocke en annexe.

Sinon pour la structure,

sur cartes.gouv.fr, pour l'instant on ne fait pas du WMS-RASTER et j'ai jamais manipulé un flux WMS-RASTER donc je ne sais pas trop quoi te dire. Pour WMS-VECTOR, on envoie les fichiers de style non en annexe mais en statique lors de la création de la configuration. Donc il y a rien à faire avec les annexes.

Pour WMTS-TMS, il y a une seule couche, donc la structure json ne dépend pas des relations de la stored_data. C'est un style pour toute la stored_data :

[
    {
        "name": "nom du style",
        "current": true,
        "layers": [
            {
                "annexe_id": "24959eb0-ac20-476a-bc25-2a2e841aa467", <-- annexe qui contient le style mapbox
                "url": "https:\/\/gpf-annex-qua.priv.geopf.fr\/annexes\/cartes-gouv-dev\/style\/63f26133-dffe-4d85-a7b1-3e5cd6b9eaa9.json"
            }
        ]
    },
    {...}
]

Je suis peut-être pas super clair à l'écrit, donc n'hésite pas à me contacter sur Teams, en appel ce sera plus pratique

vsasyan-ignf commented 1 month ago

@LudivineSchlegel fait la modification de ProcesingExecutionAction et @dockingtips fait la modification de UploadAction.