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 aplicarnumpy.expao 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 comscipy.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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.