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
^^^^^^^^^^^^^^^^

.. literalinclude:: ../../../jsonschema/gererCourbeTarage.json
   :caption: Schéma de validation
   :language: json

* 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.
