pyspc.data.bareme.Bareme

class pyspc.data.bareme.Bareme(filename=None)[source]

Bases : Mdb

Classe destinée à traiter les bases Bareme.

filename

Chemin de la base de données

Type:

str

sql

Requête courante au format SQL

Type:

str

__init__(filename=None)[source]

Initialiser l’instance Bareme.

Paramètres:

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

Methods

__init__([filename])

Initialiser l'instance Bareme.

check_datatypes(datatype)

Contrôle du type de données Bareme.

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()

Types de données Bareme.

read_flowmes([code, first_dt, last_dt, ...])

Lecture des jaugeages Bareme.

read_levelcor([code, first_dt, last_dt, ...])

Lecture des courbes de correction Bareme.

read_ratingcurve([code, first_dt, last_dt, ...])

Lire les jaugeages Bareme.

read_rtc_points([noct, warning])

Récupérer les "points" de la courbe de tarage.

read_rtc_power([noct, delta, warning])

Récupérer les "tronçons" de la courbe de tarage.

rollback()

Annuler les enregistrements ajoutés.

check_datatypes(datatype)[source]

Contrôle du type de données Bareme.

Paramètres:

dataype (str) – Type de données Bareme

Lève:

ValueError – Si le type de données Bareme est incorrect

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]

Types de données Bareme.

Renvoie:

Types de données Bareme

Type renvoyé:

list

read_flowmes(code=None, first_dt=None, last_dt=None, hydro3=True, warning=False)[source]

Lecture des jaugeages Bareme.

Paramètres:
  • code (str) – Code du lieu

  • first_dt (datetime) – Premier instant où l’on cherche le jaugeage

  • last_dt (datetime) – Dernier instant où l’on cherche le jaugeage

  • hydro3 (bool) – Convention hydro3 (True) ou Hydro2 (False). Par défaut: True

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

Renvoie:

df – Tableau des jaugeages (hauteur en mm et débit en m3/s)

Type renvoyé:

pandas.DataFrame

Exemples

>>> from datetime import datetime as dt
>>> from pyspc.data.bareme import Bareme
>>> f = 'data/io/dbase/bareme.mdb'
>>> reader = Bareme(filename=f)
>>> df = reader.read_flowmes(code='K055001010',
...     first_dt=dt(2008, 9, 1), last_dt=dt(2009, 2, 1),
...     hydro3=True
... )
>>> df
                     jcote       jdebit
jdatedeb
2008-09-02 07:00:00  -1190     9.270000
2008-09-25 13:15:00  -1250     6.660000
2008-10-02 07:00:00  -1270     6.260000
2008-11-02 00:00:00   5050   252.000000
2008-11-02 11:07:00   5070  2790.000000
2008-11-02 11:08:00   5070  2850.000000
2008-11-02 11:09:00   4660  2790.000000
2008-11-02 13:15:00   4360  2500.000000
2009-01-29 14:45:00   -785    42.599998
read_levelcor(code=None, first_dt=None, last_dt=None, hydro3=True, warning=False)[source]

Lecture des courbes de correction Bareme.

Paramètres:
  • code (str) – Code du lieu

  • first_dt (datetime) – Premier instant où l’on cherche le jaugeage

  • last_dt (datetime) – Dernier instant où l’on cherche le jaugeage

  • hydro3 (bool) – Convention hydro3 (True) ou Hydro2 (False). Par défaut: True

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

Renvoie:

df – Tableau des courbes de correction (hauteur en mm)

Type renvoyé:

pandas.DataFrame

Exemples

>>> from datetime import datetime as dt
>>> from pyspc.data.bareme import Bareme
>>> f = 'data/io/dbase/bareme.mdb'
>>> reader = Bareme(filename=f)
>>> df = reader.read_levelcor(code='K055001010',
...     first_dt=dt(2014, 1, 1), last_dt=dt(2015, 1, 1),
...     hydro3=True
... )
>>> df
                     valeur
ladate
2014-04-23 13:40:00       0
2014-05-22 08:20:00     -30
2014-06-05 08:35:00     -30
2014-06-18 06:20:00     -30
2014-07-01 09:50:00     -30
2014-07-06 20:00:00     -30
2014-07-09 00:00:00       0
2014-08-04 12:00:00       0
read_ratingcurve(code=None, first_dt=None, last_dt=None, code_rtc=None, hydro3=True, warning=False)[source]

Lire les jaugeages Bareme.

Paramètres:
  • code (str) – Code du lieu

  • first_dt (datetime) – Premier instant où l’on cherche le jaugeage

  • last_dt (datetime) – Dernier instant où l’on cherche le jaugeage

  • code_rtc (str) – Identifiant de la courbe de tarage

  • hydro3 (bool) – Convention hydro3 (True) ou Hydro2 (False). Par défaut: True

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

