def __init__(self): self.df_estacion = pd.read_csv(self.ruta_estacion, delimiter=',', low_memory=False) self.df_produccion = pd.read_csv(self.ruta_produccion, delimiter=',', low_memory=False) self.df_finca = pd.read_csv(self.ruta_finca, delimiter=',', low_memory=False) self.df_temperatura = pd.read_csv(self.ruta_temperatura, delimiter=',', low_memory=False) self.df_radiacion = pd.read_csv(self.ruta_radiacion, delimiter=',', low_memory=False) self.df_redes = pd.read_csv(self.ruta_redes, delimiter=',', low_memory=False) self.df_estaciones_pronostico = pd.read_csv( self.ruta_estaciones_pronostico, delimiter=',', low_memory=False) self.df_proyeccion = pd.read_csv(self.ruta_pronostico, delimiter=',', low_memory=False) self.df_variedad_color = pd.read_excel(self.ruta_colores) self.df_fechas = pd.read_excel(self.ruta_fechas) self.df_clima = None self.data_filter = Data_filter()
def actualizar_filtro_variedades(radio_variedades): data_filter = Data_filter() if radio_variedades == 3: return data_filter.get_miniclaveles() elif radio_variedades == 2: return data_filter.get_claveles() else: return data_filter.get_miniclaveles() + data_filter.get_claveles()
class __file_access: ruta_datos = r"C:\\Users\\bolemm01\\OneDrive - CSG Systems Inc\\Desktop\\DS4A\DS4A_COPY\\DS4A_FINAL_PROJECT\\data\\" #ruta_aws = "/home/ec2-user/DS4A/data/" ruta_estacion = ruta_datos + 'estacion.csv' ruta_produccion = ruta_datos + 'produccion_color.csv' ruta_finca = ruta_datos + 'finca.csv' ruta_temperatura = ruta_datos + 'temperatura.csv' ruta_radiacion = ruta_datos + 'radiacion.csv' ruta_redes = ruta_datos + 'result_nn1.csv' ruta_weather = ruta_datos + 'weather.csv' ruta_estaciones_pronostico = ruta_datos + 'estaciones_pronostico.csv' ruta_pronostico = ruta_datos + 'resultado_final.csv' ruta_colores = ruta_datos + 'variedad_color.xlsx' ruta_fechas = ruta_datos + 'fechas.xlsx' #ruta_clima = ruta_datos + '\\clima.csv' def __init__(self): self.df_estacion = pd.read_csv(self.ruta_estacion, delimiter=',', low_memory=False) self.df_produccion = pd.read_csv(self.ruta_produccion, delimiter=',', low_memory=False) self.df_finca = pd.read_csv(self.ruta_finca, delimiter=',', low_memory=False) self.df_temperatura = pd.read_csv(self.ruta_temperatura, delimiter=',', low_memory=False) self.df_radiacion = pd.read_csv(self.ruta_radiacion, delimiter=',', low_memory=False) self.df_redes = pd.read_csv(self.ruta_redes, delimiter=',', low_memory=False) self.df_estaciones_pronostico = pd.read_csv( self.ruta_estaciones_pronostico, delimiter=',', low_memory=False) self.df_proyeccion = pd.read_csv(self.ruta_pronostico, delimiter=',', low_memory=False) self.df_variedad_color = pd.read_excel(self.ruta_colores) self.df_fechas = pd.read_excel(self.ruta_fechas) self.df_clima = None self.data_filter = Data_filter() def realizar_filtro_fechas(self, df, fecha): rango_fechas = self.data_filter.get_rango_fechas() if rango_fechas['fecha_inicio']: if not df[df[fecha] >= rango_fechas['fecha_inicio']].empty: df = df[df[fecha] >= rango_fechas['fecha_inicio']] if rango_fechas['fecha_fin']: if not df[df[fecha] <= rango_fechas['fecha_fin']].empty: return df[df[fecha] <= rango_fechas['fecha_fin']] else: return df else: return df def realizar_filtro_fincas(self, df, finca): if not self.data_filter.get_fincas(): return df else: return df[df[finca].isin(self.data_filter.get_fincas())] def realizar_filtro_finca(self, df, finca): if not self.data_filter.get_finca(): return df else: return df[df[finca].isin([self.data_filter.get_finca()])] def realizar_filtro_colores(self, df, color): if not self.data_filter.get_colores(): return df else: return df[df[color].isin(self.data_filter.get_colores())] def realizar_filtro_color(self, df, color): if not self.data_filter.get_color(): return df else: return df[df[color].isin([self.data_filter.get_color()])] def realizar_filtro_estaciones(self, df, estacion): if not self.data_filter.get_estaciones(): return df else: return df[df[estacion].isin(self.data_filter.get_estaciones())] def realizar_filtro_estacion(self, df, estacion): if not self.data_filter.get_estacion(): return df else: return df[df[estacion].isin([self.data_filter.get_estacion()])] def realizar_filtro_variedades(self, df, variedad): if not self.data_filter.get_variedades(): return df else: return df[df[variedad].isin(self.data_filter.get_variedades())] def realizar_filtro_variedad(self, df, variedad): if not self.data_filter.get_variedad(): return df else: return df[df[variedad].isin([self.data_filter.get_variedad()])] def get_df_estacion(self): return self.df_estacion def get_df_produccion(self): retorno = self.df_produccion.copy() retorno = self.realizar_filtro_fincas(retorno, 'finca') retorno = self.realizar_filtro_variedades(retorno, 'variedad') retorno = self.realizar_filtro_colores(retorno, 'Color') retorno = self.realizar_filtro_fechas(retorno, 'anosemana') return retorno def get_df_clima(self): return self.df_clima def get_df_finca(self): return self.df_finca def get_df_temperatura(self): retorno = self.df_temperatura.copy() retorno = self.realizar_filtro_fechas(retorno, 'Fecha') return retorno def get_df_radiacion(self): retorno = self.df_radiacion.copy() retorno = self.realizar_filtro_fechas(retorno, 'Fecha') return retorno def get_df_redes(self): retorno = self.df_redes.copy() retorno = self.realizar_filtro_fechas(retorno, 'dia') retorno = self.realizar_filtro_finca(retorno, 'finca') retorno = self.realizar_filtro_color(retorno, 'Color') return retorno def get_filtros_clima(self): retorno = {} retorno['estacion'] = self.data_filter.get_estacion() retorno['rango_clima'] = self.data_filter.get_rango_clima() return retorno def get_lista_variedades(self, tipo_filtro): if tipo_filtro == 3: retorno = self.data_filter.get_miniclaveles() elif tipo_filtro == 2: retorno = self.data_filter.get_claveles() else: retorno = self.data_filter.get_miniclaveles( ) + self.data_filter.get_claveles() return retorno def get_lista_variedades_produccion(self, tipo_filtro): retorno = self.get_df_produccion() retorno = retorno['variedad'].isin( self.get_lista_variedades(tipo_filtro))['variedad'].unique() return retorno def get_df_proyeccion(self): retorno = self.df_proyeccion.copy() retorno = self.realizar_filtro_fechas(retorno, 'dia') retorno = self.realizar_filtro_finca(retorno, 'finca') retorno = self.realizar_filtro_color(retorno, 'Color') retorno = self.realizar_filtro_variedad(retorno, 'tipo') return retorno def get_df_estaciones_pronostico(self): retorno = self.df_estaciones_pronostico.copy() retorno = self.realizar_filtro_estacion(retorno, 'finca') return retorno
def actualizar_estacion(estacion): data_filter = Data_filter() data_filter.set_estacion(estacion)
def actualizar_rango_clima(rango_clima): data_filter = Data_filter() data_filter.set_rango_clima(rango_clima)
def actualizar_variedades(variedades): data_filter = Data_filter() data_filter.set_variedades(variedades)
def actualizar_colores(colores): data_filter = Data_filter() data_filter.set_colores(colores)
def actualizar_fincas(fincas): data_filter = Data_filter() data_filter.set_fincas(fincas)
def actualizar_fechas(fecha_inicio, fecha_fin): data_filter = Data_filter() data_filter.set_rango_fechas(fecha_inicio, fecha_fin)
from dash.dependencies import Input, Output from components.data_access.data_filter import Data_filter from components.views.descriptive import * #from components.tabs import * data_filter = Data_filter() def register_descriptive_callbacks(app): # callback figura producción vs edad @app.callback(Output('fig_desc_prod_edad', 'figure'), [ Input("date_filter0", "start_date"), Input("date_filter0", "end_date"), Input("categoria0", "value"), Input("categoria-color0", "value"), Input("nivelCritica0", "value") ]) def actualizar_figura_produccion(fecha_inicio, fecha_fin, fincas, colores, variedades): actualizar_fechas(fecha_inicio, fecha_fin) actualizar_fincas(fincas) actualizar_colores(colores) actualizar_variedades(variedades) fig_desc_prod_edad = get_prod_edad() return fig_desc_prod_edad # callback mapa de fincas @app.callback(Output('mapFincas', 'srcDoc'), [ Input("date_filter0", "start_date"), Input("date_filter0", "end_date"), Input("categoria0", "value"),
def actualizar_tipo_variedad(tipo_variedad): data_filter = Data_filter() if tipo_variedad == 1: data_filter.set_variedad('Carnation') elif tipo_variedad == 2: data_filter.set_variedad('Minicarnation')