from src.Functions_Energy_Model import * from src.Functions_General import * import subprocess import signal import time location_ita = 'Biella' # location in Italian capacity = 100 # kWp tilt_angle = 30 # gradi azimuth = 0 # gradi num_years = 1 # anni di simulazione derating_factor_percent = 1 # derating factor that reduce the efficiency of the modules in percentage [%] config = yaml.safe_load(open("config.yml", 'r')) path_export = str(config['filename_output_csv_gen_pv']) # percorso del file di output # IGNORE THIS isJoe = config['joe_fight'] joePlaying = False if(isJoe == True): if shutil.which('ffplay') is not None: joePlaying = True joe = subprocess.Popen(['ffplay', '-fs', 'assets/joefight.mp4']) time.sleep(25) # deve arrivare il drop else: print("ffplay non installato, no joe fight.") # INIZIALIZZAZIONE PARAMETRI PER SIMULAZIONE location_eng = location_italian_to_english(location_ita) path = "config.yml" filename = "" key = "project_lifetime_yrs" value = num_years add_to_file_yml(path, filename, key, value) suppress_printing(generate_calendar) # generazione del calendario coordinates_dataset = suppress_printing(create_coordinates_dataset, [location_eng]) # crea un dataset con le coordinate di tutte le posizioni derating_factor = derating_factor_percent / 100 # CALCOLO PRODUTTIVITA' result_ac_energies_resampled = suppress_printing(simulate_1_kWp_generators, coordinates_dataset, tilt_angle, azimuth) # SCALING PRODUTTIVITA' result_ac_energies_gens = {} # initialization of the output dictionary result_ac_energies_gens['gen_pv_' + str(capacity) + '_kWp'] = result_ac_energies_resampled[location_eng] * capacity # DERATING PRODUTTIVITA' result_ac_energies_gens_derated = suppress_printing(simulate_gens_derated_productivity, derating_factor, result_ac_energies_gens) # GENERAZIONE DATAFRAME result_ac_energies_to_csv_df = suppress_printing(simulate_unstacked_productivity, result_ac_energies_gens_derated) # create two unstacked dataframe (the other functions work with dictionaries) # ESPORTAZIONE RISULTATI IN CSV print("Valore massimo:",max(result_ac_energies_to_csv_df.gen_pv_100_kWp)) # print the maximum value of the generated energy print("Somma totale:",sum(result_ac_energies_to_csv_df.gen_pv_100_kWp)) # print the total sum of the generated energy result_ac_energies_to_csv_df.to_csv(path_export, encoding='utf-8') # GENERAZIONE GRAFICO import plotly.express as px # Supponendo che la colonna di interesse sia 'gen_pv_100_kWp' fig = px.line( result_ac_energies_to_csv_df, x=result_ac_energies_to_csv_df.index, y='gen_pv_100_kWp', title='Produttività Fotovoltaica nel Tempo', labels={'gen_pv_100_kWp': 'Energia [kWh]', 'index': 'Data/Ora'} ) fig.show() if joePlaying: joe.terminate() joe.kill()