pyspc.io.sandre.read_Sandre

pyspc.io.sandre.read_Sandre(filename=None, datatype=None, codes=None, models=None, scens=None, levelcor=None, flowmes=None, warning=False)[source]

Créer une collection à partir d’un fichier xml Sandre.

Paramètres:
  • filename (str) – Nom du fichier XML-Sandre

  • datatype (str) – Type du fichier XML-Sandre Voir pyspc.convention.sandre.DATATYPES

  • codes (list) – Liste des codes à considérer

  • models (list) – Liste des modèles à considérer, si datatype = “data_fcst_hydro »

  • scens (list) – Liste des scénarios à considérer, si datatype = “data_fcst_hydro »

  • warning (bool) – Afficher les avertissements ? défaut: False

  • levelcor (str) – Nom du fichier XML-Sandre - Courbe de correction Utilisé si datatype = “ratingcurve”

  • flowmes (str) – Nom du fichier XML-Sandre - Jaugeages Utilisé si datatype = “ratingcurve”

Renvoie:

  • - pyspc.core.location.Locations – si datatype parmi [“loc_hydro”, “loc_meteo”]

  • - pyspc.core.ratingcurve.RatingCurves – si datatype parmi [“ratingcurve”]

  • - pyspc.core.series.Series – si datatype parmi [“data_fcst_hydro”, “data_obs_hydro”, “data_obs_meteo”, “levelcor”]

Exemples

>>> from pyspc.io.sandre import read_Sandre

Cas de sites météorologiques

>>> f = 'data/metadata/sandre/SiteMeteo.xml'
>>> locs = read_Sandre(filename=f, datatype='loc_meteo')
>>> locs
*************************************
*********** LOCATIONS ***************
*************************************
*  NOM DE LA COLLECTION = Sandre
*  NOMBRE DE LIEUX      = 3
*  ----------------------------------
*  LIEU #1
*      - CODE    = 43130002
*  ----------------------------------
*  LIEU #2
*      - CODE    = 43091005
*  ----------------------------------
*  LIEU #3
*      - CODE    = 43051003
*************************************
>>> locs['43130002']
*************************************
*********** LOCATION ****************
*************************************
*  CODE LIEU        = 43130002
*  NOM LIEU         = MAZET-VOLAMONT
*  NOM COMPLET LIEU = MAZET-VOLAMONT
*  COURS D'EAU      = None
*  TYPE LIEU        = point
*  COORDONNEES X    =  749997.00 m
*  COORDONNEES Y    = 2004520.00 m
*  ALTITUDE LIEU    =    1130.00 m NGF
*  SURFACE LIEU     =      -1.00 km2
*  COMMUNES         = None
*  TRONCONS         = None
*************************************

Cas de sites hydrologiques

>>> f = 'data/metadata/sandre/SiteHydro.xml'
>>> locs = read_Sandre(filename=f, datatype='loc_hydro')
>>> locs
*************************************
*********** LOCATIONS ***************
*************************************
*  NOM DE LA COLLECTION = Sandre
*  NOMBRE DE LIEUX      = 2
*  ----------------------------------
*  LIEU #1
*      - CODE    = K0550010
*  ----------------------------------
*  LIEU #2
*      - CODE    = K0260010
*************************************
>>> locs['K0550010']
*************************************
*********** LOCATION ****************
*************************************
*  CODE LIEU        = K0550010
*  NOM LIEU         = Bas-en-Basset
*  NOM COMPLET LIEU = La Loire à Bas-en-Basset
*  COURS D'EAU      = La Loire
*  TYPE LIEU        = basin
*  COORDONNEES X    =  739757.00 m
*  COORDONNEES Y    = 2034330.00 m
*  ALTITUDE LIEU    =     450.00 m NGF
*  SURFACE LIEU     =    3234.00 km2
*  COMMUNES         = None
*  TRONCONS         = None
*************************************

Cas de stations hydrologiques

