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)
  • 🇪🇸 CTE

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
  • NieveEurocodeES
  • VientoEurocodeES
  • VientoCTE

🇵🇹 Portugal

  • NieveEurocodePT
  • VientoEurocodePT

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.


📄 Licencia

MIT License


👨‍💻 Autor

Rafa Crespo Ingeniería civil

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.1.0.tar.gz (58.2 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.1.0-py3-none-any.whl (72.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sunfer_clima-0.1.0.tar.gz
  • Upload date:
  • Size: 58.2 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.1.0.tar.gz
Algorithm Hash digest
SHA256 32f4b79d0d02b2572fa319b2d2dc6902cb6a93581ca3113efe82342cf4811698
MD5 0c96ce747195392a974c2e6558f5b620
BLAKE2b-256 145504a1a4aa5747ba10f881e7c353970d54eecc88117637e9a44a3c6120cb76

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sunfer_clima-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 72.6 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5014687a6f5b1aaf657839aa8b43253f10d5b76db0fe14ca4837e67877545e2f
MD5 6714157f29f21198458a903d2d6e289a
BLAKE2b-256 3ae385a68941c01d32d3fbf02ae18dcef4d605d923923262793e9e6db86c6869

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