Skip to main content

Librería de acciones climáticas

Project description

❄️ Sunfer Clima

Librería Python para el cálculo de acciones climáticas en estructuras según distintas normativas.

sunfer_clima está diseñada como el módulo climático del ecosistema Sunfer, orientado a aplicaciones de:

  • 🏗️ cálculo estructural
  • ☀️ estructuras fotovoltaicas
  • 🌬️ viento
  • ❄️ nieve
  • 🇪🇺 Eurocódigo (España, Portugal, Italia)
  • 🇪🇸 CTE
  • 🇮🇹 NTC2018

La arquitectura está preparada para integrarse con motores FEM, generadores de combinaciones EN 1990 y módulos de dimensionamiento.


✨ Características

✅ Acciones de nieve implementadas

Actualmente incluye:

🇪🇸 España

  • NieveCTE
  • VientoCTE
  • NieveEurocodeES
  • VientoEurocodeES

🇵🇹 Portugal

  • NieveEurocodePT
  • VientoEurocodePT

🇮🇹 Italia

  • NieveNTC2018
  • VientoNTC2018
  • NieveEurocodeIT
  • VientoEurocodeIT

Con soporte para:

  • zonas climáticas
  • altitud
  • interpolación por tablas normativas
  • periodos de retorno
  • coeficientes probabilísticos
  • densidad de nieve y aire
  • carga accidental
  • tablas de resultados en pandas
  • etc

🌬️ Base para acciones de viento

La librería incluye clases base para viento según Eurocódigo, preparadas para especializaciones por país (Anejos Nacionales).


🔄 Conversor de unidades integrado

Incluye utilidades para conversión entre:

Velocidad

  • m/s
  • km/h
  • mph

Presión

  • Pa
  • kPa
  • kgf/cm2
  • ton/cm2

También permite conversión física entre:

  • velocidad → presión dinámica
  • presión → velocidad equivalente

📦 Instalación

pip install sunfer-clima

🚀 Uso rápido

Ejemplo 1 — nieve CTE

from sunfer_clima.acciones.nieve.cte import NieveCTE

nieve = NieveCTE(zona_nieve=3, altitud=450)
nieve.calcular()

print(nieve.obtener("SKN"))
print(nieve.obtener("SAD"))
print(nieve.tabla())

Ejemplo 2 — Eurocódigo España

from sunfer_clima.acciones.nieve.es import NieveEurocodeES

nieve = NieveEurocodeES(3, 750)
nieve.calcular()

print(nieve.tabla())

Ejemplo 3 — Eurocódigo Portugal

from sunfer_clima.acciones.pt.nieve import NieveEurocodePT

nieve = NieveEurocodePT("Z2", 850)
nieve.calcular()

print(nieve.obtener("SKN"))

Ejemplo 4 — conversión de unidades

from sunfer_clima.utilidades.conversor import convertir

v = convertir(36, "km/h", "m/s")
q = convertir(10, "m/s", "Pa")

🧠 Filosofía de diseño

La librería está construida sobre una clase abstracta base:

AccionClimatica

que garantiza una API homogénea:

calcular()
tabla()
normativa()
obtener()
parametros()
ver_parametros()

Esto permite que cualquier acción climática futura comparta la misma interfaz.

Ejemplo:

accion.calcular()
valor = accion.obtener("SKN")

Ideal para integrarse con:

  • generadores de combinaciones
  • motores FEM
  • GUIs
  • APIs REST
  • informes automáticos

🧪 Testing

La librería dispone de tests automáticos completos con pytest.

Cobertura actual:

  • ✅ clases abstractas
  • ✅ setters y validaciones
  • ✅ interpolación de tablas
  • ✅ ramas de error
  • ✅ periodos de retorno
  • ✅ conversor físico de unidades
  • ✅ DataFrames de resultados
  • ✅ métodos auxiliares
  • ✅ normativa

Ejecutar tests:

pytest -v

Con cobertura:

pytest --cov=sunfer_clima --cov-report=html

🏗️ Roadmap

Próximas funcionalidades previstas:

  • 🌍 mapas GIS de acciones climáticas
  • 🇪🇺 más anejos nacionales

🌍 Ecosistema Sunfer

sunfer_clima forma parte del ecosistema:

  • sunfer-clima
  • sunfer-loads
  • sunfer-combinaciones
  • sunfer-fem
  • sunfer-core

orientado a construir un framework open-source de cálculo estructural profesional.


🆕 Cambios recientes

[0.2.1]

✨ Añadido

  • 🇮🇹 Implementación completa de:
    • Eurocódigo Italia
    • NTC2018
  • Cobertura del 100% en módulo it.py

🔧 Cambiado

  • Mejora en nomenclatura de normativa
  • Refactor de helpers privados para mayor mantenibilidad

🐛 Corregido

  • Acceso erróneo a clave VB0_TABLA
  • Tests desactualizados en normativa española

[0.1.1]

  • Correcciones menores
  • Ajustes en estabilidad

[0.1.0]

  • Primera versión pública

📝 Historial completo

Ver CHANGELOG.md


📄 Licencia

MIT License


👨‍💻 Autor

Rafa Crespo

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

sunfer_clima-0.2.1.tar.gz (66.7 kB view details)

Uploaded Source

Built Distribution

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

sunfer_clima-0.2.1-py3-none-any.whl (84.8 kB view details)

Uploaded Python 3

File details

Details for the file sunfer_clima-0.2.1.tar.gz.

File metadata

  • Download URL: sunfer_clima-0.2.1.tar.gz
  • Upload date:
  • Size: 66.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for sunfer_clima-0.2.1.tar.gz
Algorithm Hash digest
SHA256 0f683a3bffb50c763019a64c269706ea9f00abef3806ae886f0ac079a81d76de
MD5 50c2dea9bbcb2dc6be2e629f2f663429
BLAKE2b-256 a9ebeb696d48ee50a8158516be49a8ff14be255f1b4b82559ed5102fdb168606

See more details on using hashes here.

File details

Details for the file sunfer_clima-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: sunfer_clima-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 84.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for sunfer_clima-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7a828928dccae4dacaa370f83490f86f962d8c229e4642d257296308eb8e89e4
MD5 985ee3901eabcbe337d8b6554db0d4b1
BLAKE2b-256 5f4c4a9a590a8d83aede42acf9cdd4489ccc81fd4c62b8574d3699d2dd8ea63f

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