In [1]:
from wmf import wmf 
import numpy as np
import pylab as pl
import pandas as pd
import pickle
import datetime
from datetime import timedelta
%matplotlib inline
import matplotlib.pyplot as plt
import collections
import warnings
warnings.filterwarnings('ignore')
import scipy as scp
import os
import aforos as af
from IPython.display import IFrame
import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import xlsxwriter
import codecs
from multiprocessing import Pool
from mpl_toolkits.basemap import Basemap
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
from matplotlib.patches import PathPatch
import matplotlib.patches as patche
from IPython.core.display import HTML
css = open('style-table.css').read() + open('style-notebook.css').read()
HTML('<style>{}</style>'.format(css))
Out[1]:
In [2]:
mainfolder = 'Salidas_Redrio' # nombre de la carpeta principal
hora_inicial = '06:00' # hora de inicio de todas las campaƱas
hora_final = '18:00' # hora de finalizaciĆ³n de todas las campaƱas
fechas = pd.to_datetime(['2017-02-22','2017-03-08','2017-03-09','2017-04-26','2017-06-21','2017-06-22'])
In [3]:
def aforo(codigo,DEM='dem_amva60',DIR='dir_amva60',aforo=1):
    '''runs aforos module
    Parameters
    ----------
    codigo: id in dbase
    salida: campain folder name
    DEM : dem name
    DIR : dir name
    aforo : flow measurement number or id
    -------
    Returns
        ------
        out: self
        sets module aforos up 
        '''
    self = af.aforos(codigo,aforo=int(aforo),
                    nombre = df_informacion.loc[codigo,'FolderName'])
    self.ruta_dem = '/media/nicolas/Home/nicolas/01_SIATA/raster/%s.tif'%DEM
    self.ruta_dir = '/media/nicolas/Home/nicolas/01_SIATA/raster/%s.tif'%DIR
    self.longitud = float(df_informacion.loc[codigo,'Longitud'])
    self.latitud = float(df_informacion.loc[codigo,'Latitud'])
    self.name = df_informacion.loc[codigo,'Nombre']
    self.municipio = df_informacion.loc[codigo,'Municipio']
    self.direccion = df_informacion.loc[codigo,'Direccion']
    self.barrio = df_informacion.loc[codigo,'Barrio']
    self.subcuenca = df_informacion.loc[codigo,'Subcuenca']
    return self

def runbyid(dfe_id):
    self = aforo(int(dfe.loc[dfe_id,'id_estacion_asociada']),aforo=dfe.loc[dfe_id,'aforo'])
    self.fecha = pd.to_datetime(dfe.loc[dfe_id,'fecha'])
    self.date = self.fecha.strftime('%Y-%m-%d %H:%M')
    return self
In [4]:
hora_inicial = '06:00'
hora_final = '18:00'
df_informacion = pd.read_csv('../information/info_redrio.csv',index_col=0)
#dfe = pd.read_csv('../information/salidas_21y22_junio.csv',index_col=0)
texto = ['% ----------------------------------------------',
         '% ---------------------TEXTO AQUƍ---------------',
         '% ----------------------------------------------']

Salida 10 de Julio

In [5]:
fecha = pd.to_datetime('2017-07-12')

lluvia

para la lluvia se usa la estaciĆ³n puente gabino

In [ ]:
 