Renvoie:

data – Jaugeages

Type renvoyé:

dict

Notes

Si code_ct est défini, alors seulement cette courbe de tarage sera extraite de la base Bareme. Sinon, les contraintes temporelles sont appliquées

read_rtc_points(noct=None, warning=False)[source]

Récupérer les « points » de la courbe de tarage.

Paramètres:
  • noct (int) – Identifiant de la courbe de tarage

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

Renvoie:

df – Courbe de tarage (hauteur en mm et débit en m3/s)

Type renvoyé:

pandas.DataFrame

Exemples

>>> from pyspc.data.bareme import Bareme
>>> f = 'data/io/dbase/bareme.mdb'
>>> reader = Bareme(filename=f)
>>> df = reader.read_rtc_points(noct=200758)
>>> df
         h            q
nopt
1     1040     0.414000
2     1070     0.634000
3     1110     0.955000
4     1160     1.390000
5     1170     1.490000
6     1170     1.510000
7     1210     2.120000
8     1250     2.710000
9     1360     4.970000
10    1420     6.890000
11    1500    10.000000
12    1500     9.740000
13    1530    12.300000
14    1550    14.000000
15    1580    16.600000
16    1630    21.299999
17    1690    27.500000
18    1780    37.799999
19    1900    53.400002
20    2020    70.800003
21    2180    96.699997
22    2220   104.000000
23    2240   107.000000
24    2270   113.000000
25    2290   116.000000
26    2330   124.000000
27    2350   127.000000
28    2580   173.000000
29    2830   229.000000
30    3140   306.000000
31    3350   362.000000
32    3530   417.000000
33    4050   592.000000
34    4740   849.000000
35    5120  1000.000000
36    5140  1010.000000
37    5190  1030.000000
38    5210  1040.000000
read_rtc_power(noct=None, delta=10, warning=False)[source]

Récupérer les « tronçons » de la courbe de tarage.

Ces tronçons sont ensuite converties en points de coordonnées (hauteur, débit)

Paramètres:
  • noct (int) – Identifiant de la courbe de tarage

  • delta (int) – Incrément en hauteur (mm) entre deux points convertis Par défaut: 10 mm

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

Renvoie:

df – Courbe de tarage (hauteur en mm et débit en m3/s)

Type renvoyé:

pandas.DataFrame

Exemples

>>> from pyspc.data.bareme import Bareme
>>> f = 'data/io/dbase/bareme.mdb'
>>> reader = Bareme(filename=f)
>>> df = reader.read_rtc_power(noct=200664, delta=100)
>>> df
           h           q
nopt
1     -118.0    0.000000
2      -18.0    0.173092
3       82.0    0.488561
4      128.0    0.665843
5      228.0    1.156614
6      255.0    1.309881
7      355.0    2.966919
8      455.0    5.086275
9      555.0    7.608920
10     655.0   10.496204
11     755.0   13.720089
12     855.0   17.258944
13     955.0   21.095380
14    1055.0   25.214986
15    1155.0   29.605556
16    1255.0   34.256559
17    1355.0   39.158782
18    1455.0   44.304071
19    1555.0   49.685135
20    1595.0   51.904956
21    1695.0   58.675252
22    1795.0   65.752225
23    1895.0   73.127264
24    1995.0   80.792551
25    2095.0   88.740943
26    2195.0   96.965875
27    2295.0  105.461290
28    2395.0  114.221569
29    2495.0  123.241481
30    2595.0  132.516143
...      ...         ...
45    4095.0  299.616612
46    4195.0  312.484225
47    4295.0  325.553750
48    4395.0  338.823129
49    4495.0  352.290379
50    4595.0  365.953582
51    4695.0  379.810884
52    4795.0  393.860492
53    4895.0  408.100668
54    4995.0  422.529730
55    5095.0  437.146045
56    5195.0  451.948029
57    5295.0  466.934145
58    5395.0  482.102897
59    5495.0  497.452834
60    5595.0  512.982542
61    5695.0  528.690646
62    5795.0  544.575807
63    5895.0  560.636721
64    5995.0  576.872116
65    6095.0  593.280753
66    6195.0  609.861422
67    6295.0  626.612943
68    6395.0  643.534163
69    6495.0  660.623956
70    6595.0  677.881224
71    6695.0  695.304889
72    6795.0  712.893901
73    6895.0  730.647232
74    6995.0  748.563875

[74 rows x 2 columns]

rollback()

Annuler les enregistrements ajoutés.