Gestion de courbes de tarage

Ce web-service permet de gérer des courbes de tarage en PHyC.

Pour créer une courbe de tarage, il faut que son code soit égal à 0. En retour, le web-service renseignera le code de la courbe insérée.

Paramètres HTTP

Paramètre

Valeur

Route

courbetarage

Méthode

POST ou PUT

Contenu

courbe de tarage au format json

Droit de gestion

Il faut disposer du rôle ADM ou POLE2 sur la station hydro pour gérer une courbe de tarage.

Règles techniques

On peut ajouter des courbes de tarage uniquement aux stations de type STD, LIMNIMERE et HC.

Lorsque l’on ajoute une courbe de tarage, elle doit posséder au moins deux points pivot et il est obligatoire de lui associer au moins une plage d’activation.

Périodes d’activation

Une seule courbe de tarage peut être active à une date donnée. L’ajout d’une période d’activation peut donc entraîner la désactivation partielle ou totale de périodes d’activation d’autres courbes de tarage de la station hydro.

Pivots d’une courbe de tarage puissance

Les coefficients VarAPivotCourbeTarage, VarBPivotCourbeTarage et VarHPivotCourbeTarage sont obligatoires et pour le premier point, ils doivent être égaux à 1.

L’attribut QPivotCourbeTarage ne doit pas être présent.

Pivots d’une courbe de tarage poly-ligne

Les attributs HtPivotCourbeTarage et QPivotCourbeTarage sont obligatoires . Les attributs VarAPivotCourbeTarage, VarBPivotCourbeTarage et VarHPivotCourbeTarage ne doivent pas être présents

Statut des périodes

Le statut “non utilisable” (0) permet de désactiver des périodes d’activation de courbes de tarage.

Contrairement aux autres statuts, le statut 0 ne crée pas de plages en PHyC.

Contenu de la requête HTTP

La requête HTTP doit contenir un json hydrométrie contenant une courbe de tarage.

Json hydrométrie

Schéma de validation
{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://phyc.org/ws/gererCourbeTarage.json",
    "type": "object",
    "properties": {
        "Scenario": {
            "type": "object"
        },
        "Donnees": {
            "type": "object",
            "properties": {
                "CourbesTarage": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "CdCourbeTarage": {"type": "integer"},
                            "LbCourbeTarage": {"type": ["string", "null"]},
                            "TypCourbeTarage": {"type": "integer"},
                            "DtCreatCourbeTarage": {"type": "string", "format": "date-time"},
                            "LimiteInfCourbeTarage": {"type": ["number", "null"]},
                            "LimiteSupCourbeTarage": {"type": ["number", "null"]},
                            "LimiteInfPubCourbeTarage": {"type": ["number", "null"]},
                            "LimiteSupPubCourbeTarage": {"type": ["number", "null"]},
                            "DnCourbeTarage": {"type": ["number", "null"]},
                            "AlphaCourbeTarage": {"type": ["number", "null"]},
                            "BetaCourbeTarage": {"type": ["number", "null"]},
                            "ComCourbeTarage": {"type": ["string", "null"]},
                            "CdStationHydro": {"type": "string"},
                            "CdContact": {"type": "string"},
                            "PivotsCourbeTarage": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "HtPivotCourbeTarage": {"type": "number"},
                                        "QPivotCourbeTarage": {"type": "number"},
                                        "VarAPivotCourbeTarage": {"type": "number"},
                                        "VarBPivotCourbeTarage": {"type": "number"},
                                        "VarHPivotCourbeTarage": {"type": "number"}
                                    },
                                    "required": ["HtPivotCourbeTarage"],
                                    "oneOf": [
                                        {"required": ["QPivotCourbeTarage"]},
                                        {"required" :  ["VarAPivotCourbeTarage", "VarBPivotCourbeTarage", "VarHPivotCourbeTarage"]}],
                                    "additionalProperties": false
                                },
                                "minItems": 1
                            },
                            "PeriodesUtilisationCourbeTarage": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "DtDebPeriodeUtilisationCourbeTarage": {"type": "string", "format": "date-time"},
                                        "DtFinPeriodeUtilisationCourbeTarage": {"type": "string", "format": "date-time"},
                                        "EtatPeriodeUtilisationCourbeTarage": {"type": "integer"}
                                    },
                                    "required": ["DtDebPeriodeUtilisationCourbeTarage",
                                        "EtatPeriodeUtilisationCourbeTarage"],
                                    "additionalProperties": false
                                },
                                "minItems": 1
                            },
                            "ComPrivCourbeTarage": {"type": ["string", "null"]}
                        },
                        "required": ["CdCourbeTarage", "LbCourbeTarage", "TypCourbeTarage" , "CdStationHydro", "CdStationHydro"],
                        "additionalProperties": false
                    },
                    "minItems": 1
                }
            },
            "required": ["CourbesTarage"],
            "additionalProperties": false
        }
    },
    "required": ["Scenario", "Donnees"],
    "additionalProperties": false
}
  • Les attributs Donnees (associé à l’objet Donnees) et Scenario sont obligatoires;

  • L’objet Donnees ne doit contenir qu’un seul attribut CourbesTarage associé à une liste ne contenant qu’un seul objet CourbeTarage;

  • Les attributs CdCourbeTarage, LbCourbeTarage, TypCourbeTarage et CdStationHydro sont obligatoires;

  • L’attribut PivotsCourbeTarage (non obligatoire en modification) doit être une liste non vide d’objets PivotCourbeTarage;

  • L’attribut PeriodesUtilisationCourbeTarage (non obligatoire en modification) doit être une liste non vide d’objets PeriodeUtilisationCourbeTarage;

  • l’attribut HtPivotCourbeTarage est obligatoire pour les points pivot;

  • L’attribut QPivotCourbeTarage est obligatoire pour les points pivot des courbes de tarage de type poly-ligne;

  • les VarAPivotCourbeTarage, VarBPivotCourbeTarage et VarHPivotCourbeTarage sont obligatoires pour les points pivot des courbes de tarage de type puissance;

  • les périodes d’activation ne doivent pas comporter l’attribut HistosActivationPeriode;

  • l’attribut DtMajCourbeTarage de la courbe de tarage ne doit pas être présent.

Recalcul

L’ajout ou la modification d’une courbe de tarage va générer des recalculs asynchrones les périodes d’activation de la courbe de tarage.

Calcul des débits via les données de la courbe de tarage

Les débits en dehors de la zone de publication ne sont pas publics.

La qualification d’un débit calculé en dehors de la zone de définition de la courbe de tarage vaudra 12 (valeur incertaine).

Discontinuités

Une débit sera associé à une discontinuité forte si une ou plusieurs hauteurs précédentes sont supérieures à la hauteur du dernier point de la courbe.

Une débit sera associé à une discontinuité faible si une ou plusieurs hauteurs précédentes sont inférieures à la hauteur du premier point de la courbe.

Réponse du web-service

En cas de succès, le web-service retournera un json hydrométrie contenant la courbe de tarage.

Si le web-service ajoute une nouvelle courbe en PHYC, l’attribut CdCourbeTarage contiendra le code de la courbe généré par la PHyC.

Le web-service rajoutera l’attribut DtMajCourbeTarage à la courbe de tarage et l’attribut HistosActivationPeriode pour chaque période d’activation qui contiendra la date d’activation de la période.