In [9]:
# fecha = pd.to_datetime('2017-07-12')
self = aforo(1004)
# self.fecha = fecha+datetime.timedelta(hours=18)
# #self.get_rain()
# self.simubasin(rute=True,show=False)
# rain = self.plot_lluvia_aforo(ax2color='darkslategrey',
#                   fecha=self.fecha.strftime('%Y-%m-%d')+' 18:00',
#                   ruta='%s_LaHueso/%s_LaHueso_rain.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d')),
#                   formato='png')
In [6]:
dfe = pd.read_csv('../information/20170712_LaHueso_dfe.csv',index_col=0)
In [39]:
resumen = df_informacion.loc[dfe['id_estacion_asociada'].values].set_index('Nombre')
resumen['caudal_medio']= dfe['caudal_medio'].values
self.plot_resumen_flow(resumen['caudal_medio'],'%s_LaHueso/%s_LaHueso_flux.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d')))
In [7]:
nombre_salida = 'Q. La hueso - 12 de Julio'
In [32]:
point = df_informacion.loc[dfe['id_estacion_asociada'].values]
self.Plot_Mapa2(add_scatter=[point['Longitud'].values,point['Latitud'].values],\
                title =nombre_salida,Logo='SIATA2.png',\
                Drainage='/media/nicolas/maso/Mario/shapes/nets/Q_La_Hueso_1004/Q_La_Hueso_1004',\
                add_stations=map(lambda x:x.decode('utf-8'),point['Nombre'].values),\
                georef=[self.latmax+0.002,self.latmin-0.002,self.lonmin,self.lonmax],clim=[1300,3400],fontsize=24,\
                Basin='/media/nicolas/maso/Mario/shapes/basins/Q_La_Hueso_1004/Q_La_Hueso_1004',\
                coord_format="%.2f")

self.m.readshapefile('/media/nicolas/maso/Mario/shapes/streams/169/169','drenaje',
                     color=self.colores_siata[-3],
                     linewidth=3.0,zorder=5)

plt.savefig('%s_LaHueso/%s_LaHueso_map_campain.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d')),format='png',bbox_inches='tight')
Colombia
Antioquia

Tabla resultados

In [10]:
nombre_salida = 'CampaƱa 12 de Julio -  Q. La Hueso'
caption = 'ParƔmetros hidrƔulicos %s'%nombre_salida
columns = ['Caudal medio','Velocidad media','Ɓrea','Perƭmetro','Altura media','RƔdio hidrƔulico']
cellwidth = [30]+6*[70/6]
df_latex = dfe[['caudal_medio','velocidad_media','area_total','perimetro','altura_media','radio_hidraulico']]
df_latex.index = df_informacion.loc[dfe['id_estacion_asociada'].values]['Nombre'].values
tabla=self.latex_table_from_df(df_latex,caption,'tab:%s'%fecha.strftime('%Y%m%d'),columns,cellwidth,width=5.6)
In [11]:
    
