Simulación de la facturación eléctrica para instalaciones monofásicas de potencia contratada ≤ 10 kW y voltaje < 1kV (instalaciones típicas de particulares) Admite como entrada consumos totales (tantos como periodos de discriminación horaria en la tarifa seleccionada) o bien consumos horarios. También genera consumos horarios en base a mediciones totales, usando los perfiles de consumo del PVPC, y genera el CSV de consumo horario conforme al formato utilizado por las distribuidoras.
In [1]:
%matplotlib inline
%config InlineBackend.figure_format = 'retina'
import matplotlib.pyplot as plt
from esiosdata import FacturaElec
from esiosdata.facturapvpc import (TIPO_PEAJE_GEN, TIPO_PEAJE_NOC, TIPO_PEAJE_VHC,
ZONA_IMPUESTOS_PENIN_BALEARES, ZONA_IMPUESTOS_CANARIAS)
from esiosdata.prettyprinting import *
t_0, t_f = '2016-11-01', '2017-01-05'
f1 = FacturaElec(t_0, t_f, tipo_peaje=TIPO_PEAJE_VHC, consumo=[219, 126, 154],
zona_impuestos=ZONA_IMPUESTOS_PENIN_BALEARES)
print_ok(f1)
In [2]:
f1.tipo_peaje = 2
print_info(f1)
f1.tipo_peaje = 'GEN'
print_cyan(f1)
In [3]:
consumo_horario = f1.consumo_horario
print_ok('Consumo horario [{}]: {} horas, TOTAL={:.2f} kWh\nHead:\n{}\nTail:{}'
.format(type(consumo_horario), len(consumo_horario), consumo_horario.sum(),
consumo_horario.head(), consumo_horario.tail()))
In [4]:
f2 = FacturaElec(consumo=consumo_horario)
f2
Out[4]:
In [5]:
# Reparto en varias facturas:
import datetime as dt
consumo_total = f2.consumo_horario
t0, tf = consumo_total.index[0].date(), consumo_total.index[-1].date()
div_dias = f2.num_dias_factura // 3
# print(t0, tf, div_dias, f2.num_dias_factura)
c1 = consumo_total.loc[:t0 + dt.timedelta(days=div_dias)].iloc[:-1]
c2 = consumo_total.loc[t0 + dt.timedelta(days=div_dias): t0 + dt.timedelta(days=2*div_dias)].iloc[:-1]
c3 = consumo_total.loc[t0 + dt.timedelta(days=2*div_dias):]
assert c1.shape[0] + c2.shape[0] + c3.shape[0] == consumo_total.shape[0]
facturas = [FacturaElec(consumo=c) for c in [c1, c2, c3]]
print_ok(sum([f.coste_total for f in facturas]))
print_ok(f2.coste_total)
In [8]:
import json
d_factura = f2.to_dict()
print_ok(d_factura)
print_info(json.dumps(d_factura))
In [19]:
from ipywidgets import HTML, Layout
# Html simple, para incluir en otra web
HTML(f2.to_html(), layout=Layout(width='75%'))
In [17]:
# Página web completa:
HTML(f2.to_html(web_completa=True), layout=Layout(width='75%'))
In [ ]: