members_feedback = [] for i in range(1, 21): ncpath = "/dx03/ab4283/GLENS/feedback/" + var + "/zonal_mean_camelot/merged/b.e15.B5505C5WCCML45BGCR.f09_g16.feedback.0" + str( i).zfill(2) + ".cam.h0zm." + var + ".202001-209912.nc" zmzw_inst = zonal_wind.zmzw(ncpath, time0=2020, tim1=2075, tim2=2095) clim_lat_hgt = zmzw_inst.climatology_polar_hgt_mon() members_feedback.append(clim_lat_hgt) ensmean_feedback, ensstd_feedback, nens_feedback = ensemble_functions.calc_ensemble_mean( members_feedback) # differences ensdiff_rcp85 = ensmean_rcp85 - ensmean_control ensdiff_feedback = ensmean_feedback - ensmean_control # two-tailed t-test ttest_rcp85 = ensemble_functions.t_test(p_value, ensdiff_rcp85, ensstd_control, ensstd_rcp85, nens_control, nens_rcp85) ttest_feedback = ensemble_functions.t_test(p_value, ensdiff_feedback, ensstd_control, ensstd_feedback, nens_control, nens_feedback) print 'DIFF SHAPE ', ensdiff_feedback.shape # individual member differences memdiff_feedback = map(lambda x: x - ensmean_control, members_feedback) memdiff_rcp85 = map(lambda x: x - ensmean_control, members_rcp85) # get hgt off one instance hgt = (zmzw_inst.dimdict)['hgt'] #******************************************************************************************************** # Plot ensemble mean difference FEEDBACK-CONTROL
# feedback runs print("Calculating climatology for FEEDBACK") members_feedback = [] for i in range(1,21): ncpath = glob.glob("/Volumes/CESM-GLENS/GLENS/b.e15.B5505C5WCCML45BGCR.f09_g16.feedback.0"+str(i).zfill(2)+"/atm/proc/tseries/month_1/Combined/b.e15.B5505C5WCCML45BGCR.f09_g16.feedback.0"+str(i).zfill(2)+".cam.h0."+var+".202001-*.nc")[0] Ts_inst = surface_temp.Ts(ncpath, tim1=2075, tim2=2095, var=var) clim_lon_lat = Ts_inst.climatology_lon_lat(season) * pressure_conversion members_feedback.append(clim_lon_lat) print("...done") nfeedback = len(members_feedback) ensmean_feedback, ensstd_feedback = ensemble_functions.stats(members_feedback) ensdiff_feedback = ensmean_feedback - ensmean_control ttest_feedback = ensemble_functions.t_test(alpha, ensdiff_feedback, ensstd_control, ensstd_feedback, ncontrol, nfeedback) print("Plotting ensemble mean difference FEEDBACK-CONTROL") #plot_functions.plot_single_lat_lon(ensdiff_feedback, 'Feedback (2075-2095) - Control (2010-2030)\n'+season, outdir+'Ts_ensdiff_feedback-control_'+season+'.pdf', 8, 1, 8, 1, '$^{\circ}$C', zsig=ttest_feedback) plot_functions.plot_single_lat_lon(ensdiff_feedback/65.*30., ensdiff_feedback['lat'], ensdiff_feedback['lon'], 'Feedback (2075-2095) - Control (2010-2030)\n'+season, outdir+var+'_ensdiff_feedback-control_'+season+'.png', 1.6, 0.2, 1.6, 0.4, 'hPa per decade', zsig=ttest_feedback) #******************************************************************************************************** ''' # GEOHEAT runs print("Calculating climatology for GEOHEAT") members_geoheat = [] for i in range(3,7): ncpath = glob.glob("/Volumes/CESM-GLENS/GEOHEAT/"+str(i).zfill(3)+"/Combined/b.e15.B5505C5WCCML45BGCR.f09_g16.GEOHEAT.control."+str(i).zfill(3)+".cam.h0."+var+".201001-*.nc")[0] Ts_inst = surface_temp.Ts(ncpath, time0=2010, tim1=2010, tim2=2029) clim_lon_lat = Ts_inst.climatology_lon_lat(season)