def latex_results_table(self,label):
    self.alo = ['','\\ % ----------------------latex_results_table ---------------------------------------']
    #if self.aforo <> 1:
    self.alo.append('\\subsection{%s}'%self.name)
    self.alo.append('\\begin{table}[h!]')
    self.alo.append('\\caption{Resultados %s, Aforo %s}'%(self.name,self.date))
    self.alo.append('\\vspace{1.9mm}')
    self.alo.append('\\fontsize{10}{2} \\selectfont{')
    self.parametros = '\\scalebox{1.0}{\\begin{tabularx}{\\textwidth}{ p{1.4in} p{1.3in} p{1.7in} p{1.3in}}'
    self.alo.append(self.parametros)
    self.alo.append('\\rowcolor{CiceBlue2}')
    self.alo.append('\\multicolumn{4}{c}{\\textbf{\\textcolor{white}{RESULTADOS DEL AFORO}}}')
    self.alo.append('\\rule[-0.2cm]{0cm}{0.7cm}\\\\')
    self.campo = ['Caudal [$ m^{3} $]','Caudal S [$ m^{3}/s $]','Ɓrea [$ m^{2}$]',\
            'Ancho Superficial [$ m $]','Altura Media [$ m $] ' ,'Velocidad Media [$ m/s $]',\
            'Perƭmetro M [$ m $]','Radio HidrƔulico [$ m $]','Offset [$ m $]','Med-Nivel(UTH) [$ m $]']
    self.caudal = float(self.dfr.loc['caudal_medio','Resultado'])
    self.caudals = float(self.dfr.loc['caudal_superficial','Resultado'])
    self.area = float(self.dfr.loc['area_total','Resultado'])
    self.ancho = float(self.dfr.loc['ancho_superficial','Resultado'])
    self.altura = float(self.dfr.loc['altura_media','Resultado'])
    self.velm = float(self.dfr.loc['velocidad_media','Resultado'])
    self.perimetro =float(self.dfr.loc['perimetro','Resultado'])
    self.radio = float(self.dfr.loc['radio_hidraulico','Resultado'])
    self.alo.append('\\textbf{%s}'%self.campo[0]) 
    self.alo.append('& %.3f'%self.caudal)
    self.alo.append('& \\textbf{Dispositivo}')
    self.alo.append('& %s'%self.dispositivo)
    self.alo.append('\\rule[-0.1cm]{0cm}{0.5cm} \\\\ \\cline{1-4}')
    self.alo.append('\\textbf{%s}'%self.campo[2])
    self.alo.append('& %.3f'%self.area)
    self.alo.append('& \\textbf{%s}'%self.campo[3])
    self.alo.append('& %.3f'%self.ancho)
    self.alo.append('\\rule[-0.1cm]{0cm}{0.5cm} \\\\ \\cline{1-4}')
    self.alo.append('\\textbf{%s}'%self.campo[4])
    self.alo.append('& %.3f'%self.altura)
    self.alo.append('& \\textbf{%s}'%self.campo[5])
    self.alo.append('& %.3f'%self.velm)
    self.alo.append('\\rule[-0.1cm]{0cm}{0.5cm} \\\\ \\cline{1-4}')
    self.alo.append('\\textbf{%s}'%self.campo[6])
    self.alo.append('& %.3f'%self.perimetro)
    self.alo.append('& \\textbf{%s}'%self.campo[7])
    self.alo.append('& %.3f'%self.radio)
    self.alo.append('\\rule[-0.1cm]{0cm}{0.5cm} \\\\ \\cline{1-4}')
    self.alo.append('\\label{%s}'%(label))
    self.alo.append('\\end{tabularx}}}')
    self.alo.append('\\end{table}')
    self.alo.append('\\ %----------------------LABEL------------------')
    self.alo.append('\\ % -----Tabla '+'\\ref{%s}'%label)
    return self.alo

resultados = ['']
resultados.append('\\section{%s}'%nombre_salida)
    #--plot map_campain
resultados+=self.latex_figure(17,'%s/%s_map_campain.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d')),'Mapa %s'%nombre_salida,'fig:%smapcamp'%(fecha.strftime('%Y%m%d')))
resultados+=self.latex_figure(17,'%s/%s_rain.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d')),'Lluvia %s'%nombre_salida,'fig:%srain'%(fecha.strftime('%Y%m%d')))
resultados+=self.latex_figure(17,'%s/%s_flux.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d')),'Resultados %s'%nombre_salida,'fig:%sflux'%(fecha.strftime('%Y%m%d')))
resultados+=tabla

