En el campo de la energía solar fotovoltaica, un dato muy relevante para analizar la disponibilidad del recurso energético disponible depende de variables como la irradiancia global horizontal (GHI), la temperatura, inclinación, orientación, etc. En este tutorial te mostrare como estimar la generación de un sistema solar en cualquier ciudad de Colombia y el mundo.
☀️ Obtención de los datos:
Los datos de Irradiancia Global Horizontal (GHI) que nos permitirá conocer la Hora Solar Promedio (HSP) se obtuvieron del Global Solar Atlas (https://globalsolaratlas.info/map) en donde encontraras mucha mas informacion valiosa relacionada con el potencial solar fotovoltaico para cualquier lugar del mundo.
Como parte del tutorial, crearemos seis diccionarios en python, correspondientes a las ciudades capitales del caribe colombiano pero podrías adaptarlo a cualquier ciudad de Colombia o el mundo. Los diccionarios tendrán la siguiente estructura:
codigo_ciudad = { "mes_1": float_1, "mes_2": float_2, "mes_3": float_3, ...}
En este diccionario, las claves representaran los meses del año y sus valores el promedio de kWh normalizados a un sistema de 1kW (1000W) respectivamente.
Para el código de cada ciudad he usado la sigla OACI-IATA ✈️ relacionada con el aeropuerto de cada ciudad principal del norte de Colombia, estos códigos están almacenados en otro diccionario.
ciudades = {"BAQ": "barranquilla", "CTG": "cartagena", "MTR": "monteria", ...}
☀️ ☀️ Ejemplo diccionario completo
Tomaremos como ejemplo la ciudad de Santa Marta y construiremos el primer diccionario para este tutorial:
SMR = {
"enero": 162.9,
"febrero": 152.6,
"march": 163.1,
"abril": 143.7,
"mayo": 132.1,
"junio": 122.9,
"julio": 131.4,
"agosto": 133.3,
"septiembre": 131.5,
"octubre": 132.9,
"noviembre": 131.8,
"diciembre": 149.9
}
☀️ ☀️ ☀️ Obtención del promedio, máxima y mínima generación esperada
Para obtener el promedio para una determinada ciudad y teniendo los datos en la estructura indicada, es recorrer el diccionario completo por medio de un ciclo For, realizar la sumatoria de los valores de cada mes y finalmente calcular el promedio dividiendo la sumatoria y el numero de meses. Este dato expresara el promedio mensual en kWh (el kWh es una unidad de energía y es la forma como regularmente se comercia la energía eléctrica).
gen_total = 0gen_prom = 0# Obtencion del promedio de generacion anual en kWh
for meses in SMR:
gen_total = gen_total + SMR[meses]
gen_prom = gen_total/12
print(f"El promedio de generación mensual es de {gen_prom} kWh")
Finalmente, para la obtención del mes con mayor y menor nivel de generación implemente un par de funciones que se basan en funciones Lambda para recorrer nuestro diccionario y extraer de allí los dos valores de interés, aunque son pocos datos para este ejemplo, en la medida que se agregue mas ciudades o se tenga un intervalo de medición menor, esta es una forma rápida de obtener máximos y mínimos de un diccionario. (Puedes consultar mas información acerca de la función max y min en https://note.nkmk.me/en/python-dict-value-max-min/#get-the-key-value-pair-with-the-maximumminimum-value-in-a-dictionary)
# Obtencion de la maxima generacion en kWh
max_gen = max(SMR.items(), key=lambda x: x[1])
print(f"El mes con mayor generacion es {max_gen[0]} con {max_gen[1]}")
# Obtencion de la minima generacion en kWh
min_gen = min(SMR.items(), key=lambda x: x[1])
print(f"El mes con menor generacion es {min_gen[0]} con {min_gen[1]}")
Finalmente y para efectos de este primer tutorial que desarrollo, este seria el resultado:
El tutorial fue desarrollado usando la herramienta sugerida en el curso “Fundamentos de Python” y pueden acceder a través de este enlace: https://replit.com/new/python3