pyspc.data.prevision.prevision14.Prevision14

class pyspc.data.prevision.prevision14.Prevision14(filename=None)[source]

Bases : Mdb

Classe destinée à traiter la base Prévision du SPC LCI, période 2014-2016

filename

Chemin de la base de données

Type:

str

sql

Requête courante au format SQL

Type:

str

__init__(filename=None)[source]

Initialisation de l’instance Prevision14

Paramètres:

filename (str) – Chemin de la base de données

Methods

__init__([filename])

Initialisation de l'instance Prevision14

check_sql_return([content, warning])

Contrôler le retour de la requête SQL.

close()

Fermer la connexion à la base de données et le curseur <dbase>.

commit()

Commiter/accepter les enregistrements ajoutés.

connect()

Créer la connexion à la base de données et le curseur pyodbc.

execute([warning])

Exécution de la requête SQL.

from_datetime([dtime, fmt, tolerance])

Convertir un <string> ou un <datetime> au format accepté par Access.

get_datatypes()

Type de données des bases Prevision 2014

read_fcst([codes, valid, hydro_version, ...])

Récupération des prévisions de la base Prevision14

read_fcst_hydro2([codes, valid, first_dt, ...])

Récupération des prévisions de la base Prevision14

read_fcst_hydro3([codes, valid, first_dt, ...])

Récupération des prévisions de la base Prevision14.

read_serie_hydro2([codes, valid, first_dt, ...])

Récupération des séries de la base Prevision14

read_serie_hydro3([codes, valid, first_dt, ...])

Récupération des séries de la base Prevision14.

rollback()

Annuler les enregistrements ajoutés.

check_sql_return(content=None, warning=False)

Contrôler le retour de la requête SQL.

close()

Fermer la connexion à la base de données et le curseur <dbase>.

commit()

Commiter/accepter les enregistrements ajoutés.

connect()

Créer la connexion à la base de données et le curseur pyodbc.

Avertissement

Cette méthode nécessite l’import de la bibliothèque tierce pyodbc

execute(warning=True)

Exécution de la requête SQL.

Paramètres:

warning (bool) – Afficher les avertissements. Par défaut: True

Renvoie:

  • list or None – Eléments retenus par la requête SQL

  • .. warning:: Cette méthode nécessite l’import de la – bibliothèque tierce pyodbc

static from_datetime(dtime=None, fmt=None, tolerance=0)

Convertir un <string> ou un <datetime> au format accepté par Access.

  • Convertir les dates du format “str” au format “datetime.datetime”

  • Convertir en réel: mode de stockage des dates dans Access
    • Il faut ajouter 1 jour lors du calcul du flottant car 366j en 1900 (Access) et 365j en 1900 (datetime.datetime)

    • Il faut enlever/ajouter 60 sec. (tolerance) dans le calcul du flottant pour contrer le pb de précision numérique SQL/ACCESS

Paramètres:
  • dtime (datetime ou str) – Date à convertir

  • fmt (str) – Format de la date, si définie comme un str

  • tolerance (int) – Tolérance en secondes. Par défaut: 0

Renvoie:

Valeur réelle correspondant à la date et à la tolérance

Type renvoyé:

float

classmethod get_datatypes()[source]

Type de données des bases Prevision 2014

Renvoie:

Type de données des bases Prevision 2014

Type renvoyé:

list

read_fcst(codes=None, valid=False, hydro_version='hydro3', first_dt=None, last_dt=None, warning=True)[source]

Récupération des prévisions de la base Prevision14

Paramètres:
  • codes (list) – Codes Hydro2/Hydro3 des stations

  • valid (bool) – Seulement les prévisions validées (True) ou toutes les prévisions produites (False) Défaut: False

  • hydro_version (str) – Version du référentiel: “hydro2” ou “hydro3”. Défaut: “hydro3”

  • first_dt (datetime) – Premier instant de prévision

  • last_dt (datetime) – Dernier instant de prévision

  • warning (bool) – Affiche les avertissement si True. Défaut: True

Type renvoyé:

X

Lève:

ValueError – si hydro_version n’est pas parmi [“hydro2”, “hydro3”]

Voir aussi

Prevision14.get_fcst_hydro2, Prevision14.get_fcst_hydro3