df = pd.DataFrame.copy(dfe)
for i in df.index:
    self = runbyid(i)
    if df.loc[i,'aforo_especial']==1:
        self.dispositivo = '-999'
        resultados+= ['\\subsection{%s}\\'%self.name]
        if int(df.loc[i,'id_estacion_asociada'])==1061:
            resultados+= self.latex_figure(17,'%s/curva_gabino.png'%(fecha.strftime('%Y%m%d')),
                                  'Caudales estimados a partir de curva de calibraciĆ³n',
                                  'fig:%scurva'%(fecha.strftime('%Y%m%d')))
            resultados += ['\\clearpage'] 
    else:
        self.get_resultados_mysql()
        self.dispositivo = self.dfr.loc['dispositivo','Resultado']
        self.plot_section(wet=self.verticales,
                    lev=self.levantamiento,
                    figsize=(12,4),
                    fontsize=18,
                    sepx=0.03,
                    sepy=0.01,
                    filepath='%s/%s_section_%s.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre))
        resultados += latex_results_table(self,'tab:%s_hidroparam_%s'%(fecha.strftime('%Y%m%d'),self.nombre))
        lbl = '\\ref{tab:%s_hidroparam_%s}'%(fecha.strftime('%Y%m%d'),self.nombre)
        resultados+=['El aforo se realizĆ³ en la fecha %s, el caudal obtenido fue de %s $[m^3/s]$. La secciĆ³n aforada tiene un ancho superficial que mide %s [m], la altura promedio de la lĆ”mina de agua es de %s [m], la altura mĆ”xima se ubica a %s [m] de la margen izquierda del canal con un valor de %s [m]. Para el cĆ”lculo de velocidades se utilizĆ³ el dispositivo %s, el valor medio de velocidad obtenido fue de %s $[m/s]$, y el mĆ”ximo de %s $[m/s]$. La sumatoria de Ć”reas en todas las verticales deja un Ć”rea total de %s $[m^2]$. Los demĆ”s parĆ”metros se pueden observar en la tabla %s.'%(self.fecha.strftime('%Y-%m-%d %H:%M'),round(self.dfr.loc['caudal_medio','Resultado'],3),round(self.dfr.loc['ancho_superficial','Resultado'],3),round(self.dfr.loc['altura_media','Resultado'],3),
        round(abs(self.verticales.set_index('x')['y'].argmin()),3),round(abs(self.verticales['y'].min()),3),self.dfr.loc['dispositivo','Resultado'],
        round(self.dfr.loc['velocidad_media','Resultado']),round(self.verticales['velocidad04'].max(),3),round(self.dfr.loc['area_total','Resultado'],3),lbl)]
        resultados += self.latex_section('%s/%s_section_%s.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre),
                       'fig:%s_section_%s'%(fecha.strftime('%Y%m%d'),self.nombre))+texto
        resultados+=['\\clearpage']
        
    try:
        if int(df.loc[i,'id_estacion_asociada'])==1061:
            dfe.loc[i,'alturas'] = 0
        else:
            caudal = dfe.loc[i,'caudal_medio']
            df_alturas = pd.read_csv('../information/%s_heights.csv'%fecha.strftime('%Y%m%d'),index_col=0)
            df_alturas.columns = np.array(df_alturas.columns,int)
            caudales = self.get_flow_from_heights(caudal,self.codigo,df_alturas)
            self.plot_bars(caudales,rute='%s/%s_heights_%s.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre),decimales=2)

            resultados+= self.latex_figure(17,'%s/%s_heights_%s.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre),
                                      'Caudales estimados  %s %s'%(nombre_salida,self.name),
                                      'fig:%sheights_%s'%(fecha.strftime('%Y%m%d'),self.nombre))
            resultados+=['\\\ Partiendo del caudal estimado mediante el aforo y de datos de nivel de la lƔmina de agua medidos en campo durante la campaƱa, se estimaron los caudales horarios desde las 6:00 hasta las 18:00, el caudal promedio durante la campaƱa fue %.3f $[m^3/s]$. Los resultados se encuentran en la Figura \\ref{%s}.'%(caudales.mean(),'fig:%sheights_%s'%(fecha.strftime('%Y%m%d'),self.nombre))]
            dfe.loc[i,'alturas'] = 1
    except:
        dfe.loc[i,'alturas'] = 0
    try:
        self.plot_compara_historicos('%s/%s_hist_%s.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre))
        if self.caudales_historicos.index.size == 1:
            pass
        else:
            resultados+=latex_hidrologia(self,dfe.loc[i,'caudal_medio'],'%s/%s_hist_%s.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre),
                                    'fig:%shist%s'%(fecha.strftime('%Y%m%d'),self.nombre))
        dfe.loc[i,'historico'] = 1
    except:
        dfe.loc[i,'historico'] = 0
    
    if df_informacion.loc[self.codigo,'morfo']==1.0:
        self.simubasin(rute=True,show=False)
        rain = self.plot_lluvia_aforo(ax2color='darkslategrey',
                      fecha=self.fecha.strftime('%Y-%m-%d')+' 18:00',
                      ruta='%s/%s_rain_%s.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre),
                      formato='png')
        
        resultados+= self.latex_figure(17,'%s/%s_rain_%s.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre),
                                  'Lluvia %s %s'%(nombre_salida,self.name),
                                  'fig:%srain_%s'%(fecha.strftime('%Y%m%d'),self.nombre))
        if max(self.accumulated_rain)>1.0:
            resultados+=['La mayor intensidad promedio de lluvia fue registrada en la cuenca en la fecha %s, con un valor de %.3f $[mm/h]$.'%(rain.argmax().strftime('%Y-%m-%d %H:%M'),rain.max())]
            resultados+=['La distribuciĆ³n de la lluvia en la cuenca se puede observar en el recuadro izquierdo de la Figura \\ref{%s}, donde se reportĆ³ un valor mĆ”ximo de %.3f $[mm]$.'%('fig:%srain_%s'%(fecha.strftime('%Y%m%d'),self.nombre),max(self.accumulated_rain))]

    try:
        self.dfr = self.dfr.fillna(-999)
        self.verticales = self.verticales.fillna(-999)
        self.levantamiento = self.levantamiento.fillna(-999)
        self.data_to_excel('%s_data/%s_%s.xlsx'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre))
        dfe.loc[i,'datatoexcel']=1
    except:
        dfe.loc[i,'datatoexcel']=0
np.savetxt('%s.tex'%fecha.strftime('%Y%m%d'),resultados, fmt='%s')
---------------------------------------------------------------------------
IOError                                   Traceback (most recent call last)
<ipython-input-11-37b0f290f2c8> in <module>()
     90                     sepx=0.03,
     91                     sepy=0.01,
---> 92                     filepath='%s/%s_section_%s.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre))
     93         resultados += latex_results_table(self,'tab:%s_hidroparam_%s'%(fecha.strftime('%Y%m%d'),self.nombre))
     94         lbl = '\\ref{tab:%s_hidroparam_%s}'%(fecha.strftime('%Y%m%d'),self.nombre)

/media/nicolas/Home/Jupyter/MarioLoco/scripts/aforos.pyc in plot_section(self, lev, wet, filepath, show, **kwargs)
    341         plt.tight_layout()
    342         if filepath:
--> 343             plt.savefig(filepath,format=filepath[-3:],bbox_inches='tight')
    344         if show == True:
    345             plt.show()

/usr/local/lib/python2.7/dist-packages/matplotlib/pyplot.pyc in savefig(*args, **kwargs)
    695 def savefig(*args, **kwargs):
    696     fig = gcf()
--> 697     res = fig.savefig(*args, **kwargs)
    698     fig.canvas.draw_idle()   # need this if 'transparent=True' to reset colors
    699     return res

/usr/local/lib/python2.7/dist-packages/matplotlib/figure.pyc in savefig(self, *args, **kwargs)
   1570             self.set_frameon(frameon)
   1571 
-> 1572         self.canvas.print_figure(*args, **kwargs)
   1573 
   1574         if frameon:

/usr/local/lib/python2.7/dist-packages/matplotlib/backend_bases.pyc in print_figure(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)
   2242                 orientation=orientation,
   2243                 bbox_inches_restore=_bbox_inches_restore,
-> 2244                 **kwargs)
   2245         finally:
   2246             if bbox_inches and restore_bbox:

/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_agg.pyc in print_png(self, filename_or_obj, *args, **kwargs)
    548         renderer.dpi = self.figure.dpi
    549         if is_string_like(filename_or_obj):
--> 550             filename_or_obj = open(filename_or_obj, 'wb')
    551             close = True
    552         else:

IOError: [Errno 2] No such file or directory: '20170712/20170712_section_H1.png'
In [12]:
def latex_hidrologia(self,caudal,ruta_fig,label):
        difiere = round(((caudal/self.caudales_historicos.median().values[0])-1.0)*100,3)
        plot_figure = []
        plot_figure.append('\\begin{multicols}{2}')
        plot_figure.append('La figura \\ref{%s} estĆ” construida con datos de aforos histĆ³ricos realizado sobre la misma secciĆ³n, el recuadro superior es un histograma de frecuencias, mientras que el recuadro inferior es un resumen con los estadĆ­sticos mĆ”s importantes. En total se cuenta con %d aforos, el caudal observado difiere de la mediana histĆ³rica %.3f $[m^3/s]$ en un %.2f porciento.'%(label,self.caudales_historicos.index.size,self.caudales_historicos.median().values[0],difiere))                           
        plot_figure.append('{\\centering')
        plot_figure.append('\\includegraphics[width=5.0cm]{{%s}}'%(ruta_fig))
        plot_figure.append('\\captionof{figure}{\small InformaciĆ³n de Aforos histĆ³ricos %s}'%self.name)
        plot_figure.append('\\label{%s}'%label)
        plot_figure.append('}')
        plot_figure.append('\\end{multicols}')
        return plot_figure

def latex_results_table(self,label):
    self.alo = ['','\\ % ----------------------latex_results_table ---------------------------------------']
    #if self.aforo <> 1:
    self.alo.append('\\subsection{%s}'%self.name)
    self.alo.append('\\begin{table}[h!]')
    self.alo.append('\\caption{Resultados %s, Aforo %s}'%(self.name,self.date))
    self.alo.append('\\vspace{1.9mm}')
    self.alo.append('\\fontsize{10}{2} \\selectfont{')
    self.parametros = '\\scalebox{1.0}{\\begin{tabularx}{\\textwidth}{ p{1.4in} p{1.3in} p{1.7in} p{1.3in}}'
    self.alo.append(self.parametros)
    self.alo.append('\\rowcolor{CiceBlue2}')
    self.alo.append('\\multicolumn{4}{c}{\\textbf{\\textcolor{white}{RESULTADOS DEL AFORO}}}')
    self.alo.append('\\rule[-0.2cm]{0cm}{0.7cm}\\\\')
    self.campo = ['Caudal [$ m^{3} $]','Caudal S [$ m^{3}/s $]','Ɓrea [$ m^{2}$]',\
            'Ancho Superficial [$ m $]','Altura Media [$ m $] ' ,'Velocidad Media [$ m/s $]',\
            'Perƭmetro M [$ m $]','Radio HidrƔulico [$ m $]','Offset [$ m $]','Med-Nivel(UTH) [$ m $]']
    self.caudal = float(self.dfr.loc['caudal_medio','Resultado'])
    self.caudals = float(self.dfr.loc['caudal_superficial','Resultado'])
    self.area = float(self.dfr.loc['area_total','Resultado'])
    self.ancho = float(self.dfr.loc['ancho_superficial','Resultado'])
    self.altura = float(self.dfr.loc['altura_media','Resultado'])
    self.velm = float(self.dfr.loc['velocidad_media','Resultado'])
    self.perimetro =float(self.dfr.loc['perimetro','Resultado'])
    self.radio = float(self.dfr.loc['radio_hidraulico','Resultado'])
    self.alo.append('\\textbf{%s}'%self.campo[0]) 
    self.alo.append('& %.3f'%self.caudal)
    self.alo.append('& \\textbf{Dispositivo}')
    self.alo.append('& %s'%self.dispositivo)
    self.alo.append('\\rule[-0.1cm]{0cm}{0.5cm} \\\\ \\cline{1-4}')
    self.alo.append('\\textbf{%s}'%self.campo[2])
    self.alo.append('& %.3f'%self.area)
    self.alo.append('& \\textbf{%s}'%self.campo[3])
    self.alo.append('& %.3f'%self.ancho)
    self.alo.append('\\rule[-0.1cm]{0cm}{0.5cm} \\\\ \\cline{1-4}')
    self.alo.append('\\textbf{%s}'%self.campo[4])
    self.alo.append('& %.3f'%self.altura)
    self.alo.append('& \\textbf{%s}'%self.campo[5])
    self.alo.append('& %.3f'%self.velm)
    self.alo.append('\\rule[-0.1cm]{0cm}{0.5cm} \\\\ \\cline{1-4}')
    self.alo.append('\\textbf{%s}'%self.campo[6])
    self.alo.append('& %.3f'%self.perimetro)
    self.alo.append('& \\textbf{%s}'%self.campo[7])
    self.alo.append('& %.3f'%self.radio)
    self.alo.append('\\rule[-0.1cm]{0cm}{0.5cm} \\\\ \\cline{1-4}')
    self.alo.append('\\label{%s}'%(label))
    self.alo.append('\\end{tabularx}}}')
    self.alo.append('\\end{table}')
    self.alo.append('\\ %----------------------LABEL------------------')
    self.alo.append('\\ % -----Tabla '+'\\ref{%s}'%label)
    return self.alo


resultados = ['']
resultados.append('\\section{%s}'%nombre_salida)
    #--plot map_campain
resultados+=self.latex_figure(17,'%s_LaHueso/%s_LaHueso_map_campain.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d')),'Mapa %s'%nombre_salida,'fig:%smapcamp'%(fecha.strftime('%Y%m%d')))
resultados+=self.latex_figure(17,'%s_LaHueso/%s_LaHueso_rain.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d')),'Lluvia %s'%nombre_salida,'fig:%srain'%(fecha.strftime('%Y%m%d')))
resultados+=self.latex_figure(17,'%s_LaHueso/%s_LaHueso_flux.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d')),'Resultados %s'%nombre_salida,'fig:%sflux'%(fecha.strftime('%Y%m%d')))
resultados+=tabla

