Skip to main content

Hymodel

Biblioteca Python para modelagem e simulação em recursos hídricos.

Status: em desenvolvimento (v0.1.0). A API ainda pode mudar entre versões.

Módulos

Módulo Conteúdo Situação
hymodel.hydrology Geração de séries sintéticas estocásticas (AR, ARMA, SARIMA) Disponível
hymodel.analysis Métricas de desempenho (RMSE, NSE, KGE, PBIAS) e gráficos Disponível
hymodel.common Constantes físicas, conversões de unidades e validação de entradas Disponível
hymodel.hydraulics Condutos, canais, vertedores Planejado
hymodel.hydrosedimentology Transporte de sedimentos, erosão, assoreamento Planejado

Instalação

pip install hymodel

Para desenvolvimento, a partir do código-fonte:

git clone https://github.com/jefersonschreiner/Hymodel.git
cd Hymodel
pip install -e ".[dev]"
pytest

Requer Python 3.9 ou superior (dependências: numpy, scipy, pandas, matplotlib).

Uso rápido

Série sintética ARMA

from hymodel.hydrology import Stoch

# 10 anos de vazão mensal sintética (m³/s), ARMA(1,1)
q = Stoch.arma(
    n_steps=120,
    mean=85.0,
    std_dev=20.0,
    ar_params=[0.6],
    ma_params=[0.3],
    seed=42,          # opcional: torna a série reprodutível
)

Outros modelos

# AR(2)
Stoch.ar_p(n_steps=500, mean=50.0, std_dev=10.0, ar_params=[0.5, 0.2])

# AR(1) com inovações assimétricas (skewness alvo = 1.2)
Stoch.ar_p_skewed(n_steps=500, mean=50.0, std_dev=10.0,
                  ar_params=[0.4], skewnesse=1.2)

# SARIMA(1,0,0)(1,0,0)_12 -- sazonalidade anual em dados mensais
Stoch.sarima(n_steps=240, mean=100.0, std_dev=15.0,
             ar_params=[0.3], ma_params=[],
             seasonal_ar_params=[0.6], seasonal_ma_params=[],
             seasonal_period=12)

Todos os métodos aceitam init_value (valores iniciais para continuar a partir de dados observados) e seed (inteiro ou numpy.random.Generator).

Métricas e gráficos

from hymodel.analysis.metrics import nash_sutcliffe, kge, rmse, pbias
from hymodel.analysis.plots import plot_hidrograma

nse = nash_sutcliffe(q_obs, q_sim)
fig, ax = plot_hidrograma(t, q, titulo="Vazão sintética")

Observações sobre os modelos estocásticos

  • A média e o desvio padrão pedidos são impostos por reescalonamento empírico: o desvio sai exatamente igual ao solicitado e a média, aproximadamente.
  • Os modelos são gaussianos (exceto ar_p_skewed); com média baixa e desvio alto podem surgir valores negativos. Para vazões, considere gerar em escala logarítmica e aplicar numpy.exp ao final.
  • Em ar_p_skewed, a assimetria da série para AR(p) com p > 1 é aproximada (usa a soma dos coeficientes no lugar do coeficiente de correlação do AR(1)). Valide empiricamente com scipy.stats.skew.
  • Os parâmetros (φ, θ) devem ser informados; a estimação a partir de séries observadas não faz parte da versão atual.

Testes

pytest

Referências

  • Bras, R. L.; Rodriguez-Iturbe, I. Random Functions and Hydrology. Dover, 1985.
  • Box, G. E. P.; Jenkins, G. M.; Reinsel, G. C. Time Series Analysis: Forecasting and Control. Wiley.

Licença

Distribuído sob a licença MIT. Veja o arquivo LICENSE.

Autor

Jeferson Schreiner Junior — @jefersonschreiner

Metadata

Release files for hymodel 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hymodel 0.1.0
File Size Uploaded Provenance Actions
hymodel-0.1.0.tar.gz 14.8 kB Without provenance Details for hymodel-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for hymodel 0.1.0
File Interpreter ABI Platform Actions
hymodel-0.1.0-py3-none-any.whl Python 3 none any Details for hymodel-0.1.0-py3-none-any.whl

Total release size: 30.1 kB

Release files / hymodel-0.1.0.tar.gz

Download URL hymodel-0.1.0.tar.gz
Size 14.8 kB
Tags Source
SHA-256 checksum
How to use checksums
85c43645e10e55a81403b379b13618ccd617102f565e3532012067d508fd474a
BLAKE2b-256 checksum
How to use checksums
778819c7912ee97125e22fbeb632722a569c0ed6a4c0d9d3b0069d6279db411a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / hymodel-0.1.0-py3-none-any.whl

Download URL hymodel-0.1.0-py3-none-any.whl
Size 15.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
14598d421c145c2f630dec787a4235eefc4c832a45817c85244dab461e5bab7f
BLAKE2b-256 checksum
How to use checksums
e858f32621707e9f05fcddf60a48cfdfae3fee30ecf774cb0e4dd57f321f5a98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Security for hymodel 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page