read_fcst_hydro2(codes=None, valid=False, first_dt=None, last_dt=None, warning=True)[source]

Récupération des prévisions de la base Prevision14

Paramètres:
  • codes (list) – Codes Hydro2/Hydro3 des stations

  • valid (bool) – Seulement les prévisions validées (True) ou toutes les prévisions produites (False) Défaut: False

  • first_dt (datetime) – Premier instant de prévision

  • last_dt (datetime) – Dernier instant de prévision

  • warning (bool) – Affiche les avertissement si True. Défaut: True

Renvoie:

Tableau des données prévues

Type renvoyé:

pandas.DataFrame

Notes

Les colonnes vides sont ignorées.

Exemples

>>> from datetime import datetime as dt
>>> from pyspc.data.prevision import Prevision14
>>> f = 'data/io/dbase/prevision_2014.mdb'
>>> reader = Prevision14(filename=f)

Exemple de prévision validée - Cas Hydro2

>>> df = reader.read_fcst_hydro2(
...     codes=['K1251810'],
...     first_dt=dt(2013, 5, 3, 12),
...     last_dt=dt(2013, 5, 3, 23),
...     valid=True
... )
>>> df
                               K1251810
                    2013-05-03 23:00:00
                                   2006
                                DebiVal HautVal
DateVal
2013-05-04 00:00:00          204.199997    3.47
2013-05-04 01:00:00          202.100006    4.79
2013-05-04 02:00:00          200.199997    4.78
2013-05-04 03:00:00          198.399994    4.77
2013-05-04 04:00:00          196.300003    4.76
2013-05-04 05:00:00          193.600006    4.75
2013-05-04 06:00:00          190.399994    4.73
2013-05-04 07:00:00          186.699997    4.71
2013-05-04 08:00:00          182.500000    4.69
2013-05-04 09:00:00          177.899994    4.66
2013-05-04 10:00:00          173.100006    4.63
2013-05-04 11:00:00          168.199997    4.61
2013-05-04 12:00:00          163.300003    4.58
2013-05-04 13:00:00          158.399994    4.55
2013-05-04 14:00:00          153.500000    4.53
2013-05-04 15:00:00          148.800003    4.50
2013-05-04 16:00:00          144.300003    4.48
2013-05-04 17:00:00          139.899994    4.45
2013-05-04 18:00:00          135.699997    4.43
2013-05-04 19:00:00          131.699997    4.41
2013-05-04 20:00:00          127.699997    4.38
2013-05-04 21:00:00          123.699997    4.36
2013-05-04 22:00:00          119.800003    4.34
2013-05-04 23:00:00          115.800003    4.32
2013-05-05 00:00:00          111.599998    4.29
2013-05-05 01:00:00          107.300003    4.27
2013-05-05 02:00:00          103.000000    4.24
2013-05-05 03:00:00           98.900002    4.22
2013-05-05 04:00:00           95.099998    4.20
2013-05-05 05:00:00           91.500000    4.18
...                                 ...     ...
2013-05-05 18:00:00           59.099998    3.97
2013-05-05 19:00:00           57.400002    3.96
2013-05-05 20:00:00           55.799999    3.94
2013-05-05 21:00:00           54.200001    3.93
2013-05-05 22:00:00           52.700001    3.92
2013-05-05 23:00:00           51.299999    3.90
2013-05-06 00:00:00           49.900002    3.89
2013-05-06 01:00:00           48.700001    3.88
2013-05-06 02:00:00           47.400002    3.86
2013-05-06 03:00:00           46.200001    3.84
2013-05-06 04:00:00           45.099998    3.83
2013-05-06 05:00:00           44.000000    3.81
2013-05-06 06:00:00           43.000000    3.80
2013-05-06 07:00:00           42.000000    3.78
2013-05-06 08:00:00           41.000000    3.77
2013-05-06 09:00:00           40.099998    3.75
2013-05-06 10:00:00           39.200001    3.73
2013-05-06 11:00:00           38.400002    3.71
2013-05-06 12:00:00           37.500000    3.69
2013-05-06 13:00:00           36.700001    3.67
2013-05-06 14:00:00           36.000000    3.65
2013-05-06 15:00:00           35.200001    3.63
2013-05-06 16:00:00           34.500000    3.61
2013-05-06 17:00:00           33.799999    3.59
2013-05-06 18:00:00           33.200001    3.57
2013-05-06 19:00:00           32.500000    3.55
2013-05-06 20:00:00           31.900000    3.53
2013-05-06 21:00:00           31.299999    3.51
2013-05-06 22:00:00           30.700001    3.49
2013-05-06 23:00:00           30.100000    3.47