df = pd.DataFrame.copy(dfe)

for i in df.index:
    self = runbyid(i)
    if df.loc[i,'aforo_especial']==1:
        self.dispositivo = '-999'
        resultados+= ['\\subsection{%s}\\'%self.name]
        if int(df.loc[i,'id_estacion_asociada'])==1061:
            resultados+= self.latex_figure(17,'%s/curva_gabino.png'%(fecha.strftime('%Y%m%d')),
                                  'Caudales estimados a partir de curva de calibraciĆ³n',
                                  'fig:%scurva'%(fecha.strftime('%Y%m%d')))
            resultados += ['\\clearpage'] 
    else:
        self.get_resultados_mysql()
        self.dispositivo = self.dfr.loc['dispositivo','Resultado']
        self.plot_section(wet=self.verticales,
                    lev=self.levantamiento,
                    figsize=(12,4),
                    fontsize=18,
                    sepx=0.03,
                    sepy=0.01,
                    filepath='%s_LaHueso/%s_LaHueso_section_%s.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre))
        resultados += latex_results_table(self,'tab:%s_LaHueso_hidroparam_%s'%(fecha.strftime('%Y%m%d'),self.nombre))
        
        
        lbl = '\\ref{tab:%s_LaHuesohidroparam_%s}'%(fecha.strftime('%Y%m%d'),self.nombre)
        resultados+=['El aforo se realizĆ³ en la fecha %s, el caudal obtenido fue de %s $[m^3/s]$. La secciĆ³n aforada tiene un ancho superficial que mide %s [m], la altura promedio de la lĆ”mina de agua es de %s [m], la altura mĆ”xima se ubica a %s [m] de la margen izquierda del canal con un valor de %s [m]. Para el cĆ”lculo de velocidades se utilizĆ³ el dispositivo %s, el valor medio de velocidad obtenido fue de %s $[m/s]$, y el mĆ”ximo de %s $[m/s]$. La sumatoria de Ć”reas en todas las verticales deja un Ć”rea total de %s $[m^2]$. Los demĆ”s parĆ”metros se pueden observar en la tabla %s.'%(self.fecha.strftime('%Y-%m-%d %H:%M'),round(self.dfr.loc['caudal_medio','Resultado'],3),round(self.dfr.loc['ancho_superficial','Resultado'],3),round(self.dfr.loc['altura_media','Resultado'],3),
        round(abs(self.verticales.set_index('x')['y'].argmin()),3),round(abs(self.verticales['y'].min()),3),self.dfr.loc['dispositivo','Resultado'],
        round(self.dfr.loc['velocidad_media','Resultado']),round(self.verticales['velocidad04'].max(),3),round(self.dfr.loc['area_total','Resultado'],3),lbl)]
        resultados += self.latex_section('%s_LaHueso/%s_LaHueso_section_%s.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre),
                       'fig:%sLaHueso_section_%s'%(fecha.strftime('%Y%m%d'),self.nombre))+texto
        resultados+=['\\clearpage']
    if df_informacion.loc[self.codigo,'morfo']==1.0:
        #self.get_rain()
        self.simubasin(rute=True,show=False)
        rain = self.plot_lluvia_aforo(ax2color='darkslategrey',
                      fecha=self.fecha.strftime('%Y-%m-%d')+' 18:00',
                      ruta='%s/%s_rain_%s.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre),
                      formato='png')
        resultados+= self.latex_figure(17,'%s/%s_rain_%s.png'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre),
                                  'Lluvia %s %s'%(nombre_salida,self.name),
                                  'fig:%srain_%s'%(fecha.strftime('%Y%m%d'),self.nombre))
        resultados+=['La mayor intensidad promedio de lluvia fue registrada en la cuenca en la fecha %s, con un valor de %.3f [mm/h].'%(rain.argmax().strftime('%Y-%m-%d %H:%M'),rain.max())]
        resultados+=['\\clearpage']
    try:
        self.dfr = self.dfr.fillna(-999)
        self.verticales = self.verticales.fillna(-999)
        self.levantamiento = self.levantamiento.fillna(-999)
        self.data_to_excel('%s_LaHueso_data/%s_LaHueso_%s.xlsx'%(fecha.strftime('%Y%m%d'),fecha.strftime('%Y%m%d'),self.nombre))
        dfe.loc[i,'datatoexcel']=1
    except:
        dfe.loc[i,'datatoexcel']=0
np.savetxt('%s_LaHueso.tex'%fecha.strftime('%Y%m%d'),resultados, fmt='%s')
In [13]:
nombre_info = 'borrarhueso'
includes = ['\\include{Portada}','\\setlength{\\headsep}{40pt}',\
            '\\tableofcontents',\
            '\\listoffigures',\
            '\\listoftables',\
            '\\include{introduccion}',\
            '\\chapter{InformaciĆ³n de las estaciones aforadas}']+texto+\
            ['\\clearpage']

self.informe(includes+['\\include{20170712_LaHueso}'],\
             header_filepath='figuras/header.png',\
             header_text='Informe salidas modelaciĆ³n',\
             logo_filepath='figuras/logo.png',\
             cover_filepath = 'figuras/cover.png',\
             foot_filepath = 'figuras/foot.png',\
             nombre_info=nombre_info)

#self.informe(includes,ruta = '../figuras',nombre_info=nombre_info)
IFrame('%s_optimizado.pdf'%nombre_info, width=1000, height=1000)
Out[13]:
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]: