pyspc.core.pyspcfile.PyspcFile

class pyspc.core.pyspcfile.PyspcFile(filename=None)[source]

Bases : object

Structure de données des csv multi-colonnes

filename

Nom du fichier de données

Type:

str

station

Nom de la station

Type:

str

varname

Nom de la variable

Type:

str

param

Grandeur

Type:

Parameter

tdelta

Pas de temps de la variable

Type:

timedelta, None

simulation

Nom de la simulation

Type:

str, None

runtime

Instant de production de la prévision

Type:

str, None

model

Modèle de prévision

Type:

str, None

scen

Scénario de prévision

Type:

str, None

uncert

Incertitude de prévision

Type:

str, None

__init__(filename=None)[source]

Initialisation de l’instance de la classe PyspcFile

Paramètres:

filename (str) – Nom du fichier de données

Methods

__init__([filename])

Initialisation de l'instance de la classe PyspcFile

get_varnames()

Définir le nom de la variable

join_basename([station, varname, ...])

Définir le nom du fichier de données GRP Data (GRP Calage) à partir des informations

read([strict])

Lecture du fichier csv multi-colonnes

split_basename([filename, sep, forceobs, ...])

Extraire les informations depuis le nom du fichier csv multi-colonnes

write([data, dirname, strict])

Ecrire le fichier de données GRP Data (GRP Calage)

classmethod get_varnames()[source]

Définir le nom de la variable

static join_basename(station=None, varname=None, simulation=None, runtime=None, model=None, scen=None, uncert=None)[source]

Définir le nom du fichier de données GRP Data (GRP Calage) à partir des informations

Paramètres:
  • station (str) – Identifiant de la station

  • varname (str) – Nom de la variable

  • simulation (str, None) – Nom de la simulation

  • runtime (str, None) – Instant de production de la prévision

  • model (str, None) – Modèle de prévision

  • scen (str, None) – Scénario de prévision

  • uncert (str, None) – Incertitude de prévision

Renvoie:

filename – Fichier de données GRP Data (GRP Calage)

Type renvoyé:

str

read(strict=False)[source]

Lecture du fichier csv multi-colonnes

Paramètres:

strict (bool) – Lecture avec vérification de la variable (défaut: False)

Renvoie:

Tableau des données

Type renvoyé:

pandas.DataFrame

Exemples

>>> from pyspc.core.csvfile import PyspcFile

Cas d’une grandeur en minutes

>>> f = 'data/core/csv/K1341810_QI.txt'
>>> reader = PyspcFile(filename=f)
>>> df = reader.read()
>>> df
                     K1341810_QI
AAAAMMJJHHMM
2020-03-05 12:00:00         87.4
2020-03-05 13:00:00         90.6
2020-03-05 16:00:00        107.0
2020-03-05 17:35:00        117.0
2020-03-05 18:20:00        121.0
2020-03-05 18:50:00        124.0
2020-03-05 21:55:00        139.0
2020-03-05 23:25:00        146.0
2020-03-06 00:10:00        151.0
2020-03-06 00:22:00        151.0
2020-03-06 01:45:00        160.0
2020-03-06 03:20:00        170.0
2020-03-06 10:30:00        205.0
2020-03-06 13:00:00        213.0
2020-03-06 14:05:00        217.0
2020-03-06 15:20:00        219.0
2020-03-06 16:00:00        220.0
2020-03-06 16:20:00        219.0
2020-03-06 16:50:00        220.0
2020-03-06 17:45:00        220.0
2020-03-06 18:25:00        221.0
2020-03-06 19:10:00        221.0
2020-03-06 22:00:00        219.0
2020-03-06 22:15:00        220.0
2020-03-06 23:35:00        219.0
2020-03-07 06:15:00        243.0
2020-03-07 07:10:00        244.0
2020-03-07 08:05:00        244.0
2020-03-07 11:20:00        238.0
2020-03-07 12:00:00        236.0
>>> f = 'data/core/csv/43111002_P6m.txt'
>>> reader = PyspcFile(filename=f)
>>> df = reader.read()
>>> df
                     43111002_P6m
AAAAMMJJHHMM
2017-06-13 17:00:00           0.0
2017-06-13 17:06:00           1.0
2017-06-13 17:12:00           0.2
2017-06-13 17:18:00           0.4
2017-06-13 17:24:00           0.4
2017-06-13 17:30:00           0.4
2017-06-13 17:36:00           2.2
2017-06-13 17:42:00          11.7
2017-06-13 17:48:00          13.3
2017-06-13 17:54:00           8.2
2017-06-13 18:00:00           6.3
2017-06-13 18:06:00          13.4
2017-06-13 18:12:00          14.2
2017-06-13 18:18:00          12.9
2017-06-13 18:24:00          21.5
2017-06-13 18:30:00          14.1
2017-06-13 18:36:00          17.0
2017-06-13 18:42:00          17.0
2017-06-13 18:48:00           8.0
2017-06-13 18:54:00           2.8
2017-06-13 19:00:00           1.8
2017-06-13 19:06:00           6.1
2017-06-13 19:12:00          11.2
2017-06-13 19:18:00           6.6
2017-06-13 19:24:00           3.5
2017-06-13 19:30:00           1.6
2017-06-13 19:36:00           0.4
2017-06-13 19:42:00           0.6
2017-06-13 19:48:00           5.0
2017-06-13 19:54:00           1.8

Cas d’une grandeur en heures

>>> f = 'data/core/csv/K1321810_mohys_QH.txt'
>>> reader = PyspcFile(filename=f)
>>> df = reader.read()
>>> df
                     K1321810_mohys_QH
AAAAMMJJHH
2018-01-03 12:00:00              118.9
2018-01-03 13:00:00              120.3
2018-01-03 14:00:00              121.4
2018-01-03 15:00:00              122.2
2018-01-03 16:00:00              122.4
2018-01-03 17:00:00              122.2
2018-01-03 18:00:00              121.6
2018-01-03 19:00:00              120.7
2018-01-03 20:00:00              119.7
2018-01-03 21:00:00              118.8
2018-01-03 22:00:00              118.3
2018-01-03 23:00:00              118.8
2018-01-04 00:00:00              120.5
2018-01-04 01:00:00              123.9
2018-01-04 02:00:00              129.5
2018-01-04 03:00:00              137.2
2018-01-04 04:00:00              147.3
2018-01-04 05:00:00              159.8
2018-01-04 06:00:00              172.7
2018-01-04 07:00:00              187.1
2018-01-04 08:00:00              200.7
2018-01-04 09:00:00              213.4
2018-01-04 10:00:00              224.8
2018-01-04 11:00:00              235.8
2018-01-04 12:00:00              245.6
2018-01-04 13:00:00              254.7
2018-01-04 14:00:00              266.9
2018-01-04 15:00:00              273.6
2018-01-04 16:00:00              277.8
2018-01-04 17:00:00              280.1
2018-01-04 18:00:00              280.9
2018-01-04 19:00:00              280.7
2018-01-04 20:00:00              280.2
2018-01-04 21:00:00              280.0
2018-01-04 22:00:00              279.9
2018-01-04 23:00:00              280.1
2018-01-05 00:00:00              280.4
2018-01-05 01:00:00              280.7
2018-01-05 02:00:00              280.9
2018-01-05 03:00:00              280.9
2018-01-05 04:00:00              280.6
2018-01-05 05:00:00              279.9
2018-01-05 06:00:00              278.7
2018-01-05 07:00:00              277.1
2018-01-05 08:00:00              275.5
2018-01-05 09:00:00              273.9
2018-01-05 10:00:00              272.4
2018-01-05 11:00:00              271.0
2018-01-05 12:00:00              269.8

Cas d’une grandeur en jours

>>> f = 'data/core/csv/41005_202006120526_BP_PJ.txt'
>>> reader = PyspcFile(filename=f)
>>> df = reader.read()
>>> df
            MoyInf  MoySup  LocInf  LocSup
AAAAMMJJ
2020-06-12   100.0   130.0   200.0   200.0
2020-06-13     7.0    15.0     NaN     NaN
2020-06-14     0.0     0.0     NaN     NaN

Cas d’une grandeur en mois

>>> f = 'data/core/csv/K1341810_QM.txt'
>>> reader = PyspcFile(filename=f)
>>> df = reader.read()
>>> df
            K1341810_QM
AAAAMM
2017-08-01          1.4
2017-09-01          2.1
2017-10-01          1.4
2017-11-01          5.5
2017-12-01         53.6
2018-01-01        156.0
2018-02-01         59.8
2018-03-01         60.9
2018-04-01         27.8
2018-05-01          9.5
2018-06-01         11.1
2018-07-01          2.6
2018-08-01          1.1
static split_basename(filename=None, sep=None, forceobs=False, forcesim=False)[source]

Extraire les informations depuis le nom du fichier csv multi-colonnes

Paramètres:
  • filename (str) – Fichier de données csv multi-colonnes

  • sep (str) – Séparateur des champs. Défaut: “_”

  • forceobs (bool) – Forcer la conversion en tant que série d’observation. Défaut: False

  • forcesim (bool) – Forcer la conversion en tant que série de simulation. Défaut: False L’option forceobs a la préséance sur forcesim

Renvoie:

  • station (str) – Identifiant de la station

  • varname (str) – Nom de la variable

  • simulation (str, None) – Nom de la simulation

  • runtime (str, None) – Instant de production de la prévision

  • model (str, None) – Modèle de prévision

  • scen (str, None) – Scénario de prévision

  • uncert (str, None) – Incertitude de prévision

Exemples

>>> from datetime import datetime as dt
>>> from pyspc.core.csvfile import PyspcFile

Cas d’une série d’obserbation

>>> f = 'data/core/csv/K1321810_QH'
>>> info = PyspcFile.split_basename(filename=f)
>>> info
('K1321810', 'QH', None, None, None, None, None)

Cas d’une série de simulation

>>> f = 'data/core/csv/K1321810_mohys_QH'
>>> info = PyspcFile.split_basename(filename=f)
>>> info
('K1321810', 'QH', 'mohys', None, None, None, None)

Cas d’une série de prévision

>>> f = 'data/core/csv/K0253030_2020061200_GR6J_QJ'
>>> info = PyspcFile.split_basename(filename=f)
>>> info
('K0253030', 'QJ', None, dt(2020, 6, 12, 0, 0), 'GR6J', None, None)
write(data=None, dirname='.', strict=False)[source]

Ecrire le fichier de données GRP Data (GRP Calage)

Paramètres:
  • data (pandas.DataFrame) – Tableau des données d’observation de GRP 2016

  • dirname (str) – Répertoire local

  • strict (bool) – Lecture avec vérification de la variable (défaut: False)