[72 rows x 2 columns]

Exemple de prévision brute - Cas Hydro2

>>> df = reader.read_fcst_hydro2(
...     codes=['K1251810'],
...     first_dt=dt(2013, 5, 3, 12),
...     last_dt=dt(2013, 5, 3, 23),
...     valid=False
... )
>>> df
                               K1251810  ...
                    2013-05-03 23:00:00  ...
                                   2001  ...
                                PluiVal  ...    DebiVal HautVal
DateVal                                  ...
2013-05-04 00:00:00                 0.1  ... 204.199997    3.47
2013-05-04 01:00:00                 1.6  ... 202.100006    4.79
2013-05-04 02:00:00                 2.2  ... 200.199997    4.78
2013-05-04 03:00:00                 1.1  ... 198.399994    4.77
2013-05-04 04:00:00                 0.2  ... 196.300003    4.76
2013-05-04 05:00:00                 0.1  ... 193.600006    4.75
2013-05-04 06:00:00                 0.1  ... 190.399994    4.73
2013-05-04 07:00:00                 0.0  ... 186.699997    4.71
2013-05-04 08:00:00                 0.2  ... 182.500000    4.69
2013-05-04 09:00:00                 0.0  ... 177.899994    4.66
2013-05-04 10:00:00                 0.0  ... 173.100006    4.63
2013-05-04 11:00:00                 0.0  ... 168.199997    4.61
2013-05-04 12:00:00                 0.0  ... 163.300003    4.58
2013-05-04 13:00:00                 0.0  ... 158.399994    4.55
2013-05-04 14:00:00                 0.0  ... 153.500000    4.53
2013-05-04 15:00:00                 0.0  ... 148.800003    4.50
2013-05-04 16:00:00                 0.0  ... 144.300003    4.48
2013-05-04 17:00:00                 0.0  ... 139.899994    4.45
2013-05-04 18:00:00                 0.0  ... 135.699997    4.43
2013-05-04 19:00:00                 0.0  ... 131.699997    4.41
2013-05-04 20:00:00                 0.0  ... 127.699997    4.38
2013-05-04 21:00:00                 0.0  ... 123.699997    4.36
2013-05-04 22:00:00                 0.0  ... 119.800003    4.34
2013-05-04 23:00:00                 0.0  ... 115.800003    4.32
2013-05-05 00:00:00                 0.0  ... 111.599998    4.29
2013-05-05 01:00:00                 0.0  ... 107.300003    4.27
2013-05-05 02:00:00                 0.0  ... 103.000000    4.24
2013-05-05 03:00:00                 0.0  ...  98.900002    4.22
2013-05-05 04:00:00                 0.0  ...  95.099998    4.20
2013-05-05 05:00:00                 0.0  ...  91.500000    4.18
...                                 ...  ...        ...     ...
2013-05-05 18:00:00                 0.0  ...  59.099998    3.97
2013-05-05 19:00:00                 0.0  ...  57.400002    3.96
2013-05-05 20:00:00                 0.0  ...  55.799999    3.94
2013-05-05 21:00:00                 0.0  ...  54.200001    3.93
2013-05-05 22:00:00                 0.0  ...  52.700001    3.92
2013-05-05 23:00:00                 0.0  ...  51.299999    3.90
2013-05-06 00:00:00                 0.1  ...  49.900002    3.89
2013-05-06 01:00:00                 0.0  ...  48.700001    3.88
2013-05-06 02:00:00                 0.0  ...  47.400002    3.86
2013-05-06 03:00:00                 0.0  ...  46.200001    3.84
2013-05-06 04:00:00                 0.0  ...  45.099998    3.83
2013-05-06 05:00:00                 0.0  ...  44.000000    3.81
2013-05-06 06:00:00                 0.0  ...  43.000000    3.80
2013-05-06 07:00:00                 0.0  ...  42.000000    3.78
2013-05-06 08:00:00                 0.0  ...  41.000000    3.77
2013-05-06 09:00:00                 0.0  ...  40.099998    3.75
2013-05-06 10:00:00                 0.0  ...  39.200001    3.73
2013-05-06 11:00:00                 0.0  ...  38.400002    3.71
2013-05-06 12:00:00                 0.0  ...  37.500000    3.69
2013-05-06 13:00:00                 0.0  ...  36.700001    3.67
2013-05-06 14:00:00                 0.0  ...  36.000000    3.65
2013-05-06 15:00:00                 0.2  ...  35.200001    3.63
2013-05-06 16:00:00                 0.0  ...  34.500000    3.61
2013-05-06 17:00:00                 0.0  ...  33.799999    3.59
2013-05-06 18:00:00                 0.0  ...  33.200001    3.57
2013-05-06 19:00:00                 0.0  ...  32.500000    3.55
2013-05-06 20:00:00                 0.0  ...  31.900000    3.53
2013-05-06 21:00:00                 0.0  ...  31.299999    3.51
2013-05-06 22:00:00                 0.0  ...  30.700001    3.49
2013-05-06 23:00:00                 0.0  ...  30.100000    3.47

