def calculate(process_name, tasks, results): print('[%s] evaluation routine starts' % process_name) while True: new_value = tasks.get() if new_value == "None": print('[%s] evaluation routine quits' % process_name) # Indicate finished results.put(-1) break else: # Initialise icestupa object location = new_value icestupa = Icestupa(location) # Derive all the input parameters icestupa.derive_parameters() # icestupa.read_input() # Generate results icestupa.melt_freeze() # Summarise and save model results icestupa.save() # Read Output # icestupa.read_output() # Create figures for web interface icestupa.summary_figures() # Compute result and mimic a long-running task compute = icestupa.df.iceV.max() # Output which process received the value print('[%s] received value: %s' % (process_name, new_value)) print('[%s] calculated max ice volume: %.1f' % (process_name, compute)) # Add result to the queue results.put(compute) return
answers = dict( # location="Schwarzsee 2019", location="Guttannen 2021", # location="Gangles 2021", run="yes", # run="no", ) # Initialise icestupa object # icestupa = Icestupa(answers["location"], params='best') icestupa = Icestupa(answers["location"]) if answers["run"] == "yes": # Derive all the input parameters icestupa.derive_parameters() # Generate results icestupa.melt_freeze(test=True) # icestupa.melt_freeze() # Summarise and save model results icestupa.save() # Create figures for web interface icestupa.summary_figures() else: # Use output parameters from cache icestupa.read_output() icestupa.summary_figures()
from src.utils.settings import config if __name__ == "__main__": # Main logger logger = logging.getLogger(__name__) coloredlogs.install( fmt="%(funcName)s %(levelname)s %(message)s", level=logging.WARNING, # level=logging.INFO, logger=logger, ) location = 'schwarzsee19' # Initialise icestupa object icestupa = Icestupa(location) # Derive all the input parameters icestupa.derive_parameters() with cProfile.Profile() as pr: # Generate results icestupa.melt_freeze() # # Summarise and save model results # icestupa.summary() # # Create figures for web interface # icestupa.summary_figures() stats = pstats.Stats(pr) stats.sort_stats(pstats.SortKey.TIME) stats.print_stats("get_temp")