Data Provider
Organizar e fornecer dados de estações hidrológicas de forma estruturada para componentes de visualização.
Índice
Visão Geral
A classe DataProvider centraliza a gestão de dados hidrológicos, oferecendo as seguintes funcionalidades principais:
- Carregamento Assíncrono: Gerencia o carregamento de diversos tipos de dados, como cotas horárias, inconsistências, adequações e informações da própria estação, de maneira assíncrona.
- Armazenamento Organizado: Armazena os dados processados internamente, garantindo fácil acesso e manipulação.
- Integração de Inconsistências: Combina automaticamente os dados de inconsistências com as cotas horárias, facilitando a identificação de anomalias.
- Capacidades de Filtragem: Oferece métodos robustos para filtrar dados, encapsulando lógicas complexas para simplificar a busca e análise de informações específicas.
DataProvider
Classe que organiza os dados obtidos e os provê de maneira organizada para todos os elementos do Bokeh.
Init
Inicializa uma nova instância do DataProvider.
Parâmetros:
codigo (int): O código identificador da estação.
tipo_cota (StationType): O tipo da estação, que pode ser regua ou pcd.
token_manager (TokenManager): Uma instância do gerenciador de tokens para autenticação.
Atributos:
self.codigo (int): Armazena o código da estação.
self.tipo_cota (StationType): Armazena o tipo da estação.
self.token_manager (TokenManager): A instância do gerenciador de tokens utilizada.
self.data (Dict[DataType, pd.DataFrame | Dict[str, Any] | None]): Um dicionário que guarda os dados carregados, categorizados por DataType (e.g., cota_horaria, inconsistencia, adequacao_pendente, mudanca_rn_pendente, estacao).
self.months_with_inconsistency (ndarray): Um array que lista os meses que contêm inconsistências.
Load data
Obtém os handlers adequados e carrega os dados de acordo com o necessário.
Parâmetros:
data_types (list[DataType]): Uma lista dos tipos de dados que precisam ser carregados.
_Load data
Procedimento que chama o método genérico do DataHandler e guarda os dados em propriedade adequada do DataProvider.
Parâmetros:
handler (DataHandler): O handler específico para o tipo de dado em questão.
data_type (DataType): O tipo de dado a ser processado e carregado.
Concat inconsistencies
Organiza as inconsistências de uma estação para serem acessíveis pela estrutura de dados do DataProvider, bem como guarda os meses que possuem inconsistências.
Filtrar cotas
Wrapper function de DataFilter.filtrar_dados().
Parâmetros:
date (datetime): A data central para a operação de filtragem.
horas (Optional[List[int]]): Uma lista opcional de horas específicas para inclusão no filtro.
delta_dias (int | tuple): Define um intervalo de dias ao redor da data de referência (pode ser um inteiro ou uma tupla).
media (bool): Um booleano que indica se a média dos dados deve ser calculada.
Returns:
(Dict[str, Dict[int | str, pd.DataFrame]] | None): Os dados filtrados ou None em caso de exceção.
Filtrar dados por janela
Wrapper function de DataFilter.filtra_por_janela().
Parâmetros:
date_start (datetime): A data de início da janela de filtragem.
date_end (datetime): A data de término da janela de filtragem.
horas (Optional[List[int]]): Uma lista opcional de horas específicas para inclusão no filtro.
delta_dias (int | tuple): Define um intervalo de dias (pode ser um inteiro ou uma tupla).
media (bool): Um booleano que indica se a média dos dados deve ser calculada.
Returns:
(Dict[Union[int, str], pd.DataFrame] | None): Os dados filtrados pela janela ou None em caso de exceção.