[72 rows x 27 columns]

read_fcst_hydro3(codes=None, valid=False, first_dt=None, last_dt=None, warning=True)[source]

Récupération des prévisions de la base Prevision14.

Paramètres:
  • codes (list) – Codes Hydro2/Hydro3 des stations

  • valid (bool) – Seulement les prévisions validées (True) ou toutes les prévisions produites (False) Défaut: False

  • first_dt (datetime) – Premier instant de prévision

  • last_dt (datetime) – Dernier instant de prévision

  • warning (bool) – Affiche les avertissement si True. Défaut: True

Renvoie:

Tableau des données prévues

Type renvoyé:

pandas.DataFrame

Exemples

read_serie_hydro2(codes=None, valid=None, first_dt=None, last_dt=None, warning=True)[source]

Récupération des séries de la base Prevision14

Paramètres:
  • codes (list) – Codes Hydro2/Hydro3 des stations

  • valid (bool) – Seulement les prévisions validées (True) ou toutes les prévisions produites (False) Défaut: False

  • first_dt (datetime) – Premier instant de prévision

  • last_dt (datetime) – Dernier instant de prévision

  • warning (bool) – Affiche les avertissement si True. Défaut: True

Renvoie:

Dictionnaire des méta-données des séries {méta: nserie}

Type renvoyé:

dict

Exemples

>>> from datetime import datetime as dt
>>> from pyspc.data.prevision import Prevision14
>>> f = 'data/io/dbase/prevision_2014.mdb'
>>> reader = Prevision14(filename=f)

Exemple de prévision validée - Cas Hydro2

>>> content = reader.read_serie_hydro2(
...     codes=['K1251810', 'K1363010'],
...     first_dt=dt(2013, 5, 3, 12),
...     last_dt=dt(2013, 5, 3, 23),
...     valid=True
... )
>>> content
{('K1251810', datetime.datetime(2013, 5, 3, 23, 0), 2006,
  None, None, None, None, None, None, None): 96,
 (K1363010', datetime.datetime(2013, 5, 3, 23, 0), 2006,
  None, None, None, None, None, None, None): 136}

Exemple de prévision brute - Cas Hydro2

