Publication QGIS¶
Cette publication convient aux couches déjà finalisées, souvent produites une fois pour toutes ou mises à jour à la main. Ce sont des données géospatiales prêtes pour QGIS : elles s'ouvrent dans QGIS 3.44 sans conversion et leur style est défini dans QGIS.
1. Préparer le dossier¶
Pour chaque date d'un indicateur sur une ville, rassemblez dans un même dossier :
- les couches : Shapefile (
.shpavec.shx,.dbf,.prj) ou GeoTIFF (.tif) ; - un style
.qmlpar couche, au même nom de base que sa couche. Dans QGIS : Propriétés de la couche › Symbologie › Style › Enregistrer le style…, au format Fichier de style QGIS ; - un fichier de métadonnées ISO 19139 (
<fileIdentifier>_metadata.xml). Il donne le titre, le résumé, le producteur et la licence (voir le XML ISO).
LCZ_SPOT_2022_Toulouse_raster_1m5.tif
LCZ_SPOT_2022_Toulouse_raster_1m5.qml
LCZ_SPOT_2022_Toulouse_vecteur.shp (+ .shx .dbf .prj)
LCZ_SPOT_2022_Toulouse_vecteur.qml
LCZ_SPOT_2022_Toulouse_metadata.xml
2. Déposer sur S3¶
Copiez le dossier sur votre bucket, sous un préfixe qui se termine par
<ville>/<indicateur>/<date>/ (voir Stocker mes données pour les
outils) :
Ces trois segments ne servent pas qu'au rangement : ils définissent la ville, l'indicateur et la date de votre publication. Leurs règles sont détaillées dans Le chemin S3.
Passez ensuite à Lancer la publication.
Lancer la publication¶
Ouvrez le service dans AntFlow : map-product-convertor.
| Entrée | Valeur |
|---|---|
s3_path |
Le préfixe déposé, par exemple s3://<votre-bucket>/toulouse/lcz/2022/ |
metadata_pattern |
Facultatif : une regex pour trouver le XML ISO si son nom ne contient ni metadata ni métadonnées |
L'exécution enchaîne trois étapes, visibles dans le graphe AntFlow :
- S3 setup : les identifiants sont écrits dans un fichier lisible par l'étape suivante.
- QGIS project packaging : les couches sont converties (Shapefile en FlatGeobuf,
GeoTIFF en COG), les styles appliqués, puis le projet
.qgzet l'Item / la Collection STAC sont produits. - Saving QGIS project in catalogue : le projet est publié sur QGIS Server, la Collection et l'Item sont enregistrés dans le catalogue.
Relancer la publication sur le même préfixe, pour le même producteur, remplace la livraison précédente. Vous ne créez pas de doublon.
Vérifier le résultat¶
- Dans le géoportail https://maps.urbiverde.com/maps, votre projet apparaît sous le
titre tiré du
fileIdentifier, avec les styles de vos.qml. - Dans le catalogue STAC (https://stac.urbiverde.com/api.html), cherchez la
collection
<indicateur>-<ville>-<producteur>(par exemplelcz-toulouse-cerema) : la date publiée y figure comme un Item. - En cas d'échec, lisez les journaux de l'étape QGIS project packaging. Une couche illisible y est signalée puis ignorée. Un préfixe mal formé arrête le job avec le code 2 et un message qui rappelle la convention.
Référence¶
Les sections suivantes détaillent les règles qui pèsent sur la publication. Elles sont les mêmes pour tout ce qui passe par map-product-convertor.
Le chemin S3¶
Les trois derniers segments du préfixe sont <ville>/<indicateur>/<date>/. Ce qui
précède est libre (bucket, sous-dossiers d'organisation) :
s3://<votre-bucket>/toulouse/lcz/2022/
s3://<votre-bucket>/livraisons/toulouse/lcz/202306/
s3://<votre-bucket>/kourou/ilot-chaleur/20240715/
| Format de date | Période couverte (UTC) | Exemple |
|---|---|---|
YYYY |
l'année entière | 2022 |
YYYYMM |
le mois entier | 202306 |
YYYYMMDD |
le jour | 20240715 |
La date doit exister : 202413 ou 20230230 sont refusés. Le format avec tirets
(2023-06) est encore accepté pour compatibilité, mais déconseillé.
Bonnes pratiques de nommage
- Tout en minuscules :
toulouse/lcz/2022/, pasToulouse/LCZ/2022/. La casse brute est reprise telle quelle dans les titres et dansurbiverde:city/urbiverde:indicator. - Ni accents ni espaces. Ils disparaissent du nom de projet par défaut :
Îlot chaleurdevientlotchaleur. Préférezilot-chaleur. -comme séparateur dans les noms composés :saint-etienne,ilot-chaleur.- Un préfixe = une date = un Item. Ne mélangez jamais deux dates dans un préfixe.
- Un référentiel commun des noms de villes et d'indicateurs, partagé par tous les
producteurs.
lczetLCZ_satdonnent deux collections différentes.
Le XML de métadonnées ISO 19139¶
Le XML porte tout ce que le chemin S3 ne dit pas : le titre, le résumé, le producteur, la licence et les mots-clés.
| Élément ISO 19139 | Utilisé pour |
|---|---|
gmd:fileIdentifier |
nom du projet (<fileIdentifier>.qgz) et titre : projet QGIS, service WMS, title de l'Item |
gmd:identificationInfo/gmd:MD_DataIdentification/gmd:abstract |
description de l'Item, résumé du WMS et du projet |
gmd:organisationName du premier CI_ResponsibleParty renseigné parmi identificationInfo/*/pointOfContact, identificationInfo/*/citation/*/citedResponsibleParty, puis contact |
producteur : id de l'Item, dossier de sortie, providers de la Collection, organisation du WMS, auteur du projet |
gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:otherConstraints |
license de la Collection, contraintes d'accès du WMS |
gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword |
keywords de la Collection et du WMS, ajoutés à [ville, indicateur, date] sans doublon (casse ignorée) |
Les autres éléments (titre de citation, emprise, dates, système de référence) ne sont pas utilisés : l'emprise est calculée à partir des couches, et la période vient du chemin S3.
Bonnes pratiques
- Un
fileIdentifierunique, stable et sûr. Il devient un nom de fichier et une URL de service. N'utilisez que[A-Za-z0-9_], par exempleLCZ_SPOT_2022_Toulouse. Ne le réutilisez jamais pour une autre date ou une autre ville : le projet déjà publié serait écrasé. - Un
abstractpropre à la date : il décrit l'Item (sources, millésime, méthode). - Une organisation productrice dans
pointOfContactde la ressource, ou à défaut danscontact. Sans elle, le producteur estUrbiverde. Gardez exactement le même nom d'un dépôt à l'autre : il entre dans l'identifiant de l'Item et dans le chemin de sortie. - Une licence explicite, avec son nom et son URL, dans
otherConstraints:
| Texte contenant | license STAC |
|---|---|
| « Etalab », « Licence Ouverte », « Open Licence » | etalab-2.0 |
| « ODbL », « Open Database License » | ODbL-1.0 |
| « CC-BY 4.0 » | CC-BY-4.0 |
Tout autre texte donne other, avec un lien license si le texte contient une URL.
Sans XML, la licence est proprietary.
- Des mots-clés thématiques (ICU, satellite, SPOT…). Inutile de répéter la
ville, l'indicateur ou la date : ils sont ajoutés automatiquement.
Squelette minimal¶
<?xml version="1.0" encoding="UTF-8"?>
<gmd:MD_Metadata xmlns:gmd="http://www.isotc211.org/2005/gmd"
xmlns:gco="http://www.isotc211.org/2005/gco">
<gmd:fileIdentifier>
<gco:CharacterString>LCZ_SPOT_2022_Toulouse</gco:CharacterString>
</gmd:fileIdentifier>
<gmd:contact>
<gmd:CI_ResponsibleParty>
<gmd:organisationName>
<gco:CharacterString>Cerema</gco:CharacterString>
</gmd:organisationName>
</gmd:CI_ResponsibleParty>
</gmd:contact>
<gmd:identificationInfo>
<gmd:MD_DataIdentification>
<gmd:abstract>
<gco:CharacterString>Cartographie des LCZ sur l'aire urbaine de Toulouse, à partir de la couverture SPOT 2022.</gco:CharacterString>
</gmd:abstract>
<gmd:descriptiveKeywords>
<gmd:MD_Keywords>
<gmd:keyword><gco:CharacterString>ICU</gco:CharacterString></gmd:keyword>
<gmd:keyword><gco:CharacterString>satellite</gco:CharacterString></gmd:keyword>
</gmd:MD_Keywords>
</gmd:descriptiveKeywords>
<gmd:resourceConstraints>
<gmd:MD_LegalConstraints>
<gmd:otherConstraints>
<gco:CharacterString>Licence Ouverte Etalab 2.0 : https://www.etalab.gouv.fr/licence-ouverte-open-licence</gco:CharacterString>
</gmd:otherConstraints>
</gmd:MD_LegalConstraints>
</gmd:resourceConstraints>
</gmd:MD_DataIdentification>
</gmd:identificationInfo>
</gmd:MD_Metadata>
Références pour remplir le XML
- Guide de saisie des éléments de métadonnées INSPIRE (CNIG, en français) : le guide pratique à suivre. https://www.geoinformations.developpement-durable.gouv.fr/guide-de-saisie-des-elements-de-metadonnees-a2452.html
- Guide technique INSPIRE (Commission européenne) : l'encodage ISO 19139 élément par élément, avec des exemples. https://inspire-mif.github.io/technical-guidelines/metadata/metadata-iso19139/metadata-iso19139.html
- ISO/TS 19139:2007 (payante) : https://www.iso.org/standard/32557.html. Elle est
remplacée par ISO/TS 19139-1:2019, mais le service lit bien cette édition, avec les
espaces de noms
gmd/gcode 2005. - Schémas XSD
gmdetgco, pour valider un fichier : https://schemas.opengis.net/iso/19139/
Ce que devient votre dépôt dans le catalogue¶
| Objet STAC | Correspond à | Identifiant | Exemple |
|---|---|---|---|
| Collection | un indicateur, sur une ville, pour un producteur | <slug(indicateur)>-<slug(ville)>-<slug(producteur)> |
lcz-toulouse-cerema |
| Item | une date de cet indicateur | <collection>-<date> |
lcz-toulouse-cerema-2022 |
slug(x) met en minuscules, retire les accents et remplace tout caractère hors
[a-z0-9] par - : Saint-Étienne devient saint-etienne.
Ce découpage a quatre conséquences pratiques :
- Une série temporelle par collection. Chaque nouvelle date ajoute un Item à la même collection, dont l'emprise et la période s'élargissent automatiquement.
- Plusieurs producteurs par indicateur. Deux partenaires qui livrent le même indicateur, sur la même ville, ont chacun leur collection et leurs dossiers de sortie : ils ne s'écrasent jamais. Le géoportail les range quand même sous la même ville et le même indicateur.
- Des identifiants prévisibles, calculés à partir du chemin et du producteur. Republier la même date pour le même producteur remplace l'Item au lieu d'en créer un doublon.
- Une navigation naturelle ville → indicateur → date pour les clients du catalogue.
Détail des champs de l'Item et de la Collection
Item (une date)
| Champ | Source |
|---|---|
id, collection |
chemin S3 et producteur (slugs) |
geometry, bbox |
union des emprises des couches, en EPSG:4326 |
start_datetime, end_datetime |
date du chemin (datetime vaut null) |
title |
fileIdentifier, sinon <indicateur> · <ville> · <date> · <producteur> |
description |
abstract ISO (absente sans XML) |
proj:epsg |
CRS du projet |
urbiverde:city, urbiverde:indicator |
segments bruts du chemin |
urbiverde:producer |
producteur (XML ISO, sinon Urbiverde) |
urbiverde:project, urbiverde:source_prefix |
nom du .qgz, préfixe S3 d'origine |
| assets | qgis-project (le .qgz), un asset data par couche, un asset style par .qml |
links wms, wfs |
URL du projet sur QGIS Server |
Collection (indicateur × ville)
| Champ | Source |
|---|---|
id |
<slug(indicateur)>-<slug(ville)>-<slug(producteur)> |
title, description |
<indicateur> · <ville> · <producteur> (le détail propre à chaque date est dans l'Item) |
license, providers, keywords |
XML ISO |
extent |
élargie à chaque nouvel Item publié |
Check-list avant publication¶
- [ ] Préfixe en
<ville>/<indicateur>/<date>/, en minuscules, sans accents ni espaces. - [ ] Noms de ville et d'indicateur conformes au référentiel commun.
- [ ] Date au format
YYYY,YYYYMMouYYYYMMDD: la période observée, et une date réelle. - [ ] Chaque couche a un CRS défini, et chaque Shapefile ses
.shx,.dbf,.prj. - [ ] Chaque style
.qmlporte le même nom de base que sa couche. - [ ] Un seul XML ISO, nommé
<fileIdentifier>_metadata.xml. - [ ]
fileIdentifierunique, en[A-Za-z0-9_]. - [ ]
abstract, organisation, licence (avec URL) et mots-clés thématiques renseignés. - [ ] Nom d'organisation productrice identique d'un dépôt à l'autre.
- [ ] Pour une nouvelle date d'une collection existante : même licence.