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.2.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.2-py3-none-any.whl (84.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sunfer_clima-0.2.2.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.2.tar.gz
Algorithm Hash digest
SHA256 bf43710979ab66dd445adf5fc49d9737a08d1fcebb0b3a3e2dbfc8ca58011ddb
MD5 587928334b520c00376053cc78907784
BLAKE2b-256 84c962c0f2bdf536ef1ecba2b9522bcfbddc807deab59f9508d520facd2414d5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sunfer_clima-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 84.9 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a2d968b523612a7fb040e49df1e5cbde9ae6dcdefe74600d70cf8a5a2fbbc86b
MD5 0067a24abee2aa352d7070224b6dcc63
BLAKE2b-256 caaaeb338111cc90acaa77363063e4f2d332dbb6fa9fb618d5fe787adc22b3fc

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