>>> content = reader.read_serie_hydro2(
...     codes=['K1251810', 'K1363010'],
...     first_dt=dt(2013, 5, 3, 12),
...     last_dt=dt(2013, 5, 3, 23),
...     valid=False
... )
>>> content
{('K1251810', datetime.datetime(2013, 5, 3, 23, 0), 2001,
  True, True, True): 91,
 ('K1251810', datetime.datetime(2013, 5, 3, 23, 0), 2002,
  True, True, True): 92,
 ('K1251810', datetime.datetime(2013, 5, 3, 23, 0), 2003,
  True, True, True): 93,
 ('K1251810', datetime.datetime(2013, 5, 3, 23, 0), 2004,
  True, True, True): 94,
 ('K1251810', datetime.datetime(2013, 5, 3, 23, 0), 2005,
  True, True, True): 95,
 ('K1251810', datetime.datetime(2013, 5, 3, 23, 0), 2006,
  True, True, True): 96,
 ('K1251810', datetime.datetime(2013, 5, 3, 23, 0), 2007,
  True, True, True): 100,
 ('K1251810', datetime.datetime(2013, 5, 3, 23, 0), 2008,
  True, True, True): 98,
 ('K1251810', datetime.datetime(2013, 5, 3, 23, 0), 2009,
  True, True, True): 99,
 ('K1363010', datetime.datetime(2013, 5, 3, 23, 0), 2001,
  True, True, True): 131,
 ('K1363010', datetime.datetime(2013, 5, 3, 23, 0), 2002,
  True, True, True): 132,
 ('K1363010', datetime.datetime(2013, 5, 3, 23, 0), 2003,
  True, True, True): 133,
 ('K1363010', datetime.datetime(2013, 5, 3, 23, 0), 2004,
  True, True, True): 134,
 ('K1363010', datetime.datetime(2013, 5, 3, 23, 0), 2005,
  True, True, True): 135,
 ('K1363010', datetime.datetime(2013, 5, 3, 23, 0), 2006,
  True, True, True): 136,
 ('K1363010', datetime.datetime(2013, 5, 3, 23, 0), 2007,
  True, True, True): 140,
 ('K1363010', datetime.datetime(2013, 5, 3, 23, 0), 2008,
  True, True, True): 138,
 ('K1363010', datetime.datetime(2013, 5, 3, 23, 0), 2009,
  True, True, True): 139}
read_serie_hydro3(codes=None, valid=None, first_dt=None, last_dt=None, warning=True)[source]

Récupération des séries de la base Prevision14.

Paramètres:
  • codes (list) – Codes Hydro2/Hydro3 des stations

  • valid (bool) – Seulement les prévisions validées (True) ou toutes les prévisions produites (False) Défaut: False

  • first_dt (datetime) – Premier instant de prévision

  • last_dt (datetime) – Dernier instant de prévision

  • warning (bool) – Affiche les avertissement si True. Défaut: True

Renvoie:

Dictionnaire des méta-données des séries {méta: nserie}

Type renvoyé:

dict

Exemples

>>> from datetime import datetime as dt
>>> from pyspc.data.prevision import Prevision14
>>> f = 'data/io/dbase/prevision_2014.mdb'
>>> reader = Prevision14(filename=f)

Exemple de prévision validée - Cas Hydro3

>>> content = reader.read_serie_hydro3(
...     codes=['K6373020', 'K6402520', 'K6453010'],
...     first_dt=dt(2016, 5, 31, 12),
...     last_dt=dt(2016, 5, 31, 18),
...     valid=True
... )
>>> content
{
    ('K6373020', datetime.datetime(2016, 5, 31, 13, 0), 2001): 10262,
    ('K6402520', datetime.datetime(2016, 5, 31, 12, 0), 3002): 10267,
    ('K6453010', datetime.datetime(2016, 5, 31, 15, 0), 2001): 10391,
    ('K6373020', datetime.datetime(2016, 5, 31, 16, 0), 2001): 10426,
    ('K6402520', datetime.datetime(2016, 5, 31, 16, 0), 3002): 10430,
    ('K6402520', datetime.datetime(2016, 5, 31, 18, 0), 3001): 10477,
}

Exemple de prévision brute - Cas Hydro3

>>> content = reader.read_serie_hydro3(
...     codes=['K6373020', 'K6402520', 'K6453010'],
...     first_dt=dt(2016, 5, 31, 12),
...     last_dt=dt(2016, 5, 31, 18),
...     valid=False
... )
>>> content
{
    ('K6373020', datetime.datetime(2016, 5, 31, 13, 0), 2001): 10262,
    ('K6402520', datetime.datetime(2016, 5, 31, 12, 0), 3002): 10267,
    ('K6453010', datetime.datetime(2016, 5, 31, 15, 0), 2001): 10391,
    ('K6373020', datetime.datetime(2016, 5, 31, 16, 0), 2001): 10426,
    ('K6402520', datetime.datetime(2016, 5, 31, 16, 0), 3002): 10430,
    ('K6402520', datetime.datetime(2016, 5, 31, 18, 0), 3001): 10477,
}
rollback()

Annuler les enregistrements ajoutés.