Publication d'observations météo (**déprécié**)
===============================================

Ce web-service permet de publier des observations météo.

Paramètres HTTP
---------------

========= ============
Paramètre Valeur
========= ============
Route     obsmeteo
Méthode   GET
========= ============

Paramètres
----------

============== ===================================== ========= ===
Nom            Description                           Type      O/F
============== ===================================== ========= ===
cdsitesmeteo   Liste de codes de sites météo         list(str) O
grandeur       grandeur météo (RR, TA ou HN)         str       O
durée          Durée des cumuls si RR                str       F
statuts        Liste des statuts                     list(int) F
qualifications Liste de qualifications               list(int) F
methodes       Liste de méthodes                     list(int) F
plusvalide     Notion de plus valide                 bool      F
dtdebut        Date de début                         datetime  O
dtfin          Date de fin                           datetime  F
dtinsdebut     date de début d'insertion             datetime  F
dtinsfin       Date de fin d'insertion               datetime  F
asynchrone     Publication asynchrone                bool      F
email          email lié à la publication asynchrone str       F
============== ===================================== ========= ===

Filtre durée
^^^^^^^^^^^^

Le filtre durée est pris en compte uniquement pour les cumuls de pluie (grd = 'RR').

Il est exprimé en minutes.

En l'absence de ce filtre, le web-service retourne 3 cumuls de pluie:

- le cumul élémentaire
- le cumul horaire
- le cumul journalier

Les valeurs autorisées pour la durée de cumul de précipitation sont:

-  0 (le web-service retourne des cumuls élémentaires (pas de temps de
   la grandeurs lors de l'insertion de la donnée)
-  < 60 minutes et un diviseur de 60 (ex: 15, 30 min)
-  60 minutes (1 heure)
-  1440 minutes (24 heures)

Droits de publication
---------------------

Les droits de publication du web-service dépendent du caractère public des sites météo.

Pour un site météo public, il n'est pas nécessaire d'être authentifié pour publier les observations
du site.

Pour publier des observations d'uns site météo privé, il faut être authentifié et avoir le profil
institutionnel ou posséder un rôle sur le site météo.

Tri des observations météo
--------------------------

Lors de la publication d'observations météo, les données sont triées
par:

-  code site météo
-  grandeur météo
-  pour les cumuls RR, les données élémentaires puis les cumuls horaires
   et enfin les cumuls journaliers
-  les observations les plus valides
-  date des observations

Le web-web-service ne renverra pas de cumul si la durée ne correspond ni à pas de temps élémentaire
de la grandeur RR, ni à 60 et 1440.

Limite de publication synchrone / asynchrone
--------------------------------------------

Avant de lancer le traitement, le web-service vérifie que le nombre d’observations ne dépasse pas 
les limites synchrone ou asynchrone de publication.

Le web-service calcule le nombre théorique maximal d’observations avec la formule suivante: 

.. math::

   N_{obs} = N_{sites} \times \frac {min((dtfin – dtdebut),(dtinsfin – dtinsdebut))} {pdt}


Réponse du web-service mode asynchrone
--------------------------------------

En mode asynchrone, le web-service enregistrera la demande de publication.
En retour, la PHyC fournit deux paramètres.

- idpublication: identifiant de ublication
- url : le lien de récupération de la demande

Réponse du  web-service en mode synchrone
-----------------------------------------

Le web-service renvoie un json hydrométrie contenant les observations météo à publier.

Le json hydrométrie contient les deux propriétés Scenario et Donnees.

Données
^^^^^^^

L'objet Données contiendra l'unique propriété SeriesObsMeteo.

SeriesObsMeteo est une liste non vide d'objets SerieObsMeteo.

SerieObsMeteo
^^^^^^^^^^^^^

Propriétés de l'objet SerieObsMeteo:

- CdSiteMeteo
- CdGrdMeteo
- DureeSerieObsMeteo
- DtDebSerieObsMeteo
- DtFinSerieObsMeteo
- DtProdSerieObsMeteo
- CdContact
- ObssMeteo : liste non vide d'objets ObsMeteo

ObsMeteo
^^^^^^^^

Propriétés de l'objet ObsMeteo:

- DtObsMeteo
- ResObsMeteo
- IndiceQualObsMeteo
- ContxtObsMeteo
- QualifObsMeteo
- MethObsMeteo
- StObsMeteo

Exemple
^^^^^^^

.. code-block:: json
   :caption: Observations météo au format json

   {
     "Scenario": {},
     "Donnnees": {
       "SerieObsMeteo": [
         {
           "CdSiteMeteo" : "012345678",
           "CdGrdMeteo" : "RR",
           "DureeSerieObsMeteo" : "60",
           "DtDebSerieObsMeteo" : "2020-01-01T00:00:00",
           "DtFinSerieObsMeteo" : "2020-01-01T01:00:00",
           "DtProdSerieObsMeteo" : "2020-0-02T00:00:00",
           "CdContact" : "0",
           "ObssMeteo" : [
             {
               "DtObsMeteo": "2020-01-01T00:00:00",
               "ResObsMeteo": 15,
               "IndiceQualObsMeteo": 100,
               "ContxtObsMeteo": "",
               "QualifObsMeteo": 16,
               "MethObsMeteo": 0,
               "StObsMeteo": 4
             }
           ]
         }
       ]
     }
   }