>>> f = 'data/metadata/sandre/StationHydro.xml'
>>> locs = read_Sandre(filename=f, datatype='loc_hydro')
>>> locs
*************************************
*********** LOCATIONS ***************
*************************************
*  NOM DE LA COLLECTION = Sandre
*  NOMBRE DE LIEUX      = 2
*  ----------------------------------
*  LIEU #1
*      - CODE    = K435001020
*  ----------------------------------
*  LIEU #2
*      - CODE    = K435001010
*************************************
>>> locs['K435001010']
*************************************
*********** LOCATION ****************
*************************************
*  CODE LIEU        = K435001010
*  NOM LIEU         = Pont Royals
*  NOM COMPLET LIEU = La Loire à Orléans - Pont Royals
*  COURS D'EAU      = La Loire
*  TYPE LIEU        = point
*  COORDONNEES X    =  567716.00 m
*  COORDONNEES Y    = 2322086.00 m
*  ALTITUDE LIEU    =      -1.00 m NGF
*  SURFACE LIEU     =      -1.00 km2
*  COMMUNES         = None
*  TRONCONS         = None
*************************************

Cas de courbes de tarage

>>> f = 'data/metadata/sandre/RatingCurves.xml'
>>> curves = read_Sandre(filename=f, datatype='ratingcurve')
>>> curves
*************************************
********* RATINGCURVES **************
*************************************
*  NOM DE LA COLLECTION = Sandre
*  NOMBRE DE COURBES    = 2
*  ----------------------------------
*  COURBE #1
*      - CODE        = K055001010
*      - NUM         = H201416
*      - FOURNISSEUR = PHyC
*  ----------------------------------
*  COURBE #2
*      - CODE        = K055001010
*      - NUM         = H201620
*      - FOURNISSEUR = PHyC
*************************************
>>> curves['H201620']
*************************************
********* RATINGCURVE ***************
*************************************
*  CODE STATION         = K055001010
*  CODE COURBE TARAGE   = H201620
*  FOURNISSEUR          = Provider(name='PHyC')
*  PERIODE VALIDITE     = (dt(2016, 11, 23, 2, 30), dt(2020, 1, 1, 0, 0))
*  PERIODE TEMPORELLE   = [2016-11-23 02:30:00, 2020-01-01]
*  INTERVALLE VALIDITE  = (-1.36, 5.24)
*  DATE MAJ             = 2017-01-13 13:53:15
*************************************

Cas de courbes de correction

>>> f = 'data/data/sandre/levelcor.xml'
>>> series = read_Sandre(filename=f, datatype='levelcor')
>>> series
*************************************
********** SERIES *******************
*************************************
*  NOM DE LA COLLECTION = Sandre
*  TYPE DE COLLECTION   = obs
*  NOMBRE DE SERIES     = 1
*  ----------------------------------
*  SERIE #1
*      - CODE    = K055001010
*      - VARNAME = HI
*      - META    = levelcor
*************************************
>>> series[('K055001010', 'HI', 'levelcor')]
*************************************
*********** SERIE *******************
*************************************
*  NOM VARIABLE SPC     = HI
*  INTITULE VARIABLE    = Hauteur instantanée
*  IDENTIFIANT          = K055001010
*  FOURNISSEUR          = Provider(name='Sandre')
*  NOM VARIABLE         = HI
*  UNITE                = m
*  SERIE CONTINUE       = True
*  PAS DE TEMPS         = None
*  UNITE DE TEMPS       = None
*  FUSEAU HORAIRE       = UTC
*  PROFONDEUR SERIE     = 8
*  PREMIER PAS DE TEMPS = 2014-04-23 13:40:00
*  DERNIER PAS DE TEMPS = 2014-08-30 00:00:00
*************************************

Cas de données d’observation météorologique

>>> f = 'data/data/sandre/dataobs_meteo.xml'
>>> series = read_Sandre(filename=f, datatype='data_obs_meteo')
>>> series
*************************************
********** SERIES *******************
*************************************
*  NOM DE LA COLLECTION = Sandre
*  TYPE DE COLLECTION   = obs
*  NOMBRE DE SERIES     = 1
*  ----------------------------------
*  SERIE #1
*      - CODE    = 23209001
*      - VARNAME = PH
*      - META    = None
*************************************
>>> series[('23209001', 'PH', None)]
*************************************
*********** SERIE *******************
*************************************
*  NOM VARIABLE SPC     = PH
*  INTITULE VARIABLE    = Précipitation horaire
*  IDENTIFIANT          = 23209001
*  FOURNISSEUR          = Provider(name='Sandre')
*  NOM VARIABLE         = PH
*  UNITE                = mm
*  SERIE CONTINUE       = True
*  PAS DE TEMPS         = 1:00:00
*  UNITE DE TEMPS       = hour
*  FUSEAU HORAIRE       = UTC
*  PROFONDEUR SERIE     = 19
*  PREMIER PAS DE TEMPS = 2016-04-15 12:00:00
*  DERNIER PAS DE TEMPS = 2016-04-16 06:00:00
*************************************

Cas de données hydrométriques (Q)

>>> f = 'data/data/sandre/dataobs_hydro_Q.xml'
>>> series = read_Sandre(filename=f, datatype='data_obs_hydro')
>>> series
*************************************
********** SERIES *******************
*************************************
*  NOM DE LA COLLECTION = Sandre
*  TYPE DE COLLECTION   = obs
*  NOMBRE DE SERIES     = 1
*  ----------------------------------
*  SERIE #1
*      - CODE    = K5183020
*      - VARNAME = QH
*      - META    = None
*************************************
>>> series[('K5183020', 'QH', None)]
*************************************
*********** SERIE *******************
*************************************
*  NOM VARIABLE SPC     = QH
*  INTITULE VARIABLE    = Débit horaire
*  IDENTIFIANT          = K5183020
*  FOURNISSEUR          = Provider(name='Sandre')
*  NOM VARIABLE         = QH
*  UNITE                = m3/s
*  SERIE CONTINUE       = True
*  PAS DE TEMPS         = 1:00:00
*  UNITE DE TEMPS       = hour
*  FUSEAU HORAIRE       = UTC
*  PROFONDEUR SERIE     = 47
*  PREMIER PAS DE TEMPS = 2016-04-17 01:00:00
*  DERNIER PAS DE TEMPS = 2016-04-18 23:00:00
*************************************

Cas de données hydrométriques (H)

>>> f = 'data/data/sandre/dataobs_hydro_H.xml'
>>> series = read_Sandre(filename=f, datatype='data_obs_hydro')
>>> series
*************************************
********** SERIES *******************
*************************************
*  NOM DE LA COLLECTION = Sandre
*  TYPE DE COLLECTION   = obs
*  NOMBRE DE SERIES     = 1
*  ----------------------------------
*  SERIE #1
*      - CODE    = K518302001
*      - VARNAME = HH
*      - META    = None
*************************************
>>> series[('K518302001', 'HH', None)]
*************************************
*********** SERIE *******************
*************************************
*  NOM VARIABLE SPC     = HH
*  INTITULE VARIABLE    = Hauteur horaire
*  IDENTIFIANT          = K518302001
*  FOURNISSEUR          = Provider(name='Sandre')
*  NOM VARIABLE         = HH
*  UNITE                = m
*  SERIE CONTINUE       = True
*  PAS DE TEMPS         = 1:00:00
*  UNITE DE TEMPS       = hour
*  FUSEAU HORAIRE       = UTC
*  PROFONDEUR SERIE     = 47
*  PREMIER PAS DE TEMPS = 2016-04-17 01:00:00
*  DERNIER PAS DE TEMPS = 2016-04-18 23:00:00
*************************************

Cas de données hydrométriques élaborées (Q)

>>> f = 'data/data/sandre/K0550010_198009060000_198010060000_Q_obs.xml'
>>> series = read_Sandre(filename=f, datatype='data_obs_hydro')
>>> series
*************************************
********** SERIES *******************
*************************************
*  NOM DE LA COLLECTION = Sandre
*  TYPE DE COLLECTION   = obs
*  NOMBRE DE SERIES     = 1
*  ----------------------------------
*  SERIE #1
*      - CODE    = K0550010
*      - VARNAME = QJ
*      - META    = None
*************************************
>>> series[('K0550010', 'QJ', None)]
*************************************
*********** SERIE *******************
*************************************
*  NOM VARIABLE SPC     = QJ
*  INTITULE VARIABLE    = Débit moyen journalier
*  IDENTIFIANT          = K0550010
*  FOURNISSEUR          = Provider(name='Sandre')
*  NOM VARIABLE         = QJ
*  UNITE                = m3/s
*  SERIE CONTINUE       = True
*  PAS DE TEMPS         = 1 day, 0:00:00
*  UNITE DE TEMPS       = days
*  FUSEAU HORAIRE       = UTC
*  PROFONDEUR SERIE     = 31
*  PREMIER PAS DE TEMPS = 1980-09-06 00:00:00
*  DERNIER PAS DE TEMPS = 1980-10-06 00:00:00
*************************************

