KFS
Kalisio Features Service ou KFS est un service web permettant d'interroger les objets géographiques (lignes, points, polygones...) des applications développées avec le Kalisio Development Kit telle que Kano par l'intermédiaire du standard OGC API Features (ou WFS v3) avec un encodage GeoJSON.
Un support limité du filtrage au format CQL est également supporté:
- encodage JSON avec une requête de type POST (filtre = charge utile / géométrie au format GeoJson),
- encodage TXT uniquement pour les opérateurs spatiaux et de nullité avec une requête de type GET (filtre = paramètre de requête / géométrie au format WTK).
Jeux de données accessibles
BDXéoEURDEPZones sous influenceVigicruesTelérayOpenRadiationICOSRTEHydrométrie Hub'EauRadomeSemenceZones sous le vent
Utilisation
Attention
Les volumes de données manipulés via le service pouvant être volumineux il est fortement recommandé de filtrer ces données de façon temporelle et spatiale dans des plages de temps et des zones de taille limitée.
Le service propose une limite dans le nombre de résultats par défaut pour éviter une surcharge trop importante.
Le service KFS supporte différentes requêtes dont principalement :
GetCapabilities
Les opérations de type GetCapabilities permettent de consulter les caractéristiques du services.
HTTP - GET- Classes de conformité au standard:
- Définition de l'API au standard OpenAPI:
- Liste des collections de données disponibles:
GetFeatures
Les opérations de type GetFeatures permettent de récupérer les objets géographiques résultants d'une requête sur une collection de données. La collection peut être récupéré entièrement, i.e. sans filtrage, ou partiellement, i.e. avec filtrage sur certaines propriétés, spatial et/ou temporel. De nombreux exemples illustratifs sont fournis dans les sections suivantes selon le type de données mais voici un premier exemple sur le jeu des Zones sous influence
- Zones sous influence, i.e. sans filtrage
Voir un exemple de résultat
{
"type": "FeatureCollection",
"features": [
{
"id": "652d4057ed5106002470d9e3",
"geometry": {
"coordinates": [...],
"type": "Polygon"
},
"properties": {
"OBJECTID":"1",
"Nom":"Saclay",
"Type_":"CEA",
"BUFF_DIST":"5000"
},
"type": "Feature"
},
...
],
"numberMatched": 56,
"numberReturned": 56,
"timeStamp": "2024-06-10T08:52:52.004Z",
"links": [...]
}- Zones sous influence à 5 Kms (possible aussi pour 10 Kms), i.e. avec filtrage sur la propriété
BUFF_DIST
Attention
Si la propriété de filtrage est de type chaîne de caractères mais que la valeur de filtrage est convertible vers un nombre (e.g. 50) veuillez l'encapsuler entre simple quotes (e.g. '50') sinon elle sera automatiquement convertie vers une valeur numérique, ce qui peut faire échouer le filtrage.
- De la 5ème à la 10ème zone sous influence
Voir un exemple de résultat
{
"type": "FeatureCollection",
"features": [
{
"id": "64917e8ec06fb0000887fd3a",
"geometry": {
"coordinates": [...],
"type": "Polygon"
},
"properties": {
"OBJECTID":"4",
"Nom":"Nogent",
"Type_":"CNPE",
"BUFF_DIST":"5000"
},
"type": "Feature"
},
...
],
"numberMatched": 56,
"numberReturned": 5,
"timeStamp": "2024-06-10T08:52:52.004Z",
"links": [...]
}Croisement spatial
Un support limité du filtrage au format CQL permet de réaliser un croisement spatial. Exemple de croisement sur une zone en Andorre avec les limites administratives OpenStreetMap de niveau 7:
HTTP - GETCorps de requête:
{
"intersects": [{ "property": "geometry" }, {
"type": "Polygon",
"coordinates": [
[[1.48, 42.50], [1.66, 42.50], [1.66, 42.60], [1.48, 42.60], [1.48, 42.50]]
]}]
}BDXéo
L'ensemble des tables BDXéo est exposé sous un identifiant de collection du type bdxeo-table (convention kebab case), quelques examples:
- Sites
- Périmètres PPI
Collection avec filtrage sur les propriétés
- Sites de type CNPE
- Sites en France
Réseaux de mesures
En général, pour chaque réseau de mesures deux collections sont exposées par le service et permettent de récupérer:
- la liste des stations de mesure sur le réseau,
- les observations (i.e. mesures) réalisées par les stations au cours du temps sur le réseau.
Par exemple, les données hydrométriques Hub'eau disposent de ces deux collections:
hubeau-hydro-stationspour les stations,hubeau-hydro-observationspour les observations.
Le fonctionnement est similaire pour tous les points d'entrée:
- Téléray
https://api.planet._DOMAIN_/kfs/collections/teleray-sensors: accès à la localisation des sondeshttps://api.planet._DOMAIN_/kfs/collections/teleray-measures: accès au débit de dose gamma ambiant
- SaveEcoBot
https://api.planet._DOMAIN_/kfs/collections/saveecobot-stations: accès à la localisation des sondeshttps://api.planet._DOMAIN_/kfs/collections/saveecobot-measures: accès au débit de dose gamma ambiant
- ICOS
https://api.planet._DOMAIN_/kfs/collections/icos-stations: accès à la localisation des stationshttps://api.planet._DOMAIN_/kfs/collections/icos-observations: accès à la concentration atmosphérique
- RTE
https://api.planet._DOMAIN_/kfs/collections/rte-units: accès à la localisation des unités de productionhttps://api.planet._DOMAIN_/kfs/collections/rte-generation: accès à la puissance injectée
- Hub'eau
https://api.planet._DOMAIN_/kfs/collections/hubeau-hydro-stations: accès à la localisation des sondeshttps://api.planet._DOMAIN_/kfs/collections/hubeau-hydro-observations: accès au niveau et débit d'eau
- Observations Radome
https://api.planet._DOMAIN_/kfs/collections/radome-stations: accès à la localisation des stationshttps://api.planet._DOMAIN_/kfs/collections/radome-observations: accès au paramètres météorologiques mesurés (vent, précipitations, température, ...)
- Observations Semence
https://api.planet._DOMAIN_/kfs/collections/semence-stations: accès à la localisation des stationshttps://api.planet._DOMAIN_/kfs/collections/semence-observations: accès au paramètres météorologiques mesurés (vent, précipitations, température, ...)
- Vigicrues
https://api.planet._DOMAIN_/kfs/collections/vigicrues-sections: accès aux tronçons (considérés comme des "stations")https://api.planet._DOMAIN_/kfs/collections/vigicrues-forecasts: accès au niveau de vigilance (considéré comme une "mesure" sur les tronçons)
Les réseaux suivants ne disposent que d'un seul point d'entrée (soit parce qu'il n'existe pas de stations fixes, soit parce que la géométrie associée aux stations varie au fil du temps), il convient donc de le traiter comme celui fournissant des mesures dans le fonctionnement présenté précedemment:
- OpenRadiation
https://api.planet._DOMAIN_/kfs/collections/openradiation: accès aux mesures
- Zones sous le vent
https://api.planet._DOMAIN_/kfs/collections/zsv: accès à la géométrie des zones
Mesures sans filtrage
- Stations du Réseau Téléray
Mesures avec filtrage spatial
Récupération de la liste des stations Hub'Eau dans une zone donnée (i.e. boîte englobante):
HTTP - GETMesures avec filtrage spatial/temporel
Récupération des mesures des stations Hub'Eau dans une plage de temps et une zone donnée (i.e. boîte englobante) avec les plus récentes en premier:
HTTP - GETVoir un exemple de résultat
{
"type": "FeatureCollection",
"features": [
{
"id": "6666c336ebe899d8b4f8789c",
"geometry": {
"type": "Point",
"coordinates":
[
-0.12606156299146137,
45.02191991211479
]
},
"properties": {
"name": "L'Isle à Abzac",
"code_station": "#P726151001",
"H": 0.647
},
"type": "Feature"
},
...
],
"numberMatched": 1004,
"numberReturned": 500,
"timeStamp": "2024-06-10T08:52:52.004Z",
"links": [...]
}Dernières/Premières mesures sur une station
Récupération des mesures Hub'Eau les plus récentes sur une station par rapport à une horodate donnée:
HTTP - GETVoir un exemple de résultat
{
"type": "FeatureCollection",
"features": [
{
"id": "6666c336ebe899d8b4f8789c",
"geometry": {
"type": "Point",
"coordinates":
[
1.3351479476905552,
47.584957074484784
]
},
"properties": {
"name": "La Loire à Blois",
"code_station": "#K447001001",
"H": -0.816
},
"type": "Feature"
}
],
"numberMatched": 546,
"numberReturned": 1,
"timeStamp": "2024-06-10T08:52:52.004Z",
"links": [...]
}Récupération des mesures Hub'Eau les plus anciennes sur une station par rapport à une horodate donnée:
HTTP - GETAttention
Si une station mesure différentes grandeurs il est nécessaire de créer une requête par grandeur à l'aide d'un filtre au format CQL.
Récupération des mesures Hub'Eau uniquement de débit les plus récentes sur une station par rapport à une horodate donnée:
HTTP - GET