Skip to main content

API Client for DataSINDA - INPE

Project description

pySINDA Client Library

A library client pySINDA facilita a interação com a API do SINDA (Sistema Nacional de Dados Ambientais) para coletar e analisar dados de Plataformas de Coleta de Dados (PCDs).

Esta biblioteca foi redesenhada para ser modular, eficiente e totalmente integrada com fluxos de ciência de dados e análise exploratória (EDA) usando Pandas e NumPy.

Instalação

pip install pysinda

Configuração

Para usar o cliente, você deve usar a chave de API fornecida pelo DataSINDA. O cliente SindaClient também 'utiliza variáveis de ambiente para evitar a exposição de credenciais no código:

  • SINDA_API_KEY: Chave de autenticação (API Key) da API.

Você também pode passar a chave de API como parâmetro para o cliente SindaClient:

client = SindaClient(api_key="sua_api_key")

Uso Básico

from pysinda import SindaClient

# Instanciando o cliente (carrega chave de API da variável de ambiente)
client = SindaClient()

# Ou passando os parâmetros explicitamente
client = SindaClient(api_key="sua_api_key")

SindaClient Reference

A classe única SindaClient unifica todas as operações disponíveis na API do SINDA. A maioria dos métodos de dados suporta o parâmetro opcional to_df=True para retornar um DataFrame do Pandas diretamente.

Métodos de Listagem de PCDs

get_all(to_df=False)

Retorna a lista completa com todas as PCDs e seus metadados.

get_all_resumed(to_df=False)

Retorna uma lista contendo apenas os campos principais das PCDs (id, numero, ativo, proprietario, latitude, longitude, estado, cidade).

get_complete_pcds(to_df=False)

Retorna a lista de PCDs que possuem todos os metadados principais preenchidos.

get_incomplete_pcds(to_df=False)

Retorna a lista de PCDs que possuem algum metadados principal ausente.

get_pcds_by_owner(owner, to_df=False)

Filtra a lista de PCDs pelo nome do proprietário (case-insensitive).

get_pcds_by_state(state, to_df=False)

Filtra a lista de PCDs pelo estado (sigla ou nome por extenso).

get_public_pcds(to_df=False)

Recupera a lista de todas as PCDs públicas.

get_private_pcds(to_df=False)

Recupera a lista de todas as PCDs de acesso privado.

Métodos de Dados e Metadados de uma PCD

get_pcd(idPCD, to_df=False)

Recupera informações rápidas da PCD associada ao ID informado.

get_period_availability(idPCD)

Obtém o período de disponibilidade dos dados temporais no banco. Retorna um dicionário contendo as chaves dataInicial e dataFinal.

get_sensors(idPCD)

Retorna a lista dos sensores habilitados para a respectiva PCD.

get_pcd_metadata(idPCD)

Retorna os metadados completos da PCD.

get_metadata_resumed(idPCD)

Retorna um resumo dos metadados da PCD.

get_owner(idPCD)

Obtém os detalhes do proprietário cadastrado da PCD.

is_private(idPCD)

Verifica se os dados daquela PCD específica são privados.

get_data(idPCD, data_inicial, data_final, to_df=False)

Recupera a série temporal de medições dos sensores para o intervalo de datas solicitado. Nota: Consultas maiores que 365 dias são automaticamente divididas em requisições anuais e agrupadas de forma transparente.


Módulo de Análise de Dados (Analytics)

A biblioteca oferece funções integradas para o tratamento, controle de qualidade e análise exploratória rápida das séries temporais das PCDs.

from pySINDA import SindaClient, clean_data, resample_time_series, compute_wind_components

client = SindaClient()
# Recupera dados brutos como DataFrame
df = client.get_data(idPCD=30847, data_inicial="2023-01-01", data_final="2023-02-01", to_df=True)

# 1. Trata outliers e interpola dados nulos
df_cleaned = clean_data(df, time_col='Data', fill_method='interpolate', outlier_threshold=3.0)

# 2. Decompõe velocidade e direção do vento em vetores U e V
df_wind = compute_wind_components(df_cleaned, speed_col='VelocidadeVento', dir_col='DirecaoVento')

# 3. Faz o resample para médias diárias
df_daily = resample_time_series(df_wind, time_col='Data', rule='D', agg='mean')

Funções Disponíveis

clean_data(df, time_col='Data', fill_method='interpolate', outlier_threshold=3.0)

Identifica outliers estatísticos (baseado em Z-score) substituindo-os por NaN. Em seguida, preenche valores ausentes utilizando o método escolhido ('interpolate', 'ffill', 'bfill' ou None).

detect_outliers(df, columns=None, threshold=3.0)

Retorna um DataFrame booleano indicando quais posições contêm valores atípicos (Z-score acima do limite especificado).

resample_time_series(df, time_col='Data', rule='D', agg='mean')

Agrupa a série temporal de acordo com a frequência informada (ex: 'D' para dia, 'H' para hora, 'ME' para mês) e calcula a agregação (ex: 'mean', 'sum', 'max', 'min').

summarize_time_series(df, time_col='Data')

Retorna um relatório geral contendo intervalo de datas, quantidade total de registros e porcentagens de valores ausentes e estatísticas básicas de cada sensor.

compute_wind_components(df, speed_col, dir_col)

Calcula as componentes zonais (U) e meridionais (V) do vento a partir da direção (em graus) e velocidade do vento. Ideal para análises meteorológicas e rosas dos ventos.

plot_time_series(df, time_col='Data', variables=None)

Plota subplots temporais para as variáveis numéricas do DataFrame de maneira automatizada. (Requer matplotlib instalado).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysinda-0.1.1.tar.gz (55.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysinda-0.1.1-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file pysinda-0.1.1.tar.gz.

File metadata

  • Download URL: pysinda-0.1.1.tar.gz
  • Upload date:
  • Size: 55.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pysinda-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5f91770223a9cbf2fb482a504af4c27c25799919375280f02fec3e268db31251
MD5 2ed6d26d89475c8bac1ec1b5ee309318
BLAKE2b-256 b2d53c66253f6e72d8b762d7c7e4c4174b2049c9013e758f41f5ad9f0e0bf4d2

See more details on using hashes here.

File details

Details for the file pysinda-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pysinda-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pysinda-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 edcea0187ac98ca8db566d43e729663ca66adeb6478ca4d7e8a9cdfa17c7387e
MD5 c9667cfdfc3765ffecc160e34a81c367
BLAKE2b-256 c6f21746a43ece8cb27d44709092d4c8755d49fb52c61db07f3f5b77f1f7c7b6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page