Merge changes from forecast.py refactoring. Tests updated but there is still...

Merge changes from forecast.py refactoring. Tests updated but there is still and issue with xarray and dash.
in 1 minute and 56 seconds, using 0 compute credits, and was queued for 2 seconds