Cas de prévisions hydrométriques (Q)

>>> f = 'data/data/sandre/spcmo.xml'
>>> series = read_Sandre(filename=f, datatype='data_fcst_hydro')
>>> series
*************************************
********** SERIES *******************
*************************************
*  NOM DE LA COLLECTION = Sandre
*  TYPE DE COLLECTION   = fcst
*  NOMBRE DE SERIES     = 12
*  ----------------------------------
*  SERIE #1
*      - CODE    = Y2100020
*      - VARNAME = QH
*      - META    = 2019-11-19 06:00:00, 11gGRPd130, ctl, 10
*  ----------------------------------
*  SERIE #2
*      - CODE    = Y2100020
*      - VARNAME = QH
*      - META    = 2019-11-19 06:00:00, 11gGRPd130, ctl, 50
*  ----------------------------------
*  SERIE #3
*      - CODE    = Y2100020
*      - VARNAME = QH
*      - META    = 2019-11-19 06:00:00, 11gGRPd130, ctl, 90
*  ----------------------------------
*  SERIE #4
*      - CODE    = Y2100020
*      - VARNAME = QH
*      - META    = 2019-11-19 06:00:04, 11gGRPd130, mem, 10
*  ----------------------------------
*  SERIE #5
*      - CODE    = Y2100020
*      - VARNAME = QH
*      - META    = 2019-11-19 06:00:04, 11gGRPd130, mem, 50
*  ----------------------------------
*  SERIE #6
*      - CODE    = Y2100020
*      - VARNAME = QH
*      - META    = 2019-11-19 06:00:04, 11gGRPd130, mem, 90
*  ----------------------------------
*  SERIE #7
*      - CODE    = Y2100020
*      - VARNAME = QI
*      - META    = 2019-11-19 05:55:00, 11sPLA0001, ctl, 10
*  ----------------------------------
*  SERIE #8
*      - CODE    = Y2100020
*      - VARNAME = QI
*      - META    = 2019-11-19 05:55:00, 11sPLA0001, ctl, 50
*  ----------------------------------
*  SERIE #9
*      - CODE    = Y2100020
*      - VARNAME = QI
*      - META    = 2019-11-19 05:55:00, 11sPLA0001, ctl, 90
*  ----------------------------------
*  SERIE #10
*      - CODE    = Y2100020
*      - VARNAME = QI
*      - META    = 2019-11-19 05:55:00, 11sPLA0001, mem, 10
*  ----------------------------------
*  SERIE #11
*      - CODE    = Y2100020
*      - VARNAME = QI
*      - META    = 2019-11-19 05:55:00, 11sPLA0001, mem, 50
*  ----------------------------------
*  SERIE #12
*      - CODE    = Y2100020
*      - VARNAME = QI
*      - META    = 2019-11-19 05:55:00, 11sPLA0001, mem, 90
*************************************
>>> series[('Y2100020', 'QH',
...         (dt(2019, 11, 19, 6), '11gGRPd130', 'ctl', '50'))]
*************************************
*********** SERIE *******************
*************************************
*  NOM VARIABLE SPC     = QH
*  INTITULE VARIABLE    = Débit horaire
*  IDENTIFIANT          = Y2100020_2019111906_11gGRPd130_ctl_50
*  FOURNISSEUR          = Provider(name='Sandre')
*  NOM VARIABLE         = QH
*  UNITE                = m3/s
*  SERIE CONTINUE       = True
*  PAS DE TEMPS         = 1:00:00
*  UNITE DE TEMPS       = hour
*  FUSEAU HORAIRE       = UTC
*  PROFONDEUR SERIE     = 7
*  PREMIER PAS DE TEMPS = 2019-11-22 00:00:00
*  DERNIER PAS DE TEMPS = 2019-11-22 06:00:00
*************************************