Aller au contenu

Publication en WMS

Mise en place d'un style

Les données MNT ont un format particulier : les images ont un unique canal, avec des valeurs flottantes. Les flux WMS et WMTS vont permettre de récupérer la donnée brute (pour d'éventuels calculs), mais l'affichage peut être compliqué.

En WMS, on va permettre la demande de donnée symbolisée, en appliquant des teintes hypsométriques. Afin que le consommateur des flux puisse connaître les caractéristiques de ces teintes, nous allons mettre en ligne la légende, qui sera référencée dans le style via son URL.

Nous allons partir sur une représentation qui, sur la donnée en exemple, donne le résultat suivant.

Teintes hypsométriques

Avec la légende :

Légende

Hébergement de la légende sous forme d'annexe

Pour obtenir une URL publique pointant sur notre légende, nous allons la téléverser dans l'entrepôt sous forme d'annexe, en en demandant la publication immédiate.

<hypso_legende.png>

/datastores/{datastore}/annexes
  • file = <hypso_legende.png>
  • paths = "legendes/teintes_hypsometriques.png"
  • published = true
  • labels = "legende"

Le renseignement d'un label va permettre de plus facilement retrouver et publier / dépublier les annexes.

La légende est maintenant accessible à l'URL https://gpf-annex-qua.priv.geopf.fr/annexes/{technical_name}/legendes/teintes_hypsometriques.png.

Téléversement du style à destination du serveur WMS

Le style permettant au serveur WMS d'appliquer ces teintes sur de la donnée MNT est le suivant :

Contenu de hypso.json
{
    "identifier": "hypsometrique",
    "title": "Teintes hypsométriques",
    "abstract": "Teintes hypsométriques",
    "keywords": ["MNT"],
    "legend": {
        "format": "image/png",
        "url": "https://gpf-annex-qua.priv.geopf.fr/annexes/{technical_name}/legendes/teintes_hypsometriques.png",
        "height": 118,
        "width": 87,
        "min_scale_denominator": 0,
        "max_scale_denominator": 10000000
    },
    "palette": {
        "max_value": 3.40282e+38,
        "rgb_continuous": true,
        "alpha_continuous": true,
        "colours": [
            { "value": -100000, "red": 0, "green": 0, "blue": 0, "alpha": 0 },
            { "value": -98000, "red": 0, "green": 0, "blue": 0, "alpha": 0 },
            { "value": 0, "red": 161, "green": 225, "blue": 143, "alpha": 255 },
            { "value": 500, "red": 48, "green": 164, "blue": 16, "alpha": 255 },
            { "value": 1500, "red": 237, "green": 239, "blue": 0, "alpha": 255 },
            { "value": 2000, "red": 225, "green": 0, "blue": 0, "alpha": 255 },
            { "value": 2500, "red": 0, "green": 0, "blue": 0, "alpha": 255 },
            { "value": 4000, "red": 255, "green": 255, "blue": 255, "alpha": 255 }
        ]
    }
}

On y précise bien les informations sur la légende associée. Le champ identifier sera l'identifiant public que les consommateurs du WMS pourront préciser dans les requêtes pour demander l'utilisation de ce style.

hypso.json

/datastores/{datastore}/statics
  • file = <hypso.json>
  • type = "ROK4-STYLE"
  • name = "Teintes hypsométriques"
{
    "name": "Teintes hypsométriques",
    "type": "ROK4-STYLE",
    "_id": "{style hypso}",
    "type_infos": {
        "identifier": "hypsometrique",
        "legend_url": "https://gpf-annex-qua.priv.geopf.fr/annexes/{technical_name}/legendes/teintes_hypsometriques.png"
    }
}

Configuration de la diffusion

Nous allons publier la donnée selon deux couches :

  • une avec le style, lidarhd_hypso, pour avoir par défaut la représentation par teintes hypsométriques
  • une sans style, lidarhd, pour diffuer la donnée brute, et permettre des traitement sur les altitudes côté client.
/datastores/{datastore}/configurations
{
    "type": "WMS-RASTER",
    "name": "MNT LidarHD données brutes",
    "layer_name": "lidarhd",
    "type_infos": {
        "title": "MNT LidarHD",
        "abstract": "MNT LidarHD brut",
        "keywords": [
            "MNT", "LidarHD"
        ],
        "interpolation": "NEAREST-NEIGHBOUR",
        "used_data": [
            {
                "bottom_level": "18",
                "top_level": "0",
                "stored_data": "{stored data MNT}"
            }
        ]
    },
    "getfeatureinfo": {
        "stored_data": true
    }
}
{
    "type": "WMS-RASTER",
    "name": "MNT LidarHD Teintes hypsométriques",
    "layer_name": "lidarhd_hypso",
    "type_infos": {
        "title": "MNT LidarHD",
        "abstract": "MNT LidarHD, avec teintes hypsométriques",
        "keywords": [
            "MNT", "LidarHD", "Teintes hypsométriques"
        ],
        "styles": [
            "{style hypso}"
        ],
        "interpolation": "NEAREST-NEIGHBOUR",
        "used_data": [
            {
                "bottom_level": "18",
                "top_level": "0",
                "stored_data": "{stored data MNT}"
            }
        ]
    },
    "getfeatureinfo": {
        "stored_data": true
    }
}

Envoi sur les services de diffusion

Seule la création d'une offre sur un point d'accès (publication) permet d'envoyer les informations de configuration au serveurs de diffusion.

Consultation des points de diffusion disponibles

/datastores/{datastore}

Publication

/datastores/{datastore}/configurations/{configuration wms lidarhd}/offerings
{
    "visibility": "PRIVATE",
    "endpoint": "9cf2c4c3-c230-42d3-988a-cbe9f40f4e73",
    "open": true
}
/datastores/{datastore}/configurations/{configuration wms lidarhd hypso}/offerings
{
    "visibility": "PRIVATE",
    "endpoint": "9cf2c4c3-c230-42d3-988a-cbe9f40f4e73",
    "open": true
}

On peut vérifier la présence de nos couches lidarhd et lidarhd_hypso dans le getCapabilities du service.

Dans QGis, on retrouve la légende déposée sous forme d'annexe.

Visualisation MNT avec teintes hypsométriques dans QGis